:root{--bg:#F2F5F8;--surface:#FFFFFF;--surface-2:#E9EEF4;--ink:#0E1C30;--muted:#56677C;--line:#D5DEE8;--band:#00205C;--band-ink:#FFFFFF;--band-muted:#A9BCD9;--accent:#0081B8;--accent-strong:#009CDE;--accent-ink:#FFFFFF;--accent-soft:#E1F2FA;--danger:#B42318;--danger-bg:#FCE9E7;--warn:#946200;--warn-bg:#FDF3D7;--ok:#227346;--ok-bg:#E2F3E8;--hold:#8A4B00;--hold-bg:#FBEBD8;--idle:#4F5D70;--idle-bg:#ECEFF3;--wknd:#EAEFF5;--h1:#D6ECF7;--h2:#9FD3EE;--h3:#2C8FC4;--h4:#00629A;--shadow:0 12px 40px rgba(0,32,92,.18);--f-display:"Source Serif 4", Georgia, "Times New Roman", serif;--f-body:"Source Sans 3", "Segoe UI", Arial, sans-serif;--f-mono:"Source Code Pro", ui-monospace, Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg:#0A1422;--surface:#111F33;--surface-2:#18293F;--ink:#E5ECF4;--muted:#93A5BA;--line:#24384F;--band:#061A44;--band-ink:#FFFFFF;--band-muted:#8EA6CC;--accent:#3FB6E8;--accent-strong:#3FB6E8;--accent-ink:#04182E;--accent-soft:#12324A;--danger:#F28B82;--danger-bg:#3A1A1A;--warn:#E8C060;--warn-bg:#352B12;--ok:#7CCB98;--ok-bg:#14301F;--hold:#F0B36A;--hold-bg:#3A2914;--idle:#AEBBCB;--idle-bg:#1D2C40;--wknd:#0D1A2B;--h1:#15344D;--h2:#1C5677;--h3:#2A80AE;--h4:#3FB6E8;--shadow:0 12px 40px rgba(0,0,0,.5);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--band)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}[hidden]{display:none!important}.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.mono{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.02em}.muted{color:var(--muted)}.danger-text{color:var(--danger);font-weight:700}.band{background:var(--band);color:var(--band-ink);position:sticky;top:env(safe-area-inset-top,0px);z-index:20}.band-top{display:flex;align-items:center;gap:12px;padding-block:12px}.brand{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0;color:inherit;text-decoration:none}.mark{width:30px;height:30px;border-radius:50%;border:2px solid var(--accent-strong);display:grid;place-items:center;flex:none}.mark:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent-strong)}.brand b{font-family:var(--f-display);font-weight:600;font-size:19px;display:block}.brand small{display:block;color:var(--band-muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.hbtn{background:transparent;border:1px solid rgba(255,255,255,.28);color:var(--band-ink);border-radius:999px;padding:6px 12px;display:inline-flex;align-items:center;gap:8px;min-height:36px}.hbtn:hover{background:#ffffff14}.count{background:#e5484d;color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 6px;min-width:18px;text-align:center}.role-tag{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--band-muted)}.tabs{border-top:1px solid rgba(255,255,255,.12)}.tabs .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.tab{color:var(--band-muted);padding:10px 12px;border-bottom:3px solid transparent;white-space:nowrap;font-weight:600;text-decoration:none}.tab.active{color:var(--band-ink);border-bottom-color:var(--accent-strong)}.tab:hover{color:var(--band-ink)}.pop-anchor{position:relative}.pop{position:absolute;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 32px));background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);z-index:40;max-height:72vh;overflow:auto}@media(max-width:600px){.pop{position:fixed;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));top:calc(env(safe-area-inset-top,0px) + 64px);width:auto}.hbtn .nm{display:none}}.pop h3{margin:0;padding:12px 14px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.menu-item{display:flex;gap:10px;align-items:center;width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 14px;text-align:left;color:var(--ink);text-decoration:none}.menu-item:hover{background:var(--surface-2)}.notif{display:block;width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 14px;text-align:left}.notif:hover{background:var(--surface-2)}.notif.unread{background:var(--accent-soft)}.notif .meta{display:flex;gap:6px;margin-top:3px;font-size:12px;color:var(--muted)}.empty{padding:16px 14px;color:var(--muted);font-size:14px}main{padding-block:20px 60px}.head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}.head h1{font-family:var(--f-display);font-weight:600;font-size:clamp(24px,3.4vw,30px);margin:0;text-wrap:balance}.head p{margin:2px 0 0;color:var(--muted)}.grow{flex:1;min-width:240px}.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 14px;font-weight:600;min-height:38px;display:inline-flex;align-items:center;gap:6px;justify-content:center;text-decoration:none;color:var(--ink)}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:var(--danger);border-color:var(--danger);background:var(--surface)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{min-height:30px;padding:4px 10px;font-size:13.5px}.linkbtn{background:none;border:0;color:var(--accent);font-weight:600;padding:4px 0;text-decoration:underline;text-underline-offset:3px}.grid2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px}@media(max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}}.stack{display:grid;gap:14px;align-content:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0}.panel h2{font-size:16px;margin:0 0 4px}.panel>p.lead{margin:0 0 12px;color:var(--muted);font-size:14px}.sub-h{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 4px;display:flex;gap:8px;align-items:center}.sub-h.alert{color:var(--danger)}.tag{font-size:12px;border-radius:999px;padding:2px 9px;background:var(--surface-2);color:var(--muted);font-weight:600;white-space:nowrap}.tag.risk{background:var(--danger-bg);color:var(--danger)}.tag.soon{background:var(--warn-bg);color:var(--warn)}.tag.ok{background:var(--ok-bg);color:var(--ok)}.note{background:var(--surface-2);border-radius:8px;padding:10px 12px;font-size:13.5px;color:var(--muted)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;z-index:60;font-weight:600;max-width:calc(100vw - 32px)}.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px;text-align:left}button.stat:hover{border-color:var(--accent)}.stat b{display:block;font-size:24px;font-variant-numeric:tabular-nums;line-height:1.2}.stat span{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat.alert b{color:var(--danger)}.stat.soft{background:var(--accent-soft);border-color:transparent}@media(max-width:720px){.strip{grid-template-columns:repeat(2,minmax(0,1fr))}}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.filters input,.filters select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 10px;min-height:38px}.filters input{flex:1;min-width:180px}.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.seg button{border:0;background:none;padding:7px 12px;font-weight:600;color:var(--muted);min-height:36px}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--ink)}.av{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;font-size:11px;font-weight:700;flex:none;color:#fff;overflow:hidden;object-fit:cover}.av.lg{width:72px;height:72px;font-size:24px}.avs{display:inline-flex}.avs .av{margin-left:-6px;box-shadow:0 0 0 2px var(--surface)}.avs .av:first-child{margin-left:0}.who{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px}.who span.nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:2px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.s-NotStarted{background:var(--idle-bg);color:var(--idle)}.s-InProgress{background:var(--accent-soft);color:var(--accent)}.s-OnHold{background:var(--hold-bg);color:var(--hold)}.s-Completed{background:var(--ok-bg);color:var(--ok)}.s-Cancelled{background:var(--idle-bg);color:var(--muted)}.due{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.due.over{color:var(--danger);font-weight:700}.due.soon{color:var(--warn);font-weight:600}.prio{position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0}.prio.High{background:var(--danger)}.prio.Medium{background:var(--warn)}.prio.Low{background:var(--line)}.list{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.lhead,.row{display:grid;grid-template-columns:88px minmax(0,1fr) 170px 120px 112px 130px;gap:12px;align-items:center;padding:10px 14px}.lhead{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);background:var(--surface-2)}.row{width:100%;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;position:relative}.row:last-child{border-bottom:0}.row:hover{background:var(--surface-2)}.row .title{font-weight:600;min-width:0}.row .title small{display:block;font-weight:400;color:var(--muted);font-size:13px}.row.done .title>span{text-decoration:line-through;color:var(--muted)}.proj{font-size:12px;color:var(--muted)}@media(max-width:820px){.lhead{display:none}.row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title status" "who due" "id id";row-gap:6px}.row .c-id{grid-area:id}.row .title{grid-area:title}.row .c-who{grid-area:who}.row .c-due{grid-area:due;text-align:right}.row .c-status{grid-area:status;text-align:right}.row .c-proj{display:none}}.trow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;width:100%;background:none;border:0;border-top:1px solid var(--line);padding:8px 4px;text-align:left;color:var(--ink)}.trow:hover{background:var(--surface-2)}.trow .tt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:560px){.trow{grid-template-columns:minmax(0,1fr) auto}.trow .pill{display:none}}.board{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}.col{background:var(--surface-2);border-radius:10px;padding:10px;min-width:0}.col h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin:2px 4px 10px;display:flex;justify-content:space-between;color:var(--muted)}.card{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px;position:relative;color:var(--ink)}.card:hover{border-color:var(--accent)}.card .t{font-weight:600;margin:2px 0 8px}.card .f{display:flex;justify-content:space-between;align-items:center;gap:8px}.calbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.calbar h2{font-family:var(--f-display);font-weight:600;font-size:20px;margin:0 6px}.calbar .sp{flex:1}.ibtn{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:38px;min-height:38px;font-weight:700;font-size:18px;line-height:1}.cal{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.cal .wd,.cal .wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal .wd div{padding:8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line)}.cday{min-height:112px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:3px;cursor:pointer;min-width:0}.cday:nth-child(7n){border-right:0}.cday.wknd{background:var(--wknd)}.cday.out .dn{opacity:.45}.cday.sel{box-shadow:inset 0 0 0 2px var(--accent)}.dn b{display:inline-block;min-width:24px;text-align:center;border-radius:999px;padding:0 6px;font-size:13px}.cday.today .dn b{background:var(--accent);color:var(--accent-ink)}.week .cday{min-height:320px}.chip{display:block;width:100%;text-align:left;border:0;border-left:3px solid currentColor;border-radius:4px;padding:2px 6px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.chip.span{opacity:.62;font-weight:400}.chip.ms{background:var(--surface-2);color:var(--ink);border-left-color:var(--accent-strong)}.chip.over,.bar2.over{background:var(--danger-bg);color:var(--danger)}.week .chip{white-space:normal;padding:4px 6px}.more{font-size:12px;color:var(--muted);padding-left:4px}@media(max-width:640px){.cday{min-height:60px;padding:4px}.chip,.chip.over,.chip.ms,.chip.span{font-size:0;height:6px;padding:0;border-left:0;background:currentColor}.chip.ms{color:var(--accent-strong)}.more{display:none}.week .cday{min-height:130px}.calbar h2{width:100%;order:-1;margin:0}}.tl{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow-x:auto}.tlr{display:flex;border-bottom:1px solid var(--line);min-height:34px}.tlr:last-child{border-bottom:0}.tll{position:sticky;left:0;z-index:3;background:var(--surface);width:230px;flex:none;padding:6px 10px;border-right:1px solid var(--line);font-size:13.5px;display:flex;align-items:center;gap:6px;min-width:0}.tll button{background:none;border:0;padding:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;color:var(--ink)}@media(max-width:560px){.tll{width:150px}}.tlt{position:relative;flex:none;background:linear-gradient(to right,var(--line) 1px,transparent 1px) 0 0/98px 100%,linear-gradient(to right,transparent 70px,var(--wknd) 70px) 0 0/98px 100%}.tlr.grp .tll{background:var(--surface-2);font-weight:700}.tlr.hdr .tll{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.tlr.hdr .tlt span{position:absolute;top:9px;font-size:12px;color:var(--muted);padding-left:5px;white-space:nowrap}.bar2{position:absolute;top:7px;height:20px;border-radius:5px;border:0;font-size:12px;font-weight:600;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;z-index:2}.now{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);opacity:.55;z-index:1}.dia{position:absolute;top:10px;width:13px;height:13px;transform:rotate(45deg);background:var(--accent-strong);border:0;padding:0;z-index:2}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:8px;align-items:center}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px}.quad{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:760px){.quad{grid-template-columns:1fr}}.q{border-radius:10px;padding:12px;background:var(--surface-2);min-width:0}.q h2{font-size:15px;margin:0;display:flex;justify-content:space-between}.q p{margin:2px 0 10px;font-size:13px;color:var(--muted)}.q.q1{background:var(--danger-bg)}.q.q2{background:var(--accent-soft)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}.scroll{overflow-x:auto}.bar{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden;min-width:60px}.bar i{display:block;height:100%;background:var(--accent)}.bar i.ok{background:var(--ok)}.heat{border-collapse:separate;border-spacing:3px}.heat td,.heat th{border:0;text-align:center;padding:6px 4px}.heat td:first-child,.heat th:first-child{text-align:left}.heat td.h{border-radius:5px;font-variant-numeric:tabular-nums;font-weight:700;min-width:44px;background:var(--surface-2);color:var(--muted)}.heat td.h1{background:var(--h1);color:var(--ink)}.heat td.h2{background:var(--h2);color:var(--ink)}.heat td.h3{background:var(--h3);color:#fff}.heat td.h4{background:var(--h4);color:var(--accent-ink)}.heat td.od{background:var(--danger-bg);color:var(--danger)}.heat th small{display:block;color:var(--accent);font-weight:700}.streak{display:flex;align-items:center;gap:12px}.streak .num{font-family:var(--f-display);font-size:34px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.dots{display:flex;gap:3px;flex-wrap:wrap}.dots i{width:10px;height:10px;border-radius:3px;background:var(--surface-2)}.dots i.on{background:var(--ok)}.ms{display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;margin-bottom:12px}.msd{text-align:center;padding-top:8px}.msd b{display:block;font-family:var(--f-display);font-weight:600;font-size:30px;line-height:1}.msd span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.msc{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-width:0}.msc.risk{border-color:var(--danger)}.msh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.msh h2{font-size:17px;margin:0;flex:1;min-width:180px}.progress{display:flex;align-items:center;gap:10px;margin:10px 0 6px;font-size:13px;color:var(--muted);flex-wrap:wrap}.progress .bar{flex:1;max-width:260px}.past{opacity:.75}.comph{display:flex;align-items:center;gap:14px;margin-bottom:6px}.comph h2{margin:0;font-size:19px;font-family:var(--f-display);font-weight:600}.act{border-top:1px solid var(--line);padding:10px 0}.acth{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.acth h3{margin:0;font-size:14.5px;flex:1;min-width:180px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#050f2373;z-index:50}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--surface);z-index:51;box-shadow:var(--shadow);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px)}.dh{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}.dh h2{margin:0;font-family:var(--f-display);font-weight:600;font-size:20px;flex:1;min-width:0}.x{background:none;border:1px solid var(--line);border-radius:8px;width:36px;height:36px;font-size:18px;line-height:1}.db{overflow:auto;padding:16px 18px;flex:1}.df{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--line);flex-wrap:wrap}.df .sp{flex:1}.dtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:-4px 0 14px;overflow-x:auto}.dtabs button{background:none;border:0;border-bottom:3px solid transparent;padding:8px 10px;font-weight:600;color:var(--muted);white-space:nowrap}.dtabs button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--accent)}.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fgrid .full{grid-column:1 / -1}@media(max-width:460px){.fgrid{grid-template-columns:1fr}}label.lbl,.lbl{display:block;font-size:12.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.field,.fgrid input,.fgrid select,.fgrid textarea{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;min-height:38px}.fgrid textarea,textarea.field{min-height:76px;resize:vertical}.fgrid :disabled{background:var(--surface-2);color:var(--muted)}.perm{font-size:13px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:8px 10px;margin-bottom:14px}.sec{margin-top:20px}.sec h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.people-picker{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pchip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border-radius:999px;padding:2px 4px 2px 2px;font-size:13.5px}.pchip button{background:none;border:0;color:var(--muted);font-size:16px;line-height:1;padding:0 4px}.access{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.access li{display:flex;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid var(--line);font-size:14px}.access li:last-child{border-bottom:0}.access li.no{color:var(--muted);background:var(--surface-2)}.access .why{margin-left:auto;font-size:12.5px;text-align:right}.hist{list-style:none;margin:0;padding:0;font-size:13.5px}.hist li{padding:6px 0 6px 14px;border-left:2px solid var(--line);position:relative}.hist li:before{content:"";position:absolute;left:-5px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.hist small{color:var(--muted);display:block}.comment{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--line)}.comment .body{white-space:pre-wrap;word-wrap:break-word}.comment .mention{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 3px;font-weight:600}.file{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.file .fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check{display:flex;gap:8px;align-items:flex-start;font-size:14px}.check input{margin-top:3px;width:16px;height:16px}.switch{position:relative;width:44px;height:26px;border-radius:999px;border:0;background:var(--line);padding:0;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{left:21px}.switch:disabled{opacity:.55;cursor:not-allowed}.rule{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}.rule:last-child{border-bottom:0}.rule h3{margin:0;font-size:15px}.rule p{margin:0;color:var(--muted);font-size:13.5px;grid-column:1}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.inline-form>div{flex:1;min-width:150px}.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--band)}.auth-card{background:var(--surface);border-radius:14px;padding:28px;width:min(420px,100%);box-shadow:var(--shadow)}.auth-card h1{font-family:var(--f-display);font-weight:600;font-size:26px;margin:10px 0 4px}.auth-card form{display:grid;gap:14px;margin-top:18px}.auth-card .err{background:var(--danger-bg);color:var(--danger);border-radius:8px;padding:8px 10px;font-size:14px}.auth-card .ok{background:var(--ok-bg);color:var(--ok);border-radius:8px;padding:8px 10px;font-size:14px}.qr{background:#fff;padding:10px;border-radius:8px;width:200px;height:200px}@media(prefers-reduced-motion:no-preference){.drawer{animation:slide .18s ease-out}@keyframes slide{0%{transform:translate(24px);opacity:.6}}}
