:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif;--bg: #14161c;--surface: #1e212b;--surface-2: #2a2e3a;--text: #eef1f6;--muted: #9aa1b0;--accent: #8fb3f0;--on-accent: #101319;--good: #7fd19b;--bad: #e8837f;--gold: #f0c75e;--path-fill: #8a6d4a;--path-border: #40311e}@media (prefers-color-scheme: light){:root{--bg: #f5f3ee;--surface: #ffffff;--surface-2: #e9e6de;--text: #1c1f26;--muted: #5b6270;--accent: #3b6fc4;--on-accent: #ffffff;--good: #2f8f5b;--bad: #c14f3f;--gold: #9c6f08;--path-fill: #c9a876;--path-border: #7a5c34}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}#root{min-height:100dvh}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.5em 1em;background:var(--surface-2);color:var(--text)}button.primary{background:var(--accent);color:var(--on-accent);font-weight:600}button.ghost{background:transparent;border:1px solid var(--surface-2)}button.danger{background:var(--bad);color:var(--on-accent);font-weight:600}button:disabled{opacity:1;cursor:not-allowed;background:var(--surface-2);color:var(--muted);border-color:var(--surface-2);font-weight:400}input,select,textarea{font:inherit;width:100%;padding:.6em;border-radius:8px;border:1px solid var(--surface-2);background:var(--surface);color:var(--text)}label{display:flex;flex-direction:column;gap:.3em;margin:.8em 0}.button-row{display:flex;gap:.6em;flex-wrap:wrap}.centered{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;text-align:center;gap:1rem}.hand-app,.board-app{display:flex;flex-direction:column;min-height:100dvh}.hand-app{padding:1.25rem;max-width:480px;margin:0 auto}.board-app{padding:.6rem .8rem}.board-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.board-header .rules{flex:0 1 auto;margin:0;padding:.35em .8em}.board-header .rules-content{max-height:60vh;overflow:auto}.board-header .room-bar{flex:1;margin:0}.board-play{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-start}.board-play .game-map{flex:3 1 560px;min-width:320px}.board-side{flex:1 1 260px;display:flex;flex-direction:column;gap:1rem}.winner-banner{font-size:1.2em;font-weight:700;color:var(--gold)}.rules{margin-bottom:1rem;background:var(--surface);border-radius:8px;padding:.7em 1em}.rules>summary{cursor:pointer;font-weight:600}.rules-content{margin-top:.8em}.rules-content h3{margin:.8em 0 .3em;font-size:1em}.rules-content ul{margin:.3em 0;padding-left:1.4em}.rules-content li{margin:.3em 0}.error{color:var(--bad)}.hint{color:var(--muted)}.name-form{display:flex;flex-direction:column}.room-bar{display:flex;align-items:center;justify-content:space-between;color:var(--muted);margin-bottom:1.5rem;font-size:.9em}.divider{color:var(--muted);text-align:center;margin:1rem 0}.family-chip{display:inline-block;width:.9em;height:.9em;border-radius:50%;border:1.5px solid var(--muted);flex-shrink:0}.bot-badge{margin-left:.5em;font-size:.7em;font-weight:700;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:.15em .5em;vertical-align:middle}.family-picker{border:none;padding:0;margin:.8em 0}.family-picker legend{color:var(--muted);padding:0;margin-bottom:.4em}.family-options{display:flex;gap:.5em;flex-wrap:wrap}.family-option{font-weight:600;border:2px solid var(--muted)}.family-option.selected{border-color:var(--accent);border-width:3px}.lobby{display:flex;gap:2rem;flex-wrap:wrap}.hand-app .lobby{flex-direction:column}.lobby-players{flex:1;min-width:280px}.lobby-players ol{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5em}.lobby-players li{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;background:var(--surface);padding:.5em .8em;border-radius:8px}button.small{padding:.3em .6em;font-size:.85em}.qr-badge-slot{display:inline-flex;width:2.4em;flex:0 0 auto;justify-content:center}.qr-badge{padding:.25em .5em;font-size:.75em;font-weight:700;letter-spacing:.02em}.rejoin-qr{position:relative}.rejoin-qr-popover{position:absolute;top:100%;right:0;z-index:10;margin-top:.4em;display:flex;flex-direction:column;align-items:center;gap:.4em;background:var(--surface);border:1px solid var(--surface-2);border-radius:8px;padding:.8em;box-shadow:0 4px 16px #00000040}.rejoin-qr-popover img{border-radius:6px;background:#fff}.rejoin-qr-popover .hint{text-align:center;max-width:180px;margin:0}.lobby-players .name{flex:1}.qr-panel{display:flex;flex-direction:column;align-items:center;gap:.8em;background:var(--surface);padding:1.5rem;border-radius:12px}.qr-panel img{border-radius:8px;background:#fff}.qr-fallback{color:var(--muted);font-size:.85em;text-align:center}.standings-panel,.marriage-status,.history-panel{background:var(--surface);border-radius:8px;padding:.8em 1em}.history-panel ul{list-style:none;padding:0;margin:.4em 0 0;display:flex;flex-direction:column;gap:.35em;max-height:14em;overflow-y:auto}.history-panel li{color:var(--muted);font-size:.9em;line-height:1.3}.history-panel li.latest{color:var(--text);font-weight:600}.history-num{color:var(--muted);font-variant-numeric:tabular-nums}.history-panel li.latest .history-num{color:inherit}.standings-panel ul,.marriage-status ul{list-style:none;padding:0;margin:.4em 0 0;display:flex;flex-direction:column;gap:.4em}.standings-panel li{display:flex;flex-wrap:wrap;align-items:center;gap:.5em}.standings-panel .name{flex:1}.standings-panel .score{color:var(--muted)}.turn-status{font-weight:600}.turn-status.pending{color:var(--gold)}.game-map{width:100%;height:auto;display:block;background:var(--surface);border-radius:12px}.map-edge-border{stroke:var(--path-border);stroke-width:15;stroke-linecap:round}.map-edge-fill{stroke:var(--path-fill);stroke-width:9;stroke-linecap:round}.map-zone-circle{fill:var(--surface-2);stroke:var(--muted);stroke-width:1.5}.map-zone.selectable{cursor:pointer}.map-zone.selectable .map-zone-circle{stroke:var(--accent);stroke-width:3}.map-zone-bigicon{font-size:32px}.map-zone-consult-badge{font-size:17px}.map-zone-name{fill:var(--text);font-size:14px;font-weight:600}.map-zone-resources{fill:var(--muted);font-size:12px}.map-pawn-circle{stroke:var(--muted);stroke-width:1.5}.map-pawn-gender{font-size:11px;font-weight:700}.turn-panel{display:flex;flex-direction:column;gap:1rem}.proposal-response,.marriage-response,.compensation-choice{background:var(--surface-2);border:2px solid var(--accent);border-radius:8px;padding:.8em 1em}.pawn-panels{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.pawn-panels::-webkit-scrollbar{display:none}.pawn-panel{flex:0 0 100%;scroll-snap-align:start;min-width:0;background:var(--surface);border-radius:12px;padding:1em 1.2em}.pawn-tabs{display:flex;gap:.4em;margin:.6em 0 .2em}.pawn-tab{flex:1;padding:.5em;border-radius:8px;border:1px solid var(--surface-2);background:var(--surface-2);color:var(--muted);font-weight:600}.pawn-tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pawn-panel.current-turn{border:2px solid var(--good)}.pawn-resources{display:flex;gap:.5em;flex-wrap:wrap;margin:.5em 0}.resource-chip{background:var(--surface-2);border-radius:999px;padding:.2em .7em;font-size:.9em}.goal-list{list-style:none;padding:0;margin:.4em 0 .8em;display:flex;flex-direction:column;gap:.4em}.goal-list li{background:var(--surface-2);border-radius:8px;padding:.5em .7em}.goal-points{color:var(--muted);font-size:.85em}.goal-title{color:var(--accent)}.marriage-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4em .6em;background:var(--surface-2);border-radius:8px;padding:.5em .8em;margin:.6em 0}.auto-approve-toggle{display:flex;align-items:center;gap:.4em;font-size:.85em;color:var(--muted);flex-basis:100%}.propose-marriage-form{background:var(--surface-2);border-radius:8px;padding:.6em .8em;margin:.6em 0}.dowry-picker{display:flex;flex-direction:column;gap:.3em;margin:.6em 0}.dowry-field{flex-direction:row;align-items:center;justify-content:space-between;margin:.2em 0}.dowry-field input{width:4em}.pawn-actions{margin-top:.8em;padding-top:.8em;border-top:1px solid var(--surface-2);display:flex;flex-direction:column;gap:.5em}.harvest-options,.reroll-options{display:flex;flex-direction:column;gap:.4em}
