:root{--bg:#e8eef5;--bg-2:#fff;--bg-3:#f0f5fb;--line:#d5dee9;--line-2:#c5d0de;--text:#1e293b;--muted:#64748b;--accent:#0f766e;--accent-2:#0d9488;--accent-soft:#ccfbf1;--accent-deep:#115e59;--sidebar-bg:#0f172a;--sidebar-text:#94a3b8;--sidebar-hover:#94a3b81f;--sidebar-active:#2dd4bf29;--ok:#059669;--ok-soft:#ecfdf5;--warn:#d97706;--warn-soft:#fffbeb;--danger:#dc2626;--danger-soft:#fef2f2;--info:#2563eb;--info-soft:#eff6ff;--sidebar:248px;--shadow:0 1px 2px #0f172a0d, 0 8px 20px #0f172a0a;color:var(--text);background:var(--bg);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}html,body,#app{background:var(--bg);min-height:100%;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.admin-shell{background:radial-gradient(1200px 500px at 10% -10%, #2dd4bf2e, transparent 55%), radial-gradient(900px 420px at 100% 0%, #3b82f61f, transparent 50%), var(--bg);min-height:100vh;display:flex}.sidebar{width:var(--sidebar);color:var(--sidebar-text);background:linear-gradient(#111827 0%,#0f172a 55%,#0b1220 100%);border-right:1px solid #94a3b81f;flex-direction:column;flex-shrink:0;gap:4px;padding:18px 12px 24px;display:flex}.brand{color:#f8fafc;border-bottom:1px solid #94a3b81f;margin-bottom:8px;padding:8px 12px 18px;font-size:17px;font-weight:700}.brand span{color:#64748b;margin-top:6px;font-size:12px;font-weight:500;display:block}.nav-group{color:#64748b;letter-spacing:.08em;text-transform:uppercase;margin-top:10px;padding:8px 12px 6px;font-size:11px;font-weight:700}.nav-item{color:#cbd5e1;border-left:3px solid #0000;border-radius:8px;padding:9px 12px;display:block}.nav-item:hover{background:var(--sidebar-hover);color:#f1f5f9}.nav-item.active{background:var(--sidebar-active);color:#5eead4;border-left-color:#2dd4bf;font-weight:600}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffffd1;border-bottom:1px solid #d5dee9e6;justify-content:space-between;align-items:center;height:58px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 1px #0f172a08}.topbar h1{color:#0f172a;margin:0;font-size:16px;font-weight:650}.topbar .hint{color:#0e7490;background:#ecfeff;border:1px solid #a5f3fc;border-radius:999px;padding:4px 10px;font-size:12px}.content{padding:22px 24px 40px}.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.card{background:var(--bg-2);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:16px;position:relative;overflow:hidden}.card:before{content:"";background:var(--accent-2);width:4px;position:absolute;top:0;bottom:0;left:0}.card.tone-teal:before{background:#14b8a6}.card.tone-blue:before{background:#3b82f6}.card.tone-amber:before{background:#f59e0b}.card.tone-rose:before{background:#f43f5e}.card.tone-violet:before{background:#8b5cf6}.card.tone-slate:before{background:#64748b}.card.tone-teal{background:linear-gradient(135deg,#fff 60%,#f0fdfa)}.card.tone-blue{background:linear-gradient(135deg,#fff 60%,#eff6ff)}.card.tone-amber{background:linear-gradient(135deg,#fff 60%,#fffbeb)}.card.tone-rose{background:linear-gradient(135deg,#fff 60%,#fff1f2)}.card.tone-violet{background:linear-gradient(135deg,#fff 60%,#f5f3ff)}.card.tone-slate{background:linear-gradient(135deg,#fff 60%,#f8fafc)}.card .label{color:var(--muted);font-size:12px}.card .value{color:#0f172a;margin-top:8px;font-size:24px;font-weight:700}.card .sub{color:var(--muted);margin-top:6px;font-size:12px}.panel{background:var(--bg-2);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.panel-hd{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#f0fdfa 0%,#f8fafc 45%,#eff6ff 100%);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.panel-hd h2{color:#0f172a;align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.panel-hd h2:before{content:"";background:var(--accent-2);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #14b8a633}.panel-bd{background:#fff;padding:16px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.input{border:1px solid var(--line-2);background:#fff;border-radius:8px;outline:none;min-width:200px;padding:8px 12px}.input:focus{border-color:#5eead4;box-shadow:0 0 0 3px #14b8a62e}.btn{border:1px solid var(--line-2);cursor:pointer;color:#334155;background:#fff;border-radius:8px;padding:8px 14px}.btn:hover{background:#f1f5f9;border-color:#94a3b8}.btn-primary{color:#fff;background:linear-gradient(#14b8a6,#0f766e);border-color:#0f766e}.btn-primary:hover{background:linear-gradient(#2dd4bf,#0f766e);border-color:#115e59}.btn-danger{color:var(--danger);background:#fff;border-color:#fecaca}.btn-danger:hover{background:var(--danger-soft)}table.data{border-collapse:collapse;width:100%}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 12px;font-size:13px}table.data th{color:#475569;background:linear-gradient(#f1f5f9,#eef2f7);font-weight:600}table.data tr:nth-child(2n) td{background:#fafbfd}table.data tr:hover td{background:#ecfeff}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}.tag{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;display:inline-flex}.tag.ok{color:var(--ok);background:var(--ok-soft);border-color:#a7f3d0}.tag.warn{color:var(--warn);background:var(--warn-soft);border-color:#fde68a}.tag.off{color:#64748b;background:#f1f5f9;border-color:#e2e8f0}.tag.role{color:#0369a1;background:#e0f2fe;border-color:#bae6fd}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field label{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.field .input,.field textarea{width:100%;min-width:0}.field textarea{border:1px solid var(--line-2);resize:vertical;background:#fff;border-radius:8px;min-height:88px;padding:8px 12px}.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:28px}.checks{flex-wrap:wrap;gap:10px 16px;display:flex}.check{color:#374151;align-items:center;gap:6px;font-size:13px;display:inline-flex}.msg-ok{color:var(--ok);margin:8px 0 0}.msg-err{color:var(--danger);margin:8px 0 0}@media (width<=1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:1fr}}@media (width<=800px){.admin-shell{flex-direction:column}.sidebar{border-bottom:1px solid #94a3b81f;border-right:none;width:100%}}
