:root{--navy:#06182e;--navy-2:#0a213d;--blue:#086df2;--blue-2:#0d84ff;--bg:#edf3f9;--panel:#fff;--text:#0b1730;--muted:#59708e;--line:#dce6f1;--green:#19c876;--red:#f0444f;--yellow:#ffb800;--shadow:0 5px 20px rgba(20,48,83,.06);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);font-size:16px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}a{color:#0568e8;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,#07182e 0%,#061a30 100%);color:#dbe9fb;padding:22px 15px 15px;display:flex;flex-direction:column;z-index:30}.logo{display:flex;align-items:center;gap:12px;color:white;padding:0 7px;margin-bottom:28px}.logo strong{font-size:1.25rem;letter-spacing:.045em;display:block}.logo strong::after{content:" RADIO";color:#22a7ff}.logo em{font-style:normal;font-size:.62rem;letter-spacing:.26em;color:#d5e2f2;display:block;margin-top:2px}.logo-signal{position:relative;width:38px;height:38px;border:3px solid #1b8cff;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 4px rgba(27,140,255,.14)}.logo-signal:before,.logo-signal:after{content:"";position:absolute;border:2px solid #28b7ff;border-top-color:transparent;border-bottom-color:transparent;border-radius:50%;inset:6px}.logo-signal:after{inset:-8px}.logo-signal i{width:7px;height:7px;background:white;border-radius:50%;box-shadow:0 10px 0 -1px #fff}.sidebar nav{display:flex;flex-direction:column;gap:4px;overflow:auto}.sidebar nav a{color:#d6e2f2;display:flex;align-items:center;gap:17px;padding:13px 15px;border-radius:10px;font-size:.96rem;transition:.15s}.sidebar nav a:hover{background:rgba(255,255,255,.06)}.sidebar nav a.active{background:linear-gradient(90deg,#0e5aab,#124e8d);color:white;box-shadow:inset 0 0 0 1px rgba(45,154,255,.16)}.nav-icon{font-size:1.35rem;width:27px;text-align:center;color:#c9def8}.sidebar nav a.active .nav-icon{color:#fff}.support{margin:auto 6px 0;background:rgba(255,255,255,.06);padding:17px;border-radius:12px}.support-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}.support-head>span{font-size:1.7rem}.support-head b,.support-head small{display:block}.support-head small{color:#b6c7dc;margin-top:3px}.support>a{display:block;text-align:center;background:var(--blue);color:#fff;padding:11px;border-radius:8px;font-weight:700}.main{margin-left:270px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:72px;background:#fff;display:flex;align-items:center;padding:0 30px;gap:20px;border-bottom:1px solid #dce7f2;position:sticky;top:0;z-index:20}.search{display:flex;align-items:center;background:#f1f5f9;border:1px solid #dce6f1;border-radius:9px;width:512px;height:43px;padding:0 12px;color:#10213b}.search span{font-size:1.45rem}.search input{border:0;outline:0;background:transparent;width:100%;height:100%;padding:0 10px;color:var(--text)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.notification{border:0;background:transparent;font-size:1.5rem;position:relative;color:#10213b}.notification b{position:absolute;top:-4px;right:-3px;background:#d81717;color:#fff;font-size:.65rem;border-radius:50%;width:18px;height:18px;display:grid;place-items:center}.divider{height:39px;width:1px;background:#e3eaf2;margin:0 4px}.avatar{width:40px;height:40px;border-radius:50%;background:#10233f;color:#fff;display:grid;place-items:center}.user strong,.user small{display:block}.user strong{font-size:.9rem}.user small{font-size:.78rem;color:#506987;margin-top:2px}.logout{font-size:1.2rem;color:#0b1730}.menu-toggle{display:none;border:0;background:transparent;font-size:1.5rem}.content{padding:22px 28px 26px;flex:1}.app-footer{font-size:.78rem;color:#73849a;text-align:center;padding:0 0 15px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 4px 22px}.page-head h1{font-size:2rem;margin:0 0 5px;letter-spacing:-.025em}.page-head p{margin:0;color:#344b6b;font-size:1rem}.eyebrow{font-size:.7rem;color:#0673ef;font-weight:800;letter-spacing:.16em;display:block;margin-bottom:6px}.new-install{display:flex;align-items:center;gap:13px;background:linear-gradient(135deg,#0875f8,#0061e7);color:#fff;padding:15px 22px;border-radius:8px;min-width:247px;box-shadow:0 7px 17px rgba(0,101,234,.18)}.new-install>span{font-size:2rem;width:40px;height:40px;border-radius:50%;background:rgba(11,176,255,.36);display:grid;place-items:center}.new-install b{font-size:1rem}.new-install small{display:block;font-size:.76rem;font-weight:400;margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:14px}.stat-card{background:var(--panel);border:1px solid #e0e8f1;border-radius:9px;min-height:110px;padding:18px;display:flex;align-items:center;gap:17px;box-shadow:var(--shadow)}.stat-icon{flex:0 0 56px;height:56px;border-radius:8px;color:#fff;display:grid;place-items:center;font-size:1.7rem}.blue{background:linear-gradient(135deg,#0069f1,#176ff5)}.green{background:linear-gradient(135deg,#1ebd73,#22d68a)}.red{background:linear-gradient(135deg,#eb4350,#ff5360)}.yellow{background:linear-gradient(135deg,#ffad00,#ffc21c)}.slate{background:linear-gradient(135deg,#65798f,#7d8da0)}.stat-card strong{display:block;font-size:1.7rem;line-height:1}.stat-card b{display:block;font-size:.83rem;margin-top:7px;white-space:nowrap}.stat-card small{font-size:.68rem;color:var(--muted);display:block;margin-top:5px;white-space:nowrap}.red-text{color:#9c0012}.panel{background:#fff;border:1px solid #dde6ef;border-radius:10px;box-shadow:var(--shadow);padding:16px}.charts-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:14px;margin-bottom:14px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:13px}.panel-title h2{font-size:1rem;margin:0}.panel-title a,.filter{font-size:.75rem;border:1px solid #dce6f1;padding:8px 12px;border-radius:7px;background:#f7faff}.line-chart{height:172px}.line-chart svg{width:100%;height:100%;overflow:visible}.grid-lines path{stroke:#dce8f2;stroke-width:1;fill:none}.line{stroke:#0878ef;stroke-width:3;fill:none}.area{fill:url(#none);fill:#d9ecfd;opacity:.65}.x-labels text{font-size:12px;fill:#58708e}.status-inner{display:flex;align-items:center;justify-content:space-around;height:172px}.donut{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--green) 0 calc(var(--active)*1%),var(--red) calc(var(--active)*1%) calc((var(--active) + 6)*1%),var(--yellow) calc((var(--active) + 6)*1%) calc((var(--active) + 9)*1%),#60758e 0);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;inset:25px;background:#fff;border-radius:50%}.donut div{z-index:1;text-align:center}.donut strong,.donut small{display:block}.donut strong{font-size:1.25rem}.donut small{font-size:.72rem;color:var(--muted)}.status-inner ul{list-style:none;padding:0;margin:0;min-width:220px}.status-inner li{display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:center;font-size:.79rem;margin:18px 0}.dot{width:12px;height:12px;border-radius:50%;display:block}.green-bg{background:var(--green)}.red-bg{background:var(--red)}.yellow-bg{background:var(--yellow)}.slate-bg{background:#60758e}.dashboard-middle{display:grid;grid-template-columns:2.35fr .9fr;gap:14px;margin-bottom:14px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.73rem;white-space:nowrap}th{background:#eff4f9;text-align:left;padding:9px 8px;color:#14223a;font-weight:700}td{border-bottom:1px solid #e7edf3;padding:8px;color:#10213c}tbody tr:last-child td{border-bottom:0}.empty{text-align:center!important;color:#71839a!important;padding:24px!important}.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:.68rem;font-weight:700;border:1px solid}.badge.success{background:#def9ea;border-color:#41d48b;color:#078745}.badge.danger{background:#ffe3e5;border-color:#ff8a91;color:#c51321}.badge.warning{background:#fff3d4;border-color:#ffc62e;color:#9d6500}.icon-btn{border:1px solid #dce6f0;border-radius:6px;padding:5px 8px;color:#0b376d}.model-card{padding:15px}.mini-active{font-size:.63rem;color:#05a951;font-weight:700}.model-preview{height:144px;border-radius:6px;overflow:hidden;margin-bottom:10px;background:#06182e}.model-preview img{width:100%;height:100%;object-fit:cover}.preview-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 80% 30%,#063f75,#031127 55%);color:#fff}.preview-placeholder span{font-size:2rem;color:#20a6ff}.preview-placeholder b{font-size:1.1rem}.preview-placeholder small{letter-spacing:.2em;margin-top:4px;color:#84caff}.model-card>strong{font-size:.82rem}.model-meta{display:flex;justify-content:space-between;font-size:.7rem;color:#465c78;margin:7px 0 10px}.model-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn{border:1px solid transparent;border-radius:7px;padding:10px 16px;font-weight:700;font-size:.78rem;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary{background:linear-gradient(135deg,#0875f8,#0061e7);color:#fff;box-shadow:0 5px 12px rgba(0,105,240,.12)}.btn-light{background:#eff6fe;border-color:#d4e4f5;color:#0756b4}.btn-success{background:#18b96b;color:#fff}.btn-danger{background:#e43e49;color:#fff}.btn-block{width:100%}.btn-sm{padding:7px 10px;font-size:.68rem}.row-actions{display:flex;gap:5px}.row-actions form{margin:0}.cell-sub{display:block;color:#6c8098;margin-top:4px}.alert{border-radius:8px;padding:11px 14px;margin-bottom:16px;font-size:.85rem}.alert-success{background:#e2faed;border:1px solid #8de1b5;color:#087744}.alert-danger{background:#ffe8ea;border:1px solid #ffabb0;color:#a71725}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}label{font-size:.78rem;font-weight:700;color:#203550;display:block}input,textarea,select{width:100%;border:1px solid #cfdbe8;border-radius:7px;padding:11px 12px;background:#fff;color:#10213c;outline:none;margin-top:7px}input:focus,textarea:focus,select:focus{border-color:#1785f5;box-shadow:0 0 0 3px rgba(23,133,245,.11)}label small{display:block;color:#71839a;font-weight:400;margin-top:5px}.stack-form{display:grid;gap:16px}.narrow-panel{max-width:580px}.wizard-form{display:grid;gap:14px}.form-section{display:grid;grid-template-columns:46px 1fr;gap:16px;padding:22px}.section-number{width:40px;height:40px;background:#e7f2ff;color:#0669de;border-radius:50%;display:grid;place-items:center;font-weight:800}.form-section h2{margin:0 0 4px;font-size:1.05rem}.form-section p{margin:0 0 18px;color:var(--muted);font-size:.82rem}.grow{min-width:0}.model-select{display:flex;gap:13px;flex-wrap:wrap}.select-card{width:210px;border:2px solid #e0e8f1;padding:10px;border-radius:9px;cursor:pointer}.select-card:has(input:checked){border-color:#0875f8;background:#f4f9ff}.select-card input{width:auto;margin:0 6px 8px 0}.select-card .small{height:85px;margin-bottom:9px}.select-card>strong,.select-card>small{display:block}.wizard-actions{display:flex;justify-content:flex-end;gap:10px}.cards-list{display:grid;gap:14px}.library-card{display:grid;grid-template-columns:260px 1fr auto;gap:22px;align-items:center}.library-card .model-preview{margin:0}.library-info h2{margin:8px 0 4px;font-size:1.15rem}.library-info p{margin:0 0 15px;color:var(--muted);font-size:.82rem}.library-info>div{display:flex;gap:25px;font-size:.75rem;color:#506984}.library-actions{display:flex;flex-direction:column;gap:8px}.empty-large{text-align:center;padding:55px 20px}.empty-large>span{font-size:2.5rem;color:#2b82e7}.empty-large h2{margin-bottom:5px}.empty-large p{color:var(--muted)}.empty-card{text-align:center;padding:25px;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.setting-card>span:first-child{font-size:2rem;color:#0b75eb}.setting-card h2{font-size:1rem;margin:12px 0 5px}.setting-card p{font-size:.8rem;color:var(--muted);line-height:1.55}.confirmation-panel{display:grid;grid-template-columns:60px 1fr auto;gap:18px;align-items:center;margin-bottom:14px;border-color:#91deb6}.confirm-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:white;background:var(--green);font-size:1.5rem}.confirmation-panel h2{margin:2px 0 4px}.confirmation-panel p{margin:0;color:var(--muted)}.confirmation-panel dl{display:flex;gap:28px;margin:12px 0 0}.confirmation-panel dl div{display:flex;gap:7px;font-size:.75rem}.confirmation-panel dt{color:var(--muted)}.confirmation-panel dd{margin:0;font-weight:700}.modal{width:min(650px,calc(100% - 30px));border:0;border-radius:12px;padding:0;box-shadow:0 20px 60px rgba(3,20,42,.25)}.modal::backdrop{background:rgba(3,16,34,.64)}.modal form{padding:22px}.modal-head{display:flex;justify-content:space-between;margin-bottom:20px}.modal-head h2{margin:0 0 4px}.modal-head p{margin:0;color:var(--muted);font-size:.8rem}.modal-head button{border:0;background:transparent;font-size:1.7rem}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.upload-progress{height:36px;background:#eef5fd;border-radius:7px;margin-top:15px;position:relative;overflow:hidden}.upload-progress i{position:absolute;inset:0;width:45%;background:#cfe7ff}.upload-progress span{position:relative;display:grid;place-items:center;height:100%;font-size:.75rem}.guest-body{background:#06182e}.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(460px,42%) 1fr}.login-panel{background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.login-logo{color:#0b1730;margin-bottom:33px}.login-logo .logo-signal{background:#071b34}.login-card{width:min(410px,100%)}.login-icon{width:54px;height:54px;background:#e1f0ff;color:#0873ec;border-radius:12px;display:grid;place-items:center;font-size:1.8rem;margin-bottom:18px}.login-card h1{font-size:1.8rem;margin:0 0 7px}.login-card>p{margin:0 0 25px;color:var(--muted)}.login-card form{display:grid;gap:17px}.password-field{position:relative}.password-field button{position:absolute;right:8px;top:14px;border:0;background:transparent;color:#58708e}.login-footer{color:#71839a;margin-top:28px}.login-art{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;background:radial-gradient(circle at 50% 42%,#0a3b70 0,#071f3d 42%,#041326 78%);overflow:hidden}.radio-orbits{position:relative;width:330px;height:330px;display:grid;place-items:center}.radio-orbits span{position:absolute;border:2px solid rgba(31,151,255,.25);border-radius:50%;inset:25px}.radio-orbits span:nth-child(2){inset:65px;border-color:rgba(31,151,255,.45)}.radio-orbits span:nth-child(3){inset:105px;border-color:#1a8df5}.radio-orbits i{font-style:normal;font-size:4.3rem;color:#35b4ff;text-shadow:0 0 35px #0b87ef}.login-art h2{font-size:2.2rem;margin:0}.login-art h2 b{color:#23a9ff}.login-art p{color:#aac6e4}.install-body{background:radial-gradient(circle at top,#123b67,#06182e);padding:35px 15px}.installer{width:min(760px,100%);margin:auto}.install-brand{display:flex;align-items:center;justify-content:center;color:#fff;gap:13px;margin-bottom:22px}.install-brand .brand-mark{font-size:2.5rem;color:#22a7ff}.install-brand strong,.install-brand small{display:block}.install-brand small{font-size:.65rem;letter-spacing:.2em}.stepper{display:flex;justify-content:center;gap:40px;margin-bottom:20px}.stepper span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#27415f;color:#98abc1;font-weight:700;position:relative}.stepper span:not(:last-child):after{content:"";height:2px;width:40px;background:#27415f;position:absolute;left:34px}.stepper span.active{background:#0875f8;color:#fff}.install-card{background:#fff;padding:30px;border-radius:13px;box-shadow:0 20px 60px rgba(0,0,0,.22)}.install-card h1{margin:0 0 7px}.muted{color:var(--muted)}.requirements{border:1px solid #dfE7f0;border-radius:8px;margin:20px 0;overflow:hidden}.requirements div{display:flex;justify-content:space-between;padding:11px 13px;border-bottom:1px solid #e7edf3;font-size:.8rem}.requirements div:last-child{border:0}.requirements b{font-size:.75rem}.ok{color:#0b9e58}.bad{color:#d32e3b}.credential-box{background:#f2f7fc;border:1px solid #dce7f2;padding:18px;border-radius:8px;margin:20px 0}.credential-box p{margin:0;color:var(--muted);font-size:.72rem}.credential-box strong{display:block;margin:3px 0 13px}.notice{background:#fff4d6;color:#825b00;padding:12px;border-radius:7px}.installer footer{color:#9db0c7;text-align:center;font-size:.75rem;margin-top:15px}.overlay{display:none}
@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(3,1fr)}.dashboard-middle{grid-template-columns:1fr}.model-card{display:none}.charts-grid{grid-template-columns:1fr}.status-panel{display:none}}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.menu-toggle{display:block}.overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:25}.search{width:auto;flex:1}.user{display:none}.content{padding:18px 14px}.stats-grid{grid-template-columns:1fr 1fr}.bottom-grid{grid-template-columns:1fr}.login-wrap{grid-template-columns:1fr}.login-art{display:none}.library-card{grid-template-columns:150px 1fr}.library-actions{grid-column:1/-1;flex-direction:row}.settings-grid{grid-template-columns:1fr}.confirmation-panel{grid-template-columns:50px 1fr}.confirmation-panel form{grid-column:1/-1}}
@media(max-width:560px){.topbar{padding:0 12px}.search{display:none}.page-head{align-items:flex-start;flex-direction:column}.dashboard-head .new-install{width:100%}.stats-grid{grid-template-columns:1fr}.stat-card{min-height:95px}.charts-grid{display:none}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.form-section{grid-template-columns:1fr}.section-number{width:34px;height:34px}.library-card{grid-template-columns:1fr}.library-card .model-preview{height:180px}.library-info>div{flex-wrap:wrap;gap:10px}.model-actions{grid-template-columns:1fr}.login-panel{padding:25px}.install-card{padding:20px}.stepper{gap:24px}.stepper span:not(:last-child):after{width:24px}.confirmation-panel dl{flex-direction:column;gap:5px}.page-head h1{font-size:1.65rem}}
.confirm-actions{display:flex;gap:8px}.confirm-actions form{margin:0}
