@charset "UTF-8";
:root{
  --red:#c9382b; --red-dark:#a52a21; --red-soft:#fbe9e5;
  --orange:#e7683a; --gold:#f5c26b; --ink:#25201d; --muted:#7a6a60;
  --paper:#fbf4e6; --card:#fffdf8; --line:#ece1cf; --green:#3f9a6d; --blue:#315a8a;
  --shadow:0 6px 22px rgba(74,54,38,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden;max-width:100%}
body{background:var(--paper);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.55;-webkit-text-size-adjust:100%}
button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.hidden{display:none !important}
.muted{color:var(--muted);font-size:12px;margin:8px 0}
.fact{font-size:12px;color:#5f5e5a;margin:6px 0;line-height:1.6}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;font-weight:600;transition:.16s}
.btn:hover{border-color:var(--red);color:var(--red)}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.primary:hover{background:var(--red-dark);color:#fff}
.btn.wide{display:block;width:100%;margin:8px 0;text-align:center}
.btn.mini{padding:5px 10px;font-size:12px;border-radius:8px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.mini-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:3px 9px;font-size:11px;color:var(--muted)}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 8px;font-weight:700;font-size:13px}
.section-title small{font-weight:400;color:var(--muted);font-size:11px}

/* ---------- 顶栏 ---------- */
.app{max-width:1440px;margin:0 auto;padding:0 14px 20px}
.ad-slot-top{max-width:1100px;margin:10px auto 0}
.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 4px;border-bottom:1px solid var(--line);margin-bottom:12px}
.brand{display:flex;align-items:center;gap:10px;min-width:210px}
.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800;flex:none}
.brand-text b{font-size:17px;letter-spacing:1px}
.brand-text small{display:block;color:var(--muted);font-size:10px;letter-spacing:.4px}
.hud{display:flex;gap:8px;flex-wrap:wrap;flex:1;justify-content:flex-end}
.hud-item{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:12px;white-space:nowrap}
.hud-item b{font-size:12px}
.dot{width:8px;height:8px;border-radius:50%;background:#bbb;display:inline-block}
.dot.on{background:#3f9a6d;box-shadow:0 0 0 3px rgba(63,154,109,.18)}

/* ---------- 布局 ---------- */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:14px;align-items:start}
.world,.side{min-width:0}
.side{display:grid;gap:12px}

/* ---------- 城市地图 ---------- */
.city-view{position:relative;height:440px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#e9efdc;box-shadow:var(--shadow)}
.fallback-map,.tmap{position:absolute;inset:0;width:100%;height:100%}
.fallback-map svg{width:100%;height:100%;display:block}
.tmap{display:none}
.city-view.real-mode .tmap{display:block}
.river-label{position:absolute;left:33%;top:56%;transform:rotate(-25deg);color:#4b8fae;font-size:20px;letter-spacing:10px;opacity:.55;pointer-events:none}
.map-grid{position:absolute;inset:0;pointer-events:none}
.map-cell{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;z-index:5;display:flex;align-items:center;gap:5px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:999px;padding:4px 9px;font-size:11px;white-space:nowrap;box-shadow:0 3px 8px rgba(40,50,30,.16);max-width:150px;transition:.16s}
.map-cell:hover{border-color:var(--red);transform:translate(-50%,-50%) scale(1.06);z-index:6}
.map-cell.here{background:var(--red);color:#fff;border-color:var(--red);z-index:7}
.mc-icon{font-size:13px}
.mc-name{overflow:hidden;text-overflow:ellipsis}
.city-view.real-mode .map-grid{inset:auto 0 0 0;height:74px;display:flex;gap:6px;align-items:center;overflow-x:auto;padding:8px 10px;background:rgba(255,255,255,.92);pointer-events:auto}
.city-view.real-mode .map-cell{position:static;transform:none;flex:none}
.city-view.real-mode .map-cell:hover{transform:scale(1.04)}
.map-adboard{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;width:64px;min-height:28px;background:#3b403a;color:#fff;border:2px solid #efe6d2;border-radius:3px;padding:2px 3px;font-size:7px;line-height:1.2;box-shadow:0 3px 0 rgba(0,0,0,.16);text-align:center;z-index:2}
.map-adboard b{display:block;font-size:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:600}
.map-adboard .ad-tag{font-size:7px;padding:0 3px;background:#f5c26b;color:#2c2c2a;border-radius:2px;display:inline-block}
.city-view.real-mode .map-adboard{display:none}
.map-players{position:absolute;inset:0;pointer-events:none}
.map-player{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:#fff;border:1px solid #b9dccb;border-radius:999px;padding:2px 7px 2px 3px;display:flex;align-items:center;gap:3px;font-size:10px;box-shadow:0 2px 6px rgba(0,0,0,.16);max-width:110px;white-space:nowrap}
.map-player span{font-size:14px}
.map-player small{overflow:hidden;text-overflow:ellipsis}
.city-view.real-mode .map-players{display:none}
.brand-wall{position:absolute;right:8px;top:8px;width:118px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px;box-shadow:0 4px 14px rgba(0,0,0,.18);z-index:7}
.brand-wall-head{font-size:10px;font-weight:700;margin-bottom:5px;display:flex;justify-content:space-between}
.brand-wall-head small{color:var(--muted);font-weight:400}
.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.brand-cell{height:34px;border-radius:3px;background:#f2ede2;display:grid;place-items:center;overflow:hidden;text-align:center;line-height:1.05}
.brand-cell span{font-size:14px}
.brand-cell small{font-size:7px;color:#555;display:block}
.brand-cell.empty{background:#faf6ec;border:1px dashed #d6c9b2;color:#a99}
.city-tip{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);border-radius:999px;padding:4px 11px;font-size:11px;color:#5f5e5a;z-index:6}
.coming-soon{position:absolute;left:10px;top:10px;z-index:6}
.soon-chip{background:#f5c26b;color:#4a3510;border-radius:999px;padding:3px 10px;font-size:10px;font-weight:600;white-space:nowrap;display:inline-block;box-shadow:0 2px 6px rgba(0,0,0,.12)}

/* ---------- 3D 等距小屋 ---------- */
.room-view{position:relative;height:440px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(#dbeaf6,#eef4e7);box-shadow:var(--shadow)}
.room-scene{position:absolute;inset:0}
.room-scene svg{width:100%;height:100%;display:block}
.room-avatar{position:absolute;left:46%;top:58%;font-size:34px;transform:translate(-50%,-50%);transition:left .5s ease,top .5s ease;filter:drop-shadow(0 4px 4px rgba(0,0,0,.25));pointer-events:none;z-index:3}
.room-plate{position:absolute;right:12px;bottom:12px;background:rgba(255,255,255,.94);border-radius:10px;padding:7px 12px;font-size:12px;box-shadow:var(--shadow)}
.room-plate small{display:block;color:var(--muted);font-size:10px}

/* ---------- 需求条 ---------- */
.needs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:12px 0}
.need{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:7px 9px;display:flex;align-items:center;gap:7px;min-width:0}
.need-ic{font-size:17px;flex:none}
.need-main{min-width:0;flex:1}
.need-name{display:flex;justify-content:space-between;gap:4px;font-size:11px;color:var(--muted)}
.need-name b{color:var(--ink);font-size:11px}
.need-bar{height:5px;border-radius:5px;background:#f0e7d8;overflow:hidden;margin-top:4px}
.need-bar i{display:block;height:100%;border-radius:5px;background:var(--green)}
.need-bar i.mid{background:#e0a13a}.need-bar i.low{background:#d24b3f}

/* ---------- 场景与行动 ---------- */
.scene{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);margin-bottom:12px}
.scene-sky{height:8px;background:linear-gradient(90deg,#f5c26b,#e7683a,#c9382b)}
.scene.night .scene-sky{background:linear-gradient(90deg,#2c3c66,#4a3f78,#8a4a6a)}
.scene-inner{padding:14px 16px 16px}
.scene-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.scene-icon{width:46px;height:46px;border-radius:14px;background:var(--red-soft);display:grid;place-items:center;font-size:24px;flex:none}
.scene-head h1{font-size:19px;margin:0}
.scene-head p{margin:2px 0 0;color:var(--muted);font-size:12px}
.scene-time{margin-left:auto;background:#f7f1e5;border-radius:999px;padding:5px 11px;font-size:11px;color:#6a5c4e;white-space:nowrap}
.billboard{margin:12px 0 2px}
.action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}
.action{display:grid;grid-template-columns:26px 1fr;grid-template-rows:auto auto;gap:0 8px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:8px 10px;min-width:0;transition:.16s}
.action:hover{border-color:var(--red);transform:translateY(-1px)}
.action:disabled{opacity:.5;cursor:not-allowed}
.ac-ic{grid-row:1/3;font-size:20px}
.action b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.action small{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 街坊动态 / 流水 ---------- */
.street{padding:4px 14px 12px}
.feed,.log{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.feed li,.log li{display:flex;align-items:center;gap:8px;font-size:12px;border-bottom:1px dashed var(--line);padding:5px 0}
.feed li span:nth-child(2),.log li span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feed li small,.log li small{color:var(--muted);font-size:10px;flex:none}
.feed-ic{font-size:15px}
.logbox{padding:4px 14px 12px}
.log{max-height:280px;overflow:auto}

/* ---------- 桌面侧栏手机 ---------- */
.phone{padding:10px 12px 12px}
.phone-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px;margin-bottom:8px}
.phone-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font-size:11px}
.tab.active{background:var(--red);border-color:var(--red);color:#fff}
.phone-body{max-height:340px;overflow:auto}
.phone.collapsed .phone-tabs,.phone.collapsed .phone-body{display:none}
.app-sec-title{font-weight:700;font-size:12px;margin:12px 0 7px;color:var(--red-dark)}

/* ---------- 拟物手机面板 ---------- */
.phone-panel{position:fixed;inset:0;z-index:120;background:rgba(30,24,18,.45);display:grid;place-items:center;padding:16px}
.iphone{position:relative;width:min(390px,94vw);height:min(740px,90vh);background:#1c1b1d;border-radius:44px;padding:14px 12px;box-shadow:0 22px 60px rgba(0,0,0,.45),inset 0 0 0 2px #4a484a;overflow:hidden;background-image:linear-gradient(155deg,#3b3550,#8a4a6a 45%,#d0743c 100%)}
.iphone-notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:120px;height:22px;background:#111;border-radius:0 0 16px 16px;z-index:4}
.iphone-status{display:flex;justify-content:space-between;font-size:11px;color:#fff;padding:4px 12px 0}
.iphone-date{color:rgba(255,255,255,.85);font-size:12px;text-align:center;margin:6px 0 2px}
.iphone-apps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 8px;padding:16px 8px 8px;max-height:calc(100% - 74px);overflow:auto}
.app-icon{border:0;background:none;padding:0;display:grid;gap:4px;justify-items:center;color:#fff}
.app-icon>span{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:25px;box-shadow:0 3px 8px rgba(0,0,0,.2)}
.app-icon small{font-size:10px;text-shadow:0 1px 3px rgba(0,0,0,.5);white-space:nowrap}
.iphone-bar{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);width:110px;height:4px;border-radius:4px;background:rgba(255,255,255,.7)}
.iphone-screen{position:absolute;inset:14px 12px;bottom:18px;background:#fbf7f0;border-radius:26px;z-index:5;display:flex;flex-direction:column;overflow:hidden}
.iphone-screen-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;background:#fff;border-bottom:1px solid var(--line);flex:none}
.iphone-screen-head button{border:0;background:none;font-size:13px;color:var(--red)}
.iphone-screen-head b{font-size:13px}
.iphone-screen-body{padding:4px 14px 16px;overflow:auto;flex:1}

/* ---------- 手机内组件 ---------- */
.job-card,.hustle,.quiz{background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 11px;margin:7px 0}
.job-top{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.job-top span{color:var(--red);font-weight:700}
.job-card p{margin:4px 0;color:var(--muted);font-size:11px}
.job-card small{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}
.kv{display:flex;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px dashed var(--line);font-size:12px}
.hustle-bar{height:6px;background:#f0e7d8;border-radius:6px;overflow:hidden;margin:5px 0}
.hustle-bar i{display:block;height:100%;background:var(--green)}
.hustle.done{background:#eef7f0;border-color:#bfe3cb}
.hustle b{font-size:12px}.hustle small{display:block;color:var(--muted);font-size:10px}
.chat-list{background:#fff;border:1px solid var(--line);border-radius:11px;padding:8px;max-height:230px;overflow:auto;display:grid;gap:6px}
.chat-line{display:flex;gap:6px;font-size:11px;align-items:baseline}
.chat-line b{color:var(--red);flex:none}.chat-line span{flex:1;min-width:0}.chat-line small{color:var(--muted);font-size:9px}
.chat-input{display:flex;gap:6px;margin-top:8px}
.chat-input input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:7px 9px}
.player-row{display:flex;align-items:center;gap:8px;width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 9px;margin:5px 0;text-align:left;font-size:11px}
.player-row span{font-size:18px}.player-row b{flex:1}.player-row small{color:var(--muted)}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.cc{background:#f1ece1;border-radius:9px;padding:8px 4px;text-align:center;opacity:.45}
.cc.got{opacity:1;background:#fff5e2;border:1px solid #f0d8a8}
.cc span{display:block;font-size:22px}.cc b{font-size:10px}
.metro-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.reward-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.reward-opt{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px;text-align:left}
.reward-opt b{display:block;font-size:12px}.reward-opt small{color:var(--muted);font-size:10px}
.player-card .pc-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.pc-av{font-size:34px}.pc-head small{display:block;color:var(--muted);font-size:11px}
.pc-acts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.savebox{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px;font-size:10px;font-family:monospace}

/* ---------- 底部导航 ---------- */
.dock{display:flex;justify-content:center;gap:6px;margin:14px auto 10px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px;width:max-content;max-width:100%;box-shadow:var(--shadow)}
.dock-btn{border:0;background:transparent;border-radius:999px;padding:5px 14px;display:grid;justify-items:center;gap:1px;font-size:11px;color:#6a5c4e;min-width:62px}
.dock-btn span{font-size:19px}
.dock-btn.active{background:var(--red);color:#fff}
.phone-fab{position:fixed;right:16px;bottom:18px;z-index:100;width:54px;height:54px;border-radius:50%;border:0;background:var(--red);color:#fff;box-shadow:0 8px 20px rgba(180,50,40,.4);display:grid;place-items:center;font-size:21px;line-height:1}
.phone-fab small{font-size:9px;display:block;margin-top:-3px}

/* ---------- 广告 ---------- */
.ad-slot-bottom{max-width:1100px;margin:14px auto 0}
.ad-card{display:flex;align-items:center;gap:9px;background:#fffdf6;border:1px dashed #e0c9a0;border-radius:11px;padding:8px 11px;position:relative}
.ad-card:hover{border-color:var(--red)}
.ad-tag{position:absolute;top:-8px;left:9px;background:#f5c26b;color:#4a3510;font-size:9px;padding:1px 6px;border-radius:4px;font-weight:700}
.ad-icon{font-size:22px;flex:none}
.ad-body{flex:1;min-width:0}
.ad-body strong{display:block;font-size:12px}
.ad-body small{display:block;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-arrow{font-size:20px;color:var(--red)}
.bb-head{font-size:11px;color:#6a5c4e;margin:0 0 7px}
.ad-overlay{position:fixed;inset:0;z-index:160;background:rgba(28,22,16,.62);display:grid;place-items:center;padding:16px}
.ad-modal{position:relative;background:#fffdf8;border-radius:16px;padding:22px 20px;width:min(380px,94vw);text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.ad-modal-icon{font-size:38px}.ad-modal h3{margin:8px 0 6px;font-size:16px}.ad-modal p{color:var(--muted);font-size:12px;margin:0 0 12px}
.ad-close{position:absolute;right:10px;top:10px;border:0;background:#f3ede2;border-radius:50%;width:26px;height:26px}
.ad-cta{display:block;background:var(--red);color:#fff;border-radius:10px;padding:9px;margin-top:9px;font-weight:700;font-size:13px;border:0;width:100%}
.ad-cta.ghost{background:#fff;color:var(--red);border:1px solid var(--red)}
.ad-cta:disabled{opacity:.45}
.ad-cta.ready{background:var(--green)}
.ad-reward-target{background:#fff5e2;border-radius:8px;padding:7px;font-size:12px;font-weight:700}
.ad-video-slot{margin:10px 0;background:#f2ede2;border-radius:10px;min-height:90px;display:grid;place-items:center}
.ad-video-placeholder{color:var(--muted);font-size:12px}.ad-video-placeholder small{display:block;font-size:10px}
.ad-timer,.ad-hint{font-size:11px;color:var(--muted);margin-top:8px}
.ad-adsense-wrap{position:relative;min-height:60px}

/* ---------- 弹窗 / 提示 / busy ---------- */
.modal-overlay{position:fixed;inset:0;z-index:150;background:rgba(30,24,18,.5);display:grid;place-items:center;padding:14px}
.modal-box{position:relative;background:#fffdf8;border-radius:16px;padding:20px;width:min(460px,96vw);max-height:88vh;overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.modal-box h3{margin:0 0 10px;font-size:16px;padding-right:26px}
.modal-x{position:absolute;right:12px;top:12px;border:0;background:#f3ede2;border-radius:50%;width:28px;height:28px}
.ev-ic{font-size:38px;text-align:center}.ev-text{font-size:13px;color:#4a4038;margin:8px 0 14px}
.ev-options{display:grid;gap:7px}
.transport-list{display:grid;gap:7px}
.transport{display:grid;grid-template-columns:26px 1fr auto;grid-template-rows:auto auto;gap:0 8px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 11px}
.transport:hover{border-color:var(--red)}
.transport>span{grid-row:1/3;font-size:21px;align-self:center}
.transport b{font-size:12px}.transport small{font-size:11px;color:var(--red);grid-row:1;grid-column:3}
.transport em{grid-column:2/4;font-size:10px;color:var(--muted);font-style:normal}
.ad-boost{background:#fff5e2;border-radius:10px;padding:9px;margin:10px 0;text-align:center}
.ad-boost small{display:block;color:var(--muted);font-size:10px;margin-top:4px}
#shareCv{width:100%;height:auto;border-radius:10px;border:1px solid var(--line);display:block}
.share-acts{display:flex;gap:8px;margin-top:10px}.share-acts .btn{flex:1}
.toast-root{position:fixed;bottom:88px;right:14px;z-index:180;display:grid;gap:7px;pointer-events:none;max-width:min(330px,86vw)}
.toast{background:#2f2b26;color:#fff;border-radius:10px;padding:8px 12px;font-size:12px;box-shadow:var(--shadow);display:flex;gap:7px;align-items:center}
.busy{position:fixed;inset:0;z-index:170;background:rgba(30,24,18,.45);display:grid;place-items:center}
.busy-inner{background:#fffdf8;border-radius:16px;padding:22px 26px;text-align:center;width:min(300px,88vw)}
.busy-spinner{font-size:36px;animation:spin 1.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.busy-bar{height:6px;background:#f0e7d8;border-radius:6px;overflow:hidden;margin:12px 0}
.busy-bar i{display:block;height:100%;background:var(--red);width:35%;animation:slide 1.1s ease-in-out infinite}
@keyframes slide{0%{margin-left:-35%}100%{margin-left:100%}}
.field{display:block;margin:10px 0}
.field>span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.field input{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:#fff}
.pick-row{display:flex;gap:6px;flex-wrap:wrap}
.pick{border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px 9px;display:grid;grid-template-columns:auto 1fr;gap:2px 6px;text-align:left;align-items:center;font-size:11px;min-width:0}
.pick span{font-size:18px;grid-row:1/3}
.pick b{font-size:11px;white-space:nowrap}
.pick small{font-size:9px;color:var(--muted);white-space:nowrap}
.pick.on{border-color:var(--red);background:var(--red-soft)}
.home-pick{display:grid;gap:7px;margin:10px 0}
.home-opt{display:grid;grid-template-columns:1fr auto;gap:2px 8px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 11px}
.home-opt b{font-size:12px}.home-opt span{font-size:11px;color:var(--red)}
.home-opt small{grid-column:1/3;color:var(--muted);font-size:10px}
.home-opt.on{border-color:var(--red);background:var(--red-soft)}
.overlay{position:fixed;inset:0;z-index:200;background:linear-gradient(160deg,#c9382b,#a52a21 55%,#7d1f18);display:grid;place-items:center;padding:16px;overflow:auto}
.setup-box{background:#fffdf8;border-radius:20px;padding:24px;width:min(440px,96vw);box-shadow:0 24px 60px rgba(0,0,0,.3);text-align:center}
.setup-logo{width:56px;height:56px;margin:0 auto 8px;background:var(--red);color:#fff;border-radius:16px;display:grid;place-items:center;font-size:30px;font-weight:800}
.setup-box h1{margin:0;font-size:24px}.setup-sub{color:var(--muted);font-size:12px;margin:6px 0 18px}
.setup-step h2{font-size:15px;text-align:left;margin:0 0 10px}.setup-step h2 small{font-weight:400;color:var(--muted);font-size:11px}
.setup-step .field{text-align:left}.setup-note{background:var(--red-soft);border-radius:10px;padding:9px;font-size:12px;text-align:left}
.lottery{background:#fbf4e6;border-radius:14px;padding:18px;margin-bottom:12px}.lottery-icon{font-size:42px}.lottery h3{margin:6px 0}.lottery p{color:var(--muted);font-size:12px;margin:0}
.footer{text-align:center;color:var(--muted);font-size:11px;margin-top:16px;line-height:1.8}
.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:7px 0}
.footer-links button{border:0;background:none;color:var(--red);font-size:11px;padding:2px 4px}
.footer-fine{font-size:10px;color:#9a8c7c}

/* ---------- 响应式 ---------- */
@media (max-width:1000px){
  .layout{grid-template-columns:1fr}
  .side{grid-template-columns:1fr 1fr}
  .city-view,.room-view{height:390px}
  .brand-wall{width:100px}
}
@media (max-width:640px){
  .app{padding:0 9px 16px}
  .topbar{padding:9px 2px;gap:8px}
  .brand{min-width:0;flex:1}
  .brand-text small{display:none}
  .hud{justify-content:flex-start;order:2;width:100%;gap:5px}
  .hud-item{font-size:10px;padding:3px 8px}
  .hud-item.hud-mode{display:none}
  .city-view,.room-view{height:330px}
  .map-cell{font-size:9px;padding:3px 6px;max-width:100px}
  .map-cell .mc-icon{font-size:11px}
  .brand-wall{width:82px;right:5px;top:5px;padding:4px}
  .brand-grid{grid-template-columns:repeat(2,1fr)}
  .brand-cell{height:27px}.brand-cell small{display:none}
  .brand-wall-head{font-size:9px}
  .coming-soon{display:none}
  .map-adboard{width:56px;min-height:26px;font-size:7px}
  .city-tip{font-size:9px;left:6px;bottom:6px}
  .needs{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .need{padding:5px 7px;gap:4px}.need-ic{font-size:14px}
  .scene-inner{padding:11px}
  .scene-head h1{font-size:16px}
  .scene-time{font-size:9px;padding:3px 8px}
  .action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .action{padding:7px 8px;grid-template-columns:22px 1fr}
  .ac-ic{font-size:17px}
  .action b{font-size:11px}.action small{font-size:9px}
  .side{grid-template-columns:1fr}
  .phone-body{max-height:230px}
  .dock{gap:2px;padding:4px;width:100%;border-radius:14px}
  .dock-btn{min-width:0;flex:1;padding:4px 2px;font-size:10px}
  .dock-btn span{font-size:17px}
  .phone-fab{right:10px;bottom:12px;width:46px;height:46px;font-size:18px}
  .iphone{height:min(690px,92vh)}
  .toast-root{bottom:78px;top:auto;right:8px;left:8px;max-width:none}
  .footer-links{gap:2px}
}

/* ===== 全国 38 城面板 ===== */
.modal-nation{width:min(980px,94vw);max-height:88vh;overflow:auto}
.nation-head .ev-text{font-size:13px;line-height:1.7}
.nation-stat{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.nation-stat span{background:#f5efe2;border:1px solid #e5d9c3;border-radius:999px;padding:4px 10px;font-size:11px;color:#5f5e5a}
.nation-stat b{color:#c9382b;font-size:13px}
.nation-filter{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:12px 0}
.nf{border:1px solid #e0d5c0;background:#fff;border-radius:999px;padding:5px 12px;font-size:11px;cursor:pointer;color:#5f5e5a}
.nf.on{background:#c9382b;border-color:#c9382b;color:#fff}
.nation-search{flex:1;min-width:150px;border:1px solid #e0d5c0;border-radius:8px;padding:6px 10px;font-size:12px;outline:none;background:#fff}
.nation-tmap{height:260px;border-radius:10px;overflow:hidden;margin-bottom:12px;border:1px solid #e5d9c3}
.nation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}
.nation-card{position:relative;text-align:left;border:1px solid #e5d9c3;background:#fffdf7;border-radius:10px;padding:10px 11px;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:transform .15s,border-color .15s;font-family:inherit}
.nation-card:hover{transform:translateY(-2px);border-color:#c9382b}
.nation-card.here{border-color:#c9382b;background:#fff3ef}
.nc-type{align-self:flex-start;font-size:9px;padding:2px 7px;border-radius:999px;background:#eee6d6;color:#6b6357}
.nc-type.t-municipality{background:#fde6df;color:#b54a35}
.nc-type.t-zone{background:#e2f0ea;color:#2c7a5c}
.nc-type.t-sar{background:#e5e9f7;color:#43569c}
.nc-type.t-autonomous{background:#f6ead9;color:#96682c}
.nc-name{font-size:14px;color:#2c2c2a}
.nc-prov,.nc-tag,.nc-coef,.nc-extra{font-size:10px;color:#7a7367;line-height:1.4}
.nc-tag{color:#4a4741}
.nc-coef{font-variant-numeric:tabular-nums;color:#9a5a3c}
.nc-extra{color:#2c7a5c}
.nc-here{position:absolute;right:9px;top:9px;font-size:9px;color:#c9382b}
.nation-foot{font-size:10px;line-height:1.7;color:#8a8378;margin-top:12px;border-top:1px solid #eee4d2;padding-top:10px}
.start-city-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.start-city-row b{background:#f5efe2;border:1px solid #e5d9c3;border-radius:8px;padding:6px 10px;font-size:12px}
.field small{font-weight:400;color:#8a8378}
@media(max-width:640px){
  .nation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nation-tmap{height:200px}
  .modal-nation{max-height:92vh}
  .hud-item.hud-mode{display:none}
}
