/* ============ 甜啦啦经营平台 · 账本视觉 ============
   深茶绿侧栏 / 暖纸底 / 焙茶琥珀点缀 / 等宽数字   */
:root{
  --ink:#1C2B24; --ink-2:#26382E; --ink-3:#31463A;
  --amber:#C9822F; --amber-soft:#E8C99A;
  --paper:#F5F4EF; --card:#FFFFFF; --line:#E4E1D8;
  --text:#23281F; --muted:#8B887A;
  --neg:#B93A2B; --pos:#1E7A46;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--paper); color:var(--text); font-size:14px; line-height:1.6;
}
a{color:var(--ink-3)}
a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

/* ---- 布局壳 ---- */
.shell{display:flex;min-height:100vh}
.content{flex:1;min-width:0;padding:36px 44px;max-width:1160px}
.login-solo{max-width:420px;margin:10vh auto;padding:0 20px}

/* ---- 侧栏 ---- */
.side{
  width:212px;flex-shrink:0;background:var(--ink);color:#D8DED4;
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
}
.brand{
  padding:22px 20px 18px;color:#fff;font-weight:650;font-size:15px;letter-spacing:.02em;
  border-bottom:1px solid var(--ink-3);
}
.brand span{display:block;font-weight:400;font-size:11px;color:var(--amber-soft);letter-spacing:.24em;margin-top:3px}
.side-nav{flex:1;overflow-y:auto;padding:10px 0}
.nav-group{padding:10px 0 2px}
.nav-group-label{
  padding:4px 20px;font-size:11px;letter-spacing:.28em;color:#7E8F85;
}
.side-nav a{
  display:block;padding:8px 20px;color:#D8DED4;text-decoration:none;font-size:14px;
  border-left:3px solid transparent;
}
.side-nav a:hover{background:var(--ink-2);color:#fff}
.side-nav a.active{
  background:var(--ink-2);color:#fff;border-left-color:var(--amber);font-weight:600;
}
.side-foot{
  padding:14px 20px;border-top:1px solid var(--ink-3);font-size:12px;color:#A9B3AA;
  display:flex;justify-content:space-between;align-items:center;gap:8px;
}
.side-foot a{color:var(--amber-soft);text-decoration:none}
.side-foot a:hover{color:#fff}
.who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- 标题与文字 ---- */
h2{font-size:21px;font-weight:650;margin:0 0 18px;letter-spacing:.01em}
h3{
  font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.18em;
  margin:30px 0 12px;
}
.content p{margin:8px 0 16px}
.content p a{color:var(--ink-3)}

/* ---- 数字卡(签名元素:账签色条+等宽大数字) ---- */
.cards-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));
  gap:14px;margin:0 0 8px;
}
.card{
  display:block;background:var(--card);border:1px solid var(--line);
  border-left:3px solid var(--amber);border-radius:10px;
  padding:16px 18px 14px;text-decoration:none;color:var(--text);
  transition:box-shadow .15s,transform .15s;
}
a.card:hover{box-shadow:0 3px 14px rgba(28,43,36,.10);transform:translateY(-1px)}
.card:has(.card-value.negative){border-left-color:var(--neg)}
.card-label{font-size:12px;color:var(--muted);letter-spacing:.06em;margin-bottom:6px}
.card-value{
  font-size:28px;font-weight:640;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.card-value.negative,.negative{color:var(--neg)}

/* ---- 表格 ---- */
table{
  width:100%;border-collapse:separate;border-spacing:0;background:var(--card);
  border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 20px;
  font-variant-numeric:tabular-nums;
}
th{
  text-align:left;font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.04em;
  background:#FAF9F4;padding:10px 14px;border-bottom:1px solid var(--line);
}
td{padding:9px 14px;border-bottom:1px solid #EFEDE6}
tr:last-child td{border-bottom:none}
tbody tr:hover td{background:#FBFAF5}

/* ---- 表单与按钮 ---- */
input,select,textarea{
  font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:8px;
  background:#fff;color:var(--text);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--amber-soft);border-color:var(--amber)}
label{display:block;margin:10px 0}
button{
  font:inherit;font-weight:600;padding:8px 18px;border:none;border-radius:8px;
  background:var(--ink);color:#fff;cursor:pointer;
}
button:hover{background:var(--ink-3)}
form{margin:10px 0}

/* ---- 提示/错误/折叠 ---- */
.error{
  background:#FBEBE8;border:1px solid #EED2CC;color:var(--neg);
  padding:10px 14px;border-radius:8px;margin:12px 0;
}
details{margin:14px 0}
summary{cursor:pointer;color:var(--ink-3);font-weight:600}
details[open] summary{margin-bottom:8px}

/* ---- 小屏 ---- */
@media (max-width:900px){
  .shell{flex-direction:column}
  .side{width:100%;height:auto;position:static}
  .side-nav{display:flex;flex-wrap:wrap;padding:4px 8px}
  .nav-group{display:flex;align-items:center;padding:2px}
  .nav-group-label{padding:4px 8px;letter-spacing:.12em}
  .side-nav a{border-left:none;border-bottom:2px solid transparent;padding:6px 10px}
  .side-nav a.active{border-left:none;border-bottom-color:var(--amber)}
  .content{padding:20px 16px}
}
