
*{box-sizing:border-box}
:root{
 --bg:#050b13;--bg2:#07111d;--sidebar:#091521;--topbar:#07111c;
 --panel:#0f1e2f;--panel2:#0c1928;--panel3:#0a1623;
 --line:#1e3448;--line2:#29465f;--text:#f4f8fb;--muted:#7591a7;
 --cyan:#28bff0;--cyan2:#36d2f4;--blue:#5ea3ff;--green:#35d39a;
 --amber:#e7a92a;--red:#ef7180;--shadow:0 12px 35px rgba(0,0,0,.18);
 --sidebar-w:214px;--topbar-h:60px;
}
html,body{margin:0;min-height:100%;font-family:"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
body{min-height:100vh;overflow-x:hidden}a{color:inherit}.muted{color:var(--muted)}
/* LOGIN */
.login-command{min-height:100vh;display:grid;grid-template-columns:minmax(0,64.4%) minmax(430px,35.6%);background:#050b13}
.login-hero{position:relative;min-height:100vh;padding:52px 74px 40px 92px;overflow:hidden;background:
 radial-gradient(circle at 2% 84%,rgba(2,151,159,.33),transparent 31%),
 radial-gradient(circle at 84% 20%,rgba(27,97,169,.25),transparent 41%),
 linear-gradient(120deg,#06131d 0%,#071a27 46%,#0a1d34 100%)}
.login-hero:before{content:"";position:absolute;left:-8%;right:-10%;bottom:-17%;height:55%;opacity:.33;background-image:
 linear-gradient(rgba(41,153,192,.22) 1px,transparent 1px),
 linear-gradient(90deg,rgba(41,153,192,.22) 1px,transparent 1px);
 background-size:86px 54px;transform:perspective(520px) rotateX(56deg);transform-origin:bottom}
.login-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(33,188,220,.22);box-shadow:0 -160px 0 rgba(33,188,220,.10),0 -315px 0 rgba(33,188,220,.08)}
.login-logo{position:relative;z-index:2;width:255px;height:auto}
.login-copy{position:relative;z-index:2;margin-top:112px;max-width:560px}
.login-kicker,.section-kicker{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#7898b2}
.login-copy h1{margin:24px 0 18px;font-size:78px;line-height:1.03;letter-spacing:-.055em;font-weight:800;max-width:520px}
.login-copy p{margin:0;color:#89a5b8;font-size:16px}
.login-version{position:absolute;z-index:2;left:92px;bottom:14px;color:#54758e;font-size:11px;letter-spacing:.12em}
.login-side{display:flex;align-items:center;justify-content:center;padding:44px 72px;background:#050b13}
.login-box{width:min(100%,430px)}
.login-box .section-kicker{color:#78a2c7}.login-box h2{font-size:29px;margin:20px 0 10px;letter-spacing:-.025em}.login-box .lead{color:#7893aa;margin:0 0 28px}
.field{display:flex;flex-direction:column;gap:7px}.field+ .field{margin-top:16px}.field label{font-size:12px;font-weight:700;color:#d9e5ed}
.field input,.field select,.field textarea{width:100%;min-height:43px;border:1px solid #2b4057;border-radius:7px;background:#1d2a3d;color:#fff;padding:10px 12px;font:inherit;outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#3dbfe8;box-shadow:0 0 0 2px rgba(40,191,240,.08)}
.login-btn,.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 15px;border-radius:7px;text-decoration:none;font:inherit;font-weight:750;cursor:pointer}
.login-btn{width:100%;margin-top:18px;border:1px solid #34c8ed;background:linear-gradient(90deg,#21c7df,#38aef0);color:#03121c;justify-content:space-between}
.login-btn span:last-child{font-size:18px}.login-note{margin-top:24px;color:#7893aa;line-height:1.5;font-size:13px}.login-note b{color:#a7bdcd;font-weight:600}
.error{padding:11px 12px;border:1px solid #703442;background:#311923;color:#ffc2cc;border-radius:7px;margin-bottom:14px}
.notice{padding:11px 12px;border:1px solid #6d5424;background:#2e2516;color:#ffe3a8;border-radius:7px}
/* COMMAND CENTER SHELL */
.cc-shell{min-height:100vh;padding-left:var(--sidebar-w);background:#050b13}
.cc-sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);display:flex;flex-direction:column;background:linear-gradient(180deg,#0a1724,#07111c);border-right:1px solid var(--line);z-index:60}
.cc-logo-wrap{height:138px;display:flex;align-items:center;padding:22px 15px;border-bottom:1px solid rgba(30,52,72,.55)}
.cc-logo-wrap img{width:126px;height:auto}
.cc-menu{padding:18px 12px 12px;overflow:auto;flex:1}
.cc-menu-title{margin:0 0 9px;padding:0 1px;color:#6c93b6;font-size:9px;font-weight:850;letter-spacing:.2em;text-transform:uppercase}
.cc-menu-title.intel{margin-top:21px}
.cc-menu a{display:flex;align-items:center;gap:12px;min-height:37px;padding:8px 9px;margin:2px 0;border-radius:7px;color:#91acce;text-decoration:none;font-size:11px;font-weight:550;transition:.15s}
.cc-menu a:hover{background:#0f2638;color:#d6e9f7}.cc-menu a.active{background:#12334a;color:#d9f3ff}
.cc-menu .ico{width:15px;text-align:center;color:#5f9bc6;font-family:"Segoe UI Symbol","Segoe UI",sans-serif;font-size:13px}.cc-menu a.active .ico{color:#34c6e9}
.cc-side-user{margin:0 13px 12px;padding:14px 7px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px}
.cc-side-user strong{display:block;font-size:11px}.cc-side-user small{display:block;margin-top:3px;color:#69859a;font-size:9px}
.cc-side-user a{font-size:10px;color:#91acce;text-decoration:none}
.cc-topbar{position:fixed;left:var(--sidebar-w);right:0;top:0;height:var(--topbar-h);z-index:55;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 25px;background:#07111c;border-bottom:1px solid var(--line)}
.cc-crumb{display:flex;gap:10px;align-items:center;font-size:11px}.cc-crumb strong{color:#f2f6f9}.cc-crumb span{color:#607b90}
.system-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #1d4050;border-radius:999px;background:#0b1c2a;color:#86a3b8;font-size:10px}.system-pill i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(53,211,154,.6)}
.cc-content{min-height:100vh;padding-top:var(--topbar-h)}.uv-main{width:min(1295px,calc(100% - 48px));margin:0 auto;padding:28px 0 36px}
/* MAIN DASHBOARD */
.hero-row{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}
.hero-row .section-kicker{color:#6b95ba}.hero-row h1{font-size:30px;margin:12px 0 7px;letter-spacing:-.035em}.hero-row p{margin:0;color:#7893aa;font-size:13px}
.hero-actions{display:flex;align-items:center;gap:10px}.clock{font-family:Consolas,monospace;color:#6b95ba;font-size:10px}
.btn-primary{border:1px solid #2cc5e9;background:linear-gradient(90deg,#26c5df,#3aafea);color:#03121c}.btn-secondary{border:1px solid #29445b;background:#0d1d2c;color:#c6d7e3}.btn-danger{border:1px solid #6d3441;background:#311923;color:#ffc4cc}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi{min-height:104px;display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(145deg,#0f2031,#0b1927);box-shadow:var(--shadow)}
.kpi-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid;border-radius:8px;font-size:15px}.kpi-icon.cyan{border-color:#22c8d9;background:#0c3c43;color:#36ddeb}.kpi-icon.green{border-color:#1ab776;background:#0d3c2c;color:#37dc9a}.kpi-icon.amber{border-color:#b47b13;background:#493414;color:#eeb840}.kpi-icon.blue{border-color:#4b85d6;background:#15325d;color:#70a8fa}.kpi small{display:block;color:#6687a1;font-size:9px;letter-spacing:.11em;text-transform:uppercase}.kpi strong{display:block;font-size:22px;margin:5px 0 2px}.kpi span{display:block;color:#7893aa;font-size:10px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,2.12fr) minmax(300px,1fr);gap:15px;margin-bottom:16px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#0e1e2e,#0b1826);border-radius:9px;box-shadow:var(--shadow);padding:18px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{font-size:15px;margin:5px 0 0}.panel-head a{font-size:10px;text-decoration:none;color:#35c9e5}.empty-box{min-height:115px;display:grid;place-items:center;text-align:center;border:1px dashed #1e3850;border-radius:8px;color:#6e8ca5;font-size:13px}.empty-box strong{display:block;color:#7f9bb0;margin-bottom:5px}
.capability{padding:17px}.capability-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cap-item{display:flex;align-items:center;gap:10px;min-height:57px;padding:10px 12px;border:1px solid #172f43;border-radius:7px;background:#0b1927}.cap-item .ico{color:#23c7dc;font-size:15px}.cap-item strong{display:block;font-size:11px}.cap-item small{display:block;color:#66869e;font-size:9px;margin-top:3px}.version-tag{font-size:9px;border:1px solid #28506a;border-radius:5px;padding:5px 7px;color:#79a4c0}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{font-size:26px;margin:9px 0 5px}.page-head p{margin:0;color:#7792a7;font-size:12px}.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.grid-2{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.service-row{display:flex;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid #1b3348;border-radius:7px;background:#0a1724;font-size:12px}
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase}.badge.online{background:#123a2c;color:#86eabf}.badge.offline{background:#3b1d27;color:#ffbcc6}.badge.warn{background:#473517;color:#ffe0a0}.badge.neutral{background:#1c2d3c;color:#afc2d0}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.progress{height:8px;background:#142739;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:#29bce7}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 13px;border-bottom:1px solid #192e41;text-align:left;font-size:12px}th{color:#6f8da4;background:#091724;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.form-actions{display:flex;align-items:end}.camera-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.camera-card{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#0d1c2b}.camera-preview{aspect-ratio:16/9;display:grid;place-items:center;background:#02070c;position:relative;border-bottom:1px solid var(--line)}.camera-icon{font-size:30px;color:#426984}.status-pin{position:absolute;top:9px;left:9px}.camera-body{padding:13px}.camera-name{font-size:15px;font-weight:800}.camera-location{font-size:11px;color:#718ea5;margin-top:4px}.camera-meta,.camera-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.live-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.layout-buttons{display:flex;gap:5px}.layout-buttons button{border:1px solid #26465e;background:#0b1a28;color:#b7cbd9;border-radius:6px;padding:6px 9px;cursor:pointer}.layout-buttons button.active{color:#32c8e8;border-color:#32c8e8}.live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.live-grid.cols-1{grid-template-columns:1fr}.live-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.live-tile{aspect-ratio:16/9;position:relative;overflow:hidden;border:1px solid #1b3448;border-radius:7px;background:#000}.live-tile iframe{width:100%;height:100%;border:0}.live-label{position:absolute;left:7px;right:7px;bottom:7px;display:flex;justify-content:space-between;gap:8px;padding:7px 8px;border-radius:6px;background:rgba(2,8,13,.8);font-size:10px;backdrop-filter:blur(8px);pointer-events:none}
.viewer{display:grid;grid-template-columns:300px minmax(0,1fr);height:calc(100vh - var(--topbar-h));min-height:620px}.viewer-side{border-right:1px solid var(--line);background:#07131f;overflow:auto}.viewer-side-head{padding:18px;border-bottom:1px solid var(--line)}.viewer-side-head h1{font-size:16px;margin:6px 0}.viewer-list{padding:9px}.viewer-camera{display:block;padding:11px;border:1px solid transparent;border-radius:7px;text-decoration:none;margin-bottom:5px}.viewer-camera:hover,.viewer-camera.active{background:#0f2c40;border-color:#1f506c}.viewer-camera strong{font-size:12px}.viewer-camera small{display:block;color:#6d8ca3;font-size:9px;margin-top:4px}.viewer-main{padding:13px;background:#03080d}.viewer-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.viewer-stage{height:calc(100% - 51px);min-height:470px;border:1px solid #193247;border-radius:8px;overflow:hidden;background:#000}.viewer-stage iframe{width:100%;height:100%;border:0}
.recording-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:12px}.recording-list{max-height:610px;overflow:auto}.recording-item{display:block;width:100%;padding:11px 12px;border:0;border-bottom:1px solid #1c3448;background:transparent;color:#fff;text-align:left;cursor:pointer}.recording-item:hover,.recording-item.active{background:#123049}.recording-item small{display:flex;justify-content:space-between;gap:8px;margin-top:4px;color:#7893a8}.video-box video{width:100%;max-height:630px;background:#000;border-radius:7px}
.permission-row{display:grid;grid-template-columns:minmax(160px,1fr) repeat(3,90px);gap:8px;align-items:center;padding:9px;border:1px solid #1b3348;border-radius:7px;background:#091725;margin-bottom:6px}.permission-row input{width:17px;height:17px}
.health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.health-card{border:1px solid var(--line);background:#0d1c2b;border-radius:8px;padding:14px}.health-card strong{display:block;font-size:18px;margin:7px 0 3px}
.empty{padding:30px 16px;text-align:center;color:#718ca1;border:1px dashed #254259;border-radius:8px;background:#081522}
.map-grid,.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.simple-card{border:1px solid var(--line);border-radius:8px;background:#0d1c2b;padding:14px}.simple-card h3{font-size:13px;margin:0 0 8px}.simple-card p{font-size:11px;color:#7893a8;margin:0;line-height:1.55}
@media(max-width:1150px){.login-command{grid-template-columns:1fr}.login-hero{display:none}.login-side{min-height:100vh}.cc-sidebar{width:185px}.cc-shell{padding-left:185px}.cc-topbar{left:185px}.kpis,.health-grid{grid-template-columns:repeat(2,1fr)}.camera-grid,.map-grid,.report-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.cc-sidebar{position:static;width:auto;height:auto}.cc-shell{padding-left:0}.cc-topbar{position:static;height:52px}.cc-content{padding-top:0}.cc-logo-wrap{height:82px}.cc-logo-wrap img{width:115px}.cc-menu{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.cc-menu-title,.cc-side-user{grid-column:1/-1}.uv-main{width:min(100% - 24px,1295px);padding-top:20px}.dashboard-grid,.grid-2,.recording-layout,.viewer{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.capability-row{grid-template-columns:repeat(2,1fr)}.viewer{height:auto}.viewer-stage{height:58vw;min-height:320px}}
@media(max-width:580px){.login-side{padding:26px 20px}.hero-row,.page-head{align-items:flex-start;flex-direction:column}.hero-actions{width:100%;justify-content:space-between}.kpis,.health-grid,.camera-grid,.map-grid,.report-grid,.form-grid,.live-grid,.live-grid.cols-3,.capability-row,.service-grid{grid-template-columns:1fr}.cc-menu{grid-template-columns:1fr}.permission-row{grid-template-columns:1fr repeat(3,66px)}}



/* =========================================================
   ULTRAVISION 2.3 - DISPOSITIVOS / PROVISIONAMENTO
   ========================================================= */
.devices-page{padding-bottom:50px}
.devices-head{align-items:center}
.devices-notice{margin-bottom:13px}
.btn-plus{font-size:18px;line-height:1}
.device-toolbar{
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:12px;
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#0b1725
}
.device-search{
    width:min(410px,100%);
    display:flex;
    align-items:center;
    gap:9px;
    padding:0 12px;
    border:1px solid #2a4056;
    border-radius:7px;
    background:#1b293c
}
.device-search span{color:#89a5b9;font-size:18px}
.device-search input{
    width:100%;
    min-height:38px;
    border:0;
    outline:0;
    color:#eaf4fb;
    background:transparent;
    font:inherit;
    font-size:11px
}
.device-search input::placeholder{color:#7890a5}
.device-toolbar-right{display:flex;align-items:center;gap:10px}
.device-summary{display:flex;gap:11px;color:#7792a7;font-size:10px;white-space:nowrap}
.device-summary b{color:#c7d8e5}
.device-filter-select{
    min-height:38px;
    padding:0 31px 0 11px;
    border:1px solid #2a4056;
    border-radius:7px;
    background:#132133;
    color:#dbe7ef;
    font-size:11px
}
.devices-panel{padding:0;overflow:hidden}
.devices-table-wrap{overflow:auto}
.devices-table{min-width:1080px}
.devices-table thead th{
    background:#1c2a3d;
    color:#9fb9cc;
    font-size:9px
}
.devices-table tbody tr{background:#0d1725}
.devices-table tbody tr:nth-child(even){background:#0e1928}
.devices-table tbody tr:hover{background:#112236}
.devices-table td{vertical-align:middle}
.devices-table .actions-col{text-align:center}
.device-status{display:inline-flex;align-items:center;gap:8px;color:#9fb2c1;font-size:11px}
.status-led{
    width:10px;height:10px;border-radius:50%;
    display:inline-block
}
.status-led.is-online{background:#49bc88;box-shadow:0 0 0 3px rgba(73,188,136,.08)}
.status-led.is-offline{background:#d86773;box-shadow:0 0 0 3px rgba(216,103,115,.07)}
.device-name{font-size:11px;font-weight:750;color:#f1f6f9}
.device-sub{margin-top:3px;color:#69859a;font-size:9px}
.protocol-chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:48px;
    padding:4px 8px;
    border-radius:999px;
    background:#17659c;
    color:#d9f4ff;
    font-size:9px;
    font-weight:800;
    letter-spacing:.03em
}
.device-path{
    display:inline-block;
    max-width:210px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#8fb8d0;
    font-size:10px
}
.recording-state{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:10px
}
.recording-state:before{
    content:"";
    width:6px;height:6px;border-radius:50%
}
.recording-state.on{color:#8bd9b5}.recording-state.on:before{background:#40c78a}
.recording-state.off{color:#93a5b4}.recording-state.off:before{background:#697a88}
.device-date{color:#8ba1b3;font-size:9px;white-space:nowrap}
.device-actions{display:flex;align-items:center;justify-content:center;gap:5px}
.device-actions form{margin:0}
.device-icon-btn{
    width:29px;height:29px;
    display:grid;place-items:center;
    padding:0;
    border:1px solid #466079;
    border-radius:6px;
    background:#172637;
    color:#9ec2d8;
    text-decoration:none;
    cursor:pointer;
    font:inherit;
    font-size:12px
}
.device-icon-btn:hover{border-color:#37bce4;color:#47c8ec;background:#102b3d}
.device-icon-btn.danger{border-color:#733643;color:#ef7b88;background:#301a22}
.device-empty{
    min-height:190px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    color:#728fa5
}
.device-empty-icon{font-size:30px;color:#315d78}
.device-empty strong{color:#b8ccd9}
.device-empty span{font-size:11px}

/* Modal base */
body.modal-open{overflow:hidden}
.uv-modal{
    position:fixed;
    inset:0;
    z-index:1000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px
}
.uv-modal.open{display:flex}
.uv-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(1,6,11,.78);
    backdrop-filter:blur(5px)
}
.uv-modal-card{
    position:relative;
    z-index:1;
    width:min(900px,96vw);
    max-height:min(88vh,900px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid #2d465d;
    border-radius:11px;
    background:#111c2c;
    box-shadow:0 32px 100px rgba(0,0,0,.48)
}
.device-create-modal{width:min(910px,96vw)}
.connection-modal-card{width:min(650px,94vw)}
.uv-modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    padding:20px 22px 18px;
    border-bottom:1px solid #24394e;
    background:#101b2a
}
.uv-modal-header h2{margin:7px 0 4px;font-size:20px}
.uv-modal-header p{margin:0;color:#8199ac;font-size:11px}
.modal-close{
    width:34px;height:34px;
    display:grid;place-items:center;
    flex:0 0 auto;
    border:1px solid transparent;
    border-radius:7px;
    background:transparent;
    color:#9ab1c1;
    cursor:pointer;
    font-size:22px
}
.modal-close:hover{border-color:#2b465d;background:#142537;color:#fff}
.device-form{
    overflow:auto;
    padding:18px 22px 0
}
.device-protocol-selector{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-bottom:18px
}
.protocol-option{
    min-height:74px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:13px 14px;
    border:1px solid #2b4258;
    border-radius:9px;
    background:#142133;
    cursor:pointer;
    transition:.16s ease
}
.protocol-option:hover{border-color:#3c617d;background:#16283c}
.protocol-option.selected{
    border-color:#34bfe7;
    background:#102a3e;
    box-shadow:inset 0 0 0 1px rgba(52,191,231,.08)
}
.protocol-option input{display:none}
.protocol-option-icon{
    width:38px;height:38px;
    display:grid;place-items:center;
    flex:0 0 auto;
    border:1px solid #2e6380;
    border-radius:8px;
    background:#0d2030;
    color:#42c8ed;
    font-size:17px
}
.protocol-option strong{display:block;font-size:12px}
.protocol-option small{display:block;margin-top:4px;color:#7892a6;font-size:10px}
.form-section{
    margin:0 -2px 18px;
    padding:16px;
    border:1px solid #21384c;
    border-radius:9px;
    background:#0d1927
}
.form-section-title{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px
}
.form-section-title>span{
    width:30px;height:30px;
    display:grid;place-items:center;
    border:1px solid #2f607c;
    border-radius:7px;
    color:#47c7eb;
    background:#102536;
    font-size:10px;
    font-weight:800
}
.form-section-title strong{display:block;font-size:12px}
.form-section-title small{display:block;margin-top:3px;color:#6f8b9f;font-size:10px}
.device-form-grid{display:grid;gap:11px}
.device-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.device-form-grid .span-2{grid-column:1/-1}
.device-form .field+.field{margin-top:0}
.field-help{color:#657f94;font-size:9px}
.switch-card{
    min-height:64px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:11px 12px;
    border:1px solid #253e53;
    border-radius:8px;
    background:#101e2e;
    cursor:pointer
}
.switch-card input{display:none}
.switch-ui{
    width:38px;height:20px;
    position:relative;
    flex:0 0 auto;
    border-radius:999px;
    background:#2b3c4d;
    transition:.18s
}
.switch-ui:after{
    content:"";
    position:absolute;
    top:3px;left:3px;
    width:14px;height:14px;
    border-radius:50%;
    background:#9db0bd;
    transition:.18s
}
.switch-card input:checked + .switch-ui{background:#15637c}
.switch-card input:checked + .switch-ui:after{left:21px;background:#49d2f1}
.switch-card strong{display:block;font-size:11px}
.switch-card small{display:block;margin-top:3px;color:#728ca0;font-size:9px}
.retention-pills{display:flex;flex-wrap:wrap;gap:8px}
.retention-pills input{display:none}
.retention-pills span{
    display:inline-flex;
    min-width:76px;
    justify-content:center;
    padding:8px 11px;
    border:1px solid #2b4358;
    border-radius:7px;
    background:#132133;
    color:#a7bac8;
    cursor:pointer;
    font-size:10px
}
.retention-pills input:checked + span{
    border-color:#36bde3;
    background:#10304a;
    color:#dff7ff
}
.uv-modal-footer{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin:0 -22px;
    padding:15px 22px;
    border-top:1px solid #24394e;
    background:#0d1826
}
.connection-content{padding:22px}
.connection-protocol-row{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:15px;
    color:#dce8ef;
    font-size:12px
}
.connection-box{
    padding:16px;
    border:1px solid #2a465e;
    border-radius:9px;
    background:#1a293c
}
.connection-box label{
    display:block;
    margin-bottom:10px;
    color:#8da6b8;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em
}
.connection-copy-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px
}
.connection-copy-row code{
    min-width:0;
    display:block;
    overflow:auto;
    padding:11px 12px;
    border:1px solid #3a5570;
    border-radius:7px;
    background:#0a1420;
    color:#ecf8ff;
    white-space:nowrap;
    font-size:11px
}
.copy-btn{
    min-width:78px;
    border:1px solid #2ea8dc;
    border-radius:7px;
    background:#197db4;
    color:#fff;
    cursor:pointer;
    font-weight:700
}
.connection-hint{
    margin-top:11px;
    padding:10px 12px;
    border-radius:7px;
    background:#0b1724;
    color:#7894a8;
    font-size:10px
}
.connection-hint code{color:#a9c7d9}

@media(max-width:900px){
    .device-toolbar{align-items:stretch;flex-direction:column}
    .device-search{width:100%}
    .device-toolbar-right{justify-content:space-between}
}
@media(max-width:660px){
    .device-toolbar-right{align-items:stretch;flex-direction:column}
    .device-summary{justify-content:space-between}
    .device-protocol-selector,
    .device-form-grid.two{grid-template-columns:1fr}
    .device-form-grid .span-2{grid-column:auto}
    .uv-modal{padding:8px}
    .uv-modal-card{width:100%;max-height:95vh}
    .uv-modal-header{padding:16px}
    .device-form{padding:14px 16px 0}
    .uv-modal-footer{margin:0 -16px;padding:13px 16px}
    .connection-copy-row{grid-template-columns:1fr}
    .copy-btn{min-height:38px}
}


/* UltraVision 2.3.1 - RTMP público automático */
.auto-stream-preview{
    min-height:45px;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:2px;
    padding:10px 12px;
    border:1px solid #2d4a61;
    border-radius:8px;
    background:#081521;
    font-family:Consolas,"Courier New",monospace;
    font-size:11px;
    overflow-wrap:anywhere
}
.auto-stream-prefix{color:#e6f7ff}
.auto-stream-key{
    color:#54c9e9;
    opacity:.78;
    font-style:italic
}
.connection-split-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:10px
}
.connection-box.compact{padding:13px}
.connection-box.compact .connection-copy-row{
    grid-template-columns:minmax(0,1fr) auto
}
.connection-box.compact code{
    font-size:10px
}
@media(max-width:680px){
    .connection-split-grid{grid-template-columns:1fr}
}

