/* 书僮中台 · VI V1.1 青绿 · PC 优先 + 移动自适应 */
:root{
  --g500:#76A900;--g700:#2E6B1A;--g900:#164C11;
  --n900:#1A240F;--n500:#7A856C;--n300:#C9D2BC;--n50:#F7F9F1;
  --warn:#E8A100;--err:#D93B2B;--info:#2E8FA3;--seal:#C0492B;--paper:#FCFDF7;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,"PingFang SC",sans-serif;background:var(--n50);color:var(--n900);font-size:14px}
.serif{font-family:"Songti SC","STSong",serif}
#app{display:flex;min-height:100vh}

/* 侧边栏（PC） */
#side{width:232px;flex:none;background:var(--paper);border-right:1px solid rgba(22,76,17,.09);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:10px;align-items:center;padding:22px 20px 18px;border-bottom:1px solid rgba(22,76,17,.07)}
.brand b{font-family:"Songti SC",serif;font-size:17px;color:var(--g900);display:block}
.brand span{font-size:11px;color:var(--n500)}
.seal{width:34px;height:34px;border-radius:9px;background:var(--seal);color:#FBF3EA;font-family:"Songti SC",serif;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-size:16px;transform:rotate(-3deg)}
#nav{padding:12px}
#nav a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:12px;color:var(--n900);text-decoration:none;font-size:14px;margin-bottom:2px;position:relative}
#nav a i{width:30px;height:30px;border-radius:9px;background:rgba(118,169,0,.09);color:var(--g700);display:flex;align-items:center;justify-content:center;font-style:normal;font-family:"Songti SC",serif;font-size:13px;font-weight:700}
#nav a.on{background:rgba(118,169,0,.1);color:var(--g700);font-weight:700}
#alert-dot:empty{display:none}
#alert-dot{position:absolute;right:12px;min-width:18px;height:18px;border-radius:9px;background:var(--err);color:#fff;font-size:10px;font-style:normal;display:flex;align-items:center;justify-content:center;padding:0 5px}
.side-foot{margin-top:auto;padding:16px 20px;font-size:11px;color:var(--n500);line-height:1.7;border-top:1px solid rgba(22,76,17,.07)}

/* 主区 */
#main{flex:1;min-width:0}
#topbar{display:flex;align-items:center;gap:14px;padding:16px 28px;background:var(--paper);border-bottom:1px solid rgba(22,76,17,.09);position:sticky;top:0;z-index:5}
#topbar h1{font-family:"Songti SC",serif;font-size:20px;color:var(--g900);font-weight:900}
.env{font-size:11px;color:var(--n500);margin-left:auto;background:rgba(22,76,17,.05);padding:4px 12px;border-radius:99px}
#menu-btn{display:none;background:none;border:none;font-size:20px;color:var(--g900);cursor:pointer}
#view{padding:24px 28px;max-width:1080px}

/* 卡片与表 */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:22px}
.kpi{background:var(--paper);border:1px solid rgba(22,76,17,.09);border-radius:18px;padding:18px 20px}
.kpi b{font-family:"Songti SC",serif;font-size:26px;color:var(--g900);display:block}
.kpi span{font-size:12px;color:var(--n500)}
.kpi.warn b{color:var(--warn)} .kpi.err b{color:var(--err)}
.panel{background:var(--paper);border:1px solid rgba(22,76,17,.09);border-radius:18px;margin-bottom:20px;overflow:hidden}
.panel-h{padding:15px 20px;border-bottom:1px solid rgba(22,76,17,.07);font-weight:700;color:var(--g900);display:flex;align-items:center;gap:10px;font-family:"Songti SC",serif}
.panel-h::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--g500)}
.panel-h small{margin-left:auto;font-weight:400;font-size:12px;color:var(--n500);font-family:-apple-system}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;padding:11px 20px;color:var(--n500);font-weight:600;font-size:12px;border-bottom:1px solid rgba(22,76,17,.07);background:rgba(22,76,17,.02)}
td{padding:13px 20px;border-bottom:1px solid rgba(22,76,17,.05);vertical-align:middle}
tr:last-child td{border-bottom:none}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:8px}
.tag.g{background:rgba(118,169,0,.12);color:var(--g700)}
.tag.b{background:rgba(46,143,163,.1);color:var(--info)}
.tag.w{background:rgba(232,161,0,.12);color:#A87700}
.tag.r{background:rgba(217,59,43,.1);color:var(--err)}
.btn{border:none;border-radius:9px;padding:7px 15px;font-size:12px;font-weight:700;cursor:pointer;background:var(--g500);color:#fff}
.btn.ghost{background:rgba(118,169,0,.1);color:var(--g700)}
.btn.red{background:rgba(217,59,43,.1);color:var(--err)}
.muted{color:var(--n500);font-size:12px}
.money{font-family:"Songti SC",serif;font-weight:700;color:var(--g900)}

/* 移动端 */
@media(max-width:820px){
  #side{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:.25s}
  #side.open{transform:translateX(0);box-shadow:0 0 60px rgba(0,0,0,.2)}
  #menu-btn{display:block}
  #view{padding:16px}
  th:nth-child(n+4),td:nth-child(n+4){display:none}
  .grid{grid-template-columns:1fr 1fr}
}
