:root{--bg:#f5f8fa;--ink:#1e3441;--muted:#647b86;--line:#dfe9eb;--teal:#117b77;--teal2:#0d5e60;--soft:#eaf6f3;--card:#fff;--shadow:0 8px 28px rgba(15,61,78,.045)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.46;cursor:not-allowed}.hidden{display:none!important}#shell{min-height:100vh;display:flex}.sidebar{width:245px;flex-shrink:0;background:#102b37;color:#d6e4e8;display:flex;flex-direction:column;padding:28px 18px;position:sticky;top:0;height:100vh}.logo{display:flex;gap:12px;align-items:center;padding:8px 10px 36px}.logo-icon{display:grid;place-items:center;width:44px;height:44px;background:#1d7170;border:1px solid #3f8685;border-radius:12px;color:#d9faff;font-size:30px}.logo strong{font-size:21px;color:#fff;letter-spacing:.4px}.logo small{font-size:9px;letter-spacing:2px;display:block;color:#94babd;margin-top:1px}.navlabel{font-size:11px;color:#6f9ca7;display:block;padding:0 12px;margin-bottom:18px}.navcurrent,.navghost{border-radius:10px;padding:14px 14px;display:flex;gap:12px;align-items:center}.navcurrent{background:#214b55;color:#fff;font-weight:700}.navghost{color:#a2bac2;opacity:.6}.navfooter{margin-top:auto;border-top:1px solid #315260;padding:20px 10px 0;color:#9fbac1;font-size:12px;line-height:1.8}.navfooter .lock{color:#72dbb4}.navfooter small{font-size:11px}.workspace{flex:1;min-width:0}.topbar{height:75px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px}.breadcrumb{color:#7d919b}.breadcrumb strong{color:#274551}.topactions{display:flex;align-items:center;gap:12px}.mini-badge{font-size:12px;color:#8a642a;border:1px solid #eeddb8;background:#fffbf0;padding:8px 11px;border-radius:30px}.dot{display:inline-block;background:#d79b3c;width:7px;height:7px;border-radius:50%;margin-left:5px}.main{max-width:1290px;margin:0 auto;padding:38px 44px}.hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(116deg,#e8f8f2 0%,#eff8fa 60%,#f7fafc 100%);border:1px solid #d4ebea;border-radius:20px;padding:35px 40px;min-height:190px;overflow:hidden}.eyebrow{display:block;color:#0b8a7c;font-size:12px;font-weight:700;letter-spacing:.2px;margin-bottom:12px}.hero h1{font-size:29px;line-height:1.4;margin:0 0 9px;font-weight:800;color:#123d45}.hero p{color:#587984;line-height:1.9;margin:0;max-width:630px}.hero-art{position:relative;display:grid;place-items:center;border:1px solid #9fd7cc;width:102px;height:102px;border-radius:28px;transform:rotate(-10deg);background:linear-gradient(130deg,#effffb,#b9e4df);box-shadow:0 0 0 15px rgba(127,203,187,.09);color:#148b86;font-size:39px;font-weight:900}.hero-art span:first-child{transform:rotate(10deg)}.hero-art .orbit{position:absolute;inset:-35px;border:1px dashed #9acac6;border-radius:50%}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.stat{background:white;border:1px solid var(--line);border-radius:16px;padding:23px 25px;box-shadow:var(--shadow)}.stat-label{font-size:13px;color:#6f8590}.stat strong{display:block;font-size:32px;margin:9px 0 6px;color:#173f4d}.stat strong.off{font-size:28px;color:#cc944e;letter-spacing:1px}.stat-foot{font-size:11px;color:#9badb6}.surface{margin:21px 0;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.section-head{display:flex;justify-content:space-between;align-items:center;padding:25px 28px;border-bottom:1px solid #e6eeef;gap:12px}.section-head h2{font-size:18px;margin:0 0 6px}.section-head p,.enroll p,.setting-row p{font-size:13px;line-height:1.8;color:var(--muted);margin:0}.btn{padding:10px 16px;border:1px solid #d7e3e6;background:white;color:#315768;font-weight:650;border-radius:9px;transition:background .2s}.btn:hover:not(:disabled){background:#eef5f5}.btn.primary{background:var(--teal);color:white;border-color:var(--teal)}.btn.primary:hover{background:var(--teal2)}.btn.danger{color:#a6383b;border-color:#ecc8c7;background:#fff5f4}.btn.danger:hover{background:#ffebea}.btn.subtle{background:transparent;border:0}.btn.sm{padding:7px 12px;font-size:12px}.list{min-height:105px}.skeleton,.empty{text-align:center;padding:36px;color:var(--muted);line-height:1.7}.number-row{display:flex;align-items:center;gap:16px;padding:19px 28px;border-bottom:1px solid #edf1f2}.number-icon{width:43px;height:43px;border-radius:12px;background:#eaf4f4;color:var(--teal);display:grid;place-items:center;font-size:19px}.number-info{flex:1;min-width:0}.number-info strong{font-size:15px;direction:ltr;display:block;text-align:right}.number-info small{display:block;color:#91a3ad;margin-top:5px}.number-actions{display:flex;gap:8px;align-items:center}.tag{font-size:11px;display:inline-block;padding:6px 10px;border-radius:20px;background:#eaf5ef;color:#21826c;font-weight:700}.tag.caution{background:#fff5e4;color:#a87927}.tag.offline{background:#f3f5f7;color:#8798a0}.enroll{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 28px;background:#fbfdfd}.enroll h3{margin:0 0 8px;font-size:14px}.enroll-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.enroll-controls select{min-width:210px;border:1px solid #d6e3e4;border-radius:8px;padding:11px;background:#fff;max-width:320px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:21px 28px;border-bottom:1px solid #edf1f2}.setting-row:last-child{border:0}.setting-row strong{display:block;font-size:14px;margin-bottom:7px}.auth-zone{margin:24px auto;max-width:560px}.login-card{background:#fff;border:1px solid #dce9e9;border-radius:17px;padding:26px;box-shadow:var(--shadow)}.login-card h2{font-size:20px;margin:0 0 12px}.login-card p{color:#647c87;line-height:1.8}.field{display:block;margin:21px 0}.field span{font-weight:700;display:block;margin-bottom:9px}.field input{width:100%;border-radius:10px;border:1px solid #c6dadd;padding:13px 14px;outline-color:#15978a;font-size:16px}.login-card .btn.primary{width:100%;font-size:15px;padding:13px}.alert{margin:16px 28px;padding:14px 16px;border-radius:10px;background:#fff5e6;border:1px solid #efdcb6;color:#845f2d;line-height:1.7}.auth-error{color:#aa3d45;margin:10px 0;line-height:1.6}footer{margin-top:35px;text-align:center;font-size:12px;color:#93a5ae;line-height:2}.toast{position:fixed;bottom:22px;left:22px;padding:15px 18px;border-radius:12px;background:#143f44;color:#fff;box-shadow:0 12px 40px #0b2b3044;z-index:10;max-width:400px}.toast.fail{background:#8d3c42}@media(max-width:1000px){.sidebar{width:75px;padding:23px 10px}.sidebar .logo div,.navlabel,.navfooter,.navghost{display:none}.logo{padding:8px 3px 28px}.logo-icon{width:42px;height:42px}.navcurrent{font-size:0;justify-content:center}.navcurrent span{font-size:24px}.topbar{padding:0 24px}.main{padding:25px}}@media(max-width:680px){.sidebar{display:none}.topbar{height:61px;padding:0 15px}.main{padding:14px}.hero{padding:25px 20px;min-height:140px}.hero h1{font-size:22px}.hero-art{display:none}.hero p{font-size:12px}.stats{gap:9px;margin:13px 0}.stat{padding:16px 11px;border-radius:12px}.stat strong{font-size:25px}.stat strong.off{font-size:23px}.stat-label{font-size:11px}.stat-foot{font-size:10px}.section-head{padding:20px 17px}.section-head h2{font-size:16px}.number-row{flex-wrap:wrap;padding:17px}.number-actions{width:100%;justify-content:flex-start}.enroll,.setting-row{padding:18px 16px;display:block}.enroll-controls{margin-top:18px}.enroll-controls select{flex:1;min-width:0;width:100%}.setting-row button{margin-top:14px}.mini-badge{font-size:10px;padding:6px}.breadcrumb{font-size:12px}.login-card{padding:20px}.auth-zone{margin-top:18px}}
.pair-box{display:flex;align-items:center;gap:22px;flex-basis:100%;width:100%;padding:18px 20px;margin-top:12px;border:1px solid #d2e7e5;border-radius:12px;background:#fff;line-height:1.7}.enroll{flex-wrap:wrap}.pair-box strong{font-size:15px}.pair-box p{color:var(--muted)}.pair-qr{width:225px;height:225px;max-width:100%;object-fit:contain;background:#fff;padding:8px;border-radius:12px;border:1px solid #dfe8e8}@media(max-width:680px){.pair-box{display:block}.pair-qr{margin:12px auto}}
