:root{--bg:#f3f5f9;--paper:#fff;--ink:#172033;--muted:#667085;--line:#dfe4ed;--navy:#101a2e;--blue:#296bd6;--blue-soft:#eaf1ff;--gold:#c58a22;--green:#147d64;--green-soft:#e7f7f2;--red:#b33a48;--shadow:0 18px 50px rgba(28,43,75,.09)}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{margin:0;min-height:100vh;background:linear-gradient(180deg,#edf2fa 0,#f7f8fb 260px,var(--bg) 100%)}
button,input,select{font:inherit}
button,select{cursor:pointer}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;padding:12px max(20px,calc((100vw - 1280px)/2));border-bottom:1px solid rgba(255,255,255,.1);background:rgba(16,26,46,.96);color:#fff;box-shadow:0 8px 28px rgba(10,20,40,.13);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{display:block;width:46px;height:46px;filter:drop-shadow(0 5px 10px rgba(0,0,0,.22))}.brand strong,.brand small{display:block}.brand strong{font-size:15px;letter-spacing:.015em}.brand small{margin-top:2px;color:#aab7cd;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.game-picker{display:flex;align-items:center;gap:10px}.game-picker>span{color:#b8c4d8;font-size:12px;font-weight:700}.game-picker select{min-width:180px;padding:10px 38px 10px 12px;border:1px solid #405171;border-radius:10px;background:#16243e;color:#fff;font-weight:750}
.page-shell{width:min(1280px,calc(100% - 32px));margin:28px auto 70px}
.intro-card,.players-card,.sheet-card,.summary-card,.frantic-settings{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.97);box-shadow:var(--shadow)}
.intro-card{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:28px}.eyebrow{margin:0 0 6px;color:var(--blue);font-size:10px;font-weight:850;letter-spacing:.16em}.intro-card h1{margin:0;font-size:clamp(30px,6vw,48px);letter-spacing:-.045em}.intro-card p:last-child{max-width:760px;margin:10px 0 0;color:var(--muted);line-height:1.55}
.quiet-btn,.add-btn,.primary-btn,.danger-btn{border:0;border-radius:10px;padding:10px 14px;font-weight:750}.quiet-btn{border:1px solid var(--line);background:#f8fafc;color:#536174;white-space:nowrap}.quiet-btn:hover{border-color:#9eabc0;color:var(--ink)}.add-btn,.primary-btn{background:var(--navy);color:#fff}.add-btn:hover,.primary-btn:hover{background:#1d3155}.danger-btn{background:#fff0f1;color:var(--red)}
.players-card{margin-top:16px;padding:22px 24px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.section-head h2,.sheet-card h2,.summary-card h2{margin:0;font-size:20px}.player-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:16px}.player-chip{display:grid;grid-template-columns:28px 1fr 30px;align-items:center;gap:7px;padding:7px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.player-chip b{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;background:var(--blue-soft);color:var(--blue);font-size:12px}.player-chip input{min-width:0;width:100%;border:0;background:transparent;color:var(--ink);font-weight:750;outline:0}.player-chip:focus-within{border-color:#7da7ed;box-shadow:0 0 0 3px rgba(41,107,214,.1)}.remove-player{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:8px;background:transparent;color:#929dad;font-size:19px}.remove-player:hover{background:#feecee;color:var(--red)}.hint{margin:12px 0 0;color:var(--muted);font-size:12px}
.sheet-card{margin-top:16px;overflow:hidden}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 24px;border-bottom:1px solid var(--line)}.sheet-heading p{margin:4px 0 0;color:var(--muted);font-size:12px}.table-scroll{overflow:auto;overscroll-behavior-inline:contain}.score-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0}.score-table th,.score-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px;text-align:center}.score-table tr>*:last-child{border-right:0}.score-table tbody tr:last-child>*{border-bottom:0}.score-table thead th{position:sticky;top:0;z-index:1;background:#f7f9fc;color:#4a566b;font-size:12px}.score-table thead th:first-child{left:0;z-index:2;text-align:left}.score-table tbody th{position:sticky;left:0;z-index:1;width:220px;background:#fff;text-align:left}.score-icon{background-image:url('assets/score-icons-v1.png');background-repeat:no-repeat;background-size:400% 200%}.icon-sheet{background-position:0 0}.icon-military{background-position:33.333% 0}.icon-coins{background-position:66.667% 0}.icon-wonder{background-position:100% 0}.icon-civic{background-position:0 100%}.icon-commercial{background-position:33.333% 100%}.icon-guilds{background-position:66.667% 100%}.icon-science{background-position:100% 100%}.gwt-icon{background-image:url('assets/gwt-score-icons-v1.png');background-size:400% 300%}.icon-gwt-money{background-position:0 0}.icon-gwt-buildings{background-position:33.333% 0}.icon-gwt-crests{background-position:66.667% 0}.icon-gwt-stations{background-position:100% 0}.icon-gwt-hazards{background-position:0 50%}.icon-gwt-cattle{background-position:33.333% 50%}.icon-gwt-objectives{background-position:66.667% 50%}.icon-gwt-station-masters{background-position:100% 50%}.icon-gwt-workers{background-position:0 100%}.icon-gwt-board-space{background-position:33.333% 100%}.icon-gwt-job-token{background-position:66.667% 100%}.icon-gwt-total{background-position:100% 100%}.category{display:flex;align-items:center;gap:10px}.category-icon{display:block;width:42px;height:42px;flex:0 0 42px;border-radius:10px;filter:drop-shadow(0 3px 5px rgba(24,39,66,.14))}.category span{display:block}.category strong,.category small{display:block}.category strong{font-size:13px}.category small{margin-top:3px;color:var(--muted);font-size:10px;font-weight:500;line-height:1.3}
.score-input{width:76px;padding:10px 8px;border:1px solid #cfd6e2;border-radius:9px;background:#fff;color:var(--ink);font-weight:750;text-align:center;outline:0}.score-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(41,107,214,.12)}.auto-score{display:block;margin-top:5px;color:var(--green);font-size:11px;font-weight:800}.science-inputs{display:grid;grid-template-columns:repeat(3,48px);justify-content:center;gap:4px}.science-inputs label{display:grid;gap:3px;color:var(--muted);font-size:9px;font-weight:800}.science-inputs input{width:48px;padding:8px 4px}.science-total{display:inline-block;margin-top:7px;padding:4px 7px;border-radius:6px;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:850}.total-row th,.total-row td{background:#f1f5fb!important}.total-row th{font-size:15px}.total-value{font-size:26px;font-weight:850;letter-spacing:-.03em}.leader-cell{background:#fff7e5!important}.leader-cell .total-value{color:#a86e0d}.winner-dot{display:inline-block;margin-left:5px;color:var(--gold);font-size:12px;vertical-align:top}
.summary-card{margin-top:16px;padding:22px 24px}.ranking{display:grid;gap:8px;margin-top:14px}.rank-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}.rank-row:first-child{border-color:#e8c672;background:#fff9e9}.rank-row>span:first-child{color:var(--muted);font-weight:850}.rank-row strong{font-size:14px}.rank-row b{font-size:18px}.summary-note{margin:12px 0 0;color:var(--muted);font-size:12px}
.frantic-settings{display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:14px;margin-top:16px;padding:18px 22px}.frantic-settings h2{margin:0;font-size:18px}.frantic-settings p{margin:5px 0 0;color:var(--muted);font-size:12px}.field{display:grid;gap:5px}.field span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.field select,.field input{min-width:135px;padding:9px 10px;border:1px solid #cfd6e2;border-radius:9px;background:#fff;color:var(--ink);font-weight:700}.round-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.delete-round{border:0;background:transparent;color:#a4adba;font-size:17px}.delete-round:hover{color:var(--red)}.frantic-total.is-over{color:var(--red)}.status-banner{margin-top:16px;padding:16px 18px;border:1px solid #b9dfd3;border-radius:14px;background:var(--green-soft);color:#205c4d}.status-banner.finished{border-color:#e3c36e;background:#fff7df;color:#75500b}.status-banner strong{display:block;font-size:16px}.status-banner span{display:block;margin-top:4px;font-size:12px}.sheet-actions{display:flex;justify-content:flex-start;padding:18px 24px;border-top:1px solid var(--line)}.ohanami-inputs{display:grid;grid-template-columns:repeat(var(--ohanami-cols,2),minmax(54px,72px));justify-content:center;gap:7px}.ohanami-inputs label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.03em}.ohanami-inputs input{width:100%}.garden-label{display:flex;align-items:center;justify-content:center;gap:4px}.garden-dot{width:8px;height:8px;border-radius:50%}.garden-dot.blue{background:#4388d5}.garden-dot.green{background:#52a573}.garden-dot.gray{background:#8d96a3}.garden-dot.pink{background:#e887aa}.round-score{display:block;margin-top:8px;color:var(--green);font-size:11px;font-weight:850}
.rules-strip{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:16px;padding:14px 18px;border:1px solid #bfd2f1;border-radius:14px;background:var(--blue-soft);color:#31598e;font-size:12px}.rules-strip strong{margin-right:5px;color:var(--navy)}.rules-strip span{padding:5px 8px;border-radius:7px;background:rgba(255,255,255,.72);font-weight:750}.position-select{width:110px;padding:9px 8px;border:1px solid #cfd6e2;border-radius:9px;background:#fff;color:var(--ink);font-weight:750}.score-toggle,.protection-toggle{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.score-toggle input,.protection-toggle input{width:18px;height:18px;accent-color:var(--blue)}.score-toggle span,.protection-toggle span{font-size:11px;font-weight:750}.gwt-table tbody th{width:260px}.scout-table{min-width:980px}.scout-table tbody th{width:155px}.scout-round-title strong,.scout-round-title small{display:block}.scout-round-title small{margin-top:4px;color:var(--muted);font-size:10px;font-weight:500}.scout-inputs{display:grid;grid-template-columns:repeat(3,58px);justify-content:center;gap:5px}.scout-inputs label{display:grid;gap:3px;color:var(--muted);font-size:8px;font-weight:850}.scout-inputs .score-input{width:58px;padding:8px 4px}.protection-toggle{margin-top:8px}.protection-toggle span{color:var(--muted);font-size:10px}.scout-rules{border-color:#c8dccc;background:#edf8f0;color:#346347}
.toast{position:fixed;left:50%;bottom:22px;z-index:20;max-width:min(430px,calc(100vw - 32px));padding:10px 16px;border-radius:999px;background:var(--navy);color:#fff;box-shadow:0 12px 35px rgba(14,26,49,.25);font-size:12px;opacity:0;pointer-events:none;transform:translate(-50%,18px);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.topbar{align-items:stretch;flex-direction:column;gap:10px;padding:12px 16px}.game-picker{justify-content:space-between}.game-picker select{flex:1;min-width:0}.page-shell{width:min(100% - 20px,1280px);margin-top:14px}.intro-card{align-items:stretch;flex-direction:column;padding:21px}.intro-card .quiet-btn{align-self:flex-start}.players-card,.summary-card{padding:18px}.sheet-heading{align-items:flex-start;flex-direction:column;padding:18px}.frantic-settings{grid-template-columns:1fr 1fr;padding:18px}.frantic-settings>div:first-child{grid-column:1/-1}.field select,.field input{min-width:0;width:100%}.player-editor{grid-template-columns:1fr}.score-table tbody th{width:175px}.score-table th,.score-table td{padding:10px 8px}.category small{max-width:120px}.science-inputs{grid-template-columns:repeat(3,43px)}.science-inputs input{width:43px}.sheet-actions{padding:16px 18px}}
@media(max-width:420px){.game-picker>span{display:none}.frantic-settings{grid-template-columns:1fr}.frantic-settings>div:first-child{grid-column:auto}.intro-card h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
