:root{--bg: #f4f6f8;--panel: #ffffff;--text: #1a1d21;--muted: #5c6570;--border: #d8dee6;--accent: #1f5f8b;--accent-hover: #174a6b;--danger: #a33b3b;--ok: #2d6a4f;--warn: #9a6b1f;--radius: 8px;--font: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg)}a{color:var(--accent);text-decoration:none}button{font-family:inherit;cursor:pointer}.app-bare{min-height:100vh}.app-shell{display:flex;min-height:100vh}.sidebar{width:200px;flex-shrink:0;background:#15202b;color:#e8eef4;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem}.brand{font-weight:700;font-size:1.05rem;letter-spacing:.02em}.sidebar nav{display:flex;flex-direction:column;gap:.5rem;flex:1}.sidebar a{color:#c5d0db;padding:.45rem .6rem;border-radius:6px}.sidebar a.router-link-active{background:#ffffff1a;color:#fff}.logout{background:transparent;border:1px solid rgba(255,255,255,.25);color:#c5d0db;padding:.4rem .6rem;border-radius:6px}.logout:hover{border-color:#fff;color:#fff}.main{flex:1;padding:1.5rem 2rem;max-width:1100px}.page-title{margin:0 0 .35rem;font-size:1.4rem}.page-desc{margin:0 0 1.25rem;color:var(--muted);font-size:.95rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.card h3{margin:0 0 .5rem;font-size:1.05rem}.meta{color:var(--muted);font-size:.9rem;margin:.25rem 0}.badge{display:inline-block;font-size:.8rem;padding:.15rem .45rem;border-radius:4px;background:#e8eef4;color:var(--text)}.badge.ok{background:#d8f3e0;color:var(--ok)}.badge.warn{background:#f7ecd4;color:var(--warn)}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.btn{border:1px solid var(--border);background:#fff;color:var(--text);padding:.35rem .7rem;border-radius:6px;font-size:.9rem}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(160deg,#e8eef4,#f4f6f8 45%,#dfe8f0)}.login-panel{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem 1.5rem}.login-panel h1{margin:0 0 .35rem;font-size:1.35rem}.login-panel .hint{color:var(--muted);font-size:.9rem;margin:0 0 1.25rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.9rem}.field input{padding:.55rem .65rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.field input:focus{outline:2px solid rgba(31,95,139,.35);border-color:var(--accent)}.h5-publish{margin-bottom:1rem}.h5-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.field.compact{margin-bottom:.75rem}@media(max-width:760px){.h5-fields{grid-template-columns:1fr}}.error{color:var(--danger);font-size:.9rem;margin:0 0 .75rem}.notice{background:#eef5fa;border:1px solid #c5d9e8;color:#1f5f8b;padding:.65rem .8rem;border-radius:6px;font-size:.9rem;margin-bottom:1rem}.stat-value{font-size:1.6rem;font-weight:700;margin:.35rem 0 0}
