:root{--ink:#22262e;--muted:#7e8695;--accent:#17446b;--accent2:#0f3352;--gold:#b8863b;--gold2:#d9a75f;--line:#e6eaf0;--bg:#f4f6fa}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.7 "Microsoft YaHei",sans-serif}
a{color:var(--accent);text-decoration:none}
h1,h2,h3,p{margin:0 0 16px}h1{font-size:30px;letter-spacing:1px}h2{font-size:24px}h3{font-size:17px}
small,.small{font-size:12px}
button,.btn{border:0;background:var(--accent);color:#fff;border-radius:9px;padding:13px 24px;font:inherit;cursor:pointer;display:inline-block}
button:hover,.btn:hover{filter:brightness(1.15)}
button.ghost,.ghost{color:#41546e;background:#e8eef6}
button.warn{background:#c0392b;color:#fff}
button.mini{padding:5px 12px;font-size:12px;border-radius:7px}
input,textarea,select{width:100%;border:1px solid #d5dce6;border-radius:8px;padding:12px 14px;margin:7px 0 18px;background:#fbfcfe;color:var(--ink);font:inherit}
input:focus,textarea:focus,select:focus{outline:2px solid var(--gold2)}
textarea{min-height:110px;resize:vertical}
label{display:block;font-size:13px;font-weight:500}
.muted,small{color:var(--muted)}
.eyebrow{font-size:11px;letter-spacing:2px;color:var(--gold);margin-bottom:14px;font-weight:bold}
.card{background:white;border:1px solid var(--line);border-radius:15px;padding:26px;margin-bottom:24px;box-shadow:0 6px 24px rgba(23,68,107,.05)}
.form-grid,.two-col{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.check{display:flex;gap:10px;align-items:center;margin-bottom:20px}.check input{width:auto;margin:0}
.error,.success{padding:13px 18px;border-radius:8px;background:#fdf0ec;color:#a54433}
.success{background:#e8f3ea;color:#1d6b45}
.compact{padding:6px 10px;font-size:12px;margin-top:7px}
.pill{background:#e8eef6;color:#17446b;padding:5px 12px;border-radius:20px;font-size:12px;display:inline-block}
.pill.gold{background:#f6eedd;color:#8a6a2f}
.pill.green{background:#e8f3ea;color:#1d6b45}
.pill.red{background:#fbeceb;color:#c0392b}
.pill.gray{background:#eef0f4;color:#7e8695}
footer{text-align:center;color:#8b93a3;font-size:12px;padding:24px}
aside{position:fixed;top:0;bottom:0;left:0;width:236px;background:#10233a;color:#e9eef5;padding:34px 25px}
aside h2{font-size:21px;margin-bottom:0}
aside small{font-size:9px;letter-spacing:2px;color:#7d95b3}
nav{margin-top:24px;max-height:74vh;overflow:auto}
nav a{display:flex;justify-content:space-between;color:#a9b8cc;padding:9px 16px;margin:5px 0;border-radius:9px}
nav a.active{background:var(--accent);color:#fff}
nav a span{color:#74889f}
.aside-foot{position:absolute;bottom:35px;font-size:10px;letter-spacing:1px;color:#74889f}
.workspace{margin-left:236px}
header{height:78px;border-bottom:1px solid var(--line);background:#fff;padding:0 36px;display:flex;align-items:center;justify-content:space-between;color:#77869c}
header button{font-size:12px;padding:7px 15px}
main{max-width:1500px;margin:auto;padding:32px 38px}
.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.page-title h1{margin-bottom:0}
.welcome{border-radius:17px;background:linear-gradient(110deg,#0f3352,#2a6296);color:#fff;padding:32px 38px;display:flex;justify-content:space-between;margin-bottom:26px}
.welcome h2{font-size:28px}
.welcome p{color:#bcd2e8}
.welcome-symbol{font-size:110px;line-height:1.4;color:#7fa8d0;padding-right:40px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stats h2{font-size:32px;margin:12px 0 0}
.trend{display:flex;align-items:flex-end;gap:14px;height:180px;padding:10px 4px 0}
.trend .bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.trend .bar i{display:block;width:70%;max-width:46px;background:linear-gradient(180deg,#2a6296,#17446b);border-radius:6px 6px 0 0}
.trend .bar b{font-size:11px;color:#41546e;font-weight:600}
.trend .bar span{font-size:10px;color:#7e8695}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:12px}
th,td{text-align:left;border-bottom:1px solid var(--line);padding:15px 12px;vertical-align:top}
th{color:#77869c;background:#f6f8fb;font-weight:500}
td details{margin-top:6px}
td summary{cursor:pointer;color:var(--accent);font-weight:600}
.empty{text-align:center;padding:70px;color:#8d93a0}
.filter{display:flex;gap:20px;flex-wrap:wrap;margin:0 0 22px}
.filter>div{min-width:200px}
.filter select,.filter input{margin:0}
.kv{font-size:12px;color:#7e8695;word-break:break-all}
.setup-head{padding:28px 6%;display:flex;align-items:center;justify-content:space-between}
.setup-head b{font-size:23px}
.setup-head span{font-size:10px;letter-spacing:2px;color:#7d95b3}
.install{max-width:900px;padding:30px 35px}
.install>h1{font-size:39px}
.steps{display:flex;gap:40px;margin:32px 0;color:#41546e}
.checks{display:flex;gap:18px;flex-wrap:wrap;background:#fdf0ee;border-radius:9px;padding:15px;margin-bottom:24px;color:#a54433}
.login{display:flex;min-height:100vh;background:#fff}
.login-brand{width:55%;position:relative;background:linear-gradient(145deg,#0c2438,#1d5a8c);color:#f2f7fc;overflow:hidden;padding:48px 8% 40px}
.brand-content{position:relative;z-index:1}
.brand-content>b{font-size:25px}
.brand-content>.eyebrow{margin-top:64px;color:#d9a75f}
.brand-content h1{font-size:48px;line-height:1.4}
.brand-content p{color:#b9cfe4}
.brand-content small{color:#93b2ce;letter-spacing:2px}
.ad-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32}
.blueprint{width:230px;height:230px;margin:35px auto 30px;border:2px solid rgba(217,167,95,.55);border-radius:14px;transform:rotate(-5deg);position:relative;background:
 linear-gradient(rgba(217,167,95,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(217,167,95,.14) 1px,transparent 1px);background-size:23px 23px;box-shadow:20px 25px 70px rgba(0,0,0,.35)}
.blueprint .bp-house{position:absolute;left:26px;bottom:28px;width:120px;height:78px;border:3px solid #d9a75f;border-top:0}
.blueprint .bp-roof{position:absolute;left:18px;bottom:106px;width:136px;height:34px;border:3px solid #d9a75f;border-bottom:0;transform:skewX(-24deg);transform-origin:bottom left}
.blueprint .bp-door{position:absolute;left:56px;bottom:28px;width:24px;height:42px;border:3px solid #d9a75f;border-bottom:0}
.blueprint .bp-sun{position:absolute;right:24px;top:24px;width:30px;height:30px;border:3px solid #d9a75f;border-radius:50%}
.login-form{width:45%;display:flex;align-items:center;justify-content:center;padding:55px}
.login-box{width:100%;max-width:390px}
.login-box h2{font-size:28px}
.login-box form{margin-top:40px}
.login-box button{width:100%}
.login-box>p.small{text-align:center;margin-top:16px}
.login-box footer{margin-top:60px;padding:0}
@media(max-width:900px){aside{width:180px;padding:25px 15px}.workspace{margin-left:180px}main{padding:24px}.stats{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.login-brand{width:48%;padding:40px}.login-form{width:52%;padding:35px}.brand-content h1{font-size:36px}}
@media(max-width:600px){aside{position:static;width:auto}aside nav{display:flex;flex-wrap:wrap;margin:15px 0 0;gap:5px;max-height:none}nav a{padding:7px;margin:0}.aside-foot,aside small,nav a span{display:none}.workspace{margin:0}main{padding:18px}header{padding:12px 20px;height:60px}.form-grid{grid-template-columns:1fr}.stats{gap:10px}.stats .card{padding:18px}.welcome{padding:24px}.welcome-symbol{display:none}.login-brand{display:none}.login-form{width:100%;padding:30px}.setup-head span{display:none}.steps{gap:16px;font-size:11px}.install{padding:20px}.install>h1{font-size:30px}.filter>div{min-width:140px}}
