*{box-sizing:border-box}body{margin:0;background:#f1f1e9;color:#26352c;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:1100px;margin:auto;padding:24px 16px 70px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0 30px}h1{font:800 clamp(36px,6vw,64px)/1.05 Georgia,serif;margin:8px 0}h1 em{color:#d88739}header p{margin:0;color:#5e6a60}.eyebrow{font-size:12px;letter-spacing:2.2px;font-weight:750;color:#52856c}.pill{background:#d9e8d9;padding:9px 15px;border-radius:30px;font-size:13px}.panel{background:white;border:1px solid #e0e4da;border-radius:18px;padding:22px;box-shadow:0 7px 24px #233b250a;margin-bottom:18px}h2{font-size:22px;margin:0 0 18px}h3{margin:0 0 12px}.form{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.form label{display:grid;gap:5px;flex:1;min-width:170px;font-size:14px;font-weight:600}.form input,.form select{font:inherit;border-radius:9px;border:1px solid #bdcbbd;padding:10px;background:white;width:100%}button{border:0;border-radius:9px;background:#25674d;color:white;padding:12px 20px;font-weight:700;font-size:15px;cursor:pointer}button:hover:not(:disabled){background:#174f38}button:disabled{opacity:.45;cursor:not-allowed}.ghost{background:#e4ece5;color:#235c44}.topline{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.topline h2{margin:0}.columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dicearea{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.dice{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:22px 0 8px}.die{position:relative;background:#fff;border:2px solid #c4cdc2;border-radius:13px;width:62px;height:62px;display:grid;place-items:center;color:#28382f;box-shadow:0 4px 0 #ccd4cb;cursor:pointer}.die.held{border-color:#248457;background:#e0f4e5;transform:translateY(4px);box-shadow:none}.die:disabled{opacity:1;cursor:default}.die svg{width:46px;height:46px}.die .holdflag{position:absolute;top:-19px;font-size:11px;font-weight:750;color:#22764b}.hint{color:#6c796d;font-size:13px}.message{min-height:28px;color:#a23b2e;font-size:14px;margin-top:13px}.scorearea{min-width:0}.sectionhead{padding:10px 5px 5px;border-bottom:2px solid #b5c5b5;font-size:12px;letter-spacing:1px;font-weight:800;color:#55765e}.scoreline{display:flex;align-items:center;justify-content:space-between;min-height:35px;padding:5px 4px;border-bottom:1px solid #edf0ea;gap:9px}.scoreline button{padding:5px 12px;min-width:72px;font-size:13px}.scoreline .filled{font-weight:700;color:#405348}.scoreline .empty{color:#a5aba6}.scoreline small{font-size:11px;color:#647868}.subtotal{background:#f0f5ec;font-weight:650;padding:8px;margin-top:3px;display:flex;justify-content:space-between}.total{background:#205c42;color:white;padding:14px;border-radius:10px;display:flex;justify-content:space-between;margin-top:10px;font-size:19px;font-weight:800}.history{margin-top:18px}.historyrow{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0ea;padding:9px 2px;gap:10px}.historyrow button{padding:5px 10px}.historyrow span{font-size:13px;color:#5a6f5e}footer{color:#768376;font-size:12px}footer a{color:#43795c}@media(max-width:740px){.columns{grid-template-columns:1fr}header{align-items:start}.dicearea{min-height:230px}.die{width:54px;height:54px}.die svg{width:40px;height:40px}}

/* v0.1.1: traditional paper score card, three player columns */
.scorearea{background:#fffdf7;border:1px solid #9cb9ce;box-shadow:3px 6px 0 #d6dfe1;padding:17px;overflow-x:auto}
.scorearea h3{color:#244d68;font-family:Georgia,serif;text-align:center;border-bottom:3px double #749cba;padding-bottom:10px;text-transform:uppercase;letter-spacing:1px}
#scoreboard{border:1px solid #729cba;min-width:310px}
.score-columns,.scoreline{display:grid;grid-template-columns:minmax(120px,2.3fr) minmax(76px,1.2fr) minmax(50px,.8fr) minmax(50px,.8fr);align-items:stretch;gap:0;margin:0;padding:0;min-height:39px;border-bottom:1px solid #a3c3d7}
.score-columns{background:#dceef8;font-size:11px;font-weight:800;text-align:center;color:#254e69}
.score-columns>span,.scoreline>span,.scoreline>button{border-right:1px solid #a3c3d7;display:flex;align-items:center;justify-content:center;padding:6px 3px;min-width:0;overflow-wrap:anywhere}
.score-columns>span:first-child,.scoreline>span:first-child{text-align:left;justify-content:flex-start;padding-left:8px}
.score-columns>span:last-child,.scoreline>span:last-child{border-right:0}
.scoreline:nth-child(odd){background:#f6fbff}.scoreline button{background:#e4f4e5;color:#1b6144;border-radius:0;border:0;font-weight:750;cursor:pointer}
.scoreline button:hover{background:#bde6ca}
.scoreline .filled{color:#21495e;font-family:cursive;font-size:19px}
.scoreline .future-col{color:#b3bec5;background:#f2f4f6;font-size:20px}
.sectionhead{margin:0;padding:7px 8px;border-bottom:1px solid #729cba;background:#b9d7e9;letter-spacing:1.2px;color:#244b66}
.scorearea .subtotal{border:1px solid #a3c3d7;border-top:0;margin:0;background:#edf5fa;color:#244b66;padding:9px}
.scorearea .total{border-radius:0;margin:8px 0 0;background:#2b6485;color:white}
.die svg{display:block;margin:auto;flex:none}
@media(max-width:420px){.scorearea{padding:9px}.score-columns,.scoreline{grid-template-columns:minmax(110px,2fr) minmax(68px,1fr) minmax(35px,.6fr) minmax(35px,.6fr)}}

/* v0.1.2: sculpted plastic dice, centered SVG, visible hold state */
.dice{gap:13px;align-items:center;justify-content:center;padding-top:12px}
.die{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 74px;width:74px;height:74px;padding:0;border:0;border-radius:19px;background:transparent;color:#20252a;box-shadow:0 8px 12px rgba(32,48,40,.18),0 3px 1px rgba(26,40,33,.2);transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;overflow:visible}
.die svg,.die-svg{width:100%;height:100%;display:block;flex:none}
.die:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 12px 16px rgba(32,48,40,.2)}
.die.held{background:transparent;border:0;transform:translateY(3px);box-shadow:0 0 0 3px #268259,0 3px 4px rgba(22,69,37,.22)}
.die.held:not(:disabled):hover{transform:translateY(1px)}
.die .holdflag{top:-24px;left:50%;transform:translateX(-50%);white-space:nowrap;z-index:2;color:#15653d;font-size:10px;font-weight:850}
.die:disabled{opacity:1;filter:none}
@media(max-width:480px){.dice{gap:8px}.die{flex-basis:58px;width:58px;height:58px;border-radius:14px}}

/* v0.2.0 account forms */
.account-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.auth-switch{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.auth-form{display:flex;flex-direction:column;gap:13px;max-width:400px}.auth-form label{display:grid;gap:5px;font-weight:600}.auth-form input{padding:11px;border:1px solid #9bad9f;border-radius:8px;font:inherit}.auth-form label[hidden]{display:none}.auth-form button{align-self:flex-start}

/* v0.2.1 settings: unobtrusive gear; account details hidden during game */
[hidden]{display:none!important}.account-top{margin-left:auto}.gear-button{width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid #c3d2c5;border-radius:50%;background:#fff;color:#295940;box-shadow:0 2px 7px #00000016;font-size:28px;line-height:1}.gear-button:hover{background:#e5f0e7}.gear-button:focus-visible{outline:3px solid #367d56;outline-offset:3px}.settings-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.settings-heading h2{margin:0 0 8px}#settings-panel button{margin-right:8px}


/* v0.2.2: system-aware, readable theme; dice remain high contrast */
:root{color-scheme:light;--page:#f1f1e9;--paper:#fff;--ink:#26352c;--muted:#536758;--field:#fff;--field-ink:#26352c;--line:#a3c3d7;--dice-pip:#171c1f}
body{background:var(--page);color:var(--ink)}
.panel{background:var(--paper);color:var(--ink)}
.hint,header p,footer,.historyrow span{color:var(--muted)}
.form input,.form select,.auth-form input{background:var(--field);color:var(--field-ink)}
/* SVG colors are explicit, not currentColor: mobile forced-dark browsers
   must not recolor black pips to white on the pale face. */
.die,.die svg,.die-svg{color:#171c1f;color-scheme:light}
.die-svg{isolation:isolate}
.die:disabled{opacity:1}
@media(prefers-color-scheme:dark){
:root{color-scheme:dark;--page:#121d19;--paper:#20312a;--ink:#ecf5ee;--muted:#bfd2c4;--field:#17251e;--field-ink:#f5fff7;--line:#5c8294}
header p,.hint,footer,.historyrow span{color:var(--muted)}
.panel{border-color:#3b5649;box-shadow:0 6px 22px #0004}
.pill{background:#304c3b;color:#f1fff3}
.ghost{background:#385442;color:#fff}
.ghost:hover:not(:disabled){background:#466c55}
.gear-button{background:#2d4838;color:#f1fff3;border-color:#668b75}
.gear-button:hover{background:#42634c}
.form input,.form select,.auth-form input{border-color:#718e79}
.scorearea{background:#fdfbf3;color:#24394b;border-color:#739cb7;box-shadow:3px 6px 0 #0a1b1f}
.scorearea h3{color:#244d68}
.scoreline,.score-columns,.sectionhead,.scorearea .subtotal{color:#244b66}
.scoreline>span:first-child{color:#244b66}
.scoreline .empty{color:#667886}
.scoreline button{background:#d5eddc;color:#144a34}
.scoreline button:hover{background:#b9e0c4}
.scoreline .filled{color:#21495e}
.scorearea .total{background:#245a79;color:#fff}
.die,.die svg,.die-svg{color:#171c1f;color-scheme:light}
.die .holdflag{color:#a2f5be}
}
@media(max-width:740px){
main{padding:16px 12px 50px}
header{gap:10px}
header h1{font-size:clamp(29px,8vw,48px)}
.panel{padding:16px}
.dicearea{overflow:visible}
.dice{width:100%;gap:clamp(5px,2vw,12px);flex-wrap:nowrap}
.die{flex:0 1 68px;width:min(68px,18vw);height:auto;aspect-ratio:1}
.die svg,.die-svg{width:100%;height:100%}
.scorearea{overflow-x:auto;-webkit-overflow-scrolling:touch}
.scoreline button{min-width:0}
}
@media(max-width:360px){
.dice{gap:4px}
.die{width:17vw;flex-basis:17vw}
.score-columns,.scoreline{grid-template-columns:minmax(106px,2fr) minmax(62px,1fr) minmax(30px,.5fr) minmax(30px,.5fr)}
}


/* v0.2.3: theme-controlled dice, contrast and score actions */
:root,[data-theme="light"]{
--die-light:#ffffff;--die-mid:#f2f3ef;--die-dark:#c8cbc7;--die-edge:#adb4b0;--die-highlight:#ffffff;
--pip-light:#485056;--pip-dark:#101418;--pip-shadow:#879097;
}
@media(prefers-color-scheme:dark){
:root:not([data-theme="light"]){
--die-light:#444b56;--die-mid:#252b37;--die-dark:#101722;--die-edge:#080e18;--die-highlight:#7a8496;
--pip-light:#ffffff;--pip-dark:#dcecff;--pip-shadow:#060b12;
}
}
[data-theme="dark"]{
color-scheme:dark;--page:#121d19;--paper:#20312a;--ink:#ecf5ee;--muted:#bfd2c4;--field:#17251e;--field-ink:#f5fff7;--line:#5c8294;
--die-light:#444b56;--die-mid:#252b37;--die-dark:#101722;--die-edge:#080e18;--die-highlight:#7a8496;
--pip-light:#ffffff;--pip-dark:#dcecff;--pip-shadow:#060b12;
}
[data-theme="light"]{color-scheme:light}
[data-theme="dark"] .panel{border-color:#3b5649;box-shadow:0 6px 22px #0004}
[data-theme="dark"] .hint,[data-theme="dark"] footer{color:var(--muted)}
[data-theme="dark"] .ghost{background:#385442;color:#fff}
[data-theme="dark"] .gear-button{background:#2d4838;color:white;border-color:#668b75}
[data-theme="dark"] .scorearea{background:#fdfbf3;color:#24394b;border-color:#739cb7}
[data-theme="dark"] .scorearea h3{color:#244d68}
[data-theme="dark"] .scoreline>span:first-child{color:#244b66}
[data-theme="dark"] .scorearea .subtotal{color:#244b66}
[data-theme="dark"] .form input,[data-theme="dark"] .form select,[data-theme="dark"] .auth-form input{border-color:#718e79}
.die,.die svg,.die-svg{color-scheme:normal;forced-color-adjust:none}
.die-svg{overflow:visible}
.dicearea{border:1px solid color-mix(in srgb,var(--ink) 20%,transparent)}
.theme-selector{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0}
.theme-selector select{font:inherit;background:var(--field);color:var(--field-ink);border:1px solid #7c988c;padding:9px;border-radius:8px}
.turn-instruction{font-weight:650;font-size:16px}
.turn-instruction.choose-score{font-size:19px;font-weight:850;padding:12px;background:#fff0b3;color:#443300;border:2px solid #d09a12;border-radius:9px}
.score-tip{font-size:13px;font-weight:750;color:#215934!important;margin-bottom:10px}
.scoreline.available-row{outline:2px solid #3a9c56;outline-offset:-2px;background:#e0f7e7!important}
.scoreline .available-score{font-size:15px;font-weight:850;background:#18713b;color:white;min-height:39px}
.scoreline .available-score:hover{background:#09572a;color:white}
.scoreline.used-row{background:#e1e5e9!important;color:#54616e!important}
.scoreline.used-row .filled{background:#c4cbd2;color:#394653!important;font-weight:750;font-family:inherit;font-size:15px}
.game-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.primary-new{background:#147349;color:#fff;box-shadow:0 3px 0 #0c4b31;font-size:16px}
.danger{background:#a73535;color:#fff}
.danger:hover:not(:disabled){background:#842222}
#personal-stats{border-top:1px solid #8a9f91;margin-top:18px;padding-top:16px}
@media(max-width:480px){.game-actions{width:100%}.game-actions button{flex:1 1 130px}.turn-instruction.choose-score{font-size:16px}}


/* Explicit Lightmode must override any earlier OS-dark @media selectors */
[data-theme="light"] body{background:#f1f1e9;color:#26352c}
[data-theme="light"] .panel{background:#fff;color:#26352c;border-color:#e0e4da;box-shadow:0 7px 24px #233b250a}
[data-theme="light"] .hint,[data-theme="light"] footer,[data-theme="light"] header p{color:#536758}
[data-theme="light"] .ghost{background:#e4ece5;color:#235c44}
[data-theme="light"] .gear-button{background:#fff;color:#295940;border-color:#c3d2c5}
[data-theme="light"] .scorearea{background:#fffdf7;color:#24394b;border-color:#9cb9ce}
[data-theme="light"] .scorearea h3{color:#244d68}
[data-theme="light"] .form input,[data-theme="light"] .form select,[data-theme="light"] .auth-form input{background:#fff;color:#26352c;border-color:#9bad9f}


/* v0.3.0 complete, explicit theme tokens for every surface */
:root,[data-theme="light"]{--score-bg:#fffdf7;--score-row:#f6fbff;--score-title:#244b66;--score-muted:#576773;--score-head:#dceef8;--score-section:#b9d7e9;--score-border:#729cba;--score-used:#e1e5e9;--score-used-ink:#394653;--score-active:#e0f7e7;--score-active-border:#24844e;--score-active-btn:#18713b;--score-total:#245a79;--score-total-ink:#fff}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--score-bg:#1a2934;--score-row:#253747;--score-title:#e3effd;--score-muted:#b5c7d9;--score-head:#30485d;--score-section:#365269;--score-border:#6488a6;--score-used:#303842;--score-used-ink:#b7c1cc;--score-active:#153d32;--score-active-border:#59d4a0;--score-active-btn:#1d7855;--score-total:#132e43;--score-total-ink:#fff}}
[data-theme="dark"]{--score-bg:#1a2934;--score-row:#253747;--score-title:#e3effd;--score-muted:#b5c7d9;--score-head:#30485d;--score-section:#365269;--score-border:#6488a6;--score-used:#303842;--score-used-ink:#b7c1cc;--score-active:#153d32;--score-active-border:#59d4a0;--score-active-btn:#1d7855;--score-total:#132e43;--score-total-ink:#fff}
.scorearea,[data-theme="dark"] .scorearea,[data-theme="light"] .scorearea{background:var(--score-bg);color:var(--score-title);border-color:var(--score-border)}
.scorearea h3,[data-theme="dark"] .scorearea h3,[data-theme="light"] .scorearea h3{color:var(--score-title);border-color:var(--score-border)}
#scoreboard{border-color:var(--score-border)}
.score-columns{background:var(--score-head);color:var(--score-title)}
.sectionhead,.scoreline .sectionhead{background:var(--score-section);color:var(--score-title);border-color:var(--score-border)}
.scoreline,.scoreline:nth-child(odd){background:var(--score-row);color:var(--score-title);border-color:var(--score-border)}
.scoreline>span:first-child,[data-theme="dark"] .scoreline>span:first-child{color:var(--score-title)}
.score-columns>span,.scoreline>span,.scoreline>button{border-color:var(--score-border)}
.scoreline .empty{color:var(--score-muted)}
.scoreline.available-row,.scoreline.available-row:nth-child(odd){background:var(--score-active)!important;outline-color:var(--score-active-border)}
.scoreline .available-score,.scoreline .available-score:hover{background:var(--score-active-btn);color:#fff}
.scoreline.used-row,.scoreline.used-row:nth-child(odd){background:var(--score-used)!important;color:var(--score-used-ink)!important}
.scoreline.used-row>span:first-child{color:var(--score-used-ink)!important}
.scoreline.used-row .filled{background:transparent;color:var(--score-used-ink)!important}
.scorearea .subtotal,[data-theme="dark"] .scorearea .subtotal{background:var(--score-head);color:var(--score-title);border-color:var(--score-border)}
.scorearea .total,[data-theme="dark"] .scorearea .total{background:var(--score-total);color:var(--score-total-ink)}
.scoreline .future-col{background:var(--score-used);color:var(--score-muted)}
.score-tip,[data-theme="dark"] .score-tip{color:var(--score-title)!important}
.welcome-actions{display:flex;flex-wrap:wrap;gap:14px}.welcome-actions button{min-height:48px;flex:1 1 180px}
#settings-page{max-width:760px;margin:auto}.danger-zone{margin-top:24px;padding:16px;border:1px solid #bd7373;border-radius:12px}.danger-zone h3{margin:0 0 8px}

/* v0.3.1: accessible, unmistakable authentication results */
.app-notice{padding:15px 18px;margin:0 0 18px;border-radius:12px;border:2px solid #2e8552;background:#e4f8eb;color:#155032;font-weight:800;font-size:17px}
.app-notice[data-kind="error"]{border-color:#bd4141;background:#ffeded;color:#841c1c}
.auth-feedback{margin:14px 0;padding:14px 16px;border-radius:9px;font-weight:800;border:2px solid #b43030;background:#ffe4e4;color:#791818}
.auth-feedback[data-kind="success"]{border-color:#25824f;background:#e5f6eb;color:#185334}
[data-theme="dark"] .app-notice{background:#123c2a;color:#dcffe8;border-color:#66d596}
[data-theme="dark"] .auth-feedback{background:#481b22;color:#ffe3e5;border-color:#f18181}
[data-theme="dark"] .auth-feedback[data-kind="success"]{background:#123c2a;color:#dcffe8;border-color:#66d596}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .app-notice{background:#123c2a;color:#dcffe8;border-color:#66d596}:root:not([data-theme="light"]) .auth-feedback{background:#481b22;color:#ffe3e5;border-color:#f18181}}


/* v0.3.2: color ONLY current player's score cell, never whole row */
.scoreline.available-row,.scoreline.available-row:nth-child(odd),.scoreline.used-row,.scoreline.used-row:nth-child(odd){background:var(--score-row)!important;outline:none!important;color:var(--score-title)!important}
.scoreline .available-score{outline:2px solid var(--score-active-border);outline-offset:-2px;border-radius:3px;font-weight:850}
.scoreline .score-positive{background:var(--score-active-btn);color:#fff}
.scoreline .score-zero{background:#b96019;color:#fff;outline:2px solid #eda853}
.scoreline .score-zero:hover{background:#95490b;color:#fff}
.scoreline .score-used{background:var(--score-used)!important;color:var(--score-used-ink)!important;font-family:inherit;font-size:15px;font-weight:800;cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}
.ranking-list{margin:15px 0;border:1px solid var(--score-border);border-radius:10px;overflow:hidden}
.ranking-row{display:grid;grid-template-columns:50px minmax(0,1fr) minmax(100px,auto);align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--score-border);background:var(--score-bg);color:var(--score-title)}
.ranking-row:last-child{border-bottom:0}.ranking-row:nth-child(odd){background:var(--score-row)}
.ranking-filters{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0}.ranking-filters label,.top-board label{display:grid;gap:5px;font-weight:650}.ranking-filters select,.top-board select{padding:9px;border-radius:8px;background:var(--field);color:var(--field-ink);border:1px solid var(--score-border)}
.ranking-personal{font-weight:800;background:var(--score-head);color:var(--score-title);padding:13px;border:2px solid var(--score-border);border-radius:8px}
.ranking-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.top-board{margin-top:22px}.top-board h3{margin-bottom:8px}
@media(max-width:480px){.ranking-row{grid-template-columns:35px minmax(0,1fr) auto;font-size:13px;gap:7px;padding:10px 7px}}

/* v0.3.3: calm zero option, clean entered scores, genuinely empty cells */
.scoreline .score-used{ text-decoration:none!important; cursor:default; }
.scoreline .score-earned{color:#167b3e!important;text-decoration:none!important;font-weight:850}
.scoreline .score-entered-zero{color:var(--score-used-ink)!important;text-decoration:none!important}
.scoreline .score-zero{background:#eab477;color:#42250d;outline:2px solid #d99552}
.scoreline .score-zero:hover{background:#dda365;color:#38210f}
[data-theme="dark"] .scoreline .score-earned{color:#80e4a5!important}
[data-theme="dark"] .scoreline .score-zero{background:#c68b54;color:#1e1005;outline-color:#eab477}
[data-theme="dark"] .scoreline .score-zero:hover{background:#dba16a;color:#1e1005}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .scoreline .score-earned{color:#80e4a5!important}:root:not([data-theme="light"]) .scoreline .score-zero{background:#c68b54;color:#1e1005;outline-color:#eab477}}

/* v0.4.0 bonus target and administration */
.subtotal .bonus-short{color:#a95f12;background:#fff0d6;padding:3px 8px;border-radius:7px}
.subtotal .bonus-met{color:#12683a;background:#ddf6e5;padding:3px 8px;border-radius:7px}
#finished-placement{margin:10px 0 0;line-height:1.5}
#admin-page{max-width:900px;margin:auto}
#admin-page .admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
#admin-page .admin-actions button{flex:1 1 210px}
#admin-player{width:100%;max-width:550px;padding:12px;margin:8px 0;border:1px solid #789283;border-radius:8px;background:var(--field);color:var(--field-ink);font:inherit}
#admin-message{font-weight:750}
#confirm-dialog{width:min(94vw,490px);border:2px solid #849789;border-radius:16px;padding:22px;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #0007}
#confirm-dialog::backdrop{background:rgba(0,0,0,.6)}
#confirm-dialog form{display:grid;gap:14px}
#confirm-dialog label{display:grid;gap:5px}
#confirm-dialog input{width:100%;padding:11px;font:inherit;border:1px solid #849789;border-radius:8px;background:var(--field);color:var(--field-ink)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .subtotal .bonus-short{color:#ffcf94;background:#573a1f}:root:not([data-theme="light"]) .subtotal .bonus-met{color:#9df3b6;background:#18462b}}
[data-theme="dark"] .subtotal .bonus-short{color:#ffcf94;background:#573a1f}
[data-theme="dark"] .subtotal .bonus-met{color:#9df3b6;background:#18462b}

/* v0.4.1 highscore celebration in both light/dark modes */
.highscore-celebration{margin-top:14px;padding:17px;border:2px solid #398553;border-radius:13px;background:#e5f7e8;color:#12482b;box-shadow:0 5px 18px #17392720}
.highscore-celebration h3{margin:0 0 6px;font-size:22px}.highscore-celebration p{margin:0;font-weight:600}
[data-theme="dark"] .highscore-celebration{background:#163c2d;color:#d6f9dd;border-color:#66c58a}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .highscore-celebration{background:#163c2d;color:#d6f9dd;border-color:#66c58a}}

/* v0.4.2 – celebrations with light and dark palettes */
.kniffel-celebration,.bonus-celebration{display:grid;gap:5px;margin:13px 0 4px;padding:15px 16px;border-radius:13px;border:2px solid #4d9d71;background:#e1f6e9;color:#134c30;text-align:center}
.kniffel-celebration strong,.bonus-celebration strong{font-size:clamp(18px,4vw,23px);line-height:1.25}
.kniffel-celebration span,.bonus-celebration span{font-size:14px;font-weight:600}
.kniffel-celebration.extra-celebration{background:#fff0c9;color:#794208;border-color:#e6aa34;box-shadow:0 0 0 3px #e4aa342b}
.bonus-celebration.bonus-miss{background:#fff2df;color:#745122;border-color:#d7ab6d}
[data-theme="dark"] .kniffel-celebration,[data-theme="dark"] .bonus-celebration{background:#183d2c;color:#ddffea;border-color:#57bc83}
[data-theme="dark"] .kniffel-celebration.extra-celebration{background:#513a1d;color:#ffdfa7;border-color:#db9e39}
[data-theme="dark"] .bonus-celebration.bonus-miss{background:#443524;color:#f7ddb5;border-color:#b98d55}
@media(prefers-color-scheme:dark){
 :root:not([data-theme="light"]) .kniffel-celebration,:root:not([data-theme="light"]) .bonus-celebration{background:#183d2c;color:#ddffea;border-color:#57bc83}
 :root:not([data-theme="light"]) .kniffel-celebration.extra-celebration{background:#513a1d;color:#ffdfa7;border-color:#db9e39}
 :root:not([data-theme="light"]) .bonus-celebration.bonus-miss{background:#443524;color:#f7ddb5;border-color:#b98d55}
}

/* v0.4.3: persistent account controls and clear settings exit */
.header-user{font-weight:750;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-logout{padding:9px 12px}
.settings-close-row{display:flex;justify-content:flex-end;margin:4px 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.settings-close-row button{margin:0!important}
@media(max-width:560px){.account-top{gap:6px}.header-user{max-width:100px;font-size:13px}.header-logout{padding:7px 9px;font-size:13px}}

/* v0.4.4 – clear overall settings frame and thematic groups */
#settings-page{border:2px solid var(--score-border);border-radius:18px;padding:16px;margin-bottom:20px;background:var(--paper);box-shadow:0 7px 24px #233b2512}
#settings-page .settings-frame{border:0;box-shadow:none;padding:5px;margin-bottom:10px}
#settings-page .settings-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:0 0 15px;margin-bottom:16px;border-bottom:2px solid var(--score-border)}
#settings-page .settings-heading h2{margin:0}
#settings-page .settings-heading button{margin:0!important}
#settings-page .settings-group{border:1px solid var(--score-border);border-radius:12px;padding:18px;margin:16px 0;background:var(--score-row);color:var(--ink)}
#settings-page .settings-group h3{margin-top:0}
#settings-page .settings-group select{width:min(100%,350px);padding:10px;border-radius:9px;background:var(--field);color:var(--field-ink);border:1px solid var(--score-border)}
#settings-page #profile-panel{box-shadow:none;border:1px solid var(--score-border)}
@media(max-width:600px){#settings-page{padding:10px}#settings-page .settings-group{padding:12px}.header-user{max-width:210px;white-space:normal}}

/* v0.4.5 – admin workflows with matching list sizes */
.admin-zone{border:1px solid var(--score-border);border-radius:13px;padding:18px;margin:18px 0;background:var(--paper)}
.admin-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.admin-select-grid label,#admin-controls>.admin-zone>label{display:flex;flex-direction:column;gap:8px;font-weight:700}
#admin-player,#admin-game-select,#admin-players-multi{box-sizing:border-box;width:100%;min-width:0;height:196px;max-width:none;margin:0;padding:8px;border:1px solid var(--score-border);border-radius:9px;background:var(--field);color:var(--field-ink);font:inherit}
#admin-controls select option{padding:5px}
.ranking-reset-notice{border:1px solid var(--score-border);border-radius:8px;padding:12px;background:var(--score-row);font-weight:650}
@media(max-width:650px){.admin-select-grid{grid-template-columns:1fr}.admin-zone{padding:12px}}

/* v0.4.6: preserve explicit item lists in confirmation dialog */
#confirm-description{white-space:pre-line;max-height:38vh;overflow-y:auto;overflow-wrap:anywhere;line-height:1.5}

/* v0.4.7 – small bottom-right potential scores in lower half */
.scoreline.lower-scoreline>button.available-score{position:relative;min-height:40px;display:block;padding:4px 6px!important;text-align:right}
.scoreline.lower-scoreline>button.available-score .option-points{position:absolute;right:5px;bottom:3px;font-size:10px;line-height:1.1;font-weight:750;color:inherit;white-space:nowrap}
.scoreline>button.available-score.score-zero{background:transparent!important;color:var(--score-title)!important;outline:2px solid #278e51!important;outline-offset:-3px!important;box-shadow:none!important}
.scoreline>button.available-score.score-zero:hover{background:var(--score-head)!important}
.scoreline>button.available-score.score-positive{outline:2px solid #278e51!important;outline-offset:-3px!important}
.scoreline>button.available-score:focus-visible{outline:3px solid #154c34!important;outline-offset:-3px!important}

/* v0.4.8 – show attainable values normally, fixed targets unobtrusively */
.scoreline.lower-scoreline>button.available-score{min-height:47px!important;text-align:center!important;display:flex!important;align-items:center;justify-content:center;padding:4px 5px 14px!important}
.scoreline.lower-scoreline>button.available-score .current-points{font-size:13px;line-height:1.2}
.scoreline.lower-scoreline>button.available-score .fixed-target{position:absolute;right:4px;bottom:2px;font-size:9px;line-height:1.15;font-weight:600;opacity:.8}
.ranking-row{grid-template-columns:46px minmax(0,1fr) minmax(85px,auto) minmax(80px,auto)}
.ranking-row .ranking-date{font-size:12px;text-align:right;white-space:nowrap;color:var(--score-title);opacity:.85}
@media(max-width:480px){.ranking-row{grid-template-columns:28px minmax(0,1fr) auto;gap:6px}.ranking-row .ranking-date{grid-column:2/-1;text-align:right}}

.scoreline .fixed-target-cell{position:relative;min-height:47px}
.scoreline .fixed-target-cell .fixed-target{position:absolute;right:4px;bottom:3px;font-size:9px;line-height:1.15;opacity:.7}

/* v0.4.9: personal ranking uses the global score appearance */
#history-panel>.ranking-list{margin-top:12px}
#history-panel #personal-global-ranking{margin-top:12px}
#newgame #ranking-newgame{margin-bottom:14px}
#preferred-variant-group select{width:min(100%,360px);padding:10px;border:1px solid var(--score-border);border-radius:8px;background:var(--field);color:var(--field-ink)}

/* v0.4.10 – neutral scorecard fields and upper score threshold */
#scoreboard .scoreline>button.available-score,
#scoreboard .scoreline>button.available-score.score-positive,
#scoreboard .scoreline>button.available-score.score-zero{background:transparent!important;color:var(--score-title)!important;outline:2px solid #278e51!important;outline-offset:-3px!important;box-shadow:none!important}
#scoreboard .scoreline>button.available-score:hover{background:var(--score-head)!important}
.scorearea .subtotal .upper-score-low{color:#bd3232}
.scorearea .subtotal .upper-score-met{color:#18874a}
[data-theme="dark"] .scorearea .subtotal .upper-score-low{color:#ff8585}
[data-theme="dark"] .scorearea .subtotal .upper-score-met{color:#7ae3a2}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .scorearea .subtotal .upper-score-low{color:#ff8585}:root:not([data-theme="light"]) .scorearea .subtotal .upper-score-met{color:#7ae3a2}}

/* v0.4.11: only entered score values are bold */
#scoreboard .scoreline>button.available-score,
#scoreboard .scoreline>button.available-score .current-points,
#scoreboard .scoreline>button.available-score .option-points,
#scoreboard .scoreline .fixed-target{font-weight:400!important}
#scoreboard .scoreline>.score-used{font-weight:800!important}

/* v0.4.13 – compact two-line, regular-weight upper total and bonus hint */
#scoreboard .subtotal:has(.upper-block-total){display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;font-weight:400!important}
#scoreboard .subtotal .upper-block-total{font-weight:400!important}
#scoreboard .subtotal .upper-block-bonus-hint{font-size:12px;font-weight:400!important}
