:root{--ink: #1b1c1a;--muted: #6b6f6a;--line: #d9dcd6;--bg: #f7f6f2;--panel: #fff;--accent: #1f6f5c;--warn: #b3261e;--ready: #b8860b;--sel: #dbeafe;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);-webkit-text-size-adjust:100%}button,input,select{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:6px 10px;cursor:pointer;min-height:34px}button:hover{border-color:var(--accent)}button.on{background:var(--accent);color:#fff;border-color:var(--accent)}button.on.warn{background:var(--warn);border-color:var(--warn)}button.danger{color:var(--warn)}button.tiny{padding:2px 7px;min-height:26px;font-size:13px}button.link{background:none;border:none;padding:0;text-align:left;color:var(--accent);font-weight:600}.home{max-width:820px;margin:0 auto;padding:20px 16px 60px}.homeHead{display:flex;align-items:baseline;gap:10px}.homeHead h1{margin:0;font-size:26px}.version{color:var(--muted);font-size:13px}.home section{margin-top:26px}.home h2{font-size:16px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.list{list-style:none;padding:0;margin:0 0 10px}.list .row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-bottom:8px}.list .row .link{flex:1 1 200px}.meta{color:var(--muted);font-size:13px}.rowActions{display:flex;gap:6px}.empty{color:var(--muted);font-size:14px;padding:6px 0}.ioBar{display:flex;gap:8px;flex-wrap:wrap}.loading{padding:40px;color:var(--muted)}.toolbar{position:sticky;top:0;z-index:10;background:var(--panel);border-bottom:1px solid var(--line);padding:8px 12px;display:flex;flex-direction:column;gap:6px}.tbRow{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tbRow.chips{gap:5px}.docName{flex:1 1 180px;border:1px solid transparent;border-radius:6px;padding:5px 7px;font-weight:700;font-size:17px;background:transparent}.docName:hover,.docName:focus{border-color:var(--line);background:#fff}.status{color:var(--muted);font-size:12px}.tbHead{gap:8px}.tbToggle{font-weight:600}.toolbar.collapsed{padding:4px 10px}.miniStats{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.bulk{background:#eef4f2;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.bulk select{border:1px solid var(--line);border-radius:6px;padding:5px 6px;background:#fff}.lbl{color:var(--muted);font-size:13px;margin-left:6px}.scaleVal{min-width:46px;text-align:center;font-variant-numeric:tabular-nums;font-size:13px}.chip{border-radius:999px;padding:3px 11px;font-size:13px;min-height:28px;opacity:.5}.chip.on{opacity:1;background:#e8f1ee;border-color:var(--accent);color:var(--accent);font-weight:600}.badge{font-size:.72em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px;white-space:nowrap}.badge.kind{text-transform:uppercase;letter-spacing:.05em}.badge.kind.instance{color:var(--accent);border-color:var(--accent)}.sheet{max-width:900px;margin:0 auto;padding:14px 16px 80px}.printHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:6px}.printHead h1{margin:0}.printMeta{color:var(--muted);font-size:13px}.group{margin-top:16px;break-inside:avoid}.heading{display:flex;align-items:center;gap:8px;margin:0 0 6px;border-bottom:1px solid var(--line);padding-bottom:3px}.heading.selected{background:var(--sel)}.caret{border:none;background:none;padding:0 2px;min-height:auto;font-size:.9em}.count{color:var(--muted);font-size:12px;font-weight:400;margin-left:auto}.headInput{border:1px dashed var(--line);border-radius:5px;padding:2px 6px;font:inherit;flex:1}.items{list-style:none;padding:0;margin:0;columns:2;column-gap:26px}.item{display:flex;align-items:center;gap:8px;padding:3px 4px;break-inside:avoid;-webkit-column-break-inside:avoid;border-radius:5px}.item .text{flex:1}.item.selected{background:var(--sel);outline:1px solid #60a5fa}.item.state-2 .text{text-decoration:line-through;color:var(--muted)}.item.state-3{color:var(--warn);font-weight:600}.item.state-4 .text{text-decoration:line-through;color:#9aa0a6;font-style:italic}.box{flex:none;width:1.35em;height:1.35em;min-height:0;padding:0;border:1.5px solid var(--ink);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.95em;line-height:1;background:#fff}.item.state-1 .box{border-color:var(--ready);color:var(--ready)}.item.state-2 .box{background:var(--accent);border-color:var(--accent);color:#fff}.item.state-3 .box{background:var(--warn);border-color:var(--warn);color:#fff}.item.state-4 .box{background:#9aa0a6;border-color:#9aa0a6;color:#fff}.box.selectBox{border-style:dashed;border-color:var(--accent);color:var(--accent)}.grip{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:.9em;flex:none}.item.dragging,.group.dragging{opacity:.4}.item.dropTarget{box-shadow:inset 0 2px 0 var(--accent)}.items.editing{columns:1}.items.editing .item{border:1px solid transparent}.items.editing .item:hover{border-color:var(--line);background:#fff}.nudge{display:inline-flex;gap:2px;flex:none}.addRow{padding:4px 0}.hint{color:var(--muted);font-size:13px;font-style:italic}.pctTag{color:var(--muted);font-size:.7em}.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.itemInput{flex:1;border:1px solid var(--line);border-radius:5px;padding:2px 6px;min-width:80px}.roomSelect{width:140px;border:1px solid var(--line);border-radius:5px;padding:2px 4px;background:#fff;flex:none}.legend{margin-top:24px;display:flex;gap:16px;color:var(--muted);font-size:12px}@media (max-width: 780px){.items{columns:1}.roomSelect{width:104px}.toolbar{max-height:52vh;overflow-y:auto}.item{padding:6px 4px}.box{width:1.6em;height:1.6em}.toolbar{padding:6px 8px}.sheet{padding:10px 10px 80px}}@media print{:root{--bg: #fff}body{background:#fff}.noprint,.toolbar{display:none!important}.sheet{max-width:none;padding:0}.item.selected{background:none;outline:none}.group{break-inside:avoid}.box{border-color:#000}.grip,.nudge,.pctTag{display:none!important}.item.state-2 .box,.item.state-3 .box,.item.state-4 .box{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{margin:12mm}}.tbRow.mini{gap:5px;padding-bottom:2px}.tbRow.mini button{padding:4px 9px;min-height:30px;font-size:13px}.dashBtn{margin-left:auto}.modalWrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#1416148c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.modal{background:var(--panel);border-radius:14px;padding:20px;max-width:380px;width:100%;box-shadow:0 18px 50px #0000004d;text-align:center}.modal h3{margin:0 0 4px;font-size:18px}.modalSub{margin:0 0 14px;color:var(--muted);font-size:13px}.qr{width:240px;height:240px;image-rendering:pixelated;border-radius:8px}.qr.placeholder{display:grid;place-items:center;background:var(--bg);color:var(--muted);margin:0 auto}.urlBox{display:block;margin:12px 0 8px;font-size:12px;word-break:break-all;color:var(--accent)}.hostPick{display:flex;gap:8px;align-items:center;justify-content:center;font-size:13px;color:var(--muted)}.hostPick select{border:1px solid var(--line);border-radius:6px;padding:4px 6px}.modalNote{color:var(--muted);font-size:12px;margin:10px 0 0;line-height:1.4}.modalActions{display:flex;gap:8px;justify-content:center;margin-top:14px}.dash{max-width:1200px;margin:0 auto;padding:18px 16px 60px}.dashHead{display:flex;align-items:center;gap:12px}.dashHead h1{font-size:22px;margin:0}.dashLive{margin-left:auto;color:var(--muted);font-size:12px}.summary{display:flex;align-items:center;gap:26px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:16px 0}.sumBig{display:flex;flex-direction:column;line-height:1}.sumPct{font-size:44px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.sumLbl{color:var(--muted);font-size:13px;margin-top:4px}.sumGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px 18px;flex:1;font-size:14px;color:var(--muted)}.sumGrid b{color:var(--ink);font-variant-numeric:tabular-nums}.sumGrid .alert b,.alert{color:var(--warn)}.problemBanner{background:#fdeceb;border:1px solid #f3c7c4;color:var(--warn);border-radius:9px;padding:9px 14px;font-size:14px;margin:0 0 16px}.lanes{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.lane{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.laneHead{display:flex;align-items:baseline;gap:10px}.laneName{font-size:16px;flex:1}.lanePct{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#eceee9;margin:10px 0 6px}.seg{display:block;height:100%}.seg.packed{background:var(--accent)}.seg.located{background:var(--ready)}.seg.problem{background:var(--warn)}.seg.notMine{background:#c3c7c1}.laneMeta{display:flex;flex-wrap:wrap;gap:10px;font-size:12.5px;color:var(--ink)}.laneMeta .muted{color:var(--muted)}.spark{width:100%;height:44px;margin:10px 0 4px;display:block}.sparkArea{fill:#1f6f5c21}.sparkLine{fill:none;stroke:var(--accent);stroke-width:1.6}.sparkDot{fill:var(--accent)}.sparkEmpty{color:var(--muted);font-size:12px;padding:12px 0 6px;font-style:italic}.feedHead{margin:10px 0 5px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.feed{list-style:none;padding:0;margin:0}.feedItem{display:flex;gap:8px;align-items:baseline;font-size:13px;padding:2px 0}.feedText{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedState{font-size:11px;border-radius:999px;padding:1px 7px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.feedItem.to-2 .feedState{background:#e8f1ee;color:var(--accent);border-color:var(--accent)}.feedItem.to-3 .feedState{background:#fdeceb;color:var(--warn);border-color:var(--warn)}.feedItem.to-1 .feedState{color:var(--ready);border-color:var(--ready)}.feedWhen{color:var(--muted);font-size:11px;white-space:nowrap}.feedEmpty{color:var(--muted);font-size:13px;font-style:italic;margin:2px 0}.laneActions{display:flex;gap:8px;margin-top:12px}@media (max-width: 780px){.lanes{grid-template-columns:1fr}.summary{gap:16px;padding:14px}.sumPct{font-size:34px}}.identity{gap:8px}.whoami{border:1.5px solid;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600}.whoami em{font-style:normal;opacity:.7;font-weight:400}.viewSwitch{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.viewSwitch button{border:none;border-radius:0;font-size:12.5px;padding:5px 9px;min-height:30px}.viewSwitch button+button{border-left:1px solid var(--line)}.roTag{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:1px 8px}.pcts{margin-left:auto;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.pcts b{color:var(--ink)}.tabs{gap:4px}.tab{font-size:13px;padding:5px 12px;min-height:32px;border-radius:8px 8px 0 0}.panel{border:1px solid var(--line);border-radius:0 8px 8px;padding:8px;background:#fbfbf9;display:flex;flex-direction:column;gap:6px}.panel .tbRow{margin:0}.peopleList{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:5px}.personRow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:14px}.personRow input{border:1px solid var(--line);border-radius:5px;padding:3px 7px;width:140px}.dot{width:11px;height:11px;border-radius:50%;flex:none}.pName{font-weight:600}.pRole{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.pPct{font-variant-numeric:tabular-nums;font-weight:600}.pPct .muted,.personRow .muted{color:var(--muted);font-weight:400;font-size:12px}.youTag{font-size:11px;background:var(--accent);color:#fff;border-radius:999px;padding:1px 8px}.assign{display:inline-flex;gap:3px;flex-wrap:wrap}.assign .tiny{font-size:11px;padding:1px 7px;min-height:22px}.ownerTag,.sharedTag{font-size:10px;color:#fff;background:var(--muted);border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:middle;font-weight:600}.sharedTag{background:#7a8a86}.item.ro .box{opacity:.45;cursor:not-allowed}.item.ro .text{color:var(--muted)}.sheetWrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#14161480;display:flex;align-items:flex-end;z-index:120}.stateSheet{background:var(--panel);width:100%;border-radius:16px 16px 0 0;padding:14px;display:flex;flex-direction:column;gap:6px}.stateSheet h4{margin:2px 0 8px;font-size:15px;text-align:center}.stateOpt{display:flex;align-items:baseline;gap:10px;text-align:left;padding:11px 14px;min-height:46px}.stateOpt.current{border-color:var(--accent);background:#e8f1ee}.optLabel{font-weight:600}.optHint{color:var(--muted);font-size:12.5px}.stateCancel{margin-top:4px;min-height:44px}.text{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.joinPage{max-width:420px;margin:18vh auto;text-align:center;padding:0 20px}.joinPage h1{font-size:24px;margin-bottom:8px}.joinPage p{color:var(--muted)}.peopleProgress{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:4px}.peopleProgress li{display:flex;align-items:center;gap:7px;font-size:12.5px}.ppName{width:74px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ppBar{flex:1;height:6px;background:#eceee9;border-radius:999px;overflow:hidden}.ppBar span{display:block;height:100%}.ppPct{font-variant-numeric:tabular-nums;font-weight:600;width:34px;text-align:right}.ppOf{color:var(--muted);font-variant-numeric:tabular-nums}@media (max-width: 780px){.pcts{margin-left:0;width:100%}.viewSwitch button{padding:5px 7px;font-size:12px}.tab{padding:5px 10px}}.textWrap{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.textWrap .text{display:block}.respBars{display:flex;gap:2px;height:3px;width:100%;max-width:120px}.respBars span{flex:1;border-radius:999px;min-width:6px}.dots{display:inline-flex;gap:2px;align-items:center}.dots .dot{width:9px;height:9px}.assignBtn{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:2px 7px;font-size:11px}.assignBtn.overridden{border-style:solid;border-color:var(--accent)}.colourPick{width:30px;height:26px;padding:0;border:1px solid var(--line);border-radius:5px;background:none;cursor:pointer;flex:none}.assignSheet{background:var(--panel);width:100%;max-width:400px;margin:auto;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px;box-shadow:0 18px 50px #0000004d}.assignSheet h4{margin:0 0 2px;font-size:16px;text-align:center}.assignState{margin:0 0 6px;text-align:center;font-size:12.5px;color:var(--muted)}.assignOpt{display:flex;align-items:center;gap:9px;text-align:left;padding:9px 12px;min-height:42px}.assignOpt.current{border-width:1.5px;font-weight:600}.assignOpt.ghost{opacity:.62;border-style:dashed}.assignActions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.sheetWrap{align-items:center;justify-content:center;padding:16px}@media print{.respBars{-webkit-print-color-adjust:exact;print-color-adjust:exact}.assignBtn,.dots{display:none!important}}.tabSpacer{flex:1}.handover{background:#fff7e6;border:1px solid #e8cf9a;border-radius:8px;padding:6px 10px;font-size:13px}.tbRow.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tbRow.tabs::-webkit-scrollbar{display:none}.section-admin .box{border-radius:50%}.board{padding:10px 14px;max-width:none;margin:0;height:100vh;display:flex;flex-direction:column;gap:8px;background:var(--bg);overflow:hidden}.boardHead{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:10px}.boardHead h1{margin:0;font-size:30px;flex:1}.boardBig{font-size:46px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.boardTop{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}.boardStat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column}.boardStat b{font-size:30px;font-variant-numeric:tabular-nums;line-height:1.1}.boardStat span{color:var(--muted);font-size:13px;margin-top:3px}.boardStat.bad b{color:var(--warn)}.boardStat.warn b{color:var(--ready)}.boardSpark{width:100%;height:130px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.boardGrid{stroke:var(--line);stroke-width:1}.boardNote{color:var(--muted);font-style:italic;font-size:13px}.boardPeople{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:18px}.boardCard{background:var(--panel);border:1px solid var(--line);border-top:4px solid;border-radius:12px;padding:14px}.boardCard header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.boardCard h3{margin:0;font-size:17px;flex:1}.cardPct{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.boardRow{display:flex;align-items:center;gap:9px;font-size:13px;margin-bottom:6px}.rowLbl{width:86px;color:var(--muted)}.boardBar{flex:1;height:9px;background:#eceee9;border-radius:999px;overflow:hidden}.boardBar span{display:block;height:100%}.rowNum{font-variant-numeric:tabular-nums;width:52px;text-align:right}.cardAlert{color:var(--warn);font-size:12.5px;margin:8px 0 0}.boardProblems{margin-top:22px}.boardProblems h2{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--warn)}.boardProblems ul{columns:3;list-style:none;padding:0}.boardProblems li{padding:2px 0;break-inside:avoid}.boardProblems .muted{color:var(--muted);font-size:12px}@media (max-width: 780px){.board{padding:14px 12px 40px}.boardHead h1{font-size:21px}.boardBig{font-size:32px}.boardProblems ul{columns:1}}.tplBar{gap:6px}.modeTag{background:var(--accent);color:#fff;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600;letter-spacing:.02em}.segGroup{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.segGroup button{border:none;border-radius:0;font-size:12.5px;padding:5px 11px;min-height:32px}.segGroup button+button{border-left:1px solid var(--line)}.selBtns{display:inline-flex;gap:2px}.selBtns .tiny{font-size:10.5px;padding:1px 6px;min-height:22px}.addRow{padding:6px 0 2px;break-inside:avoid}.addItem{width:100%;text-align:left;border-style:dashed;color:var(--accent);font-size:13px;padding:7px 10px}.addItem:hover{background:#e8f1ee}.roomOrder{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.roomOrder li{display:flex;align-items:center;gap:8px;font-size:13.5px}.roomName{min-width:130px;font-weight:600}.roomOrder .muted{color:var(--muted);font-size:12px;min-width:24px}.colourRing{display:inline-flex;gap:3px;align-items:center;flex-wrap:wrap}.swatch{width:18px;height:18px;min-height:0;border-radius:50%;padding:0;border:2px solid transparent;cursor:pointer}.swatch.on{border-color:var(--ink);transform:scale(1.18)}.swatch.clash{opacity:.3}.swatch.custom{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);display:grid;place-items:center;border:1px solid var(--line);position:relative}.swatch.custom input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.swatch.custom span{font-size:11px;color:#fff;text-shadow:0 0 2px #000}.addPeople{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:6px}.addPeople input{border:1px solid var(--line);border-radius:7px;padding:7px 10px;min-width:190px}.addHint{color:var(--muted);font-size:12px}.item.drop-before,.item.drop-after{position:relative}.item.drop-before:before,.item.drop-after:after{content:"";position:absolute;left:0;right:0;height:3px;background:var(--accent);border-radius:2px;pointer-events:none}.item.drop-before:before{top:-2px}.item.drop-after:after{bottom:-2px}.addRow .dropHint{color:var(--muted);font-size:11px;font-style:italic;margin-left:8px}.collapseBtns{display:inline-flex;gap:3px}.collapseBtns button{padding:3px 8px;min-height:28px;font-size:15px;line-height:1}.addSectionWrap{margin-top:28px}.addSection{width:100%;padding:14px;border-style:dashed;border-width:2px;color:var(--accent);font-size:15px;font-weight:600}.addSection:hover{background:#e8f1ee}.roomOrder li{padding:3px 0}.roomOrder li.dragging{opacity:.4}.roomOrder .grip{cursor:grab;color:var(--muted)}.roomOrder .roomInput{width:170px;border:1px solid var(--line);border-radius:6px;padding:4px 8px}.ioBar{flex-wrap:wrap;align-items:center}.ioBar h2{width:100%;margin:0 0 4px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}button.primary:hover{filter:brightness(1.08)}.assignOpt{border-width:1.5px}.assignOpt.picked{font-weight:700;box-shadow:0 2px 8px #0000002e}.assignOpt.picked .optHint{opacity:.85}.assignTip{color:var(--muted);font-size:11.5px;text-align:center;margin:4px 0 0}.customColour{width:34px;height:24px;padding:0;border:1px solid var(--line);border-radius:5px}.swatch.custom{background:#fff;color:var(--muted);font-size:13px;line-height:1;border:1px dashed var(--line)}.nameTag{border-radius:999px;padding:3px 11px;font-weight:700;font-size:14px;flex:1}.boardCard header{gap:8px}.hostPick{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--muted)}.unsavedTag{background:#fff3cd;border:1px solid #e8cf9a;color:#7a5b00;border-radius:999px;padding:2px 10px;font-size:12px}.personRail{position:fixed;right:10px;top:45%;transform:translateY(-50%);display:flex;flex-direction:column;gap:5px;z-index:40;background:#fffffff0;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 6px 20px #0000001f;max-height:70vh;overflow-y:auto}.railHead{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:center}.railPerson{border:none;border-radius:8px;font-size:12.5px;font-weight:700;padding:7px 12px;min-width:74px}.railPerson.clear{background:#fff;border:1px dashed var(--line);color:var(--muted);font-weight:400}.boardControls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 4px}.boardControls select{border:1px solid var(--line);border-radius:7px;padding:5px 8px}.bigNum{font-size:30px;font-variant-numeric:tabular-nums;line-height:1.1}.bigNum b,.cardCount b,.rowNum b{color:var(--ink);font-weight:700}.bigNum .of,.cardCount .of,.rowNum .of{color:#9aa0a6;font-weight:400}.pctBlue{color:#1565c0;font-weight:700}.boardStat.bad .bigNum b{color:var(--warn)}.cardCount{margin:6px 0 2px;font-size:17px;font-variant-numeric:tabular-nums}.boardBig.t-done{color:#2e7d32}.boardBig.t-near{color:#1565c0}.boardBig.t-warm{color:#b58900}.boardCard{position:relative;padding-bottom:18px;overflow:hidden}.boardCard.tier-warm{background:#fffaea;border-color:#e8d493}.boardCard.tier-near{background:#eef4fc;border-color:#9dbde8}.boardCard.tier-done{background:#edf7ed;border:2px solid #2e7d32;border-top-width:4px}.cardProgress{position:absolute;left:0;right:0;bottom:0;height:6px;background:#eceee9;display:block}.cardProgress span{display:block;height:100%}.pSpark{width:100%;height:42px;display:block;margin:6px 0}.flatNote{font-size:9px;fill:#9aa0a6}.boardFeed{margin-top:22px}.boardFeed h2{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.boardFeed ul{list-style:none;padding:0;columns:2;column-gap:30px}.boardFeed li{display:flex;gap:10px;align-items:baseline;padding:3px 0;break-inside:avoid}.boardFeed .feedText{flex:1}.boardFeed .muted{color:var(--muted);font-size:12px}.boardFeed .feedWhen{color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}@media (max-width: 780px){.personRail{right:4px;padding:5px}.railPerson{min-width:56px;padding:6px 8px;font-size:11.5px}.boardFeed ul{columns:1}}.boardHead{flex-wrap:wrap;gap:12px 18px}.boardHead h1{flex:0 1 auto}.boardControls{margin:0;flex:1 1 auto;justify-content:center}.boardControls .segGroup button{padding:4px 9px;font-size:12px;min-height:28px}.boardLanes{display:flex;flex-direction:column;gap:14px;margin-top:16px}.lane{background:var(--panel);border:1px solid var(--line);border-top:4px solid;border-radius:12px;padding:14px 16px 18px;position:relative;overflow:hidden}.lane header{display:flex;align-items:center;gap:12px}.lane .nameTag{flex:0 0 auto;min-width:120px;text-align:center}.lane .cardPct{font-size:26px}.lane .cardCount{margin-left:auto;font-size:20px}.laneBody{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(240px,1fr);gap:22px;margin-top:10px}.laneChart{min-width:0}.pSpark{width:100%;height:150px;display:block}.pGrid{stroke:var(--line);stroke-width:1}.laneSplit{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:4px}.laneSplit b{color:var(--ink);font-size:15px;font-variant-numeric:tabular-nums}.laneFeed h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.laneFeed ul{list-style:none;padding:0;margin:0;max-height:168px;overflow-y:auto}.laneFeed li{display:flex;gap:10px;align-items:baseline;font-size:13px;padding:2px 0}.laneFeed .feedText{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.laneFeed .feedWhen{color:var(--muted);font-size:11.5px;white-space:nowrap;font-variant-numeric:tabular-nums}.lane.tier-warm{background:#fffaea;border-color:#e8d493}.lane.tier-near{background:#eef4fc;border-color:#9dbde8}.lane.tier-done{background:#edf7ed;border:2px solid #2e7d32;border-top-width:4px}@media (max-width: 900px){.laneBody{grid-template-columns:1fr;gap:12px}.pSpark{height:120px}.lane .cardCount{margin-left:0;width:100%}.boardControls{justify-content:flex-start}}.items.folded{display:none}@media print{.items.folded{display:block!important}}.heading{cursor:pointer}.heading input,.heading .assignBtn,.heading .selBtns,.heading .nudge{cursor:auto}.item{cursor:pointer}.item.ro,.items.editing .item{cursor:default}.boardHead{padding-bottom:6px;gap:8px 14px;flex:0 0 auto}.boardHead h1{font-size:21px}.boardBig{font-size:34px}.boardTop{margin:0;gap:8px;flex:0 0 auto;grid-template-columns:repeat(4,1fr)}.boardStat{padding:7px 11px;border-radius:9px}.boardStat .bigNum{font-size:21px}.boardStat span{font-size:11.5px;margin-top:1px}.boardLanes{flex:1 1 auto;min-height:0;margin-top:0;display:grid;gap:8px;grid-template-columns:1fr;grid-auto-rows:minmax(0,1fr)}.board[data-lanes="3"] .boardLanes,.board[data-lanes="4"] .boardLanes{grid-template-columns:repeat(2,minmax(0,1fr))}.board[data-lanes="5"] .boardLanes,.board[data-lanes="6"] .boardLanes,.board[data-lanes="7"] .boardLanes,.board[data-lanes="8"] .boardLanes,.board[data-lanes="9"] .boardLanes{grid-template-columns:repeat(3,minmax(0,1fr))}.lane{padding:8px 11px 12px;border-top-width:3px;border-radius:10px;display:flex;flex-direction:column;min-height:0}.lane header{gap:8px;flex:0 0 auto}.lane .nameTag{min-width:0;padding:2px 10px;font-size:13px}.lane .cardPct{font-size:19px}.lane .cardCount{margin:0 0 0 auto;font-size:14px}.laneBody{margin-top:5px;gap:10px;flex:1 1 auto;min-height:0}.laneChart{display:flex;flex-direction:column;min-height:0}.pSpark{flex:1 1 auto;height:auto;min-height:54px}.laneSplit{gap:12px;font-size:11.5px;margin-top:2px}.laneSplit b{font-size:13px}.laneFeed{min-height:0;display:flex;flex-direction:column}.laneFeed h4{margin:0 0 3px;font-size:10px}.laneFeed ul{flex:1 1 auto;max-height:none;overflow-y:auto}.laneFeed li{font-size:12px;padding:1px 0}.cardProgress{height:4px}.boardNote{margin:2px 0;font-size:12px}@media (max-width: 900px){.board{height:auto;overflow:auto}.boardLanes,.board[data-lanes] .boardLanes{grid-template-columns:1fr}.boardTop{grid-template-columns:repeat(2,1fr)}.pSpark{min-height:110px}}.setupRow{gap:10px;align-items:center}.tripName{border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-weight:600;min-width:220px}.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.clearSel{background:#fff3cd;border-color:#d9b34a;color:#6b5200;font-weight:600}.clearSel:hover{background:#ffe9a8;border-color:#b8912f}.tbRow.bulk{box-shadow:inset 0 0 0 1px #cfe0da}.itemInput:focus{outline:2px solid var(--accent);outline-offset:1px}.headerTools{display:inline-flex;align-items:center;gap:4px}.headerTools .segGroup button{padding:4px 9px;font-size:12px;min-height:28px}.headerTools button{padding:3px 9px;min-height:28px}.colSel{border:1px solid var(--line);border-radius:7px;padding:4px 6px;font-size:12px}.miniStats{margin-left:auto;font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted)}.hiddenWarn{background:var(--warn);color:#fff;border-color:var(--warn);font-weight:700;font-size:12px;padding:3px 10px;min-height:28px}.hiddenWarn:hover{filter:brightness(1.1)}.roomsScreen{max-width:620px;margin:0 auto;padding:18px 16px 60px}.roomsScreen h2{margin:0 0 10px;font-size:20px}.roomsScreen .panel{border-radius:10px}.roomsScreen>.primary{margin-top:14px}.laneFeed li.undone .feedText{text-decoration:line-through;color:var(--muted)}.unpackTag{font-size:10px;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:0 6px}.modal .urlBox{display:block;color:var(--accent);text-decoration:underline}.modal .qr{cursor:pointer}.items.editing .itemInput{flex:1 1 40%;min-width:120px}.items.editing .roomSelect{width:200px;flex:0 0 auto}.headChk{width:16px;height:16px;accent-color:var(--accent);flex:none}.bigPct{font-size:26px;font-weight:700;color:#1565c0;font-variant-numeric:tabular-nums;line-height:1;padding-left:4px}.customSwatch{border:2px solid var(--line)}.customSwatch.on{border-color:var(--ink);transform:scale(1.18)}.hiddenColour{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.room-unassigned .heading,.badge.unassigned,.roomSelect.unassigned{background:#fdeceb;border-color:var(--warn);color:var(--warn)}.room-unassigned .heading{padding-left:6px;border-radius:6px 6px 0 0;font-weight:700}.roomSelect.unassigned{font-weight:600}.roomOrder li.unassignedRow .roomInput{background:#fdeceb;border-color:var(--warn);color:var(--warn);font-weight:600}.group.drop-before,.group.drop-after{position:relative}.group.drop-before:before,.group.drop-after:after{content:"";position:absolute;left:0;right:0;height:4px;background:var(--accent);border-radius:2px;pointer-events:none;z-index:2}.group.drop-before:before{top:-3px}.group.drop-after:after{bottom:-3px}.list .row .grip{cursor:grab;color:var(--muted);flex:none}.list .row.dragging{opacity:.4}.list .row.drop-before,.list .row.drop-after{position:relative}.list .row.drop-before:before,.list .row.drop-after:after{content:"";position:absolute;left:0;right:0;height:3px;background:var(--accent);border-radius:2px;pointer-events:none}.list .row.drop-before:before{top:-3px}.list .row.drop-after:after{bottom:-3px}.boardProblems{flex:0 0 auto;max-height:22vh;overflow-y:auto}.boardProblems ul{columns:3;column-gap:24px;margin:4px 0 0}.boardProblems li{display:flex;gap:6px;align-items:baseline}.probWho{font-weight:600;white-space:nowrap}.probWhat{flex:1}.probCount{background:var(--warn);color:#fff;border-radius:999px;padding:0 8px;font-size:12px}.laneFeed ul{scrollbar-width:thin}.tiny.danger{color:var(--warn)}.findBox{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px;width:130px;transition:width .15s}.findBox:focus{width:200px;outline:2px solid var(--accent);outline-offset:1px}.undoToast{position:fixed;left:50%;bottom:18px;transform:translate(-50%);background:var(--ink);color:#fff;border-radius:10px;padding:10px 14px;display:flex;gap:12px;align-items:center;z-index:60;box-shadow:0 8px 24px #0000004d;font-size:14px}.undoToast button{background:transparent;border:1px solid rgba(255,255,255,.5);color:#ffd54f;font-weight:700}.undoToast .tiny{color:#fff;border:none}.printHeader{display:none}@media print{.printHeader{display:block;font-size:13px;margin-bottom:8px;border-bottom:1px solid #000;padding-bottom:4px}}.row-template:hover{background:#fff4e5;border-color:#e0a33a}.row-active:hover{background:#e9f6ec;border-color:#4c9a5d}.row-done:hover{background:#e8f0fb;border-color:#5b87c9}.row-done .link,.dateRange{color:var(--muted)}.addRowItem .addNew{color:var(--accent);font-weight:600}.rowActions button:disabled{opacity:.4;cursor:not-allowed}.homeHead .ioBar{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.homeHead .ioBar .hostPick{font-size:12px}.nameModal{min-width:330px}.nameLabel{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);text-align:left}.nameLabel input{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:15px}.nameError{color:var(--warn);font-size:13px;margin:8px 0 0}.dateRow{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:10px}.dateRow label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.dateRow input{border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:13px}.dateHint{font-size:11.5px;color:var(--muted);padding-bottom:6px}.tripDates{display:inline-flex;align-items:center;gap:5px}.tripDates input{border:1px solid var(--line);border-radius:6px;padding:3px 6px;font-size:12px}.tripDates .to{color:var(--muted);font-size:12px}.dateChip{border:1px dashed var(--line);border-radius:999px;padding:3px 11px;font-size:12.5px;color:var(--muted);min-height:28px}.dateChip:hover{color:var(--accent);border-color:var(--accent)}.homeHead .ioBar .hostPick select{max-width:150px;font-size:12px}.homeHead .ioBar button{padding:4px 10px;min-height:30px;font-size:12.5px}.row.dragging,.item.dragging,.group.dragging,.roomOrder li.dragging{opacity:1;box-shadow:0 4px 14px #00000047}.row-template.dragging{background:#8a5a12;border-color:#6d4610}.row-active.dragging{background:#1f5c2c;border-color:#17471f}.row-done.dragging{background:#1c4478;border-color:#14335a}.row.dragging .link,.row.dragging .meta,.row.dragging .grip,.row.dragging .dateRange{color:#fff}.item.dragging,.roomOrder li.dragging{background:#1f4d40}.item.dragging .text,.item.dragging .badge,.item.dragging .grip{color:#fff}.roomOrder li.dragging .roomInput{background:#1f4d40;color:#fff;border-color:#14332b}.group.dragging>.heading{background:#1f4d40;color:#fff;border-radius:6px 6px 0 0}.row.dragging:before,.row.dragging:after,.item.dragging:before,.item.dragging:after,.group.dragging:before,.group.dragging:after{display:none!important}.dragging-active .list .row:not(.dragging),.dragging-active .items .item:not(.dragging){transition:transform .08s}.list .row[draggable=true]{cursor:grab}.list .row[draggable=true]:active{cursor:grabbing}.list .row[draggable=true] .grip{cursor:inherit}.saveAlways{min-height:30px;padding:4px 12px;font-size:12.5px;font-weight:600}.saveAlways:not(.primary){color:var(--muted)}.selBar{position:sticky;top:0;z-index:30;background:var(--panel);border-bottom:1px solid var(--line);padding:7px 12px;gap:8px;align-items:center}.selBar select{border:1px solid var(--line);border-radius:7px;padding:4px 8px;font-size:12.5px}.selBar .lbl{font-size:12.5px}.groupBar{display:inline-block;width:68px;height:7px;border-radius:4px;background:#e6e8e3;overflow:hidden;flex:none;margin-left:auto;-webkit-print-color-adjust:exact;print-color-adjust:exact}.groupBar>span{display:block;height:100%;border-radius:4px}.groupBar.band-none{border:1px solid #e2a2a0;background:#fdeceb}.groupBar.band-none>span{background:none;width:0!important}.groupBar.band-some>span{background:#e07b1a}.groupBar.band-most>span{background:#e8b400}.groupBar.band-done>span{background:#2e7d32}.heading .count{margin-left:6px}@media print{.groupBar{display:none}}.kindTag{border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;flex:none}.kindTag.tpl{background:#fff4e5;color:#8a5a12;border:1px solid #e0a33a}.kindTag.trip{background:#e9f6ec;color:#1f5c2c;border:1px solid #4c9a5d}.status{display:inline-flex;align-items:center;gap:6px;min-width:148px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.statusDot{width:7px;height:7px;border-radius:50%;background:#b9bdb4;flex:none}.status.busy .statusDot{background:var(--accent);animation:pulseDot 1s ease-in-out infinite}@keyframes pulseDot{50%{opacity:.25}}.qrModal.wide{max-width:720px}.qrBody{display:flex;gap:20px;align-items:flex-start}.qrMain{display:flex;flex-direction:column;align-items:center;gap:8px;flex:none}.qrZoom{padding:0;border:none;background:none;cursor:zoom-in}.qrZoom img{display:block}.modal .qr{width:260px;height:260px;image-rendering:pixelated}.qrFull{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;cursor:zoom-out;padding:2vmin}.qrFull img{width:min(88vmin,100%);height:auto;image-rendering:pixelated}.qrFullFoot{text-align:center;display:flex;flex-direction:column;gap:4px}.qrFullFoot b{font-size:20px}.qrFullFoot code{font-size:13px;color:var(--muted);word-break:break-all}.roster{flex:1;min-width:240px;text-align:left}.roster h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.roster ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.rosterRow{display:flex;align-items:center;gap:6px}.rosterRow.current{background:#eef4f1;border-radius:8px}.rosterPick{flex:1;display:flex;align-items:center;gap:8px;justify-content:flex-start;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13.5px}.rosterName{font-weight:600}.rosterTag{margin-left:auto;font-size:10.5px;color:var(--muted);text-transform:uppercase}@media (max-width: 720px){.qrBody{flex-direction:column;align-items:center}.roster{width:100%}}.boardConfirm{max-width:420px}.boardConfirm h3{margin:0 0 6px;font-size:17px}.authGate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:var(--bg)}.authGate h1{margin:0;font-size:28px}.authSub{color:var(--muted);margin:0}.gsiButton{min-height:44px}.authError{max-width:460px;background:#fdeceb;border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:10px 14px;font-size:13.5px}.authNote{max-width:420px;color:var(--muted);font-size:12.5px;margin:6px 0 0}.roomOrder li .danger.tiny{margin-left:4px}.roomOrder li.unassignedRow{opacity:.9}
