/* live-scene stage */
#app{position:fixed;inset:0;overflow:hidden}
#cv{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
#loading{position:absolute;inset:0;display:grid;place-items:center;background:#eef0e2;color:#4a3b2f;
  font:600 15px/1 var(--f-body, system-ui);z-index:90;letter-spacing:.02em}
.sc-ui{position:absolute;inset:0;z-index:10}
.sc-layer{position:absolute;inset:0}
/* classes the original drives purely from JS (no stylesheet rules) */
.sc-discover-ic{position:absolute;left:0;top:0;width:0;height:0;overflow:hidden}
.sc-sparks,.sc-confetti-wrap{position:absolute;left:0;top:0;width:0;height:0}
.sc-share-ic svg{width:19px;height:19px}
.sc-count{font-weight:800;font-size:13px}
.sc-journal-empty{padding:30px 12px;text-align:center;color:var(--ink-soft);font-weight:700;line-height:1.7}
/* 纪事面板：安全边距 + 页签 */
.sc-modal{box-sizing:border-box;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
.sc-modal .sc-sheet{max-width:100%}
.sc-jsheet{width:min(700px,100%);height:min(640px,100%);max-height:100%}
.sc-jhead{display:flex;align-items:center;gap:12px;padding:22px 76px 16px 28px;border-bottom:1px solid var(--line)}
.sc-jhead .sc-close{top:50%;margin-top:-19px;right:22px}
.sc-jtabs{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--paper-lo);min-width:0}
.sc-jtab{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;font-family:var(--f-head);font-size:15px;font-weight:600;color:var(--ink-soft);white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s}
.sc-jtab span{font-size:15px;line-height:1}
.sc-jtab i{font-style:normal;font-family:var(--f-body);font-size:11px;font-weight:900;padding:1px 7px;border-radius:999px;background:rgba(74,59,47,.08)}
.sc-jtab i:empty{display:none}
.sc-jtab:hover{color:var(--ink)}
.sc-jtab.sc-on{background:var(--paper);color:var(--ink);box-shadow:0 3px 10px -4px rgba(74,59,47,.45)}
.sc-jtab.sc-on i{background:rgba(207,114,72,.16);color:var(--accent-deep)}
.sc-journal{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 28px 28px;scrollbar-width:thin;scrollbar-color:rgba(74,59,47,.25) transparent}
.sc-vj-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin:4px 0 6px}
.sc-vj-stat{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:14px;background:var(--paper-lo)}
.sc-vj-stat small{font-size:11px;font-weight:800;color:var(--ink-soft);letter-spacing:.04em}
.sc-vj-stat b{font-size:15px;font-weight:800;color:var(--ink)}
.sc-vj-stat.sc-vj-warn b{color:#c0563a}
.sc-vj-title{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--accent-deep);margin:18px 0 8px}
.sc-vj-ppl{display:flex;flex-wrap:wrap;gap:6px}
.sc-vj-p{display:inline-flex;align-items:center;gap:5px;padding:4px 11px 4px 6px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.5);font-size:13px}
.sc-vj-p span{font-size:15px;line-height:1}
.sc-vj-p b{font-weight:800}
.sc-vj-p i{font-style:normal;font-size:11.5px;font-weight:700;color:var(--ink-soft)}
.sc-vj-year{position:sticky;top:-14px;z-index:1;margin:12px -4px 2px;padding:6px 4px;background:var(--paper);font-family:var(--f-head);font-size:15px;font-weight:600;color:var(--ink)}
.sc-vj-ev{display:flex;gap:10px;align-items:flex-start;padding:8px 2px;border-bottom:1px dashed var(--line);font-size:13.5px;line-height:1.55;color:var(--ink)}
.sc-vj-ev:last-child{border-bottom:0}
.sc-vj-ev span{width:30px;height:30px;flex:none;border-radius:10px;display:grid;place-items:center;background:var(--paper-lo);font-size:15px;line-height:1}
.sc-vj-ev p{margin:5px 0 0;font-weight:600}
@media (max-width:640px){
  .sc-modal{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
  .sc-jhead{padding:16px 62px 12px 16px}.sc-jhead .sc-close{right:14px}
  .sc-jtab{padding:7px 11px;font-size:14px}.sc-jtab span{display:none}
  .sc-journal{padding:12px 16px 20px}
  .sc-vj-sum{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sc-vj-stat{padding:8px 10px;border-radius:12px}.sc-vj-stat b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
.sc-jrow{display:flex;gap:14px;align-items:flex-start;padding:14px 4px;border-bottom:1px solid var(--line)}
.sc-jrow:last-child{border-bottom:0}
.sc-jic{width:40px;height:40px;flex:none;border-radius:13px;display:grid;place-items:center;
  background:var(--tint,var(--paper-lo));font-size:20px;line-height:1}
.sc-jname{font-weight:800;font-size:14.5px}
.sc-jblurb{font-size:12.5px;color:var(--ink-soft);font-weight:600;margin-top:2px}
.sc-jhere{font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;
  color:#4d7a2e;background:rgba(127,174,85,.22);border-radius:999px;padding:2px 7px;margin-left:6px}
.sc-set-sub{font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:2px}
.sc-modal.sc-open{opacity:1;visibility:visible;pointer-events:auto}
.sc-hover.sc-show,.sc-poke.sc-show,.sc-quip.sc-show{opacity:1}
.sc-photo-hint.sc-show{opacity:1}
.sc-photo-share.sc-show{opacity:1;pointer-events:auto}
.sc-tip.sc-show{opacity:1}
/* weather chip (below the time panel) */
.sc-wx{position:absolute;top:132px;left:16px;border-radius:999px;padding:4px;z-index:6;animation:sc-drop-in .8s var(--spring) .12s backwards}
.sc-wx.sc-open{z-index:60}
.sc-wx-btn{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 4px;border-radius:999px;color:var(--ink);transition:background .2s}
.sc-wx-btn:hover{background:var(--paper-lo)}
.sc-wx-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--paper-lo);font-size:17px;line-height:1}
.sc-wx-txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}
.sc-wx-name{font-family:var(--f-head);font-size:15.5px;font-weight:600}
.sc-wx-mode{font-size:10.5px;font-weight:800;color:var(--ink-soft);letter-spacing:.04em}
.sc-wx.sc-wx-manual .sc-wx-mode{color:var(--accent)}
.sc-wx-caret{width:7px;height:7px;border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);transform:translateY(-2px) rotate(45deg);margin-left:2px;transition:transform .25s}
.sc-wx.sc-open .sc-wx-caret{transform:translateY(2px) rotate(-135deg)}
.sc-wx-pop{position:absolute;left:0;top:calc(100% + 8px);width:236px;padding:10px;border-radius:18px;background-color:var(--paper);box-shadow:var(--shadow);
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.97);transform-origin:20px 0;
  transition:opacity .18s ease,transform .3s var(--spring),visibility 0s linear .2s}
.sc-wx.sc-open .sc-wx-pop{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .3s var(--spring),visibility 0s}
.sc-wx-head{grid-column:1/-1;font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--ink-soft);padding:0 4px 2px}
.sc-wx-opt{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 2px 6px;border-radius:12px;font-size:12px;font-weight:800;color:var(--ink);transition:background .15s,transform .25s var(--spring)}
.sc-wx-opt:hover{background:var(--paper-lo);transform:translateY(-1px)}
.sc-wx-opt.sc-on{background:rgba(143,179,234,.3)}
.sc-wx-oic{font-size:18px;line-height:1.1}
.sc-wx-auto{grid-column:1/-1;flex-direction:row;justify-content:center;gap:6px}
.sc-vl{position:absolute;top:192px;left:16px;border-radius:999px;padding:4px;z-index:6;animation:sc-drop-in .8s var(--spring) .2s backwards}
.sc-vl.sc-open{z-index:60}
.sc-vl-btn{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 4px;border-radius:999px;color:var(--ink);transition:background .2s}
.sc-vl-btn:hover{background:var(--paper-lo)}
.sc-vl-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--paper-lo);font-size:16px;line-height:1}
.sc-vl-name{font-family:var(--f-head);font-size:15px;font-weight:600}
.sc-vl-sub{font-size:10.5px;font-weight:800;color:var(--ink-soft);letter-spacing:.04em}
.sc-vl.sc-vl-over .sc-vl-sub{color:#c2603a}
.sc-vl.sc-open .sc-wx-caret{transform:translateY(2px) rotate(-135deg)}
.sc-vl-pop{position:absolute;left:0;top:calc(100% + 8px);width:318px;max-height:min(66vh,560px);overflow:auto;padding:12px 12px 10px;border-radius:18px;background-color:var(--paper);box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transform:translateY(-6px) scale(.97);transform-origin:20px 0;transition:opacity .18s ease,transform .3s var(--spring),visibility 0s linear .2s;color:var(--ink)}
.sc-vl.sc-open .sc-vl-pop{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .3s var(--spring),visibility 0s}
.sc-vl-head{font-family:var(--f-head);font-size:15px;font-weight:700;display:flex;justify-content:space-between;align-items:baseline;padding:0 2px 6px}
.sc-vl-head span{font-family:inherit;font-size:11px;font-weight:800;color:var(--ink-soft)}
.sc-vl-head .sc-vl-warn{color:#c2603a}
.sc-vl-row{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:10px}
.sc-vl-row:nth-child(odd){background:rgba(0,0,0,.025)}
.sc-vl-pic{font-size:19px;width:24px;text-align:center}
.sc-vl-pn{flex:1;display:flex;flex-direction:column;line-height:1.2;min-width:0}
.sc-vl-pn b{font-size:13px}
.sc-vl-pn i{font-style:normal;font-size:10.5px;color:var(--ink-soft);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-vl-act{font-size:11px;font-weight:800;color:#6a8a4a;background:rgba(143,191,90,.16);padding:2px 7px;border-radius:999px;white-space:nowrap}
.sc-vl-sec{font-size:10.5px;font-weight:900;letter-spacing:.08em;color:var(--ink-soft);padding:9px 3px 4px}
.sc-vl-homes{display:flex;flex-direction:column;gap:3px}
.sc-vl-home{font-size:12.5px;font-weight:700;padding:3px 4px}
.sc-vl-home em{font-style:normal;color:#b07a3a;font-size:11px}
.sc-vl-home small{display:block;font-size:10.5px;color:var(--ink-soft);font-weight:700;padding-left:22px}
.sc-vl-next{font-size:11px;font-weight:800;color:#8a6a3a;background:rgba(240,214,170,.35);border-radius:10px;padding:5px 8px;margin-top:4px}
.sc-vl-stock{display:flex;gap:12px;font-size:13px;font-weight:800;padding:0 4px}
.sc-vl-log{display:flex;gap:7px;padding:4px 3px;font-size:11.5px;line-height:1.45;color:var(--ink)}
.sc-vl-log p{margin:0}
.sc-vl-log em{font-style:normal;font-weight:900;color:var(--ink-soft);margin-right:2px}
.sc-vl-empty{font-size:11.5px;color:var(--ink-soft);padding:4px}
.sc-vl-home em.sc-vl-dmg{color:#c0563a}
.sc-vl-cnt{font-style:normal;font-weight:800;opacity:.7;margin-left:4px}
.sc-vl-era{font-size:12.5px;font-weight:900;color:#6a5a3a;padding:2px 4px 5px}
.sc-vl-techs{display:flex;flex-wrap:wrap;gap:4px;padding:0 3px}
.sc-vl-tech{font-size:11px;font-weight:800;color:#5a6a3a;background:rgba(143,191,90,.16);padding:2px 8px;border-radius:999px;white-space:nowrap}
.sc-vl-seed{font-size:11px;font-weight:800;color:#8a6a2a;padding:4px 4px 0}
.sc-vl-teff{display:block;font-size:10.5px;font-weight:700;color:var(--ink-soft);margin-top:2px}
.sc-vl-rot{font-size:10.5px;font-weight:800;color:#a8603a;padding:3px 4px 0}
.sc-vl-rottip{font-size:10.5px;font-weight:700;color:#a8603a;background:rgba(244,210,196,.35);border-radius:8px;padding:3px 7px;margin-top:4px}
.sc-vl-stock small{font-size:10px;font-weight:800;color:#a8603a;margin-left:2px}
.sc-vl-feud{color:#a8503a;background:rgba(244,210,196,.45)}
.sc-vl-fun{color:#5a5870;background:rgba(222,222,236,.6)}
.sc-vl-fest{color:#9a5a1a;background:rgba(251,228,196,.62);font-weight:700}
.sc-vl-jhead{font-family:var(--f-head);font-size:15px;font-weight:700;padding:14px 4px 4px;border-top:1px dashed rgba(0,0,0,.12);margin-top:10px}
.sc-vl-nic{font-size:16px;line-height:1}
.sc-vl-gtip{position:fixed;z-index:60;pointer-events:none;transform:translate(-50%,calc(-100% - 16px));padding:6px 12px;border-radius:999px;background:rgba(255,250,241,.96);color:var(--ink);font-size:12.5px;font-weight:800;box-shadow:0 6px 18px rgba(60,40,20,.18);white-space:nowrap;opacity:0;transition:opacity .15s}
.sc-vl-gtip.sc-show{opacity:1}
.sc-vl-btip{position:fixed;z-index:61;pointer-events:none;left:0;top:0;transform:translate(-50%,calc(-100% - 12px)) scale(.86);transform-origin:50% 100%;opacity:0;transition:opacity .18s,transform .22s cubic-bezier(.3,1.6,.5,1);padding:8px 16px 9px;border-radius:16px;background:#fffaf1;color:var(--ink,#4a3426);box-shadow:0 8px 22px rgba(60,40,20,.24);border:2.5px solid #e2b36a;text-align:center;white-space:nowrap}
.sc-vl-btip.sc-show{opacity:1;transform:translate(-50%,calc(-100% - 12px)) scale(1)}
.sc-vl-btip b{display:flex;align-items:center;justify-content:center;gap:6px;font-size:15.5px;font-weight:900;letter-spacing:.02em}
.sc-vl-btip b span{font-size:17px}
.sc-vl-btip small{display:block;font-size:11.5px;font-weight:700;opacity:.7;margin-top:2px;max-width:250px;white-space:normal}
.sc-vl-btip:after{content:'';position:absolute;left:50%;bottom:-8px;width:12px;height:12px;background:#fffaf1;border-right:2.5px solid #e2b36a;border-bottom:2.5px solid #e2b36a;transform:translateX(-50%) rotate(45deg)}
.sc-vl-gsheet{width:min(560px,calc(100vw - 28px));max-height:min(82vh,720px)}
.sc-vl-gbody{overflow-y:auto;overscroll-behavior:contain;padding:26px 28px 24px;scrollbar-width:thin}
.sc-vl-ghead{display:flex;align-items:center;gap:14px;padding-right:40px}
.sc-vl-gstone{flex:none;width:58px;height:66px;border-radius:26px 26px 10px 10px;display:grid;place-items:center;font-size:30px;background:linear-gradient(#d9d5cc,#b9b3a8);box-shadow:inset 0 -6px 0 rgba(0,0,0,.08),0 4px 10px rgba(60,40,20,.15)}
.sc-vl-gname{font-family:var(--f-head);font-size:28px;font-weight:600;margin:2px 0 2px;line-height:1.1}
.sc-vl-gsum{margin:14px 0 10px;font-size:14px;line-height:1.75;color:var(--ink);background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.sc-vl-gkin{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.sc-vl-gchip{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(240,214,170,.35);font-size:12.5px;font-weight:800}
.sc-vl-gchip small{font-size:10.5px;font-weight:900;color:var(--ink-soft)}
.sc-vl-gline{position:relative;padding-left:4px}
.sc-vl-gline:before{content:'';position:absolute;left:57px;top:6px;bottom:6px;width:2px;background:rgba(74,59,47,.12);border-radius:2px}
.sc-vl-gev{position:relative;display:grid;grid-template-columns:40px 26px 1fr;gap:6px;align-items:start;padding:6px 0;font-size:13px;line-height:1.55}
.sc-vl-gev i{font-style:normal;font-weight:900;font-size:11.5px;color:var(--ink-soft);text-align:right;line-height:1.3;padding-top:2px}
.sc-vl-gev i small{font-weight:700;opacity:.8}
.sc-vl-gev span{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--paper,#fffaf1);box-shadow:0 0 0 2px rgba(74,59,47,.1);font-size:14px}
.sc-vl-gev p{margin:2px 0 0}
.sc-vl-gend p{color:var(--ink-soft);font-style:italic}
.sc-vj-grave{cursor:pointer;font:inherit;color:inherit;transition:transform .2s,background .2s}
.sc-vj-grave:hover{transform:translateY(-1px);background:rgba(240,214,170,.45)}
.sc-vj-tip{font-size:11px;font-weight:700;color:var(--ink-soft);margin-left:6px;letter-spacing:0}
@media (max-width:700px){.sc-vl{top:178px;padding:3px}.sc-vl-ic{width:26px;height:26px}.sc-vl-pop{width:min(318px,86vw)}}
@media (max-width:700px){.sc-wx{padding:3px}.sc-wx-ic{width:26px;height:26px;font-size:15px}.sc-wx-name{font-size:14px}}

/* ---------------------------------------------------------- 添加的二级选择 -----
   底部工具栏最后一格「添加」点开后浮在工具栏上方：人物 / 建筑两格。
   面板与工具栏同属 .sc-ui 缩放层，尺寸用层内像素，和工具按钮保持同一套比例。 */
.sc-tool-add .sc-tool-ic{color:#6f9a4a}
.sc-tool-add.sc-on .sc-tool-ic{color:var(--ink)}
.sc-addpop{
  position:absolute;left:50%;bottom:calc(18px + 86px + 10px);
  transform:translate(-50%,10px) scale(.96);
  width:332px;padding:12px 12px 10px;border-radius:24px;
  opacity:0;visibility:hidden;pointer-events:none;z-index:18;
  transition:opacity .16s ease,transform .3s var(--spring),visibility 0s .3s;
}
.sc-addpop.sc-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1);transition:opacity .16s ease,transform .3s var(--spring),visibility 0s}
.sc-addpop-head{font-family:var(--f-head);font-size:15px;font-weight:700;padding:2px 4px 8px;color:var(--ink)}
.sc-addpop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sc-addopt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;border-radius:18px;background:var(--paper-lo);border:1.5px solid transparent;color:var(--ink);transition:transform .25s var(--spring),background .2s,border-color .2s}
.sc-addopt:hover{background:rgba(255,255,255,.72);border-color:rgba(127,174,85,.45);transform:translateY(-1px)}
.sc-addopt:active{transform:scale(.96)}
.sc-addopt-ic{font-size:26px;line-height:1}
.sc-addopt-t{display:flex;flex-direction:column;align-items:center;gap:2px;font-family:var(--f-head);font-size:15px;font-weight:600}
.sc-addopt-t small{font-family:var(--f-body);font-size:10.5px;font-weight:700;color:var(--ink-soft)}
.sc-addopt.is-soon{opacity:.62;cursor:not-allowed}
.sc-addopt.is-soon:hover{transform:none;background:var(--paper-lo);border-color:transparent}
.sc-addpop-foot{padding:8px 4px 2px;font-size:11px;font-weight:700;line-height:1.45;color:var(--ink-soft)}
.sc-addpop-foot b{color:var(--ink)}
.sc-addpop-foot.sc-short b{color:#c0563a}
/* 打开添加面板时先收起左下引导卡，免得两层面板叠在一起 */
.sc-ui.sc-add-open .sc-onboard{opacity:0;transform:translateY(10px) scale(.97);pointer-events:none}
/* 岛民面板里「饿」的小标 */
.sc-vl-hungry{font-style:normal;font-weight:900;font-size:10px;padding:1px 6px;border-radius:999px;background:rgba(207,114,72,.18);color:#b1553a;margin-left:4px}

/* ---------------------------------------------------------------- 金币 chip -----
   位置由 hudStack 接在时间面板下面（时间 → 金币 → 天气 → 岛民），
   这样各断点/字号下都不会互相压住；这里只定尺寸与外观。 */
.sc-gold{position:absolute;left:16px;top:132px;display:flex;align-items:center;gap:6px;padding:4px 14px 4px 5px;border-radius:999px;height:38px;font-weight:900;z-index:6;animation:sc-drop-in .8s var(--spring) .1s backwards}
.sc-gold-ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--paper-lo);font-size:16px;line-height:1}
.sc-gold b{font-size:15px;font-variant-numeric:tabular-nums}
.sc-gold i{font-style:normal;font-size:12px;font-weight:900;color:#4f8a3a;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .25s}
.sc-gold i.sc-down{color:#c0563a}
.sc-gold i.sc-show{opacity:1;transform:none}
.sc-ui.sc-visiting .sc-gold{display:none!important}

/* --------------------------------------------------- 添加面板：生物 / 建筑 ----- */
.sc-addpop{width:356px}
.sc-addpop-head{display:flex;align-items:center;gap:8px}
.sc-addback{display:none;width:24px;height:24px;border-radius:50%;background:var(--paper-lo);font:900 13px/1 var(--f-body);color:var(--ink);place-items:center;flex:none}
.sc-addpop.sc-sub .sc-addback{display:grid}
.sc-addpop-body{display:flex;flex-direction:column;gap:8px;max-height:min(430px,58vh);overflow:auto;overscroll-behavior:contain;padding:2px 2px 4px;scrollbar-width:thin}
.sc-addpop-body .sc-addpop-grid{grid-template-columns:1fr 1fr;display:grid;gap:8px}
.sc-addopt.is-off{opacity:.5}
.sc-addopt.is-off:hover{transform:none;background:var(--paper-lo);border-color:transparent}
.sc-addopt .sc-role-price{font-size:11px;font-weight:900;color:var(--accent-deep)}
.sc-addopt .sc-role-lv{font-style:normal;font-size:9.5px;font-weight:900;color:var(--ink-soft)}
.sc-addsec{font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--accent-deep);padding:8px 4px 0}
.sc-tool-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:12px;background:var(--paper-lo);font-size:11px;font-weight:800}
.sc-tool-row button{padding:4px 9px;border-radius:9px;background:var(--paper-hi);font-size:10.5px;font-weight:900;color:var(--accent-deep);box-shadow:inset 0 -2px 0 rgba(120,88,58,.08)}
.sc-tool-row button:disabled{opacity:.45;cursor:not-allowed}
.sc-addpop .sc-bld-row{display:flex;align-items:center;gap:8px;padding:8px;border-radius:14px;background:var(--paper-lo);text-align:left}
.sc-addpop .sc-bld-row .sc-addopt-ic{font-size:22px}
.sc-addpop .sc-bld-t{flex:1;display:flex;flex-direction:column;gap:2px;font-size:12px;font-weight:800}
.sc-addpop .sc-bld-t small{font-size:10px;font-weight:700;color:var(--ink-soft);line-height:1.4}
.sc-addpop .sc-bld-cost{font-size:10.5px;font-weight:900;color:var(--accent-deep);white-space:nowrap}

/* ---------------------------------------------------------------- 背包面板 ----- */
.sc-bag{position:absolute;top:66px;right:16px;width:min(340px,calc(100vw / var(--lh-ui,1) - 24px));max-height:min(70vh,540px);display:flex;flex-direction:column;padding:10px 12px 12px;border-radius:22px;z-index:18;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px);transition:opacity .18s,transform .28s var(--spring),visibility 0s .28s}
.sc-bag.sc-open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .18s,transform .28s var(--spring),visibility 0s}
.sc-bag-head{display:flex;align-items:baseline;gap:8px;padding:2px 32px 8px 4px;position:relative}
.sc-bag-head b{font-family:var(--f-head);font-size:17px}
.sc-bag-head span{font-size:10.5px;font-weight:800;color:var(--ink-soft)}
.sc-bag-head .sc-close{position:absolute;right:0;top:0;width:26px;height:26px}
.sc-bag-body{overflow:auto;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin}
.sc-bag-top{display:flex;justify-content:space-between;font-size:11px;font-weight:800;color:var(--ink-soft);background:var(--paper-lo);border-radius:12px;padding:6px 9px}
.sc-bag-top b{color:var(--ink)}
.sc-bag-row{display:grid;grid-template-columns:22px 1fr auto auto;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:rgba(255,255,255,.45);font-size:12px;font-weight:800}
.sc-bag-row b{font-variant-numeric:tabular-nums}
.sc-bag-row button{padding:4px 8px;border-radius:9px;background:var(--paper-lo);font-size:10px;font-weight:900;color:var(--accent-deep)}
.sc-bag-row button:disabled{opacity:.4;cursor:not-allowed}
.sc-bag-sec{font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--accent-deep);padding:6px 4px 0}
.sc-bag-buy{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:12px;background:var(--paper-lo);font-size:12px;font-weight:800;text-align:left}
.sc-bag-buy b{margin-left:auto;color:var(--accent-deep)}
.sc-bag-buy:disabled{opacity:.45}
.sc-ui.sc-visiting .sc-bag, .sc-ui.sc-visiting .sc-bag-btn{display:none!important}
.sc-bag-note{font-size:10.5px;line-height:1.55;font-weight:700;color:var(--ink-soft);padding:2px 4px 0}

/* 背包出售：每条物资一行，滑杆自己定卖多少，下面一个卖出按钮 */
.sc-bag-row{display:grid;grid-template-columns:22px 1fr auto;gap:5px 8px;align-items:center;padding:7px 8px;border-radius:12px;background:rgba(255,255,255,.45);font-size:12px;font-weight:800}
.sc-bag-row> b{font-variant-numeric:tabular-nums}
.sc-bag-n{font-weight:800}
.sc-bag-sellbar{grid-column:1/-1;display:flex;align-items:center;gap:6px}
.sc-bag-range{flex:1;min-width:0;height:18px;accent-color:#7fae55;background:transparent}
.sc-bag-sellbar em{font-style:normal;font-size:11px;font-weight:900;min-width:24px;text-align:right;color:var(--ink)}
.sc-bag-sell{padding:4px 9px;border-radius:9px;background:var(--paper-hi);font-size:10px;font-weight:900;color:var(--accent-deep);box-shadow:inset 0 -2px 0 rgba(120,88,58,.08)}
.sc-bag-sell:disabled{opacity:.42;cursor:not-allowed}
.sc-bag-all{font-size:9.5px;padding:3px 6px;border-radius:8px;background:var(--paper-lo);color:var(--ink-soft)}

/* ------------------------------------------------------------ 居民悬浮面板 -----
   点岛民：贴着他的屏幕位置弹出，能看到健康、当前活计，并直接指派工作。
   指派是持久的，直到点「自动」；不指派时完全走原来的自动工作。 */
.sc-person{position:absolute;left:50%;top:50%;width:286px;padding:10px 12px 12px;border-radius:20px;z-index:18;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,calc(-100% - 10px)) scale(.96);transform-origin:50% 100%;transition:opacity .16s,transform .22s var(--spring),visibility 0s .22s}
.sc-person.sc-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,calc(-100% - 10px)) scale(1);transition:opacity .16s,transform .22s var(--spring),visibility 0s}
.sc-person.sc-left.sc-open{transform:translate(-12%,calc(-100% - 10px)) scale(1);transform-origin:12% 100%}
.sc-person.sc-below.sc-open{transform:translate(-50%,10px) scale(1);transform-origin:50% 0}
.sc-person-head{display:flex;align-items:center;gap:8px;position:relative;padding-right:24px}
.sc-person-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--paper-lo);font-size:19px;flex:none}
.sc-person-who{display:flex;flex-direction:column;gap:1px;min-width:0}
.sc-person-who b{font-family:var(--f-head);font-size:16px;font-weight:700;line-height:1.15}
.sc-person-who div{font-size:10.5px;font-weight:800;color:var(--ink-soft);display:flex;gap:6px;align-items:baseline}
.sc-person-role{color:var(--accent-deep)}
.sc-person-age{font-style:normal}
.sc-person-x{position:absolute;right:-2px;top:-2px;width:24px;height:24px;border-radius:50%;background:var(--paper-lo);font:900 14px/1 var(--f-body);color:var(--ink-soft);display:grid;place-items:center}
.sc-person-hp{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:10.5px;font-weight:900;color:var(--ink-soft)}
.sc-person-hp i{flex:1;height:9px;border-radius:99px;background:rgba(74,59,47,.12);overflow:hidden}
.sc-person-hp em{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#8fbf5a,#6f9a4a);transition:width .3s}
.sc-person-hp b{font-size:11px;color:var(--ink);min-width:22px;text-align:right}
.sc-person-hp.sc-low em{background:linear-gradient(90deg,#e08a4a,#c0563a)}
.sc-person-hp.sc-low b{color:#c0563a}
.sc-person-act{margin-top:6px;font-size:11px;font-weight:800;color:var(--ink);background:rgba(255,255,255,.5);border-radius:10px;padding:5px 8px}
.sc-person-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}
.sc-person-grid button{padding:7px 2px;border-radius:10px;background:var(--paper-lo);font-size:11px;font-weight:900;color:var(--ink-soft);transition:background .15s,color .15s}
.sc-person-grid button.sc-on{background:var(--leaf);color:#fffaf1;box-shadow:inset 0 -2px 0 rgba(40,70,30,.2)}
.sc-person-tip{margin-top:7px;font-size:10px;font-weight:700;line-height:1.45;color:var(--ink-soft)}
.sc-vl-row{cursor:pointer}
.sc-vl-row:hover{background:rgba(255,255,255,.5)}
.sc-vl-role{font-style:normal;font-size:9.5px;font-weight:900;color:var(--accent-deep);margin-left:4px}
.sc-person-grid button:disabled{opacity:.38;cursor:not-allowed}
.sc-wx-opt.sc-off{opacity:.4}
