@import url('/static/base.css');
/* Licensed Gilroy files were not supplied. Arial/Helvetica is the documented fallback. */
:root{--paper:#fff;--card:#fff;--ink:#111;--muted:#595959;--line:#d0d0d0;--soft:#f3f3f3;--radius:0;font-family:Arial,Helvetica,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #111;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:700}h1{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.045em;line-height:1.06;margin-bottom:12px;overflow-wrap:anywhere}h2{font-size:1.6rem;letter-spacing:-.035em;line-height:1.15}h3{font-size:1rem}p{font-size:1rem;line-height:1.5}small,.small{font-size:.875rem;line-height:1.45}.muted{color:var(--muted)}.eyebrow{font-size:.8rem;font-weight:700;line-height:1.5}.shell{max-width:1160px;padding:0 40px;margin:auto}.header{display:flex;align-items:center;justify-content:space-between;min-height:94px;border-bottom:1px solid var(--line);gap:20px}.wordmark{display:block;flex-shrink:0}.wordmark img{display:block;width:46px;height:auto}.nav{display:flex;gap:24px;align-items:center;font-size:.875rem;font-weight:700}.nav a{text-decoration:none;padding:14px 0}.nav a.active{border-bottom:2px solid #111}.intro{padding:32px 0 24px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.intro p{margin:0}.intro .eyebrow{margin-bottom:10px}.status-pill,.tag{display:inline-flex;align-items:center;border:1px solid #777;font-size:.75rem;padding:7px 9px;line-height:1.2;background:#fff;color:#111}.status-pill{font-size:.875rem;flex-shrink:0}.content-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px;align-items:start}.sidebar,.schedule-main{min-width:0}.personal{background:var(--soft);padding:24px;border-top:3px solid #111}.personal h2{margin:16px 0;font-size:1.8rem}.personal .assigned-time{font-weight:700;font-size:2.5rem;letter-spacing:-.04em;margin:14px 0 8px}.personal form p{margin:12px 0 0}.field{display:grid;gap:7px;margin-bottom:16px}label{font-size:.875rem;font-weight:700}input,select,textarea{width:100%;min-height:46px;padding:11px 12px;border:1px solid #999;border-radius:0;background:#fff;color:#111;min-width:0}input[type=checkbox]{width:20px;min-height:20px;accent-color:#111;flex-shrink:0}textarea{min-height:75px;resize:vertical}.button,.pick{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:#111;border:1px solid #111;color:#fff;border-radius:0;min-height:46px;padding:12px 18px;font-weight:700;font-size:.875rem;text-decoration:none}.button.secondary{background:#fff;color:#111}.button.danger{background:#111;color:#fff;border-width:2px}.button.small{min-height:44px;padding:9px 12px}.button.text{background:transparent;border-color:transparent;color:#111;text-decoration:underline}.button+.button{margin-top:8px}.row-actions .button+.button{margin:0}.personal .button{width:100%}.full{width:100%}.how{padding:20px 0;line-height:1.5}.how summary{font-weight:700;cursor:pointer;margin-bottom:12px}.how p:last-child{margin-bottom:0}.timetable{background:#fff;border:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:22px 24px;border-bottom:1px solid #111}.section-head h2{font-size:1.5rem;margin:0}.live-label{font-size:.75rem;color:var(--muted);white-space:nowrap}.slot{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:90px;padding:18px 24px;border-bottom:1px solid var(--line)}.slot:last-child{border-bottom:none}.slot.now{background:#f1f1f1;border-left:4px solid #111;padding-left:20px}.slot.own{border-left:4px double #111;padding-left:20px}.slot.past{color:#595959}.slot-time{font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700}.slot-time span{display:block;color:var(--muted);font-size:.75rem;font-weight:400;margin-top:5px}.slot-name{font-size:1.05rem;font-weight:700;overflow-wrap:anywhere}.slot-detail{margin-top:6px;font-size:.875rem;color:var(--muted);line-height:1.5}.slot .pick{min-width:88px}.slot .pick:hover,.button:hover{background:#333;color:#fff}.slot-name.available{font-weight:400}.slot.now .slot-name.available{font-weight:700}.table-foot{padding:18px 24px;background:#f7f7f7;display:flex;justify-content:space-between;gap:15px;align-items:center}.table-foot p{margin:0;font-size:.875rem}.footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:32px;padding:24px 0;color:var(--muted);font-size:.75rem;line-height:1.5}.notice,.warning{padding:16px 18px;border:1px solid #777;background:#f5f5f5;margin:0 0 18px;font-size:.875rem;line-height:1.5}.notice{background:#fff}.notice p{font-size:.875rem;margin:10px 0}.notice p.unread{border-left:3px solid #111;padding-left:12px}.notice summary{cursor:pointer;font-weight:700}.warning{border-left:4px solid #111}.error{color:#111;font-weight:700}.empty{padding:60px 0;max-width:680px}.loading{display:grid;place-content:center;min-height:75vh;text-align:center;gap:20px}.loading img{width:65px;justify-self:center}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:40;background:#111;color:#fff;padding:14px 22px;max-width:90vw}#toast:empty{display:none}dialog{border:1px solid #111;padding:30px;border-radius:0;width:min(560px,calc(100% - 28px));color:#111;background:#fff;max-height:85vh}dialog::backdrop{background:#0009}dialog h2{margin-bottom:10px}dialog ul{padding-left:20px}dialog li{line-height:1.6;margin-bottom:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:25px}.dialog-actions .button+.button{margin-top:0}.connection{background:#111;color:#fff;padding:14px 20px;text-align:center;font-size:.875rem}.host-layout{display:grid;gap:25px}.panel{padding:27px;background:#fff;border:1px solid var(--line)}.panel h2{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.row-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.host-toolbar{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.login{max-width:420px;margin:70px auto}.scroll-table{overflow:auto}.editor-table{border-collapse:collapse;width:100%;min-width:650px;font-size:.875rem}.editor-table th{text-align:left;font-size:.75rem;font-weight:700;color:var(--muted);padding:12px 10px;border-bottom:1px solid #111}.editor-table td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}.editor-table input,.editor-table select{min-width:90px}.editor-table td.name{min-width:130px;overflow-wrap:anywhere}.editor-table input.priority{width:95px}.editor-table input.count{width:90px}.editor-table .sub{font-size:.75rem;color:var(--muted);margin-top:6px}.editor-note{margin:18px 0;font-size:.875rem;color:var(--muted)}details.host-section>summary{cursor:pointer;font-weight:700;font-size:1.6rem;margin-bottom:14px}.audit{padding:15px 0;border-bottom:1px solid var(--line);font-size:.875rem;line-height:1.6}.audit summary{cursor:pointer}.check-label{display:flex;align-items:center;gap:8px;font-size:.875rem;font-weight:400;line-height:1.5}.host-hint{margin-top:20px}.turn-count{font-size:2.1rem;font-weight:700;margin-right:8px}.no-margin{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.full-message{padding:18px 24px;background:var(--soft)}.host-layout,.host-layout>.panel{min-width:0}.editor-table .button{white-space:nowrap}.name-hint{font-size:.875rem;font-weight:700}
/* Essential room information has its own distance-readable type scale. */
.room{min-height:100vh;background:#fff;color:#111;padding:0 4vw 3vh}
.room .header{min-height:11vh}.room .wordmark img{width:3.2vw;min-width:40px}.room .nav{font-size:clamp(14px,1.2vw,24px)}
.room-main{display:grid;grid-template-columns:minmax(0,1fr) 25vw;gap:5vw;padding:4vh 0 3vh;align-items:center}
.room-status{font-size:clamp(24px,1.875vw,40px);font-weight:700;line-height:1.2}
.room-current h1{font-size:clamp(60px,5vw,120px);line-height:1.03;letter-spacing:-.045em;margin:2vh 0;overflow-wrap:anywhere}
.room-current h1.player-name{font-size:clamp(60px,5vw,108px)}
.room .countdown{font-size:clamp(56px,5vw,100px);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.room-time,.room-instruction{font-size:clamp(22px,1.65vw,36px);line-height:1.3;margin:1.5vh 0}
.room-next{padding-top:2vh;border-top:1px solid #111;margin-top:3vh}
.room-next h2{font-size:clamp(36px,2.9vw,64px);line-height:1.08;margin:1.5vh 0 0;overflow-wrap:anywhere}
.closing-footer{font-size:clamp(28px,2.5vw,52px);font-weight:700;margin:6vh 0 0}
.qr-panel{align-self:center;text-align:center;min-width:0}
.qr-panel img{width:100%;height:auto;display:block;aspect-ratio:1}
.qr-panel h2{font-size:clamp(24px,1.9vw,40px);line-height:1.2;margin:2vh 0 0}
.room-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3vw;border-top:1px solid #111;padding-top:2vh}
.queue-time{font-size:clamp(22px,1.65vw,36px)}
.room-queue p{margin:1vh 0 0;font-size:clamp(28px,2vw,44px);font-weight:700;overflow-wrap:anywhere;line-height:1.15}
/* Digital signage scales with the portrait canvas; print has separate dimensions. */
.join-screen{height:100svh;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;padding:4vh 7vw;gap:2vh;color:#111;background:#fff}
.join-logo{display:block;width:27vw;height:auto;flex-shrink:0}
.join-screen h1{font-size:13vw;line-height:.98;margin:0;letter-spacing:-.045em;flex-shrink:0}
.join-qr{display:block;width:70vw;height:auto;aspect-ratio:1;background:#fff;flex-shrink:0}
.join-bottom{width:100%}.join-screen p{font-size:4.5vw;line-height:1.15;margin:0 0 1.2vh;font-weight:700}
.booking-url{font-size:2.8vw;line-height:1.3;overflow-wrap:anywhere;max-width:86vw}
.how{padding:28px 0 0;color:#111}.how h2{font-size:1.35rem;margin:0 0 8px}
.rule-row{padding:15px 0;border-bottom:1px solid var(--line)}.rule-row h3{font-size:1rem;margin:0 0 6px}.rule-row p{font-size:.925rem;line-height:1.45;margin:0;color:#222}
.rule-note{font-size:.8rem;line-height:1.5;margin:16px 0;color:#444}
.priority-help>summary{display:flex;justify-content:space-between;align-items:center;list-style:none;cursor:pointer;font-size:.875rem;font-weight:700;padding:10px 0}
.priority-help>summary::-webkit-details-marker{display:none}.disclosure-indicator::after{content:'+';font-size:1.25rem}.priority-help[open] .disclosure-indicator::after{content:'−'}
.priority-help p{font-size:.875rem;line-height:1.5;margin:10px 0}.field[hidden]{display:none}
.date-time-control{border:0;padding:0;margin:0 0 16px;min-width:0}.date-time-control legend{font-size:.875rem;font-weight:700;padding:0;margin-bottom:7px}.date-time-fields{display:grid;grid-template-columns:minmax(0,1fr) 6.5rem;gap:10px}.date-time-fields>div{min-width:0}.date-time-fields label{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-bottom:5px}.date-time-fields input{min-width:0;font-variant-numeric:tabular-nums}.editor-table .date-time-control{min-width:260px;margin:0}.editor-table .date-time-control legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:850px){.shell{padding:0 22px}.content-grid{grid-template-columns:240px minmax(0,1fr);gap:22px}.slot{grid-template-columns:78px minmax(0,1fr);padding:17px}.slot.now,.slot.own{padding-left:13px}.slot> :last-child{grid-column:2;justify-self:start}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.shell{padding:0 16px}.header{min-height:82px;gap:14px}.wordmark img{width:39px}.nav{gap:18px;font-size:.8rem}.intro{padding:22px 0;align-items:flex-start;flex-wrap:wrap;gap:12px}.intro h1{font-size:2rem}.intro .eyebrow{font-size:.75rem}.status-pill{font-size:.75rem}.content-grid{display:flex;flex-direction:column;gap:22px}.sidebar,.schedule-main{width:100%}.personal{padding:20px}.personal h2{font-size:1.5rem;margin:8px 0 12px}.personal p{margin-bottom:15px}.section-head{padding:18px 16px;gap:10px}.section-head h2{font-size:1.3rem}.slot{grid-template-columns:72px minmax(0,1fr);gap:10px;padding:17px 16px;min-height:90px}.slot.now,.slot.own{padding-left:12px}.slot> :last-child{grid-column:2;justify-self:start}.slot-time{font-size:.95rem}.slot-name{font-size:1rem}.slot .pick{min-width:100px}.slot-detail{font-size:.8rem}.table-foot{padding:17px;align-items:flex-start;flex-wrap:wrap}.footer{font-size:.7rem;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.panel{padding:20px}.room{padding:0 20px 28px}.room-main{display:flex;flex-direction:column;align-items:stretch;gap:28px;padding:28px 0}.room-current h1,.room-current h1.player-name{font-size:2.8rem}.room-status{font-size:22px}.room-next h2{font-size:30px}.qr-panel{width:70%;align-self:center}.room-queue{grid-template-columns:1fr;gap:20px}.how{padding-top:22px}.rule-row{padding:13px 0}.row-actions{gap:8px}dialog{padding:24px}.personal .assigned-time{font-size:2.2rem}}
@media print{@page{size:A4 portrait;margin:15mm}.join-screen{min-height:0;height:260mm;padding:0;gap:10mm;break-inside:avoid}.join-logo{width:22mm}.join-screen h1{font-size:30pt}.join-qr{width:120mm;height:120mm}.join-screen p{font-size:16pt}.booking-url{font-size:11pt}#toast,dialog{display:none}}
