/* ===================================================================
   朕的江山 · 皇帝成长录   样式（国风游戏皮 v2）
   真实宫廷背景 + 宣纸/木纹纹理 + 回纹雕花边框 + 鎏金浮雕
   =================================================================== */
:root{
  --red:#b3261e; --red-deep:#6f150f; --red-dk:#4a0d09;
  --gold:#d9b65f; --gold-br:#f6dd96; --gold-dk:#9a7327;
  --ink:#2a1710; --paper:#f3e6c8; --paper-2:#e7d3a6; --paper-dk:#d8bf8e;
  --wood:#2e1c12; --wood-2:#190d07;
  --serif:"STKaiti","KaiTi","楷体","Songti SC","SimSun",serif;
  --shadow:0 12px 40px rgba(0,0,0,.55);
  --bevel:inset 0 1px 0 rgba(255,255,255,.18), inset 0 -2px 4px rgba(0,0,0,.35);

  /* 宣纸颗粒纹理 */
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
  /* 回纹雕花角（鎏金）四向 */
  --c-tl:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M2 2H24M2 2V24' stroke='%23d9b65f' stroke-width='2' fill='none'/%3E%3Cpath d='M2 2H12V6H6V12H2Z' fill='%23d9b65f'/%3E%3Ccircle cx='15' cy='15' r='2' fill='%23b3261e'/%3E%3C/svg%3E");
  --c-tr:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(90 13 13)'%3E%3Cpath d='M2 2H24M2 2V24' stroke='%23d9b65f' stroke-width='2' fill='none'/%3E%3Cpath d='M2 2H12V6H6V12H2Z' fill='%23d9b65f'/%3E%3Ccircle cx='15' cy='15' r='2' fill='%23b3261e'/%3E%3C/g%3E%3C/svg%3E");
  --c-bl:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(270 13 13)'%3E%3Cpath d='M2 2H24M2 2V24' stroke='%23d9b65f' stroke-width='2' fill='none'/%3E%3Cpath d='M2 2H12V6H6V12H2Z' fill='%23d9b65f'/%3E%3Ccircle cx='15' cy='15' r='2' fill='%23b3261e'/%3E%3C/g%3E%3C/svg%3E");
  --c-br:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cg transform='rotate(180 13 13)'%3E%3Cpath d='M2 2H24M2 2V24' stroke='%23d9b65f' stroke-width='2' fill='none'/%3E%3Cpath d='M2 2H12V6H6V12H2Z' fill='%23d9b65f'/%3E%3Ccircle cx='15' cy='15' r='2' fill='%23b3261e'/%3E%3C/g%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{font-family:var(--serif);color:var(--paper);background:#140805;overflow:hidden;user-select:none;}
#app{position:relative;width:100%;height:100dvh;overflow:hidden;}
img{display:block;}
b{color:var(--gold-br);font-weight:600;}

/* 鎏金线描图标统一尺寸 */
.nstat i{display:inline-flex;align-items:center;}
.nstat i svg{width:15px;height:15px;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5));}
.act-btn i{display:inline-flex;}
.act-btn i svg{width:23px;height:23px;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));}
.tab .tico{display:inline-flex;align-items:center;justify-content:center;}
.tab .tico svg{width:20px;height:20px;display:block;}

/* 雕花框工具类（鎏金角 + 双线 + 浮雕） */
.framed{position:relative;border:2px solid var(--gold);border-radius:10px;
  box-shadow:var(--shadow), inset 0 0 0 1px rgba(255,255,255,.08);}
.framed::after{content:"";position:absolute;inset:4px;border:1px solid rgba(122,21,15,.5);border-radius:7px;
  pointer-events:none;
  background:var(--c-tl) left top no-repeat,var(--c-tr) right top no-repeat,
             var(--c-bl) left bottom no-repeat,var(--c-br) right bottom no-repeat;
  background-size:22px 22px;}

.screen{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s;
  display:flex;flex-direction:column;}
.screen.active{opacity:1;visibility:visible;}

/* ============ 标题 ============ */
#screen-title{align-items:center;justify-content:center;
  background:linear-gradient(rgba(20,8,5,.62),rgba(20,8,5,.88)),url("../assets/ui/palace.jpg") center/cover;}
#screen-title::before{content:"";position:absolute;inset:0;background:var(--grain);opacity:.5;pointer-events:none;}
.title-inner{position:relative;text-align:center;padding:28px;max-width:480px;width:100%;z-index:1;}
.title-seal{width:90px;height:90px;margin:0 auto 16px;display:grid;place-items:center;font-size:54px;color:var(--gold-br);
  background:radial-gradient(circle at 35% 30%,#c8362c,var(--red-deep) 70%,var(--red-dk));
  border:3px solid var(--gold);border-radius:14px;box-shadow:var(--shadow),var(--bevel);transform:rotate(-4deg);
  text-shadow:0 2px 4px rgba(0,0,0,.5);}
.game-title{font-size:64px;letter-spacing:.14em;
  background:linear-gradient(180deg,var(--gold-br),var(--gold) 55%,var(--gold-dk));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 0 var(--red-dk)) drop-shadow(0 0 18px rgba(217,182,95,.45));}
.game-sub{opacity:.8;margin:10px 0 28px;font-size:13px;letter-spacing:.06em;color:var(--gold-br);}
.setup{display:flex;gap:12px;justify-content:center;margin-bottom:26px;flex-wrap:wrap;}
.field{display:flex;flex-direction:column;gap:6px;text-align:left;}
.field span{color:var(--gold-br);font-size:13px;padding-left:4px;}
.field input{width:120px;padding:11px 13px;font-family:var(--serif);font-size:17px;color:var(--ink);
  background:linear-gradient(180deg,var(--paper),var(--paper-2));border:2px solid var(--gold);border-radius:9px;outline:none;
  box-shadow:inset 0 2px 5px rgba(122,21,15,.18);}

.btn{font-family:var(--serif);cursor:pointer;border:none;border-radius:12px;font-size:21px;letter-spacing:.28em;
  padding:15px 46px;transition:transform .12s,filter .15s;position:relative;}
.btn:active{transform:scale(.96);}
.btn-primary{color:var(--gold-br);border:2px solid var(--gold);
  background:linear-gradient(180deg,#c5362c,var(--red-deep) 60%,var(--red-dk));
  box-shadow:var(--shadow),var(--bevel);text-shadow:0 2px 3px rgba(0,0,0,.5);}
.btn-primary:hover{filter:brightness(1.12);}
.title-links{margin-top:24px;display:flex;gap:28px;justify-content:center;}
.btn-link{background:none;border:none;cursor:pointer;font-family:var(--serif);color:var(--gold-br);font-size:15px;opacity:.9;
  border-bottom:1px dashed transparent;}
.btn-link:hover{border-bottom-color:var(--gold);}
.title-record{margin-top:18px;opacity:.72;font-size:13px;min-height:18px;color:var(--gold-br);}
.title-credit{margin-top:14px;opacity:.5;font-size:11px;line-height:1.6;}

/* ============ 游戏背景：龙椅金殿 ============ */
#screen-game{background:
   linear-gradient(rgba(18,7,4,.74),rgba(18,7,4,.9)),
   url("../assets/ui/throne.jpg") center top/cover fixed;}
#screen-game::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 0%,transparent 40%,rgba(10,4,2,.6));}

/* HUD：雕花横梁 */
.hud{position:relative;display:flex;align-items:center;gap:10px;padding:9px 14px;z-index:2;
  background:linear-gradient(180deg,rgba(58,20,12,.96),rgba(40,14,9,.92));
  border-bottom:2px solid var(--gold);box-shadow:0 4px 14px rgba(0,0,0,.5);}
.hud::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold-dk),transparent);}
.hud-title{color:var(--gold-br);font-size:19px;letter-spacing:.08em;display:block;line-height:1.1;text-shadow:0 1px 3px rgba(0,0,0,.6);}
.hud-date{font-size:12px;opacity:.75;}
.hud-nation{flex:1;display:flex;flex-wrap:wrap;gap:6px 9px;justify-content:flex-end;}
.nstat{display:inline-flex;align-items:center;gap:4px;font-size:13px;padding:3px 10px 3px 8px;border-radius:18px;
  background:radial-gradient(circle at 35% 30%,#4a3416,#2a1c0c);border:1px solid var(--gold-dk);
  box-shadow:var(--bevel),0 2px 4px rgba(0,0,0,.4);}
.nstat i{font-style:normal;font-size:13px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5));}
.nstat b{color:var(--gold-br);}
.nstat.low{border-color:var(--red);animation:pulse 1.3s infinite;}
.nstat.low b{color:#ff9a7a;}
@keyframes pulse{50%{box-shadow:0 0 12px rgba(192,86,58,.7),var(--bevel);}}
.icon-btn{background:linear-gradient(180deg,#5a3a1e,#34200f);border:1px solid var(--gold);color:var(--gold-br);
  width:36px;height:36px;border-radius:9px;font-size:18px;cursor:pointer;flex-shrink:0;box-shadow:var(--bevel);}

/* ============ 主布局 ============ */
.layout{flex:1;display:flex;gap:14px;padding:14px;overflow:hidden;max-width:1000px;width:100%;margin:0 auto;z-index:1;}

/* 帝王面板：木质 + 挂轴像 */
.emperor-panel{width:216px;flex-shrink:0;padding:16px 14px;text-align:center;overflow-y:auto;border-radius:14px;
  background:linear-gradient(180deg,rgba(46,28,18,.96),rgba(25,13,7,.96));
  border:2px solid var(--gold);box-shadow:var(--shadow),inset 0 0 0 1px rgba(255,255,255,.06);}
.emperor-panel::before{content:"";display:block;}
.emp-portrait{position:relative;width:150px;margin:6px auto 0;padding:8px 0;}
.emp-portrait::before,.emp-portrait::after{content:"";position:absolute;left:-6px;right:-6px;height:8px;
  background:linear-gradient(180deg,#6a4a26,#34200f);border:1px solid var(--gold-dk);border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.5);}
.emp-portrait::before{top:0;} .emp-portrait::after{bottom:0;}
.emp-face,.noface{width:134px;height:172px;margin:0 auto;border-radius:4px;border:2px solid var(--gold);
  object-fit:cover;object-position:top center;box-shadow:var(--shadow);background:var(--paper);}
.noface{display:grid;place-items:center;color:#9a7;font-size:28px;}
.emp-name{margin-top:12px;font-size:21px;color:var(--gold-br);text-shadow:0 1px 3px rgba(0,0,0,.6);}
.emp-age{font-size:12px;opacity:.72;margin-bottom:14px;}
.emp-attrs{text-align:left;display:flex;flex-direction:column;gap:8px;}
.attr{display:flex;align-items:center;gap:6px;font-size:13px;}
.attr-n{width:30px;opacity:.88;}
.attr-bar{flex:1;height:9px;background:rgba(0,0,0,.5);border-radius:5px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.6);}
.attr-bar i{display:block;height:100%;border-radius:5px;transition:width .5s;box-shadow:inset 0 1px 0 rgba(255,255,255,.3);}
.attr-v{width:24px;text-align:right;color:var(--gold-br);}

.center{flex:1;display:flex;flex-direction:column;gap:14px;overflow:hidden;}
.event-area{flex:1;overflow-y:auto;}
.action-area{flex-shrink:0;}

/* 奏折卡：宣纸 + 雕花角 + 卷轴顶 */
.ev-card,.month-card{position:relative;color:var(--ink);border:2px solid var(--gold);border-radius:12px;padding:20px 22px 22px;
  background:linear-gradient(180deg,var(--paper),var(--paper-2)),var(--grain);
  background-blend-mode:multiply;box-shadow:var(--shadow);}
.ev-card::after,.month-card::after{content:"";position:absolute;inset:5px;border:1px solid rgba(122,21,15,.4);border-radius:8px;pointer-events:none;
  background:var(--c-tl) left top no-repeat,var(--c-tr) right top no-repeat,var(--c-bl) left bottom no-repeat,var(--c-br) right bottom no-repeat;background-size:22px 22px;}
.ev-card.deal{animation:deal .4s cubic-bezier(.2,1,.3,1);}
@keyframes deal{from{opacity:0;transform:translateY(16px) scale(.98);}to{opacity:1;transform:none;}}
/* 事件插画：电影感主视觉（加高 + 上下暗角过渡，把场景 CG 用足）*/
.ev-illust-wrap{position:relative;border-radius:9px;overflow:hidden;border:1px solid var(--gold);
  margin-bottom:14px;box-shadow:0 5px 18px rgba(0,0,0,.4);}
.ev-illust{display:block;width:100%;height:206px;object-fit:cover;object-position:center 40%;}
.ev-illust-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:9px;
  background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,transparent 20%,transparent 60%,rgba(34,18,10,.4) 100%),
    radial-gradient(120% 80% at 50% 38%,transparent 60%,rgba(0,0,0,.22) 100%);}
@media (max-width:560px){ .ev-illust{height:150px;} }
/* 月报装饰横幅：无事件时也不再是裸文字（按时段配场景）*/
.month-illust-wrap{position:relative;border-radius:9px;overflow:hidden;border:1px solid var(--gold-dk);
  margin-bottom:14px;box-shadow:0 4px 12px rgba(0,0,0,.3);}
.month-illust{display:block;width:100%;height:118px;object-fit:cover;object-position:center 38%;filter:saturate(.92);}
.month-illust-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 45%,rgba(34,18,10,.5) 100%);}
.month-illust-cap{position:absolute;left:12px;bottom:8px;color:#ffe9c2;font-size:13px;letter-spacing:.14em;
  font-weight:600;text-shadow:0 1px 4px #000;z-index:1;}
@media (max-width:560px){ .month-illust{height:92px;} }
.ev-top{display:flex;gap:14px;align-items:center;margin-bottom:13px;}
.ev-face{width:80px;height:100px;border-radius:6px;border:2px solid var(--gold);object-fit:cover;object-position:top center;flex-shrink:0;
  box-shadow:0 4px 12px rgba(0,0,0,.35);}
.ev-speaker{display:inline-block;color:var(--gold-br);font-size:13px;padding:3px 13px;border-radius:14px;letter-spacing:.08em;
  background:linear-gradient(180deg,#c5362c,var(--red-deep));border:1px solid var(--gold);box-shadow:var(--bevel);}
.ev-title{color:var(--red-deep);font-size:22px;margin-top:7px;text-shadow:0 1px 0 rgba(255,255,255,.4);}
.ev-text{font-size:16.5px;line-height:1.78;color:var(--ink);margin-bottom:15px;}
.ev-choices{display:flex;flex-direction:column;gap:10px;}
/* 选项：竹简/木牌 */
.ev-choice{font-family:var(--serif);cursor:pointer;text-align:left;color:#3a2414;font-size:16px;padding:12px 14px 12px 20px;
  border:1.5px solid var(--gold-dk);border-radius:9px;position:relative;
  background:linear-gradient(180deg,#f0e0bc,#e3cd9c);box-shadow:var(--bevel),0 2px 5px rgba(0,0,0,.18);
  transition:transform .1s,filter .15s;}
.ev-choice::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:4px;border-radius:3px;
  background:linear-gradient(180deg,var(--red),var(--red-deep));}
.ev-choice:hover{filter:brightness(1.05) saturate(1.1);transform:translateX(2px);}
.ev-choice:active{transform:scale(.985);}

.month-card h3{color:var(--red-deep);font-size:21px;margin-bottom:9px;}
.month-sub{color:var(--ink);opacity:.88;line-height:1.7;font-size:15px;margin-bottom:14px;}
.month-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;color:var(--ink);font-size:14px;}
.month-grid>div{background:rgba(122,21,15,.07);border:1px solid rgba(122,21,15,.2);border-radius:8px;padding:7px 10px;}
.month-grid b{color:var(--red-deep);}

/* 行动：鎏金木牌 */
.act-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;}
.act-btn{font-family:var(--serif);cursor:pointer;border:1px solid var(--gold);color:var(--gold-br);border-radius:11px;
  padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;
  background:linear-gradient(180deg,#5a3a1e,#321f0f);box-shadow:var(--bevel),0 3px 6px rgba(0,0,0,.35);
  transition:transform .1s,filter .15s;}
.act-btn i{font-style:normal;font-size:21px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));}
.act-btn span{font-size:12px;}
.act-btn:hover{filter:brightness(1.18);}
.act-btn:active{transform:scale(.94);}
.act-hint{text-align:center;padding:15px;opacity:.85;font-size:14px;color:var(--gold-br);
  background:linear-gradient(180deg,rgba(46,28,18,.7),rgba(25,13,7,.7));border:1px dashed var(--gold-dk);border-radius:11px;}

/* 底部导航：雕花地栿 */
.tabbar{display:flex;gap:5px;padding:9px 10px;max-width:1000px;width:100%;margin:0 auto;z-index:2;
  background:linear-gradient(180deg,rgba(40,14,9,.92),rgba(58,20,12,.96));border-top:2px solid var(--gold);box-shadow:0 -4px 14px rgba(0,0,0,.5);}
.tab{flex:1;font-family:var(--serif);cursor:pointer;color:var(--gold-br);border:1px solid var(--gold-dk);border-radius:10px;
  padding:7px 2px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:18px;
  background:linear-gradient(180deg,#4a2f18,#2a1a0c);box-shadow:var(--bevel);transition:filter .15s,transform .1s;}
.tab span{font-size:11px;opacity:.88;}
.tab:hover{filter:brightness(1.2);}
.tab:active{transform:scale(.95);}
.tab-next{flex:1.5;color:var(--gold-br);border-color:var(--gold);
  background:linear-gradient(180deg,#c5362c,var(--red-deep) 70%,var(--red-dk));text-shadow:0 1px 2px rgba(0,0,0,.5);}

/* ============ 滑出面板 ============ */
.panel-mask{position:absolute;inset:0;z-index:30;background:rgba(8,3,2,.66);backdrop-filter:blur(3px);
  display:none;align-items:flex-end;justify-content:center;}
.panel-mask.open{display:flex;}
.panel{width:100%;max-width:700px;max-height:84dvh;border:2px solid var(--gold);border-radius:18px 18px 0 0;
  background:linear-gradient(180deg,#33200f,#180d06),var(--grain);background-blend-mode:overlay;
  box-shadow:var(--shadow);display:flex;flex-direction:column;animation:slideUp .3s ease;}
@keyframes slideUp{from{transform:translateY(40px);opacity:0;}to{transform:none;opacity:1;}}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  border-bottom:2px solid var(--gold-dk);background:linear-gradient(180deg,rgba(58,20,12,.7),transparent);}
.panel-head h2{color:var(--gold-br);font-size:20px;letter-spacing:.06em;text-shadow:0 1px 3px rgba(0,0,0,.6);}
.panel-body{overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:11px;}
.panel-tip{font-size:13px;opacity:.78;line-height:1.6;padding:2px;color:var(--gold-br);}

.m-card{display:flex;gap:12px;border:1.5px solid var(--gold-dk);border-radius:12px;padding:10px;
  background:linear-gradient(180deg,rgba(60,40,22,.5),rgba(30,18,9,.55));box-shadow:var(--bevel);}
/* 稀有度边框（白绿蓝橙红）——红/橙顶级带光晕，由内联 border-color/box-shadow 着色 */
.m-card.r5{background:linear-gradient(180deg,rgba(90,30,24,.5),rgba(40,14,9,.6));}
.m-card.r4{background:linear-gradient(180deg,rgba(86,52,18,.5),rgba(40,22,9,.58));}
.rc-frame{display:inline-block;border:3px solid var(--gold);border-radius:8px;margin:6px auto 8px;line-height:0;}
.rc-frame .rc-face{margin:0;border:none;border-radius:5px;}
.rc-rarity{font-size:20px;letter-spacing:.1em;margin-bottom:2px;}
.rc-rarity span{font-size:13px;letter-spacing:.05em;}
.m-card[onclick]{cursor:pointer;}
.m-card[onclick]:hover{border-color:var(--gold);filter:brightness(1.12);}
.m-face{width:64px;height:80px;border-radius:7px;border:2px solid var(--gold);object-fit:cover;object-position:top center;flex-shrink:0;box-shadow:0 3px 8px rgba(0,0,0,.4);}
.m-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0;}
.m-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.m-head b{font-size:16px;}
.m-post{font-size:12px;background:linear-gradient(180deg,#5a3a1e,#34200f);border:1px solid var(--gold-dk);border-radius:10px;padding:1px 9px;color:var(--gold-br);}
.m-post.heir{background:linear-gradient(180deg,#c5362c,var(--red-deep));color:var(--gold-br);border-color:var(--gold);}
.m-pers{font-size:12px;opacity:.72;}
.m-tier{font-size:13px;font-weight:700;letter-spacing:-1px;text-shadow:0 1px 2px rgba(0,0,0,.5);}
.voucher{color:var(--gold-br);font-style:normal;font-weight:700;}
.m-wp{font-size:11px;color:var(--gold-br);background:rgba(0,0,0,.25);border:1px solid var(--gold-dk);border-radius:8px;padding:1px 7px;}
.armory{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px;}
.wp-chip{display:flex;align-items:center;gap:6px;background:linear-gradient(180deg,#2a1c0c,#1a1206);border:1.5px solid var(--gold-dk);border-radius:10px;padding:4px 9px 4px 4px;font-size:12px;}
.wp-chip b{color:var(--gold-br);} .wp-chip i{font-style:normal;font-weight:700;} .wp-chip u{text-decoration:none;font-size:11px;opacity:.8;} .wp-chip u.idle{opacity:.45;}
.wp-mini{width:30px;height:30px;border-radius:6px;object-fit:cover;border:1px solid var(--gold-dk);}
.wp-sel{font-size:12px;background:#2a1c0c;color:var(--gold-br);border:1px solid var(--gold-dk);border-radius:9px;padding:2px 6px;}
.m-line{font-size:13px;opacity:.92;display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.mini-bar{display:inline-block;width:54px;height:7px;background:rgba(0,0,0,.5);border-radius:4px;overflow:hidden;vertical-align:middle;box-shadow:inset 0 1px 2px rgba(0,0,0,.6);}
.mini-bar i{display:block;height:100%;}
.preg{font-size:12px;color:#ffb0c0;}
.post-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px;}
.chip{font-family:var(--serif);cursor:pointer;font-size:12px;color:var(--gold-br);border:1px solid var(--gold-dk);border-radius:8px;padding:3px 9px;
  background:linear-gradient(180deg,#4a2f18,#291a0c);box-shadow:var(--bevel);transition:filter .15s;}
.chip:hover{filter:brightness(1.2);}
.chip.on{background:linear-gradient(180deg,var(--gold-br),var(--gold-dk));color:var(--ink);border-color:var(--gold);}
.chip.danger:hover{background:linear-gradient(180deg,#c5362c,var(--red-deep));color:var(--gold-br);}
.chip.warn:hover{background:linear-gradient(180deg,#b5701f,#6a3d10);color:var(--gold-br);}
/* 招贤馆 bar */
.recruit-bar{display:flex;align-items:center;gap:12px;justify-content:space-between;
  background:linear-gradient(180deg,rgba(74,47,24,.55),rgba(30,18,9,.55));border:1px solid var(--gold-dk);
  border-radius:11px;padding:11px 14px;margin-bottom:12px;box-shadow:var(--bevel);}
.rc-info b{color:var(--gold-br);font-size:15px;display:block;}
.rc-info span{font-size:12px;opacity:.82;line-height:1.5;}
.rc-btn{padding:9px 16px;font-size:15px;white-space:nowrap;}
.rc-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.6);}
/* 招贤抽卡结果 */
.recruit-reveal{text-align:center;}
.rc-face{width:150px;height:190px;margin:6px auto 10px;border-radius:6px;border:2px solid var(--gold);
  object-fit:cover;object-position:top center;box-shadow:var(--shadow);animation:rcpop .45s ease;}
@keyframes rcpop{from{transform:scale(.7) rotate(-3deg);opacity:0;}to{transform:none;opacity:1;}}
.rc-name{font-size:22px;color:var(--red-deep);font-weight:600;}
.rc-name .m-pers{margin-left:8px;font-size:13px;}
.rc-stats{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0 4px;}
.rc-stats span{background:linear-gradient(180deg,rgba(60,40,22,.4),rgba(30,18,9,.4));border:1px solid var(--gold-dk);
  border-radius:8px;padding:5px 11px;font-size:13px;}
.rc-stats b{color:var(--red);}
.rc-tip{font-size:13px;opacity:.78;margin-top:8px;}
/* 快进按钮 */
.act-ff{display:block;width:100%;margin-top:10px;font-family:var(--serif);cursor:pointer;font-size:14px;
  color:var(--gold-br);border:1px dashed var(--gold-dk);border-radius:11px;padding:9px;
  background:linear-gradient(180deg,rgba(46,28,18,.55),rgba(25,13,7,.55));transition:filter .15s;}
.act-ff:hover{filter:brightness(1.25);border-style:solid;}
/* 皇嗣成长立绘（P6 AI 通用图，按成长段切换）*/
.child-face{width:64px;height:80px;flex-shrink:0;object-fit:cover;object-position:top center;
  border:2px solid var(--gold-dk);border-radius:10px;background:radial-gradient(circle at 40% 30%,#4a3416,#2a1c0c);
  box-shadow:var(--bevel);}
.child-face.noface{display:grid;place-items:center;font-size:34px;}
/* 大事件横幅与卡片强调 */
.ev-card.big{border-color:var(--red);box-shadow:0 0 0 1px var(--red-dk),0 10px 30px #c5362c33,var(--shadow);
  animation:bigpulse 1.6s ease-in-out infinite alternate;}
@keyframes bigpulse{from{box-shadow:0 0 0 1px var(--red-dk),0 6px 20px #c5362c22,var(--shadow);}
  to{box-shadow:0 0 0 1px var(--red),0 10px 34px #c5362c55,var(--shadow);}}
.ev-banner{margin:-6px -4px 12px;text-align:center;font-size:14px;letter-spacing:.22em;font-weight:600;
  color:#ffe9c2;padding:7px;border-radius:8px;
  background:linear-gradient(90deg,var(--red-dk),var(--red),var(--red-dk));border:1px solid var(--gold);
  text-shadow:0 1px 3px #000;}
/* 天下一统·喜庆金框（与大事件红框区分） */
.ev-banner.gold{color:#3a2400;background:linear-gradient(90deg,#b8862f,#ffe39a,#b8862f);
  border:1px solid #fff3cf;text-shadow:0 1px 2px #ffe6b0;}
.ev-card.triumph{border-color:var(--gold);
  box-shadow:0 0 0 1px var(--gold-br),0 10px 34px rgba(217,182,95,.4),var(--shadow);
  animation:goldpulse 1.8s ease-in-out infinite alternate;}
@keyframes goldpulse{from{box-shadow:0 0 0 1px var(--gold),0 6px 22px rgba(217,182,95,.28),var(--shadow);}
  to{box-shadow:0 0 0 1px var(--gold-br),0 12px 40px rgba(255,227,154,.6),var(--shadow);}}
/* ============ 准4X 大地图 ============ */
.map-summary{text-align:center;font-size:13px;color:var(--gold-br);padding:2px 0 6px;}
.map-summary b{font-size:16px;}
/* 天下 4X 顶栏 */
.map-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.map-goal{display:flex;align-items:center;gap:8px;font-size:12px;color:#d8b87a;}
.goal-bar{width:120px;height:9px;background:rgba(0,0,0,.45);border-radius:5px;overflow:hidden;border:1px solid var(--gold-dk);}
.goal-bar>i{display:block;height:100%;background:linear-gradient(90deg,#c8732e,#f6dd96);transition:width .4s;}
.map-goal b{color:var(--gold-br);}
.map-turn{font-size:12.5px;color:#d8b87a;display:flex;align-items:center;gap:8px;}
.map-turn b{color:var(--gold-br);font-size:15px;}
.turn-btn{padding:7px 14px;font-size:13px;letter-spacing:.05em;}
/* 军队单位 */
.unit-row{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px;}
.unit-chip{font-size:12px;padding:5px 9px;border-radius:9px;border:1px solid #5a7ab8;background:rgba(42,74,138,.18);
  color:#cfe0ff;cursor:pointer;}
.unit-chip i{font-style:normal;color:#9ab8e8;font-size:11px;margin-left:3px;}
.unit-chip.on{border-color:#f6dd96;background:rgba(217,182,95,.22);color:#fff;box-shadow:0 0 8px rgba(217,182,95,.5);}
.wf-hint{background:rgba(217,182,95,.07);border:1px dashed rgba(154,115,39,.4);border-radius:9px;padding:9px 11px;line-height:1.75;}
/* 夺城闪光 */
.cap-flash{animation:capFlash 1.5s ease-out;}
@keyframes capFlash{0%{stroke-opacity:1;}100%{stroke-opacity:0;}}
/* 城池营建 */
.build-toggle{width:100%;margin:8px 0 0;font-family:var(--serif);font-size:13px;cursor:pointer;
  color:var(--gold-br);background:linear-gradient(180deg,rgba(217,182,95,.12),rgba(217,182,95,.04));
  border:1px solid var(--gold-dk);border-radius:9px;padding:7px 11px;text-align:left;letter-spacing:.04em;}
.build-toggle:hover{border-color:var(--gold);}
.build-q{display:flex;flex-direction:column;gap:4px;margin:7px 0;}
.bq-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#d8b87a;}
.bq-item b{flex-shrink:0;min-width:62px;}
.bq-bar{flex:1;height:7px;background:rgba(0,0,0,.4);border-radius:4px;overflow:hidden;border:1px solid var(--gold-dk);}
.bq-bar>u{display:block;height:100%;background:linear-gradient(90deg,#c8732e,#f6dd96);}
.bq-item button{background:none;border:none;color:#c0563a;cursor:pointer;font-size:13px;}
.build-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:5px;margin:7px 0;}
.bld{font-size:11.5px;padding:5px 6px;border-radius:8px;border:1px solid var(--gold-dk);background:rgba(217,182,95,.06);
  color:var(--paper);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;}
.bld i{font-style:normal;color:#c8a866;font-size:10px;}
.bld:hover{border-color:var(--gold);} .bld.full{opacity:.45;}
/* 国策科技树 */
.techtree{color:var(--ink);} .tt-h{text-align:center;color:var(--red-deep);font-size:20px;letter-spacing:.2em;margin:0 0 6px;}
.tt-cur{text-align:center;font-size:12.5px;color:#6a4a2a;margin-bottom:10px;}.tt-cur b{color:var(--red-deep);}
.tt-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.tt-node{text-align:left;padding:8px 10px;border-radius:9px;border:1.5px solid var(--gold-dk);background:rgba(217,182,95,.06);
  cursor:pointer;display:flex;flex-direction:column;gap:1px;color:var(--ink);position:relative;}
.tt-node b{font-size:13.5px;}.tt-node span{font-size:11px;color:#6a4a2a;}.tt-node i{font-size:10px;color:#9a7327;font-style:italic;}
.tt-node em{position:absolute;top:8px;right:9px;font-size:10px;color:#9a7327;font-style:normal;}
.tt-node.done{border-color:#3f8f4f;background:rgba(63,143,79,.12);}
.tt-node.cur{border-color:var(--gold-br);box-shadow:0 0 8px rgba(217,182,95,.5);}
.tt-node.avail{border-color:#5a9fe0;}
.tt-node.lock{opacity:.5;cursor:not-allowed;}
.worldmap{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--gold-dk);
  box-shadow:var(--bevel);touch-action:manipulation;}
/* 宽桌面：天下面板加宽，舆图不再偏小（移动端 width:100% 不受影响）*/
.panel:has(.worldmap){max-width:880px;}
.worldmap .rg:hover rect{filter:brightness(1.15);}
.worldmap .rg:active{transform:scale(.98);transform-origin:center;}
.region-card{margin-top:12px;border:1px solid var(--gold-dk);border-radius:11px;padding:11px 13px;
  background:linear-gradient(180deg,rgba(60,40,22,.45),rgba(30,18,9,.45));box-shadow:var(--bevel);}
.region-card .m-head{margin-bottom:5px;}
.region-card .m-line{font-size:13px;opacity:.9;margin:3px 0;}
.region-card .post-row{margin-top:9px;flex-wrap:wrap;}
.army-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.army-grid div{background:linear-gradient(180deg,rgba(60,40,22,.5),rgba(30,18,9,.5));border:1px solid var(--gold-dk);border-radius:9px;padding:9px 11px;font-size:14px;box-shadow:var(--bevel);}
.army-grid b{font-size:18px;}
.log-list{display:flex;flex-direction:column;gap:6px;}
.log-item{font-size:13px;opacity:.86;border-bottom:1px dotted var(--gold-dk);padding-bottom:5px;line-height:1.5;}

/* ============ 弹窗 / 飘字 ============ */
.modal{position:absolute;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:20px;
  background:rgba(8,3,2,.74);backdrop-filter:blur(3px);}
.modal.open{display:flex;}
.modal-box{position:relative;width:100%;max-width:460px;max-height:84dvh;overflow-y:auto;color:var(--ink);border:2px solid var(--gold);border-radius:16px;padding:26px 24px;
  background:linear-gradient(180deg,var(--paper),var(--paper-2)),var(--grain);background-blend-mode:multiply;box-shadow:var(--shadow);}
.modal-close{position:absolute;top:10px;right:12px;background:none;border:none;cursor:pointer;font-size:20px;color:var(--red-deep);}
.modal-box h2{color:var(--red-deep);text-align:center;font-size:24px;margin-bottom:12px;}
.modal-box h3{color:var(--red);margin:14px 0 6px;font-size:17px;}
.modal-box p{line-height:1.8;font-size:15px;margin-bottom:8px;}

.toast{position:absolute;left:50%;bottom:92px;transform:translateX(-50%) translateY(20px);z-index:60;
  background:linear-gradient(180deg,rgba(46,28,18,.97),rgba(20,8,5,.97));color:var(--gold-br);border:1px solid var(--gold);border-radius:12px;
  padding:11px 22px;font-size:15px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:90%;text-align:center;box-shadow:var(--shadow);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ============ 结局 ============ */
#screen-end{align-items:center;justify-content:center;
  background:linear-gradient(rgba(18,6,4,.86),rgba(10,4,2,.95)),url("../assets/ui/throne.jpg") center/cover;}
.end-inner{text-align:center;padding:32px;max-width:480px;animation:deal .6s;position:relative;z-index:1;}
.end-seal{width:88px;height:88px;margin:0 auto 18px;display:grid;place-items:center;font-size:50px;color:var(--paper);
  background:radial-gradient(circle at 35% 30%,#555,#1c1c1c);border:3px solid var(--gold);border-radius:14px;transform:rotate(-4deg);box-shadow:var(--shadow),var(--bevel);}
.end-temple{color:var(--gold);font-size:17px;letter-spacing:.2em;opacity:.88;margin-bottom:4px;}
.end-title{font-size:34px;margin-bottom:16px;background:linear-gradient(180deg,var(--gold-br),var(--gold-dk));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5));}
.end-desc{font-size:16px;line-height:1.85;opacity:.94;margin-bottom:24px;}
.end-stats{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:26px;font-size:14px;}
.end-stats b{color:var(--gold-br);font-size:22px;display:block;}

/* ============ 可操作战斗界面（Phase 5） ============ */
.battle{display:flex;flex-direction:column;gap:14px;}
.bt-title{text-align:center;font-size:22px;color:var(--gold-br);letter-spacing:.3em;
  filter:drop-shadow(0 1px 0 var(--red-dk));margin:0;}
.bt-bars{display:flex;flex-direction:column;gap:10px;}
.bt-side{display:flex;flex-direction:column;gap:4px;}
.bt-lab{display:flex;justify-content:space-between;font-size:13px;color:var(--gold-br);}
.bt-lab b{font-size:16px;}
.bt-bar{height:16px;border:1.5px solid var(--gold-dk);border-radius:9px;overflow:hidden;
  background:rgba(0,0,0,.4);box-shadow:var(--bevel);}
.bt-bar i{display:block;height:100%;border-radius:8px;transition:width .45s cubic-bezier(.3,.8,.4,1);}
.bt-bar.ours  i{background:linear-gradient(90deg,#4f8f5e,#6cc07f);}
.bt-bar.enemy i{background:linear-gradient(90deg,#8a2820,#c0563a);}
.bt-actions{min-height:96px;display:flex;flex-direction:column;justify-content:center;gap:10px;}
.bt-scout{text-align:center;font-size:13px;color:var(--gold-br);padding:6px 8px;margin-bottom:2px;
  border:1px dashed rgba(217,182,95,.4);border-radius:8px;background:rgba(0,0,0,.22);}
.bt-scout em{font-size:11px;opacity:.7;font-style:normal;}
.bt-tip{text-align:center;font-size:12.5px;color:var(--paper-2);opacity:.85;}
.bt-tactics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.bt-tac{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;cursor:pointer;
  font-family:var(--serif);color:var(--paper);border:1.5px solid var(--gold-dk);border-radius:10px;
  background:linear-gradient(180deg,rgba(70,40,22,.85),rgba(40,22,12,.9));box-shadow:var(--bevel);transition:.15s;}
.bt-tac:hover{border-color:var(--gold-br);transform:translateY(-2px);box-shadow:var(--shadow);}
.bt-tac i{font-size:22px;line-height:1;}
.bt-tac b{font-size:14px;color:var(--gold-br);}
.bt-tac u{font-size:10px;text-decoration:none;opacity:.7;}
.bt-end{text-align:center;font-size:26px;letter-spacing:.4em;font-weight:600;}
.bt-end.win{color:var(--gold-br);filter:drop-shadow(0 0 12px rgba(217,182,95,.5));}
.bt-end.lose{color:#c0563a;}
.bt-go{width:100%;}
.bt-log{max-height:148px;overflow-y:auto;display:flex;flex-direction:column;gap:5px;
  padding:10px;border:1px solid var(--gold-dk);border-radius:9px;background:rgba(0,0,0,.28);}
.bt-log-item{font-size:12.5px;line-height:1.5;color:var(--paper-2);
  padding-bottom:5px;border-bottom:1px dashed rgba(217,182,95,.18);}
.bt-log-item:last-child{border-bottom:none;}
.bt-log-item.fresh{color:var(--gold-br);}

/* ============ 后宫攻略系统（P9） ============ */
.harem-sec{color:var(--gold-br);font-size:15px;margin:16px 0 8px;padding-bottom:5px;
  border-bottom:1px solid rgba(217,182,95,.28);letter-spacing:.08em;}
.harem-sec:first-child{margin-top:0;}
.m-origin{font-size:11px;padding:1px 7px;border:1px solid currentColor;border-radius:8px;opacity:.9;}
.m-woo{font-size:11px;color:#e0709a;}
.m-trait{font-size:11px;color:var(--gold-br);}
.woo-desc{font-size:11.5px;color:var(--paper-2);opacity:.82;}
.m-card.woo{border-color:rgba(224,112,154,.45);}
.woo-btn{border-color:#b65a7e !important;}
.woo-btn:hover{background:rgba(224,112,154,.18);}
.woo-block{font-size:11.5px;color:#c0563a;margin:4px 0 0;}
.m-card.locked{opacity:.6;filter:grayscale(.5);}
.m-face.silh{display:grid;place-items:center;font-size:30px;color:#5a4a3a;
  background:repeating-linear-gradient(135deg,#2a1d12,#2a1d12 6px,#241810 6px,#241810 12px);}
.lock-cond{font-size:11.5px;color:#b89a6a;}

/* ============ 大业系统（P10 批1：任务/成就/图鉴/称号） ============ */
.month-quest{margin:8px 0 0;padding:7px 10px;border-left:3px solid var(--gold);
  background:rgba(217,182,95,.08);font-size:13px;color:var(--paper);border-radius:0 6px 6px 0;}
.q-tabs{display:flex;gap:6px;margin-bottom:12px;}
.q-tab{flex:1;padding:8px 4px;font-family:var(--serif);font-size:14px;cursor:pointer;color:var(--paper-2);
  background:rgba(0,0,0,.25);border:1px solid var(--gold-dk);border-radius:8px;}
.q-tab.on{background:linear-gradient(180deg,var(--gold),var(--gold-dk));color:var(--ink);font-weight:600;}
.q-card{border:1px solid var(--gold-dk);border-radius:10px;padding:10px 12px;margin-bottom:9px;
  background:linear-gradient(180deg,rgba(60,38,20,.5),rgba(36,22,12,.6));}
.q-card.cur{border-color:var(--gold-br);box-shadow:0 0 0 1px rgba(217,182,95,.25);}
.q-card.done{opacity:.72;}
.q-card.locked{opacity:.55;filter:grayscale(.4);}
.q-h{display:flex;justify-content:space-between;align-items:center;}
.q-h b{color:var(--gold-br);font-size:15px;}
.q-step{font-size:12px;color:var(--paper-2);}
.q-ok{font-size:12px;color:#6cc07f;}
.q-title{font-size:11px;color:#e0b24a;border:1px solid #e0b24a;border-radius:7px;padding:1px 6px;}
.q-desc{font-size:12.5px;color:var(--paper);opacity:.9;margin:5px 0;line-height:1.5;}
.q-rw{font-size:11.5px;color:#d9b65f;}
.q-pbar{margin:5px 0;}
.q-done-list{font-size:11px;color:#8a7a5a;margin:2px 0 4px;line-height:1.8;}
.q-done-list span{margin-right:8px;}
.codex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px;}
.cdx{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--paper-2);}
.cdx img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:7px;border:1px solid var(--gold-dk);}
.cdx.locked{opacity:.6;}
.cdx-silh{width:100%;aspect-ratio:3/4;display:grid;place-items:center;font-size:22px;color:#5a4a3a;border-radius:7px;
  background:repeating-linear-gradient(135deg,#2a1d12,#2a1d12 6px,#241810 6px,#241810 12px);border:1px solid #4a3a2a;}
.title-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;}

/* ============ 养成：武将等级 / 帝王天赋（P10 批3） ============ */
.m-lv{margin-left:6px;color:var(--gold-br);font-size:11px;border:1px solid var(--gold-dk);border-radius:6px;padding:0 5px;}
.m-exp{margin-left:5px;color:#8aa;font-size:10.5px;}
.chip.gold{border-color:var(--gold-br);color:var(--gold-br);}
.talent-btn{width:100%;margin-top:12px;font-size:14px;letter-spacing:.08em;padding:8px;border-radius:10px;}
.tp-badge{display:inline-block;min-width:16px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-style:normal;}
/* 天赋弹窗：加宽 + 三系并排成列 → 不再竖向溢出；并隐藏其滚动条 */
.modal-box:has(.talent-tree){max-width:680px;scrollbar-width:none;-ms-overflow-style:none;}
.modal-box:has(.talent-tree)::-webkit-scrollbar{display:none;}
.talent-tree{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:start;}
.talent-tree h2{text-align:center;color:var(--red-deep);grid-column:1/-1;margin:4px 0 2px;}
.talent-tree .tp{font-size:13px;color:var(--gold-dk);}
.talent-tree .panel-tip{grid-column:1/-1;margin:4px 0 0;}
.tl-branch{margin:0;border:1px solid var(--gold-dk);border-radius:10px;padding:9px;background:rgba(217,182,95,.05);}
.tl-bh{color:var(--red);font-size:15px;font-weight:600;margin-bottom:8px;border-bottom:1px solid rgba(179,38,30,.2);padding-bottom:4px;}
.tl-node{padding:6px 0;border-bottom:1px dashed rgba(154,115,39,.2);}
.tl-node:last-child{border-bottom:none;}
.tl-node.on{opacity:1;}
.tl-node.lock{opacity:.5;}
.tl-n{display:flex;justify-content:space-between;align-items:center;gap:5px;}
.tl-n b{color:var(--ink);font-size:13.5px;}
.tl-n .chip{flex-shrink:0;white-space:nowrap;}
.tl-ok{color:#4a8f5e;font-size:12px;white-space:nowrap;}
.tl-d{font-size:11.5px;color:#6a4a2a;margin-top:3px;line-height:1.45;}
.tl-req{color:#b3261e;}
@media (max-width:760px){
  .talent-tree{grid-template-columns:1fr;}   /* 窄屏单列；滚动条已隐藏 */
}
/* 武器强化标签 + 强化按钮 */
.wp-lv{color:#e0b94a;font-size:10px;font-style:normal;margin-left:2px;}
.wp-forge{margin-left:4px;font-size:10px;padding:1px 6px;border-radius:7px;cursor:pointer;
  border:1px solid var(--gold-dk);background:rgba(217,182,95,.12);color:var(--gold-br);}
.wp-forge.off{opacity:.4;cursor:default;}
.wp-forge:not(.off):hover{background:rgba(217,182,95,.28);}
/* 朝堂羁绊 */
.bonds{margin:8px 0 4px;padding:8px 10px;border:1px solid var(--gold-dk);border-radius:10px;background:rgba(179,38,30,.04);}
.bonds-h{font-size:13px;color:var(--red);font-weight:600;margin-bottom:6px;}
.bonds-h span{font-size:11px;color:#8a6a3a;font-weight:400;margin-left:6px;}
.bond{display:inline-block;margin:3px 5px 3px 0;padding:2px 9px;border-radius:9px;font-size:12px;
  border:1px dashed rgba(154,115,39,.4);color:#8a6a3a;background:rgba(0,0,0,.04);}
.bond.on{border-style:solid;border-color:var(--gold-br);color:var(--gold-br);background:rgba(217,182,95,.14);font-weight:600;}

/* ============ 存档管理 / 菜单 ============ */
.ar-sub{font-size:13px;color:var(--gold-dk);font-weight:400;}
.slots{display:flex;flex-direction:column;gap:9px;margin:6px 0 4px;}
.slot{display:flex;align-items:center;gap:11px;padding:9px 11px;border:1px solid var(--gold-dk);border-radius:11px;background:rgba(217,182,95,.05);}
.slot.empty{opacity:.72;border-style:dashed;}
.slot-no{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--red-deep);color:var(--gold-br);font-weight:600;border:1px solid var(--gold-dk);font-size:14px;}
.slot-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0;}
.slot-info b{color:var(--ink);font-size:14px;}
.slot-info span{font-size:12px;color:#6a4a2a;}
.slot-info i{font-size:11px;color:#9a8050;font-style:normal;}
.slot-none{color:#9a8050;font-size:13px;}
.slot-btns{display:flex;gap:5px;flex-shrink:0;}
.menu-list{display:flex;flex-direction:column;gap:9px;margin:8px 0;}
.menu-list .btn{width:100%;font-size:15px;padding:11px;border-radius:11px;}
.btn.ghost{background:transparent;border:1px solid var(--gold-dk);color:var(--gold-dk);}

/* ============ 军务·点将出征 ============ */
.muster{display:flex;flex-direction:column;gap:7px;margin:8px 0;}
.mus-card{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--gold-dk);border-radius:11px;
  background:rgba(217,182,95,.05);cursor:pointer;text-align:left;color:var(--paper);}
.mus-card.on{border-color:var(--gold-br);background:rgba(217,182,95,.16);box-shadow:0 0 0 1px var(--gold-br) inset;}
.mus-face{width:42px;height:42px;border-radius:8px;object-fit:cover;flex-shrink:0;border:1px solid var(--gold-dk);}
.mus-info{flex:1;display:flex;flex-direction:column;min-width:0;}
.mus-info b{color:#f3e3b8;font-size:14px;}
.mus-info i{font-size:12px;color:#c8a866;font-style:normal;}
.mus-chk{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--gold-dk);color:var(--gold-br);font-size:15px;}
.mus-emp{display:flex;align-items:center;gap:8px;font-size:13px;color:#d8b87a;margin:4px 2px 10px;cursor:pointer;}
.mus-go{width:100%;font-size:16px;letter-spacing:.1em;padding:11px;}
.mus-go:disabled{opacity:.45;}

/* ============ 沙盘会战（warfield 战棋）============ */
.modal-box:has(.warfield){max-width:500px;}
.warfield{color:var(--ink);}
.wf-h{text-align:center;color:var(--red-deep);font-size:21px;margin:0 0 8px;}
.wf-vs{display:block;font-size:12px;color:#8a6a3a;font-weight:400;letter-spacing:.05em;margin-top:2px;}
.wf-grid{display:grid;gap:3px;margin:6px auto 10px;width:100%;max-width:440px;}
.wf-cell{position:relative;aspect-ratio:1/1;border-radius:6px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(120,90,50,.35);background:#cdb98a;cursor:pointer;overflow:hidden;}
.wf-cell.t-hill{background:#c2a36a;}
.wf-cell.t-wood{background:#9fb077;}
.wf-cell.t-water{background:#8fb6c9;cursor:not-allowed;}
.wf-cell.zone-our{box-shadow:inset 0 0 0 2px rgba(90,160,106,.4);}
.wf-cell.zone-foe{box-shadow:inset 0 0 0 2px rgba(192,86,58,.35);}
.wf-cell.wf-move{outline:2px solid #4a8fd6;outline-offset:-2px;background-image:radial-gradient(rgba(74,143,214,.35),rgba(74,143,214,.1));}
.wf-cell.wf-atk{outline:2px solid #d6443a;outline-offset:-2px;background-image:radial-gradient(rgba(214,68,58,.4),rgba(214,68,58,.12));}
.wf-cell.wf-sel{outline:3px solid var(--gold-br);outline-offset:-3px;}
.wf-terr{position:absolute;font-size:13px;opacity:.5;right:2px;bottom:0;}
/* 沙盘单位：头像作标识（类型小角标 + 底部 HP 条）*/
.wf-unit{position:relative;z-index:1;width:94%;height:94%;border-radius:6px;overflow:hidden;cursor:pointer;}
.wf-unit.u-our{background:linear-gradient(160deg,#3a6a44,#244a2c);border:1px solid #7ad095;}
.wf-unit.u-foe{background:linear-gradient(160deg,#7e2c22,#4a1812);border:1px solid #e0846c;}
.wf-unit.lead{box-shadow:0 0 0 2px var(--gold-br),0 0 8px rgba(217,182,95,.6);}
.wf-unit.acted{filter:grayscale(.7) brightness(.7);}
.wf-face{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;}
.wf-glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;}
.wf-badge{position:absolute;top:0;left:0;z-index:2;font-size:9px;line-height:1.2;padding:1px 3px;font-style:normal;
  background:rgba(0,0,0,.58);color:#ffe9c2;border-bottom-right-radius:5px;}
.u-foe .wf-badge{color:#ffd9cc;}
.wf-crown{position:absolute;top:0;right:0;z-index:2;font-size:9px;line-height:1.2;padding:1px 3px;font-style:normal;
  background:var(--gold);color:#3a2400;font-weight:700;border-bottom-left-radius:5px;}
.wf-legend{font-size:11px;line-height:1.6;color:var(--gold-br);background:rgba(217,182,95,.08);
  border:1px dashed rgba(154,115,39,.4);border-radius:8px;padding:5px 8px;margin:5px 0;}
.wf-legend b{color:#ffd96a;}
.wf-reason{font-size:14px;color:var(--gold-br);margin-left:6px;}
.wf-hp{position:absolute;left:0;right:0;bottom:0;z-index:2;display:block;width:100%;height:4px;background:rgba(0,0,0,.55);}
.wf-hp>u{display:block;height:100%;background:#9be88a;}
.u-foe .wf-hp>u{background:#f0a08a;}
/* 储能条（HP 条上方）*/
.wf-nrg{position:absolute;left:0;right:0;bottom:4px;z-index:2;display:block;width:100%;height:3px;background:rgba(0,0,0,.5);}
.wf-nrg>u{display:block;height:100%;background:#7fd0ff;}
.wf-unit.ready{box-shadow:0 0 0 2px #9be3ff,0 0 9px rgba(127,208,255,.85);}
.wf-unit.ready .wf-nrg>u{background:#bfe9ff;}
/* 技能可选格高亮（紫）*/
.wf-cell.wf-skillcell{outline:2px dashed #b98cf0;outline-offset:-2px;background-image:radial-gradient(rgba(185,140,240,.4),rgba(185,140,240,.12));}
/* 攻击特效：飘动伤害/治疗数字 */
.wf-fx{position:absolute;left:50%;top:30%;z-index:5;transform:translateX(-50%);pointer-events:none;
  font-weight:800;font-size:15px;text-shadow:0 1px 3px #000,0 0 5px #000;animation:wfFloat .9s ease-out forwards;white-space:nowrap;}
.wf-fx.hit{color:#ffd9c8;} .wf-fx.crit{color:#ffd24a;font-size:18px;}
.wf-fx.heal{color:#9be88a;} .wf-fx.skill{color:#d6b3ff;font-size:13px;}
@keyframes wfFloat{0%{opacity:0;transform:translate(-50%,6px) scale(.7);}25%{opacity:1;transform:translate(-50%,-2px) scale(1.1);}100%{opacity:0;transform:translate(-50%,-22px) scale(1);}}
/* 选中单位属性卡 */
.wf-stat{text-align:left;font-size:12px;color:var(--ink);line-height:1.5;}
.wf-stat>b{font-size:13px;} .wf-stat em{font-style:normal;color:#a8741e;font-weight:700;}
.wf-stat-row{display:block;font-size:11.5px;color:#5a4326;}
.wf-stat-skill{display:block;font-size:11.5px;color:#7a4ea0;}
.wf-act-hint{font-size:11.5px;color:var(--gold-br);margin-top:2px;}
.chip.skill{border-color:#b98cf0;color:#dcc6ff;background:rgba(185,140,240,.14);}
.chip.skill.on{background:rgba(185,140,240,.4);color:#fff;box-shadow:0 0 8px rgba(185,140,240,.6);}
/* 和亲/分封 选择弹窗 + 外戚标 */
.dip-row{display:flex;flex-direction:column;gap:6px;padding:10px 4px;border-bottom:1px solid rgba(180,140,70,.18);}
.dip-who{font-size:13px;color:var(--ink);} .dip-who>b{font-size:14px;}
.dip-opts{display:flex;flex-wrap:wrap;gap:6px;}
.chip.dip{border-color:#a06f33;color:#5e3712;background:rgba(150,95,40,.18);font-weight:600;}
.chip.dip:hover{background:rgba(150,95,40,.34);}
.m-waiqi{font-size:10.5px;padding:0 5px;border-radius:7px;color:#9a3a64;border:1px solid #c47894;background:rgba(196,120,148,.18);margin-left:4px;}
/* 朝局势力图（党争）——弹窗为米色宣纸底，故用深字浅卡 */
.fac-bar.alert{box-shadow:0 0 0 1px #c46,0 0 10px rgba(204,68,102,.4);}
.fac-grid{display:flex;flex-direction:column;gap:8px;margin:6px 0;}
.fac-card{border:1px solid #b09a6a;border-radius:9px;padding:8px 10px;background:rgba(95,68,34,.12);}
.fac-head{display:flex;align-items:center;gap:8px;}
.fac-head>b{font-size:14px;} .fac-pow{font-size:11.5px;color:#8a6320;margin-left:auto;font-weight:600;}
.fac-peril{font-size:11px;color:#fff;background:#b04848;border-radius:6px;padding:0 6px;}
.fac-meta{font-size:11px;color:#6e5836;margin:3px 0 5px;}
.fac-mems{display:flex;flex-wrap:wrap;gap:5px;}
.fac-mem{font-size:11.5px;color:#3a2410;background:rgba(60,40,18,.1);border:1px solid rgba(120,90,50,.25);border-radius:6px;padding:2px 6px;display:inline-flex;align-items:center;gap:4px;}
.fac-post{font-style:normal;color:#9a6f24;font-size:10px;} .fac-wq{font-style:normal;color:#a8437a;font-size:10px;}
.fac-mem>u{text-decoration:none;color:#7a6238;font-size:10px;}
.fac-tens{margin-top:8px;border-top:1px solid rgba(120,90,50,.3);padding-top:7px;}
.fac-tens>b{display:block;font-size:12px;color:#a0561f;margin-bottom:5px;}
.fac-t{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;margin:0 8px 5px 0;color:#3a2410;}
.fac-t>em{font-style:normal;} .fac-t.feud>em{color:#c23a3a;} .fac-t.rival>em{color:#b07a1a;}
/* 存档码导出/导入——深底浅字，明确是「码框」而非空白框 */
.ar-code{display:flex;gap:8px;justify-content:center;margin:8px 0 2px;}
.code-box{width:100%;min-height:96px;margin:6px 0;box-sizing:border-box;resize:vertical;
  font-family:monospace;font-size:11px;line-height:1.4;word-break:break-all;
  background:#241810;color:#e8d6a8;border:1px solid #8a6a3a;border-radius:8px;padding:8px;}
.code-box::placeholder{color:#9a865a;}
/* 弹窗（米色宣纸底）内的提示语：原 .panel-tip 是浅金，在米底上发白看不清 → 改深褐 */
.modal-box .panel-tip{color:#6e4a1e;opacity:.95;}
/* 米底弹窗内的加粗（全局 b 是浅金，在米底发白）→ 深金棕（仅文字类弹窗·避开沙盘战棋深底） */
.modal-box .panel-tip b,.modal-box .dip-row b,.modal-box .dip-who b,.fac-card b,.guide .g-body b{color:#9a5708;}
/* 招贤/选秀揭示卡的属性药丸：原深叠底+浅字在米底发灰 → 浅暖底+深字 */
.rc-stats span{background:rgba(112,82,44,.16)!important;color:#3a2410;border-color:#b09060!important;}
.rc-tip{color:#6e4a1e;}
/* 菜单内的次级按钮：原 .btn 无底色，在米底弹窗里成白框 → 给描边底 */
.menu-list .btn:not(.btn-primary){background:linear-gradient(180deg,rgba(90,60,28,.08),rgba(90,60,28,.16));border:1px solid var(--gold-dk);color:#5a3a14;}
/* 新手引导浮层 */
.guide{text-align:center;}
.guide .g-step{font-size:11px;color:#a8895a;letter-spacing:.1em;margin-bottom:2px;}
.guide h2{margin:2px 0 8px;}
.g-body{text-align:left;font-size:13px;line-height:1.85;color:var(--ink);background:rgba(0,0,0,.16);border-radius:9px;padding:11px 13px;}
.g-dots{display:flex;gap:7px;justify-content:center;margin:12px 0;}
.g-dot{width:8px;height:8px;border-radius:50%;background:rgba(180,150,90,.3);transition:.2s;}
.g-dot.on{background:var(--gold-br);transform:scale(1.25);}
.g-btns{display:flex;gap:10px;justify-content:center;align-items:center;}
.wf-ctrl{text-align:center;margin:4px 0;}
.wf-tip{font-size:12.5px;color:#6a4a2a;margin-bottom:6px;line-height:1.5;}
.wf-btns{display:flex;gap:8px;justify-content:center;}
.wf-go{width:100%;font-size:16px;letter-spacing:.12em;padding:10px;margin-top:4px;}
.wf-result{font-size:22px;text-align:center;letter-spacing:.2em;margin:6px 0;font-weight:600;}
.wf-result.win{color:#3f8f4f;}
.wf-result.lose{color:var(--red-deep);}
.wf-log{max-height:96px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;margin-top:8px;
  border-top:1px dashed rgba(154,115,39,.3);padding-top:7px;}
.wf-log-item{font-size:11.5px;color:#6a4a2a;line-height:1.4;}
.wf-log-item.fresh{color:var(--red-deep);font-weight:600;}

.build-stamp{text-align:center;font-size:10px;color:rgba(217,182,95,.4);letter-spacing:.1em;margin:6px 0 0;}

/* ============ 人物身份/关系 查看 ============ */
.m-title{font-size:11px;color:#c8a866;margin-left:4px;}
.m-view{margin-left:auto;background:transparent;border:none;cursor:pointer;font-size:15px;
  padding:0 2px;opacity:.8;line-height:1;}
.m-view:hover{opacity:1;transform:scale(1.15);}
.charv{color:var(--ink);}
.ch-top{display:flex;gap:14px;align-items:flex-start;margin-bottom:6px;}
.ch-face{width:96px;height:120px;border-radius:8px;object-fit:cover;flex-shrink:0;
  border:1px solid var(--gold-dk);box-shadow:var(--shadow);}
.ch-id{flex:1;min-width:0;}
.ch-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.ch-name b{font-size:22px;color:var(--red-deep);}
.ch-title{font-size:13px;color:#8a6a3a;}
.ch-tags{font-size:12.5px;color:#6a4a2a;margin:6px 0;}
.ch-pers{color:var(--red);}
.ch-stat{font-size:12.5px;color:#5a3a1a;line-height:1.7;}
.ch-stat b{color:var(--ink);}
.ch-sec-h{font-size:13px;color:var(--gold-dk);font-weight:600;letter-spacing:.15em;
  border-bottom:1px dashed rgba(154,115,39,.4);padding-bottom:3px;margin:12px 0 7px;}
.ch-story{font-size:13.5px;line-height:1.85;color:#3a2410;text-indent:2em;margin:0;
  background:rgba(217,182,95,.06);padding:9px 11px;border-radius:8px;}
.ch-rels{display:flex;flex-direction:column;gap:6px;}
.ch-rel{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12.5px;
  padding:6px 9px;border-radius:8px;background:rgba(120,90,50,.06);border-left:3px solid #b9a06a;}
.ch-rel.r-cabal{border-left-color:#8a3a8a;}
.ch-rel.r-rival,.ch-rel.r-feud{border-left-color:var(--red);}
.ch-rel.r-mentor,.ch-rel.r-ally{border-left-color:#3f8f4f;}
.ch-rel.r-kin,.ch-rel.r-marry{border-left-color:#d08a2a;}
.ch-rt{font-weight:600;color:#5a3a1a;white-space:nowrap;}
.ch-ro{color:var(--ink);}
.ch-st{font-size:10.5px;margin-left:5px;padding:1px 6px;border-radius:8px;vertical-align:middle;}
.ch-st.st-in{background:#cfe6cf;color:#2f6f3f;}
.ch-st.st-out{background:#e6cfcf;color:#8f2f2f;}
.ch-st.st-un{background:#e0d6bc;color:#7a6030;}
.ch-rn{color:#8a6a3a;font-style:italic;margin-left:auto;}
.ch-rel-none{font-size:12.5px;color:#8a6a3a;font-style:italic;}

/* ============ 问罪 ============ */
.post-row .chg{font-style:normal;background:var(--red);color:#ffe;border-radius:7px;padding:0 5px;font-size:10px;margin-left:2px;}
.impeach{color:var(--ink);}
.imp-h{text-align:center;color:var(--red-deep);font-size:20px;letter-spacing:.3em;margin:0 0 10px;}
.imp-who{display:flex;gap:12px;align-items:center;margin-bottom:8px;}
.imp-face{width:60px;height:74px;border-radius:7px;object-fit:cover;border:1px solid var(--gold-dk);}
.imp-name b{font-size:18px;color:var(--ink);}
.imp-name span{font-size:12px;color:#8a6a3a;margin-left:6px;}
.imp-loy{font-size:12px;color:#6a4a2a;margin-top:4px;}
.imp-sec{font-size:13px;color:var(--gold-dk);font-weight:600;letter-spacing:.15em;border-bottom:1px dashed rgba(154,115,39,.4);padding-bottom:3px;margin:10px 0 7px;}
.imp-charges{display:flex;flex-direction:column;gap:5px;}
.imp-charge{font-size:13px;padding:6px 10px;border-radius:7px;background:rgba(179,38,30,.08);border-left:3px solid var(--red);color:var(--red-deep);}
.imp-charge.sev3{background:rgba(111,21,15,.14);font-weight:600;}
.imp-tip{font-size:12.5px;color:#5a3a1a;line-height:1.7;margin:8px 0;}
.imp-tip.warn-tip{color:#7a3a1a;background:rgba(217,182,95,.08);padding:9px 11px;border-radius:8px;}
.imp-acts{display:flex;gap:8px;margin-top:10px;}
.imp-acts .btn{flex:1;padding:10px;font-size:14px;}
.danger-btn{background:linear-gradient(180deg,#b3261e,#6f150f)!important;border-color:#6f150f!important;}
.imp-note{font-size:11px;color:#9a8a6a;margin-top:8px;text-align:center;}

/* ============ 密谍司 ============ */
/* 密谍司面板较长——隐藏滚动条（仍可滚） */
.modal-box:has(.spy){scrollbar-width:none;-ms-overflow-style:none;}
.modal-box:has(.spy)::-webkit-scrollbar{display:none;}
.spy-bar.alert{border-color:var(--red)!important;box-shadow:0 0 0 1px var(--red),0 0 12px rgba(179,38,30,.4);}
.spy{color:var(--ink);}
.spy-h{text-align:center;color:#3a2a4a;font-size:20px;letter-spacing:.2em;margin:0 0 8px;}
.spy-tip{font-size:12.5px;color:#6a4a2a;line-height:1.6;margin:6px 0;}
.spy-tip.dim{color:#9a8a6a;}
.spy-go{width:100%;font-size:15px;padding:11px;margin:6px 0;}
.spy-stat{display:flex;gap:14px;justify-content:center;font-size:13px;color:#4a3a2a;margin:4px 0 8px;flex-wrap:wrap;}
.spy-stat b{color:var(--ink);}
.spy-boss{color:#7a4a8a;font-size:11px;margin-left:3px;}
.spy-list{display:flex;flex-direction:column;gap:5px;margin-top:8px;}
.spy-row{padding:7px 9px;border-radius:8px;background:rgba(80,60,90,.06);border-left:3px solid #b9a06a;}
.spy-row.on{border-left-color:#7a4a8a;background:rgba(122,74,138,.1);}
.spy-who{display:flex;align-items:baseline;gap:7px;}
.spy-who b{color:var(--ink);font-size:14px;}
.spy-title{font-size:11px;color:#8a6a3a;}
.spy-intel{font-size:12px;color:#5a3a1a;margin:3px 0;line-height:1.6;}
.sp-bad{color:var(--red-deep);}
.sp-ok{color:#3f8f4f;}
.dim{color:#9a8a6a;}
.sp-tag{display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:7px;margin-left:4px;}
.sp-tag.bad{background:#e6cccc;color:#8f2f2f;}
.sp-tag.warn{background:#e8ddc4;color:#8a6020;}
.spy-ops{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px;}
/* 密报弹窗 */
.spyreport{color:var(--ink);text-align:center;}
.spr-seal{width:46px;height:46px;margin:0 auto 4px;border-radius:10px;display:grid;place-items:center;font-size:26px;
  color:#e8d9b0;background:radial-gradient(circle at 35% 30%,#5a3a6a,#2a1a3a);border:2px solid var(--gold-dk);transform:rotate(-3deg);}
.spr-h{font-size:19px;letter-spacing:.25em;color:#3a2a4a;margin:6px 0 2px;}
.spr-sub{font-size:11.5px;color:#8a6a3a;margin-bottom:8px;}
.spr-alert{background:var(--red-deep);color:#ffe;font-size:13px;padding:6px;border-radius:8px;margin:6px 0;letter-spacing:.1em;}
.spr-quiet{font-size:13px;color:#6a5a4a;font-style:italic;padding:10px;}
.spr-items{display:flex;flex-direction:column;gap:7px;text-align:left;margin:8px 0;}
.spr-item{padding:8px 10px;border-radius:8px;background:rgba(80,60,90,.07);border-left:3px solid #7a4a8a;}
.spr-who{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;}
.spr-who b{color:var(--ink);font-size:15px;}
.spr-t{font-size:11px;color:#8a6a3a;}
.spr-loy{font-size:11.5px;color:#6a4a2a;margin-left:auto;}
.spr-lines{font-size:12.5px;color:#4a2a2a;margin-top:4px;line-height:1.7;}
.spr-foot{font-size:11.5px;color:#8a6a3a;margin-top:8px;}

/* ============ 日切换·拂晓过场 ============ */
#day-transition{position:fixed;inset:0;z-index:190;pointer-events:none;display:grid;place-items:center;
  overflow:hidden;animation:dtVeil 1.1s ease forwards;}
@keyframes dtVeil{
  0%  {opacity:1;background:radial-gradient(130% 80% at 50% 125%,#3a1a0a 0%,#150806 55%,#0a0402 100%);}
  50% {opacity:1;background:radial-gradient(130% 95% at 50% 92%,#d4812f 0%,#5a2a12 44%,#190b05 100%);}
  100%{opacity:0;background:radial-gradient(130% 95% at 50% 80%,#f0b86a 0%,#7a3d18 45%,#1a0c05 100%);}
}
#day-transition .dt-sun{position:absolute;bottom:-42%;width:82vmin;height:82vmin;border-radius:50%;
  background:radial-gradient(circle,rgba(246,221,150,.9) 0%,rgba(217,182,95,.4) 34%,rgba(217,182,95,0) 70%);
  animation:dtSun 1.1s ease forwards;}
@keyframes dtSun{0%{transform:translateY(45%) scale(.55);opacity:0;}
  46%{opacity:.95;}100%{transform:translateY(-14%) scale(1.08);opacity:0;}}
#day-transition .dt-card{position:relative;text-align:center;animation:dtCard 1.1s ease forwards;}
@keyframes dtCard{0%{opacity:0;transform:translateY(15px);letter-spacing:.5em;}
  30%{opacity:1;}68%{opacity:1;transform:translateY(0);letter-spacing:.22em;}
  100%{opacity:0;transform:translateY(-9px);}}
#day-transition .dt-head{font-size:46px;color:var(--gold-br);letter-spacing:.22em;font-weight:600;
  text-shadow:0 2px 0 var(--red-dk),0 0 24px rgba(246,221,150,.6);}
#day-transition .dt-date{margin-top:11px;font-size:17px;color:var(--paper);letter-spacing:.18em;opacity:.94;}
#day-transition .dt-sub{margin-top:5px;font-size:12.5px;color:var(--gold);letter-spacing:.3em;opacity:.72;}

/* ============ 开场预加载页 ============ */
#preloader{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 90% at 50% 30%,#2a160e 0%,#190b07 60%,#0e0604 100%);
  transition:opacity .5s ease;}
#preloader.done{opacity:0;pointer-events:none;}
.pl-inner{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;width:min(86vw,420px);}
.pl-seal{width:78px;height:78px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:42px;color:#f3d98a;font-family:var(--serif);
  background:radial-gradient(circle at 50% 40%,#b3261e,#7e1812);border:2px solid var(--gold,#d9b65f);
  box-shadow:0 0 28px rgba(217,182,95,.35);animation:plPulse 2.2s ease-in-out infinite;}
.pl-title{margin:12px 0 0;font-size:30px;color:#f3d98a;letter-spacing:.16em;font-family:var(--serif);text-shadow:0 2px 10px rgba(0,0,0,.6);}
.pl-sub{margin:0 0 14px;font-size:13px;color:#c79b53;letter-spacing:.3em;}
.pl-bar{width:100%;height:10px;border-radius:6px;overflow:hidden;border:1px solid #6a4a2a;
  background:rgba(0,0,0,.45);box-shadow:inset 0 1px 3px rgba(0,0,0,.6);}
.pl-bar>i{display:block;height:100%;width:0;border-radius:6px;transition:width .25s ease;
  background:linear-gradient(90deg,#9a7327,#e7c466,#f3d98a);box-shadow:0 0 10px rgba(231,196,102,.6);}
.pl-text{margin:4px 0 0;font-size:13px;color:#c8a866;letter-spacing:.05em;font-variant-numeric:tabular-nums;}
#preloader.ready{cursor:pointer;}
#preloader.ready .pl-text{font-size:18px;color:var(--gold-br);letter-spacing:.5em;animation:plPulse 1.5s ease-in-out infinite;}
@keyframes plPulse{0%,100%{opacity:.45;}50%{opacity:1;}}
@keyframes plPulse{0%,100%{box-shadow:0 0 22px rgba(217,182,95,.28)}50%{box-shadow:0 0 36px rgba(217,182,95,.5)}}

/* ============ 立绘加载：骨架屏微光 + 加载完淡入 ============ */
.imgload{
  background-image:linear-gradient(110deg,#241810 28%,#3d2c1a 45%,#241810 62%);
  background-size:240% 100%;background-repeat:no-repeat;
  animation:imgShimmer 1.15s ease-in-out infinite;
}
.imgload.imgok{animation:imgIn .42s ease-out;}   /* 加载完成：停闪烁并淡入 */
@keyframes imgShimmer{0%{background-position:145% 0}100%{background-position:-45% 0}}
@keyframes imgIn{from{opacity:.2}to{opacity:1}}

/* ============ 响应式 ============ */
@media (max-width:760px){
  .layout{flex-direction:column;gap:10px;padding:10px;overflow-y:auto;}
  .emperor-panel{width:100%;display:flex;gap:14px;text-align:left;align-items:center;}
  .emp-portrait{margin:0;width:90px;}
  .emp-face,.noface{width:84px;height:106px;}
  .emp-attrs{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:7px 16px;}
  .emp-name{margin-top:0;}
  .act-grid{grid-template-columns:repeat(4,1fr);}
  .game-title{font-size:50px;}
  .tab{font-size:16px;} .tab span{font-size:10px;}
}
@media (max-width:480px){
  /* 顶栏：国号年号占一行，国力六维换到下一行铺满（不再挤在右上角）*/
  .hud{flex-wrap:wrap;padding:8px 12px;}
  .hud-reign{flex:1 1 auto;order:1;}
  .btn-menu{order:2;}
  .hud-nation{order:3;flex-basis:100%;width:100%;justify-content:space-between;gap:5px 6px;margin-top:7px;}
  .hud-title{font-size:17px;}
  .nstat{font-size:12px;padding:3px 8px;}
  /* 行动按钮：留足点按面积 */
  .act-grid{grid-template-columns:repeat(4,1fr);gap:7px;}
  .act-btn i{font-size:19px;}
  /* 底部导航 8 项：收紧间距、缩图标，整齐不挤 */
  .tabbar{gap:4px;padding:7px 6px;}
  .tab{padding:6px 1px;border-radius:8px;}
  .tab .tico svg{width:18px;height:18px;}
  .tab span{font-size:9.5px;}
  .tab-next{flex:1.35;}
}

/* ===== 新生皇嗣赐名 / 破解版面板 ===== */
.nb-tip{margin:6px 0 14px;color:#e8d9b8;line-height:1.7;}
.nb-name{display:flex;align-items:center;gap:10px;margin:10px 0 4px;}
.nb-name span{color:#caa45a;font-size:14px;white-space:nowrap;}
.nb-name input,.ch-in{flex:1;background:rgba(0,0,0,.28);border:1px solid #6a4a2a;border-radius:7px;
  color:#f3e6c8;padding:8px 10px;font-size:15px;outline:none;font-family:inherit;}
.nb-name input:focus,.ch-in:focus{border-color:#caa45a;box-shadow:0 0 0 2px rgba(202,164,90,.25);}
.nb-btns{display:flex;gap:10px;margin-top:16px;}
.nb-btns .btn{flex:1;}
/* 破解面板：紧凑布局，常见屏幕一屏装下、不出滚动条 */
.modal-box:has(.cheat){max-width:500px;padding:18px 20px 16px;scrollbar-width:none;-ms-overflow-style:none;}
.modal-box:has(.cheat)::-webkit-scrollbar{display:none;}
.cheat h2{font-size:20px;margin-bottom:6px;}
.ch-tip{font-size:12px;line-height:1.5;margin:0 0 8px;color:#bba488;}
.ch-quick{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 4px;}
.ch-quick .btn{flex:1 1 30%;padding:7px 4px;font-size:12.5px;}
.ch-h{margin:10px 0 4px;color:#caa45a;font-size:13px;border-bottom:1px solid rgba(202,164,90,.25);padding-bottom:3px;}
.ch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.ch-row{display:flex;flex-direction:column;gap:2px;}
.ch-row span{font-size:11px;color:#bba;}
.ch-in{padding:5px 6px;font-size:13.5px;text-align:center;}
.cheat .nb-btns{margin-top:12px;}
@media (max-width:420px){ .ch-quick .btn{flex:1 1 30%;} }

/* ===== VN 对话引擎（后宫攻略剧情）===== */
.vn{position:absolute;inset:0;z-index:80;overflow:hidden;background:#0a0402;cursor:pointer;
  user-select:none;animation:vnFade .35s ease;}
@keyframes vnFade{from{opacity:0;}to{opacity:1;}}
.vn-bg{position:absolute;inset:0;background-size:cover;background-position:center;
  filter:brightness(.62) saturate(.92);transform:scale(1.04);transition:background-image .4s;}
.vn-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,transparent 30%,rgba(8,3,2,.55) 100%);}
.vn-cg{position:absolute;inset:0;background-size:cover;background-position:center 30%;opacity:0;
  transition:opacity .45s ease;pointer-events:none;}
.vn-cg.show{opacity:1;}
.vn-cg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,3,2,.72) 100%);}
.vn-sprite{position:absolute;left:50%;bottom:150px;height:74%;max-height:680px;
  transform:translateX(-50%) translateY(14px);object-fit:contain;opacity:0;pointer-events:none;
  filter:drop-shadow(0 12px 30px rgba(0,0,0,.6));transition:opacity .4s ease,transform .4s ease;
  -webkit-mask-image:radial-gradient(ellipse 62% 76% at 50% 40%, #000 56%, transparent 100%);
  mask-image:radial-gradient(ellipse 62% 76% at 50% 40%, #000 56%, transparent 100%);}
.vn-sprite.show{opacity:1;transform:translateX(-50%) translateY(0);}
.vn-skip{position:absolute;top:14px;right:16px;z-index:3;color:#e8d9b8;font-size:13px;letter-spacing:.1em;
  background:rgba(20,8,5,.6);border:1px solid var(--gold);border-radius:14px;padding:5px 14px;cursor:pointer;}
.vn-skip:hover{background:rgba(40,16,10,.85);}
.vn-box{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:min(760px,92%);z-index:2;
  background:linear-gradient(180deg,rgba(26,12,8,.93),rgba(14,6,4,.95));border:1.5px solid var(--gold);
  border-radius:14px;padding:20px 26px 30px;box-shadow:0 10px 36px rgba(0,0,0,.6),inset 0 0 0 1px rgba(122,21,15,.4);}
.vn-name{display:inline-block;position:absolute;top:-15px;left:24px;color:#1a120b;font-size:15px;font-weight:700;
  padding:4px 18px;border-radius:8px;letter-spacing:.08em;
  background:linear-gradient(180deg,#f0d99a,var(--gold));border:1px solid #fff3d0;box-shadow:0 3px 8px rgba(0,0,0,.4);}
.vn-text{color:#f3e6c8;font-size:16.5px;line-height:1.95;min-height:3.6em;letter-spacing:.02em;}
.vn-text.narration{color:#cdbf9e;font-style:italic;text-align:center;}
.vn-text.vn-in{animation:vnTextIn .28s ease;}
@keyframes vnTextIn{from{opacity:.25;}to{opacity:1;}}
.vn-next{position:absolute;right:22px;bottom:10px;color:var(--gold-br);font-size:14px;animation:vnBlink 1.1s infinite;}
@keyframes vnBlink{0%,100%{opacity:.3;}50%{opacity:1;}}
.vn-choices{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;
  width:min(560px,86%);display:none;flex-direction:column;gap:14px;}
.vn-choices.show{display:flex;animation:vnFade .3s ease;}
.vn-choice{padding:15px 22px;font-size:16px;color:#f3e6c8;cursor:pointer;text-align:center;
  background:linear-gradient(180deg,rgba(46,20,12,.96),rgba(26,10,6,.97));border:1.5px solid var(--gold);
  border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.5);transition:transform .12s,box-shadow .12s,border-color .12s;}
.vn-choice:hover{transform:translateY(-2px);border-color:var(--gold-br);box-shadow:0 9px 24px rgba(197,54,44,.4);}
@media (max-width:560px){
  .vn-sprite{height:58%;bottom:160px;}
  .vn-text{font-size:15px;line-height:1.85;}
  .vn-box{padding:18px 18px 26px;bottom:14px;}
}
