:root{color-scheme:dark;--bg:#10150f;--panel:#1a2018;--line:#30372b;--ink:#f4f6ee;--muted:#a0aa98;--lime:#d4f66a;--red:#ef555d;--blue:#5598f4;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 0,#28331b55,transparent 65%);z-index:-1}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.38;cursor:default}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:4px}input,select{width:100%;min-width:0;border:1px solid #3d4535;border-radius:10px;background:#151a12;color:var(--ink);padding:12px;font-size:16px;min-height:48px}input:disabled,select:disabled{opacity:.6}input[type=number]{font-weight:750;font-variant-numeric:tabular-nums}input[type=color]{padding:3px;width:40px;min-width:40px;height:44px;min-height:44px;border-radius:8px;cursor:pointer}select{appearance:auto;padding-right:5px}label{display:block;color:#b5bdad;font-size:12px;line-height:1.5;font-weight:600}label>input,label>select{margin-top:6px}[hidden]{display:none!important}.app{width:min(100%,520px);margin:0 auto;padding:calc(22px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand>div{min-width:0}.brand img{border-radius:12px;flex-shrink:0}.brand h1{font-size:25px;white-space:nowrap;line-height:1;margin:0 0 5px;font-weight:900;letter-spacing:-1.1px}.brand-dot{color:var(--lime)}.eyebrow{font-size:8px;font-weight:700;color:var(--muted);letter-spacing:1.45px;display:block}.icon-btn{flex-shrink:0;background:#22291c;color:var(--lime);border:1px solid #3b472e;border-radius:13px;width:46px;height:46px;display:grid;place-items:center}.icon-btn svg{width:22px;height:22px}.setup{border:1px solid var(--line);border-radius:15px;background:#191f16;margin-bottom:16px}summary{list-style:none;padding:15px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font-size:13px}summary::-webkit-details-marker{display:none}.setup-title{display:flex;align-items:center;gap:8px;font-weight:700}.tiny-number{color:var(--lime);font-size:10px;border:1px solid #455033;border-radius:4px;padding:3px}.setup-summary{color:var(--muted);font-size:12px}.setup-summary span{margin-left:6px;color:var(--ink)}.setup-inner{padding:0 14px 16px;border-top:1px solid #30372b}.period-mode{margin-top:15px}.setup-grid{display:grid;grid-template-columns:1fr 1.55fr;gap:12px;margin-top:15px}.extra-row{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.extra-row input{max-width:85px;margin:0}.setup-help{font-size:11px;line-height:1.5;color:var(--muted);margin:10px 0 16px}.teams-setup{display:grid;grid-template-columns:1fr 1fr;gap:12px}.team-input{display:flex;gap:5px;margin-top:6px}.team-input input:not([type=color]){padding:8px;min-height:44px;font-size:14px}.clock-panel{background:linear-gradient(135deg,#232c1c,#1b2217);border:1px solid #414c32;border-radius:20px;padding:18px 18px 0;position:relative;overflow:hidden}.clock-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#91a27006 1px,transparent 1px),linear-gradient(90deg,#91a27006 1px,transparent 1px);background-size:24px 24px}.clock-panel>*{position:relative}.clock-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.phase-label{font-size:11px;letter-spacing:1.5px;font-weight:750;color:#c3ccb7}.status-pill{font-size:10px;display:flex;gap:6px;align-items:center;background:#11160d99;padding:5px 8px;border-radius:20px;color:#bcc5ae}.status-pill i,footer i,#wakeStatus i{width:5px;height:5px;border-radius:50%;background:var(--muted);display:inline-block}.status-pill.running{color:var(--lime)}.status-pill.running i{background:var(--lime);box-shadow:0 0 7px #d4f66a77}.clock{font-family:"Arial Narrow",Impact,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(62px,20.2vw,102px);font-weight:800;font-stretch:condensed;line-height:1.1;letter-spacing:-5px;font-variant-numeric:tabular-nums;text-align:center;margin:22px 0 12px;color:#f0f6d9}.clock span{color:#9ca98a}.clock-meta{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#a4b195;align-items:center;min-height:22px}.clock-meta>span:last-child{font-size:9px;letter-spacing:.5px;text-align:right}.progress-track{height:3px;background:#434d36;margin:14px 0 18px;border-radius:3px;overflow:hidden}.progress-track>div{height:100%;width:0;background:var(--lime);transition:width .3s}.main-control{width:100%;height:66px;border:0;border-radius:12px;background:var(--lime);color:#1e2810;font-weight:800;font-size:19px;display:flex;justify-content:center;align-items:center;gap:12px;box-shadow:0 3px 0 #82983e}.main-control.pause{background:#eee9d9;color:#262718;box-shadow:0 3px 0 #ada896}.main-control span:first-child{font-size:20px}.end-period{width:100%;background:transparent;color:#c5cfb7;min-height:46px;border:0;font-size:13px;font-weight:650;margin-top:7px;display:flex;align-items:center;justify-content:center;gap:12px}.end-period span{color:var(--lime)}.device-tools{display:flex;align-items:center;justify-content:space-between;min-height:49px;font-size:10px;gap:8px}.device-tools button{display:flex;align-items:center;gap:6px;color:#bcc6b0;font-size:11px;font-weight:650;background:none;border:0;padding:12px 0;min-height:44px}.device-tools svg{width:17px;height:17px}#wakeStatus{color:#aab59c;display:flex;align-items:center;gap:5px}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative;margin-top:16px}.team-card{--team:#ef555d;background:#1b201b;border:1px solid #343c33;border-top:3px solid var(--team);border-radius:14px;padding:15px 12px 12px;text-align:center;min-width:0;overflow:hidden}.team-role{font-size:9px;letter-spacing:1.5px;color:#a9b1a2}.team-card h2{font-size:17px;line-height:1.2;margin:8px 0 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:750}.score{font-size:62px;line-height:1.1;font-weight:750;letter-spacing:-3px;font-variant-numeric:tabular-nums}.score-separator{position:absolute;left:50%;top:81px;transform:translateX(-50%);z-index:1;color:#a5b293;font-size:19px;font-weight:800}.card-counts{height:24px;margin:3px 0 9px;font-size:11px;color:#b6beae;display:flex;align-items:center;justify-content:center;gap:9px}.mini-card{display:inline-block;width:7px;height:10px;border-radius:1px;background:#f2d05e;margin-right:4px}.mini-card.red-card{background:#ef6e75}.goal-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:53px;color:#f4f6ee;background:#303a2d;border:1px solid #4b5944;border-radius:10px;font-size:17px;font-weight:750}.goal-btn span{font-size:22px;color:var(--team)}.discipline{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 26px}.card-btn{min-height:76px;text-align:left;padding:12px 11px;display:flex;align-items:center;gap:9px;border-radius:12px;border:1px solid #554d2b;background:#302d1d;color:#f7dc77;font-size:14px;font-weight:750}.card-btn.red{color:#ffa1a6;border-color:#5e3436;background:#332123}.card-symbol{height:26px;width:19px;border-radius:3px;background:#f2d05e;box-shadow:2px 3px 0 #0004;transform:rotate(-8deg);flex-shrink:0}.red .card-symbol{background:#f27b81}.card-btn small{display:block;color:#bab099;font-size:9px;font-weight:400;margin-top:5px;line-height:1.3}.card-btn.red small{color:#c3a1a3}.plus{margin-left:auto;font-size:19px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.section-head h2{font-size:15px;letter-spacing:-.2px;margin:0}.section-head h2 span{font-size:10px;padding:3px 6px;border-radius:5px;background:#2a3224;color:#b4beaa;margin-left:5px;vertical-align:2px}.text-btn{color:#b6c4a4;background:transparent;border:0;min-height:44px;padding:6px 0;font-size:12px;font-weight:600}.empty-log{border:1px dashed #35402e;border-radius:12px;padding:23px 18px;display:flex;align-items:center;justify-content:center;gap:14px}.empty-log svg{width:29px;height:29px;color:#82956b}.empty-log p{margin:0;font-size:13px;color:#c5cdbd}.empty-log span{display:block;font-size:11px;color:#8e9c82;margin-top:6px}.event{display:flex;align-items:center;gap:12px;border-bottom:1px solid #2b3426;min-height:64px;padding:9px 0}.event-time{font-size:12px;color:var(--lime);font-weight:700;min-width:42px;max-width:65px}.event-symbol{width:25px;text-align:center}.event-text{flex:1;min-width:0}.event-text strong{font-size:13px;display:block;overflow-wrap:anywhere}.event-text small{font-size:11px;display:block;color:var(--muted);margin-top:3px}.event-dot{height:8px;width:8px;flex-shrink:0;border-radius:50%}.alert-note{display:flex;align-items:flex-start;gap:9px;margin-top:22px;padding:14px 0 0;border-top:1px solid #293222;color:#91a082}.alert-note svg{width:16px;height:16px;flex-shrink:0;margin-top:2px}.alert-note p{font-size:11px;line-height:1.6;margin:0}.alert-note strong{display:block;color:#bac6ad;font-weight:650;margin-bottom:3px}footer{display:flex;align-items:center;justify-content:space-between;color:#8e9c82;font-size:10px;gap:8px;margin-top:8px}footer i{background:#a6c673;margin-right:4px}.install-tip{text-align:center;color:#77866b;font-size:10px;margin:6px 0}.alert-bar{background:#e7d672;color:#2b2814;border-radius:10px;padding:12px;display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:15px}.alert-bar strong{display:block;font-size:14px}.alert-bar span{display:block;font-size:10px;margin-top:4px}.alert-bar button{border:1px solid #82793e;background:#302d1b;color:#fff4bf;border-radius:8px;padding:12px;font-weight:700}.penalties{border:1px solid #4c593b;border-radius:14px;margin-top:14px;padding:18px;background:#202919}.penalties h2{margin:0;font-size:15px}.penalty-score{font-size:35px;font-weight:800;text-align:center;margin:15px}.penalty-turn{text-align:center;font-size:13px;color:#c3d4af;margin:12px 0}.penalty-dots{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin:8px 0}.penalty-dot{display:grid;place-items:center;height:25px;width:25px;border:1px solid #58654c;border-radius:50%;color:#8e9d7f;font-size:13px}.penalty-dot.hit{background:#cce991;border-color:#cce991;color:#253418}.penalty-dot.miss{background:#633839;border-color:#a36466;color:#ffd1cf}.kick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kick-actions button{border:1px solid #66794e;border-radius:10px;padding:16px;background:#d4f66a;color:#253219;font-weight:800}.kick-actions button:last-child{background:#352a27;color:#ffc6b5;border-color:#76564c}.shootout-tools{display:flex;justify-content:space-between;gap:10px}.winner{color:var(--lime);font-size:16px;font-weight:750;line-height:1.5;text-align:center}.note{color:var(--muted);font-size:12px;line-height:1.6;margin:0 0 18px}.sheet-score{font-size:45px;font-weight:800;text-align:center;letter-spacing:3px;margin:20px 0}.field{margin:16px 0}.sheet-teams{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sheet-team{border:1px solid #45543a;background:#1d2718;border-radius:10px;padding:16px 8px;font-weight:700;color:#bdc8b1;min-width:0;overflow-wrap:anywhere}.sheet-team.active{outline:2px solid var(--lime);background:#334126;color:#effbd9}.sheet-team i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}dialog{width:min(100% - 20px,500px);position:fixed;top:auto;bottom:max(10px,env(safe-area-inset-bottom));margin:0 auto;border:1px solid #536046;background:#20281a;color:var(--ink);border-radius:23px;padding:0 22px 22px;box-shadow:0 -10px 100px #0008;max-height:90dvh;overflow:auto}dialog::backdrop{background:#050a05bc;backdrop-filter:blur(5px)}.sheet-grip{height:4px;width:37px;border-radius:4px;background:#526145;margin:11px auto 16px}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.sheet-head h2{font-size:23px;margin:0;letter-spacing:-.5px}.close-btn{height:40px;width:40px;border:0;border-radius:50%;background:#35422a;color:#d1dec4;font-size:25px}.sheet-actions{display:grid;grid-template-columns:1fr 1.7fr;gap:10px;margin-top:22px}.confirm-btn,.secondary-btn{height:56px;border-radius:11px;border:0;background:var(--lime);color:#1b270e;font-weight:800;font-size:15px}.secondary-btn{background:#34422a;color:#d0ddc3;border:1px solid #526044}.warning{color:#f3d77f;font-size:12px;line-height:1.6}.pocket{position:fixed;inset:0;z-index:10;background:#050704;color:#94a781;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:25px;touch-action:none;user-select:none;-webkit-user-select:none}.pocket-label{position:absolute;top:calc(35px + env(safe-area-inset-top));font-weight:800;letter-spacing:2px;font-size:15px}.pocket-label span{font-size:10px;color:#5d6e4d}.pocket-lock-icon{height:32px;width:32px;margin-bottom:10px}.pocket p{font-size:13px;line-height:1.6}.pocket-clock{font-size:clamp(60px,18vw,92px);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-3px}.unlock-wrap{position:absolute;bottom:calc(35px + env(safe-area-inset-bottom));width:calc(100% - 56px);max-width:440px}.unlock-wrap button{height:64px;border:1px solid #526940;background:linear-gradient(90deg,#506637 var(--hold,0%),#172010 var(--hold,0%));width:100%;border-radius:14px;color:#c5d7b2;font-weight:700;font-size:16px;touch-action:none}.unlock-wrap p{font-size:10px;color:#657a54}.pocket-alert{color:var(--lime);font-weight:800}.toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#e1f3b8;color:#28371a;padding:13px 20px;border-radius:12px;box-shadow:0 5px 30px #0009;font-size:13px;z-index:30;width:max-content;max-width:90vw;text-align:center;line-height:1.5}@media(min-width:700px){.app{padding-top:42px}.app-header{margin-bottom:30px}.clock-panel{padding:22px 22px 0}.clock{font-size:110px;margin-top:22px}.scoreboard{gap:16px}.team-card{padding-top:18px}.goal-btn{height:58px}}@media(max-width:365px){.app{padding-left:13px;padding-right:13px}.brand h1{font-size:20px}.eyebrow{font-size:7px}.card-btn{font-size:12px;gap:7px}.card-btn small{font-size:8px}.plus{display:none}.clock{letter-spacing:-4px}.setup-grid{gap:8px}.clock-meta{font-size:9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Clear whistle actions, penalty cards and dismissal reminders. */
.main-control{height:auto;min-height:72px;padding:16px;line-height:1.25}
.main-control span:last-child{overflow-wrap:anywhere}
.main-control.end-control{min-height:90px;font-size:24px;background:#e7d672;color:#24250f;box-shadow:0 3px 0 #9b9144}
.main-control.end-control span:first-child{font-size:22px;flex-shrink:0}
.end-period{padding:12px 8px;line-height:1.4}
.alert-bar{display:block}
.alert-bar strong{font-size:17px;line-height:1.3}
.alert-bar span{font-size:12px;line-height:1.5}
.alarm-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.alarm-actions button{min-height:50px;flex:1;font-size:15px;line-height:1.2}
.team-penalties{border-top:1px solid #414d3a;margin-top:12px;padding-top:12px}
.team-penalty-score{display:flex;align-items:center;justify-content:space-between;gap:6px}
.team-penalty-score span{font-size:11px;text-align:left;line-height:1.3;color:#c2cdb6}
.team-penalty-score strong{font-size:32px;color:var(--lime);font-variant-numeric:tabular-nums}
.penalty-taken{font-size:11px;line-height:1.5;color:#bac7ad;margin:6px 0 10px}
.penalty-boxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.penalty-box{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:59px;min-width:0;border:1px solid #536248;border-radius:8px;background:#20291b;color:#8c9a80;padding:5px 1px;line-height:1}
.penalty-box small{font-size:10px;font-weight:600;margin-bottom:4px}
.penalty-box strong{font-size:25px;font-weight:900}
.penalty-box.hit{background:#cfec9b;border-color:#cfec9b;color:#203111}
.penalty-box.miss{background:#5d2c30;border-color:#cf8289;color:#ffe3e6}
.penalty-box.next{border:2px solid var(--lime);background:#344621;color:#edffce;box-shadow:0 0 0 1px #d4f66a26}
.penalties .section-head{flex-wrap:wrap}
.shootout-length{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 8px;font-size:13px}
.shootout-length select{width:110px;margin:0}
.shootout-help{font-size:11px;text-align:center;margin:10px 0 4px}
.penalty-turn{font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.kick-actions button{font-size:18px;min-height:62px;padding:12px 8px}
.penalty-choice button{min-height:80px;font-size:22px}
.shootout-tools{flex-wrap:wrap;align-items:center;margin-top:8px}
.shootout-tools .note{font-size:10px;margin:0}
.second-yellow-warning{border:2px solid #f48d96;background:#491e25;border-radius:14px;padding:18px 16px;margin:16px 0;color:#fff4f4;text-align:center;overflow-wrap:anywhere}
.second-yellow-warning strong{display:block;font-size:20px;font-weight:850;line-height:1.25;color:#ffe08a}
.second-yellow-warning>span{display:block;font-size:clamp(24px,6.7vw,30px);font-weight:900;line-height:1.16;margin-top:10px}
.second-yellow-warning p{font-weight:750;font-size:16px;line-height:1.4;margin:14px 0 6px}
.second-yellow-warning small{display:block;font-size:12px;line-height:1.5;margin-top:12px;color:#ffd3d9}
.second-yellow-warning button{display:block;width:100%;min-height:48px;margin-top:16px;border:0;border-radius:8px;background:#ffe4e8;color:#491e25;font-size:16px;font-weight:800}
.confirm-btn,.secondary-btn{height:auto;min-height:56px;padding:12px;line-height:1.3}
.sheet-head h2{overflow-wrap:anywhere}
@media(max-width:365px){.penalty-boxes{grid-template-columns:repeat(2,minmax(0,1fr))}.main-control.end-control{font-size:22px}.team-penalty-score{flex-wrap:wrap}.second-yellow-warning{padding:16px 12px}}
