:root{color-scheme:light;--paper:#f6f4ef;--ink:#162035;--blue:#254ce8;--orange:#ff9b62;--ok:#2f8a5b;--wait:#c98a12;--up:#d4502a;--line:#dddeda;--muted:#626977;--white:#fff;--small:12px;--body:15px;--lead:18px;--title:28px;--hero:44px;--radius:20px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:var(--body)/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;word-break:keep-all}button,input,textarea,select{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #e46f23;outline-offset:4px}button:disabled{cursor:wait;opacity:.6}header{max-width:1120px;margin:auto;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:var(--blue);overflow-wrap:anywhere}.brand{text-decoration:none;color:var(--ink);font-weight:800;font-size:var(--lead);display:flex;align-items:center;gap:12px}.brand small{display:block;font-size:var(--small);letter-spacing:.06em;color:var(--muted)}.brand-mark{display:block;width:44px;height:44px}.brand-mark svg{display:block}main{max-width:1064px;margin:40px auto;padding:0 24px;min-height:65vh}h1,h2,h3,p{margin:0}h1{font-size:var(--hero);line-height:1.18;letter-spacing:-.055em;max-width:650px;margin:12px 0 20px}h2{font-size:var(--title);line-height:1.3;letter-spacing:-.035em}h3{font-size:var(--lead);margin-bottom:12px}p{margin-bottom:16px}.eyebrow{font-size:var(--small);font-weight:800;letter-spacing:.1em;color:var(--blue);text-transform:uppercase}.muted{color:var(--muted)}.small{font-size:var(--small)}.layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}.intro{padding-top:8px}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.tabs button{padding:8px 14px;min-height:44px;border:1px solid var(--line);border-radius:100px;background:transparent}.tabs button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.passport{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 14px 40px #1c29450b}.pass-top{background:var(--blue);color:white;padding:28px;position:relative}.pass-top .muted{color:#dee5ff}.pass-top .serial{position:absolute;right:24px;top:16px;font-size:var(--hero);opacity:.23;font-weight:800}.pass-top h2{margin:16px 0 12px}.pass-body{padding:24px 28px}.pass-body p:last-child{margin-bottom:0}.route{display:flex;gap:0;align-items:center;margin:24px 0 0}.route span{flex:1;border-top:2px solid #ffffff40;padding-top:12px;font-size:var(--small)}.route span:before{content:'';display:block;width:8px;height:8px;border-radius:100%;background:var(--orange);margin-top:-17px;margin-bottom:10px}.badge{display:inline-block;padding:4px 10px;background:#eaf0ff;border-radius:100px;font-size:var(--small);font-weight:700}.pass-top .badge{color:var(--ink);background:white}.caution{background:#fff1e6;border-left:3px solid var(--orange);padding:16px;margin:16px 0;border-radius:0 12px 12px 0}.primary{display:flex;justify-content:center;align-items:center;gap:12px;min-height:52px;background:var(--blue);color:white;border:0;border-radius:12px;font-weight:750;text-decoration:none;padding:12px 20px;width:100%}.quiet,.secondary{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:8px 14px;background:white;color:var(--ink)}.quiet{background:transparent}.text-button{border:0;background:transparent;padding:8px 0;min-height:44px;color:var(--blue);text-decoration:underline;text-underline-offset:4px}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}.actions .primary{width:auto;min-width:200px}.panel{background:white;padding:24px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px}.narrow{max-width:720px;margin:0 auto}.section-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:24px}.timeline{list-style:none;padding:0;margin:24px 0}.timeline li{position:relative;padding:0 0 24px 38px;border-left:1px solid var(--line);margin-left:12px}.timeline li:before{content:attr(data-step);position:absolute;left:-13px;top:0;width:26px;height:26px;display:grid;place-items:center;border-radius:100px;background:#eaf0ff;color:var(--blue);font-size:var(--small);font-weight:800}.timeline li:last-child{padding-bottom:0;border:0}details{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}summary{cursor:pointer;min-height:44px;color:var(--blue);font-weight:650}.scenario-options{display:grid;gap:8px;margin:16px 0}.scenario-options button{text-align:left;line-height:1.6}label{display:block;margin-bottom:16px;font-weight:600}label span{display:block;margin-bottom:6px}input,textarea{width:100%;padding:12px;border:1px solid #ccd0d9;border-radius:12px;background:#fbfbfd;color:var(--ink);min-height:48px}textarea{min-height:120px;resize:vertical;line-height:1.7}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.toolbar .selected{border-color:var(--blue);background:#eaf0ff;color:var(--blue)}.note-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:var(--small);color:var(--muted);margin:16px 0}.notice{padding:12px 16px;background:#eaf0ff;border-radius:12px;margin-bottom:16px}.changed{background:#fff1e6}.list{display:grid;gap:8px}.list button{text-align:left;display:flex;justify-content:space-between;gap:12px}.wrap{white-space:pre-wrap;overflow-wrap:anywhere}.report-row{padding:16px 0;border-bottom:1px solid var(--line)}.report-row dt{font-size:var(--small);color:var(--muted);margin-bottom:6px}.report-row dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.check{display:flex;align-items:start;gap:12px}.check input{width:22px;min-height:22px;flex:none}.danger{color:#aa3a20}.progress{display:flex;gap:8px;padding:0;margin:0 0 24px;list-style:none;font-size:var(--small)}.progress li{flex:1;padding:8px;border-top:3px solid var(--line)}.progress li.active{border-color:var(--blue);color:var(--blue)}#notice:not(:empty){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 24px;max-width:calc(100% - 32px);width:max-content;background:var(--ink);color:white;border-radius:12px;z-index:5;box-shadow:0 6px 32px #0003}footer{max-width:1064px;margin:40px auto;padding:24px;color:var(--muted);font-size:var(--small);border-top:1px solid var(--line)}.skip{position:fixed;top:-80px}.skip:focus{top:8px;left:8px;z-index:9;background:white;padding:12px}.saved-pulse{animation:arrive .35s ease-out}@keyframes arrive{from{transform:translateY(4px);opacity:.5}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}@media(max-width:700px){header{padding:16px 20px}main{padding:0 20px;margin:24px auto}.layout{grid-template-columns:1fr;gap:24px}h1{font-size:32px;margin:8px 0 12px}.intro>p{margin-bottom:8px}.intro .tabs{margin:16px 0 0;gap:6px}.tabs button{padding:8px 12px}.pass-top{padding:20px}.pass-top h2{margin:12px 0}.pass-body{padding:20px}.panel{padding:20px}.two{grid-template-columns:1fr;gap:0}.section-head{margin-bottom:16px}.actions .primary{width:100%}.progress{gap:4px}.progress li{padding:8px 2px}.route{margin-top:16px}footer{margin-top:24px}.toolbar button{flex:1;white-space:nowrap;padding:8px}.caution{padding:12px}}

.seat-card h3{margin:8px 0 4px}.seat-alert{border-color:var(--orange)}
.seat-timeline{list-style:none;padding:0;margin:16px 0}.seat-timeline li{display:grid;grid-template-columns:84px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.seat-timeline time{font-size:var(--small);color:var(--muted)}.seat-timeline time b{display:block;font-size:var(--lead);color:var(--ink)}.seat-timeline p{margin:0}
.seat-changes ul{padding-left:18px;margin:8px 0}.seat-changes del{color:var(--muted)}.seat-changes ins{text-decoration:none;font-weight:700}
.chip{display:inline-block;padding:2px 8px;border-radius:100px;background:#eef0f4;font-size:var(--small);font-weight:700}.chip.warn{background:#ffe2cf;color:#8a3200}
.status-sent{background:#eaf0ff}.status-acknowledged{background:#e6f5ec}.status-resolved{background:#d8f0e0}.status-returned{background:#ffe2cf}
.signal{border-top:1px solid var(--line);padding:12px 0}.signal p{margin:4px 0}
.cand{border-top:1px solid var(--line);padding:12px 0}.cand.conflict{background:#fff7f1}.cand input{width:100%;margin:4px 0}.cand-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
label.inline{display:flex;gap:8px;align-items:center;margin:0}label.inline input{width:auto}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stats div{display:flex;flex-direction:column}.stats b{font-size:var(--title)}.stats span{font-size:var(--small);color:var(--muted)}
textarea.tall{min-height:180px}.seat-list{padding-left:18px}
select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:8px;background:white}
@media (max-width:600px){.cand-row{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.seat-timeline li{grid-template-columns:64px 1fr}}
.kind-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:8px 0}.kind-grid button{text-align:left}
.team{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0}.team-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}.team-row:first-of-type{border-top:0}
.warn-text{color:#8a3200}.status-withdrawn{background:#eef0f4}
@media (max-width:600px){.kind-grid{grid-template-columns:1fr}.team-row{grid-template-columns:1fr}}
.compare{width:100%;border-collapse:collapse;font-size:var(--small)}.compare th,.compare td{border-top:1px solid var(--line);padding:6px;text-align:right}.compare th:first-child,.compare td:first-child{text-align:left}
.entries{padding-left:18px}.entries li{margin-bottom:10px}.checklist{padding-left:18px}code{word-break:break-all;background:#eef0f4;padding:2px 6px;border-radius:6px}
.stats{grid-template-columns:repeat(4,1fr)}
@media (max-width:600px){.compare{display:block;overflow-x:auto}}

/* Today's seat: one-line head with a menu, the next item as a card, a fixed report button. */
.seat-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.seat-head h2{margin:2px 0}.ev-name{display:block;font-size:var(--small)}
details.menu{position:relative;margin:0;border:0;padding:0;flex:none}details.menu summary{list-style:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);font-size:20px;line-height:1}details.menu summary::-webkit-details-marker{display:none}
.menu-list{position:absolute;right:0;top:50px;z-index:4;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px #16203522;padding:6px;min-width:250px;display:grid}
.menu-item{border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:10px;min-height:44px;color:var(--ink)}.menu-item:hover{background:#f2f3f6}
.next-card{background:var(--ink);color:white;border-radius:16px;padding:16px 18px;margin:12px 0;position:relative}.next-k{display:block;font-size:var(--small);color:#aeb7cc;font-weight:700}.next-t{display:block;font:800 30px/1.2 ui-monospace,Consolas,monospace}.next-w{margin:2px 0 0;font-weight:700;font-size:var(--lead)}.next-p{margin:2px 0 0;color:#cdd3e1;font-size:var(--small)}.next-in{position:absolute;right:16px;top:16px;background:#ffffff1f;border-radius:100px;padding:4px 10px;font-size:var(--small);font-weight:700}
.seat-timeline li.past{opacity:.45}.seat-timeline li.next time b{color:var(--blue)}.chip.up{background:#fbe6dd;color:var(--up)}
.chg-head{color:var(--up);font-weight:800;font-size:var(--small)}.intro-once .actions{margin-top:8px}.intro-once p{margin:0}
.fab{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;width:min(688px,calc(100% - 32px));min-height:54px;border:0;border-radius:16px;background:var(--blue);color:white;font-weight:800;font-size:16px;box-shadow:0 8px 24px #254ce855;z-index:3}
.has-fab{padding-bottom:84px}
@media(max-width:700px){.seat-head h2{font-size:22px;line-height:1.35}.brand small{display:none}.brand-mark,.brand-mark svg{width:36px;height:36px}header{padding:12px 20px}}

/* Round trip on every report: sent ─ seen ─ done, with the status colours on dots and lines only. */
.trip{display:flex;align-items:flex-start;margin:10px 0 6px}.trip-s{display:flex;flex-direction:column;align-items:center;width:92px;flex:none;text-align:center;font-size:11.5px;color:var(--muted);line-height:1.35;position:relative;z-index:1}.trip-s i{width:14px;height:14px;border-radius:50%;border:2px solid #c7c9c4;background:white;margin-bottom:4px}.trip-s b{color:var(--ink);font-size:12px}
.trip-s.on i{background:var(--ok);border-color:var(--ok)}.trip-s.wait i{border-color:var(--wait);box-shadow:0 0 0 4px #c98a1222}.trip-s.wait span{color:var(--wait)}.trip-s.up i{background:var(--up);border-color:var(--up)}.trip-s.up b,.trip-s.up span{color:var(--up)}
.trip-ln{flex:1;height:2px;background:#d6d7d2;margin:7px -28px 0;min-width:24px}.trip-ln.on{background:var(--ok)}
.rep{border-top:1px solid var(--line);padding:14px 0}.rep:first-of-type{border-top:0}.rep-top{margin:0;font-size:var(--small);color:var(--muted)}.rep-body{margin:6px 0 0;font-weight:650;font-size:16px}.rep-note{background:#f1f5f1;border-radius:10px;padding:8px 12px;margin:8px 0 0;font-size:14px}
.rep-acts{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-top:8px}.rep-acts>.primary{width:auto;min-width:150px;min-height:46px}details.return{margin:0;border:0;padding:0}details.return summary{min-height:46px;display:flex;align-items:center;color:var(--muted);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.sheet-dim{position:fixed;inset:0;background:#16203566;z-index:6}
.sheet{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(720px,100%);max-height:90vh;overflow:auto;background:white;border-radius:22px 22px 0 0;padding:14px 20px 24px;z-index:7;box-shadow:0 -10px 40px #16203533}
.sheet-grab{width:40px;height:5px;border-radius:5px;background:#d6d6d0;margin:0 auto 8px}.sheet-x{position:absolute;right:20px;top:6px}
.sheet-title{font-size:20px;margin:4px 0 2px}.sheet-bigs{display:grid;gap:8px;margin:12px 0}
.sheet-big,.sheet-sos{display:block;width:100%;text-align:left;border:1.5px solid var(--line);border-radius:14px;background:white;padding:12px 14px;min-height:56px;color:var(--ink)}.sheet-big b,.sheet-sos b{display:block;font-size:16px}.sheet-big small,.sheet-sos small{display:block;color:var(--muted);font-size:12.5px;font-weight:400}.sheet-big:disabled,.sheet-row button:disabled{opacity:.45;cursor:not-allowed}
.sheet-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.sheet-sos{border:2px solid var(--up);color:var(--up)}.sheet-sos small{color:var(--ink)}
.sheet-acts{display:flex;gap:16px;align-items:center}.sheet-acts .primary{width:auto;min-width:160px}.sheet-seats{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.sheet-seats .selected{border-color:var(--blue);background:#eaf0ff;color:var(--blue)}

/* Status dots: colour on the dot, words beside it. */
.st{display:inline-flex;align-items:center;gap:6px;font-size:var(--small);font-weight:700;color:var(--muted)}.st i{width:9px;height:9px;border-radius:50%;background:#c7c9c4;flex:none}
.st.ok{color:var(--ok)}.st.ok i{background:var(--ok)}.st.wait{color:var(--wait)}.st.wait i{background:var(--wait)}.st.up{color:var(--up)}.st.up i{background:var(--up)}
/* My seat map: who I report to, me, who reports to me, who I meet. */
.smap{display:flex;flex-direction:column;align-items:center;background:#fbfaf7;border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}
.smap-node{background:white;border:1.5px solid var(--line);border-radius:14px;padding:8px 14px;min-width:200px;max-width:100%;text-align:left}.smap-node small{display:block;color:var(--muted);font-size:var(--small)}.smap-node b{display:block;font-size:15px}
.smap-node.me{border:2px solid var(--blue);box-shadow:0 0 0 5px #254ce814}.smap-node.meets{border-style:dashed}
.smap-edge{position:relative;padding:14px 0;display:flex;justify-content:center}.smap-edge:before{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:2px solid #d6d7d2}.smap-edge .st{position:relative;background:white;border:1px solid var(--line);border-radius:100px;padding:3px 10px}
.smap-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.smap-meets{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);width:100%;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
/* Organizer desk: tabs, the four numbers, the event map and the open reports side by side. */
.wide{max-width:1064px;margin:0 auto}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;background:#ecebe5;border-radius:100px;padding:4px;margin:0 0 18px}.seg-b{border:0;background:transparent;border-radius:100px;padding:8px 16px;min-height:40px;color:var(--muted)}.seg-b[aria-selected=true]{background:white;color:var(--ink);font-weight:700;box-shadow:0 1px 2px #0001}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.kpi{background:white;border:1px solid var(--line);border-radius:16px;padding:14px 18px}.kpi b{display:block;font:800 32px/1.2 ui-monospace,Consolas,monospace}.kpi b.wait{color:var(--wait)}.kpi b.up{color:var(--up)}
.board{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}.board .panel{margin:0}
.omap{position:relative;display:grid;gap:34px;padding:8px 0 4px}.omap-lines{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}.omap-lines path{fill:none;stroke:#c9cbc5;stroke-width:2}.omap-lines path.up{stroke:var(--up);stroke-width:2.5}.omap-lines path.meets{stroke:#9aa0a8;stroke-dasharray:5 5}
.omap-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;position:relative}
.omap-node{position:relative;display:inline-flex;align-items:center;gap:6px;background:white;border:1.5px solid var(--line);border-radius:12px;padding:6px 12px;font-size:13px;font-weight:700}.omap-node small{color:var(--muted);font-weight:400}
.omap-n{position:absolute;right:-8px;top:-10px;background:var(--ink);color:white;border-radius:100px;font-size:11px;padding:1px 7px}.omap-n.up{background:var(--up)}.omap-legend{margin:14px 0 0}
@media(max-width:900px){.board{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}}
.section-head .secondary{white-space:nowrap}

/* Meeting prep. Same tokens as the rest of Hapryu: blue only for actions, status colours on dots and lines.
   Five devices carry the method: the pinned lines card, the sealed prediction ticket, the seat swap that turns
   the stage dark, the second take branching off the same pushback, and changed words marked side by side. */
.prep-entry{display:block;width:100%;text-align:left;background:white;border:1.5px solid var(--ink);border-radius:var(--radius);padding:16px 20px;margin:0 0 20px;color:var(--ink);position:relative}
.prep-entry:after{content:'→';position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--blue)}
.prep-entry-k{display:block;font-size:var(--small);color:var(--muted);font-weight:700}.prep-entry b{display:block;font-size:17px;margin:2px 32px 4px 0}.prep-entry-steps{display:block;font-size:var(--small);color:var(--blue);font-weight:650}
.prep-hero{margin:8px 0 20px}.prep-hero h2{font-size:34px;line-height:1.2;margin:8px 0 12px}.private{display:inline-block;background:#eef0f4;border-radius:100px;padding:6px 14px;font-size:13px;font-weight:650;margin:0}
.private-inline{color:var(--muted)}
.scene-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 16px}
.scene{text-align:left;background:#fbfaf7;border:1.5px solid var(--line);border-radius:14px;padding:14px;color:var(--ink);line-height:1.5}.scene b{display:block;font-size:15.5px;margin-bottom:6px}.scene span{display:block;font-size:13px;color:var(--muted)}.scene small{display:block;margin-top:8px;font-size:12px;font-weight:700}
.scene.on{border:2px solid var(--blue);background:white;box-shadow:0 0 0 5px #254ce814}
.prep-row{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:12px 0;color:var(--ink)}.prep-row .st{grid-row:span 2;align-self:center;min-width:120px}.prep-row small{color:var(--muted)}
.cal{border-left:4px solid var(--ink)}.cal p:first-child{margin-bottom:6px}
.bench-head{margin:4px 0 16px}.bench-head h2{margin:6px 0}.bench-head p{margin:0 0 4px}
.rail{display:flex;list-style:none;padding:0;margin:0 0 18px;gap:4px}.rail li{flex:1;min-width:0}
.rail button,.rail .off{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;border:0;border-top:3px solid var(--line);background:transparent;padding:8px 2px 0;color:var(--muted);font-size:12.5px;text-align:left;min-height:52px}
.rail i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef0f4;font-size:11px;font-weight:800}
.rail li.done button{border-color:var(--ok);color:var(--ink)}.rail li.done i{background:var(--ok);color:white}
.rail li.cur button{border-color:var(--blue);color:var(--blue);font-weight:800}.rail li.cur i{background:var(--blue);color:white}.rail .off{opacity:.5}
.bench-grid{display:grid;grid-template-columns:1fr 260px;gap:16px;align-items:start}
.hud{position:sticky;top:12px;background:white;border:1.5px solid var(--ink);border-radius:16px;padding:12px 14px}
.hud details{margin:0;border:0;padding:0}.hud summary{display:flex;align-items:center;gap:10px;min-height:32px;color:var(--ink);list-style:none}.hud summary::-webkit-details-marker{display:none}.hud summary b{margin-right:auto}
.hud-lane{border-left:3px solid var(--line);padding:2px 0 2px 10px;margin:10px 0 0}.hud-lane small{display:block;font-weight:800;font-size:11.5px;color:var(--muted)}.hud-lane p{margin:2px 0;font-size:14px;font-weight:650}
.hud-lane.ok{border-color:var(--ok)}.hud-lane.up{border-color:var(--up)}.hud-lane.wait{border-color:var(--wait)}
.hud.flash{border-color:var(--up)}.hud-lane.pulse{background:#fbe6dd;border-radius:0 8px 8px 0;animation:pulse 1.6s ease-in-out 2}
@keyframes pulse{50%{background:#f6c8b6}}
.lanes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0 16px}.lane{border-top:3px solid var(--line);padding-top:10px}.lane.ok{border-color:var(--ok)}.lane.up{border-color:var(--up)}.lane.wait{border-color:var(--wait)}.lane .st{margin-bottom:8px}.lane input{margin-bottom:8px;min-height:44px}
.field-label{font-weight:650;margin:14px 0 8px}
.pips{display:flex;gap:8px}.pip{width:48px;height:48px;border-radius:50%;border:2px solid var(--line);background:white;font-weight:800;color:var(--muted)}.pip.on{background:var(--ink);border-color:var(--ink);color:white}.pip:disabled{cursor:default}
.pips-legend{display:flex;justify-content:space-between;max-width:272px;margin:4px 0 16px}
.sealed{background:var(--ink);color:white;border-radius:16px;padding:16px 18px;margin:12px 0;position:relative;overflow:hidden}
.sealed:after{content:'';position:absolute;left:0;right:0;bottom:44px;border-top:2px dashed #ffffff33}
.sealed-top{display:flex;justify-content:space-between;font-size:12px;font-weight:800;color:#aeb7cc}.mono{font-family:ui-monospace,Consolas,monospace;letter-spacing:.08em}
.sealed-text{font-size:19px;font-weight:700;line-height:1.45;margin:10px 0 22px}
.sealed-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:#cdd3e1}.sealed .pip{width:24px;height:24px;font-size:11px;border-width:1.5px;border-color:#ffffff44;background:transparent;color:#cdd3e1}.sealed .pip.on{background:white;color:var(--ink);border-color:white}.sealed .pips{gap:4px}
.seats-pair{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0}.seat-tok{border:1.5px solid var(--line);border-radius:100px;padding:10px 18px;font-weight:700;background:white}.seat-tok.me{border-color:var(--blue);color:var(--blue)}.swap{font-size:22px;color:var(--muted)}
.stn.flipped{background:var(--ink);color:white;border-color:var(--ink)}.stn.flipped .eyebrow{color:#aeb7cc}.stn.flipped h3{font-size:26px;margin:4px 0 14px}.stn.flipped label span{color:#e3e7f1}
.stn.flipped textarea,.stn.flipped input{background:#ffffff12;border-color:#ffffff33;color:white}
.secret{background:#ffffff10;border:1px dashed #ffffff55;border-radius:14px;padding:12px 14px;margin:0 0 14px}.secret small{display:block;color:#ffb48a;font-weight:800;font-size:12px}.secret p{margin:4px 0 0}
.bubble{border-radius:16px;padding:10px 14px;margin:8px 0;max-width:88%}.bubble small{display:block;font-size:11.5px;font-weight:700;opacity:.75;margin-bottom:2px}.bubble p{margin:0;font-size:15.5px}
.bubble.from-me{background:#eaf0ff;color:var(--ink);margin-left:auto;border-bottom-right-radius:4px}
.bubble.from-them{background:#f1efe9;color:var(--ink);border-bottom-left-radius:4px;border-left:3px solid var(--wait)}.bubble.cut{border-left-color:var(--up)}
.prepared{font-weight:600}
.quote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--line);background:#fbfaf7;border-radius:0 12px 12px 0}.quote small{display:block;color:var(--muted);font-size:12px}.insight{background:#fff6dc;border-radius:12px;padding:10px 14px}
.knobs{background:#fbfaf7;border:1px solid var(--line);border-radius:14px;padding:4px 14px 12px;margin:12px 0}.knobs .field-label{margin:10px 0 6px}.knob{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0}.knob small{width:64px;font-weight:700}.knob .seg{margin:0}.knobs.fixed{opacity:.75}
.track{border-left:2px solid var(--line);margin:16px 0 0 12px;padding-left:20px}
.turn{position:relative;margin:0 0 6px}.turn>i{position:absolute;left:-33px;top:2px;width:24px;height:24px;border-radius:50%;background:var(--ink);color:white;font:800 12px/24px system-ui;text-align:center;font-style:normal}.turn.them>i{background:var(--wait)}
.taps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}.tap{min-height:48px;padding:8px 16px;border:1.5px solid var(--line);border-radius:12px;background:white;color:var(--ink);font-weight:650}.tap.on{border-color:var(--ink);background:var(--ink);color:white}
.tap.ok.on{background:var(--ok);border-color:var(--ok)}.tap.up.on{background:var(--up);border-color:var(--up)}.tap.wait.on{background:var(--wait);border-color:var(--wait)}
.take-done{background:#fbfaf7;border:1px solid var(--line);border-radius:14px;padding:12px 14px}.take-done p{margin:6px 0}
.fork{margin:10px 0 4px 12px;padding:6px 0 6px 20px;border-left:2px dashed var(--blue);color:var(--blue);font-weight:700;font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip-b{min-height:44px;padding:6px 14px;border:1.5px solid var(--line);border-radius:100px;background:white;color:var(--ink)}.chip-b.on{border-color:var(--blue);background:#eaf0ff;color:var(--blue);font-weight:750}
.cmp-head{margin:12px 0}.cmp-head>span:first-child{font-size:12px;font-weight:800;color:var(--muted)}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 16px}.take-col{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;background:white}.take-col.slipped{border-color:var(--up)}
.take-col .reply{font-size:15.5px;line-height:1.7}.take-col mark{background:#dfe8ff;color:var(--blue);border-radius:4px;padding:0 2px;font-weight:700}.take-col s{color:#9aa0a8}
.ticket{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.ticket .sealed{margin:0}.ticket-arrow{font-size:26px;color:var(--muted)}
.actual{border:1.5px solid var(--line);border-radius:16px;padding:14px 16px;background:white}.actual small{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.actual p{margin:6px 0}.note-line{border-top:1px solid var(--line);padding-top:8px;font-size:14px}
.prep-entry-who{display:block;font-size:14px;margin:0 32px 6px 0}
.hud-pred{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}.hud-pred small{display:block;font-size:11.5px;font-weight:800;color:var(--muted)}.hud-pred p{margin:2px 0 0;font-size:13.5px}
.hud-warn{margin:10px 0 0;font-size:12.5px;font-weight:700;color:var(--up)}
.ready{border:1.5px solid var(--ok);border-radius:14px;padding:12px 14px;margin:0 0 12px;background:#f3faf6}.ready p{margin:4px 0 0}
.danger-zone{margin-top:24px}.danger-zone summary{color:var(--muted);font-weight:500}
@media(max-width:860px){.hud:has(details[open]){position:relative}.hud.flash summary b:after{content:' · 흔들림';color:var(--up)}html[lang=en] .hud.flash summary b:after{content:' · slipped'}.bench-grid{grid-template-columns:1fr}.hud{order:-1;top:0;z-index:2;border-radius:0 0 14px 14px;margin:0 -20px;border-width:0 0 1.5px;box-shadow:0 6px 16px #16203514}.bench-grid>div:first-child{order:1}}
@media(max-width:700px){.scene-pick,.lanes,.cmp{grid-template-columns:1fr}.prep-hero h2{font-size:28px}.rail li:not(.cur) button>span,.rail .off>span{display:none}.rail button,.rail .off{align-items:center;min-height:40px}.ticket{grid-template-columns:1fr}.ticket-arrow{transform:rotate(90deg);justify-self:center}.pip{width:44px;height:44px}.bubble{max-width:100%}.knob small{width:100%}}

/* Pulse: one row of taps at the top of a seat. Status colours on the dot only; the chosen one is filled ink. */
.pulse{background:#fbfaf7;border:1px solid var(--line);border-radius:16px;padding:10px 12px 8px;margin:4px 0 12px}
.pulse-q{margin:0 0 6px;font-size:var(--small);font-weight:800;color:var(--muted)}
.pulse-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:6px}
.pulse-b{white-space:nowrap;min-height:52px;border:1.5px solid var(--line);border-radius:12px;background:white;color:var(--ink);font-weight:700;padding:6px 8px;position:relative}
.pulse-b:before{content:'';display:block;width:8px;height:8px;border-radius:50%;margin:0 auto 3px;background:#c7c9c4}.pulse-b.here:before{background:var(--ok)}.pulse-b.away:before{background:var(--wait)}
.pulse-b.on{background:var(--ink);border-color:var(--ink);color:white}
.pulse-note{margin:8px 0 0}
.eta-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;padding:10px;border-radius:12px;background:white;border:1.5px solid var(--wait)}.eta-pick>span{width:100%;font-weight:700;font-size:14px}
/* Exit gate: a card of what is left; segments fill as items get done, then it turns into one green line. */
.exit{border:1.5px solid var(--ink);border-radius:16px;padding:12px 14px;margin:12px 0}
.exit-head{display:flex;justify-content:space-between;align-items:baseline}.exit-count{font:800 20px/1 ui-monospace,Consolas,monospace}
.exit-bar{display:flex;gap:4px;margin:8px 0 6px}.exit-bar i{flex:1;height:6px;border-radius:6px;background:#e4e3dd}.exit-bar i.on{background:var(--ok)}
.exit ul{list-style:none;padding:0;margin:0}.exit li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.exit li:first-child{border-top:0}.exit li p{margin:2px 0 0}.exit li.done b{color:var(--muted)}
.exit-box{width:44px;height:44px;border-radius:12px;border:2px solid var(--line);background:white;display:grid;place-items:center;font-weight:800;color:white}.exit-box.on{background:var(--ok);border-color:var(--ok)}.exit-box.auto{width:28px;height:28px;border-radius:50%;margin:0 8px;font-size:13px}
.exit-n{font-weight:800;font-size:14px;color:var(--wait);white-space:nowrap}.exit-auto{display:block;font-size:12px}.exit-n.ok{color:var(--ok)}
.exit.ready{border-color:var(--ok);background:#f3faf6;display:flex;flex-direction:column;gap:4px}.exit.ready b{color:var(--ok)}
.roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.roster-g{background:#fbfaf7;border:1px solid var(--line);border-radius:14px;padding:10px 12px;min-height:84px}.roster-t{margin:0 0 6px}
.roster-names{list-style:none;margin:0;padding:0;display:grid;gap:6px}.roster-names li{background:white;border:1px solid var(--line);border-radius:10px;padding:6px 10px}.roster-names li b{display:block;font-size:13px}.roster-names li span{font-size:12px;color:var(--muted)}.roster-names li.late{border-color:var(--up)}.roster-names li.late span{color:var(--up);font-weight:700}
@media(min-width:901px){.kpis{grid-template-columns:repeat(5,1fr)}}
.gate-list{padding-left:20px}.gate-list li{margin:6px 0}
@media(max-width:700px){.pulse-b{font-size:14px;padding:6px 4px}}

/* Easy screen: five labelled tabs, one card at a time. Body text 18px+, one large blue button per card,
   secondary text darker than the old muted grey, nothing icon-only. "Larger text" scales everything a step. */
.easy{--e-k:15px;--e-h:25px;--e-p:18px;--e-btn:20px;--e-btn-h:60px;--e-sub:#4a5160;max-width:560px;margin:0 auto;padding-bottom:96px}
.easy.big{--e-k:17px;--e-h:31px;--e-p:22px;--e-btn:24px;--e-btn-h:72px}
.e-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px}.e-top>div{min-width:0}.e-ev{display:block;font-size:var(--e-k);color:var(--e-sub)}.e-top b{display:block;font-size:calc(var(--e-p) + 3px);line-height:1.3}
.e-size{flex:none;border:2px solid var(--ink);border-radius:12px;background:white;color:var(--ink);font-weight:800;font-size:16px;min-height:48px;padding:6px 12px}.e-size.on{background:var(--ink);color:white}
.e-body{display:flex;flex-direction:column;gap:12px}
.e-card{background:white;border:2px solid var(--ink);border-radius:22px;padding:20px 18px}.e-card.must{border-color:var(--up)}.e-card.ok{border-color:var(--ok)}.e-card.calm{border-color:var(--line)}
.e-k{margin:0 0 6px;font-size:var(--e-k);font-weight:800;color:var(--e-sub)}.e-card.must .e-k{color:var(--up)}.e-card.ok .e-k{color:var(--ok)}
.e-card h2{font-size:var(--e-h);line-height:1.35;margin:0 0 8px;letter-spacing:-.03em}
.e-card p{font-size:var(--e-p);line-height:1.55;margin:0 0 12px}
.e-place{background:#f1f3f9;border-radius:14px;padding:12px 14px;margin:0 0 14px;font-size:calc(var(--e-p) + 1px);font-weight:800}.e-place span{display:block;font-size:var(--e-k);font-weight:600;color:var(--e-sub)}
.e-btn{display:block;width:100%;min-height:var(--e-btn-h);border-radius:16px;font-size:var(--e-btn);font-weight:800;margin:0 0 10px;padding:8px 14px}
.e-btn.main{background:var(--blue);color:white;border:0}.e-btn.sub{background:white;color:var(--ink);border:2px solid var(--line)}
.e-chg{border-top:1px solid var(--line);padding:8px 0}.e-chg:first-of-type{border-top:0}.e-from{color:var(--e-sub);text-decoration:line-through;font-size:var(--e-k)!important;margin:0 0 2px!important}.e-to{font-weight:800;font-size:calc(var(--e-p) + 2px)!important;margin:0!important}
.e-note{font-size:var(--e-k)!important;color:var(--up);font-weight:700}
.e-eta{border:2px solid var(--wait);border-radius:16px;padding:12px;margin:4px 0 0}.e-eta p{font-weight:800;margin:0 0 8px}.e-eta>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.e-chip{min-height:56px;border:2px solid var(--line);border-radius:14px;background:white;color:var(--ink);font-size:var(--e-p);font-weight:800}
.e-left{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:8px}.e-left li{display:flex;gap:12px;align-items:center;background:#f7f7f4;border-radius:14px;padding:12px}.e-left b{display:block;font-size:var(--e-p)}.e-left small{display:block;font-size:var(--e-k);color:var(--e-sub)}
.e-box{width:30px;height:30px;border-radius:9px;border:2.5px solid #c7c9c4;flex:none;background:white}
.e-link{display:inline-block;font-size:var(--e-p);min-height:48px;line-height:48px}
.e-line{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;background:white;border:1px solid var(--line);border-radius:16px;padding:14px 16px;min-height:60px;font-size:var(--e-p);color:var(--ink)}.e-line.must{border:2px solid var(--up)}.e-go{color:var(--e-sub);font-weight:700;font-size:var(--e-k);flex:none}
.e-sec{margin:10px 0 0;font-size:var(--e-k);font-weight:800;color:var(--e-sub)}
.e-calm{margin:0;font-size:var(--e-p);color:var(--ok);font-weight:700;background:white;border-radius:16px;padding:14px 16px}
.e-news{background:white;border:1px solid var(--line);border-radius:16px;padding:12px 14px}.e-news.must{border:2px solid var(--up)}
.e-nh{margin:0;font-size:var(--e-k);font-weight:800;color:var(--e-sub)}.e-nb{margin:4px 0;font-size:var(--e-p);font-weight:700;line-height:1.45}.e-ns{margin:0;font-size:var(--e-k);color:var(--e-sub)}.e-ns.ok{color:var(--ok);font-weight:700}.e-ns.wait{color:var(--wait);font-weight:700}.e-ns.up{color:var(--up);font-weight:700}
.e-contact{background:white;border:1px solid var(--line);border-radius:18px;padding:14px}.e-contact.sos{border:2px solid var(--up)}
.e-ch{display:flex;gap:12px;align-items:center;margin-bottom:10px}.e-av{width:48px;height:48px;border-radius:50%;background:#f1f3f9;display:grid;place-items:center;font-size:24px;flex:none}.e-ch b{display:block;font-size:var(--e-p)}.e-ch small{font-size:var(--e-k);color:var(--e-sub)}
.e-says{display:grid;gap:8px}.e-say{min-height:56px;border:2px solid var(--line);border-radius:14px;background:white;color:var(--ink);font-size:var(--e-p);font-weight:800;text-align:left;padding:8px 14px}.e-say.up{border-color:var(--up);color:var(--up)}
.e-tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(5,1fr);background:white;border-top:1px solid var(--line);padding:6px max(4px,calc(50% - 280px)) calc(8px + env(safe-area-inset-bottom))}
.e-tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:transparent;border-radius:12px;min-height:62px;font-size:15px;font-weight:800;color:#4a5160}.e-tab i{font-style:normal;font-size:22px}.e-tab.on{color:var(--blue);background:#eef2ff}
.easy.big ~ * .e-tab,.easy.big .e-tab{font-size:17px}
.e-badge{position:absolute;top:4px;right:calc(50% - 26px);background:var(--up);color:white;border-radius:100px;font-size:12px;padding:0 6px;line-height:18px}
.must-pick{margin:6px 0 0;font-size:14px;font-weight:700;color:var(--up)}
.e-chg.pin .e-to:before{content:'📌 '}
body:has(.e-tabs) #notice:not(:empty){bottom:96px}

/* Contact: rows open a conversation; the star pins it as a hotline. Messages: mine right, theirs left. */
.e-crow{display:flex;gap:8px;align-items:stretch}.e-copen{flex:1;min-width:0;display:flex;gap:12px;align-items:center;text-align:left;background:white;border:1px solid var(--line);border-radius:18px;padding:12px 14px;min-height:72px;color:var(--ink)}
.e-cmain{flex:1;min-width:0}.e-cmain b{display:block;font-size:var(--e-p)}.e-cmain small{display:block;font-size:var(--e-k);color:var(--e-sub)}.e-last{color:var(--ink)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-cside{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.e-ps{font-size:13px;font-weight:800;color:var(--e-sub)}.e-ps.here{color:var(--ok)}.e-ps.away{color:var(--wait)}
.e-unread{background:var(--up);color:white;border-radius:100px;font-size:14px;font-weight:800;padding:2px 9px}
.e-star{flex:none;width:56px;border:1px solid var(--line);border-radius:18px;background:white;font-size:24px;color:#9aa0a8}.e-star.on{color:#d49b00;border-color:#e6c25a;background:#fff9e3}
.e-hint{margin:0;font-size:var(--e-k);color:var(--e-sub);background:white;border:1px dashed var(--line);border-radius:14px;padding:12px 14px}
.e-thead{display:flex;gap:12px;align-items:center;background:white;border:1px solid var(--line);border-radius:18px;padding:12px 14px}.e-thead b{display:block;font-size:calc(var(--e-p) + 2px)}.e-thead small{font-size:var(--e-k);color:var(--e-sub)}
.e-msgs{display:flex;flex-direction:column;gap:8px;padding:4px 0}.e-msg{max-width:86%;border-radius:18px;padding:10px 14px}.e-msg p{margin:0;font-size:var(--e-p);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.e-msg small{display:block;margin-top:4px;font-size:13px;color:var(--e-sub)}
.e-msg.me{align-self:flex-end;background:#eef2ff;border-bottom-right-radius:4px}.e-msg.them{align-self:flex-start;background:white;border:1px solid var(--line);border-bottom-left-radius:4px}
.e-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px}.e-quick .e-say{text-align:center}
.e-write{display:block;margin:0}.e-write span{display:block;font-size:var(--e-k);font-weight:800;color:var(--e-sub);margin-bottom:6px}.e-write textarea{min-height:80px;font-size:var(--e-p)}
.desk-thread{background:#fbfaf7;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:8px}.dm{margin:4px 0;font-size:14px}.dm.me{color:var(--blue)}.dm small{color:var(--muted)}

/* Prep tied to the schedule: meetings first, a role choice per meeting, stage pills, and the five-minute card. */
.meet-row{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:white;border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin:8px 0 0;min-height:68px;color:var(--ink)}.meet-row.on{border:2px solid var(--blue)}
.meet-t{flex:none;text-align:center;min-width:52px}.meet-t b{display:block;font:800 19px/1.1 ui-monospace,Consolas,monospace}.meet-t small{font-size:12.5px;color:var(--muted)}
.meet-m{flex:1;min-width:0}.meet-m b{display:block;font-size:16.5px}.meet-m small{display:block;font-size:13.5px;color:var(--muted)}
.meet-s{flex:none;font-size:13.5px;font-weight:800;color:var(--blue);text-align:right;max-width:96px}.meet-s.wait{color:var(--wait)}.meet-s.up{color:var(--up)}
.pick{border:2px solid var(--blue)}.pick .roles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 4px}
.role{text-align:left;border:2px solid var(--line);border-radius:14px;background:white;padding:10px 12px;color:var(--ink);min-height:62px}.role b{display:block;font-size:17px}.role small{font-size:13.5px;color:var(--muted)}.role.on{border-color:var(--blue);background:#eef2ff}.role.on b{color:var(--blue)}
.when{display:flex;gap:6px;margin:0 0 12px}.when-b{flex:1;min-height:46px;border-radius:12px;border:1.5px solid var(--line);background:white;color:var(--muted);font-size:14.5px;font-weight:800;padding:4px}
.when-b{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}.when-b small{font-size:11.5px;font-weight:800}.when-b.now{background:var(--ink);border-color:var(--ink);color:white}.when-b.on{outline:3px solid var(--blue);outline-offset:1px}
.nudge{display:block;width:100%;margin:0 0 12px;min-height:52px;border-radius:14px;border:2px solid var(--up);background:#fff4ef;color:var(--up);font-size:16px;font-weight:800;padding:8px 12px}
.cheat{background:var(--ink);color:white;border-radius:22px;padding:18px;margin:0 0 12px}.cheat .k{margin:0 0 6px;font-size:14px;font-weight:800;color:#aeb7cc}.cheat .say1{margin:0 0 6px;font-size:23px;font-weight:800;line-height:1.4}.cheat .say1.dim{font-size:17px;font-weight:600;color:#cdd3e1}.cheat .k2{margin:0 0 10px;font-size:14px;color:#aeb7cc}
.lane-c{border-left:4px solid #ffffff44;padding:2px 0 2px 12px;margin:10px 0}.lane-c small{display:block;font-size:13px;font-weight:800;color:#aeb7cc}.lane-c p{margin:2px 0;font-size:18px;font-weight:700}.lane-c.ok{border-color:#5fbf8a}.lane-c.up{border-color:#ff8a65}.lane-c.wait{border-color:#e0b04a}
.cheat .pred{margin:14px 0 4px}.pred-t{margin:0;font-size:17px}

/* My events: one row per event on this phone; the one I am in is marked, the others open with one tap. */
.e-evrow{display:flex;gap:10px;align-items:center;background:white;border:1px solid var(--line);border-radius:18px;padding:12px 14px;margin:0 0 8px}.e-evrow.cur{border:2px solid var(--blue)}.e-evrow.gone{opacity:.7}
.e-evmain{flex:1;min-width:0}.e-evmain b{display:block;font-size:var(--e-p);line-height:1.3}.e-evmain small{display:block;font-size:var(--e-k);color:var(--e-sub)}.e-evbad{color:var(--up)!important}
.e-evst{display:inline-block;font-size:13px;font-weight:800;border-radius:100px;padding:1px 9px;margin-bottom:4px;background:#eef0f4;color:var(--e-sub)}.e-evst.now{background:#e2f2e8;color:var(--ok)}.e-evst.soon{background:#fff3d6;color:var(--wait)}
.e-evside{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.e-evnow{font-size:14px;font-weight:800;color:var(--blue)}
.e-evopen{min-height:48px;min-width:72px;border:2px solid var(--blue);border-radius:12px;background:white;color:var(--blue);font-size:17px;font-weight:800}.e-evrm{font-size:13px!important;min-height:32px!important}
.e-calm.dim{color:var(--e-sub);font-weight:600}.e-card p.e-flat{margin:0}

/* Translation note on a message, and the group-chat finder. */
.e-msg small.e-tr{color:var(--wait);font-weight:700;margin-top:6px;overflow-wrap:anywhere}
.e-sum{margin:12px 0 0;font-size:var(--e-p);font-weight:700}.e-why{background:#fff3d6;color:var(--wait);border-radius:6px;padding:0 6px}

/* First page (doors) and the event chip. Each event keeps one of six colours; the name is always shown with it. */
.ev-c0{--ev:#254ce8}.ev-c1{--ev:#1f8a8a}.ev-c2{--ev:#d9822b}.ev-c3{--ev:#8a5fd1}.ev-c4{--ev:#b0507a}.ev-c5{--ev:#4a6b8a}
.door{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.door-h{font-size:clamp(28px,7vw,40px);line-height:1.25;letter-spacing:-.04em;margin:8px 0 0}
.door-lead{font-size:18px;line-height:1.6;color:var(--muted);margin:0}
.door-sec{margin:10px 0 0;font-size:16px;font-weight:800;color:var(--muted)}
.door-card{background:white;border:2px solid var(--line);border-radius:22px;padding:18px}.door-card.main{border-color:var(--ink)}
.door-card h2{margin:0 0 6px;font-size:23px}.door-card p{margin:0 0 12px;font-size:17px;line-height:1.55;color:var(--muted)}
.door-field{display:block;margin:0 0 10px}.door-field span{display:block;font-size:15px;font-weight:800;margin:0 0 4px}.door-field input{width:100%;min-height:54px;font-size:18px}
.door-btn{width:100%;min-height:58px;font-size:19px;font-weight:800}
.door-more{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin:4px 0 0}
.door-ev,.e-evpick{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:white;border:2px solid var(--line);border-radius:18px;padding:12px 14px;min-height:70px;font:inherit;color:var(--ink);cursor:pointer;margin:0 0 8px}
.door-ev i,.e-evpick i{width:14px;align-self:stretch;border-radius:6px;background:var(--ev);flex:none}
.door-ev span,.e-evpick span{flex:1;min-width:0}.door-ev b,.e-evpick b{display:block;font-size:18px;line-height:1.35}.door-ev small,.e-evpick small{display:block;font-size:15px;color:var(--muted);margin-top:2px}
.door-ev em,.e-evpick em{font-style:normal;background:#c4441f;color:white;border-radius:100px;font-size:14px;font-weight:800;padding:2px 9px}
.door-ev u{text-decoration:none;font-size:24px;color:var(--muted)}.door-ev.gone,.e-evpick.gone{opacity:.65}
.e-evpick.cur{border-color:var(--ink);background:#f1f3f9}
.easy .e-top{border-bottom:6px solid var(--ev,var(--line));padding-bottom:10px;margin-bottom:8px}
.e-chip{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:52px;border:2px solid var(--ink);border-radius:14px;background:white;color:var(--ink);font:inherit;font-size:17px;font-weight:800;padding:8px 12px;text-align:left;cursor:pointer}
.e-chip i{width:14px;height:14px;border-radius:4px;background:var(--ev);flex:none}.e-chip span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-chip u{text-decoration:none;color:var(--muted)}
.e-help{flex:none;min-height:52px;min-width:64px;border:2px solid var(--line);border-radius:14px;background:white;color:var(--ink);font-weight:800;font-size:17px;padding:6px 12px}
.e-me{margin:0 0 12px;font-size:16px;color:var(--muted)}.e-me b{color:var(--ink);font-size:18px}
.e-tip{border-radius:16px;padding:12px 14px;margin:0 0 12px;border:1.5px solid}.e-tip p{margin:0;font-size:16px;line-height:1.55;color:var(--ink)}.e-tip.ok{background:#eef7f1;border-color:#9fd2b3}.e-tip.sw{background:#fff8e8;border-color:#e0b04a}
.e-confirm-ev{margin:6px 0 10px}

/* Around me on Today: a two-column grid of the groups that exist; a lone last group spans the row. */
.e-around{background:white;border:1px solid var(--line);border-radius:20px;padding:12px;margin:0 0 12px}.e-around .e-k{margin:0 0 8px}
.e-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}.e-slots .e-slot.wide,.e-slots .e-slot:last-child:nth-child(odd){grid-column:span 2}
.e-slot{width:100%;justify-self:stretch;position:relative;display:flex;flex-direction:column;gap:2px;text-align:left;min-height:76px;border:2px solid var(--line);border-radius:16px;background:white;color:var(--ink);font:inherit;padding:10px 12px;cursor:pointer}
.e-slot small{font-size:14px;font-weight:800;color:var(--e-sub,var(--muted))}.e-slot b{font-size:17px;line-height:1.3;overflow-wrap:anywhere}.e-slot span{font-size:15px;color:var(--muted);display:flex;align-items:center;gap:6px}
.e-slot em{position:absolute;top:8px;right:8px;font-style:normal;background:#c4441f;color:white;border-radius:100px;font-size:13px;font-weight:800;padding:1px 8px}
.e-dot{width:10px;height:10px;border-radius:50%;flex:none;background:#c7c9c4}.e-dot.ok{background:var(--ok)}.e-dot.wait{background:var(--wait)}.e-dot.up{background:var(--up)}
.e-tabs.n4{grid-template-columns:repeat(4,1fr)}.e-tabs.n3{grid-template-columns:repeat(3,1fr)}

/* Opening an event, and the confirmation a seat or co-host link shows the first time. */
.ow-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 6px}.ow-step{font-size:15px;font-weight:800;color:var(--muted)}
.ow-prog{display:flex;gap:6px;margin:0 0 14px}.ow-prog i{flex:1;height:6px;border-radius:6px;background:var(--line)}.ow-prog i.on{background:var(--blue)}
.ow-h{font-size:26px;letter-spacing:-.03em;margin:4px 0 6px}.ow-sub{margin:0 0 14px;font-size:16px;line-height:1.55;color:var(--muted)}.ow-h2{font-size:19px;margin:18px 0 8px}
.ow-f{display:block;margin:0 0 12px}.ow-f span{display:block;font-size:15px;font-weight:800;margin:0 0 4px}.ow-f input,.ow-f select{width:100%;min-height:52px;font-size:18px}
.ow-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ow-lab{margin:6px 0;font-size:15px;font-weight:800}.ow-hint{margin:0 0 12px;font-size:14.5px;color:var(--muted)}
.ow-kinds{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 6px}.ow-kind{min-height:56px;border:2px solid var(--line);border-radius:14px;background:white;color:var(--ink);font:inherit;font-size:17px;font-weight:800;padding:8px 10px;cursor:pointer}.ow-kind.on{border-color:var(--blue);background:#eef2ff;color:var(--blue)}
.ow-nav{display:flex;gap:10px;margin:18px 0 8px}.ow-nav .ow-big{flex:1}.ow-nav button{min-height:56px;font-size:18px}.ow-nav.sticky{position:sticky;bottom:0;background:var(--paper);padding:10px 0 12px;margin:14px 0 0}
.ow-wide{width:100%;min-height:52px;margin:0 0 10px}
.ow-host{display:flex;gap:12px;align-items:flex-start;background:white;border:2px solid var(--line);border-radius:18px;padding:12px;margin:0 0 10px}.ow-host>div{flex:1;min-width:0}
.ow-host>i{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:white;font-style:normal;font-weight:900;background:var(--ev,#254ce8)}
.ow-host.c0>i{background:#254ce8}.ow-host.c1>i{background:#d9822b}.ow-host.c2>i{background:#1f8a8a}.ow-host.c3>i{background:#8a5fd1}.ow-host.c4>i{background:#b0507a}.ow-host.c5>i{background:#4a6b8a}
.ow-group{background:white;border:2px solid var(--line);border-radius:18px;padding:12px;margin:0 0 10px}
.ow-count{display:flex;align-items:center;gap:10px;margin:0 0 12px}.ow-count b{min-width:44px;text-align:center;font-size:24px}.ow-count span{font-size:16px;color:var(--muted)}
.ow-step-b{width:52px;height:52px;border-radius:14px;border:2px solid var(--ink);background:white;color:var(--ink);font-size:26px;font-weight:800;cursor:pointer}.ow-step-b:disabled{opacity:.35;cursor:default}
.ow-total{margin:6px 0;font-size:16px;font-weight:800}.ow-sum ul{margin:4px 0 12px;padding-left:20px;line-height:1.7}.ow-sum h3{margin:12px 0 2px;font-size:16px}
.ow-done{background:#eef7f1;border:1.5px solid #9fd2b3;border-radius:16px;padding:12px 14px;margin:0 0 12px}.ow-done b{font-size:19px}.ow-done p{margin:6px 0 0;font-size:16px;line-height:1.55}
.ow-inv{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--line);border-radius:16px;padding:10px 12px;margin:0 0 8px}.ow-inv>div{flex:1;min-width:0}.ow-inv b{display:block;font-size:17px}.ow-inv small{display:block;font-size:14px;color:var(--muted)}.ow-inv.done{opacity:.75}.ow-inv button{flex:none;min-height:48px}
.ow-name{width:100%;min-height:44px;margin:4px 0 0;font-size:16px}.ow-roster{margin:0 0 12px}.ow-roster summary{font-weight:800;cursor:pointer;min-height:44px;display:flex;align-items:center}.ow-roster textarea{width:100%;font-size:16px;margin:6px 0 8px}
.door-seat{font-size:19px;font-weight:800;margin:0 0 14px}

/* Starting alone: choice cards, the schedule list and the quiet invitation tip. */
.ow-choice{display:grid;gap:8px;margin:0 0 14px}.ow-opt{display:flex;flex-direction:column;gap:2px;text-align:left;min-height:68px;border:2px solid var(--line);border-radius:16px;background:white;color:var(--ink);font:inherit;padding:10px 14px;cursor:pointer}
.ow-opt b{font-size:18px}.ow-opt small{font-size:14.5px;color:var(--muted)}.ow-opt.on{border-color:var(--blue);background:#eef2ff}.ow-opt.on b{color:var(--blue)}
.e-tip.solo{background:#f4f0fb;border-color:#c9b6ec}.e-tip.solo p{margin:0 0 8px}

/* Number entry. */
.ow-code{font:800 40px/1.2 ui-monospace,Consolas,monospace;letter-spacing:.12em;margin:4px 0 10px}
.ow-num{margin:0 0 12px}.door-lost{margin:12px 0 4px}.door-lost summary{font-weight:800;cursor:pointer;min-height:44px;display:flex;align-items:center}
.ow-num .small,.door-lost p{font-size:15px;line-height:1.55}
.ow .small,.ow .ow-hint{font-size:15px;line-height:1.55}

/* Audit 2026-11-01: seat duty line, long event names wrap to two lines, candidate rows stack on phones. */
.e-duty{margin:-2px 0 10px;color:var(--muted);font-size:15px;line-height:1.5}.door-duty{margin:4px 0 14px;font-size:16px;line-height:1.5;color:var(--ink)}
.e-chip span{white-space:normal;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cand .ow-two{grid-template-columns:1fr}

.door-lost-b{display:block;margin:6px auto 0;min-height:44px;font-size:16px}

/* Twin run seed 7 (300): five tabs fit a 320px phone; small print at least 13px, footer 14px; every tap target 44px. */
.e-tabs,.e-tabs.n4,.e-tabs.n3{grid-template-columns:repeat(var(--n,5),minmax(0,1fr))}.e-tabs.n4{--n:4}.e-tabs.n3{--n:3}.e-tab{min-width:0;overflow-wrap:anywhere}
@media(max-width:360px){.e-tab{font-size:14px}.easy.big .e-tab{font-size:15px}.e-tab i{font-size:20px}}
:root{--small:13px}footer{font-size:14px;line-height:1.6}.smap-node .st,.smap-edge .st,.st{font-size:13px}
button.text-button{min-height:44px}.brand{min-height:44px}#language{min-height:44px;min-width:44px;font-size:16px}
.omap-node small{font-size:13px}button.text-button{min-width:44px;padding-left:8px;padding-right:8px}
a.e-say{display:flex;align-items:center;justify-content:center;text-decoration:none}

/* What is different from before. */
.e-card.diff{border-color:var(--blue)}.e-diff{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--line)}.e-diff:first-of-type{border-top:0}
.e-dk{margin:0;font-size:15px;font-weight:800;color:var(--muted)}.e-diff p{margin:2px 0;font-size:var(--e-p,17px);line-height:1.5}.e-diff s{color:var(--muted)}.e-diff ul{margin:4px 0;padding-left:20px}
.e-same{margin:0 0 12px;padding:12px 14px;border-radius:14px;background:#eef7f1;color:#1f6b45;font-size:16px;font-weight:700;line-height:1.5}

/* Event guide, materials, interpreter. */
.e-guide .e-nh{font-weight:800}.e-mat{display:flex;align-items:center;min-height:44px;font-size:16px;font-weight:700;color:var(--blue)}
.ow-prev{display:flex;gap:10px;align-items:flex-start;margin:12px 0;font-size:16px;line-height:1.5}.ow-prev input{width:22px;height:22px;flex:none;margin-top:2px}

/* phone notifications */
.e-tip.push{border-left:4px solid var(--brand,#254ce8)}
.e-tip.push p{margin:0 0 10px}
.e-steps{margin:6px 0 12px;padding-left:22px;line-height:1.55}
.e-steps li{margin:4px 0}
.push-desk{margin:0 0 12px}

/* the list of people (public/roster-ui.mjs) */
.r-top .section-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.r-tools{display:flex;flex-wrap:wrap;gap:8px}
.r-filters{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.r-chip{min-height:44px;padding:6px 12px;border-radius:999px;border:1px solid var(--line,#ddd);background:var(--card,#fff)}
.r-chip[aria-pressed="true"]{background:#254ce8;color:#fff;border-color:#254ce8}
.r-search input{width:100%;min-height:48px;font-size:16px}
.r-group{background:var(--card,#fff);border:1px solid var(--line,#e3e3e3);border-radius:16px;margin:10px 0;padding:6px 10px}
.r-ghead{display:flex;align-items:center;gap:8px;justify-content:space-between}
.r-gtoggle{flex:1;text-align:left;background:none;border:0;min-height:52px;padding:6px 4px;font-size:16px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.r-gtoggle small{flex-basis:100%;color:var(--muted,#666);font-size:14px}
.r-gn{color:var(--muted,#666)}
.r-gduty{margin:0 4px 6px}
.r-rows{list-style:none;margin:0;padding:0}
.r-row{display:grid;grid-template-columns:44px minmax(70px,1fr) minmax(120px,2fr) auto auto;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line,#eee)}
.r-pick{display:flex;align-items:center;justify-content:center;min-height:44px}
.r-pick input{width:24px;height:24px}
.r-seat{font-weight:600;overflow-wrap:anywhere}
.r-name{width:100%;min-height:44px;font-size:16px}
.r-joined{display:block;padding:0 4px}
.r-btns{display:flex;gap:4px;align-items:center}
.r-dots{min-width:44px;min-height:44px}
.r-menu,.r-gedit{grid-column:1/-1;background:var(--soft,#f6f6f2);border-radius:12px;padding:10px;margin:4px 0}
.r-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.danger{color:#b42318}
#r-bar-slot{position:sticky;bottom:12px;z-index:5}
.r-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#11183a;color:#fff;border-radius:16px;padding:10px 12px;margin-top:12px;box-shadow:0 6px 24px rgba(0,0,0,.2)}
.r-bar .text-button{color:#fff}
.r-bar .secondary.danger{color:#fff;background:transparent;border:1px solid rgba(255,255,255,.75)}
.r-move select{min-height:44px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.r-adv{margin-top:16px}
.omap-node.out{opacity:.85;border-style:dashed}
.omap-l b{font-weight:700;margin-left:2px}
.kpi-go{text-align:left;cursor:pointer;font:inherit}
.kpi-go small{display:block;color:var(--muted,#666);font-size:13px;margin-top:4px}
.ow-sumh{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
@media (max-width:640px){.r-row{grid-template-columns:40px 1fr auto auto;grid-template-areas:"pick seat state btns" "pick who who who";row-gap:2px}.r-pick{grid-area:pick}.r-seat{grid-area:seat}.r-who{grid-area:who}.r-state{grid-area:state;font-size:13px}.r-btns{grid-area:btns}.r-joined{padding:2px 0 6px}}

/* checkboxes are at least 24px targets (WCAG 2.5.8); the label around them makes the whole line tappable */
input[type=checkbox]{width:24px;height:24px;min-width:24px;accent-color:#254ce8}
.r-legend summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:#254ce8}
.r-legend p{margin:0 0 6px}

.r-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.r-head h3{margin:0}
.r-filter{min-height:44px;font-size:16px;max-width:100%}
/* the organizer's tabs: two rows of three on a small phone instead of three ragged rows */
@media (max-width:420px){.ow-page .seg,.seg[role=tablist]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.seg[role=tablist] .seg-b{padding:8px 4px;font-size:15px;min-height:44px}}
.r-list{display:flex;flex-direction:column;gap:2px}
.r-li{text-align:left;background:none;border:0;min-height:48px;padding:8px 6px;font-size:16px;border-radius:10px}
.r-li:hover{background:rgba(0,0,0,.04)}
.r-sub{margin:16px 0 6px;font-size:16px}
.r-hostrow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--line,#eee)}
.r-hostrow small{display:block}

.nt textarea{width:100%;font-size:16px}
.nt-list .r-acts{margin-top:4px}
.e-rsvp{margin-top:14px}
.ow-count-n{width:5.5em;min-height:44px;font-size:17px;font-weight:700;text-align:center}

.omap-g{cursor:pointer;font:inherit;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:8px 12px}
.omap-g small{color:var(--muted,#666);font-size:13px}
.roster-more{list-style:none}

.r-join{margin:2px 0 0;color:#254ce8}
.r-joinbox{grid-column:1/-1;border-top:1px solid var(--line,#ddd);margin-top:10px;padding-top:10px}
.r-limit{display:block;margin:8px 0}
.r-limit input{width:7em;min-height:44px;font-size:16px}

/* online link, alert, meals, hours */
.e-card.online{border-left:4px solid #254ce8}
.e-card.online a.e-btn{display:flex;align-items:center;justify-content:center;text-decoration:none;min-height:56px}
.xp-alert{border-left:4px solid #b42318}
.xp-notes{margin:6px 0 0;padding-left:18px}
.xp-hours{width:100%;border-collapse:collapse;margin:8px 0}
.xp-hours th,.xp-hours td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line,#eee);font-size:15px}

/* the event pass */
.plan-panel{border-left:4px solid #254ce8}
.plan-panel.over{border-left-color:#b42318}
.plan-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}

/* privacy and terms */
.legal{padding:24px 16px 64px;line-height:1.7}.legal h1{font-size:26px;margin:12px 0}.legal h2{font-size:18px;margin:24px 0 6px}.legal ul{padding-left:20px}
