:root{
  --ink:#132a25;--muted:#65746f;--line:#dbe3df;--line-strong:#c7d3ce;
  --surface:#fff;--surface-soft:#f6f8f7;--canvas:#edf1ef;--green:#123f35;
  --green-2:#1b5748;--green-soft:#e4f0eb;--gold:#9a7027;--gold-soft:#f6edd8;
  --danger:#a9323b;--shadow:0 14px 38px rgba(16,42,35,.08),0 2px 8px rgba(16,42,35,.04);
  --shadow-soft:0 6px 20px rgba(16,42,35,.06);--radius:22px
}
*{box-sizing:border-box}
html{background:var(--canvas);scroll-behavior:smooth}
body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% -8%,rgba(196,154,72,.13),transparent 28rem),linear-gradient(180deg,#f7f9f8 0,#edf1ef 24rem);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
main{max-width:940px;margin:0 auto;padding:calc(28px + env(safe-area-inset-top)) 22px calc(42px + env(safe-area-inset-bottom))}
[hidden]{display:none!important}button,input,select{font:inherit}
button{cursor:pointer;min-height:46px;border:1px solid var(--line-strong);border-radius:13px;padding:11px 16px;background:var(--surface);color:var(--ink);font-weight:600;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
button:hover:not(:disabled){border-color:#aebeb7;box-shadow:var(--shadow-soft)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.42;cursor:default}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.import-label:focus-within{outline:3px solid rgba(196,154,72,.58);outline-offset:3px}
header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 22px}
.eyebrow{display:block;font-size:.72rem;letter-spacing:.19em;font-weight:800;color:var(--gold);text-transform:uppercase}
h1{display:flex;align-items:center;gap:12px;font-size:2.45rem;line-height:1.05;letter-spacing:-.055em;margin:6px 0 0;font-weight:760}
h1 span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--green);color:#f4dc9e;font-size:1.45rem;letter-spacing:0;box-shadow:0 6px 16px rgba(18,63,53,.2)}
h2{font-size:1.25rem;line-height:1.25;letter-spacing:-.018em;margin:0}h3{letter-spacing:-.01em}#settings{background:rgba(255,255,255,.8);backdrop-filter:blur(12px);padding-inline:18px}
.sync-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-8px 2px 15px;font-size:.82rem;color:#38705d}
.sync-line>span:before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#3e956d;box-shadow:0 0 0 4px rgba(62,149,109,.11)}
.sync-line .unsynced{color:#8a650f}.sync-line .unsynced:before{background:#c6982f;box-shadow:0 0 0 4px rgba(198,152,47,.12)}
.round-meta{font-size:.88rem;color:var(--muted);line-height:1.5;margin:0 3px 13px}
.scoreboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;position:relative;overflow:hidden;padding:7px;background:linear-gradient(145deg,#15493d,#0d3029);color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:26px;box-shadow:0 20px 50px rgba(13,48,41,.2)}
.scoreboard:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% -20%,rgba(255,255,255,.13),transparent 58%)}
.score{position:relative;z-index:1;min-width:0;text-align:center;padding:17px 7px 15px;border-radius:19px}.score+.score{border-left:1px solid rgba(255,255,255,.12)}
.score .name{display:block;min-height:1.4em;font-size:.82rem;font-weight:650;color:#d5e5df;overflow-wrap:anywhere}.score strong{display:block;font-size:2.4rem;line-height:1;font-weight:720;letter-spacing:-.06em;margin:12px 0 7px;font-variant-numeric:tabular-nums}.score small{font-size:.64rem;letter-spacing:.12em;color:#9ebdb3}
.roundline{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:19px 3px 10px}.roundline strong{font-size:.98rem}.roundline span{display:inline-flex;align-items:center;background:var(--gold-soft);border:1px solid #ead9b2;color:#6f531c;border-radius:999px;padding:6px 11px;font-size:.79rem;font-weight:700}
progress{width:100%;height:7px;display:block;border:0;border-radius:99px;overflow:hidden;appearance:none;background:#dbe3df}progress::-webkit-progress-bar{background:#dbe3df}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--gold),#e1bd72);border-radius:99px}progress::-moz-progress-bar{background:linear-gradient(90deg,var(--gold),#e1bd72);border-radius:99px}
.panel,.dealer-panel{background:rgba(255,255,255,.94);border:1px solid rgba(199,211,206,.78);border-radius:var(--radius);padding:27px;margin:18px 0;box-shadow:var(--shadow)}
.sectiontitle{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:22px}.muted{font-size:.7rem;color:#798781;text-transform:uppercase;letter-spacing:.11em;font-weight:700}.hint{color:var(--muted);font-size:.875rem;line-height:1.55;margin:11px 0 19px}
label{display:block;font-size:.86rem;font-weight:680;color:#29433b}
select,input[type=number],input[type=text],input[type=password],input[type=date],input[type=time]{display:block;width:100%;min-height:50px;margin-top:8px;border:1px solid var(--line-strong);border-radius:13px;padding:12px 13px;background:#fbfcfc;color:var(--ink);box-shadow:inset 0 1px 2px rgba(16,42,35,.025);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
select:focus,input:focus{border-color:#9bae9f;background:#fff;box-shadow:0 0 0 4px rgba(18,63,53,.06)}input:read-only{background:#eaf0ed;color:#315a4c}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}
fieldset{border:1px solid #e1e8e4;border-radius:17px;padding:17px;margin:22px 0 0;background:var(--surface-soft)}legend{font-size:.84rem;font-weight:750;padding:0 7px;margin-left:-7px;color:#2a453c}
.playerchoices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.playerchoice{position:relative;min-width:0}.playerchoice input{position:absolute;opacity:0;pointer-events:none}.playerchoice span{display:flex;min-height:52px;align-items:center;justify-content:center;text-align:center;padding:10px 7px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;font-size:.86rem;overflow-wrap:anywhere;transition:.16s ease}.playerchoice input:checked+span{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 6px 15px rgba(18,63,53,.18)}.playerchoice input:checked+span:before{content:"✓";padding-right:7px;color:#f1d796}.playerchoice input:focus-visible+span{outline:3px solid rgba(196,154,72,.58);outline-offset:2px}.playerchoice input:disabled+span{opacity:.4;background:#eef2f0}
.announcements{display:grid;grid-template-columns:1fr 1fr;gap:9px}.checkline{display:flex;align-items:center;gap:11px;min-height:49px;margin:0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.92rem;font-weight:650;color:#244139;cursor:pointer;transition:background .16s ease,border-color .16s ease}form>.checkline{margin-top:9px}.checkline:hover{border-color:#b7c6bf}.checkline:has(input:checked){background:var(--green-soft);border-color:#a9c7b9;color:#173d31}.checkline input{width:22px;height:22px;margin:0;accent-color:var(--green);flex:0 0 auto}fieldset>.hint{margin:12px 2px 0}
.specials{margin-top:30px;margin-bottom:16px;padding-top:25px;border-top:1px solid var(--line)}.specialhead,.specialrow{display:grid;grid-template-columns:minmax(0,1fr) 66px 66px;gap:12px;align-items:center}.specialhead{padding:0 3px 6px;font-size:.7rem;color:#7a8882;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.specialhead span:not(:first-child){text-align:center}.specialrow{margin:8px 0;padding:10px 11px;border:1px solid #e3e9e6;border-radius:14px;background:var(--surface-soft)}.specialrow label{font-size:.9rem}.specialrow small{display:block;margin-top:3px;color:var(--muted);font-size:.75rem;font-weight:450;line-height:1.35}.specialrow input{height:44px;min-height:44px;margin:0;text-align:center;padding:8px 3px;background:#fff;font-weight:700;font-variant-numeric:tabular-nums}
.calculation{position:relative;overflow:hidden;margin-top:22px;padding:21px;border-radius:17px;background:linear-gradient(145deg,#173f36,#102f29);color:#fff;box-shadow:0 12px 28px rgba(16,47,41,.17)}.calculation:after{content:"♣";position:absolute;right:-7px;top:-27px;font-size:7rem;color:rgba(255,255,255,.035);transform:rotate(-12deg);pointer-events:none}.calculation span,.calculation small{position:relative;z-index:1;display:block;color:#bcd2ca;font-size:.82rem;line-height:1.55}.calculation strong{position:relative;z-index:1;display:block;font-size:1.45rem;line-height:1.25;margin:8px 0;letter-spacing:-.02em}.point-preview{position:relative;z-index:1;margin:14px 0;padding-top:7px;border-top:1px solid rgba(255,255,255,.12)}.point-preview>div{display:flex;justify-content:space-between;gap:12px;font-size:.85rem;margin:8px 0}.point-preview>div span{color:#d5e3de;overflow-wrap:anywhere}.point-preview>div strong{font-size:.95rem;margin:0}.point-preview .hint{margin:0 0 12px;color:#c7d9d3}
.primary{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:54px;border-color:var(--green);background:linear-gradient(135deg,var(--green-2),var(--green));color:#fff;font-weight:720;box-shadow:0 8px 20px rgba(18,63,53,.16)}.primary:hover:not(:disabled){border-color:var(--green);box-shadow:0 11px 24px rgba(18,63,53,.22)}.primary span{font-size:1.45rem;font-weight:400}#saveGame{margin-top:4px}#error,#storage,.form-error{color:var(--danger);font-size:.85rem;line-height:1.45}#error{min-height:5px}
.textbutton{min-height:42px;padding:5px 2px;border:0;background:transparent;box-shadow:none;color:#47665b;font-size:.84rem;text-decoration:underline;text-decoration-color:#a9b8b2;text-underline-offset:4px}.textbutton:hover:not(:disabled){box-shadow:none;color:var(--green)}
.notice{margin-top:15px;padding:14px 15px;border:1px solid #e6cf98;border-radius:14px;background:#fff5d9;color:#6b5015;font-size:.86rem;line-height:1.5}.hint.compulsory{padding:13px 14px;border:1px solid #dfc77f;border-radius:13px;background:#fff3cf;color:#674b0c;font-weight:600}.review-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px;padding:14px 15px;border:1px solid #e3cf99;border-radius:15px;background:var(--gold-soft)}.review-banner strong{font-size:.92rem}
.edit-protection{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 17px;padding:14px 15px;border:1px solid #e0ca91;border-radius:15px;background:var(--gold-soft)}.edit-protection.unlocked{border-color:#b8d2c5;background:var(--green-soft)}.edit-protection strong,.edit-protection small{display:block}.edit-protection small{margin-top:3px;color:var(--muted);font-size:.78rem;line-height:1.4}.edit-protection button{flex-shrink:0}
.dealer-panel{margin-top:19px}.dealer-panel .sectiontitle{align-items:baseline;flex-wrap:wrap;margin-bottom:17px}.dealer-panel h2{font-size:1.08rem}.dealer-first{color:var(--muted);font-size:.82rem;overflow-wrap:anywhere}.dealer-cards{display:grid;grid-template-columns:1fr 1fr;gap:11px}.dealer-card{min-width:0;padding:17px;border-radius:16px}.dealer-card span{display:block;font-size:.78rem;font-weight:650;line-height:1.4}.dealer-card strong{display:block;margin:8px 0 5px;font-size:1.35rem;letter-spacing:-.02em;overflow-wrap:anywhere}.dealer-card small{font-size:.78rem}.dealer-card.previous{border:1px solid var(--line);background:var(--surface-soft);color:#667a72}.dealer-card.next{border:1px solid rgba(255,255,255,.08);border-top:3px solid var(--gold);background:linear-gradient(145deg,#194c40,#123d34);color:#fff;box-shadow:0 9px 20px rgba(18,63,53,.13)}.dealer-card.next small{color:#b9d0c8}.dealer-order{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.dealer-seat{padding:6px 9px;border-radius:99px;color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}.dealer-seat.active{background:var(--gold-soft);color:#654b16;font-weight:700}
.solo-status{padding:23px 3px 0}.solo-status .sectiontitle{margin-bottom:12px}.solo-status h2{font-size:1rem}.solo-players{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.solo-chip{min-width:0;padding:11px 10px;border:1px solid var(--line-strong);border-radius:13px;background:rgba(255,255,255,.58)}.solo-chip span{display:block;font-size:.82rem;font-weight:650;overflow-wrap:anywhere}.solo-chip small{display:block;margin-top:4px;color:var(--muted);font-size:.7rem}.solo-chip.done{border-color:#b8d1c4;background:var(--green-soft)}.solo-chip.done small{color:#2c694c}.solo-status .hint{margin-bottom:4px}
.history .sectiontitle{margin-bottom:5px}.empty{padding:28px 0;color:var(--muted);font-size:.85rem;text-align:center}.historyrow{display:grid;grid-template-columns:1fr auto;gap:14px;padding:18px 2px;border-bottom:1px solid #e5ebe8}.historyrow:last-child{border:0}.historyrow strong{font-size:.94rem}.historyrow small{display:block;margin-top:5px;color:var(--muted);font-size:.78rem;line-height:1.5}.historyrow .value{font-size:1.2rem;white-space:nowrap}.history-actions{align-self:center}.history-actions button{max-width:140px;text-align:right}
.analysis-leaders{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:23px}.analysis-leaders>div{min-width:0;padding:17px;border:1px solid var(--line);border-radius:15px;background:var(--surface-soft)}.analysis-leaders>div:first-child{border-color:#bad3c6;background:var(--green-soft)}.analysis-leaders span,.analysis-leaders small{display:block;font-size:.78rem;line-height:1.5}.analysis-leaders small{color:var(--muted)}.analysis-leaders strong{display:block;margin:7px 0;font-size:1.3rem;overflow-wrap:anywhere}.stats-scroll{overflow-x:auto}.stats-table{width:100%;border-collapse:collapse;font-size:.83rem}.stats-table caption{text-align:left;font-weight:700;margin-bottom:9px}.stats-table th,.stats-table td{padding:12px 8px;text-align:right;border-bottom:1px solid #e4eae7;font-variant-numeric:tabular-nums}.stats-table th:first-child{text-align:left;overflow-wrap:anywhere}.stats-table thead th{color:var(--muted);font-weight:550}.analysis h3{font-size:1.05rem;margin:26px 0 11px}.analysis .hint{margin-bottom:0}.analysis-meta{display:block;margin-top:5px;color:var(--muted);font-size:.76rem;line-height:1.4}
.rules{margin:20px 2px;color:#536a61;font-size:.84rem;line-height:1.65}.rules summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.66);cursor:pointer;font-weight:700;list-style:none}.rules summary::-webkit-details-marker{display:none}.rules summary:after{content:"+";font-size:1.25rem;color:var(--gold)}.rules[open] summary:after{content:"−"}.rules ul{margin:0;padding:18px 22px 5px 36px;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;background:rgba(255,255,255,.6)}.rules li{margin-bottom:11px}
.archive-tools .primary{justify-content:center}.backup-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:13px}.import-label{display:flex;align-items:center;justify-content:center;position:relative;min-height:46px;padding:11px 16px;border:1px solid var(--line-strong);border-radius:13px;background:#fff;cursor:pointer;font-size:.9rem;font-weight:600}.import-label input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.finish-round{border-color:#e0d2ae;background:#fffdf7}.finish-round h2{font-size:1.08rem}.finish-round button{width:100%;border-color:#b89b55;background:#fff;color:#6b5018}.finish-round .hint{margin-bottom:16px}footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding:0 3px;color:var(--muted);font-size:.82rem}
dialog{width:440px;max-width:calc(100% - 28px);max-height:90dvh;overflow:auto;border:1px solid rgba(199,211,206,.8);border-radius:22px;padding:27px;color:var(--ink);background:#fff;box-shadow:0 30px 80px rgba(8,31,25,.28)}dialog::backdrop{background:rgba(5,24,19,.66);backdrop-filter:blur(4px)}dialog label{margin:18px 0}.history-dialog{width:700px}.actions{display:flex;gap:11px;position:sticky;bottom:-27px;margin-top:25px;padding:13px 0;background:#fff}.actions .primary{width:auto;flex:1;justify-content:center}.actions button{white-space:nowrap}.actions .primary[hidden]{display:none}.wizard-next{margin-top:24px}.archived-round{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.archived-round>div{min-width:0}.archived-round strong,.archived-round small{display:block;overflow-wrap:anywhere}.archived-round small{margin-top:5px;color:var(--muted);font-size:.82rem;line-height:1.5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:620px){main{padding:calc(18px + env(safe-area-inset-top)) 13px calc(32px + env(safe-area-inset-bottom))}header{margin:3px 3px 19px}h1{font-size:2.05rem}h1 span{width:38px;height:38px;border-radius:12px;font-size:1.25rem}.panel,.dealer-panel{padding:19px;border-radius:19px;margin:14px 0}.scoreboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:7px;border-radius:22px}.score{padding:14px 8px;border-radius:15px;background:rgba(255,255,255,.045)}.score+.score{border-left:0}.score strong{font-size:2rem;margin:9px 0 5px}.score .name{font-size:.79rem}.twocol{grid-template-columns:1fr}.playerchoices{grid-template-columns:repeat(2,minmax(0,1fr))}fieldset{padding:14px;margin-top:19px}.announcements{grid-template-columns:1fr 1fr;gap:8px}.checkline{padding:10px;font-size:.86rem;line-height:1.32}.specialhead,.specialrow{grid-template-columns:minmax(0,1fr) 52px 52px;gap:8px}.specialrow{padding:9px 8px}.specialrow label{font-size:.84rem}.specialrow small{font-size:.7rem}.sectiontitle .muted{display:none}.solo-status .sectiontitle .muted{display:inline}.solo-players{grid-template-columns:repeat(2,minmax(0,1fr))}.historyrow{grid-template-columns:1fr}.history-actions button{max-width:none;text-align:left}.analysis-leaders{grid-template-columns:1fr}.stats-table th,.stats-table td{padding:11px 5px}.edit-protection{align-items:flex-start;flex-direction:column}.edit-protection button{width:100%}.actions{flex-wrap:wrap}.actions .primary{min-width:100%}dialog{padding:22px;border-radius:20px}.actions{bottom:-22px}}
@media(max-width:380px){.dealer-cards{grid-template-columns:1fr}.announcements{grid-template-columns:1fr}.specialhead,.specialrow{grid-template-columns:minmax(0,1fr) 48px 48px}h1{font-size:1.85rem}#settings{padding-inline:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Shared play, eye entry and review tools. */
.round-tools{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 20px}.eye-entry{background:#f2f5ef;border:1px solid #d4ded3;border-radius:16px;padding:18px;margin:20px 0}.eye-total{display:flex;flex-direction:column;justify-content:center;padding:12px}.eye-total strong{font-size:2rem;color:#123e34}.qr-area{text-align:center;margin:20px auto}.qr-area img{width:100%;max-width:300px;height:auto;image-rendering:pixelated}.audit-entry{border-bottom:1px solid #d4ded3;padding:18px 0}.audit-entry summary{cursor:pointer;font-weight:700}.audit-table{min-width:420px}.audit-table th,.audit-table td{white-space:normal;max-width:220px;overflow-wrap:anywhere}#shareDialog button{margin:8px 6px 4px 0}#shareDialog input{font-size:14px}#cancelCorrection{margin-top:12px;width:100%}#correctionFields{border-top:1px solid #d4ded3;padding-top:20px;margin-top:20px}#legacyFields{display:grid;grid-template-columns:1fr 1fr;gap:12px}#remoteNotice button{margin-top:8px}
.signin-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;padding:12px 18px;background:var(--green);color:#fff;font-weight:700;text-decoration:none;margin:8px 0}.signin-link:hover{background:var(--green-2)}.signin-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.auth-notice{border:1px solid var(--line-strong)}
.ddv-absence{display:grid;grid-template-columns:minmax(9rem,1fr) 5rem 5rem;align-items:center;gap:10px;padding-top:10px}.ddv-absence input{width:24px;height:24px;justify-self:center}
