/* ミライ島：独自デザイン / 海図と季節の記録をテーマとしたUI。外部素材なし */
:root{font-family:system-ui,-apple-system,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;color:#233e45;background:#e6e8e1;font-synthesis:none;--ink:#233e45;--muted:#587078;--sea:#c4dde0;--paper:#fffcf2;--line:#cbd6cd;--accent:#316b69;--accent-2:#b47b48;--soft:#edf0e6}
*{box-sizing:border-box}body{margin:0;min-width:300px}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.47}button:focus-visible{outline:3px solid #bc7c32;outline-offset:2px}.shell{max-width:1100px;margin:auto;min-height:100vh;background:#f8f6ed;box-shadow:0 4px 60px #1c394016}.top{background:var(--ink);color:#f8f2de;padding:13px 21px;border-bottom:5px solid #ceba8f}.topline{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-size:18px;font-weight:850;letter-spacing:.025em}.eyebrow{font-size:12px;opacity:.82;letter-spacing:.03em}.tinybtn{min-height:42px;background:transparent;color:#fff9e9;border:1px solid #d3cfb2;border-radius:5px;padding:7px 12px}.main{padding:19px;display:grid;gap:14px}.panel{background:var(--paper);border:1.5px solid var(--line);border-radius:7px;padding:16px}.sheetlabel{font-size:12px;letter-spacing:.12em;font-weight:800;color:#618080;text-transform:uppercase}.title{font-size:clamp(33px,6vw,58px);line-height:1.22;letter-spacing:.025em;font-weight:900;margin:7px 0 18px}.title small{display:block;font-size:.29em;font-weight:650;letter-spacing:.09em;color:var(--accent);margin:0 0 8px}.lead{font-size:16px;line-height:1.85}.muted{font-size:13px;line-height:1.65;color:var(--muted)}h2{font-size:18px;line-height:1.4;margin:0 0 12px}h3{font-size:16px;margin:0 0 8px}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;border:1px solid var(--accent);border-radius:5px;background:var(--accent);color:#fff;padding:12px 16px;font-weight:750;line-height:1.5}.btn.secondary{background:#e2ece5;border-color:#97b5a6;color:#214e50}.btn.ghost{background:#fffcf2;color:#2d6464;border-color:#aec5bc}.btn.warn{background:#9d603e;color:white}.buttons{display:flex;gap:9px;flex-wrap:wrap}.hero{border:1.5px solid #b3c5b4;background:#f9f5e8;padding:22px;border-radius:8px;text-align:left}.hero .map{margin:12px auto 15px;box-shadow:none}.startbuttons{margin-top:22px}.map{display:block;width:100%;height:auto;max-height:390px;aspect-ratio:720/330;background:#ccdee0;border:1px solid #bfd0c9;border-radius:2px}.map-note{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted);justify-content:space-between;margin:7px 0 0}.map-note span{white-space:nowrap}.overview{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(275px,.86fr);gap:14px;align-items:start}.island-panel{min-width:0}.island-panel h2{display:flex;align-items:center;justify-content:space-between;gap:8px}.mini-tag{border:1px solid #c4d1c3;padding:4px 8px;color:#52696e;font-size:11px;font-weight:650}.dashboard-panel{display:flex;flex-direction:column;gap:13px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.stat{background:#f0f2e9;padding:11px;border-left:3px solid #9db9a8;min-height:75px}.stat label{display:block;font-size:12px;color:#516c72}.stat strong{font-size:clamp(17px,2.2vw,23px);line-height:1.35;display:block;font-variant-numeric:tabular-nums}.stat small{font-size:10px;color:#677b7f;line-height:1.4}.alert{border-left:4px solid #c79355;background:#f7efdb;padding:12px 14px;font-size:14px;line-height:1.6}.alert strong{display:block;margin-bottom:4px}.decision{background:#fffcf2;border:1.5px solid var(--line);padding:15px;border-radius:7px}.decision-title{display:flex;justify-content:space-between;align-items:baseline;gap:9px;margin-bottom:7px}.decision-title h2{margin:0}.short-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0}.policy-choice{position:relative;text-align:left;display:flex;flex-direction:column;gap:5px;border:1.5px solid #b9ccc6;border-radius:5px;padding:12px;background:#f6f8f1;color:#223f44;min-height:126px;width:100%}.policy-choice:hover:not(:disabled){border-color:#608b79;background:#eaf1e8}.policy-choice.selected,.policy.selected{border:2px solid #317773;background:#e5f1e8}.policy-choice-title{font-size:15px;font-weight:800}.policy-choice-detail{font-size:12px;line-height:1.55;color:#536e71}.policy-choice-cost{margin-top:auto;font-size:12px;font-weight:700;color:#875f34}.decision-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:9px}.decision-actions .btn{flex:1 1 220px}.catalog{border-top:1px dashed #adbdb5;margin:13px 0;padding-top:14px}.catalog[hidden]{display:none}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:5px 0 12px}.chip{background:transparent;border:1px solid #b8c7bb;padding:8px 12px;min-height:40px;color:#2c5559;border-radius:4px;font-size:12px}.chip.active{background:#346f69;color:white;border-color:#346f69}.policylist{max-height:360px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overscroll-behavior:contain}.policy{padding:10px 12px;background:#fdfcf5;border:1.5px solid #d3ddd4;border-radius:5px;text-align:left;color:#233e45}.policy .phead{display:flex;justify-content:space-between;align-items:center;gap:9px;font-size:13px;font-weight:750}.pill{font-size:11px;border:1px solid #b7cbc1;padding:4px 6px;white-space:nowrap;color:#366761;background:#eef4e9}.policy .details{margin-top:5px;font-size:12px;color:#597277;line-height:1.55}.selectedbox{padding:10px 12px;background:#e9efdf;border-left:3px solid #7a9b84;font-size:13px;margin-top:10px}.report{background:#fdfbf3;border:1px solid #cad8cf;border-radius:7px;padding:13px 15px}.report summary{cursor:pointer;list-style:revert;font-weight:750;min-height:30px;line-height:30px}.notices{line-height:1.6}.notice{font-size:13px;padding:8px 0;border-bottom:1px solid #dce4dc}.notice:last-child{border:0}.footer{padding:15px 20px;text-align:center;font-size:11px;color:#61787c}.note{font-size:12px;color:#687c80;line-height:1.6}.hidden{display:none}.hint{color:#6b7d81;font-size:12px}.overlay{position:fixed;inset:0;background:#1d333bc4;z-index:5;display:flex;align-items:center;justify-content:center;padding:15px;overflow-y:auto}.modal{background:#fffdf3;width:min(530px,100%);padding:23px;border:2px solid #8da69b;border-radius:8px;box-shadow:0 12px 65px #071d215e;max-height:94vh;overflow:auto}.modal h2{font-size:22px}.choice{width:100%;border:1.5px solid #c5d6cb;background:#f7f8f0;padding:14px;text-align:left;margin:6px 0;color:#20464a;border-radius:4px;min-height:58px}.choice b{display:block;margin-bottom:5px}.choice small{line-height:1.6;color:#587279}.endstats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.resultstat{background:#edf3e9;padding:13px}.resultstat strong{display:block;font-size:24px}#chart{width:100%;height:160px}.legend-line{border-left:3px solid #86a9a1;padding-left:10px;font-size:12px;color:#587078}.endfooter{margin-top:15px}.vstamp{font-size:10px;color:#7c9692}
@media(max-width:770px){.overview{grid-template-columns:1fr}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.main{padding:12px}.panel,.decision{padding:13px}.top{padding:13px}.map{max-height:none}.dashboard-panel{gap:10px}.stat{min-height:71px;padding:9px}.short-options{grid-template-columns:1fr}.policy-choice{min-height:0;display:grid;grid-template-columns:1fr auto;column-gap:8px;row-gap:2px;align-items:center}.policy-choice-title{grid-column:1}.policy-choice-detail{grid-column:1;line-height:1.5}.policy-choice-cost{grid-column:2;grid-row:1/3;justify-self:end;white-space:nowrap}.policylist{grid-template-columns:1fr;max-height:320px}.hero{padding:16px}}
@media(max-width:370px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{font-size:15px}.stat strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* v0.3 新しい要素：数値の根拠を可視化する独自の記録紙面。カードを模写しない設計。 */
.flow-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.insight{background:#fbfaf1;border:1.5px solid #cad8cf;border-left:5px solid #6c9e9b;border-radius:5px;padding:14px;min-width:0}
.insight-heading{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.insight-heading h2{margin:0;font-size:17px}.insight-heading small{color:#667f7f;font-size:11px;margin-left:auto}.insight-sign{font-size:21px;color:#3a7976;line-height:1}
.cargo-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.cargo-numbers div{border-bottom:1px solid #bed1c5;padding:4px 2px 8px}.cargo-numbers b{font-size:clamp(20px,3vw,29px);display:block;line-height:1.2;color:#234950;font-variant-numeric:tabular-nums}.cargo-numbers span{display:block;font-size:11px;color:#617e80;margin-top:6px}.cargo-numbers .shortage b{color:#a46f31}
.cargo-track{height:10px;border-radius:20px;overflow:hidden;background:repeating-linear-gradient(120deg,#eedec3 0px,#eedec3 9px,#f9efe2 10px,#f9efe2 17px);margin-top:12px}.cargo-track>span{display:block;height:100%;background:#609992;transition:width .2s ease}
.cargo-desc{margin:8px 0 0}.insight-forecast{font-size:14px;line-height:1.65;margin:0 0 12px}.bottleneck{border-top:1px dashed #b4c5bb;padding-top:9px;font-size:12px;line-height:1.6}.bottleneck strong{display:block;color:#366661}.bottleneck span{display:block;color:#566e6f}.micro-note{font-size:11px;line-height:1.6;color:#627b7d;margin:8px 0 0}
.letters-strip{background:#f6f0df;border:1.5px solid #dbd0b7;border-radius:5px;padding:13px 15px}.letters-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.letters-head h2{margin:0}.letters-head span{font-size:11px;color:#826f53}.voices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.voice{background:#fffaf0;border-left:3px solid #b58a58;padding:10px 12px;min-width:0}.voice-role{font-size:12px;font-weight:750;color:#6c503a}.voice-role small{font-weight:500;color:#8a765e}.voice p{font-size:13px;line-height:1.7;margin:6px 0 0;color:#3f4f4c}
.island-history{list-style:none;margin:10px 0 16px;padding:0;display:grid;gap:0}.island-history li{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;position:relative;padding:0 0 18px}.island-history li:not(:last-child):before{content:'';position:absolute;left:110px;top:12px;bottom:-3px;width:1.5px;background:#bed2cc}.island-history li>div{position:relative;padding-left:13px;border-left:2px solid #44847c}.island-history strong{font-size:14px}.island-history p{font-size:12px;color:#5b7275;margin:4px 0 0;line-height:1.55}.history-time{font-size:12px;color:#597779;font-weight:650;padding-top:2px}.timeline-title{margin-top:24px}.history-preview .island-history{margin-bottom:8px}
@media(max-width:770px){.flow-grid{grid-template-columns:1fr}.voices{grid-template-columns:1fr}.insight{padding:12px}.letters-strip{padding:12px}.island-history li{grid-template-columns:79px minmax(0,1fr);gap:8px}.island-history li:not(:last-child):before{left:87px}}
/* v0.4: 開発チーム制作の島の手帳UI。カード・ゲージを他作品から転用せず独立設計。 */
.scale-panel{margin:12px 0;padding:14px;border:1px solid #aebfac;background:#edf2e9;border-radius:7px}.scale-panel>strong{display:block;margin-bottom:9px}.scale-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.scale-option{text-align:left;border:1.5px solid #b3c8bd;background:#fffdf4;color:#31505a;border-radius:5px;padding:10px;min-width:0;min-height:100px;display:flex;flex-direction:column;gap:4px}.scale-option.current{background:#dbece1;border:2px solid #266a68}.scale-option span{font-weight:800;font-size:14px}.scale-option b{font-size:14px}.scale-option small{font-size:11px;line-height:1.45;color:#556e73}.warning-text,.scale-option .warning-text{color:#9b4528;font-size:12px;font-weight:750}.facility-manager{margin-top:15px;background:#f1f3e9;border:1px solid #cad5c4;border-radius:6px;padding:10px 12px}.facility-manager>summary{cursor:pointer;font-weight:800;line-height:1.7;min-height:44px;display:list-item;padding:8px 3px}.manager-count{font-size:11px;color:#627b73;margin-left:5px}.manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:310px;overflow-y:auto}.manage-card{background:#fffdf4;border:1px solid #cad7cd;padding:11px;border-radius:4px;min-width:0}.manage-title{display:flex;flex-direction:column;gap:3px}.manage-title strong{font-size:14px}.manage-title span{color:#687f79;font-size:11px}.manage-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.manage-actions .chip{font-size:11px;min-height:43px;padding:6px 9px}.proceed{width:100%;margin-top:10px;font-size:16px;min-height:54px}.arc-status{border-left:5px solid #a46843;background:#f6eede;border-radius:5px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px}.arc-kicker{font-size:11px;letter-spacing:.05em;font-weight:800;display:block;color:#a36c45;margin-bottom:3px}.arc-status strong{font-size:15px}.arc-status p{font-size:13px;margin:4px 0 0;line-height:1.5}.arc-mark{font-size:11px;color:#724426;border:1px solid #c6a77e;border-radius:3px;padding:4px 7px;white-space:nowrap;font-weight:800}.facility-manager .muted{margin:0 0 10px}
@media(max-width:580px){.scale-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.scale-option{padding:7px;min-height:116px}.scale-option b{font-size:13px}.manage-grid{grid-template-columns:1fr}.arc-mark{display:none}.decision-actions .btn{width:100%}} 
@media(max-width:350px){.scale-option span{font-size:12px}.scale-option b{font-size:12px}.scale-option small{font-size:10px}}
/* v0.5 | 島の3地域、産品帳、年末の風景。既存ゲームのタイル/カード配置を参照しない。 */
.regions{margin-top:11px;background:#f5f4e9;border:1px solid #d1d8c8;border-radius:5px;padding:11px}
.regions-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:9px}.regions-heading strong{font-size:14px}.regions-heading small{font-size:11px;color:#697d75}
.region-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.region-button{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:4px;border:1.5px solid #bfd2c5;background:#fffef7;border-radius:4px;padding:9px 8px;min-height:47px;color:#294f55;text-align:left}.region-button span{font-size:12px;font-weight:680}.region-button b{font-size:17px;font-variant-numeric:tabular-nums}.region-button.active{background:#e0f0e6;border-color:#347773;outline:1px solid #347773}.region-detail{margin-top:9px;border-top:1px dashed #ccd4c7;padding:9px 2px 1px;line-height:1.6}.region-detail strong{font-size:13px}.region-detail p{font-size:12px;margin:3px 0}.region-detail small{font-size:11px;color:#597678}
.goods-panel{background:#f6f1df;border:1.5px solid #cbbf9e;border-radius:6px;padding:12px 14px}.goods-panel>summary{font-size:15px;font-weight:750;cursor:pointer;min-height:44px;line-height:44px}.goods-count{font-size:11px;font-weight:550;color:#8a643c;margin-left:8px}.goods-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}.good{padding:11px;background:#fffdf7;border:1px solid #ded8ca;border-left:4px solid #d6d7c9}.good-active{border-left-color:#4f9081;background:#f5f9ef}.good-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px}.good-meta strong{font-size:13px}.good-meta span{font-size:11px;color:#58796e}.good p{font-size:12px;line-height:1.5;color:#6a6d62;margin:6px 0 0}
.album-panel{margin-top:14px}.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.album-card{min-width:0;background:#f6f8ef;border:1px solid #c9d7c9;padding:12px;border-radius:6px}.album-card h3{font-size:14px;margin:0 0 9px}.album-card .map{display:block;width:100%;max-height:none;border:1px solid #c2d2d0}.album-card p{font-size:12px;line-height:1.6;margin:9px 0 0;color:#507078}.album-more{margin-top:13px;padding:8px 0}.album-more summary{font-weight:680;cursor:pointer;padding:8px 0;min-height:44px}.album-more .album-grid{margin-top:8px}
.sea-boat{animation:boat-drift 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.sky-bird{animation:bird-float 9s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes boat-drift{0%,100%{translate:0 0}50%{translate:-10px 3px}}@keyframes bird-float{0%,100%{translate:0 0}50%{translate:9px -5px}}
@media(max-width:590px){.goods-grid{grid-template-columns:1fr}.album-grid{grid-template-columns:1fr}.region-button{padding:8px 6px;flex-direction:column;align-items:start;gap:1px}.region-button b{font-size:18px}.region-buttons{gap:6px}}
@media(prefers-reduced-motion:reduce){.sea-boat,.sky-bird{animation:none!important}}

.letters-strip>summary{min-height:44px;font-size:15px;font-weight:750;cursor:pointer;padding:6px 0;line-height:32px}.letters-strip .voices{margin-top:8px}.letter-count{font-weight:500;font-size:11px;color:#8a765e;margin-left:10px}

/* Ver.1.0 — 重要な判断を見つけやすくする。元の地図デザインは独自描画を維持。 */
.deep-dive{background:#f6f0df;border:1.5px solid #d5ccad;border-radius:7px;padding:15px}
.deep-dive>summary,.save-panel>summary{font-size:15px;font-weight:800;line-height:1.5;cursor:pointer;min-height:43px;display:flex;align-items:center}
.deep-dive[open]>summary{margin-bottom:13px}
.deep-dive>.flow-grid{margin-bottom:12px}
.save-panel{background:#fffcf2;border:1.5px solid #cbd6cd;border-radius:7px;padding:11px 15px}
.cash-preview{display:grid;gap:4px;border:1px solid #bdd4c7;border-left:4px solid #487b70;background:#eff5ea;border-radius:5px;padding:12px;margin:10px 0;font-size:13px;line-height:1.65}
.cash-preview small{color:#526e70;font-size:12px}
.jump-to-decision{display:none}
.visually-hidden{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;white-space:nowrap}
@media(max-width:770px){.main{gap:10px}.jump-to-decision{display:block;background:#dbeadf;border:1px solid #99b8a6;border-radius:6px;color:#215b55;font-weight:750;padding:10px 15px;text-decoration:none;text-align:center;min-height:44px}.policy-choice{min-height:62px}.stat small{font-size:12px}.mini-tag{font-size:12px}.muted{font-size:14px}.cargo-numbers span{font-size:12px}.jump-to-decision:focus-visible{outline:3px solid #b47b48}.deep-dive .flow-grid{grid-template-columns:1fr}}
@media(max-width:370px){.stat strong{font-size:18px}}
/* Ver.1.1 — original hand-drawn island record, not a borrowed commercial-game interface */
.top-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.recap-overlay{z-index:100}.recap-modal{max-width:520px;border:3px solid #7fa998;animation:season-slip .45s cubic-bezier(.15,.8,.2,1) both}.season-roll{font-size:clamp(21px,4vw,30px);color:#24625b}.recap-numbers{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0}.recap-numbers>div{background:#e8f0e8;border:1px solid #b6c8bd;padding:13px;border-radius:6px}.recap-numbers strong{display:block;font-size:24px;color:#176d63}.recap-modal ul{padding-left:22px;font-size:14px;line-height:1.6;max-height:170px;overflow:auto}.recap-modal .btn{width:100%}
@keyframes season-slip{0%{opacity:0;transform:translateY(18px) scale(.97)}100%{opacity:1;transform:translateY(0) scale(1)}}
.end-page{max-width:1050px;margin:0 auto}.end-page .panel{margin-bottom:14px}.end-intro{background:linear-gradient(145deg,#f6f4e7,#dbeade);animation:end-reveal .7s both}.end-headline{display:grid;grid-template-columns:140px minmax(0,1fr);gap:18px;align-items:center;margin:14px 0 20px}.end-headline h1{font-size:clamp(23px,3vw,38px);margin:0}.rank-small{font-size:12px;color:#446368;font-weight:700}.rank-hero{font-size:94px;line-height:1;font-weight:900;letter-spacing:-5px;text-shadow:0 3px 0 #f5f5e6;animation:rank-pop .72s .15s both}.rank-hero small{display:block;font-size:12px;letter-spacing:0;color:#476168}.grade-S{color:#ba7a29}.grade-A{color:#17876f}.grade-B{color:#25679a}.grade-C{color:#66748c}.grade-D{color:#996f43}.grade-E{color:#a45755}
.rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.rank-item{display:grid;grid-template-columns:minmax(0,1fr) 52px 75px;align-items:center;gap:6px;border:1px solid #c5d5ca;border-left:4px solid #5c9688;background:#fcfcf4;padding:9px 11px;border-radius:5px;font-weight:700;font-size:14px}.rank-item .grade{font-size:28px;text-align:center;font-weight:900}.rank-item small{text-align:right;font-weight:400;color:#647678}.style-name{color:#246b64;font-size:24px}.end-newspaper{background:#fbf8e8;border-top:8px double #3d6b67;border-bottom:4px double #3d6b67}.newspaper-mark{font-size:12px;letter-spacing:.1em;border-bottom:1px solid #9daf9f;padding-bottom:8px}.end-newspaper h2{font-size:clamp(21px,3vw,30px);line-height:1.4}.end-voices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.end-voice{background:#ecf2e9;padding:15px;border-radius:4px;border-bottom:3px solid #9bbcaa}.end-voice strong{color:#285f58}.end-voice p{line-height:1.6}.link-grid{display:grid;gap:13px}.link-row{display:grid;grid-template-columns:185px minmax(0,1fr) 40px;align-items:center;gap:12px}.link-row div:first-child{display:flex;flex-direction:column}.link-row span{font-size:12px;color:#647779}.link-meter{height:16px;background:#d4dfd5;border:1px solid #afc4b4;border-radius:40px;overflow:hidden}.link-meter span{display:block;height:100%;background:linear-gradient(90deg,#6da997,#318777);border-radius:40px}.link-row b{text-align:right}.future-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.future-buttons .choice{text-align:center;min-height:50px}.future-buttons .chosen{background:#cee6d6;border:2px solid #367b6d}.future-answer{background:#eff1e1;border-left:4px solid #bb9856;padding:16px;line-height:1.7}.closing{text-align:center}.closing .buttons{justify-content:center}
@keyframes rank-pop{0%{transform:scale(.65);opacity:0}70%{transform:scale(1.13);opacity:1}100%{transform:scale(1)}}@keyframes end-reveal{from{opacity:.4;translate:0 14px}to{opacity:1;translate:0 0}}
@media(min-width:1050px){.main:not(.end-page){display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);align-items:start;gap:12px}.main:not(.end-page)>.overview{grid-column:1;grid-row:1;display:block}.main:not(.end-page)>.overview>.panel{margin-bottom:11px}.main:not(.end-page)>.decision{grid-column:2;grid-row:1 / span 2;position:sticky;top:10px;max-height:calc(100vh - 20px);overflow-y:auto;overscroll-behavior:contain}.main:not(.end-page)>.arc-status{grid-column:1;grid-row:2}.main:not(.end-page)>.deep-dive,.main:not(.end-page)>.report,.main:not(.end-page)>.save-panel,.main:not(.end-page)>.panel,.main:not(.end-page)>.jump-to-decision{grid-column:1 / -1}.main:not(.end-page)>.deep-dive{grid-row:3}.main:not(.end-page)>.report{grid-row:4}}
@media(max-width:700px){.end-headline{grid-template-columns:95px minmax(0,1fr);gap:8px}.rank-hero{font-size:71px}.rank-grid{grid-template-columns:1fr}.end-voices{grid-template-columns:1fr}.link-row{grid-template-columns:125px minmax(0,1fr) 28px;gap:6px}.link-row span{font-size:10px}.future-buttons{grid-template-columns:1fr}.rank-item{grid-template-columns:minmax(0,1fr) 42px 65px}}
@media(prefers-reduced-motion:reduce){.recap-modal,.rank-hero,.end-intro{animation:none!important}}


/* 1.1.1 PCレイアウト修正：親の固定高を廃止し、切替式の操作パネルへ。
   画面内でスクロールするのは原則ページだけ。iframeでもクリッピングを避ける。 */
.main.game-main{display:block!important;max-width:none;padding:16px;overflow:visible;}
.game-layout{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,1fr);align-items:start;gap:15px;width:100%;min-width:0;}
.game-left,.game-right{min-width:0;max-width:100%;overflow:visible;}
.game-layout .overview{display:flex;flex-direction:column;gap:12px;min-width:0;}
.game-layout .overview >.panel{min-width:0;margin:0;}
.game-left .map{max-height:350px;}
.game-layout .stats{grid-template-columns:repeat(3,minmax(0,1fr));}
.game-layout .stat{min-width:0;overflow-wrap:anywhere;}
.game-layout .stat strong{font-size:clamp(15px,1.7vw,22px)}
.game-layout .arc-status{margin-top:12px;}
.workspace-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:6px;background:#edf0e7;border:1.5px solid var(--line);border-radius:8px 8px 0 0;position:relative;z-index:1;}
.workspace-tab{min-width:0;min-height:49px;padding:8px 5px;color:#31585a;background:transparent;border:1.5px solid transparent;border-radius:5px;font-size:13px;font-weight:750;white-space:normal;line-height:1.3;}
.workspace-tab:hover{background:#e0ebe1;}
.workspace-tab.active{background:#fffdf3;border-color:#86ac9f;color:#205d55;box-shadow:0 2px 5px #294a4216;}
.workspace-content{min-width:0;overflow:visible;}
.workspace-content>.decision,.workspace-content>.deep-dive,.workspace-content>.report{margin:0;border-radius:0 0 8px 8px;border-top:0;}
.workspace-content>.save-panel,.workspace-content>.restart-panel{margin-top:12px;}
.game-right .short-options{grid-template-columns:1fr;gap:7px;}
.game-right .policy-choice{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 10px;}
.game-right .policy-choice-title,.game-right .policy-choice-detail{grid-column:1;min-width:0;}
.game-right .policy-choice-cost{grid-column:2;grid-row:1 / span 2;text-align:right;align-self:center;max-width:110px;white-space:normal;font-size:12px;}
.game-right .policylist{max-height:none;overflow:visible;overscroll-behavior:auto;grid-template-columns:repeat(2,minmax(0,1fr));}
.game-right .catalog-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px;}
.game-right .catalog-head p{margin:0;}
.game-right .facility-manager{max-height:none;overflow:visible;}
.game-right .flow-grid{grid-template-columns:1fr;gap:10px;}
.game-right .voices,.game-right .goods-grid{grid-template-columns:1fr;}
.game-right .deep-dive .goods-panel{margin-top:10px;}
.game-right .history-preview{max-height:none;overflow:visible;}
.game-disclaimer{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--muted);}
.shell{max-width:1380px;}
@media(min-width:1050px) and (min-height:1060px){.game-left{position:sticky;top:10px;}}
@media(max-width:1049px){.game-layout{grid-template-columns:1fr;}.game-layout .overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);}.game-left .map{max-height:390px;}.workspace-tabs{position:relative;}}
@media(max-width:770px){.main.game-main{padding:12px;}.game-layout .overview{display:flex;flex-direction:column;}.game-layout .stats{grid-template-columns:repeat(3,minmax(0,1fr));}.game-right .policylist{grid-template-columns:1fr;}.game-right .policy-choice-cost{max-width:115px;}.workspace-tab{font-size:12px;min-height:48px;padding:8px 4px;}}
@media(max-width:370px){.game-layout .stats{grid-template-columns:repeat(2,minmax(0,1fr));}.game-right .policy-choice{grid-template-columns:1fr;}.game-right .policy-choice-cost{grid-column:1;grid-row:auto;text-align:left;max-width:none;}}

/* 全政策の一覧だけは専用ダイアログ。開いている間、背面ページを固定する。 */
body.catalog-open{overflow:hidden;}
.game-right .catalog:not([hidden]){position:fixed;z-index:35;inset:12px;margin:auto;width:min(900px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;padding:18px;background:#fffdf3;border:2px solid #719a8b;border-radius:10px;box-shadow:0 0 0 100vmax #172e35b9,0 14px 55px #132b3760;}
.game-right .catalog-head{position:sticky;top:-18px;z-index:2;padding:12px 0 10px;background:#fffdf3;border-bottom:1px solid #cbd8d0;}
.game-right .catalog .policylist{grid-template-columns:repeat(2,minmax(0,1fr));}
@media(max-width:590px){.game-right .catalog:not([hidden]){inset:8px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px;}.game-right .catalog .policylist{grid-template-columns:1fr;}.game-right .catalog-head{top:-12px;}}

/* Ver.1.2：既存の二列画面を維持し、ニュースと相乗効果はコンパクトな付加情報にする。 */
.news-teaser{margin-top:10px;border-left:4px solid #57968a;background:#edf5ec;border-radius:4px;padding:9px 11px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;line-height:1.55;font-size:13px;color:#204c46}
.news-teaser span{font-size:11px;color:#547b73;white-space:nowrap}
.news-teaser strong{font-size:13px}
.synergy-panel,.news-list{border:1px solid #cfddd4;border-radius:8px;padding:12px;margin-top:12px;background:#f9faf4}
.synergy-panel h3,.news-list h3{margin:0 0 8px;color:#234d4b;font-size:15px}
.synergy-item{padding:8px 0;border-top:1px solid #dfebe3;font-size:13px}
.synergy-item strong{display:block}
.synergy-item p,.news-list p{margin:3px 0;line-height:1.6;color:#446268}
.news-list ol{padding:0;margin:0;list-style:none}
.news-list li{border-top:1px solid #dbe7de;padding:8px 0;font-size:13px}
.news-list li small{display:block;color:#66817b;font-size:11px}
.news-list li strong{display:block;margin-top:2px}
.recap-news{margin:10px 0;background:#edf4eb;border-left:4px solid #42927f;padding:10px;border-radius:4px}
.recap-news strong{font-size:13px}
.recap-news p{margin:4px 0;font-size:14px;line-height:1.5}
.event-topic{display:inline-block;margin:0 0 8px;font-size:12px;font-weight:700;color:#276d63;border-bottom:2px solid #6ba89c}
@media(max-width:770px){.news-teaser{padding:8px;font-size:12px}.news-teaser strong{font-size:12px}}

/* Ver.1.2.3: 継続中の好機。情報量を抑えつつ、詳細は必要なときだけ開く */
.opportunity-status {background:#f5f4e6;border:1px solid #a3b5a1;border-left:5px solid #4e9887;border-radius:10px;margin:10px 0;padding:11px 15px;color:#29494b;}
.opportunity-status summary {cursor:pointer;font-weight:700;line-height:1.5;}
.opportunity-status p {font-size:.88rem;line-height:1.55;margin:8px 0 0;}

/* Ver.1.2.4: 複数イベントが同季節に発生した際の進行状況。 */
.event-progress{margin:0 0 10px;padding:8px 12px;background:#e5f1e8;border:1px solid #9fbaaa;border-radius:6px;color:#215a54;font-size:14px;font-weight:750;}
