:root{--color-bg: #ece4d3;--color-bg-alt: #e1d6bd;--color-panel: #fbf8f2;--color-panel-alt: #f3ecdc;--color-ink: #2a2118;--color-ink-muted: #4a3d2c;--color-border: #d3c6ac;--color-accent: #8a2119;--color-accent-hover: #6f1712;--color-accent-contrast: #f7efda;--color-danger: #9a3324;--color-danger-bg: #fbeae4;--color-danger-border: #dcb3a5;--color-warning: #8a5a12;--color-warning-bg: #fbf0dc;--color-warning-border: #e0c88f;--color-info: #2f5d62;--color-info-bg: #e4eeee;--color-info-border: #b9d3d4;--color-positive: #3f6b3f;--color-blood: #6e1414;--color-blood-border: #a83f36;--color-blood-bg: #f7e5e1;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius: 8px;--radius-sm: 5px;--font-display: "Rye", "Georgia", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root[data-theme=dark]{--color-bg: #1c1712;--color-bg-alt: #221b14;--color-panel: #2a2219;--color-panel-alt: #251e16;--color-ink: #ede4d3;--color-ink-muted: #b7a98f;--color-border: #4a3d2c;--color-accent: #cf4a3a;--color-accent-hover: #e05e4c;--color-accent-contrast: #1c1712;--color-danger: #e2705c;--color-danger-bg: #3a211c;--color-danger-border: #5f382e;--color-warning: #d9a441;--color-warning-bg: #3a2e14;--color-warning-border: #5c4a22;--color-info: #7ec1c6;--color-info-bg: #1d2e2f;--color-info-border: #33484a;--color-positive: #7fa876;--color-blood: #e2685c;--color-blood-border: #8f3b30;--color-blood-bg: #331512}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);line-height:1.45;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;letter-spacing:.02em;line-height:1.15;margin:0 0 var(--space-3);text-wrap:balance}h1{font-size:2.1rem}h2{font-size:1.5rem}h3{font-size:1.15rem;color:var(--color-accent)}h4{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted);font-family:var(--font-body);font-weight:700}p{margin:0 0 var(--space-3)}ul,ol{margin:0 0 var(--space-3);padding-left:1.3em}a{color:var(--color-accent)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-shell{max-width:760px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-6)}.app-centered{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#140f08b3;display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:100}.modal-content{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);max-width:95vw;max-height:92vh;overflow:auto}.modal-content img{max-width:100%;display:block;border-radius:var(--radius-sm)}.modal-close-row{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}.app-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.app-header h1{margin:0}.app-party-name{margin:0 0 2px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted)}.panel{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4);overflow-x:auto}.panel-actions{background:var(--color-blood-bg);border:2px solid var(--color-blood-border)}.panel-actions h4{color:var(--color-blood)}.panel-actions button:not(:disabled){border-color:var(--color-blood-border)}.panel-actions button:not(:disabled):hover{border-color:var(--color-blood)}.panel-tight{padding:var(--space-3)}.panel+.panel{margin-top:0}.section-grid{display:grid;gap:var(--space-4)}.section-grid>*{min-width:0}@media (min-width: 680px){.section-grid--two-col{grid-template-columns:1.6fr 1fr;align-items:start}}.muted{color:var(--color-ink-muted)}.hint{font-style:italic;font-size:.88em;color:var(--color-ink-muted);margin:var(--space-1) 0 0}.stat-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.stat-list li{display:flex;flex-direction:column;gap:2px}.stat-list .stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted)}.stat-list .stat-value{font-size:1.05rem;font-variant-numeric:tabular-nums}.plain-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.plain-list li{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2)}.plain-list li:last-child{border-bottom:none;padding-bottom:0}.storage-bar{margin:var(--space-2) 0 var(--space-3)}.storage-bar-track{height:8px;border-radius:999px;background:var(--color-bg-alt);overflow:hidden;margin-top:4px;border:1px solid var(--color-border)}.storage-bar-fill{height:100%;background:var(--color-accent);transition:width .2s ease}.storage-bar-fill.is-over{background:var(--color-danger)}.storage-bar-label{font-size:.85rem;color:var(--color-ink-muted);display:flex;justify-content:space-between}.storage-bar-label.is-over{color:var(--color-danger);font-weight:700}button{font-family:var(--font-body);font-size:.92rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-panel-alt);color:var(--color-ink);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .05s ease}button:hover:not(:disabled){border-color:var(--color-accent)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}button.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}button.btn-danger{border-color:var(--color-danger-border);color:var(--color-danger)}button.btn-danger:hover:not(:disabled){border-color:var(--color-danger)}button.btn-link{background:none;border:none;padding:0;text-decoration:underline;color:var(--color-accent)}.button-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-2) 0}input[type=text],input[type=number],select{font-family:var(--font-body);font-size:.92rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-ink)}label{display:inline-flex;align-items:center;gap:var(--space-1)}.field-block{margin:0 0 var(--space-3)}.field-block label{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.checkbox-list{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.checkbox-list label{flex-direction:row}.banner{border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.banner strong{display:block;margin-bottom:2px}.banner-danger{background:var(--color-danger-bg);border-color:var(--color-danger-border);border-left-color:var(--color-danger);color:var(--color-danger)}.banner-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);border-left-color:var(--color-warning);color:var(--color-warning)}.banner-info,.banner-mine{background:var(--color-info-bg);border-color:var(--color-info-border);border-left-color:var(--color-info);color:var(--color-info)}.banner-opponent{background:var(--color-positive-bg, var(--color-bg-alt));border-color:var(--color-positive);border-left-color:var(--color-positive);color:var(--color-positive)}.banner-waiting{margin-top:var(--space-2);font-style:italic;color:inherit;opacity:.85}.calamity-card-text{font-style:italic;opacity:.85;margin:var(--space-1) 0 var(--space-2)}.entry-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--color-panel-alt)}.entry-card:last-child{margin-bottom:0}.entry-title{font-weight:700}.ration-split span{font-variant-numeric:tabular-nums}.badge{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:999px;background:var(--color-bg-alt);color:var(--color-ink-muted);margin-left:var(--space-2)}.badge-dead{background:var(--color-danger-bg);color:var(--color-danger)}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--space-2) var(--space-3) var(--space-2) 0;border-bottom:1px solid var(--color-border)}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-muted)}.landing-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-bg-alt);overflow-y:auto}.landing-inner{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.landing-art{width:100%}.landing-art img{display:block;width:100%;height:auto;border-radius:var(--radius);box-shadow:0 12px 32px #140f0859}.landing-controls{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.landing-form{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.landing-name-input{width:min(100%,320px);font-family:var(--font-body);font-size:1rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fbf8f2f0;color:#2a2118;text-align:center}.landing-btn-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);width:100%}button.landing-btn{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.02em;padding:var(--space-3) var(--space-5);box-shadow:0 2px 6px #140f084d;font-weight:700;color:var(--color-accent-contrast)}.share-link-box{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.share-link-box label{display:block;margin-bottom:var(--space-2);color:var(--color-ink-muted);font-size:.85rem}.share-link-row{display:flex;gap:var(--space-2)}.landing-back{color:var(--color-ink-muted);font-size:.85rem}.quit-game-control{position:fixed;bottom:var(--space-3);right:var(--space-3);z-index:50}button.quit-game-control{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:.8rem;color:var(--color-ink-muted);text-decoration:none;box-shadow:0 2px 6px #140f0833}button.quit-game-control:hover{color:var(--color-danger);border-color:var(--color-danger-border)}.quit-game-confirm{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-panel);border:1px solid var(--color-danger-border);border-radius:var(--radius-sm);box-shadow:0 2px 8px #140f0840;font-size:.85rem}.share-link-row input{flex:1;min-width:0;font-family:var(--font-body);font-size:.9rem;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-panel-alt);color:var(--color-ink)}.board-map-scroll{overflow:auto;max-height:420px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel-alt);margin-bottom:var(--space-3)}.board-map-svg{display:block}.board-map-edge{stroke:var(--color-border);stroke-width:2}.board-map-circle{stroke:var(--color-panel);stroke-width:2;opacity:.9}.board-map-circle--clickable{opacity:1}.board-map-circle-you{fill:none;stroke:var(--color-accent);stroke-width:2.5}.board-map-node--clickable{cursor:pointer}.board-map-node--clickable .board-map-circle{filter:drop-shadow(0 0 4px var(--color-accent))}.board-map-node--clickable:hover .board-map-circle{opacity:1;transform:scale(1.15);transform-box:fill-box;transform-origin:center}.board-map-player-marker{stroke:var(--color-panel);stroke-width:1.5}.board-map-player-label{font-size:9px;font-family:var(--font-body);fill:var(--color-ink);paint-order:stroke;stroke:var(--color-panel);stroke-width:3px}.board-map-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:.78rem;color:var(--color-ink-muted);margin-bottom:var(--space-3)}.board-map-legend-item{display:flex;align-items:center;gap:5px}.board-map-legend-swatch{width:11px;height:11px;border-radius:50%;display:inline-block;flex-shrink:0}.landing-howto{display:block;margin:0;color:var(--color-accent);text-decoration:underline;font-size:.95rem;font-weight:700}.theme-toggle{font-size:.85rem;color:var(--color-ink-muted)}.howto-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.howto-modal{background:var(--color-panel);color:var(--color-ink);max-width:640px;width:100%;max-height:86vh;overflow-y:auto;border:2px solid var(--color-accent);border-radius:var(--radius);padding:1.25rem 1.5rem 1.75rem;box-shadow:0 10px 40px #00000080}.howto-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);margin-bottom:.75rem}.howto-header h2{margin:0;color:var(--color-accent)}.howto-body h3{color:var(--color-accent);margin:1.15rem 0 .35rem;font-size:1.05rem}.howto-body p,.howto-body li{line-height:1.5;margin:.35rem 0}.howto-body ul{padding-left:1.25rem;margin:.35rem 0}.feedback-fab{position:fixed;left:12px;bottom:12px;z-index:900;background:var(--color-accent);color:var(--color-accent-contrast);border:1px solid var(--color-accent-hover);border-radius:999px;padding:.5rem 1rem;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 3px 10px #00000059}.feedback-fab:hover{background:var(--color-accent-hover)}.howto-fab{position:fixed;bottom:12px;left:50%;transform:translate(-50%);z-index:900;background:var(--color-panel);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:999px;padding:.4rem .9rem;font-size:.8rem;font-weight:600;cursor:pointer;box-shadow:0 2px 6px #140f0840}.howto-fab:hover{background:var(--color-accent);color:var(--color-accent-contrast)}.feedback-modal{background:var(--color-panel);color:var(--color-ink);max-width:440px;width:100%;border:2px solid var(--color-accent);border-radius:var(--radius);padding:1.25rem 1.5rem 1.5rem;box-shadow:0 10px 40px #00000080;display:flex;flex-direction:column;gap:.6rem}.feedback-name,.feedback-text{width:100%;box-sizing:border-box;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;background:var(--color-bg);color:var(--color-ink)}.feedback-text{resize:vertical}
