/* 高斯曼智慧主站 · 骨架样式（深蓝/青，沿用官网品牌色） */
:root{--p:#0B3D66;--a:#12A594;--bg:#F5F7FA;--tx:#0F172A;--tx2:#475569;--line:#E2E8F0;--warn:#D9822B}
*{box-sizing:border-box}
body{margin:0;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--tx);background:var(--bg)}
.shell{display:flex;min-height:100vh}
.side{width:210px;background:var(--p);color:#fff;padding:18px 0}
.brand{font-weight:700;padding:0 18px 16px}
.side a{display:block;color:#cfe3f3;text-decoration:none;padding:10px 18px}
.side a.on{background:rgba(255,255,255,.12);color:#fff;border-left:3px solid var(--a)}
.main{flex:1;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;background:#fff;border-bottom:1px solid var(--line);padding:10px 20px}
.topbar .scope{color:var(--tx2);font-size:13px}
.grow{flex:1}
.content{padding:20px;flex:1}
.foot{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--line);background:#fff;color:var(--tx2);font-size:12px}
.foot a{color:var(--tx2);text-decoration:none}
.foot a:hover{color:var(--p);text-decoration:underline}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0 20px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.card .num{font-size:28px;font-weight:700;color:var(--p)}
.card .lbl{color:var(--tx2);font-size:13px;margin-top:2px}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:14px}
th{background:#F8FAFC;color:var(--tx2);font-weight:600}
.empty{color:var(--tx2);text-align:center}
.tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;border:1px solid}
.tag.online,.tag.active{color:#0F766E;border-color:#99F6E4;background:#F0FDFA}
.tag.offline,.tag.disabled{color:#9F1239;border-color:#FECDD3;background:#FFF1F2}
.tag.unknown,.tag.locked{color:#92400E;border-color:#FDE68A;background:#FFFBEB}
.btn{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;text-decoration:none;color:var(--tx)}
.btn.primary{background:var(--p);color:#fff;border-color:var(--p)}
.btn.muted{color:#94A3B8;border-style:dashed;background:#FAFBFC}
.alert{background:#FFF1F2;border:1px solid #FECDD3;color:#9F1239;padding:8px 12px;border-radius:8px;margin:10px 0}
.hint{color:var(--tx2);font-size:13px}
.login-box{max-width:360px;margin:9vh auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.login-box h1{margin:0 0 6px;font-size:20px;color:var(--p)}
.login-box label{display:block;margin:12px 0 4px;font-size:13px;color:var(--tx2)}
.login-box input{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px}
.login-box .btn{width:100%;margin-top:14px;padding:10px}
.form label{display:block;margin:10px 0 4px;font-size:13px;color:var(--tx2)}
.form input,.form select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;min-width:220px}
.inline{display:inline}
.kv th{width:140px}
