:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif;color:#24302a;background:#eef2ef;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary: #2f7d50;--primary-2: #e4f2e9;--app-bg: #eef2ef;--sheet: #ffffff;--chrome: #eef4ef;--grid: #dfe6e1;--grid-dark: #c9d3cc;--text: #24302a;--muted: #66736b;--selection: #1f6feb;--danger: #c43e38;--warning: #d37b1f;--growth: #3b8c57}*{box-sizing:border-box}body{margin:0;min-width:1200px;min-height:100vh;overflow:hidden}button{font:inherit}#root{height:100vh;min-height:0}.office-shell{display:grid;grid-template-rows:38px 44px 38px minmax(0,1fr) 28px;gap:0;height:100vh;min-height:0;padding:18px;background:var(--app-bg)}.titlebar,.menubar,.formula-bar,.statusbar,.workbook-content{border:1px solid var(--grid-dark);background:var(--sheet)}.titlebar{display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:0;border-radius:8px 8px 0 0;color:var(--text)}.titlebar strong{margin-right:12px;font-size:13px}.titlebar span,.statusbar{color:var(--muted);font-size:12px}.menubar{display:flex;align-items:center;gap:6px;padding:0 10px;border-bottom:0;background:var(--chrome)}.menubar-tab,.ghost-button,.boss-key-button{min-width:44px;min-height:32px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);cursor:pointer}.menubar-tab:hover,.ghost-button:not(:disabled):hover{border-color:var(--grid-dark);background:var(--sheet)}.menubar-tab.active{background:var(--sheet);border-color:var(--grid-dark);color:var(--primary);font-weight:600}.ghost-button:disabled{color:var(--grid-dark);cursor:not-allowed}.boss-key-button{margin-left:auto;border-color:var(--warning);color:var(--warning)}.formula-bar{display:flex;align-items:center;gap:8px;padding:0 10px;border-bottom:0;background:#f8fbf9}.name-box,.formula-input{display:inline-flex;align-items:center;height:26px;border:1px solid var(--grid);background:var(--sheet);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.name-box{justify-content:center;width:52px}.formula-input{flex:1;padding:0 10px;color:var(--muted)}.workbook-content{min-height:0;overflow:hidden}.statusbar{display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-top:0;border-radius:0 0 8px 8px;background:var(--chrome)}.main-menu-screen{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;height:100%;padding:42px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:72px 34px}.sheet-label{margin:0 0 10px;color:var(--primary);font-size:13px;font-weight:700}.menu-copy h1{margin:0 0 14px;font-size:32px;line-height:1.2}.menu-copy p{max-width:540px;color:var(--muted);font-size:14px;line-height:1.7}.primary-action{min-width:230px;min-height:48px;margin-top:24px;border:1px solid var(--primary);border-radius:8px;background:var(--primary);color:#fff;cursor:pointer;font-weight:700}.primary-action:hover{filter:brightness(.96)}.menu-action-stack{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.menu-action-stack .primary-action{margin-top:0}.secondary-action,.small-office-button{min-height:44px;border:1px solid var(--grid-dark);border-radius:8px;background:var(--sheet);color:var(--text);cursor:pointer;font-weight:700}.secondary-action{min-width:180px;padding:0 18px}.secondary-action:disabled,.small-office-button:disabled{opacity:.48;cursor:not-allowed}.small-office-button{min-width:112px;padding:0 12px;font-size:12px}.small-office-button.danger{border-color:#efc8c5;color:var(--danger)}.menu-report{align-self:start;border:1px solid var(--grid-dark);border-radius:8px;background:#ffffffeb;overflow:hidden}.menu-settings-row{display:flex;gap:8px;padding:12px 16px 16px}.menu-report h2{margin:0;padding:14px 16px;border-bottom:1px solid var(--grid);background:var(--chrome);font-size:15px}.menu-report table{width:100%;border-collapse:collapse;font-size:13px}.menu-report th,.menu-report td{padding:12px 16px;border-bottom:1px solid var(--grid);text-align:left}.menu-report th{color:var(--muted);font-weight:500}.battle-layout{position:relative;display:grid;grid-template-columns:minmax(720px,1fr) 280px;gap:12px;height:100%;min-height:0;padding:12px;background:var(--sheet)}.phaser-host{display:flex;align-items:flex-start;justify-content:center;min-width:0;min-height:0;border:1px solid var(--grid-dark);border-radius:6px;background:#fff;overflow:hidden}.phaser-host canvas{display:block;max-width:100%;max-height:100%}.battle-layout.is-upgrade-paused .phaser-host,.battle-layout.is-upgrade-paused .battle-side-panel{filter:saturate(.76) brightness(.98)}.battle-side-panel{min-height:0;border:1px solid var(--grid-dark);border-radius:6px;background:#fbfdfb;padding:14px;overflow:auto}.battle-side-panel h2{margin:0 0 6px;font-size:15px}.battle-control-note{margin:0 0 14px;padding:6px 8px;border:1px solid var(--grid);background:var(--chrome);color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px}.battle-metric-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.battle-metric-list div{display:grid;gap:4px;padding:10px;border:1px solid var(--grid);background:var(--sheet)}.battle-metric-list dt{color:var(--muted);font-size:12px}.battle-metric-list dd{margin:0;color:var(--text);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:700}.condition-bar-group{display:grid;gap:12px;margin-top:16px}.condition-bar-row{display:grid;grid-template-columns:1fr auto;gap:6px 10px;font-size:12px}.condition-bar-row span{color:var(--muted)}.condition-bar-row strong,.battle-report-table strong{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.condition-bar{grid-column:1 / -1;height:12px;border:1px solid var(--grid-dark);background:#fff;overflow:hidden}.condition-bar-fill{display:block;height:100%;transition:width .12s linear}.condition-bar-fill.danger{background:linear-gradient(90deg,#f4b7b3,var(--danger))}.condition-bar-fill.growth{background:linear-gradient(90deg,#bfe5ca,var(--growth))}.condition-bar-fill.shield{background:linear-gradient(90deg,#bfd7ff,var(--selection))}.condition-bar-fill.warning{background:linear-gradient(90deg,#f8d9aa,var(--warning))}.battle-report-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px;border-top:1px solid var(--grid-dark);border-left:1px solid var(--grid-dark)}.battle-report-table div{display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:0 10px;border-right:1px solid var(--grid-dark);border-bottom:1px solid var(--grid-dark);background:var(--sheet);color:var(--muted);font-size:12px}.battle-report-table strong{color:var(--text)}.battle-comment{margin:16px 0 0;padding:10px;border:1px solid var(--grid);background:var(--primary-2);color:var(--text);font-size:12px;line-height:1.45}.skill-slot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.skill-slot-list p,.skill-slot-mini{margin:0;border:1px solid var(--grid);background:var(--sheet);font-size:12px}.skill-slot-list p{grid-column:1 / -1;padding:10px;color:var(--muted);line-height:1.45}.skill-slot-mini{display:grid;grid-template-columns:1fr auto;gap:3px 8px;min-height:48px;padding:8px;border-left:3px solid var(--primary)}.skill-slot-mini span{color:var(--text);font-weight:700}.skill-slot-mini strong,.skill-slot-mini em{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;font-style:normal}.skill-slot-mini em{grid-column:1 / -1;color:var(--muted)}.upgrade-modal-backdrop{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:36px;background:#eef2efb8;-webkit-backdrop-filter:blur(3px) saturate(.82);backdrop-filter:blur(3px) saturate(.82)}.upgrade-dialog{width:min(820px,100%);max-height:min(560px,100%);border:1px solid var(--grid-dark);border-radius:8px;background:var(--sheet);box-shadow:0 18px 42px #23302a2e;overflow:auto}.upgrade-dialog header{padding:18px 20px;border-bottom:1px solid var(--grid);background:var(--chrome)}.upgrade-dialog header p{margin:0 0 4px;color:var(--primary);font-size:12px;font-weight:700}.upgrade-dialog h2{margin:0;color:var(--text);font-size:20px;line-height:1.25}.upgrade-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}.upgrade-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:12px;min-height:260px;padding:14px;border:1px solid var(--grid-dark);border-radius:6px;background:#fff}.upgrade-card:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-2)}.upgrade-card-icon{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid var(--grid-dark);border-radius:6px;background:var(--primary-2);color:var(--primary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-weight:800}.upgrade-card h3{margin:0 0 6px;font-size:15px}.upgrade-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.upgrade-card dl{display:grid;gap:8px;margin:0}.upgrade-card dl div{display:grid;gap:3px}.upgrade-card dt{color:var(--muted);font-size:11px}.upgrade-card dd{margin:0;color:var(--text);font-size:12px;line-height:1.45}.upgrade-choose-button{min-height:44px;border:1px solid var(--primary);border-radius:6px;background:var(--primary);color:#fff;cursor:pointer;font-weight:700}.upgrade-choose-button:hover{filter:brightness(.96)}@media(max-height:800px){.upgrade-modal-backdrop{padding:22px}.upgrade-dialog header{padding:14px 18px}.upgrade-card{min-height:218px;gap:8px;padding:12px}}.boss-disguise-overlay{position:absolute;inset:0;z-index:40;display:grid;grid-template-rows:auto 1fr auto;gap:18px;padding:28px;background:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px),var(--sheet);background-size:86px 32px}.boss-disguise-overlay header,.result-screen,.talent-screen{border:1px solid var(--grid-dark);border-radius:8px;background:#fffffff0}.boss-disguise-overlay header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px}.boss-disguise-overlay h1,.result-main h1,.talent-header h1{margin:0;font-size:24px}.boss-disguise-overlay p,.talent-row p{margin:0;color:var(--muted);font-size:12px}.report-layout{display:grid;grid-template-columns:1fr 260px;gap:18px}.report-table,.review-table{width:100%;border-collapse:collapse;background:var(--sheet);font-size:13px}.report-table th,.report-table td,.review-table th,.review-table td{padding:12px;border:1px solid var(--grid);text-align:left}.report-table th,.review-table th{background:var(--chrome);color:var(--muted);font-weight:600}.mini-chart{display:flex;align-items:end;gap:12px;padding:18px;border:1px solid var(--grid-dark);background:var(--sheet)}.mini-chart span{flex:1;min-height:28px;background:var(--primary-2);border:1px solid var(--primary)}.resume-hot-cell{justify-self:end;min-width:160px;min-height:44px;border:1px solid transparent;background:transparent;color:#66736b59;cursor:pointer}.resume-hot-cell:hover{border-color:var(--grid-dark);background:#ffffffb8;color:var(--muted)}.result-screen{display:grid;grid-template-columns:1fr 240px;gap:22px;height:100%;padding:28px}.result-main,.result-actions{display:grid;align-content:start;gap:18px}.result-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi-card{display:grid;gap:8px;min-height:90px;padding:14px;border:1px solid var(--grid-dark);background:var(--sheet)}.kpi-card span{color:var(--muted);font-size:12px}.kpi-card strong{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:24px}.talent-screen{display:grid;grid-template-rows:auto 1fr auto;gap:18px;height:100%;padding:28px}.talent-header{display:flex;align-items:end;justify-content:space-between}.talent-matrix{display:grid;gap:10px;align-content:start}.talent-row{display:grid;grid-template-columns:1fr 300px 120px;align-items:center;gap:16px;min-height:78px;padding:12px;border:1px solid var(--grid-dark);background:var(--sheet)}.talent-row h2{margin:0 0 4px;font-size:15px}.talent-node-list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.talent-node{display:grid;place-items:center;min-height:36px;border:1px solid var(--grid-dark);background:#f8fbf9;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.talent-node.unlocked{border-color:var(--primary);background:var(--primary-2);color:var(--primary);font-weight:800}
