:root{--page-bg: #efefef;--panel-bg: #f8f8f8;--panel-bg-strong: #ffffff;--line-dark: #8d8d8d;--line-mid: #b8b8b8;--line-light: #dddddd;--text-main: #222222;--text-muted: #666666;--text-faint: #999999;--accent: #7f2f2f;--resource: #aa7a24;--good: #4d7a43;--bad: #b15f5f;color:var(--text-main);background:var(--page-bg);font-family:Microsoft YaHei,PingFang SC,SimSun,Arial,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--page-bg)}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;font:inherit}.app-shell{display:grid;grid-template-columns:minmax(118px,42vw) 1fr;grid-template-rows:34px 1fr 72px;width:100vw;height:100vh;overflow:hidden;background:var(--page-bg)}.top-bar{grid-column:1 / -1;position:relative;display:grid;grid-template-columns:104px 1fr 64px;align-items:center;height:34px;border-bottom:1px solid var(--line-dark);background:var(--panel-bg-strong);box-shadow:0 1px 2px #00000029}.time-label{padding-left:8px;color:var(--text-muted);font-size:12px;line-height:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-bar h1{margin:0;text-align:center;font-size:16px;font-weight:500;line-height:34px}.menu-button{width:64px;height:34px;border:0;border-left:1px solid var(--line-light);color:var(--text-muted);background:var(--panel-bg-strong);cursor:pointer}.menu-button:hover{color:var(--accent);background:#f3f3f3}.menu-panel{position:absolute;z-index:10;top:34px;right:0;display:grid;gap:8px;width:min(260px,92vw);padding:8px;border:1px solid var(--line-dark);border-top:0;background:var(--panel-bg);box-shadow:0 4px 12px #0000001f}.menu-panel .save-controls{margin-top:0}.developer-toggle{display:flex;align-items:center;gap:6px;color:#333;font-size:13px}.cheat-flag{color:var(--text-muted);font-size:12px}.cheat-flag.is-marked{color:var(--bad)}.menu-rail{grid-column:1;grid-row:2;display:grid;grid-template-rows:auto 1fr;min-width:0;border-right:1px solid var(--line-dark);background:var(--panel-bg);overflow:hidden}.section-menu{border-bottom:1px solid var(--line-mid)}.section-menu button{display:block;width:100%;height:26px;border:0;border-bottom:1px solid var(--line-light);color:#111;background:var(--panel-bg);text-align:center;font-size:14px;line-height:26px;cursor:pointer;-webkit-user-select:none;user-select:none}.section-menu button.is-active{color:#111;background:#e9e9e9;box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.section-menu button:active,.section-menu button:focus,.section-menu button:focus-visible{color:#111;background:var(--panel-bg);outline:0;box-shadow:none}.section-menu button:not(.is-active):hover{color:var(--accent);background:#eee}.section-menu button.is-active:hover,.section-menu button.is-active:active,.section-menu button.is-active:focus,.section-menu button.is-active:focus-visible{color:#111;background:#e9e9e9;outline:0;box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.resource-ledger{align-self:end;padding-bottom:2px;border-top:1px solid var(--line-mid);background:var(--panel-bg)}.resource-entry{border-bottom:1px solid var(--line-light)}.resource-row{display:grid;grid-template-columns:minmax(42px,auto) 1fr 42px;align-items:baseline;column-gap:4px;width:100%;min-height:28px;padding:2px 4px;border:0;font-size:12px;background:transparent;cursor:pointer}.resource-row span{color:var(--text-main)}.resource-row strong{color:var(--resource);text-align:right;font-weight:500;overflow-wrap:anywhere}.resource-row small{color:var(--text-muted);text-align:right;font-size:11px}.resource-entry.is-expanded .resource-row{background:#eee}.resource-breakdown{display:grid;gap:4px;padding:4px 5px 6px;border-top:1px solid var(--line-light);color:var(--text-muted);font-size:11px;line-height:1.25}.resource-breakdown-section strong{display:block;color:#444;font-size:11px;font-weight:500}.resource-breakdown-section p,.resource-breakdown-total{margin:1px 0 0;overflow-wrap:anywhere}.resource-breakdown-total{padding-top:3px;border-top:1px solid var(--line-light);color:#333}.view{grid-column:2;grid-row:2;min-width:0;padding:4px 8px 8px;overflow:auto;background:var(--page-bg)}.action-list{display:grid;gap:6px;max-width:360px;margin:0 auto}.section-divider{height:1px;margin:4px 0;background:var(--line-light)}.section-label{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:6px 0 2px;color:var(--text-faint);font-size:12px}.section-label:before,.section-label:after{height:1px;content:"";background:var(--line-light)}.segmented-control{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;overflow:hidden;border:1px solid var(--line-mid);border-radius:3px;background:var(--panel-bg-strong)}.segmented-control button{min-height:30px;border:0;border-right:1px solid var(--line-light);color:var(--text-muted);background:var(--panel-bg-strong);cursor:pointer}.segmented-control button:last-child{border-right:0}.segmented-control button.is-active{color:#111;background:#e9e9e9;box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}.segmented-control button:not(.is-active):hover{color:var(--accent);background:#f2f2f2}.action-card{border:1px solid #777777;border-radius:3px;background:var(--panel-bg);box-shadow:inset 0 1px #fff;overflow:hidden}.action-card:hover{border-color:#555}.building-card{border:1px solid #777777;border-radius:3px;background:var(--panel-bg);box-shadow:inset 0 1px #fff;overflow:hidden}.building-card.is-expanded{border-color:#555}.building-header{display:grid;grid-template-columns:1fr 44px;min-height:42px;background:#f5f5f5}.building-name-button,.building-toggle{border:0;background:transparent;cursor:pointer}.building-name-button{padding:0 10px;color:#333;text-align:left;font-size:18px}.building-name-button:disabled{color:var(--text-faint);cursor:not-allowed}.building-toggle{display:grid;place-items:center;border-left:1px solid var(--line-light);color:#b7b7b7;font-size:28px;line-height:1}.building-toggle:hover{color:var(--accent);background:#eee}.building-details{display:grid;gap:8px;padding:8px 12px 12px;border-top:1px solid var(--line-light)}.building-description{margin:0;color:var(--text-muted);text-align:center;font-size:14px;line-height:1.4}.building-info-block{display:grid;gap:3px;padding-top:6px;border-top:1px solid var(--line-light)}.building-info-block strong{color:#555;text-align:center;font-size:13px;font-weight:600}.building-info-block p{display:flex;justify-content:space-between;gap:8px;margin:0;color:var(--text-muted);font-size:13px;line-height:1.3}.requirement-row.is-met{color:var(--good)}.requirement-row.is-missing{color:var(--bad)}.building-controls{display:grid;margin-top:2px}.action-title{display:grid;grid-template-columns:1fr 18px;align-items:center;width:100%;min-height:36px;padding:0 8px;border:0;color:var(--text-muted);background:#eee;text-align:left;font-size:16px;cursor:pointer}.action-title:disabled{color:var(--text-faint);cursor:not-allowed}.action-title:not(:disabled):hover{color:#222;background:#f8f8f8}.action-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-title b{color:#bfbfbf;font-size:24px;font-weight:400;text-align:right}.action-body{padding:0 10px 10px}.thin-progress{position:relative;height:2px;margin:0 -10px 8px;background:#dedede}.thin-progress:before{position:absolute;inset:0 auto 0 0;width:var(--progress);content:"";background:#d98383}.action-body p{margin:0;color:#6f6f6f;font-size:14px;line-height:1.35}.cost-line{display:block;margin-bottom:4px;color:var(--bad);font-size:12px}.reward-line{display:block;margin-bottom:4px;color:var(--good);font-size:12px}.technology-card .action-body{display:grid;gap:5px}.researched-technology-card .action-title{color:#333;background:#f5f5f5;cursor:default}.researched-technology-card .action-title b{color:var(--good);font-size:16px}.technology-meta{display:grid;gap:2px;padding:6px 0 2px;border-bottom:1px solid var(--line-light)}.technology-meta small{color:var(--text-muted);font-size:12px;line-height:1.25}.disabled-line{display:block;margin-bottom:4px;color:var(--bad);font-size:12px}.status-card{padding:8px 10px;border:1px solid var(--line-mid);border-radius:3px;background:var(--panel-bg);box-shadow:inset 0 1px #fff}.status-card h2{margin:0 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line-light);color:#444;font-size:14px;font-weight:500}.status-card p{margin:0 0 3px;color:var(--text-muted);font-size:13px;line-height:1.3}.save-controls{display:grid;gap:6px;margin-top:4px}.action-button{min-height:30px;padding:4px 8px;border:1px solid var(--line-mid);border-radius:4px;color:#222;background:var(--panel-bg-strong);cursor:pointer}.action-button:disabled{color:#999;background:#eee;cursor:not-allowed}.trait-select{width:100%;min-height:30px;margin-bottom:6px;border:1px solid var(--line-mid);border-radius:4px;background:var(--panel-bg-strong);color:#222;font:inherit;font-size:13px}.job-panel{display:grid;gap:6px}.job-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding-top:6px;border-top:1px solid var(--line-light)}.job-info{min-width:0}.job-info strong{display:block;margin-bottom:2px;color:#444;font-size:13px;font-weight:500}.job-info small{display:block;margin-bottom:3px;color:var(--good);font-size:12px}.job-controls{display:grid;grid-template-columns:30px 30px;gap:4px;align-content:start}.job-button{width:30px;height:28px;border:1px solid var(--line-mid);border-radius:4px;color:#222;background:var(--panel-bg-strong);line-height:1;cursor:pointer}.job-button:disabled{color:#aaa;background:#eee;cursor:not-allowed}.event-log{grid-column:1 / -1;grid-row:3;display:grid;grid-template-columns:1fr;min-height:72px;border-top:1px solid var(--line-mid);background:var(--page-bg)}.log-entries{padding:4px 6px;overflow:hidden}.log-entries p{margin:0 0 3px;color:#333;font-size:12px;line-height:1.25}@media (min-width: 760px){.app-shell{grid-template-columns:220px minmax(320px,480px) 1fr;grid-template-rows:36px 1fr 84px}.top-bar{grid-column:1 / 3}.view{grid-column:2;border-right:1px solid var(--line-mid)}.event-log{grid-column:1 / 3}}
