:root{--bg:#171c19;--panel:#202720;--line:#363e33;--text:#e5e5d5;--muted:#969e8c;--accent:#c5b781;--green:#a6b989;--danger:#dc967b;--art:url('../assets/concepts/灰烬之后-场景角色物品概念板-v1.png')}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px}button,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text);border-radius:4px;padding:9px 14px;transition:background .16s,border-color .16s}button:hover:not(:disabled){background:#323b2c;border-color:var(--accent)}button:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:var(--accent);color:#20251c;border-color:var(--accent);font-weight:600}.primary:hover:not(:disabled){background:#dbcca0}.outline{color:var(--accent)}.text-button{border-color:transparent;color:var(--muted);padding:7px 8px}.wide{width:100%}a{color:inherit;text-decoration:none}header{height:88px;display:flex;align-items:center;gap:28px;padding:0 36px;border-bottom:1px solid var(--line);background:#1a211b}.brand{display:flex;gap:14px;align-items:center;font-size:23px;letter-spacing:3px;font-weight:600}.brand small{display:block;font-size:9px;letter-spacing:3px;color:var(--muted);margin-top:5px}.brand-mark{font-family:Georgia,serif;color:var(--accent);font-size:45px;line-height:1;border:1px solid #7f7b57;padding:3px 12px}.header-meta{margin-left:auto;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:10px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 10px #a6b98944}.separator{color:#505848;margin:0 8px}.header-tools{display:flex;gap:5px}.resource-bar{display:grid;grid-template-columns:repeat(4,1fr);padding:14px 36px;border-bottom:1px solid var(--line);background:#1d241d;gap:32px}.resource{display:flex;align-items:center;gap:13px;min-width:0}.resource small{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}.resource strong{font-size:21px;font-weight:500;white-space:nowrap}.resource strong span{font-size:11px;color:var(--muted);margin-left:4px}.rate{margin-left:auto;font-size:11px;color:var(--green);white-space:nowrap}.resource-symbol{font-size:32px;color:#a5a988;width:36px;text-align:center}.item-art{height:46px;width:46px;flex-shrink:0;background-image:var(--art);background-size:600% 650%;background-position:calc(var(--col)*100% / 5) calc(77% + var(--row)*23%);border-radius:4px}.item-art.large{height:76px;width:76px}.fallback{display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:31px;background:#30382b;border:1px solid #464e3b}.shell{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:calc(100vh - 225px)}nav{border-right:1px solid var(--line);padding:28px 16px;display:flex;flex-direction:column;justify-content:space-between;background:#192019}nav>div:first-child{display:flex;flex-direction:column;gap:7px}nav button{border:0;text-align:left;display:flex;align-items:center;gap:13px;padding:13px 14px;color:var(--muted)}nav button span{font-size:23px;width:25px}nav button.active{background:#313829;color:var(--accent);box-shadow:inset 3px 0 var(--accent)}nav button b{margin-left:auto;background:var(--accent);color:var(--bg);border-radius:50%;font-size:10px;padding:3px 6px}.nav-bottom{padding-top:30px}.nav-bottom .eyebrow{font-size:8px}.nav-bottom p{font-size:11px;color:var(--muted);line-height:1.8;margin:12px 8px}.nav-bottom button{font-size:11px;padding:10px 8px}.nav-bottom .outline{border:1px solid var(--line);justify-content:center}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent)}main{padding:32px 34px 50px;min-width:0;max-width:1650px;width:100%;margin:auto}h1{font-weight:500;font-size:30px;letter-spacing:1px;margin:10px 0 12px;font-family:"Songti SC",Georgia,serif}h2{font-size:22px;font-weight:500;margin:8px 0 14px}h3{font-size:15px;font-weight:500;margin:10px 0}p{color:var(--muted);font-size:12px;line-height:1.8;margin:6px 0 12px}.view-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.tag{font-size:10px;border:1px solid #4e5440;color:#b3b69b;padding:5px 8px;display:inline-block;line-height:1.3;white-space:nowrap}.base-grid{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:24px}.main-column{min-width:0}.scene{height:275px;position:relative;background-image:var(--art);background-size:100% auto;background-position:center top;background-repeat:no-repeat;background-color:#74766c;border:1px solid var(--line);overflow:hidden}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,#141c18dd,transparent 65%)}.scene-caption{position:absolute;left:25px;bottom:18px}.scene-caption h2{font-family:"Songti SC",Georgia,serif;font-size:28px;margin:12px 0 5px}.scene-caption p{color:#c1c1ac}.scene-weather{position:absolute;right:14px;top:14px;padding:7px;background:#18201cb0;font-size:10px;color:#dddcc9}.panel{border:1px solid var(--line);background:var(--panel);padding:20px}aside .panel{margin-bottom:20px}.section-label{font-size:13px;letter-spacing:.5px;color:#dcdfcc;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-label span{font-size:10px;color:var(--muted);font-weight:400}.spaced{margin-top:27px}.task-row{border-top:1px solid var(--line);padding:14px 0;display:flex;align-items:center;gap:5px}.task-row>div{flex:1;min-width:0}.task-row strong{font-size:12px;font-weight:500}.task-row small{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:7px}.timer{font-variant-numeric:tabular-nums;color:var(--accent)}.progress{height:3px;background:#424936;margin-top:9px}.progress i{display:block;height:100%;background:var(--accent)}.task-row button{font-size:10px;padding:5px}.empty{color:var(--muted);padding:18px 0;line-height:1.9}.small{font-size:11px}.muted{color:var(--muted)}.goal{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.goal>span{font-size:10px;color:#7d856c;width:22px}.goal.done{color:var(--green)}.goal.done>span{color:var(--green)}.logs p{font-size:11px;border-left:1px solid #525a45;padding-left:12px;margin:13px 0}.logs span{display:block;font-size:9px;color:#69775e;margin-bottom:3px}.building-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.building{border:1px solid var(--line);padding:17px;background:#22291f;display:flex;flex-direction:column}.building.unbuilt{background:#1d241d;border-style:dashed}.building-heading{display:flex;justify-content:space-between;align-items:center}.building-symbol{font-size:28px;color:#aab58a}.building h3{margin:15px 0 6px}.building p{font-size:11px;line-height:1.7;min-height:38px}.building-detail{font-size:10px;color:var(--green);margin:7px 0 16px}.building-footer{margin-top:auto;display:flex;align-items:center;gap:9px;min-height:42px;border-top:1px solid var(--line);padding-top:12px}.building-footer small{font-size:9px;line-height:1.7;color:var(--muted)}.building-footer button{font-size:11px;padding:7px 10px}.complete{font-size:11px;color:#8e987c}.notice{border:1px solid #5c6142;background:#313626;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0}.notice strong{font-size:12px;font-weight:500;color:var(--accent)}.notice p{font-size:11px;margin-bottom:0}.warning{border-color:#815846;background:#352e23}.danger-text{color:var(--danger)!important}.reports{margin:22px 0}.report{display:flex;align-items:center;justify-content:space-between;padding:15px;background:#2a3225;border:1px solid #50583c;margin-bottom:8px;gap:15px}.report strong{font-size:12px}.report small{display:block;color:var(--muted);font-size:10px;line-height:1.8;margin-top:5px}.report-actions{display:flex;gap:4px;flex-shrink:0}.report button{font-size:11px}.explore-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}.area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-content:start}.area-card{text-align:left;min-height:236px;background:linear-gradient(140deg,#323a2c,#1c261f);padding:24px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.area-card:nth-child(2){background:linear-gradient(140deg,#423d2b,#232a20)}.area-card:nth-child(3){background:linear-gradient(140deg,#293b35,#1b2725)}.area-card:nth-child(4){background:linear-gradient(140deg,#3c342d,#232420)}.area-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.area-card.locked{opacity:.6}.area-number{font-family:Georgia,serif;font-size:72px;color:#c3c6a712;position:absolute;right:18px;top:8px}.area-card h2{font-family:"Songti SC",serif;font-size:25px;margin:14px 0}.area-meta{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;border-top:1px solid #59604455;padding-top:15px}.departure h2{margin-top:15px}.departure label,.resident-body label{display:block;font-size:11px;color:var(--muted);margin:18px 0 8px}select{background:#1a211b;color:var(--text);border:1px solid #4a5340;padding:11px;width:100%;border-radius:3px;font-size:12px}select:disabled{opacity:.5}.brief-stats{margin:24px 0;border-block:1px solid var(--line);padding:10px 0}.brief-stats>div{display:flex;justify-content:space-between;padding:9px 0;font-size:11px}.brief-stats dt{color:var(--muted)}.brief-stats dd{margin:0;color:var(--accent)}.loot-preview>div{display:flex;align-items:center;gap:12px;margin-bottom:8px;font-size:11px}.loot-preview small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.inventory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.inventory-item{border:1px solid var(--line);background:var(--panel);padding:14px;display:flex;align-items:center;gap:12px}.inventory-item .large{width:50px;height:50px}.inventory-item h3{font-size:12px;margin:0 0 5px}.inventory-item small{font-size:9px;color:var(--muted)}.inventory-item strong{margin-left:auto;font-size:19px;font-weight:500}.craft-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.craft-card{display:flex;gap:18px;align-items:center;padding:20px;border:1px solid var(--line);background:var(--panel)}.craft-card>div:nth-child(2){flex:1}.craft-card p{font-size:11px}.craft-card small{font-size:10px;color:var(--accent)}.craft-card button{font-size:11px;flex-shrink:0}.equipment-list{display:flex;gap:12px;flex-wrap:wrap}.equipment-pill{border:1px solid var(--line);padding:10px;display:flex;align-items:center;gap:12px}.equipment-pill small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.resident-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.resident-card{border:1px solid var(--line);background:var(--panel);overflow:hidden}.portrait{height:290px;background-image:var(--art);background-size:400% auto;background-position:calc(var(--character)*100% / 3) 44.5%;background-color:#72746a}.resident-body{padding:20px}.resident-body h2{display:flex;align-items:center;gap:13px}.resident-body h2 small{font-size:11px;color:var(--muted)}.resident-body p{min-height:45px;font-size:11px}.equipment-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.equipment-slots>div{background:#1b231c;padding:10px;display:flex;flex-direction:column;gap:7px;border:1px solid var(--line)}.equipment-slots span,.equipment-slots small{font-size:9px;color:var(--muted)}.equipment-slots strong{font-size:11px;font-weight:400}.equipment-slots button{font-size:9px;padding:0;text-align:left}.resident-actions{display:flex;gap:4px;flex-wrap:wrap;margin-top:15px}.resident-actions button{font-size:10px}.recruit-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.recruit{display:flex;align-items:center;justify-content:space-between;gap:14px}.recruit p{font-size:11px}.recruit button{white-space:nowrap;font-size:11px}.filters{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}.filters button{font-size:11px}.filters .active{background:var(--accent);color:var(--bg)}.codex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.codex-item{border:1px solid var(--line);background:var(--panel);padding:20px}.codex-item .item-art{margin:0 auto 20px;width:100px;height:100px}.codex-item p{font-size:11px;min-height:54px}.codex-item small{display:block;font-size:10px;line-height:1.8;color:var(--muted)}.undiscovered .item-art{filter:grayscale(1);opacity:.5}.blueprint-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.blueprint-grid .panel small{display:block;color:var(--muted);font-size:10px;margin-bottom:15px}.blueprint-grid button{font-size:11px}footer{border-top:1px solid var(--line);padding:17px 36px;color:#9ba38a;font-size:11px;display:flex;gap:24px}footer span{color:#626d5a;font-size:10px}footer small{margin-left:auto;font-size:10px;color:#69775e}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(15px);max-width:min(600px,90vw);padding:14px 22px;background:#d0c394;color:#1d251c;border:1px solid #e2d6b0;box-shadow:0 10px 30px #0005;border-radius:4px;opacity:0;pointer-events:none;transition:.2s;z-index:20;font-size:12px}#toast.visible{opacity:1;transform:translateX(-50%)}#toast.error{background:#654535;color:#ffe3ce;border-color:#a97659}
@media(min-width:1500px){.scene{height:320px}}@media(max-width:1200px){header{padding:0 22px}.resource-bar{padding:14px 22px;gap:20px}.shell{grid-template-columns:175px minmax(0,1fr)}main{padding:25px 22px}.base-grid{grid-template-columns:minmax(0,1fr) 235px;gap:18px}.building-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene{height:240px;background-size:auto 900px;background-position:left top}.inventory-grid,.codex-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.resident-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait{height:330px}.explore-layout{grid-template-columns:minmax(0,1fr) 285px}.area-grid{grid-template-columns:1fr}.area-card{min-height:200px}.craft-card{gap:12px;padding:14px}.craft-card .large{height:55px;width:55px}}@media(max-width:900px){.header-meta{display:none}.header-tools{margin-left:auto}.resource-bar{gap:12px}.resource .item-art{width:32px;height:32px}.resource strong{font-size:18px}.resource .rate{display:none}.shell{grid-template-columns:150px minmax(0,1fr)}nav{padding:24px 10px}nav button{padding:12px 9px;font-size:12px}nav button span{width:18px}.base-grid{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}aside .panel{margin-bottom:0}aside .panel:last-child{grid-column:1/-1}.scene{height:260px;background-size:auto 970px}.inventory-grid,.codex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.craft-grid{grid-template-columns:1fr}.explore-layout{grid-template-columns:1fr}.area-grid{grid-template-columns:1fr 1fr}.blueprint-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recruit-grid{grid-template-columns:1fr}.view-title>.tag{display:none}h1{font-size:26px}}@media(max-width:600px){header{height:75px;padding:0 16px}.brand{font-size:20px;gap:9px}.brand-mark{font-size:32px;padding:2px 8px}.brand small{font-size:8px;letter-spacing:2px}.header-tools button{font-size:10px;padding:5px}.resource-bar{padding:12px 16px;grid-template-columns:1fr 1fr;gap:12px}.resource{gap:10px}.resource small{font-size:10px}.resource strong{font-size:18px}.resource-symbol{font-size:26px;width:32px}.shell{display:flex;flex-direction:column}nav{padding:8px;border-right:0;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;background:#1c231cf5}nav>div:first-child{flex-direction:row;gap:0;justify-content:space-around}nav button{flex-direction:column;gap:4px;padding:8px 5px;font-size:10px}nav button.active{box-shadow:inset 0 -2px var(--accent)}nav button b{display:none}.nav-bottom{display:flex;align-items:center;gap:12px;justify-content:center;padding:10px 0 0}.nav-bottom p,.nav-bottom .eyebrow{display:none}.nav-bottom button{width:auto;padding:6px 12px;font-size:10px}.nav-bottom .text-button{display:none}main{padding:25px 16px 35px}h1{font-size:25px}.view-title p{font-size:11px}.eyebrow{font-size:8px}.scene{height:230px;background-size:auto 860px}.scene-caption{left:18px;bottom:12px}.scene-caption h2{font-size:25px}.scene-weather{font-size:8px}.building-grid{gap:10px}.building{padding:14px}.building h3{font-size:14px}.building-footer{align-items:flex-start;flex-direction:column}.building-footer small{font-size:8px}.building-detail{font-size:9px}.building p{font-size:10px}aside{grid-template-columns:1fr}aside .panel:last-child{grid-column:auto}.notice,.report{align-items:flex-start;flex-direction:column}.report-actions{width:100%;justify-content:flex-end}.area-grid{gap:12px}.area-card{padding:16px;min-height:220px}.area-card h2{font-size:22px}.area-meta{flex-direction:column;font-size:9px}.area-number{font-size:54px}.inventory-grid{gap:8px}.inventory-item{padding:10px;gap:8px}.inventory-item .large{width:37px;height:37px}.inventory-item h3{font-size:11px}.inventory-item small{font-size:8px}.inventory-item strong{font-size:16px}.craft-card .large{width:45px;height:45px}.craft-card p{font-size:10px}.craft-card h3{font-size:13px}.craft-card button{padding:7px;font-size:10px}.resident-grid{grid-template-columns:1fr}.portrait{height:360px;background-size:400% auto;background-position:calc(var(--character)*100% / 3) 45%}.resident-body p{min-height:0}.codex-grid{gap:10px}.codex-item{padding:15px}.codex-item .item-art{width:75px;height:75px}.codex-item h3{font-size:13px}.codex-item p{font-size:10px;min-height:65px}.codex-item small{font-size:9px}.blueprint-grid{grid-template-columns:1fr}.recruit{padding:15px}.recruit h3{font-size:13px}footer{padding:16px;gap:10px}footer span{display:none}footer small{font-size:9px}.panel{padding:18px}.filters{gap:5px}.filters button{padding:7px 9px;font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}} 

/* Each source region stays within its concept-sheet boundaries. */
.scene{background-size:auto 365.72%;background-position:left top}
.portrait{background-size:400% 265.28%;background-position:calc(var(--character)*100% / 3) 43.89%}

.speed-panel{margin:18px 0 12px;width:100%}.speed-panel label{display:block;font-size:11px;color:var(--accent);margin-bottom:10px}.speed-panel label span{display:block;font-size:9px;color:var(--muted);margin-top:5px}.speed-control{display:flex;gap:5px}.speed-control button{padding:8px 0;justify-content:center;flex:1;font-size:11px;border:1px solid var(--line)}.speed-control button.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}
@media(max-width:600px){.nav-bottom{flex-wrap:wrap;gap:7px;padding-top:8px}.speed-panel{display:flex;align-items:center;gap:10px;width:auto;margin:0}.speed-panel label{font-size:9px;margin:0}.speed-panel label span{display:none}.speed-control{gap:3px}.speed-control button{padding:5px 7px;font-size:10px}.nav-bottom>button.outline{font-size:9px;padding:5px 8px}}
