:root{--bg:#f5f7fb;--ink:#172334;--sub:#6b7689;--line:#e3e8f0;--accent:#3559db;--light:#eaf0ff;--sidebar:#121d31;--panel:#fff;--success:#159b76;--warn:#e0ad40;--bad:#cf4d5d}*{box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;font-size:14px;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}.sidebar{position:fixed;top:0;bottom:0;left:0;width:240px;background:var(--sidebar);color:#d6dff0;padding:28px 18px;display:flex;flex-direction:column;z-index:2}.logo{font-size:21px;letter-spacing:.035em;font-weight:850;color:#fff;margin:4px 10px 26px}.logo span{color:#7393ff}.env{margin:0 10px 24px;padding:7px 12px;background:#202d47;border:1px solid #34435e;border-radius:7px;font-size:11px;font-weight:800;letter-spacing:.16em}.dot{display:inline-block;float:right;height:7px;width:7px;border-radius:50%;background:#51d9a5;margin-top:5px}.sidebar nav{display:grid;gap:3px}.nav-item{color:#aebbce;padding:11px 12px;display:flex;align-items:center;gap:14px;border-radius:8px;font-weight:550}.nav-item span{font-size:19px;width:24px;text-align:center}.nav-item:hover{background:#24314b;color:white;text-decoration:none}.side-footer{margin-top:auto;padding:15px 10px;border-top:1px solid #2d3950;color:#8f9bb0;font-size:11px}.main{padding-left:240px;min-height:100vh}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:12px 36px;gap:20px}.global-search{flex:1;max-width:600px}.global-search input{width:100%;border:1px solid var(--line);background:#f7f9fc;padding:12px 16px;border-radius:8px}.user-chip{background:#f1f4f9;border-radius:50px;padding:8px 15px;color:#526073;font-size:12px;white-space:nowrap}.topbar form:last-child{margin:0}main{padding:30px 36px 60px;max-width:1700px;margin:0 auto}.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.23em;color:var(--accent);margin:0 0 5px}.page-header h1{font-size:28px;letter-spacing:-.04em;line-height:1.2;margin:0}.version{font-size:12px;padding:8px 12px;background:#e9edf7;border-radius:6px;color:#4c5a77;font-weight:750}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:25px;margin-bottom:22px;box-shadow:0 3px 16px rgba(25,45,90,.025);overflow-x:auto}.panel h2{font-size:16px;letter-spacing:-.01em;margin:0 0 20px}.panel h3{font-size:13px;margin:24px 0 12px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.panel-head h2{margin:0}.muted{color:var(--sub)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:10px}.metric span{font-size:12px;color:var(--sub)}.metric strong{font-size:32px;line-height:1;font-weight:800;letter-spacing:-.04em}.metric small{color:var(--sub);font-size:11px}.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.two-col>.panel{min-width:0}.stat-line{display:flex;align-items:center;justify-content:space-between;padding:12px 2px;border-bottom:1px solid var(--line)}.stat-line:last-child{border:0}.stat-line strong{font-size:13px}.bars{display:flex;gap:8px;align-items:flex-end;height:168px;border-bottom:1px solid var(--line);margin-top:14px}.bar-set{height:100%;display:flex;flex:1;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;min-width:14px}.bar{background:linear-gradient(180deg,#6385fa,#4060d8);width:100%;max-width:25px;border-radius:4px 4px 0 0}.bar-set small{font-size:10px;color:var(--sub)}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#77849a;font-weight:800;border-bottom:1px solid var(--line);padding:13px 12px}td{border-bottom:1px solid #edf0f4;padding:14px 12px;color:#445268}td b{color:var(--ink)}tr:last-child td{border-bottom:0}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.pill,.tag{display:inline-block;background:#edf2fa;padding:3px 9px;border-radius:20px;font-size:11px;color:#56688a}.tag{color:#5170c2}.btn{background:#fff;border:1px solid #d2dbea;padding:9px 13px;border-radius:7px;font-size:12px;color:#2d3b52;font-weight:650;display:inline-block;white-space:nowrap}.btn:hover{text-decoration:none;background:#f4f7fc}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.primary:hover{background:#2545c0}.btn.ghost{border:0;color:#526073}.btn.danger{color:#bb4352;border-color:#f0c9cf}.btn.mini{padding:5px 9px;font-size:11px}.inline-actions{display:flex;gap:6px}.inline-actions form{margin:0}.filters,.upload{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:15px 0}.filters input,.upload input,.upload select,form label>input,.filters select{background:#fff;border:1px solid #d6deea;border-radius:7px;padding:10px 12px;min-width:140px}.upload input[name=rel_path]{flex:1;min-width:230px}.upload label{display:flex;align-items:center;gap:4px;font-size:12px}.upload input[type=checkbox]{min-width:0}label{display:block;color:#536176;font-size:12px}label>input{display:block;width:100%;margin:6px 0 16px}.alert,.notice,.secret{border-radius:8px;padding:15px 18px;margin:0 0 20px}.notice{background:#eaf8f3;color:#176b55;border:1px solid #b6e1d4}.alert{background:#fff0f1;color:#ac4352;border:1px solid #f1d0d4}.secret{background:#fff7e4;border:1px solid #f0d58a}.secret code{display:block;white-space:pre-wrap;word-break:break-all;padding:12px;background:#fff;margin:10px 0}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:15px}.icon-tile{color:#39485c;padding:12px;border:1px solid var(--line);border-radius:9px;min-width:0}.icon-tile:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 6px 20px #1f3e7e15}.icon-art{height:100px;background:linear-gradient(135deg,#f7f9fd,#e9eff9);border-radius:7px;display:flex;justify-content:center;align-items:center;margin-bottom:12px}.icon-art img{max-width:72px;max-height:72px;image-rendering:auto}.icon-tile strong{display:block}.icon-tile small{color:var(--sub);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-tile .mono{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pager{display:flex;gap:12px;margin-top:20px}.preview-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}.preview{min-height:220px;border-radius:9px;display:flex;justify-content:center;align-items:center}.preview img{max-width:128px;max-height:128px}.preview.light{background:#eef3fa}.preview.dark{background:#1a263b}.detail-icon{width:128px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:24px 0}.detail-grid div{display:grid;gap:6px}.detail-grid small{color:var(--sub)}.detail-grid strong{word-break:break-all}.codepane{overflow:auto;background:#0f1b31;color:#d8e3fa;border-radius:9px;padding:18px;font-size:11px;max-height:350px}.search-result{padding:11px 0;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:8px;margin-bottom:20px}.tab{border:1px solid var(--line);background:white;padding:11px 16px;border-radius:8px;font-weight:700;color:#5d6a80}.tab.active{background:#3559db;border-color:#3559db;color:white}#cy{height:500px;background:#f8faff;border:1px dashed #d4deef;border-radius:10px}.device-grid{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:5px;max-width:950px}.device-cell{font-size:9px;font-family:ui-monospace,monospace;display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:4px;color:#627087}.device-cell.empty{background:#f0f2f5}.device-cell.settings{background:#c4d9ff;color:#315599}.device-cell.firmware{background:#ffebb2;color:#886200}.device-cell.both{background:#bee9d6;color:#12694a}.legend{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px;font-size:12px}input[type=range]{width:100%;margin:30px 0}.login-bg{background:radial-gradient(ellipse at 60% 20%,#25385c,#10192b);display:flex;min-height:100vh;align-items:center;justify-content:center}.login{background:#fff;border-radius:16px;width:420px;max-width:calc(100% - 24px);padding:35px;box-shadow:0 30px 70px #020b1e55}.login .logo{color:#1c2e51;margin:0 0 28px;padding:0}.login h1{font-size:24px;margin:0}.login p{margin:7px 0 26px}.login .btn{width:100%;padding:13px}.empty{margin:auto;color:var(--sub)}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.sidebar{width:185px}.main{padding-left:185px}.topbar{padding:10px 20px}main{padding:25px 20px}.icon-grid{grid-template-columns:repeat(auto-fill,minmax(115px,1fr))}}@media(max-width:700px){.sidebar{position:static;width:auto;padding:12px}.sidebar nav{grid-template-columns:repeat(4,1fr)}.sidebar .logo,.sidebar .env,.side-footer{display:none}.nav-item{font-size:10px;flex-direction:column;gap:2px;padding:7px 2px;text-align:center}.main{padding-left:0}.topbar{height:auto;flex-wrap:wrap}.user-chip{display:none}.page-header h1{font-size:24px}.metrics{gap:10px}.metric{padding:16px}.device-grid{gap:2px}.device-cell{font-size:7px}}
