:root{--ink:#17211f;--muted:#6a7773;--line:#dfe8e5;--surface:#fff;--bg:#f2f6f4;--brand:#0c7b69;--brand-dark:#075d50;--danger:#c53b34;--warn:#c77712;--shadow:0 14px 38px rgba(25,55,49,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#d8f3eb 0,transparent 36%),linear-gradient(135deg,#f8fbfa,#e9f1ee)}.login-card{width:min(430px,100%);background:#fff;padding:42px;border:1px solid #e1ebe7;border-radius:28px;box-shadow:0 28px 80px rgba(7,93,80,.13)}.brand-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--brand);color:#fff;font-size:27px;font-weight:800;box-shadow:0 10px 22px rgba(12,123,105,.24)}.brand-mark.small{width:38px;height:38px;border-radius:12px;font-size:18px}.eyebrow{margin:24px 0 6px;color:var(--brand);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:30px;margin-bottom:10px}h2{font-size:26px;margin-bottom:0}.muted,.hint{color:var(--muted)}.hint{font-size:12px;margin-top:16px}.error{color:var(--danger);min-height:20px}.form-stack{display:grid;gap:16px;margin-top:28px}.form-stack label,.field{display:grid;gap:8px;font-size:13px;font-weight:700;color:#4e5b58}.form-stack input,.form-stack select,.form-stack textarea,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fbfdfc;outline:none}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(12,123,105,.1)}button{border:0;cursor:pointer}.primary{padding:13px 18px;border-radius:12px;background:var(--brand);color:#fff;font-weight:800}.primary:hover{background:var(--brand-dark)}.secondary{padding:10px 14px;border-radius:10px;background:#e8f3f0;color:var(--brand-dark);font-weight:700}.danger-btn{padding:10px 14px;border-radius:10px;background:#fbe9e7;color:var(--danger);font-weight:700}.text-btn{padding:0;background:transparent;color:#bfd8d2;text-align:left}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:#102d28;color:#fff;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px;font-weight:800}.sidebar nav{display:grid;gap:6px}.sidebar nav button{text-align:left;padding:12px 14px;border-radius:11px;background:transparent;color:#bad0cb}.sidebar nav button:hover,.sidebar nav button.active{background:#1c443c;color:#fff}.account-box{margin-top:auto;display:grid;gap:6px;padding:16px 12px;border-top:1px solid #31534d}.account-box span{font-size:12px;color:#9db8b2}main{min-width:0;padding:0 34px 48px}.topbar{height:110px;display:flex;align-items:center;justify-content:space-between}.topbar .eyebrow{margin:0 0 5px}.clock{color:var(--muted);font-size:13px}.notice{padding:12px 15px;margin-bottom:18px;border-radius:11px;background:#e8f3f0;color:var(--brand-dark)}.notice.error{background:#fbe9e7;color:var(--danger)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.metric-card,.panel{background:var(--surface);border:1px solid #e3ebe8;border-radius:18px;box-shadow:var(--shadow)}.metric-card{padding:22px}.metric-card .value{font-size:34px;font-weight:850;margin:8px 0 4px}.metric-card .label{color:var(--muted);font-size:13px}.panel{padding:22px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.panel-head h3{margin:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.company-grid,.device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.company-card,.device-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}.company-card h3,.device-card h3{margin-bottom:6px}.company-card{cursor:pointer}.company-card:hover{border-color:#8bc7bb;transform:translateY(-1px)}.split{display:flex;align-items:center;justify-content:space-between;gap:10px}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#daf3e9;color:#08715e;font-size:12px;font-weight:800}.badge.offline{background:#ecefed;color:#6e7976}.badge.warn{background:#fff0d6;color:#9b5b07}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.mini-stats div{padding:10px;border-radius:10px;background:#eef5f3;text-align:center}.mini-stats strong{display:block;font-size:20px}.mini-stats span{font-size:11px;color:var(--muted)}.telemetry{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.telemetry div{padding:10px;border-radius:10px;background:#f0f5f3}.telemetry strong{display:block}.telemetry span{font-size:11px;color:var(--muted)}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:13px 10px;border-bottom:1px solid #edf1f0;font-size:13px;white-space:nowrap}.data-table th{color:var(--muted);font-size:12px}.inline-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.inline-form .wide{grid-column:span 2}.inline-form .full{grid-column:1/-1}.empty{padding:42px;text-align:center;color:var(--muted)}.status-line{display:flex;gap:10px;align-items:center;margin-bottom:16px}.dot{width:9px;height:9px;border-radius:50%;background:#a8b1ae}.dot.on{background:#12a47f;box-shadow:0 0 0 5px rgba(18,164,127,.12)}.ai-lock{padding:14px;border-radius:12px;background:#fff8e8;color:#81540b;font-size:13px;margin-bottom:18px}.record-error{color:var(--danger);font-weight:700}.record-normal{color:var(--brand);font-weight:700}@media(max-width:1050px){.metrics,.company-grid,.device-grid{grid-template-columns:repeat(2,1fr)}.inline-form{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{grid-template-columns:repeat(3,1fr)}.account-box{margin-top:18px}.topbar{height:auto;padding:24px 0}.clock{display:none}main{padding:0 16px 32px}.metrics,.company-grid,.device-grid,.grid-2,.inline-form{grid-template-columns:1fr}.inline-form .wide{grid-column:auto}.sidebar nav button{text-align:center;padding:10px 5px;font-size:12px}}

