
:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#3b292c;background:#fff6f0;color-scheme:light;font-synthesis:none;-webkit-tap-highlight-color:transparent;
--bg:#fff6f0;--paper:#fffdfa;--peach:#ffd9c9;--peach2:#ffeae0;--orange:#e97f63;--coral:#cb6653;--brown:#3b292c;--quiet:#937978;--line:#f1d7ce;--sage:#487e69;--mint:#e7f4eb;--yellow:#ffe8a8;--shadow:0 10px 32px #9b54400d}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 100% 0,#ffe2d3 0,transparent 400px),var(--bg)}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e68c76;outline-offset:2px}
.app{max-width:1160px;margin:auto;padding:20px 14px calc(112px + env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.logo{display:flex;align-items:center;gap:10px}.mark{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;background:var(--coral);border-radius:15px;color:#fff7ef;font-size:24px;box-shadow:0 5px 12px #c45a4430}.brand{font-family:Georgia,serif;font-size:26px;font-weight:800;letter-spacing:-1.5px;line-height:1}.brand small{font-size:11px;letter-spacing:1.3px;font-family:inherit;color:var(--coral)}.eyebrow{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:var(--coral);font-weight:900}.muted{font-size:13px;color:var(--quiet);line-height:1.5}.rolebar{display:flex;align-items:center;gap:3px;padding:4px;border:1px solid var(--line);border-radius:40px;background:#fffdfb}.rolebar button{border:0;background:transparent;color:var(--quiet);padding:10px 13px;border-radius:30px;font-size:12px;font-weight:800;min-height:40px}.rolebar button.active{color:#fff;background:var(--brown)}
.hero{position:relative;overflow:hidden;background:#ffe4d7;border:1px solid #ffd5c5;border-radius:25px;margin-top:23px;padding:25px 21px 22px}.hero:after{content:"✳";position:absolute;right:-30px;top:10px;color:#ffc2aa;font-size:180px;line-height:1;pointer-events:none}.hero>*{position:relative;z-index:1}.hero .eyebrow{display:flex;align-items:center;gap:8px}.hero .eyebrow:before{content:"";display:block;width:7px;height:7px;background:var(--sage);border-radius:50%}.hero h1{font-family:Georgia,serif;font-size:clamp(35px,9.3vw,62px);letter-spacing:-2.2px;line-height:1.04;font-weight:700;max-width:720px;margin:12px 0}.hero p{margin:0;max-width:540px;color:#795a55;font-size:14px;line-height:1.55}.hero-bottom{display:flex;gap:12px;justify-content:space-between;align-items:end;flex-wrap:wrap;margin-top:22px}.hero-date{width:188px}.date-label{font-size:11px;font-weight:850;color:#815e58;margin-bottom:7px}.hero-start{display:inline-flex;align-items:center;gap:7px;background:#fff9f3bb;color:#674c45;border:1px solid #ffcdbd;border-radius:30px;padding:9px 13px;font-size:12px;font-weight:700}
.summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.stat{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:14px 15px;min-width:0;box-shadow:var(--shadow)}.stat b{display:block;font-family:Georgia,serif;font-size:32px;line-height:1.1;margin-top:6px;font-weight:700;letter-spacing:-1px}.stat .muted{font-size:11px}.stat .mini{font-size:11px;color:var(--quiet);margin-top:3px}
.layout{display:flex;flex-direction:column;gap:14px}.stack{display:contents}.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:18px 15px;min-width:0;box-shadow:var(--shadow);scroll-margin-top:15px}.card h2{font-family:Georgia,serif;font-size:24px;letter-spacing:-.65px;margin:4px 0 8px;font-weight:700}.cardtitle{display:flex;justify-content:space-between;align-items:start;gap:9px;flex-wrap:wrap;margin-bottom:13px}.cardtitle h2{margin:4px 0 0}.card-sub{font-size:12px;color:var(--quiet);line-height:1.6;margin:0 0 14px}.pill{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:#fff1e7;color:#aa6252;border:1px solid #f7d8c8;border-radius:20px;padding:6px 9px;font-weight:850;font-size:11px}.pill.live{background:var(--mint);border-color:#b9d9c3;color:var(--sage)}
#pollPanel{order:1}#checkinPanel{order:2}#courtsPanel{order:3}#rosterPanel{order:4}#hostLoginPanel{order:5}#adminControls{order:6}#historyPanel{order:7}#adminActions{order:8}
.poll-feature{background:linear-gradient(145deg,#fff5eb,#fffdfa 48%)}.poll-lead{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:15px}.vote-stat{padding:11px 6px;border:1px solid var(--line);border-radius:14px;text-align:center;background:#fff7f0}.vote-stat:nth-child(1){background:#fff0e7;border-color:#f7c6b2}.vote-stat:nth-child(2){background:#fff7e1;border-color:#f3dfb1}.vote-stat:nth-child(3){background:#f7f2ee}.vote-stat b{font-family:Georgia,serif;font-size:27px;display:block;line-height:1.1}.vote-stat span{font-size:11px;color:#826b66;font-weight:700}.vote-group{margin-top:16px}.vote-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.vote-group-header strong{font-size:12px;letter-spacing:.15px}.people-chips{display:flex;flex-wrap:wrap;gap:7px}.person-chip{display:flex;align-items:center;gap:7px;border:1px solid var(--line);padding:7px 10px 7px 7px;background:#fff;border-radius:28px;font-size:12px;font-weight:720}.dot-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f3c7b3;color:#834c41;font-size:12px;font-weight:850;flex-shrink:0}.eta{color:var(--quiet);font-weight:550}.no-votes{font-size:12px;color:var(--quiet);padding:7px 0}.live-indicator{display:flex;align-items:center;gap:5px;color:var(--sage);font-size:11px;font-weight:800}.live-indicator:before{content:"";height:6px;width:6px;border-radius:50%;background:#6eaf7a;box-shadow:0 0 0 3px #6eaf7a20}
.field{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1}.field label{font-size:12px;font-weight:800;color:#795e58}input,select{color:var(--brown);background:#fff;border:1px solid #ead4ca;min-width:0;width:100%;border-radius:12px;padding:13px 12px;min-height:49px;font-size:16px;outline:0}input:focus,select:focus{border-color:var(--orange);box-shadow:0 0 0 3px #e97f631e}input[type=date],input[type=time]{color-scheme:light}.fields{display:grid;grid-template-columns:1fr;gap:11px}.actionrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.btn{border:1px solid #e9c7b9;background:#fff7f0;color:#80544e;border-radius:12px;padding:12px 15px;min-height:47px;font-weight:800;font-size:13px}.btn.primary{background:var(--coral);border-color:var(--coral);color:white;box-shadow:0 5px 14px #c8615030}.btn.secondary{background:var(--peach2);border-color:#efcaba}.btn.ghost{background:transparent}.btn.danger{background:#fff0ed;border-color:#eabbb5;color:#b04b46}.btn.small{font-size:11px;padding:8px 11px;min-height:37px}.btn:active{transform:translateY(1px)}.full{width:100%}.vote-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}.vote-option{border:1px solid #ead6cd;background:#fff;border-radius:13px;min-height:62px;padding:8px 5px;color:#866b64;font-size:12px;font-weight:850;text-align:center}.vote-option span{display:block;font-size:20px;margin-bottom:5px}.vote-option.active{border-color:#e18168;background:#fff0e7;color:#b85b4a;box-shadow:0 0 0 2px #ffdbc9 inset}.vote-option.maybe.active{background:#fff5d8;border-color:#e2b85e;color:#876025}.vote-option.no.active{background:#f5eded;border-color:#bd9893;color:#8b605c}.notice{font-size:12px;line-height:1.55;background:#fff0e7;padding:12px 13px;border-radius:13px;color:#8a5c52;margin-top:12px}.notice.good{background:var(--mint);color:#447260}.cloud-status{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:11px;color:var(--quiet)}.cloud-status .circle{width:7px;height:7px;border-radius:50%;background:#ceaa99}.cloud-status.online .circle{background:#69a983}
.court{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.court:first-child{border-top:0;padding-top:0}.court-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:850;margin-bottom:10px}.tag{display:inline-block;border-radius:30px;background:#e5f3e9;color:#447760;padding:6px 8px;font-size:11px;font-weight:800;white-space:nowrap}.tag.wait{background:#fff1d8;color:#99713d}.tag.off{background:#f7efea;color:#987f76}.tag.scheduled{background:#fff1df;color:#a46b43}.empty{border:1px dashed #eccabf;background:#fffbf8;border-radius:13px;padding:19px 13px;text-align:center;color:#987e75;font-size:12px;line-height:1.5}.matchcard{background:#fff7f1;border:1px solid #f1d4c5;border-radius:16px;padding:12px}.matchhead{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap;margin-bottom:12px}.versus{display:grid;grid-template-columns:minmax(0,1fr) 23px minmax(0,1fr);gap:6px;align-items:center}.team{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #f0d9cd;border-radius:12px;min-height:75px;padding:12px 7px;text-align:center;font-size:13px;font-weight:850;line-height:1.5;overflow-wrap:anywhere}.vs{font-size:10px;color:#ae8f82;text-align:center;font-weight:900}.score{display:flex;align-items:center;justify-content:center;gap:8px;margin:13px 0}.score input{width:63px;min-height:46px;padding:8px 3px;text-align:center;font-size:20px;font-weight:850}.score label{font-size:11px;color:var(--quiet)}.score input:focus{background:#fff}.match-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.tabs{display:flex;gap:4px;background:#fff0e7;border-radius:13px;padding:4px}.tabs button{flex:1;background:transparent;color:#9a7167;border:0;border-radius:10px;padding:10px 5px;min-height:43px;font-weight:850;font-size:12px}.tabs button.active{background:#fffdfb;color:#a9564a;box-shadow:0 2px 6px #aa645014}.person{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.person:last-child{border:0}.personleft{display:flex;gap:9px;align-items:center;min-width:0}.personleft>div:last-child{min-width:0}.avatar{background:#ffe4d5;color:#a55c50;width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;font-weight:850;border-radius:13px}.personname{font-size:13px;font-weight:850;overflow-wrap:anywhere}.smalltext{font-size:12px;line-height:1.5;color:var(--quiet)}.personright{display:flex;align-items:center;gap:5px;flex-shrink:0}.history{display:flex;align-items:start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:13px 0;font-size:12px}.history:last-child{border-bottom:0}.tiny{font-size:11px;color:var(--quiet);line-height:1.6}.hide{display:none!important}.foot{margin:22px 0;color:#a58a83;font-size:11px;line-height:1.75}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:7px 5px calc(8px + env(safe-area-inset-bottom));background:#fffcf8f5;border-top:1px solid #f0d9cf;box-shadow:0 -7px 20px #80504013;backdrop-filter:blur(14px)}.mobile-nav button{border:0;background:transparent;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:8px 1px;min-height:52px;font-weight:800;font-size:10px;color:#987b72}.mobile-nav button.active{background:#ffe6dc;color:#bb6552}.nav-icon{font-size:20px;line-height:1.15}
@media(max-width:360px){.app{padding-inline:10px}.card{padding:15px 12px}.hero{padding:21px 16px}.hero h1{font-size:36px}.stat{padding:12px 10px}.team{font-size:11px}.personright .tag{font-size:10px}}
@media(min-width:580px){.app{padding:23px 24px 65px}.hero{padding:34px 30px}.hero h1{font-size:54px}.summary{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:18px}.stat b{font-size:34px}.fields.two{grid-template-columns:minmax(0,1fr) 160px}.fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{padding:21px}.mobile-nav{display:none}.team{font-size:14px}}
@media(min-width:880px){.app{padding:30px 30px 75px}.hero{padding:38px}.layout{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:17px;align-items:start}.stack{display:flex;flex-direction:column;gap:17px}.card{padding:21px}.vote-options{gap:10px}#pollPanel,#checkinPanel,#rosterPanel{order:unset}#courtsPanel,#adminControls,#hostLoginPanel,#historyPanel,#adminActions{order:unset}.stat{padding:20px}.hero h1{font-size:60px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* DeucePoint-family styling: neutral sports UI, compact grouped choices and match-centre layout. */
:root{
  --bg:#f4f7f6;--paper:#ffffff;--peach:#e6f2ed;--peach2:#eaf5f0;
  --orange:#167865;--coral:#127866;--brown:#173432;--quiet:#687e7a;
  --line:#dfe9e5;--sage:#167865;--mint:#e8f5ee;--yellow:#f6e6b9;
  --shadow:0 4px 24px rgba(15,49,45,.035);
  color:#173432;background:#f4f7f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body{background:linear-gradient(180deg,#eff5f2 0,#f4f7f6 345px);color:var(--brown)}
.app{max-width:1060px;padding-top:17px}
header{gap:12px;flex-wrap:wrap}
.logo{gap:10px;min-width:0}
.mark{height:42px;width:42px;border-radius:12px;background:#173f36;color:#dcf5e9;font-size:14px;font-weight:900;letter-spacing:-1px;box-shadow:none}
.brand{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:900;font-size:23px;letter-spacing:-1.15px;white-space:nowrap}
.brand-accent{color:#19866d}
.brand-sub{font-size:8px;letter-spacing:1.2px;margin-top:4px;color:#79918b;font-weight:850}
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}
.sister-link{min-height:38px;display:inline-flex;align-items:center;gap:7px;border:1px solid #d3e4dd;color:#216d5b;background:#f9fffc;border-radius:10px;padding:8px 10px;text-decoration:none;font-size:12px;font-weight:820;transition:background .15s ease}
.sister-link:hover{background:#e6f6ee}
.sister-link .arrow{opacity:.75}
.sister-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#3ba87c;box-shadow:0 0 0 3px #d5eee0}
.rolebar{border-color:#d9e8e1;border-radius:11px;padding:3px;background:#f7fbf9}
.rolebar button{min-height:34px;border-radius:8px;padding:7px 11px;color:#607b70;font-size:11px}
.rolebar button.active{background:#153f35;color:white}
.hero{background:#163e35;border:1px solid #153e35;border-radius:17px;padding:26px 21px;margin-top:20px;color:#fff;isolation:isolate}
.hero:before{content:'';position:absolute;z-index:0;right:0;bottom:-4px;width:47%;height:112%;border:2px solid #8acfb028;border-radius:22px;transform:rotate(-17deg) translate(18%,8%);pointer-events:none}
.hero:after{content:'';right:5%;top:12%;width:160px;height:160px;font-size:0;border:2px solid #a3e4bf20;border-radius:50%;box-shadow:0 0 0 60px #b5ebc00a;pointer-events:none}
.hero h1{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;max-width:720px;font-weight:870;letter-spacing:-2px;line-height:1.04;font-size:clamp(38px,8.5vw,58px)}
.hero p{color:#c9e0d7;max-width:500px;font-size:13px}
.hero .eyebrow{color:#b3ebcc;letter-spacing:1.25px;font-size:10px}
.hero .eyebrow:before{background:#75d6aa}
.date-label{color:#bedacc}
.hero-start{color:#e0f3e6;background:#ffffff16;border:1px solid #ffffff38;border-radius:10px;padding:10px 12px}
.hero-date input{background:#fff;border-color:#d2dfd8;color:#224439}
.summary{gap:9px;margin:13px 0}
.stat{border-radius:13px;padding:13px 14px;background:#fff;border:1px solid var(--line);box-shadow:none}
.stat b{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:870;font-size:29px;color:#163f34}
.stat .muted{font-weight:730;color:#697f79;font-size:11px}
.stat .mini{font-size:10px}
.card{border-radius:14px;padding:18px 16px;box-shadow:var(--shadow)}
.card h2{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:840;letter-spacing:-.8px;font-size:22px}
.card-sub{font-size:12px;color:#71877d}
.eyebrow{color:#218469;font-size:10px;letter-spacing:1.1px}
.pill{background:#eff8f2;border-color:#d6eade;color:#27725a;border-radius:8px;font-size:10px}
.pill.live{background:#d9f8e4;border-color:#a0ddbc;color:#147448}
.poll-feature{background:#fff}
.vote-stat,.vote-stat:nth-child(1),.vote-stat:nth-child(2),.vote-stat:nth-child(3){background:#f8faf9;border:1px solid #e1ebe6;border-radius:10px;padding:12px 4px}
.vote-stat:nth-child(1){background:#ecf7ef;border-color:#d1ebda}
.vote-stat:nth-child(2){background:#fff8e8;border-color:#eee5cf}
.vote-stat b{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:860;color:#164536;font-size:26px}
.vote-stat span{color:#687f77;font-size:10px}
.vote-group-header strong{color:#284a42}
.person-chip{border-color:#dce9e2;background:#fcfefd;border-radius:9px}
.dot-avatar{background:#e1f0e7;color:#236b51;border-radius:8px}
.live-indicator{color:#2c8666}
.live-indicator:before{background:#41ac7a;box-shadow:0 0 0 3px #d9f0e2}
.field label{color:#4a635a}
input,select{background:#fff;border:1px solid #d3e1dc;border-radius:9px;color:#25463d;font-weight:550;min-height:47px}
input:focus,select:focus{border-color:#239a79;box-shadow:0 0 0 3px #1d987a21}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #6dbd99;outline-offset:3px}
.btn{background:#f4f9f6;border-color:#d5e6dd;color:#236651;border-radius:10px;font-weight:790;box-shadow:none}
.btn.primary{background:#17795d;border-color:#17795d;color:#fff;box-shadow:none}
.btn.primary:hover{background:#11654d}
.btn.secondary{background:#e8f5ee;border-color:#c8e2d3;color:#1c6f50}
.btn.danger{background:#fff5f2;border-color:#f0d8d2;color:#ba584f}
.btn.ghost{color:#467463}
.vote-options{gap:7px}
.vote-option{background:#f9fcfa;border-color:#dae8df;border-radius:10px;min-height:64px;color:#627b70}
.vote-option.active{border-color:#258d6d;background:#e7f6ec;color:#1b6b50;box-shadow:0 0 0 1px #258d6d inset}
.vote-option.maybe.active{background:#fff7e6;border-color:#dcb660;color:#755b1a}
.vote-option.no.active{background:#f9efef;border-color:#d9b0b2;color:#92585b}
.notice{background:#edf5f0;color:#527666;border:1px solid #dbebdf;border-radius:9px}
.notice.good{background:#e5f6eb;color:#297052}
.court{border-color:#e1ece7}
.court-head{color:#20483d}
.tag{border-radius:6px;background:#e3f4e8;color:#367653}
.tag.wait{background:#f9f0d8;color:#826624}
.tag.off{background:#eff3f1;color:#698278}
.tag.scheduled{background:#eef5e0;color:#6f7730}
.empty{background:#f8fbf9;color:#7b9186;border-color:#ccdcd3;border-radius:10px}
.matchcard{border-radius:12px;background:#f7fbf8;border-color:#d8e9de}
.team{background:#fff;border-color:#d9e6de;border-radius:9px;color:#22453c}
.vs{color:#5b8e78}
.tabs{background:#eef5f0;border-radius:10px}
.tabs button{border-radius:8px;color:#6c8a7a}
.tabs button.active{background:#fff;color:#166c50}
.avatar{border-radius:9px;background:#e5f2e9;color:#246b50}
.person,.history{border-color:#e2ebe5}
.smalltext,.tiny{color:#788d82}
.foot{margin-top:22px;color:#81968b}
.footer-brand{display:flex;align-items:center;gap:9px;margin-bottom:8px;font-size:12px;color:#27483c}
.footer-brand a{color:#20745b;text-decoration:none;font-weight:800}
.footer-sep{color:#b3c4bb}
.scoring-card{display:flex;align-items:center;gap:11px;margin-top:17px;border:1px solid #cfe5d7;border-radius:12px;background:linear-gradient(115deg,#e5f4eb,#f8fcf9);padding:12px}
.scoring-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#d0eadb;color:#1a7254;font-size:20px;font-weight:700;flex-shrink:0}
.scoring-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.scoring-copy strong{font-size:12px;color:#1f4938}
.scoring-copy span{font-size:11px;color:#648373;line-height:1.4}
.score-link{background:#197b5f;color:#fff;white-space:nowrap;font-size:11px;font-weight:800;text-decoration:none;padding:10px;border-radius:8px;min-height:36px;display:inline-flex;align-items:center}
.score-link:hover{background:#105c46}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.deuce-select{display:flex;gap:3px;border-radius:9px;border:1px solid #dbe7e0;background:#f4f8f5;padding:3px;min-height:47px}
.deuce-select button{flex:1;min-width:0;border:none;border-radius:7px;background:transparent;color:#647d70;font-size:11px;font-weight:830;padding:9px 6px;min-height:38px}
.deuce-select button.active{background:#fff;color:#176d50;box-shadow:0 1px 5px #164d3512}
.mobile-nav{background:#fffffff8;border-top:1px solid #dce9e1;box-shadow:0 -7px 24px #1c5a3810}
.mobile-nav button{color:#688274;font-size:10px}
.mobile-nav button.active{background:#e5f5eb;color:#176b51}
@media(max-width:570px){
  .app{padding-inline:13px;padding-top:13px}
  header{align-items:flex-start;gap:12px}
  .header-actions{width:100%;justify-content:space-between;gap:8px}
  .sister-link{min-height:38px}
  .rolebar{margin-left:auto}
  .hero{padding:23px 18px;margin-top:16px}
  .hero h1{font-size:clamp(36px,10vw,47px);letter-spacing:-1.6px}
  .hero-start{font-size:11px}
  .stat{padding:12px 10px}
  .stat b{font-size:26px}
  .stat .mini{font-size:9px}
  .card{padding:17px 13px}
  .scoring-card{flex-wrap:wrap}
  .score-link{width:100%;justify-content:center}
}
@media(max-width:360px){.hero{padding:21px 15px}.brand{font-size:22px}.scoring-icon{display:none}}
@media(min-width:880px){.layout{grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr)}.hero{padding:36px}.hero h1{font-size:56px}.card{padding:22px}.summary{margin:16px 0}}

/* Admin controls for dynamic scheduling and live substitutions */
.fixture-time{display:flex;gap:9px;align-items:end;margin-top:13px;flex-wrap:wrap}
.fixture-time>.field{flex:1;min-width:130px}
.fixture-time>.btn{min-height:47px;flex:0 0 auto}
.lineup-editor{border:1px solid #d7e8de;border-radius:10px;background:#fff;margin-top:12px;padding:12px}
.lineup-editor summary{color:#1a7357;font-size:13px;font-weight:850;cursor:pointer;list-style-position:inside;min-height:27px}
.editor-hint{color:#72897c;font-size:11px;line-height:1.5;margin:9px 0 0}
.lineup-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:11px}
.lineup-fields input,.lineup-fields select{min-height:46px}
.history-stopped{color:#a45148;font-size:12px}
@media(max-width:380px){.lineup-fields{grid-template-columns:1fr}.fixture-time>.btn{width:100%}}


/* DeucePoint-inspired green and white visual system */
:root{--bg:#f3f7f2;--paper:#fff;--peach:#dff0df;--peach2:#eef6e9;--orange:#337b56;--coral:#20664b;--brown:#163e32;--quiet:#6b8475;--line:#d9e6da;--sage:#246c50;--mint:#e6f2e6;--yellow:#e2f5a7;--shadow:0 10px 30px #174a2b10}body{background:radial-gradient(circle at 100% 0,#e0f0db 0,transparent 430px),var(--bg);color:var(--brown)}button:focus-visible,input:focus-visible,select:focus-visible{outline-color:#86bb73}.brand{font-family:ui-sans-serif,system-ui,sans-serif}.mark{background:#174c38;color:#e3f7b2;box-shadow:0 5px 12px #174c3830}.brand small{color:#246c50}.btn.primary{background:#18543b;color:#fff}.btn.primary:hover{background:#246e4d}a{color:#216c4c}

/* Responsive session date/time: keep both controls visible on narrow phones. */
.hero-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end;width:100%}
.hero-bottom>.hero-date{width:auto;min-width:0;max-width:none}
.hero-bottom>.hero-date input{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px;min-height:44px}
.invite-gateway{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
@media(max-width:390px){.hero-bottom{grid-template-columns:minmax(0,1fr);gap:10px}.hero-bottom>.hero-date{width:100%}.invite-gateway>.btn{flex:1 1 100%}}

#undoVoteBtn,#undoRefBtn{flex:1 1 auto}#undoVoteBtn.hide{display:none!important}@media(max-width:390px){#checkinPanel .actionrow>.btn{flex:1 1 100%}}

#refereeUserId{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;background:#f4f8f6}#hostLoginPanel .actionrow>.btn{flex:1 1 145px}

.mobile-nav{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Entry screen: shown first on every fresh page load. */
body.show-entry .app,body.show-entry .mobile-nav{display:none!important}
.entry-screen{display:none;min-height:100dvh;padding:30px 20px;background:radial-gradient(circle at 90% 12%,#ffe0ce,transparent 48%),var(--bg);align-items:center;justify-content:center}
body.show-entry .entry-screen{display:flex}
.entry-inner{width:min(100%,510px);padding:18px 0 42px}
.entry-brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:28px;font-weight:800;letter-spacing:-1px;color:var(--brown)}
.entry-brand strong{color:var(--coral)}
.entry-mark{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:var(--coral);color:white;font-family:ui-sans-serif,system-ui;font-size:23px;letter-spacing:-2px}
.entry-eyebrow{margin:65px 0 12px;font-size:11px;font-weight:800;letter-spacing:2px;color:var(--sage)}
.entry-inner h1{font-family:Georgia,serif;font-size:clamp(54px,12vw,84px);letter-spacing:-4px;line-height:1.05;margin:0;color:var(--brown)}
.entry-copy{font-size:16px;line-height:1.6;color:var(--quiet);margin:18px 0 36px;max-width:400px}
.entry-actions{display:grid;gap:14px}
.entry-choice{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:22px;min-height:106px;padding:20px;display:flex;align-items:center;gap:16px;text-align:left;color:var(--brown);box-shadow:var(--shadow)}
.entry-choice:hover,.entry-choice:focus-visible{border-color:var(--coral);transform:translateY(-1px)}
.entry-choice>span:nth-child(2){display:grid;gap:6px;flex:1}
.entry-choice strong{font-size:19px;letter-spacing:-.4px}
.entry-choice small{font-size:12px;line-height:1.45;color:var(--quiet)}
.entry-choice-icon{width:47px;height:47px;flex-shrink:0;border-radius:15px;display:grid;place-items:center;font-size:25px;background:var(--peach2);color:var(--coral)}
.entry-host{background:var(--coral);color:white;border-color:var(--coral)}
.entry-host small{color:#fff4ef}
.entry-host .entry-choice-icon{background:#ffffff25;color:white}
.entry-foot{text-align:center;font-size:11px;letter-spacing:1px;color:var(--quiet);margin-top:42px}
.entry-back{background:var(--peach2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--brown);font-size:12px;font-weight:700}
@media(max-width:420px){.entry-choice{padding:16px;gap:12px}.entry-choice strong{font-size:17px}.entry-inner h1{letter-spacing:-3px}.entry-eyebrow{margin-top:44px}}

#playerAuthPanel,#playerStatsPanel{scroll-margin-top:20px}#playerStatsContent{line-height:1.7}#playerPhone,#playerOtp{width:100%}

.entry-login{border-style:dashed;background:#fffaf6}.entry-login .entry-choice-icon{background:var(--mint);color:var(--sage)}.entry-hint{color:#ad4234;font-size:13px;text-align:center;font-weight:700;margin:16px 0 0}.entry-hint.hide{display:none}

.entry-profile{display:grid;gap:12px;text-align:left;margin:24px 0}.entry-profile label{font-weight:700;font-size:13px}.entry-profile input{width:100%;border:1px solid #ddd0c6;border-radius:12px;padding:15px;font:inherit;background:white;color:#292929}.entry-profile .entry-choice{width:100%}.entry-actions.hide,.entry-profile.hide{display:none!important}
