:root{--green:#163b2f;--green2:#245542;--paper:#f6f3ec;--card:#fffaf1;--line:#ded6c8;--text:#17221d;--muted:#69736d;--danger:#9d2c2c;--amber:#c78320;--ok:#2e7d55}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:radial-gradient(circle at top left,rgba(22,59,47,.12),transparent 30%),linear-gradient(180deg,#f8f5ed,#efe7da);color:var(--text)}header{background:linear-gradient(135deg,#102b23,#1d4a3b);color:white;padding:18px 22px;box-shadow:0 4px 18px rgba(0,0,0,.16)}header h1{margin:0;font-size:21px;letter-spacing:.3px}header p{margin:4px 0 0;opacity:.82;font-size:13px}.container{max-width:1260px;margin:0 auto;padding:22px}.card,.kpi,.chartWrap,.timelineBox{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 10px 28px rgba(31,42,35,.07)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:920px){.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}}label{display:block;font-size:13px;font-weight:800;margin:8px 0 5px}input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:white;font-size:14px}textarea{min-height:78px}button{border:0;background:var(--green);color:white;border-radius:10px;padding:10px 13px;font-weight:800;cursor:pointer;margin:3px}button.secondary{background:var(--green2)}button.ghost{background:transparent;color:var(--green);border:1px solid var(--green)}header button.ghost{color:white;border-color:rgba(255,255,255,.7)}button.danger{background:var(--danger)}button:disabled{opacity:.45}.nav{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0}.nav button.active{background:white;color:var(--green)}.small{color:var(--muted);font-size:13px}.kpi{position:relative;overflow:hidden}.kpi::after{content:"";position:absolute;right:-22px;top:-22px;width:70px;height:70px;border-radius:50%;background:rgba(22,59,47,.08)}.kpi strong{display:block;font-size:24px;margin-top:6px}table{width:100%;border-collapse:collapse;background:white;border-radius:12px;overflow:hidden}th,td{border-bottom:1px solid var(--line);padding:9px;text-align:left;font-size:13px;vertical-align:top}th{background:#eee7db}.tableScroll{overflow:auto}.badge,.pill{display:inline-block;padding:5px 10px;border-radius:999px;background:#e4eee8;color:var(--green);font-size:12px;font-weight:800;margin:2px}.timer{font-variant-numeric:tabular-nums;font-size:34px;font-weight:900;letter-spacing:1px}hr{border:0;border-top:1px solid var(--line);margin:16px 0}.loginbox{max-width:430px;margin:8vh auto}.chartWrap{min-height:290px}.chartTitle{font-weight:900;margin:0 0 8px}canvas{width:100%;height:230px}.profileHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.profileHeader h2,.profileHeader h3{margin:0}.statMini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.statMini div{background:#f7f2e8;border:1px solid var(--line);border-radius:12px;padding:9px}.statMini span{display:block;font-size:11px;color:var(--muted)}.statMini strong{font-size:16px}.progressTiny,.stripeOuter{height:10px;background:#eee4d6;border-radius:999px;overflow:hidden;margin-top:5px}.progressTiny>div,.stripeInner{height:100%;background:var(--green);border-radius:999px}.timelineLine{position:relative;height:76px;border-top:2px solid #cfc5b6;margin:30px 16px 12px}.diamond{position:absolute;top:-9px;width:18px;height:18px;background:var(--green);transform:rotate(45deg);border:2px solid white;box-shadow:0 1px 4px rgba(0,0,0,.25)}.diamond.done{background:var(--ok)}.diamond.late{background:var(--danger)}.milestoneLabel{position:absolute;top:18px;transform:translateX(-45%);min-width:120px;max-width:180px;font-size:11px;color:var(--muted);text-align:center}.progressRow{display:grid;grid-template-columns:130px 1fr 60px;align-items:center;gap:10px;margin:8px 0}.expected{background:var(--amber)}.modalBackdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:flex-start;justify-content:center;padding:45px 18px;z-index:99}.modal{background:var(--card);border-radius:18px;border:1px solid var(--line);padding:18px;max-width:860px;width:100%;max-height:86vh;overflow:auto}input[type=checkbox]{accent-color:var(--green);width:auto}
