/* Scoped attendance lobby. Existing matches, public sequences and tablets keep their own theme. */
.presence-lobby{--presence-cream:#f3e6c6;--presence-paper:#fffdf7;--presence-ink:#181713;--presence-muted:#625b4e;--presence-line:#cdbc98;--presence-red:#c91f2c;--presence-green:#087b48;box-sizing:border-box;background:var(--presence-cream);color:var(--presence-ink);font-family:Inter,Avenir Next,Avenir,Segoe UI,Arial,sans-serif;padding:clamp(16px,2vw,32px);border-radius:24px;min-width:0}
.presence-lobby *{box-sizing:border-box}.presence-lobby h1,.presence-lobby h2,.presence-lobby h3,.presence-lobby p{margin:0}.presence-lobby button,.presence-lobby input,.presence-lobby select{font:inherit}.presence-lobby button{cursor:pointer}.presence-lobby button:disabled{cursor:not-allowed;opacity:.55}.presence-lobby button:focus-visible,.presence-lobby input:focus-visible,.presence-lobby select:focus-visible,.presence-lobby a:focus-visible{outline:3px solid var(--presence-ink);outline-offset:4px}
.presence-header{display:flex;align-items:center;gap:clamp(14px,2vw,30px);padding-bottom:22px;border-bottom:2px solid var(--presence-line);min-width:0}.presence-logo{width:clamp(64px,7vw,108px);height:clamp(64px,7vw,108px);object-fit:contain;flex:none}.presence-heading{flex:1;min-width:0}.presence-heading h1{font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;font-size:clamp(28px,3.7vw,66px);font-weight:400;line-height:1.05;letter-spacing:.015em;text-transform:uppercase;margin:7px 0 10px}.presence-eyebrow{color:#28513a;font-size:clamp(12px,1.2vw,18px);font-weight:900;text-transform:uppercase;letter-spacing:.075em;overflow-wrap:anywhere}.presence-heading>p:last-child{font-size:clamp(14px,1.1vw,19px);line-height:1.4;color:var(--presence-muted)}
.presence-clock{flex:none;background:var(--presence-red);color:#fffdf7;border:3px solid #8f1720;border-radius:18px;padding:12px 23px;display:grid;justify-items:center;text-align:center;box-shadow:0 5px 0 #8f1720}.presence-clock span{font-size:clamp(13px,1vw,19px);text-transform:uppercase;letter-spacing:.07em;font-weight:900}.presence-clock strong{font-size:clamp(42px,5.3vw,94px);line-height:1.08;font-weight:950;font-variant-numeric:tabular-nums}.presence-clock small{font-size:11px}.presence-clock .is-ending{animation:presence-clock-pulse 1s ease-in-out infinite}.presence-state-badge{padding:15px;border-radius:12px;background:#e6efdd;color:#28513a;font-size:18px;font-weight:900;text-align:center}
.presence-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:2px solid transparent;border-radius:12px;font-size:14px;font-weight:850;line-height:1.2;text-align:center;gap:7px;white-space:normal}.presence-button-main{background:var(--presence-red);color:#fffdf7;border-color:#8f1720;box-shadow:0 3px 0 #8f1720}.presence-button-positive{background:var(--presence-green);color:#fff;border-color:#075a36}.presence-button-quiet{background:var(--presence-paper);color:var(--presence-ink);border-color:var(--presence-line)}.presence-button:hover:not(:disabled){filter:brightness(.96)}.presence-admin-nav{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.presence-admin-nav button:nth-last-child(2){margin-left:auto}.presence-connection{min-height:0;color:#8f1720;font-weight:800;font-size:14px}.presence-connection:not(:empty){padding:10px 12px;margin:10px 0;background:#fff2d0;border:1px solid var(--presence-line);border-radius:10px}
.presence-admin-columns{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(260px,1fr);gap:20px;align-items:start}.presence-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;min-width:0}.presence-section-heading h2{font-size:clamp(20px,1.7vw,29px);line-height:1.18}.presence-section-heading h2 span{color:var(--presence-muted)}.presence-page{color:var(--presence-muted);font-size:14px;white-space:nowrap;font-weight:750}.presence-roster{min-width:0}.presence-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.presence-team{display:flex;align-items:start;gap:12px;background:var(--presence-paper);border:2px solid var(--presence-line);border-radius:18px;padding:16px;min-width:0;position:relative}.presence-team.is-present{border-color:var(--presence-green);background:#f1f7ea}.presence-team-number{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;background:#e6d5ac;font-weight:900;color:var(--presence-ink)}.presence-team.is-present .presence-team-number{background:var(--presence-green);color:#fff}.presence-team-content{min-width:0;flex:1}.presence-team h3{font-size:clamp(18px,1.5vw,27px);font-weight:900;line-height:1.15;overflow-wrap:anywhere}.presence-team p{color:var(--presence-muted);font-size:15px;line-height:1.35;overflow-wrap:anywhere;margin:7px 0 10px}.presence-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:7px;font-size:13px;font-weight:850}.presence-badge-ready{background:#dcefdc;color:#165e36}.presence-badge-waiting{background:#f3e6c6;color:#675237}.presence-team-actions{display:grid;gap:7px;min-width:110px}.presence-team-actions .presence-button{padding:8px;font-size:12px}.presence-admin .presence-roster-grid{grid-template-columns:1fr}.presence-help{margin-top:18px;padding:15px;border:1px solid var(--presence-line);border-radius:14px;line-height:1.5;color:var(--presence-muted);background:var(--presence-paper)}
.presence-waitlist{padding:18px;border:2px solid var(--presence-line);border-radius:18px;background:var(--presence-paper);min-width:0}.presence-waitlist>p{font-size:15px;color:var(--presence-muted);line-height:1.4}.presence-waitlist ol{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}.presence-waitlist li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--presence-line);min-width:0}.presence-queue-rank{display:grid;place-items:center;min-width:32px;height:32px;padding:4px;border-radius:8px;background:var(--presence-cream);font-weight:900}.presence-waitlist li>div{flex:1;min-width:0}.presence-waitlist li strong{display:block;overflow-wrap:anywhere;font-size:16px}.presence-waitlist li small{display:block;margin-top:4px;color:var(--presence-muted)}.presence-queue-check{color:#165e36;font-weight:900;font-size:22px}.presence-empty{color:var(--presence-muted);line-height:1.45}.presence-waitlist>.presence-button{margin-top:12px}.presence-flexible-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.presence-fields input[readonly]{background:#f3efdf;color:#28513a}
.presence-reconfiguration{margin:0 0 20px;padding:22px;background:var(--presence-paper);border:3px solid var(--presence-red);border-radius:18px}.presence-reconfiguration h2{font-size:26px;line-height:1.2;margin:7px 0 10px}.presence-reconfiguration p{line-height:1.45}.presence-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.presence-fields label{display:grid;gap:7px;font-size:15px;font-weight:800;min-width:0}.presence-fields input,.presence-fields select{width:100%;min-height:48px;background:#fff;color:var(--presence-ink);border:2px solid #9e8c69;border-radius:9px;padding:10px 12px;min-width:0}.presence-fields input::placeholder{color:#746b5c}.presence-fields .presence-check{grid-column:1/-1;display:flex;align-items:center;gap:10px;line-height:1.4}.presence-check input{width:23px;height:23px;min-height:0;accent-color:var(--presence-green);flex:none}.presence-form-error{font-size:14px;font-weight:800;color:#8f1720;margin-bottom:12px!important}.presence-form-error:empty{display:none}.presence-form-actions{display:flex;justify-content:flex-end;gap:10px}.presence-modal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:20px;background:rgba(24,23,19,.65)}.presence-modal>section{width:min(700px,100%);max-height:calc(100dvh - 40px);overflow:auto;background:var(--presence-paper);border:2px solid var(--presence-line);border-radius:22px;padding:24px}.presence-modal h2{font-size:25px;margin-bottom:12px}.presence-modal p{line-height:1.4}
.presence-public{width:100%;height:100vh;height:100dvh;min-height:0;border-radius:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(14px,1.6vh,24px);overflow:hidden;padding:clamp(18px,2vw,38px)}.presence-public .presence-header{padding-bottom:clamp(12px,1.5vh,22px)}.presence-public .presence-heading h1{font-size:clamp(30px,3.6vw,68px)}.presence-public .presence-heading>p:last-child{font-size:clamp(14px,1.1vw,21px)}.presence-public-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,1fr);gap:clamp(15px,2vw,32px);min-width:0;min-height:0}.presence-public .presence-roster{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.presence-public .presence-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);min-height:0}.presence-public .presence-team{padding:clamp(11px,1.1vw,22px);align-items:center;gap:10px;min-height:0;overflow:hidden}.presence-public .presence-team h3{font-size:clamp(18px,1.6vw,33px);line-height:1.15;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.presence-public .presence-team p{font-size:clamp(13px,1.05vw,22px);margin:6px 0;line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.presence-public .presence-badge{font-size:clamp(12px,.9vw,18px);padding:4px 7px}.presence-public .presence-section-heading h2{font-size:clamp(22px,1.9vw,36px)}.presence-public-side{display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;min-width:0;min-height:0}.presence-qr{display:flex;align-items:center;gap:16px;padding:18px;background:var(--presence-paper);border:3px solid var(--presence-green);border-radius:18px}.presence-qr-code{width:clamp(115px,10.5vw,210px);flex:none;line-height:0;background:#fff;color:#000}.presence-qr-code svg{display:block;width:100%;height:auto;max-width:100%;aspect-ratio:1}.presence-qr h2{font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;text-transform:uppercase;font-size:clamp(24px,2vw,40px);font-weight:400;line-height:1.1;margin-bottom:8px}.presence-qr p{font-size:clamp(13px,1vw,19px);line-height:1.35;color:var(--presence-muted)}.presence-qr a{display:block;margin-top:8px;font-size:clamp(11px,.75vw,15px);color:#28513a;overflow-wrap:anywhere;font-weight:850}.presence-public .presence-waitlist{min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:clamp(12px,1.2vw,23px)}.presence-public .presence-waitlist ol{min-height:0;flex:1;display:flex;flex-direction:column;gap:0;justify-content:space-evenly;margin-top:8px}.presence-public .presence-waitlist li{padding:clamp(5px,.6vh,10px) 0}.presence-public .presence-waitlist li strong{font-size:clamp(14px,1.1vw,23px);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.presence-public .presence-waitlist>p{font-size:clamp(12px,.95vw,18px)}.presence-public-footer{display:flex;justify-content:space-between;gap:18px;font-size:clamp(13px,1.1vw,22px);font-weight:800;color:#28513a}.presence-public>.presence-connection:not(:empty){position:absolute;bottom:5px;left:20px;right:20px;margin:0;padding:6px;background:var(--presence-paper)}.presence-public-wait{grid-template-rows:auto minmax(0,1fr)}.presence-wait-scene{display:grid;align-content:center;justify-items:center;gap:26px;text-align:center;padding:20px}.presence-wait-scene>span{font-size:clamp(90px,12vw,210px);animation:presence-target-float 3s ease-in-out infinite}.presence-wait-scene strong{font-family:Impact,Haettenschweiler,Arial Narrow Bold,sans-serif;font-size:clamp(42px,5.5vw,100px);font-weight:400;text-transform:uppercase;color:#28513a}.presence-wait-scene p{font-size:clamp(22px,2.3vw,42px)}
.presence-player{width:min(700px,100%);margin:auto;min-height:100dvh;border-radius:0}.presence-player .presence-header{flex-wrap:wrap;gap:14px;align-items:flex-start}.presence-player .presence-logo{width:55px;height:55px}.presence-player .presence-heading h1{font-size:34px}.presence-player .presence-heading{min-width:200px}.presence-player .presence-clock{width:100%;padding:10px;grid-template-columns:1fr auto;align-items:center;column-gap:15px;text-align:left}.presence-player .presence-clock small{grid-column:1/-1}.presence-player .presence-clock strong{font-size:47px}.presence-player .presence-clock span{font-size:16px}.presence-player-card{padding:22px;margin-top:20px;background:var(--presence-paper);border:2px solid var(--presence-line);border-radius:18px}.presence-player-card h2{font-size:26px;line-height:1.15;margin-bottom:12px;overflow-wrap:anywhere}.presence-player-card p{line-height:1.45;color:var(--presence-muted);margin-bottom:14px}.presence-player-card .presence-button{width:100%;min-height:54px;font-size:17px}.presence-player-card .presence-fields{grid-template-columns:1fr}.presence-player-position{font-size:19px}.presence-confirmed{padding:16px;border-radius:12px;background:#deefdd;color:#165e36;font-size:19px;font-weight:900;margin-bottom:15px}.presence-player-card .presence-small{font-size:13px;margin:12px 0 0}.presence-player-count{text-align:center;font-size:14px;color:var(--presence-muted);margin-top:18px!important}.presence-alert{padding:20px;border:2px solid var(--presence-red);border-radius:14px;background:var(--presence-paper)}
.presence-clock small{color:#fffdf7;opacity:.95}
@keyframes presence-clock-pulse{50%{opacity:.75}}@keyframes presence-target-float{50%{transform:translateY(-10px)}}
@media(max-width:1000px){.presence-admin-columns{grid-template-columns:1fr}.presence-public .presence-header{gap:12px}.presence-public .presence-logo{width:64px;height:64px}.presence-public .presence-heading h1{font-size:30px}.presence-public .presence-heading>p:last-child{font-size:13px}.presence-public .presence-clock{padding:10px}.presence-public .presence-clock strong{font-size:43px}.presence-public-main{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:14px}.presence-qr{gap:9px;padding:11px}.presence-qr-code{width:105px}.presence-qr h2{font-size:23px}.presence-public .presence-team-number{display:none}.presence-public .presence-roster-grid{gap:8px}.presence-public .presence-team h3{font-size:18px}.presence-public .presence-team p{font-size:13px}}
@media(max-width:650px){.presence-admin{padding:14px}.presence-admin .presence-header{flex-wrap:wrap}.presence-admin .presence-heading h1{font-size:29px}.presence-admin .presence-clock{width:100%}.presence-admin .presence-clock strong{font-size:50px}.presence-admin-nav button:nth-last-child(2){margin-left:0}.presence-team{flex-wrap:wrap}.presence-team-actions{width:100%;display:flex}.presence-team-actions .presence-button{flex:1}.presence-fields{grid-template-columns:1fr}.presence-reconfiguration{padding:16px}.presence-reconfiguration h2{font-size:22px}.presence-player{padding:16px}.presence-player-card{padding:18px}.presence-modal{padding:12px}.presence-modal>section{padding:18px;max-height:calc(100dvh - 24px)}}
@media(prefers-reduced-motion:reduce){.presence-clock .is-ending,.presence-wait-scene>span{animation:none}}
