:root{--bg:#101714;--card:#1a2521;--line:#344a41;--text:#eef7f2;--muted:#a6b8b0;--green:#64d3a1;--gold:#e8bd68;--red:#e87979}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#20372e,#0e1512 40%);color:var(--text);font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif}.app{max-width:760px;margin:auto;padding-bottom:40px}header{display:flex;justify-content:space-between;align-items:center;padding:calc(18px + env(safe-area-inset-top)) 16px 8px}header h1{margin:2px 0;font-size:23px}header small,.heading small{color:var(--green);letter-spacing:.12em;font-size:9px}button,label{font:inherit;color:inherit}button{border:0;cursor:pointer}header button,.ghost{background:#263a33;border:1px solid var(--line);border-radius:10px;padding:9px}nav{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;background:rgba(12,19,16,.94);backdrop-filter:blur(8px);padding:8px 8px;border-block:1px solid #263a33}nav button{display:grid;place-items:center;gap:2px;background:transparent;color:var(--muted);font-size:18px;padding:6px 1px;border-radius:9px}nav button span{font-size:9px}nav button.active{background:#29483c;color:#fff}main{padding:10px}.card{background:linear-gradient(145deg,#1d2b26,#17211d);border:1px solid var(--line);border-radius:15px;padding:14px;margin-bottom:10px;box-shadow:0 10px 24px rgba(0,0,0,.18)}.hero{display:flex;gap:12px;align-items:center}.hero p{margin:5px 0;color:var(--muted);font-size:12px}.avatar{position:relative;display:grid;place-items:center;width:55px;height:55px;border-radius:13px;background:#263f36;font-size:29px}.avatar i{position:absolute;right:2px;bottom:1px;font-size:16px;font-style:normal}.stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;padding:10px}.stats div{font-size:9px;color:var(--muted);border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats b{display:block;color:#fff;font-size:16px;margin-top:2px}.view{display:none}.view.active{display:block}.heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.heading h2,h2{margin:2px 0 10px;font-size:16px}.primary{width:100%;padding:13px;border-radius:11px;background:var(--green);color:#102019;font-weight:800;margin-top:10px}.analysis,.report{background:#111a17;border:1px solid #2f4940;border-radius:11px;padding:10px;color:var(--muted);font-size:12px;line-height:1.55}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.slot{min-height:70px;background:#111a17;border:1px dashed #456157;border-radius:12px;color:#fff;font-size:23px}.slot small{display:block;font-size:8px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.mat{background:#22352e;border:1px solid #39564b;border-radius:11px;padding:9px 3px;color:#fff;font-size:22px}.mat small,.mat em{display:block;font-size:8px;color:var(--muted);font-style:normal}.mat:disabled{opacity:.3}.item{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 3px;border-bottom:1px solid #2a3d36}.item:last-child{border:0}.item strong{font-size:12px}.item small{display:block;color:var(--muted);font-size:9px;line-height:1.5}.actions{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.actions button,.policies button,.location-grid button,.choice{background:#263a33;border:1px solid #3b574d;border-radius:8px;padding:7px;font-size:9px}.actions button.accent,.policies button.active{background:var(--green);color:#102019}.mission.done{opacity:.6}.bar{height:5px;background:#0d1512;border-radius:99px;margin-top:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}.result{text-align:center}.result .big{font-size:48px}.result .result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.result .result-actions button{padding:10px 4px;border-radius:9px;background:#273c34;font-size:10px}.location-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.location-grid button{text-align:left;padding:12px;font-size:12px}.location-grid button b{display:block;font-size:18px;margin-bottom:4px}.run-map{display:flex;gap:5px;justify-content:center;margin:12px 0}.node{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#24362f;border:1px solid #3f5c51}.node.current{background:var(--gold);color:#1a160d}.cargo{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.cargo span{background:#24372f;padding:5px 7px;border-radius:99px;font-size:9px}.policies{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:8px 0}.report{margin-top:10px}.chapter{border-left:3px solid var(--gold);padding-left:10px}.book-category{color:var(--gold);font-size:11px;margin:15px 0 4px}.book-entry{border:1px solid #2d443b;border-radius:10px;margin:6px 0;overflow:hidden}.book-entry summary{padding:10px;cursor:pointer}.book-entry .detail{padding:0 10px 10px;color:var(--muted);font-size:10px;line-height:1.6}.book-entry.locked{opacity:.7}input{width:100%;background:#0f1815;border:1px solid #345147;color:#fff;border-radius:9px;padding:10px;margin-bottom:9px}.save-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.save-row button,.save-row label{background:#294139;border:1px solid #466357;border-radius:9px;padding:10px;text-align:center;font-size:10px}.save-row input{display:none}.danger{background:#542c2c!important;color:#ffdada!important;padding:10px;border-radius:9px;margin-top:10px;width:100%}.badge{display:inline-block;background:#243b32;border:1px solid #3e5d50;border-radius:99px;padding:3px 6px;font-size:8px;margin:3px}.achievement.locked{opacity:.45}.achievement.done{border-left:3px solid var(--green)}#toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);background:#effaf4;color:#112019;border-radius:99px;padding:10px 16px;font-size:11px;opacity:0;pointer-events:none;transition:.2s;z-index:50;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:380px){.grid{grid-template-columns:repeat(3,1fr)}nav button span{font-size:8px}.stats b{font-size:14px}}
#upgrades [data-up],#gearUpgrades [data-gear-up]{background:#eff7f2!important;color:#15211d!important;border:1px solid #a9cbbb!important;font-weight:800;min-width:68px}
.stamina-box{margin:9px 0 12px}.stamina-box small{display:block;margin-top:5px;color:var(--muted);font-size:9px;text-align:right}
.location-grid button .cost{display:inline-block;margin-top:6px;padding:3px 6px;border-radius:99px;background:#102019;color:var(--gold);font-size:8px}.location-grid button:disabled{opacity:.38}
.gear-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.gear-chip{border:1px solid #365148;background:#14211d;border-radius:10px;padding:8px;font-size:10px}.gear-chip b{display:block;color:var(--green)}
.run-status{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:8px 0}.run-status span{background:#14211d;border:1px solid #314a40;border-radius:9px;padding:6px;text-align:center;font-size:9px}
.objective{padding:9px;border-left:3px solid var(--gold);background:#1d251c;border-radius:6px;font-size:10px;margin:8px 0}
.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.choice-grid .choice{min-height:54px;text-align:left;font-size:10px}.choice small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.choice.risky{border-color:#8b5555}.choice.special{border-color:var(--gold)}.choice.return{grid-column:1/-1;text-align:center}
.cargo.full{outline:1px solid var(--red);border-radius:9px;padding:5px}
#experimentFx{position:fixed;inset:0;z-index:90;display:grid;place-items:center;pointer-events:none;opacity:0;background:radial-gradient(circle,rgba(100,211,161,.18),rgba(4,8,6,.68));transition:opacity .18s}
#experimentFx.active{opacity:1}.fx-core{font-size:66px;filter:drop-shadow(0 0 16px #8ef1c2);animation:fxPulse .75s ease-in-out}.fx-particles{position:absolute;width:180px;height:180px;border-radius:50%;border:3px dotted rgba(255,255,255,.75);animation:fxSpin .85s linear}
#experimentFx.fail{background:radial-gradient(circle,rgba(232,121,121,.22),rgba(4,8,6,.72))}#experimentFx.fail .fx-core{filter:drop-shadow(0 0 18px #e87979);animation:fxShake .55s}
#experimentFx.master .fx-core{filter:drop-shadow(0 0 22px #ffe38b);font-size:82px}
@keyframes fxPulse{0%{transform:scale(.4) rotate(-15deg)}55%{transform:scale(1.25) rotate(8deg)}100%{transform:scale(1)}}
@keyframes fxSpin{to{transform:rotate(360deg) scale(1.2);opacity:0}}
@keyframes fxShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-12px)}40%{transform:translateX(10px)}60%{transform:translateX(-7px)}80%{transform:translateX(5px)}}
@media(max-width:380px){.choice-grid{grid-template-columns:1fr}.choice.return{grid-column:auto}.gear-summary{grid-template-columns:1fr}}

.header-actions{display:flex;gap:6px;align-items:center}.audio-unlock{font-size:9px;padding:7px 9px;background:#f2e7b5;color:#252114;border:0;border-radius:999px;font-weight:800}.audio-unlock.ready{display:none}
.management-row{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:10px 0;padding:10px;border:1px solid #365148;border-radius:10px;background:#14211d}.management-row small{display:block;margin-bottom:5px}.stepper{display:flex;align-items:center;gap:6px}.stepper button{width:34px;padding:8px}.stepper b{min-width:48px;text-align:center;color:var(--gold)}
.book-controls{display:flex;gap:6px;margin:9px 0}.book-controls button{flex:1;padding:8px;font-size:9px}.book-controls button.active{background:var(--green);color:#102019}
.note-stage{margin-top:8px;padding:8px;border-radius:8px;background:#101b17;border-left:3px solid #4fb985;font-size:10px;line-height:1.6}.note-stage.locked-note{border-color:#495a53;color:var(--muted)}
.location-trait{display:block;margin-top:5px;color:#b8d9ca;font-size:8px}
.milestone .bar{margin-top:7px}.milestone.done{opacity:.67}.milestone-reward{color:var(--gold)}
.scientist-reaction{margin-top:7px;color:#b9d7cb;font-style:italic}
.modal{position:fixed;inset:0;z-index:120;background:rgba(5,10,8,.82);display:grid;place-items:center;padding:18px}.modal[hidden]{display:none}.modal-card{width:min(420px,100%);max-height:84vh;overflow:auto;background:#17241f;border:1px solid #4a6c5d;border-radius:18px;padding:20px;box-shadow:0 20px 70px rgba(0,0,0,.55);text-align:center}.modal-icon{font-size:58px;margin-bottom:5px}.modal-card h2{margin:4px 0 12px}.modal-card ul{padding:0;list-style:none;text-align:left;margin:10px 0}.modal-card li{display:flex;justify-content:space-between;gap:10px;padding:8px;border-bottom:1px solid #2d443a}.modal-card .summary-box{background:#101a16;border-radius:10px;padding:10px;margin:9px 0;text-align:left;line-height:1.6}.modal-actions{display:flex;gap:8px;margin-top:14px}.modal-actions button{flex:1}
.result-share-card{padding:12px;background:linear-gradient(145deg,#22352d,#111b17);border:1px solid #496759;border-radius:12px;text-align:left}
@media(max-width:380px){.management-row{align-items:stretch;flex-direction:column}.modal-actions{flex-direction:column}}

/* v0.7.1 contrast and layout fixes */
.audio-unlock{display:inline-block!important;background:#f2e7b5!important;color:#242016!important;border:1px solid #d9c56f!important}
.audio-unlock.ready{display:inline-block!important;background:#25493b!important;color:#eafff5!important;border-color:#4d7d69!important}
.modal-actions button,.stepper button,.book-controls button,#advertiseBtn{background:#eef7f2!important;color:#15211d!important;border:1px solid #a8cabc!important;font-weight:800}
.modal-actions .primary,.book-controls button.active{background:var(--green)!important;color:#102019!important}
#priceRate{background:#102019;color:#ffe18c!important;padding:7px 8px;border-radius:8px;border:1px solid #425e53}
.run-map{display:grid!important;grid-template-columns:repeat(7,minmax(25px,32px));gap:4px;justify-content:center;overflow:hidden}
.node{width:100%!important;min-width:0;height:30px!important;font-size:9px;white-space:nowrap}
.node:first-child{font-size:8px}
@media(max-width:360px){.run-map{grid-template-columns:repeat(7,minmax(22px,28px));gap:3px}.node{height:28px!important;font-size:8px}.node:first-child{font-size:7px}}

/* v0.7.2 result-image export */
#saveResult{background:#eef7f2!important;color:#15211d!important;border:1px solid #a8cabc!important;font-weight:800}
