:root{--bg:#f4f7fb;--card:#fff;--text:#182033;--muted:#7a8499;--line:#e7ebf2;--primary:#5865f2;--primary2:#7a5cff;--green:#22b573;--red:#ef5b5b;--shadow:0 10px 30px rgba(28,39,70,.07)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;background:#12182a;color:#dce3f7;padding:24px 16px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 26px}.brand-icon{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,var(--primary),#9a65ff);display:grid;place-items:center;color:#fff;box-shadow:0 8px 20px rgba(88,101,242,.35)}.brand b{display:block;font-size:17px}.brand small{display:block;color:#8290ad;margin-top:3px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:12px 14px;border-radius:11px;color:#9da9c4;display:flex;gap:12px;align-items:center;font-size:14px}.sidebar nav a span{font-size:18px;width:22px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:#252e4c;color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid #27304a;padding:17px 8px 0;display:grid;gap:13px;color:#9da9c4;font-size:13px}.device-mini{display:flex;align-items:center;gap:8px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.online{background:#2cd483;box-shadow:0 0 0 5px rgba(44,212,131,.12)}.dot.offline{background:#68738e}.main{margin-left:236px;min-height:100vh}.topbar{height:86px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;gap:18px;position:sticky;top:0;z-index:20}.topbar h1{font-size:21px;margin:0}.topbar p{margin:5px 0 0;color:var(--muted);font-size:12px}.top-user{margin-left:auto;background:#f0f2f8;padding:9px 13px;border-radius:20px;font-size:13px}.menu-btn{display:none;border:0;background:none;font-size:22px}.content{padding:28px 34px 50px;max-width:1500px}.grid{display:grid;gap:20px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.metric{display:flex;align-items:center;justify-content:space-between}.metric .value{font-size:30px;font-weight:700;margin-top:8px}.metric .label{font-size:13px;color:var(--muted)}.metric-icon{width:48px;height:48px;border-radius:15px;background:#eef0ff;color:var(--primary);display:grid;place-items:center;font-size:22px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:26px 0 14px}.section-title h2{font-size:17px;margin:0}.section-title p{color:var(--muted);margin:5px 0 0;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:10px 16px;font-weight:600;cursor:pointer;font-size:14px}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary2))}.btn-secondary{background:#eef0f7;color:#39425a}.btn-danger{background:#fff0f0;color:#d94747}.btn-sm{padding:7px 11px;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:600}.field small{color:var(--muted)}input,select,textarea{width:100%;border:1px solid #dfe4ee;border-radius:10px;padding:11px 12px;background:#fff;color:var(--text);outline:0;font:inherit}input:focus,select:focus,textarea:focus{border-color:#7882f5;box-shadow:0 0 0 3px rgba(88,101,242,.1)}textarea{min-height:110px;resize:vertical}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;white-space:nowrap}.table th,.table td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}.table th{color:#778096;font-weight:600;background:#fafbfe}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:600}.badge.green{background:#e9f9f1;color:#159660}.badge.gray{background:#eef1f5;color:#687287}.badge.blue{background:#eef0ff;color:#5060dc}.badge.red{background:#ffeded;color:#d74343}.notice{border-radius:12px;padding:13px 15px;margin-bottom:18px;font-size:13px}.notice.success{background:#eaf9f2;color:#168458}.notice.error{background:#fff0f0;color:#bd3838}.notice.info{background:#eef3ff;color:#4050b6}.status-hero{display:flex;gap:24px;align-items:center}.robot-orb{width:105px;height:105px;border-radius:35px;background:linear-gradient(145deg,#606ff8,#a368ff);display:grid;place-items:center;color:#fff;font-size:48px;box-shadow:0 18px 40px rgba(88,101,242,.3)}.status-info h2{margin:0 0 7px}.status-info p{margin:4px 0;color:var(--muted)}.chat-box{height:430px;overflow:auto;background:#f7f8fc;border-radius:14px;padding:18px}.bubble{max-width:80%;padding:11px 14px;border-radius:15px;margin-bottom:12px;line-height:1.65;font-size:14px;white-space:pre-wrap}.bubble.user{background:#5865f2;color:#fff;margin-left:auto;border-bottom-right-radius:4px}.bubble.assistant{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}.test-row{display:flex;gap:10px;margin-top:14px}.test-row input{flex:1}.code-box{background:#11182a;color:#dce4ff;border-radius:12px;padding:15px;overflow:auto;font:12px/1.7 ui-monospace,monospace}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#e8e9ff,transparent 40%),#f5f7fb}.login-card{width:min(420px,calc(100% - 34px));background:#fff;border-radius:22px;padding:34px;box-shadow:0 24px 70px rgba(40,48,88,.13)}.login-card h1{margin:0 0 8px}.login-card>p{color:var(--muted);margin:0 0 25px}.login-card .field{margin-bottom:15px}.login-card .btn{width:100%;margin-top:8px}.empty{text-align:center;color:var(--muted);padding:40px 20px}.key-mask{font-family:monospace;color:#727c91}.row-actions{display:flex;gap:8px}.progress{height:8px;border-radius:99px;background:#edf0f5;overflow:hidden}.progress span{height:100%;display:block;background:linear-gradient(90deg,var(--primary),#9d6aff)}@media(max-width:1050px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:none}.main{margin-left:0}.menu-btn{display:block}.topbar{padding:0 18px;height:76px}.content{padding:20px 15px 40px}.grid.cols-4,.grid.cols-2{grid-template-columns:1fr}.status-hero{align-items:flex-start}.robot-orb{width:78px;height:78px;border-radius:25px}.top-user{display:none}}
.install-page{align-items:start;padding:42px 0}.install-card{width:min(960px,calc(100% - 28px));background:#fff;border-radius:22px;padding:30px;box-shadow:0 24px 70px rgba(40,48,88,.13)}.install-head{display:flex;align-items:center;gap:15px;margin-bottom:24px}.install-head h1{margin:0 0 6px}.install-head p{margin:0;color:var(--muted)}.install-card .card h2{margin-top:0;font-size:17px}.env-check{margin-bottom:20px}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.check-item{display:flex;align-items:center;gap:9px;font-size:13px}.install-submit{margin-top:20px;width:100%;padding:13px}.install-submit:disabled{opacity:.5;cursor:not-allowed}.check-label{display:flex!important;grid-template-columns:20px 1fr!important;align-items:center;gap:8px;font-weight:500!important}.check-label input{width:auto}.soft-line{border:0;border-top:1px solid var(--line);margin:24px 0}.face-result{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#f8f9fd;display:grid;gap:4px}.face-result b{font-size:18px}.face-result span,.face-result small{color:var(--muted)}.inline-upload{margin:0}.table small{color:var(--muted)}@media(max-width:760px){.install-page{padding:14px 0}.install-card{padding:18px}.check-grid{grid-template-columns:1fr}.install-head h1{font-size:20px}}
.weekday-grid{display:flex;flex-wrap:wrap;gap:10px}.weekday-check{display:flex!important;align-items:center;gap:5px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfe;font-weight:500!important}.weekday-check input{width:auto}.table audio{width:240px;max-width:100%;height:34px}.field[hidden]{display:none!important}
