:root { --ink:#2b2b2b; --line:#e6e1d8; --bg:#faf7f1; --accent:#5A8C9B; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "PingFang SC", sans-serif;
       color:var(--ink); background:var(--bg); }
.brand { font-weight:600; }
.logout button, .login-card button { cursor:pointer; }

/* 布局:左侧边栏 + 右内容 */
.layout { display:flex; min-height:100vh; align-items:stretch; }
.container { flex:1; max-width:960px; margin:1.5rem auto; padding:0 1rem; }

.sidebar { width:200px; flex-shrink:0; background:#fff; border-right:1px solid var(--line);
           padding:1.1rem .8rem; display:flex; flex-direction:column; }
.sidebar .brand { font-size:1.05rem; margin-bottom:.6rem; padding:0 .2rem; }
.nav-group { font-size:.72rem; color:#999; text-transform:uppercase; letter-spacing:.06em;
             margin:1rem .2rem .35rem; }
.nav-item { display:block; padding:.45rem .6rem; border-radius:8px; color:var(--ink);
            text-decoration:none; font-size:.9rem; }
.nav-item:hover { background:var(--bg); }
.nav-item.active { background:var(--accent); color:#fff; }
.nav-item.ext { color:#5a6b72; }
.sidebar .logout { margin-top:auto; padding-top:1rem; }
.sidebar .logout button { width:100%; padding:.5rem; border:1px solid var(--line);
                          border-radius:8px; background:#fff; }
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:12px;
        padding:1.1rem; display:flex; flex-direction:column; gap:.3rem; }
.card .num { font-size:1.8rem; font-weight:700; }
.card .lbl { color:#777; font-size:.85rem; }
.charts { display:grid; grid-template-columns:1fr; gap:1.5rem; margin-top:1.5rem; }
.chart-box { background:#fff; border:1px solid var(--line); border-radius:12px; padding:1rem; }
.error-card { background:#fff3f3; border:1px solid #f0c0c0; color:#9a2b2b;
              padding:1rem; border-radius:12px; }
.login-card { max-width:320px; margin:3rem auto; background:#fff;
              border:1px solid var(--line); border-radius:12px; padding:1.5rem; }
.login-card label { display:block; margin:.6rem 0; }
.login-card input { width:100%; padding:.5rem; margin-top:.2rem;
                    border:1px solid var(--line); border-radius:8px; }
.login-card button { width:100%; padding:.6rem; margin-top:.8rem; border:0;
                     border-radius:8px; background:var(--accent); color:#fff; }
.error { color:#9a2b2b; }
