*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--brand:#52C41A;--brand-strong:#389E0D;--brand-light:#F6FFED;--brand-border:#B7EB8F;--primary:var(--brand);--primary-dark:var(--brand-strong);--primary-light:var(--brand-light);--primary-border:var(--brand-border);--gray-1:#FFFFFF;--gray-2:#FAFAFA;--gray-3:#F5F5F5;--gray-4:#F0F0F0;--gray-5:#D9D9D9;--gray-6:#BFBFBF;--gray-7:#8C8C8C;--gray-8:#595959;--gray-10:#262626;--bg:#F6F7F5;--surface:#FFFFFF;--white:#FFFFFF;--text:#333333;--text-primary:#333333;--text-secondary:#666666;--text-muted:#6C7469;--border:#E8E8E8;--danger:#FF4D4F;--danger-light:#FFF1F0;--danger-border:#FFCCC7;--danger-text:#CF1322;--warning:#FAAD14;--warning-light:#FFFBE6;--warning-border:#FFE58F;--warning-text:#D46B08;--info:#1890FF;--info-light:#E6F4FF;--success:#52C41A;--success-light:#F6FFED;--trust-a:#389E0D;--trust-b:#D48806;--accent:#F59E0B;--radius-sm:8px;--radius-md:12px;--radius:16px;--radius-lg:20px;--radius-pill:9999px;--shadow-xs:0 1px 2px rgba(82,196,26,0.06);--shadow:0 2px 8px rgba(82,196,26,0.10);--shadow-md:0 4px 16px rgba(82,196,26,0.16);--shadow-lg:0 4px 8px rgba(22,30,20,0.05),0 14px 32px rgba(22,30,20,0.10);--shadow-xl:0 12px 40px rgba(82,196,26,0.20);--tap-min:44px;--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:19px;--fs-xl:22px;--fs-14:14px;--fs-16:16px;--fs-18:18px;--fs-20:20px;--fs-24:24px;--fs-26:26px;--fs-28:28px;--fs-32:32px;--fs-36:36px;--fs-40:40px;--fs-48:48px;--bp-xs:480px;--bp-sm:600px;--bp-md:768px;--bp-lg:1024px;--content-max:1120px}[data-theme="dark"]{--bg:#0F1410;--surface:#1A2018;--white:#1A2018;--text:#E6EDE2;--text-primary:#E6EDE2;--text-secondary:#A8B5A0;--text-muted:#8C8C8C;--border:#2E3A2E;--brand:#73D13D;--brand-strong:#52C41A;--brand-light:#16231A;--brand-border:#2E4A2E;--gray-1:#1A2018;--gray-2:#1E251D;--gray-3:#232B22;--gray-4:#2A3329;--gray-5:#3A463A;--gray-6:#4E5A4E;--gray-7:#8C8C8C;--gray-8:#B0B8AA;--gray-10:#EDEFEA;--danger:#FF7875;--danger-light:#2A1A1A;--danger-border:#5C2B2B;--danger-text:#FF9C9C;--warning:#FFC069;--warning-light:#2A2310;--warning-border:#5C4A1E;--warning-text:#FFD591;--info:#69B1FF;--info-light:#0F1E2A;--success:#73D13D;--success-light:#16231A;--trust-a:#73D13D;--trust-b:#FFC069;--shadow-xs:0 1px 2px rgba(0,0,0,0.35);--shadow:0 2px 8px rgba(0,0,0,0.40);--shadow-md:0 4px 16px rgba(0,0,0,0.50);--shadow-lg:0 8px 28px rgba(0,0,0,0.55);--shadow-xl:0 12px 40px rgba(0,0,0,0.60)}.icon{width:20px;height:20px;flex-shrink:0;pointer-events:none}.icon-sm{width:16px;height:16px}.icon-md{width:24px;height:24px}.icon-lg{width:32px;height:32px}.icon-inline{width:18px;height:18px;vertical-align:-3px;margin-right:6px}.page-title .icon-inline{width:22px;height:22px;vertical-align:-5px}.tb-sec-head .icon-inline,.card-header .icon-inline,.sg-group-head .icon-inline{width:16px;height:16px;vertical-align:-2px}.qa-icon .icon{width:30px;height:30px}.empty-icon .icon{width:48px;height:48px;color:var(--text-muted)}.search-ic .icon{width:18px;height:18px}.sdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}.sdot-on{background:var(--brand-strong)}.sdot-off{background:var(--danger-text)}.sdot-warn{background:var(--warning-text)}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:var(--fs-base);line-height:1.6;touch-action:manipulation}.navbar{background:var(--white);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;height:60px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.navbar-brand{display:flex;align-items:center;gap:10px;font-size:var(--fs-18);font-weight:600;color:var(--primary-dark);text-decoration:none;flex-shrink:0}.navbar-brand .logo-icon{width:36px;height:36px;background:var(--brand-btn);border-radius:10px;display:flex;align-items:center;justify-content:center;color:white;box-shadow:0 2px 6px rgba(82,196,26,0.35)}.navbar-brand .logo-icon .icon{width:28px;height:28px}.navbar-nav{display:flex;gap:4px;margin-left:32px;flex:1}.nav-item{padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-14);color:var(--text-secondary);transition:background .2s var(--ease),color .2s var(--ease);display:inline-flex;align-items:center;gap:8px;border:none;background:none;font-family:inherit}.nav-item .icon{color:currentColor}.nav-item:hover{background:var(--primary-light);color:var(--primary-dark)}.nav-item.active{background:var(--primary-light);color:var(--primary-dark);font-weight:500}.navbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}.grade-badge{background:var(--brand-btn);color:white;padding:4px 12px;border-radius:20px;font-size:var(--fs-sm);font-weight:500;cursor:pointer}.main-content{max-width:var(--content-max);margin:0 auto;padding:24px 20px}.card{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);padding:20px 24px;box-shadow:var(--shadow)}.card-header{font-size:var(--fs-16);font-weight:600;color:var(--text);margin-bottom:16px;display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap-min);padding:10px 20px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--white);color:var(--text);font-size:var(--fs-14);font-family:inherit;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease);font-weight:500;white-space:nowrap}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn-primary{background:var(--brand-btn,#237804);border-color:var(--brand-btn,#237804);color:white}.btn-primary:hover{background:var(--brand-btn-hover,#1F7A04);border-color:var(--brand-btn-hover,#1F7A04);color:white}.btn-lg{padding:14px 28px;font-size:var(--fs-16);border-radius:12px;min-height:52px}.btn-sm{padding:6px 14px;font-size:var(--fs-sm);min-height:var(--tap-min)}.btn-round{border-radius:50px}.btn-danger{background:var(--danger);border-color:var(--danger);color:white}.btn-warning{background:var(--warning-light);border-color:var(--warning-border);color:var(--warning-text)}.page-header{margin-bottom:24px}.page-title{font-size:var(--fs-xl);font-weight:700;color:var(--text);margin-bottom:4px;margin-top:0}.page-subtitle{font-size:var(--fs-14);color:var(--text-secondary)}.select-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}select{padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:var(--fs-14);font-family:inherit;background:var(--white);cursor:pointer;outline:none}select:focus{border-color:var(--primary)}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state .empty-icon{font-size:var(--fs-48);margin-bottom:12px}.empty-state .empty-text{font-size:var(--fs-base)}.empty-state .empty-subtext{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:var(--fs-xs);font-weight:500}.badge-primary{background:var(--primary-light);color:var(--primary-dark);border:1px solid var(--primary-border)}.badge-secondary{background:var(--gray-3);color:var(--text-secondary);border:1px solid var(--border)}.badge-warning{background:var(--warning-light);color:var(--warning-text);border:1px solid var(--warning-border)}.badge-danger{background:var(--danger-light);color:var(--danger-text);border:1px solid var(--danger-border)}.text-primary{color:var(--primary-dark)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-center{text-align:center}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}.flex{display:flex}.flex-center{display:flex;align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.conn-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);padding:4px 10px;border-radius:var(--radius-pill);margin-left:12px;white-space:nowrap;font-weight:600}.conn-status::before{content:"";width:7px;height:7px;border-radius:50%;flex-shrink:0}.conn-online{background:var(--success-light);color:var(--brand-strong)}.conn-online::before{background:var(--brand)}.conn-offline{background:var(--danger-light);color:var(--danger-text)}.conn-offline::before{background:var(--danger)}.conn-unset{background:var(--warning-light);color:var(--warning-text)}.conn-unset::before{background:var(--warning)}@media (max-width:600px){.conn-status{margin-left:0}.navbar{flex-wrap:wrap}}.offline-bar{display:none;position:sticky;top:0;z-index:50;background:var(--danger-light);color:var(--danger-text);font-size:var(--fs-sm);font-weight:600;text-align:center;padding:8px 12px;border-bottom:1px solid var(--danger-border);box-shadow:0 1px 4px rgba(207,19,34,0.15);align-items:center;justify-content:center;gap:8px}.offline-bar:not([hidden]){display:flex;animation:offline-pop .2s ease-out}.offline-bar .icon{color:currentColor}@keyframes offline-pop{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width:600px){.offline-bar{font-size:var(--fs-xs);padding:7px 10px}}.nav-gear{width:38px;height:38px;border:none;background:none;cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background 0.2s;color:var(--text-secondary)}.nav-gear:hover{background:var(--primary-light);color:var(--primary-dark)}.nav-search{width:38px;height:38px;border:none;background:none;cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background 0.2s;color:var(--text-secondary)}.nav-search:hover{background:var(--primary-light);color:var(--primary-dark)}.nav-gear .icon,.nav-search .icon{width:22px;height:22px}@keyframes sk-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.sk-block{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 37%,#f0f0f0 63%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite;border-radius:6px;display:block}.sk-line{height:14px;margin-bottom:8px}.sk-line.short{width:60%}.sk-line.long{width:100%}.sk-title{height:22px;width:45%;margin-bottom:16px}.sk-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.sk-card .sk-line:last-child{margin-bottom:0}.sk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}@media (max-width:600px){.sk-grid{grid-template-columns:1fr}}.sk-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0}.sk-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.sk-row .sk-line{flex:1;margin-bottom:4px}.sk-init{padding:20px}.sk-init .sk-card:nth-child(1) .sk-line:nth-child(2){width:80%}.sk-init .sk-card:nth-child(2) .sk-line:nth-child(2){width:55%}.skip-link{position:absolute;top:-40px;left:0;background:var(--brand-btn);color:#fff;padding:8px 16px;z-index:9999;border-radius:0 0 var(--radius) 0;font-size:var(--fs-14);transition:top 0.2s}.skip-link:focus{top:0;outline:2px solid var(--primary-dark,#389E0D)}