:root{font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#163431;background:#f4f6f4;font-synthesis:none;--accent:#197b65;--muted:#7a8985}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #62b9a6;outline-offset:4px}.topbar{height:90px;background:#fff;border-bottom:1px solid #e5eae6;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1080px)/2))}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;font-size:13px;font-weight:750;letter-spacing:2px}.brandmark{width:38px;height:38px;border-radius:12px;background:#163d35;color:#d5f39d;display:grid;place-items:center;font-size:26px;letter-spacing:0;font-weight:500}.brand small{display:block;font-size:9px;letter-spacing:2.5px;color:#8b9691;margin-top:5px}.text-button{border:0;background:transparent;font-size:13px;color:#62736b;padding:12px}main{max-width:1080px;margin:auto;padding:50px 24px 20px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#6e8a7c;margin:0 0 14px}h1{font-size:36px;letter-spacing:-1.4px;line-height:1.3;margin:0 0 12px;font-weight:650}.title-dot{color:#8cae56}.muted{font-size:13px;color:var(--muted);line-height:1.7;margin:0}.device-label{border:1px solid #dce5db;border-radius:50px;font-size:11px;letter-spacing:1px;padding:11px 16px;color:#788779;background:#eef2eb}.device-label span{font-weight:700;margin-left:8px;color:#325b47}.metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:24px 30px;background:#153c33;color:#fff;border-radius:16px;box-shadow:0 8px 25px #173e3310}.metrics>div{padding:0 28px;border-right:1px solid #ffffff1c}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border:0}.metric-label{display:block;color:#9ab9ab;font-size:11px;letter-spacing:1px;margin-bottom:12px}.metrics strong{font-size:20px;display:flex;gap:10px;align-items:center;font-weight:500}.metrics small{font-size:14px;color:#91a79a}.dot{width:7px;height:7px;background:#b6dc83;display:inline-block;border-radius:50%;flex-shrink:0}.dot.gray{background:#899a91}.notice{font-size:12px;line-height:1.8;margin:18px 0 34px;color:#74857a;padding:0 2px}.notice.warn{color:#a67437}.section-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 18px;gap:12px}.section-head>div{display:flex;align-items:center;gap:14px}h2{font-size:16px;font-weight:650;margin:0;letter-spacing:.3px}.section-head .muted{font-size:11px}.danger-button{background:#fff;border:1px solid #dddeda;border-radius:8px;padding:9px 15px;font-size:12px;color:#8d5145}.channels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.channel{position:relative;background:white;border:1px solid #e2e8e1;padding:25px;border-radius:13px;transition:background .2s,border-color .2s}.channel.active{background:#f2f8ed;border-color:#a8c49a}.channel-head{display:flex;align-items:center;justify-content:space-between}.channel-number{font:11px ui-monospace,monospace;letter-spacing:1px;color:#85958b}.channel-state{font-size:11px;background:#f0f3f0;border-radius:5px;padding:5px 9px;color:#7b8a80}.active .channel-state{background:#e0edd8;color:#426c37}.channel-body{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px}.channel-icon{color:#536b5a;width:36px;height:36px;padding:8px;background:#f1f4ee;border-radius:10px}.active .channel-icon{background:#dfeecf;color:#477736}.channel h3{font-size:19px;font-weight:550;margin:0}.channel-title{display:flex;align-items:center;gap:13px}.toggle{height:30px;width:52px;border:0;background:#dce3db;border-radius:20px;position:relative;padding:0;flex-shrink:0}.toggle:before{content:"";position:absolute;top:4px;left:4px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:transform .2s}.toggle[aria-checked=true]{background:#58934d}.toggle[aria-checked=true]:before{transform:translateX(22px)}.channel-meta{font-size:11px;color:#93a08f;margin-left:49px}.output-note{font-size:11px;color:#8c998e;line-height:1.9;margin:16px 2px 30px}.activity{background:#fff;border:1px solid #e2e8e1;border-radius:13px;padding:22px 25px}.activity .section-head{margin-bottom:15px}.activity-list{max-height:230px;overflow:auto}.activity-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eff1ed;padding:13px 0;font-size:12px;gap:10px}.activity-row:first-child{border-top:0}.activity-row time{color:#8c998d;font:11px ui-monospace,monospace;margin-right:18px}.activity-status{font-size:11px;color:#69845a;white-space:nowrap}.activity-status.error{color:#aa7548}.empty{text-align:center;color:#9aa696;padding:20px 0;font-size:12px}footer{display:flex;justify-content:space-between;margin-top:28px;font-size:9px;letter-spacing:1.6px;color:#8c9b8b;padding:8px 0;gap:12px}footer .dot{width:5px;height:5px;margin-right:6px;background:#84a077}.login-card{max-width:430px;margin:38px auto 80px;padding:38px;background:white;border:1px solid #e0e7df;border-radius:18px;box-shadow:0 15px 60px #1c402208}.login-card h1{font-size:29px;letter-spacing:-.7px}.login-card form{margin-top:30px}.login-card label{display:block;font-size:12px;color:#536e5a;margin-top:18px}.login-card input{display:block;width:100%;padding:13px 12px;margin-top:8px;border:1px solid #d9e2d6;border-radius:8px;background:#fafcf8;color:#234432}.primary{display:flex;justify-content:space-between;width:100%;padding:14px 16px;background:#1c4939;color:#f4ffe9;border:0;border-radius:8px;font-size:13px;margin-top:26px}.error{color:#b05c44;font-size:12px;min-height:18px;line-height:1.6}.login-foot{border-top:1px solid #edf0e9;padding-top:20px;color:#8d9b86;font-size:10px;text-align:center}.login-foot .dot{background:#799d63;margin-right:5px;width:5px;height:5px}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#163d33;color:white;padding:13px 20px;font-size:13px;border-radius:10px;box-shadow:0 6px 30px #0002;max-width:90vw;width:max-content;z-index:10}#toast.error{background:#86513c}@media(min-width:1300px){main{padding-top:60px}}@media(max-width:600px){.topbar{height:74px;padding:0 22px}.brand{font-size:11px;letter-spacing:1.4px}.brand small{font-size:8px}.text-button{font-size:11px}main{padding:32px 20px 16px}h1{font-size:29px}.heading{margin-bottom:24px}.device-label{padding:9px 11px;font-size:9px}.metrics{padding:21px 18px}.metrics>div{padding:0 13px}.metrics strong{font-size:15px;gap:6px}.metric-label{font-size:9px;letter-spacing:0}.metrics small{font-size:11px}.notice{font-size:11px;margin-bottom:27px}.channels{grid-template-columns:1fr;gap:12px}.channel{padding:21px}.channel-body{margin-top:17px}.channel-meta{font-size:10px}.activity{padding:20px}.activity-row time{margin-right:8px}.activity-row{font-size:11px}.activity .section-head{align-items:flex-start;flex-direction:column;gap:7px}footer{font-size:8px;letter-spacing:.8px}.login-card{margin:20px auto 40px;padding:28px 24px}.login-card h1{font-size:26px}.section-head>div{gap:10px}}
.timer-panel{background:#fff;border:1px solid #e2e8e1;border-radius:13px;padding:23px 25px;margin-bottom:25px}.timer-note,.timer-hint,.timer-foot{font-size:12px;color:#7a8980;line-height:1.8}.timer-note{margin:0 0 20px}.timer-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.timer-fields label{font-size:11px;color:#5c7465;display:block}.timer-fields input,.timer-fields select{font:inherit;font-size:13px;width:100%;margin-top:7px;border:1px solid #d9e2d6;border-radius:7px;padding:11px 9px;background:#fafcf8;color:#234432;min-height:41px}#timer-days{border:0;padding:0;margin:18px 0 12px}#timer-days legend{font-size:11px;color:#5c7465;margin-bottom:9px}.weekday-options{display:flex;gap:9px;flex-wrap:wrap}.weekday-options label{font-size:12px;border:1px solid #e0e7db;border-radius:7px;padding:8px 10px;display:flex;align-items:center;gap:5px;cursor:pointer}.weekday-options input{accent-color:#367349;margin:0}.timer-form-actions{display:flex;gap:10px;margin:13px 0 22px}.timer-form-actions button{background:#1c4939;color:white;padding:11px 16px;border:0;border-radius:7px;font-size:12px}#cancel-timer{background:#edf1e8;color:#5d7154}.timer-row{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:17px 0;border-top:1px solid #edf1e9}.timer-description strong{font-weight:550;font-size:13px}.timer-description p{font-size:11px;color:#8a9988;margin:7px 0 0;line-height:1.7}.timer-status{font-size:10px;color:#929b8a;margin-left:10px;background:#f2f3ee;padding:4px 6px;border-radius:4px;white-space:nowrap}.timer-status.enabled{background:#e8f1df;color:#66824b}.timer-actions{display:flex;gap:6px;flex-shrink:0}.timer-actions button{font-size:11px;border:1px solid #e0e7da;border-radius:6px;background:white;color:#647b56;padding:7px 9px}.timer-foot{font-size:10px;margin:12px 0 0;color:#98a28f}@media(max-width:700px){.timer-fields{grid-template-columns:1fr 1fr}.timer-panel{padding:20px}.timer-panel>.section-head{align-items:flex-start}.timer-panel>.section-head>div{flex-direction:column;align-items:flex-start;gap:4px}.timer-row{align-items:flex-start;flex-direction:column;gap:11px}.timer-actions{align-self:flex-end}.weekday-options{gap:6px}.weekday-options label{padding:7px 8px;font-size:11px}}
.channel-name-field{min-width:0}.channel-title{min-width:0}.channel-title h3{overflow-wrap:anywhere}.channel-icon{flex-shrink:0}.rename-button{padding:0;border:0;background:none;color:#729176;font-size:10px;margin-top:6px}.channel-body{gap:12px}.rename-form{background:#f4f7f0;padding:14px;border-radius:9px;margin:16px 0}.rename-form label{font-size:11px;color:#5b745a}.rename-form input{width:100%;border:1px solid #cddbc8;border-radius:7px;padding:10px;font:inherit;font-size:14px;margin:7px 0 10px}.rename-form>div{display:flex;gap:8px}.rename-form button{font-size:11px;border:0;border-radius:6px;padding:8px 12px;background:#356746;color:white}.rename-form button+button{background:#e6ecdf;color:#67775a}.channel-schedule{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e5ecdf;margin-top:23px;padding-top:18px;gap:16px}.channel-time{min-width:0}.channel-time-label{display:block;font-size:11px;margin-bottom:8px;letter-spacing:1px}.channel-time.on .channel-time-label{color:#4a8a56}.channel-time.off .channel-time-label{color:#b1744b}.channel-time strong{display:block;font:500 29px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:#244b38;font-variant-numeric:tabular-nums;letter-spacing:-1px}.channel-time.off strong{color:#875d41}.channel-time small{display:block;font-size:9px;color:#929e88;margin:5px 0 9px;line-height:1.5}.channel-time strong.time-unset{font:15px system-ui;color:#a3ad9a;letter-spacing:0;padding-top:5px}.channel-time strong.time-disabled{color:#9ba894}.channel-period-button{font-size:11px;border:0;background:transparent;padding:9px 0 0;color:#758e69}.period-form{padding:22px;background:#f7faf3;border:1px solid #e1e9d8;border-radius:12px;margin-bottom:24px}.period-device-label{font-size:12px;color:#536f54}.period-device-label select{display:block;width:100%;max-width:380px;padding:11px;margin-top:8px;border:1px solid #cedcc5;border-radius:8px;font:inherit;background:white;color:#294d35}.period-time-inputs,.period-display-times{display:grid;grid-template-columns:1fr 28px 1fr;align-items:center;gap:12px;margin-top:22px}.period-time-inputs>label>span{display:block;font-size:13px;font-weight:600;margin-bottom:9px}.on-time-label>span{color:#3b7b48}.off-time-label>span{color:#a5683d}.period-time-inputs input{display:block;min-width:0;width:100%;font:500 29px ui-monospace,monospace;padding:14px 12px;background:white;border:1px solid #cbdcbe;border-radius:9px;color:#254f37}.period-time-inputs .off-time-label input{border-color:#e1d3bf;color:#8e5f3b}.period-arrow{font-size:22px;color:#9fac91;text-align:center}#period-days{border:0;padding:0;margin:23px 0 16px}#period-days legend{font-size:12px;color:#54704e;margin-bottom:11px}#period-days legend small{font-size:10px;color:#8e9b81;font-weight:400;margin-left:9px}.period-preview{font-size:14px;line-height:1.9;color:#3d6538;background:#e9f1df;padding:12px 15px;border-radius:8px;margin:19px 0 14px;overflow-wrap:anywhere}.period-form .timer-form-actions{margin-bottom:0}.period-list{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:23px}.period-card{border:1px solid #dce7d2;border-radius:11px;padding:20px;background:#fff}.period-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.period-card h3{font-size:15px;margin:0;font-weight:600;overflow-wrap:anywhere}.period-badge{font-size:9px;color:#5d7a49;background:#edf5e5;white-space:nowrap;border-radius:5px;padding:4px 7px}.period-disabled{background:#f9faf7;border-color:#e5e9df}.period-disabled .period-badge{color:#8f9b83;background:#ecefe6}.period-display-times{margin-top:23px;gap:7px;grid-template-columns:1fr 20px 1fr}.period-display-times>div>span{font-size:11px;display:block;margin-bottom:8px}.period-on>span{color:#4a8550}.period-off>span{color:#aa7248}.period-display-times strong{display:block;font:500 31px/1.2 ui-monospace,monospace;font-variant-numeric:tabular-nums;color:#28593a;letter-spacing:-1px}.period-off strong{color:#92613f}.period-display-times small{display:block;color:#94a086;font-size:10px;margin-top:7px;min-height:14px}.period-repeat{font-size:11px;color:#7e9171;line-height:1.8;margin:19px 0 16px}.period-card .timer-actions{justify-content:flex-end;flex-wrap:wrap}.other-timers{border-top:1px solid #e3eadc;padding-top:20px}.other-timers>summary{font-size:13px;cursor:pointer;color:#63805b;margin-bottom:17px}#other-timer-count{font-size:11px;color:#91a283}@media(max-width:650px){.period-list{grid-template-columns:1fr}.period-form{padding:17px}.period-time-inputs{gap:7px;grid-template-columns:1fr 20px 1fr}.period-time-inputs input{font-size:24px;padding:13px 6px}#period-days legend small{display:block;margin:5px 0 0;line-height:1.6}.period-preview{font-size:12px;padding:10px}.channel-time strong{font-size:31px}.period-card{padding:18px}.period-display-times strong{font-size:35px}.timer-panel>.section-head{gap:10px}.timer-panel>.section-head h2{font-size:15px}}
.period-time-inputs>label{min-width:0}.period-time-inputs{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)}@media(max-width:650px){.period-time-inputs{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:5px}.period-time-inputs input{font-size:22px;padding:13px 4px;max-width:100%}}
