:root{--brand:#354259;--accent:#2b7bb9;--accent-hover:#1f5a87;--bg:#f8f9fa;--card:#ffffff;--ink:#1a1a2e;--muted:#6b7a8d;--line:#e2e8f0;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--radius:8px;--tap:44px}*{box-sizing:border-box}#root,body,html{height:100%;margin:0}body{background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;-webkit-text-size-adjust:100%;overscroll-behavior:none}body,button{color:var(--ink)}button{font:inherit;min-height:var(--tap);padding:0 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);cursor:pointer}button:active{transform:translateY(1px)}button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.app{display:grid;grid-template-columns:minmax(300px,38%) 1fr;grid-template-rows:1fr auto;height:100%;grid-gap:1px;gap:1px;background:var(--line)}.app.stranded{grid-template-rows:auto 1fr auto}.app.presenting{grid-template-columns:1fr}.app.presenting>.mapwrap{display:none}.overlay{position:fixed;inset:0;z-index:100;background:var(--bg);overflow:auto;padding:16px}.panel{background:var(--card);overflow:auto;scroll-padding-top:var(--sticky-top,56px)}.stack{display:flex;flex-direction:column;gap:10px;padding:12px}.jobbar{position:relative;z-index:20;display:flex;align-items:center;gap:8px;padding:4px 12px;background:var(--card);border-bottom:1px solid var(--line)}.jb-back{flex:none;font-weight:600;padding:0 12px;white-space:nowrap}.jb-name{flex:0 100 auto;min-width:0;max-width:150px;display:flex;flex-direction:column;line-height:1.2}.jb-name>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jb-name>span{font-size:12px;color:var(--muted)}.jb-who{display:flex;align-items:baseline;gap:5px;min-width:0}.jb-who>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jb-num{flex:none;font-style:normal;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.jb-right{flex:none;display:flex;align-items:center;gap:6px;margin-left:auto}.jobbar .tabwrap{flex:1 1}.jobbar .tabs{padding-bottom:0}.jobbar .tabs>button{padding:0 9px}.savestatus{display:inline-flex;align-items:center;gap:6px;padding:0 10px;min-width:44px;justify-content:center}.savetext{font-size:13px;white-space:nowrap}.saveshort{display:none}.jb-more{min-width:44px;padding:0;font-size:20px;line-height:1}.recpill{display:contents}.recpill>button{display:inline-flex;align-items:center;white-space:nowrap}.pop-back{position:fixed;inset:0;z-index:55}.pop{position:absolute;top:100%;right:8px;z-index:60;width:min(380px,calc(100% - 16px));display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 6px 24px rgba(26,26,46,.18)}.modal-back{position:fixed;inset:0;z-index:90;background:rgba(26,26,46,.4);overflow:auto;padding:16px}.modal-card{max-width:560px;margin:6vh auto;border-radius:var(--radius);padding:12px}.modal-card,.wallrow{background:var(--card)}.wallrow{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;gap:8px;padding:6px 0;margin:-6px 0}.wallrow>.tabwrap{flex:1 1;min-width:0}.undoredo{flex:none;display:flex;flex-wrap:wrap;gap:6px;max-width:200px}.undoredo .hint{flex-basis:100%;font-size:12px;line-height:1.25}.undoredo .undo-info{min-width:44px;padding:0;color:var(--muted)}.row{gap:8px;align-items:center;flex-wrap:wrap}.row,.tabs{display:flex}.tabs{gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.tabs::-webkit-scrollbar{display:none}.tabs>button{flex:0 0 auto;white-space:nowrap}.tabwrap{position:relative;min-width:0}.tabwrap:after,.tabwrap:before{content:"";position:absolute;top:0;bottom:2px;width:40px;pointer-events:none;opacity:0;transition:opacity .15s}.tabwrap:before{left:0;background:linear-gradient(to right,var(--card) 25%,transparent)}.tabwrap:after{right:0;background:linear-gradient(to left,var(--card) 25%,transparent)}.tabwrap[data-edge=both]:after,.tabwrap[data-edge=both]:before,.tabwrap[data-edge=left]:before,.tabwrap[data-edge=right]:after{opacity:1}.grow{flex:1 1}.h,.muted{color:var(--muted)}.h{font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase}.sheet{touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;display:block}.totalbar{grid-column:1/-1;background:var(--brand);color:#fff;display:flex;gap:18px;align-items:center;padding:10px 14px;min-height:56px}.totalbar b{font-size:19px}.totalbar button{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}.totalbar button[aria-pressed=true]{background:#fff;color:var(--brand);border-color:#fff}.totalbar button.todo{background:#fbbf24;color:var(--brand);border-color:#fbbf24;font-weight:700}.chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:8px 12px;min-height:var(--tap);background:var(--card)}.warnbox{border-left:3px solid var(--warn);background:#fffaf3;padding:10px;border-radius:var(--radius)}.qcard{border:1px solid var(--line);border-radius:var(--radius);padding:10px}.hint{font-size:13px;color:var(--muted)}table.lines{width:100%;border-collapse:collapse;font-size:13px}table.lines td{border-bottom:1px solid var(--line);padding:6px 4px;vertical-align:top}table.lines td.n{text-align:right;white-space:nowrap}.worktop{display:flex;flex-direction:column;gap:12px}.worksheet{height:min(34vh,270px);border:1px solid var(--line);border-radius:var(--radius)}.workside{min-height:120px}.surfacelist{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.surfacelist button{flex:0 0 auto}@media (max-width:820px),(orientation:portrait){.app{grid-template-columns:1fr;grid-template-rows:30vh 1fr auto}.app.stranded{grid-template-rows:auto 30vh 1fr auto}.app.stranded.presenting{grid-template-rows:auto 1fr auto}.totalbar{flex-wrap:wrap;gap:8px;padding:8px 12px;min-height:0}.totalbar>.row{flex:1 0 100%;flex-wrap:nowrap;gap:6px}.totalbar>.row>button{flex:1 1;min-width:0;padding:4px 6px}.totalbar b{font-size:17px}}.uploadpulse{height:100%;width:35%;background:var(--accent);border-radius:2px;animation:uploadpulse 1.6s ease-in-out infinite}@keyframes uploadpulse{0%{transform:translateX(-100%)}to{transform:translateX(300%)}}.mark-pulse{animation:markpulse .8s ease-in-out 3}@keyframes markpulse{0%,to{filter:none}50%{filter:drop-shadow(0 0 6px #f59e0b) drop-shadow(0 0 2px #f59e0b)}}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){.mark-pulse,.uploadpulse{animation:none}.uploadpulse{width:100%;opacity:.5}*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important}}.pinback{position:fixed;inset:0;z-index:200;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:16px}.pinpad{background:var(--card);border-radius:16px;padding:20px;width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px;text-align:center}.pindots{display:flex;justify-content:center;gap:16px;margin-top:6px}.pindots span{width:16px;height:16px;border-radius:50%;border:2px solid var(--accent)}.pindots span.on{background:var(--accent)}.pinerr{color:var(--bad);font-size:14px;min-height:18px}.pinkeys{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.pinkeys button{min-height:60px;font-size:24px;border-radius:12px}.pinforgot{min-height:44px;background:transparent;border:none;color:var(--muted);font-size:12px;opacity:.75;text-decoration:underline}.pinforgot-ask{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:6px;padding-top:4px}.where{display:inline-flex;align-items:center;margin-top:4px;min-height:44px;padding:0 10px;border-radius:999px;font-size:14px;color:var(--brand);background:transparent;border:1px solid var(--line)}.signal-icon{display:none}@media (max-width:767px){.signal-icon{display:inline-flex;align-items:center}.signal-full{display:none!important}.jobbar{padding:3px 8px;column-gap:4px}.jb-who{display:contents}.jb-name>span{display:none}.jb-right{margin-left:0;gap:3px}.jb-right .recpill>button{padding:0 8px}.jb-back{padding:0 6px}.savestatus{padding:0 5px}.savetext{font-size:12px}.savefull{display:none}.saveshort{display:inline}}@media (max-width:1099px){.saveversion{display:none}.jb-name{max-width:110px}.savestatus{padding:0 6px;gap:4px}.savetext{font-size:12px}.savefull{display:none}.saveshort{display:inline}.jobbar .tabs>button{padding:0 6px}}@media (max-width:1023px){.jobbar{flex-wrap:wrap;row-gap:2px}.jb-name{flex:1 1;max-width:none}.jobbar .tabwrap{order:5;flex:1 0 100%}.jobbar .tabs{scroll-snap-type:x proximity;scroll-padding-inline:12px}.jobbar .tabs>button{scroll-snap-align:start}}@media (max-width:767px){.worktop:after{content:"";display:block;height:90px}.app.stranded{grid-template-rows:auto 25vh 1fr auto}}label:has(>input[type=checkbox]){display:flex;align-items:center;gap:10px;min-height:44px}input[type=checkbox]{width:24px;height:24px;flex:none}@media (max-width:767px){.wallrow{display:contents}.undoredo{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--card);padding:4px 0;max-width:none;flex-wrap:nowrap;align-items:center}.undoredo .hint{flex:1 1;flex-basis:0;min-width:0}.panel:not(.mapwrap)>:last-child{margin-bottom:24px}}button.destructive{background:var(--bad);color:#fff;border-color:var(--bad)}.blocker{display:flex;flex-direction:column;gap:10px;padding:16px;font-size:17px;background:#fef2f2;border:2px solid var(--bad);border-radius:var(--radius)}.blocker b{color:#991b1b}@media (min-width:821px) and (orientation:landscape){.blocker{position:-webkit-sticky;position:sticky;bottom:8px;z-index:4;box-shadow:0 6px 24px rgba(26,26,46,.22)}}