:root{--bg:#111214;--panel:#1a1c20;--panel2:#22252b;--line:#343942;--text:#f4f3ef;--muted:#aeb4bd;--accent:#9bb9cf;--gold:#c9ae74;--bad:#c99696;--ok:#9fbda5;--warn:#d0b77e}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{padding-bottom:92px}header{position:sticky;top:0;z-index:20;background:rgba(15,17,21,.94);backdrop-filter:blur(16px);border-bottom:1px solid #222833;padding:max(10px,env(safe-area-inset-top)) 14px 10px}.header{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:9px;align-items:center;cursor:pointer}.logo{width:36px;height:36px;border-radius:11px;background:var(--gold);color:#171717;display:grid;place-items:center;font-weight:900}.brand b{display:block;font-size:15px}.brand small{display:block;color:var(--muted);font-size:11px}.lock{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:8px 11px;font-size:12px}main{max-width:1180px;margin:auto;padding:14px}.page{display:none}.page.active{display:block}.hero,.card,.party,.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px}.hero{padding:17px;background:radial-gradient(circle at 90% 0,rgba(155,185,207,.10),transparent 36%),var(--panel)}.hero h1{font-size:22px;margin:4px 0}.hero p,.card p{color:var(--muted);font-size:13px;line-height:1.7}.eyebrow{font-size:12px;color:var(--muted)}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.section{display:flex;justify-content:space-between;align-items:center;margin:18px 2px 9px}.section h2{font-size:16px;margin:0}.primary,.secondary,.danger{border-radius:12px;padding:11px 13px}.primary{border:0;background:var(--gold);color:#171717;font-weight:800}.primary:disabled{opacity:.35;cursor:not-allowed}.secondary{border:1px solid var(--line);background:var(--panel2);color:var(--text)}.danger{border:1px solid rgba(201,150,150,.45);background:rgba(201,150,150,.08);color:var(--bad)}.compact{padding:7px 9px;font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.readiness{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.pill,.state{font-size:11px;border-radius:999px;padding:5px 8px;border:1px solid var(--line);color:var(--muted);background:var(--panel2)}.pill.ok,.state.ok{color:var(--ok);border-color:rgba(159,189,165,.35);background:rgba(159,189,165,.07)}.pill.warn,.state.warn{color:var(--warn);border-color:rgba(208,183,126,.35);background:rgba(208,183,126,.07)}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.dash-card{padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.dash-card b{display:block;font-size:14px}.dash-card span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.monster-row{display:flex;gap:10px;align-items:center;padding:12px;margin-bottom:8px}.ico{flex:0 0 auto;width:40px;height:40px;border-radius:11px;background:#2b313b;display:grid;place-items:center;color:var(--accent);font-weight:800}.info{min-width:0;flex:1}.info b{display:block;font-size:13px}.info b small{color:var(--muted);font-weight:600}.info span{display:block;color:var(--muted);font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-actions{display:flex;align-items:center;gap:6px}.search{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:12px;padding:11px}.empty{border:1px dashed var(--line);border-radius:16px;padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}.partyWrap{display:grid;grid-template-columns:1fr;gap:10px}.party{padding:13px}.partyHead{display:flex;justify-content:space-between;align-items:center;gap:8px}.partyHead b{font-size:13px}.role-input{max-width:160px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:6px 8px;font-size:11px}.party-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.party-slots label{display:flex;gap:6px;align-items:center}.party-slots label span{width:24px;height:24px;border-radius:7px;background:var(--panel2);display:grid;place-items:center;color:var(--accent);font-size:11px}.party-slots select{min-width:0;width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:9px;padding:8px}.banner{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px}.banner b{font-size:13px}.banner span{font-size:12px;color:var(--muted)}.banner.warn{border-color:rgba(208,183,126,.35);background:rgba(208,183,126,.05)}.banner.ok{border-color:rgba(159,189,165,.35);background:rgba(159,189,165,.05)}.prior-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 2px;border-bottom:1px solid #252931}.prior-row b{font-size:12px}.prior-row span{display:block;color:var(--muted);font-size:10px}.prior-row strong{font-size:12px}.meter{grid-column:1/-1;height:5px;border-radius:999px;background:var(--panel2);overflow:hidden}.meter i{display:block;height:100%;background:var(--gold);opacity:.72}.hidden-row{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #292e37;font-size:12px}.hidden-row small{color:var(--muted)}details.card{padding:11px;margin-bottom:8px}details summary{cursor:pointer;font-size:13px;font-weight:700}details summary span{float:right;color:var(--muted);font-size:11px;font-weight:500}.issue-list{margin-top:12px;color:var(--warn);font-size:12px;line-height:1.7}.progress{display:none;margin-top:12px}.progress.on{display:block}.progress .bar{height:7px;background:var(--panel2);border-radius:999px;overflow:hidden}.progress .bar i{display:block;width:70%;height:100%;background:var(--gold);animation:pulse 1.2s ease-in-out infinite alternate}@keyframes pulse{from{opacity:.3;transform:translateX(-25%)}to{opacity:1;transform:translateX(60%)}}.progress small{color:var(--muted);font-size:11px}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.metrics>div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px}.metrics span{display:block;color:var(--muted);font-size:11px}.metrics b{font-size:22px}.metrics.small b{font-size:15px}.selected-set{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.selected-set b{text-align:center;padding:13px;border-radius:13px;background:var(--panel);border:1px solid rgba(201,174,116,.4);color:var(--gold)}.matrix-wrap{overflow:auto;margin-top:14px}table{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:11px;min-width:620px}th{color:var(--muted);padding:5px}td{padding:9px 7px;background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}td:first-child{text-align:left;border-left:1px solid var(--line);border-radius:10px 0 0 10px}td:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0}.win{color:var(--ok);font-weight:800}.even{color:var(--warn);font-weight:800}.lose{color:var(--bad);font-weight:800}.rec{color:var(--accent);font-weight:800}.dev-box{margin-top:14px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.dev-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dev-box select,.dev-box input{width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:9px;padding:8px}.dev-box pre{max-height:260px;overflow:auto;font-size:10px;background:#0d0e10;padding:10px;border-radius:10px}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:15;background:rgba(23,26,32,.97);backdrop-filter:blur(16px);border-top:1px solid #2b3039;padding:6px 7px max(6px,env(safe-area-inset-bottom));overflow:auto}.nav{min-width:620px;max-width:820px;margin:auto;display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.nav button{border:0;background:none;color:var(--muted);font-size:10px;padding:7px 4px;border-radius:9px}.nav button b{display:block;font-size:15px;margin-bottom:2px}.nav button.active{color:var(--accent);background:rgba(155,185,207,.07)}.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.66);display:none;align-items:flex-end}.modal.on{display:flex}.sheet{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:22px 22px 0 0;padding:17px 14px max(20px,env(safe-area-inset-bottom));max-height:90vh;overflow:auto}.sheet h3{margin:0 0 6px}.sheet h4{font-size:12px;margin:16px 0 7px;color:var(--muted)}.form-grid,.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-grid{grid-template-columns:repeat(2,1fr)}label{font-size:11px;color:var(--muted)}label input,label select,label textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:9px;padding:9px}textarea{resize:vertical}details p{font-size:11px;color:var(--muted);line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.settings-grid>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #292e37}.settings-grid b{font-size:11px}.settings-grid span{font-size:11px;color:var(--muted)}.file-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.file-grid label,.file-grid button{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:11px;padding:10px;text-align:center;font-size:11px}.file-grid input{display:none}.notice{position:fixed;z-index:100;left:50%;bottom:92px;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:min(90vw,600px);padding:10px 13px;border-radius:11px;border:1px solid var(--line);background:#22252b;font-size:12px;transition:.2s}.notice.on{opacity:1;transform:translate(-50%,0)}.notice.warn{color:var(--warn)}.notice.ok{color:var(--ok)}#appLoading{position:fixed;inset:0;z-index:200;background:var(--bg);display:grid;place-items:center;padding:24px;color:var(--muted)}.fatal{max-width:700px}.fatal pre{white-space:pre-wrap;color:var(--bad);font-size:11px}
@media(min-width:760px){.partyWrap{grid-template-columns:repeat(3,1fr)}.dashboard{grid-template-columns:repeat(4,1fr)}.metrics{grid-template-columns:repeat(6,1fr)}.stat-grid{grid-template-columns:repeat(4,1fr)}.modal{align-items:center}.sheet{max-width:720px;margin:auto;border-radius:22px}.app{padding-bottom:20px}.bottom{position:sticky;top:65px;bottom:auto;max-width:860px;margin:14px auto;border:1px solid var(--line);border-radius:14px}.nav{min-width:0}.nav button{font-size:11px}}

.practical-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.practical-grid select{width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:9px;padding:9px}.practical-rec{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid rgba(201,174,116,.38);border-radius:13px;background:rgba(201,174,116,.05)}.practical-rec span{font-size:11px;color:var(--muted)}.practical-rec b{font-size:18px;color:var(--gold)}.practical-rec strong{font-size:18px}.practical-bars{margin-top:8px}.practical-bars>div{display:grid;grid-template-columns:44px 1fr 52px;gap:7px;align-items:center;margin:6px 0;font-size:11px}.practical-bars i{height:7px;border-radius:999px;background:var(--panel2);overflow:hidden}.practical-bars em{display:block;height:100%;background:var(--accent)}#practicalResult>small{display:block;color:var(--muted);font-size:10px;margin-top:8px}
@media(min-width:760px){.practical-grid{grid-template-columns:repeat(4,1fr)}}

.compare-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}.compare-grid .selected-set{margin-top:8px}.rescue-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #292e37}.rescue-row:last-child{border-bottom:0}.rescue-row b{display:block;font-size:12px}.rescue-row span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.rescue-row strong{font-size:12px;color:var(--accent);white-space:nowrap}@media(min-width:760px){.compare-grid{grid-template-columns:1fr 1fr}}

/* v0.47 — Approved UI Mock v0.2 integration shell */
.text-action{border:0;background:none;color:var(--accent);padding:4px;font-size:12px}.home-hero{padding:20px}.home-hero-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.home-hero h1{font-size:28px;margin:5px 0 0}.production-metric{margin-top:19px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:3px 12px}.production-metric>span{color:var(--muted);font-size:12px;grid-column:1/-1}.production-metric b{font-size:54px;line-height:1;font-weight:850}.production-metric b small{font-size:20px;color:var(--muted)}.production-metric em{font-style:normal;color:var(--warn);border:1px solid rgba(208,183,126,.35);background:rgba(208,183,126,.06);border-radius:999px;padding:8px 11px;font-size:11px;margin-bottom:4px}.home-party-grid{display:grid;grid-template-columns:1fr;gap:9px}.home-party-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:13px}.home-party-head{display:flex;align-items:center;gap:9px}.home-party-badge{width:34px;height:34px;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--gold);font-weight:850}.home-party-head b{font-size:13px}.home-party-head span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.home-party-members{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.home-party-members span{font-size:10px;border:1px solid #2c3139;background:#17191d;border-radius:999px;padding:5px 7px;color:var(--muted)}.home-actions{display:grid;grid-template-columns:1fr auto;gap:9px;margin-top:14px}.home-actions .primary,.home-actions .secondary{padding:14px 15px;border-radius:15px}.home-guardrail{margin-top:9px}.opponent-chip-grid{display:flex;flex-wrap:wrap;gap:7px}.opponent-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:8px 10px}.opponent-chip b{font-size:11px}.opponent-chip span{color:var(--gold);font-weight:750;font-size:11px}.home-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.matchup-hero{margin-bottom:10px}.matchup-hero h1{font-size:22px}.optimizer-panel{padding:15px}.optimizer-panel>p{color:var(--muted);font-size:12px;line-height:1.65;margin-top:0}.dev-diagnostics{margin-top:20px}.practical-shell{margin-top:0}
.bottom .nav{min-width:0;max-width:760px;grid-template-columns:repeat(5,1fr)}.bottom .nav button{min-width:0}.app{padding-bottom:86px}
@media(min-width:760px){.home-party-grid{grid-template-columns:repeat(3,1fr)}.home-meta-grid{grid-template-columns:1fr 1fr}.bottom .nav{min-width:0}.app{padding-bottom:20px}.production-metric{max-width:520px}}
.inherit-effect-row{display:grid;grid-template-columns:92px 1fr 72px;gap:7px;align-items:center;margin:7px 0}.inherit-effect-row select{width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:9px;padding:8px}.slot-chip{font-size:10px;color:var(--muted);white-space:nowrap}@media(max-width:480px){.inherit-effect-row{grid-template-columns:72px 1fr 60px}}

/* v0.57 Japanese-first provisional winrate flow */
.winrate-step-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:14px}.winrate-step-guide>div{background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:9px 5px;text-align:center}.winrate-step-guide b{display:block;color:var(--gold);font-size:15px}.winrate-step-guide span{display:block;color:var(--muted);font-size:9px;margin-top:3px}.provisional-winrate-panel{padding:14px;margin-top:12px}.winrate-field{margin-bottom:13px}.winrate-field label{font-size:12px;color:var(--text)}.winrate-field label b{display:block;margin-bottom:7px}.winrate-field select{width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:11px;padding:11px}.winrate-field small{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:6px}.winrate-assumption{border:1px solid rgba(208,183,126,.35);background:rgba(208,183,126,.06);border-radius:12px;padding:11px;margin-bottom:12px}.winrate-assumption b{display:block;color:var(--warn);font-size:11px}.winrate-assumption span{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:4px}.provisional-result{background:radial-gradient(circle at 50% 0,rgba(201,174,116,.08),transparent 52%),var(--panel2);border:1px solid var(--line);border-radius:15px;padding:16px;text-align:center}.provisional-result .label{font-size:10px;color:var(--muted)}.provisional-result .rate{font-size:48px;line-height:1;font-weight:900;color:var(--gold);margin:10px 0 4px}.provisional-result .versus{font-size:11px;color:var(--muted);margin-bottom:12px}.provisional-result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.provisional-result-grid div{background:var(--panel);border-radius:9px;padding:8px 3px}.provisional-result-grid b{display:block;font-size:11px}.provisional-result-grid span{display:block;color:var(--muted);font-size:8px;margin-top:2px}.provisional-warning{color:var(--warn);font-size:10px;line-height:1.6;text-align:left;margin-top:10px}.matchup-advanced{margin-top:12px}

.opponent-template-list{display:grid;grid-template-columns:1fr;gap:8px}.opponent-template-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px}.opponent-template-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.opponent-template-card b{font-size:12px}.opponent-template-card .members{display:block;color:var(--muted);font-size:10px;line-height:1.55;margin-top:5px}.opponent-template-card .missing{display:block;color:var(--warn);font-size:9px;line-height:1.5;margin-top:8px}.template-state{font-size:9px;border:1px solid rgba(208,183,126,.35);color:var(--warn);border-radius:999px;padding:4px 7px;white-space:nowrap}@media(min-width:760px){.opponent-template-list{grid-template-columns:1fr 1fr}}

/* v0.58 simplified final-direction winrate UI */
.simple-winrate-panel{padding:16px}.simple-winrate-panel .winrate-field{margin-bottom:12px}.simple-winrate-panel .winrate-field b{font-size:12px}.winrate-run{width:100%;padding:14px 16px;font-size:15px}.winrate-result-slot{margin-top:12px}.winrate-empty-result{border:1px dashed var(--line);border-radius:13px;padding:18px;text-align:center;color:var(--muted)}.winrate-empty-result b{display:block;color:var(--text);font-size:12px}.winrate-empty-result span{display:block;font-size:10px;margin-top:5px}.winrate-help{margin-top:10px;border-top:1px solid #2a2f37;padding-top:10px}.winrate-help summary{font-size:10px;color:var(--muted);cursor:pointer}.winrate-help p{color:var(--muted);font-size:10px;line-height:1.65;margin:8px 0 0}.simple-winrate-panel .provisional-result{margin-top:0}

.product-stage-line{display:flex;align-items:center;gap:8px;margin-top:11px}.product-stage-line small{color:var(--muted);font-size:10px;line-height:1.5}

.observation-panel{padding:13px}.observation-panel>p{color:var(--muted);font-size:10px;line-height:1.6;margin-top:0}.observation-row{display:grid;grid-template-columns:1fr 72px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #292e36}.observation-row:last-child{border-bottom:0}.observation-row b{font-size:10px}.observation-row span{display:block;color:var(--muted);font-size:9px;margin-top:3px}.observation-row input{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:8px;text-align:right}.observation-summary{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}
