[hidden]{display:none!important}
:root{--bg:#f8fafc;--card:#fff;--ink:#0f172a;--mute:#64748b;--line:#e2e8f0;--c:#334155;--t:color-mix(in srgb,var(--c) 9%,var(--card));--t2:color-mix(in srgb,var(--c) 18%,var(--card));--bad:#dc2626;--star:#f59e0b}
:root.dark{--bg:#0b1120;--card:#111827;--ink:#e5e7eb;--mute:#94a3b8;--line:#1f2937;--t:color-mix(in srgb,var(--c) 22%,var(--card));--t2:color-mix(in srgb,var(--c) 38%,var(--card))}
*{box-sizing:border-box}body{margin:0;font:15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
button{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}
#login{display:grid;place-items:center;min-height:100vh}#lf{background:var(--card);padding:28px;border-radius:14px;border:1px solid var(--line);display:grid;gap:10px;width:min(92vw,340px)}
#lf input,#q{font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}.err{color:var(--bad)}
header{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:3px solid var(--c);padding-top:env(safe-area-inset-top)}
#tabs{display:flex;overflow-x:auto;gap:4px;padding:8px 8px 0;scrollbar-width:none}
#tabs a{white-space:nowrap;padding:8px 12px;border-radius:10px 10px 0 0;text-decoration:none;color:var(--ink);background:color-mix(in srgb,var(--tc) 12%,var(--card));border-top:3px solid var(--tc);font-weight:600;font-size:14px}
#tabs a.on{background:var(--tc);color:#fff}
.bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px}#q{flex:1 1 220px}
.seg{display:flex}.seg button{border-radius:0}.seg button:first-child{border-radius:8px 0 0 8px}.seg button:last-child{border-radius:0 8px 8px 0}
.seg .on,.chips .on{background:var(--c);color:#fff;border-color:var(--c)}.chips{display:flex;gap:4px}
.live{width:10px;height:10px;border-radius:50%;background:#94a3b8}.live.ok{background:#16a34a}
main{padding:10px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;padding-bottom:80px}
.summary{grid-column:1/-1;color:var(--mute);margin:0}
.tile{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}.tile>h2{margin:0;padding:10px 12px;font-size:15px;background:var(--t2);display:flex;justify-content:space-between}
.tile.wide{grid-column:1/-1}.sec{border-top:1px solid var(--line)}.sec h3{margin:0;padding:7px 12px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);background:var(--t)}
.sec.over{outline:2px dashed var(--c)}.sec.check h3{color:var(--bad)}
.it{display:grid;grid-template-columns:28px 1fr auto;gap:6px;padding:7px 10px;border-top:1px solid var(--line);align-items:start}.it:first-of-type{border-top:0}
.it[draggable=true]{cursor:grab}.st{border:0;background:none;padding:0;font-size:18px;color:var(--mute);line-height:1}.st.on{color:var(--star)}
.code{font:600 12px ui-monospace,monospace;color:var(--c);margin-right:6px}:root.dark .code{color:color-mix(in srgb,var(--c) 50%,#fff)}
.due{font-size:12px;color:var(--mute);white-space:nowrap}.due.late{color:var(--bad);font-weight:600}
.subs{margin:4px 0 0;padding-left:16px;color:var(--mute);font-size:13px}.empty{padding:8px 12px;color:var(--mute);font-size:13px}
.metric{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;padding:10px}.metric b{display:block;font-size:24px}.metric span{font-size:12px;color:var(--mute)}
.disc{padding:7px 12px;border-top:1px solid var(--line);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.disc i{color:var(--mute);font-style:normal;font-size:12px;margin-right:6px}
.cal{grid-column:1/-1}.calhead{display:flex;gap:6px;align-items:center;padding:8px}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line)}
.day{background:var(--card);min-height:96px;padding:4px;font-size:12px;overflow:hidden}.day.today{outline:2px solid var(--c);outline-offset:-2px}.day .n{font-weight:700;color:var(--mute)}
.ev{border-radius:4px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev.w{background:#dbeafe;color:#1e3a8a}.ev.p{background:#fce7f3;color:#831843}.ev.d{background:var(--t2)}
:root.dark .ev.w{background:#1e3a8a;color:#dbeafe}:root.dark .ev.p{background:#831843;color:#fce7f3}
#toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:10px;display:flex;gap:10px;z-index:9}
#toast button{background:none;color:inherit;border-color:currentColor}
@media (max-width:600px){main{grid-template-columns:1fr;padding:8px}.day{min-height:64px;font-size:10px}.bar #q{flex-basis:100%}}
/* v2 (4 Nov): wrap by default everywhere — no ellipsis, nothing hidden except optional "Context" notes behind a tap */
.disc,.ev,.it .body,.sec h3,.tile>h2{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.day{overflow:visible}
.it{grid-template-columns:auto 1fr auto}.tg{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:44px}
.tr{display:flex;flex-direction:column;align-items:center;font-size:10px;color:var(--mute);cursor:pointer;line-height:1.1}
.tr input{width:18px;height:18px;margin:0;accent-color:var(--c);cursor:pointer}.tr.on{color:var(--c);font-weight:700}
.ctx summary{font-size:12px;color:var(--c);cursor:pointer;margin-top:2px}.ctx div{white-space:pre-wrap;font-size:13px;color:var(--mute);padding:4px 0}
.where{display:block;font-size:12px;color:var(--mute);text-decoration:none}.sec h3 a{color:var(--c);text-decoration:none}
.ctl{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;background:var(--c);color:#fff;border-radius:14px;padding:12px 16px;font-size:14px}
.ctl span{font-size:18px;font-weight:800;letter-spacing:.01em}.ctl.none{background:color-mix(in srgb,var(--c) 55%,#94a3b8)}
.discseg{grid-column:1/-1;margin-top:18px;border:2px solid var(--c);border-radius:16px;background:color-mix(in srgb,var(--c) 5%,var(--bg));overflow:hidden}
.discseg>h2{margin:0;padding:12px 16px;background:repeating-linear-gradient(135deg,var(--c) 0 14px,color-mix(in srgb,var(--c) 85%,#000) 14px 28px);color:#fff;font-size:18px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.discseg>h2 span{font-size:12.5px;font-weight:500;opacity:.9}
.dgrid{display:grid;gap:12px;padding:12px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start}
.dsec{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.dsec h3{margin:0;padding:8px 12px;font-size:14px;background:var(--t2);display:flex;justify-content:space-between}
.dsec .disc{font-size:14px}.dsec .disc p{margin:4px 0;line-height:1.45}.dsec .disc i{display:block;margin-top:2px}
.dref{font:700 12px ui-monospace,monospace;background:var(--c);color:#fff;border-radius:6px;padding:1px 6px;margin-right:8px}
.trk>h2{background:color-mix(in srgb,#16a34a 22%,var(--card))}
.calf{display:flex;flex-wrap:wrap;gap:6px;padding:0 8px 8px}.calf label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-left:5px solid var(--k);border-radius:999px;padding:4px 10px;font-size:13px;cursor:pointer;opacity:.55}
.calf label.on{opacity:1;background:color-mix(in srgb,var(--k) 12%,var(--card))}.calf input{accent-color:var(--k);margin:0}
.flash{animation:fl 2s}@keyframes fl{0%,40%{background:color-mix(in srgb,var(--star) 35%,var(--card))}}
#tabs a small{font-weight:500;opacity:.8}
@media (min-width:601px) and (max-width:1100px){main{grid-template-columns:repeat(2,1fr)}.dgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.dgrid{grid-template-columns:1fr;padding:8px}.ctl span{font-size:16px}.calf label{font-size:12px}}

.discseg .disc.urgent{border-left:4px solid #d64541}.discseg h3 span.red{background:#d64541;color:#fff;border-radius:9px;padding:0 6px}
.ctlb{font-size:.7em;font-style:normal;color:#64748b;border:1px solid #cbd5e1;border-radius:6px;padding:0 4px}
@media print{header .bar,#toast{display:none!important}body{background:#fff}.tile,.discseg{break-inside:avoid}}
/* v4 (4 Nov): smart masonry layout, small track box, team tags, sticky header fix */
main{display:block}main>*+*{margin-top:12px}
.mcols{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:12px;align-items:start}.mcol{display:flex;flex-direction:column;gap:12px;min-width:0}
.tile .mcols{padding:10px;gap:10px}.tile .mcol{gap:10px}.tile .mcols .sec{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.dgrid{display:block}
.colb{border:0;background:none;padding:0 6px 0 0;font-size:12px;color:var(--mute);cursor:pointer;line-height:1}
.tile>h2{justify-content:flex-start;gap:4px}.tile>h2 .tt{flex:1}.dsec h3,.discseg>h2{align-items:center}
.tg{min-width:22px;gap:5px;padding-top:1px}
input.tr{width:13px;height:13px;margin:0;accent-color:var(--c);cursor:pointer;opacity:.55}input.tr:checked{opacity:1}input.tr:hover{opacity:.9}
.st{font-size:17px}
.tchips:empty{display:none}.tchips{display:inline-flex;margin-right:6px;flex-wrap:wrap;gap:4px;margin-top:3px;align-items:center}
.tchip{font-size:11px;font-weight:600;line-height:1;padding:3px 7px;border-radius:999px;background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe}
:root.dark .tchip{background:#3b2a6b;color:#ede9fe;border-color:#5b21b6}
.itb{display:inline-flex;gap:4px;margin-top:3px;vertical-align:top}
.ib{font-size:11px;line-height:1;padding:3px 7px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--mute);cursor:pointer}
.ib.on{background:var(--c);border-color:var(--c);color:#fff}.ib.tagb{border-style:dashed}
.ctx{white-space:pre-wrap;font-size:13px;color:var(--mute);padding:4px 0 0}
#tagpop{position:absolute;z-index:30;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:6px;box-shadow:0 8px 24px #0003;min-width:170px;font-size:14px}
#tagpop label{display:flex;gap:6px;align-items:center;cursor:pointer}#tagpop small{color:var(--mute);font-size:11px}
.tsec{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:12px;overflow:hidden}.tsec h3{margin:0;padding:8px 12px;font-size:14px;background:var(--t2);display:flex;justify-content:space-between}
.tsec h3 a{color:var(--c);text-decoration:none}.tsec h4{margin:0;padding:5px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);background:var(--t)}
.teamseg{margin-top:12px}
/* sticky header: own stacking context above all content; anchors/jumps land below it */
header{z-index:20;isolation:isolate;box-shadow:0 2px 6px #0000000f}
html{scroll-padding-top:calc(var(--hdr,120px) + 8px)}.it,.sec,.dsec,.disc,.tile{scroll-margin-top:calc(var(--hdr,120px) + 8px)}
main{position:relative;z-index:0}
.teamseg{margin-top:0}main>.mcols{margin-top:12px}.teamseg .dgrid{display:flex;flex-direction:column;gap:10px;padding:10px}.teamseg .dgrid>.mcols{display:grid}
.teamseg .dgrid>.tsec{align-self:stretch;width:auto}.teamseg{width:100%;box-sizing:border-box}

/* v6 (4 Nov): one item layout everywhere: row 1 code·name·due, row 2 tag chips, row 3 control bar */
.it{display:block!important;padding:8px 10px}.it .body{min-width:0}
.r1{display:flex;gap:6px;align-items:baseline}.r1 .nm{flex:1;min-width:0}.r1 .due{white-space:nowrap;margin-left:auto}
.tchips{display:flex!important;flex-wrap:wrap;gap:4px;margin:5px 0 0}
.tchip{background:var(--tb,#ede9fe)!important;color:var(--tf,#5b21b6)!important;border:1px solid color-mix(in srgb,var(--tf,#5b21b6) 25%,transparent)!important;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px}
:root.dark .tchip{background:color-mix(in srgb,var(--tf) 55%,#111827)!important;color:#fff!important}
.itb{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}
.itb .st{font-size:16px;line-height:1;padding:0 2px;background:none;border:0;cursor:pointer;color:var(--mute)}.itb .st.on{color:#f59e0b}
.itb .tr{width:13px;height:13px;margin:0}
.subs li.done{color:var(--mute);text-decoration:line-through}
#tagpop{min-width:220px}#tagin{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg,#fff);color:var(--ink)}
#tagsug{display:grid;gap:2px}.sug{padding:4px 6px;border-radius:6px;cursor:pointer}.sug.sel,.sug:hover{background:color-mix(in srgb,var(--c,#64748b) 14%,transparent)}.sug.new{font-size:13px;color:var(--mute)}
.tcur{display:flex;flex-wrap:wrap;gap:4px}.tcur button{border:0;background:none;color:inherit;cursor:pointer;padding:0 0 0 2px;font-weight:700}
/* v7 helper-bot segments + bot tags */
.helpseg .hgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hcol{background:var(--card,#fff);border:1px solid #cbd5e1;border-top:4px solid #0f172a;border-radius:10px;padding:8px;min-width:0}
.hcol .hname{margin:0 0 6px;font-size:16px}
.hpart{margin:6px 0;padding-top:4px;border-top:1px solid #e2e8f0}
@media (max-width:1100px){.helpseg .hgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.helpseg .hgrid{grid-template-columns:1fr}}
.tchips .tchip.bot,.tcur .tchip.bot,.tchip.bot{background:#0f172a!important;color:#f8fafc!important;border:1px dashed #94a3b8!important}
:root.dark .tchip.bot{background:#e2e8f0!important;color:#0f172a!important}

#lf .gsi{width:100%;background:#fff;color:#1f2937;border:1px solid #d1d5db;font-weight:600}
#lf .or{margin:.6em 0 .2em;font-size:.85em;color:#6b7280;text-align:center}

.cl{background:none;border:0;color:#64748b;font-size:12px;cursor:pointer;padding:0 4px}.cl:hover{color:#b91c1c;text-decoration:underline}
.subs .cl{margin-left:6px}
#asspop{background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:6px 8px;font-size:12px;box-shadow:0 4px 12px #0002}
