:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#223735;background:#f4f6f5;font-synthesis:none;--green:#205e51;--muted:#7b8985;--line:#e6ece8}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{text-decoration:none;color:inherit}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#142a2a;color:#fff;padding:38px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:650;letter-spacing:-1px}.brand-icon{display:grid;place-items:center;width:43px;height:47px;border:1px solid #83b3a0;border-radius:12px;background:#25473f;color:#d3e7ad;font-family:Georgia,serif;font-size:32px}.brand small{display:block;font-size:11px;letter-spacing:3px;font-weight:400;color:#9eb2ab;margin-top:6px}.nav-label{font-size:10px;color:#839d95;letter-spacing:2px;margin:54px 15px 18px}nav{display:grid;gap:9px}nav button{border:0;color:#acbdb7;background:none;display:flex;align-items:center;gap:14px;text-align:left;padding:15px 18px;border-radius:9px;font-size:14px}nav button span{font-size:19px;width:19px;text-align:center}nav button.active{background:#2b4842;color:#edf5dc}nav button:hover{background:#233e39}nav i{font-style:normal;background:#3a564c;padding:2px 6px;border-radius:4px;font-size:10px;margin-left:auto}.sidebar-bottom{margin-top:auto;font-size:11px;color:#a2b7ae;line-height:2.5}.sidebar-bottom small{display:block;color:#627e73}.small-dot{display:inline-block;width:6px;height:6px;background:#aac990;border-radius:50%;margin-right:6px}main{margin-left:244px;padding:38px 48px 22px;max-width:1720px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:2px;color:#8c9991;font-weight:600}h1{font-size:27px;letter-spacing:1px;margin:9px 0 0;font-weight:650}h2{font-size:21px;font-weight:600;margin:0 0 10px}h3{font-size:16px;font-weight:600;margin:0 0 12px}p{font-size:13px;color:var(--muted);line-height:1.85;margin:6px 0 16px}.header-actions,.inline{display:flex;align-items:center;gap:10px}.button{padding:11px 18px;border-radius:7px;border:1px solid transparent;font-size:13px;font-weight:550;white-space:nowrap}.primary{background:var(--green);color:#fff}.primary:hover{background:#164b40}.light{background:#fff;color:#46645b;border-color:#dfe7e1}.badge{font-size:11px;color:#7d8f86;background:#eaf0eb;padding:7px 10px;border-radius:5px;white-space:nowrap}.badge.live{color:#267251;background:#e2f2e6}.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:25px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.section-heading h3{margin:0}.muted{color:var(--muted);font-size:12px}.device-layout{display:grid;grid-template-columns:minmax(260px,.86fr) minmax(450px,1.4fr);gap:23px}.safe-card{background:#e8ede5;border:1px solid #dfe6dc;border-radius:14px;min-height:415px;position:relative;overflow:hidden;display:flex;flex-direction:column;padding:25px}.safe-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.pill{font-size:11px;color:#5f7969;background:#fff9;padding:7px 10px;border-radius:20px}.model{font-size:10px;color:#8a9889;letter-spacing:.6px}.safe-art{height:235px;display:grid;place-items:center;position:relative;isolation:isolate}.safe-box{width:168px;height:180px;background:linear-gradient(115deg,#556b60,#293f37);border-radius:13px;box-shadow:15px 8px 0 #839584,18px 9px 0 #6f8273,0 25px 25px #304c3025;transform:perspective(700px) rotateY(-15deg) rotateX(4deg);padding:15px}.safe-door{height:100%;border-radius:8px;border:2px solid #7a8f7c;box-shadow:inset 2px 2px 6px #112c3a80;position:relative;background:linear-gradient(140deg,#647b69,#415a4a)}.safe-keypad{position:absolute;right:17px;top:29px;background:#263a30;padding:7px 8px;border-radius:6px;width:42px;box-shadow:1px 1px 1px #96ac8a}.safe-keypad b{display:block;height:9px;background:#b3c397;border-radius:2px}.safe-keypad i{font-style:normal;font-size:13px;letter-spacing:3px;color:#b1c3ae;line-height:12px;display:block;margin-top:4px}.safe-handle{position:absolute;left:20px;top:61px;height:17px;width:40px;border:5px solid #afbd9e;border-radius:9px;box-shadow:0 3px 3px #263526}.safe-shadow{position:absolute;bottom:15px;width:180px;height:18px;background:#47573825;filter:blur(10px);border-radius:50%;z-index:-1}.safe-bottom{margin-top:auto}.safe-bottom h2{font-size:23px;margin:9px 0}.safe-bottom>span:last-child{font-size:11px;color:#7b897b}.device-right{display:grid;gap:18px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.metric{padding:20px}.metric>span{color:#778b82;font-size:11px}.metric strong{display:block;font-size:23px;font-weight:550;margin:15px 0 9px}.metric small{font-size:10px;color:#96a19b}.control-card{text-align:center;display:flex;flex-direction:column;align-items:center;padding:22px}.control-card .section-heading{width:100%;margin-bottom:10px}.control-card h2{font-size:18px}.control-symbol{color:#618270;background:#f0f5ed;border:1px solid #e1ebda;border-radius:50%;width:50px;height:50px;display:grid;place-items:center;font-size:32px;margin:6px 0 16px}.control-actions{display:flex;gap:10px;justify-content:center;margin-top:5px}.control-card p{max-width:380px;font-size:12px}.control-card .button{min-width:130px}.activity-card{margin-top:24px}.text-button{background:none;border:0;color:#567764;font-size:12px}.log-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-top:1px solid #f0f3ef}.log-mark{width:34px;height:34px;background:#eef3ea;color:#59775c;border-radius:9px;display:grid;place-items:center;flex:none}.log-mark.alarm{background:#fff2e6;color:#b9814b}.log-text{flex:1;min-width:0}.log-text strong{font-size:12px;font-weight:550}.log-text small{display:block;font-size:11px;color:#919d94;margin-top:5px;overflow-wrap:anywhere}.log-row time{font-size:11px;color:#98a199;white-space:nowrap}.empty{padding:30px;text-align:center;color:#97a298;font-size:13px}.login-card{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:30px}.login-card h2{margin-top:14px}.login-card small{font-size:11px;color:#8b988d}.login-card input{margin:0}.login-card .inline{margin:8px 0 12px}label{display:block;font-size:12px;color:#64796c;margin:18px 0 8px}input{width:100%;min-width:0;padding:12px;border:1px solid #dde6df;background:#fafcf9;border-radius:7px;outline:none;color:#294334}input:focus{border-color:#628a71;box-shadow:0 0 0 3px #dfece3}form>.button{margin-top:20px}.settings-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px}.field-row{display:grid;grid-template-columns:1fr 100px;gap:12px}.relay-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.relay-card p{margin-bottom:4px}.relay-card small{color:#8d978f;font-size:10px}hr{border:0;border-top:1px solid var(--line);margin:28px 0}.help h3{margin-top:26px}.help h3:first-child{margin-top:0}.help{max-width:850px}.help p{max-width:740px}#notice{background:#fff3df;border:1px solid #ecd8b5;color:#906c33;padding:13px 18px;border-radius:8px;margin-bottom:20px;font-size:13px}dialog{border:1px solid var(--line);border-radius:16px;padding:30px;max-width:440px;width:calc(100% - 36px);box-shadow:0 30px 100px #10282040}dialog::backdrop{background:#162f2860;backdrop-filter:blur(3px)}dialog h2{margin-top:12px}footer{display:flex;justify-content:space-between;color:#9ba69e;font-size:10px;letter-spacing:.5px;margin-top:35px;padding-top:20px;border-top:1px solid var(--line)}
@media(min-width:1550px){main{padding-left:65px;padding-right:65px}.safe-art{height:275px}.safe-box{transform:scale(1.15) perspective(700px) rotateY(-15deg) rotateX(4deg)}}
@media(max-width:1150px){.sidebar{width:205px;padding:30px 18px}main{margin-left:205px;padding:30px 25px}.device-layout{grid-template-columns:1fr}.safe-card{min-height:300px}.safe-art{position:absolute;right:30px;top:40px;width:220px;height:230px}.safe-bottom{max-width:45%;padding-top:110px}.header-actions .badge{display:none}}
@media(max-width:700px){.sidebar{inset:auto 0 0;width:100%;height:68px;padding:4px 8px;z-index:5;background:#142a2af7}.brand,.nav-label,.sidebar-bottom{display:none}nav{display:flex;justify-content:space-around;gap:0}nav button{display:flex;flex-direction:column;gap:3px;padding:6px 9px;font-size:9px}nav button span{font-size:18px}nav i{display:none}main{margin:0;padding:23px 16px 85px}header{gap:10px;padding-bottom:20px;margin-bottom:23px}h1{font-size:22px}.header-actions{gap:6px}.header-actions .button{font-size:11px;padding:9px}.eyebrow{font-size:8px}h2{font-size:18px}.section-heading p{font-size:11px}.section-heading .muted{white-space:nowrap}.metric{padding:14px 10px}.metric strong{font-size:19px}.metric small{font-size:9px}.metric-grid{gap:8px}.card{padding:19px}.login-card,.settings-grid{grid-template-columns:1fr;gap:12px}.login-card .inline{align-items:stretch;flex-direction:column}.safe-card{padding:20px;min-height:275px}.safe-art{right:0;top:35px;width:190px}.safe-box{transform:scale(.88) perspective(700px) rotateY(-15deg)}.safe-bottom{padding-top:100px}.safe-bottom h2{font-size:21px}.model{font-size:9px}.log-row{gap:10px}.log-row time{font-size:9px;max-width:78px;white-space:normal;text-align:right}.relay-card{flex-direction:column;align-items:stretch}.relay-card .inline{justify-content:flex-end}footer span{display:none}}
/* Readable Chinese labels at desktop and mobile sizes. */
p{font-size:14px}.button,nav button,label{font-size:14px}.metric>span,.log-text strong{font-size:13px}.metric small,.log-text small,.log-row time,.badge,.pill,.muted,.safe-bottom>span:last-child{font-size:12px}.safe-bottom h2{overflow-wrap:anywhere}.control-card p{font-size:14px}.model{font-size:11px}
@media(max-width:700px){nav button{font-size:11px}.safe-card{min-height:210px}.safe-art{height:165px;width:150px;top:42px;right:10px}.safe-box{transform:scale(.7) perspective(700px) rotateY(-15deg)}.safe-bottom{max-width:52%;padding-top:58px}.safe-bottom h2{font-size:19px}.safe-shadow{display:none}.metric{padding:15px 10px}.metric small{font-size:11px;line-height:1.7}.metric strong{font-size:19px}.log-row time{font-size:10px}.section-heading p{font-size:13px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{overflow-wrap:anywhere}}

/* Multi-device selector is visible on every page to keep action targets explicit. */
select{font:inherit;width:100%;padding:12px;border:1px solid #dde6df;border-radius:7px;background:#fafcf9;color:#294334;min-width:0}select:focus{outline:2px solid #a4c4b5}.fleet-bar{margin-bottom:26px}.fleet-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.fleet-title p{margin-bottom:0}.fleet-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:10px;margin-top:15px}.fleet-device{border:1px solid var(--line);border-radius:9px;background:#fafcf9;text-align:left;padding:13px;min-width:0;color:#294334}.fleet-device[aria-pressed="true"]{border-color:var(--green);background:#eaf3ed}.fleet-device strong,.fleet-device small{display:block;overflow-wrap:anywhere}.fleet-device small{color:#64796c;font-size:12px;line-height:1.8}.fleet-device .pending-label{color:#a36710}.fleet-empty{grid-column:1/-1;padding:12px 0;color:#7b8985}#selected-device-label,#device-identity,#provision-identity,#confirm-target{overflow-wrap:anywhere}.fleet-bar label{margin-top:12px}#toggle-device{margin-top:10px}@media(max-width:700px){.fleet-title{align-items:flex-start;flex-direction:column}.fleet-list{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-device{padding:10px}.fleet-device strong{font-size:13px}}

[data-view="alarms"] .section-heading>div{min-width:0;width:100%}
[data-view="alarms"] .section-heading .muted{white-space:normal;overflow-wrap:anywhere}

.button.danger{background:#fff0ee;color:#ae3028;border:1px solid #edb6b1}.button.danger:hover{background:#ffe0dc}#delete-target,#delete-status{overflow-wrap:anywhere}

.log-text details{font-size:12px;color:#718077;margin-top:5px}.log-text summary{cursor:pointer}.log-text details small{white-space:normal;overflow-wrap:anywhere}
