:root{--navy: #1a1f3c;--peri: #4f6fe8;--peri-ink: #3a55c4;--peri-wash: #edf1fe;--green: #0f7a61;--green-wash: #e4f3ef;--gold: #c8891a;--gold-wash: #fbf2e0;--red: #c62f44;--red-wash: #fbe9ec;--bg: #f6f7fc;--card: #fff;--ink: #131832;--muted: #5c6488;--line: #dce1f1;--sp2: 8px;--sp3: 12px;--sp4: 16px;--sp5: 24px;--row: 44px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 Manrope,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input{font:inherit}:focus-visible{outline:2px solid var(--peri);outline-offset:2px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);background:var(--navy);color:#fff;padding:var(--sp3) var(--sp5)}.brand{font-weight:800;letter-spacing:-.02em}.wrap{max-width:880px;margin:0 auto;padding:var(--sp5) var(--sp4)}.card{background:var(--card);border:1px solid var(--line);border-radius:10px}.tabs{display:flex;gap:2px;margin-bottom:var(--sp4);flex-wrap:wrap}.tab{background:transparent;border:1px solid transparent;border-radius:6px;padding:var(--sp2) var(--sp3);color:var(--muted);font-weight:600}.tab[aria-selected=true]{background:var(--peri-wash);color:var(--peri-ink);border-color:var(--peri)}.row{display:flex;align-items:center;gap:var(--sp3);min-height:var(--row);padding:var(--sp2) var(--sp4);border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.row .title{flex:1;min-width:0;overflow-wrap:anywhere}.pill{font:500 10.5px/1.6 ui-monospace,monospace;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:20px;white-space:nowrap}.p-todo{background:#eef0f7;color:var(--muted)}.p-progress{background:var(--peri-wash);color:var(--peri-ink)}.p-done{background:var(--green-wash);color:var(--green)}.p-cancel{background:var(--red-wash);color:var(--red)}.btn{background:var(--peri);color:#fff;border:1px solid var(--peri);border-radius:6px;padding:10px var(--sp4);font-weight:600;min-height:var(--row)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-quiet{background:#fff;color:var(--peri-ink)}.btn-sm{min-height:32px;padding:4px 10px;font-size:13px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp4)}.field label{font-size:13px;font-weight:600}.field input{border:1px solid var(--line);border-radius:6px;padding:10px var(--sp3);min-height:var(--row);background:#fff;color:var(--ink)}.state{padding:var(--sp5) var(--sp4);color:var(--muted);text-align:center}.error{background:var(--red-wash);color:var(--red);border-radius:6px;padding:var(--sp3) var(--sp4);margin-bottom:var(--sp4)}.login{max-width:380px;margin:10vh auto;padding:0 var(--sp4)}.skel{height:12px;border-radius:4px;background:#e8ebf5}@media(prefers-reduced-motion:no-preference){.skel{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}}.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}.table th,.table td{padding:var(--sp3) var(--sp4);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg);font-weight:700}.table tr:last-child td{border-bottom:0}.table code{font-size:13px;color:var(--peri-ink)}.seg{display:flex;gap:0;margin-bottom:var(--sp4);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}.seg button{flex:1;padding:10px var(--sp4);border:0;background:transparent;color:var(--muted);font-weight:600;font-size:14px}.seg button[aria-pressed=true]{background:var(--peri-wash);color:var(--peri-ink)}.seg button+button{border-left:1px solid var(--line)}.shell{display:grid;grid-template-columns:236px 1fr;grid-template-rows:56px 1fr;grid-template-areas:"brandbar brandbar" "sidebar content";min-height:100vh}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--sp4);top:var(--sp2);z-index:30;background:var(--card);padding:var(--sp2) var(--sp4);border-radius:6px}.topbar{grid-area:brandbar;display:flex;align-items:center;gap:var(--sp4);padding:0 var(--sp4);background:var(--navy);color:#fff;position:sticky;top:0;z-index:20}.topbar .brand{font-weight:800;letter-spacing:-.02em}.topbar .company{font-size:13px;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40vw}.topbar-end{margin-left:auto;display:flex;align-items:center;gap:var(--sp3)}.topbar .who{font-size:13px;opacity:.75}.topbar .btn-quiet{color:#fff;border-color:#ffffff40;background:transparent}.icon-btn{display:none;background:transparent;border:0;color:inherit;width:40px;height:40px;border-radius:8px;align-items:center;justify-content:center}.sidebar{grid-area:sidebar;background:var(--card);border-right:1px solid var(--line);padding:var(--sp4) 0;overflow-y:auto}.nav-group{margin-bottom:var(--sp4)}.nav-group-label{margin:0 0 4px;padding:0 var(--sp4);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.nav-item{display:flex;align-items:center;gap:var(--sp2);min-height:36px;padding:0 var(--sp4);color:var(--ink);text-decoration:none;font-size:14px;border-left:3px solid transparent;transition:background .18s ease}.nav-item:hover{background:var(--bg)}.nav-item.is-active{background:var(--peri-wash);color:var(--peri-ink);font-weight:600;border-left-color:var(--peri)}.nav-item.is-soon{color:var(--muted)}.soon{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 6px}.content{grid-area:content;padding:var(--sp5);max-width:1180px}.page-head{display:flex;align-items:flex-start;gap:var(--sp4);flex-wrap:wrap;margin-bottom:var(--sp5)}.page-head h1{margin:0;font-size:22px;letter-spacing:-.02em}.page-head .btn{margin-left:auto}.sub{margin:4px 0 var(--sp4);color:var(--muted);font-size:13px}.alert-card{display:flex;align-items:center;gap:var(--sp4);flex-wrap:wrap;background:var(--red-wash);border:1px solid rgba(198,47,68,.25);border-left:4px solid var(--red);border-radius:10px;padding:var(--sp4);margin-bottom:var(--sp5)}.alert-figure{margin:0;font-size:34px;font-weight:800;line-height:1;color:var(--red);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.alert-label{margin:4px 0 0;font-size:13px;color:var(--ink)}.alert-card .btn{margin-left:auto}.btn-danger{background:var(--red);color:#fff;border-color:var(--red)}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp3);margin-bottom:var(--sp5)}.stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:10px;padding:var(--sp4);text-align:left;min-height:76px;transition:border-color .18s ease,transform .18s ease}.stat:hover{border-color:var(--peri);transform:translateY(-1px)}.stat-value{font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-label{font-size:12px;color:var(--muted)}.stat-todo{border-top-color:var(--gold)}.stat-prog{border-top-color:var(--peri)}.stat-done{border-top-color:var(--green)}.stat-closed{border-top-color:var(--muted)}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:var(--sp4);margin-bottom:var(--sp4)}.panel h2{margin:0 0 var(--sp3);font-size:14px;letter-spacing:-.01em}.bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--bg);margin-bottom:var(--sp3)}.bar-seg{display:block}.seg-todo{background:var(--gold)}.seg-prog{background:var(--peri)}.seg-done{background:var(--green)}.seg-closed{background:#9aa3c4}.legend{display:flex;flex-wrap:wrap;gap:var(--sp4);list-style:none;margin:0 0 var(--sp3);padding:0;font-size:13px;color:var(--muted)}.legend li{display:flex;align-items:center;gap:6px}.legend strong{color:var(--ink);font-variant-numeric:tabular-nums}.dot{width:9px;height:9px;border-radius:3px;display:inline-block}.empty{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:var(--sp5);max-width:560px}.empty h2{margin:0 0 var(--sp2);font-size:17px;letter-spacing:-.01em}.empty p{margin:0 0 var(--sp4);color:var(--muted);font-size:14px}.skeleton{background:linear-gradient(90deg,var(--bg) 25%,#eef1f9 37%,var(--bg) 63%);background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:10px}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#13183266;z-index:14}.only-mobile{display:none}@media(max-width:900px){.shell{grid-template-columns:1fr;grid-template-areas:"brandbar" "content"}.icon-btn,.only-mobile{display:inline-flex}.topbar .who{display:none}.sidebar{position:fixed;top:56px;bottom:0;left:0;width:260px;z-index:15;transform:translate(-100%);transition:transform .2s ease}.sidebar.is-open{transform:none}.content{padding:var(--sp4)}.stat-row{grid-template-columns:repeat(2,1fr)}.alert-card .btn,.page-head .btn{margin-left:0;width:100%}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.modal-scrim{display:flex;align-items:center;justify-content:center;padding:var(--sp4)}.modal{background:var(--card);border-radius:12px;padding:var(--sp5);width:100%;max-width:420px;box-shadow:0 12px 40px #13183238}.modal h2{margin:0 0 var(--sp4);font-size:17px;letter-spacing:-.01em}.modal-actions{display:flex;gap:var(--sp3);justify-content:flex-end;margin-bottom:var(--sp4)}.modal-actions .btn{min-width:96px}.table .soon{margin-left:6px;vertical-align:middle}
