:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f8fafc;background:#0b1020;--bg:#0b1020;--panel:#141c31;--muted:#94a3b8;--line:#2d3a58;--accent:#38bdf8;--danger:#ef4444}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#16213b 0,var(--bg) 42%);color:#f8fafc;padding-bottom:86px}button,input,select{font:inherit}button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:max(14px,env(safe-area-inset-top)) 18px 14px;background:rgba(11,16,32,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06)}h1{margin:2px 0 0;font-size:clamp(20px,3vw,28px)}h2,h3,p{margin-top:0}.eyebrow{color:var(--accent);font-weight:800;font-size:11px;letter-spacing:.12em}.status{padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;background:#25304a;color:#dbeafe;white-space:nowrap}.status.synced{background:#123a2a;color:#86efac}.status.error{background:#4a1d25;color:#fca5a5}
main{width:min(1100px,100%);margin:0 auto;padding:18px}.view{display:none}.view.active{display:block}.hero-card,.panel{background:linear-gradient(145deg,rgba(28,39,66,.98),rgba(20,28,49,.98));border:1px solid rgba(255,255,255,.08);border-radius:22px;box-shadow:0 18px 50px rgba(0,0,0,.22)}.hero-card{padding:22px;display:flex;justify-content:space-between;align-items:center;gap:20px}.hero-card h2{margin:5px 0 8px}.hero-card p,.setting-row p,.fineprint{color:var(--muted);margin-bottom:0}
.primary,.secondary,.danger,.text-button,.file-label{border:0;border-radius:14px;padding:12px 16px;font-weight:800}.primary{background:var(--accent);color:#04111c}.secondary,.file-label{background:#273451;color:#e2e8f0}.danger{background:#5d2028;color:#fecaca}.text-button{background:transparent;color:var(--accent);padding:8px}.wide{width:100%;margin-top:16px}.stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:16px 0}.stat{background:var(--panel);border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:16px;min-height:92px}.stat span,.game-summary span{display:block;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.stat strong{display:block;font-size:30px;margin-top:8px}
.panel{padding:20px;margin-bottom:16px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label{display:grid;gap:7px;color:#cbd5e1;font-size:13px;font-weight:700}input,select{width:100%;border:1px solid var(--line);background:#0c1426;color:#f8fafc;border-radius:12px;padding:12px;outline:none}input:focus,select:focus{border-color:var(--accent)}.series-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.series-bar span{font-weight:900;font-size:20px}.series-bar small{display:block;color:var(--muted);margin-top:4px}
.scoreboard{display:grid;grid-template-columns:repeat(10,minmax(84px,1fr));overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:#0d1528}.frame{min-width:84px;border-right:1px solid var(--line)}.frame:last-child{border-right:0;min-width:110px}.frame-no{text-align:center;font-size:11px;color:var(--muted);padding:7px;border-bottom:1px solid var(--line)}.rolls{display:grid;grid-template-columns:repeat(3,1fr);min-height:38px}.roll{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--line);font-weight:900;min-width:28px}.roll:first-child{border-left:0}.frame-score{min-height:45px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900}.frame.active-frame{outline:2px solid var(--accent);outline-offset:-2px}
.game-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.game-summary>div{background:var(--panel);padding:14px;border-radius:16px;text-align:center}.game-summary strong{font-size:26px}.keypad-panel{background:var(--panel);border-radius:20px;padding:16px}.roll-prompt{text-align:center;font-weight:900;color:#e0f2fe;margin-bottom:12px}.pin-pad{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.pin-pad button{min-height:58px;border:0;border-radius:15px;font-size:20px;font-weight:900;background:#253451;color:#f8fafc}.pin-pad button.special{background:#0e7490}.keypad-actions{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:10px;margin-top:10px}
.list{display:grid;gap:10px}.list-item{background:#0f172a;border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;justify-content:space-between;gap:12px;align-items:center}.list-item strong{display:block}.list-item small{color:var(--muted)}.score-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.chip{padding:6px 9px;border-radius:999px;background:#253451;font-weight:800;font-size:12px}.empty-state{color:var(--muted);padding:20px 0}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-top:1px solid var(--line)}.setting-row:first-of-type{margin-top:16px}.setting-row p{font-size:13px;max-width:650px}.file-label input{display:none}.fineprint{font-size:12px}
.bottom-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:rgba(8,13,25,.96);backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.08)}.nav-btn{border:0;background:transparent;color:#94a3b8;padding:12px 6px;border-radius:12px;font-weight:800}.nav-btn.active{color:#7dd3fc;background:#16213b}.toast{position:fixed;z-index:50;left:50%;bottom:90px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#e2e8f0;color:#0f172a;padding:11px 16px;border-radius:999px;font-weight:800;transition:.2s;box-shadow:0 12px 35px rgba(0,0,0,.35)}.toast.show{opacity:1;transform:translate(-50%,0)}.hidden{display:none!important}
@media(max-width:850px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){main{padding:12px}.hero-card{align-items:stretch;flex-direction:column}.hero-card .primary{width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.pin-pad{grid-template-columns:repeat(4,1fr)}.setting-row{align-items:stretch;flex-direction:column}.setting-row button,.setting-row .file-label{text-align:center;width:100%}}

.history-series{display:block;padding:0}.history-series summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;cursor:pointer}.history-series summary::-webkit-details-marker{display:none}.series-details{border-top:1px solid var(--line);padding:12px;display:grid;gap:12px}.history-game{background:#0b1324;border:1px solid var(--line);border-radius:12px;padding:10px;overflow-x:auto}.history-game-title{display:flex;justify-content:space-between;margin-bottom:8px}.history-frames{display:grid;grid-template-columns:repeat(10,minmax(66px,1fr));min-width:680px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.history-frame{border-right:1px solid var(--line);text-align:center}.history-frame:last-child{border-right:0}.history-frame>b{display:block;color:var(--muted);font-size:10px;padding:4px}.history-frame>div{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:24px}.history-frame>div span{display:grid;place-items:center;border-left:1px solid var(--line);font-size:12px;font-weight:800}.history-frame>div span:first-child{border-left:0}.history-frame>strong{display:block;padding:6px;font-size:14px;min-height:29px}

.game-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:12px}.handicap-box{display:grid;gap:7px;align-content:center;background:#0c1426;border:1px solid var(--line);border-radius:12px;padding:12px}.handicap-box span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.handicap-box strong{font-size:15px}.history-game-title small{display:block;color:var(--muted);margin-top:4px}.game-summary{grid-template-columns:repeat(6,1fr)}
@media(max-width:850px){.game-details{grid-template-columns:1fr 1fr}.handicap-box{grid-column:1/-1}.game-summary{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.game-details{grid-template-columns:1fr}.handicap-box{grid-column:auto}.game-summary{grid-template-columns:repeat(2,1fr)}}

.leave-tracker{background:#0d1528;border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:12px}.leave-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.leave-title small{color:var(--muted)}.pin-deck{display:grid;gap:10px;justify-items:center;padding:10px 0 16px}.pin-row{display:flex;gap:14px;justify-content:center}.pin{width:48px;height:48px;border-radius:50%;border:2px solid #64748b;background:#f8fafc;color:#0f172a;font-weight:900;font-size:16px;box-shadow:0 5px 14px rgba(0,0,0,.22)}.pin.standing{background:#fbbf24;border-color:#fde68a;transform:scale(1.08)}.leave-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px}.frame-leave{font-size:9px;text-align:center;padding:3px;color:#93c5fd;border-top:1px solid var(--line);white-space:nowrap}.frame-leave.split{color:#fca5a5;font-weight:900}.leave-history{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.leave-history span,.leave-chip{padding:6px 9px;border-radius:999px;background:#1e293b;border:1px solid var(--line);font-size:11px;font-weight:800}.leave-stats{display:flex;gap:8px;flex-wrap:wrap}.leave-chip b{color:#7dd3fc;margin-left:4px}

.stats-filter{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:16px 0;background:var(--panel);border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:14px}.stats-filter label{min-width:min(360px,100%)}.stats-filter span{color:var(--muted);font-size:13px;font-weight:800;padding:12px 0}@media(max-width:600px){.stats-filter{align-items:stretch;flex-direction:column}.stats-filter span{padding:0 2px}}

.version-badge{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:9px 13px;border-radius:999px;background:#123a2a;color:#86efac;font-weight:900;border:1px solid #166534}

@media(max-width:600px){.keypad-actions{grid-template-columns:1fr 1fr}.keypad-actions #deleteGameBtn{grid-column:1/-1}}

.frame.editable-frame{cursor:pointer}.frame.editable-frame:hover{background:#13213a}.frame-editor{background:#0f172a;border:1px solid var(--accent);border-radius:18px;padding:14px;margin:12px 0}.frame-editor-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.frame-edit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}@media(max-width:600px){.frame-edit-grid{grid-template-columns:1fr 1fr}.frame-edit-grid label:last-child{grid-column:1/-1}}

.section-help{color:var(--muted);font-size:12px;margin:4px 0 0}.leave-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.leave-stat-card{background:#0f172a;border:1px solid var(--line);border-radius:14px;padding:12px}.leave-stat-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.leave-stat-title strong{font-size:16px}.split-badge{font-size:10px;font-weight:900;letter-spacing:.06em;padding:4px 7px;border-radius:999px;background:#4a1d25;color:#fca5a5;border:1px solid #7f1d1d}.leave-stat-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.leave-stat-numbers span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.leave-stat-numbers b{display:block;color:#f8fafc;font-size:16px;margin-bottom:2px}@media(max-width:480px){.leave-stat-numbers{grid-template-columns:1fr 1fr 1fr}}

.analytics-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:14px}.analytics-filters>span{grid-column:1/-1;padding:4px 2px}.analytics-breakdowns{display:grid;grid-template-columns:1fr;gap:22px}.analytics-breakdowns>div{background:#0c1426;border:1px solid var(--line);border-radius:18px;padding:18px}.analytics-breakdowns h4{margin:0 0 14px;color:#dbeafe;font-size:17px}.breakdown-list{display:grid;gap:14px}.breakdown-row{display:grid;grid-template-columns:1.4fr repeat(5,minmax(86px,1fr));gap:12px;align-items:stretch;background:#111b30;border:1px solid var(--line);border-radius:14px;padding:14px}.breakdown-row>strong{display:flex;align-items:center;overflow-wrap:anywhere;font-size:16px;padding-right:12px;border-right:1px solid rgba(255,255,255,.08)}.breakdown-row span{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;text-align:center;color:var(--muted);font-size:10px;line-height:1.25;white-space:normal;background:#0b1324;border-radius:10px;padding:11px 7px;min-width:0}.breakdown-row b{display:block;color:#f8fafc;font-size:17px}.compact-empty{padding:12px 0}@media(max-width:900px){.analytics-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.analytics-filters{grid-template-columns:1fr}.analytics-breakdowns>div{padding:14px}.breakdown-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:10px}.breakdown-row>strong{grid-column:1/-1;padding:0 0 10px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.breakdown-row span:last-child{grid-column:1/-1}.breakdown-row b{font-size:17px}}

/* v16 performance layout */
.analytics-breakdowns{display:grid;grid-template-columns:1fr;gap:24px}.analytics-breakdowns>div{padding:20px}.breakdown-list{display:grid;gap:16px}.breakdown-row{display:grid;grid-template-columns:minmax(220px,2fr) repeat(5,minmax(110px,1fr));gap:18px;align-items:stretch;padding:18px}.breakdown-row>strong{display:flex;align-items:center;font-size:17px;padding-right:18px}.breakdown-row span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:72px;padding:12px 10px}.breakdown-row span small{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.breakdown-row span b{font-size:19px}.breakdown-row span+span{margin-left:0}@media(max-width:900px) and (min-width:601px){.breakdown-row{grid-template-columns:minmax(170px,1.6fr) repeat(5,minmax(82px,1fr));gap:12px;padding:16px}.breakdown-row span{min-height:68px;padding:10px 6px}.breakdown-row span b{font-size:18px}}@media(max-width:600px){.breakdown-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.breakdown-row>strong{grid-column:1/-1;padding:0 0 12px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.breakdown-row span:last-child{grid-column:auto}}
.top-actions{display:flex;align-items:center;gap:9px}.close-app{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid rgba(198,161,91,.45);background:#17213a;color:#e7d3a6;font-size:18px;font-weight:900;line-height:1}.close-app:active{transform:scale(.96)}.exit-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#17213a 0,#0b1020 52%)}.exit-card{width:min(430px,100%);text-align:center;background:linear-gradient(145deg,rgba(28,39,66,.98),rgba(20,28,49,.98));border:1px solid rgba(198,161,91,.35);border-radius:24px;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.4)}.exit-card h2{margin:8px 0 10px}.exit-card p{color:var(--muted);line-height:1.5;margin-bottom:22px}.exit-card .primary{min-width:170px}@media(max-width:600px){.close-app{width:36px;height:36px}.status{padding:8px 10px}}

.feedback-row textarea{width:100%;margin-top:10px;min-height:100px;resize:vertical}.feedback-row>div{flex:1}.feedback-row button{align-self:flex-end}@media(max-width:600px){.feedback-row button{align-self:stretch}}

.install-app{padding:9px 12px;border-radius:12px;white-space:nowrap}.top-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:600px){.install-app{font-size:12px;padding:8px 10px}.topbar{align-items:flex-start}.top-actions{gap:6px}}
