@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&display=swap";
:root{--obsidian:#0c0e12;--obsidian-2:#141821;--charcoal:#1e232e;--glass:#37d6bd;--glass-dim:#1f8f7f;--iris:#9b8bf2;--paper:#f6f7f9;--surface:#fff;--surface-2:#fbfcfd;--ink:#1a1e26;--muted:#727a88;--faint:#9aa2af;--line:#e7eaef;--line-2:#dfe3e9;--amber:#d99a3b;--red:#dc5b57;--green:#3aa579;--blue:#4f8bd0;--radius:12px;--sh:0 1px 2px #1016220f,0 6px 20px #1016220d}*{box-sizing:border-box}html,body{margin:0;padding:0}.app{color:var(--ink);background:var(--paper);min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45;display:flex}.app ::selection{background:var(--glass);color:#04120f}.side{background:radial-gradient(120% 60% at 100% 0%, #9b8bf21a, transparent 60%), linear-gradient(180deg,var(--obsidian),var(--obsidian-2));color:#c7cdd8;flex-direction:column;flex-shrink:0;width:236px;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #ffffff0f;padding:22px 20px 18px}.shard{align-items:center;gap:11px;display:flex}.shard svg{filter:drop-shadow(0 0 10px #37d6bd59)}.brand h1{color:#fff;letter-spacing:-.01em;margin:0;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.brand .sub{color:#7b8394;letter-spacing:.02em;margin-top:3px;font-size:11px}.nav{flex:1;padding:12px;overflow:auto}.nav button{text-align:left;color:#aab2c0;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:11px;margin-bottom:2px;padding:9px 12px;font-size:13.5px;transition:all .14s;display:flex}.nav button:hover{color:#e8ecf2;background:#ffffff0d}.nav button.on{color:#eafffb;box-shadow:inset 2px 0 0 var(--glass);background:#37d6bd1f}.nav .ico{opacity:.85;flex-shrink:0;width:17px;height:17px}.side .foot{color:#6b7383;border-top:1px solid #ffffff0f;padding:14px 16px;font-size:11px}.side .foot button{color:#9aa2b0;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:7px;margin-top:8px;padding:5px 9px;font-size:11px}.side .foot button:hover{border-color:var(--red);color:#f3a3a1}.main{flex-direction:column;flex:1;min-width:0;display:flex}.top{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;justify-content:space-between;align-items:center;padding:14px 28px;display:flex;position:sticky;top:0}.top h2{letter-spacing:-.02em;margin:0;font-family:Space Grotesk,sans-serif;font-size:19px;font-weight:600}.top .crumb{color:var(--faint);margin-bottom:1px;font-size:12px}.who{color:var(--muted);align-items:center;gap:9px;font-size:13px;display:flex}.who select{font:inherit;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:6px 10px;font-size:13px}.wrap{width:100%;max-width:1180px;padding:26px 28px 60px}.grid{gap:16px;display:grid}.kpis{grid-template-columns:repeat(4,1fr)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh)}.kpi{padding:16px 18px}.kpi .lab{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-size:11px;font-weight:600}.kpi .val{letter-spacing:-.02em;margin-top:7px;font-family:Space Grotesk,sans-serif;font-size:25px;font-weight:600}.kpi .val.sm{font-size:20px}.kpi .note{color:var(--muted);margin-top:4px;font-size:12px}.pill{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.bar-track{background:var(--line);border-radius:6px;height:7px;margin-top:11px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,var(--glass-dim),var(--glass));border-radius:6px;height:100%}.sec-h{justify-content:space-between;align-items:center;margin:26px 0 13px;display:flex}.sec-h h3{margin:0;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.sec-h .eyebrow{color:var(--faint);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.btn{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .14s;display:inline-flex}.btn:hover{border-color:var(--glass-dim);color:var(--glass-dim)}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover{color:var(--glass);background:#000}.btn.sm{padding:5px 10px;font-size:12px}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--red);background:#dc5b5712}.btn:disabled,.btn:disabled:hover{opacity:.5;cursor:not-allowed;border-color:var(--line-2);color:var(--muted);background:var(--surface)}.tbl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh);overflow:hidden}table{border-collapse:collapse;width:100%}thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--faint);text-align:left;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:11px 12px;font-size:11px;font-weight:600}tbody td{border-bottom:1px solid var(--line);vertical-align:middle;padding:6px 8px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfc}.cell-in{width:100%;font:inherit;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;padding:6px 8px;font-size:13px}.cell-in:hover{background:var(--surface-2)}.cell-in:focus{border-color:var(--glass);background:#fff;outline:none;box-shadow:0 0 0 3px #37d6bd1f}.cell-in:disabled{color:var(--muted);cursor:not-allowed}select.cell-in{appearance:none;cursor:pointer}.num{text-align:right;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);padding:40px 20px}.empty .big{color:var(--ink);margin-bottom:5px;font-size:15px;font-weight:500}tbody tr.task-sub{background:var(--surface-2)}tbody tr.task-sub:hover{background:#f4f6f8}.stat-todo{color:var(--muted)}.stat-doing{color:var(--blue)}.stat-done{color:var(--green)}.stat-block{color:var(--red)}.gantt{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh);overflow:hidden}.g-scroll{overflow-x:auto}.g-inner{min-width:640px}.g-head{border-bottom:1px solid var(--line);background:var(--surface-2);display:flex}.g-lab-col{border-right:1px solid var(--line);flex-shrink:0;width:210px}.g-month{color:var(--muted);border-right:1px solid var(--line);text-transform:capitalize;white-space:nowrap;padding:8px 10px;font-size:11px;font-weight:600}.g-row{border-bottom:1px solid var(--line);display:flex;position:relative}.g-row:last-child{border-bottom:none}.g-lab{border-right:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:210px;padding:10px 12px;font-size:12.5px;overflow:hidden}.g-lab .who-t{color:var(--faint);font-size:10.5px}.g-track{flex:1;height:44px;position:relative}.g-grid-line{background:var(--line);width:1px;position:absolute;top:0;bottom:0}.g-today{background:var(--iris);z-index:3;opacity:.7;width:2px;position:absolute;top:0;bottom:0}.g-bar{color:#fff;white-space:nowrap;border-radius:7px;align-items:center;height:26px;padding:0 9px;font-size:11px;font-weight:600;display:flex;position:absolute;top:9px;overflow:hidden;box-shadow:0 1px 3px #0000001f}.g-bar .prog{background:#ffffff38;position:absolute;top:0;bottom:0;left:0}.g-row-sub{background:var(--surface-2)}.g-bar-sub{opacity:.85;height:20px;top:12px}.modal-bg{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#0c0e1280;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:16px;width:100%;max-width:460px;overflow:hidden;box-shadow:0 20px 60px #0000004d}.modal .m-h{border-bottom:1px solid var(--line);padding:18px 22px;font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:600}.modal .m-b{gap:14px;padding:20px 22px;display:grid}.modal .m-f{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.field label{color:var(--muted);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.field input,.field select,.field textarea{width:100%;font:inherit;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);border-radius:9px;padding:9px 11px;font-size:13.5px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--glass);background:#fff;outline:none;box-shadow:0 0 0 3px #37d6bd1f}.field.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.dot{border-radius:3px;width:10px;height:10px;display:inline-block}.cat-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:9px 0;display:flex}.cat-row:last-child{border-bottom:none}.cat-name{width:150px;font-size:13px;font-weight:500}.cat-bars{flex:1}.cat-nums{text-align:right;font-variant-numeric:tabular-nums;width:180px;color:var(--muted);font-size:12.5px}.mini-track{background:var(--line);border-radius:5px;height:6px;position:relative;overflow:hidden}.doc-link{color:var(--glass-dim);font-weight:500;text-decoration:none}.doc-link:hover{text-decoration:underline}.drive-box{background:linear-gradient(180deg,#fff, var(--surface-2));border:1px dashed var(--line-2);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:16px 18px;display:flex}@media (max-width:820px){.side{width:64px}.brand h1,.brand .sub,.nav button span.txt,.side .foot .ft{display:none}.nav button{justify-content:center}.kpis{grid-template-columns:1fr 1fr}.wrap{padding:18px 14px 50px}.top{padding:12px 14px}}.auth-shell{background:radial-gradient(120% 60% at 100% 0%, #9b8bf21a, transparent 60%), linear-gradient(180deg,var(--obsidian),var(--obsidian-2));justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--surface);border-radius:16px;width:100%;max-width:380px;overflow:hidden;box-shadow:0 20px 60px #00000059}.auth-brand{align-items:center;gap:11px;padding:26px 26px 6px;display:flex}.auth-brand h1{margin:0;font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:600}.auth-brand .sub{color:var(--muted);margin-top:2px;font-size:11px}.auth-body{gap:14px;padding:20px 26px 26px;display:grid}.auth-error{color:var(--red);background:#dc5b5714;border:1px solid #dc5b5740;border-radius:9px;padding:9px 11px;font-size:12.5px}.auth-foot{color:var(--muted);text-align:center;margin-top:4px;font-size:12.5px}.auth-foot a{color:var(--glass-dim);font-weight:500;text-decoration:none}.auth-foot a:hover{text-decoration:underline}
