:root{--bg:#09111f;--panel:#111c2e;--panel2:#16243a;--line:#263651;--text:#edf4ff;--muted:#8ea0ba;--blue:#4f8cff;--cyan:#3dd9c5;--green:#39d98a;--yellow:#ffcc66;--red:#ff627d;--shadow:0 24px 60px rgba(0,0,0,.28)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 85% 0,#142b4d 0,transparent 34%),var(--bg);color:var(--text);font:14px/1.45 Inter,Segoe UI,Arial,sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;background:rgba(9,17,31,.92);border-right:1px solid var(--line);display:flex;flex-direction:column;backdrop-filter:blur(20px)}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px}.brand b{display:block;font-size:17px;letter-spacing:.12em}.brand span{display:block;font-size:9px;color:var(--muted);letter-spacing:.22em}.brand-mark{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,var(--blue),var(--cyan));font-size:28px;font-weight:900;box-shadow:0 12px 30px rgba(79,140,255,.3)}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:20px}.sidebar nav{display:grid;gap:7px}.nav{width:100%;border:0;background:transparent;color:var(--muted);padding:12px 14px;border-radius:11px;text-align:left;cursor:pointer;font-weight:650}.nav:hover,.nav.active{background:var(--panel2);color:var(--text)}.nav.danger:hover{color:var(--red)}.badge{float:right;background:var(--red);color:#fff;border-radius:20px;padding:1px 7px;font-size:11px}.sidebar-bottom{margin-top:auto}.live{color:var(--muted);font-size:12px;padding:12px}.live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);margin-right:6px}main{padding:28px 32px 60px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}h1,h2,p{margin-top:0}h1{font-size:26px;margin-bottom:3px}h2{font-size:17px;margin-bottom:0}header p,.modal-head p{color:var(--muted);margin-bottom:0}.primary,.ghost,.icon-btn{border:0;border-radius:10px;padding:11px 16px;font-weight:750;cursor:pointer}.primary{background:linear-gradient(135deg,var(--blue),#6c63ff);color:white;box-shadow:0 10px 22px rgba(79,140,255,.22)}.primary:hover{filter:brightness(1.08)}.primary.full{width:100%}.ghost{background:#1a2940;color:var(--text);border:1px solid var(--line)}.ghost:hover{background:#223552}.icon-btn{background:transparent;color:var(--muted);font-size:26px;padding:0 8px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.metrics article,.panel,.server-card{background:linear-gradient(160deg,rgba(22,36,58,.96),rgba(14,25,43,.96));border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.metrics article{padding:18px 20px}.metrics span,.metrics small{display:block;color:var(--muted)}.metrics strong{display:block;font-size:27px;margin:7px 0 2px}.section-title,.panel-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0 12px}.server-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:16px}.server-card{padding:18px;cursor:pointer;transition:.18s transform,.18s border-color}.server-card:hover{transform:translateY(-3px);border-color:#42618d}.server-top{display:flex;justify-content:space-between;gap:10px}.server-name{font-size:16px;font-weight:800}.server-address{color:var(--muted);font-size:12px;margin-top:2px}.status{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase}.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status.online{color:var(--green);background:rgba(57,217,138,.11)}.status.warning{color:var(--yellow);background:rgba(255,204,102,.11)}.status.critical,.status.offline{color:var(--red);background:rgba(255,98,125,.11)}.status.unknown{color:var(--muted);background:rgba(142,160,186,.1)}.server-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:17px}.server-stats div{background:rgba(7,14,25,.36);padding:10px;border-radius:10px}.server-stats span{display:block;color:var(--muted);font-size:11px}.server-stats b{font-size:14px}.progress{height:5px;background:#243450;border-radius:5px;overflow:hidden;margin-top:14px}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:5px}.panel{padding:18px;margin-top:18px}.panel .panel-head{margin:0 0 13px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{padding:13px 12px;text-align:left;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}td small{color:var(--muted)}.row-actions{display:flex;gap:6px}.mini{border:1px solid var(--line);background:#192840;color:var(--text);border-radius:8px;padding:7px 9px;cursor:pointer}.mini.red{color:var(--red)}.alert-row{display:grid;grid-template-columns:95px 1fr auto;gap:14px;align-items:center;padding:13px 5px;border-bottom:1px solid var(--line)}.alert-row:last-child{border-bottom:0}.alert-title{font-weight:760}.alert-message{color:var(--muted);font-size:12px}.empty{text-align:center;color:var(--muted);padding:30px}.view{display:none}.view.active{display:block}.modal{position:fixed;inset:0;background:rgba(2,7,14,.74);display:grid;place-items:center;padding:20px;z-index:20;backdrop-filter:blur(10px)}.modal.hidden,.hidden{display:none!important}.modal-card{width:min(680px,100%);max-height:92vh;overflow:auto;background:#101d30;border:1px solid #304461;border-radius:18px;padding:22px;box-shadow:0 30px 100px #000}.modal-card.large{width:min(1050px,100%)}.modal-head{display:flex;justify-content:space-between;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid .wide{grid-column:1/-1}label{display:grid;gap:6px;color:var(--muted);font-size:12px}input,select{width:100%;border:1px solid var(--line);background:#0b1728;color:var(--text);border-radius:9px;padding:11px 12px;outline:0}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(79,140,255,.12)}.checks{display:flex;gap:22px;margin:17px 0}.checks label{display:flex;align-items:center}.checks input{width:auto}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.error-box{background:rgba(255,98,125,.12);border:1px solid rgba(255,98,125,.4);color:#ff9aad;padding:10px 12px;border-radius:9px;margin:10px 0}.toast{position:fixed;right:25px;bottom:25px;padding:13px 17px;border-radius:11px;background:#20334f;border:1px solid #3c587d;box-shadow:var(--shadow);z-index:40}.toast.error{border-color:var(--red);color:#ff9aad}.camera-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-height:420px;overflow:auto}.camera{border:1px solid var(--line);border-radius:11px;padding:11px;background:#0c1829}.camera .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--muted)}.camera .dot.on{background:var(--green)}.camera .dot.off{background:var(--red)}.camera button{float:right}.details-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}.details-metrics div{background:#0c1829;border:1px solid var(--line);border-radius:10px;padding:12px}.details-metrics span{display:block;color:var(--muted);font-size:11px}.details-metrics b{font-size:17px}.chart-wrap{height:230px;background:#0c1829;border:1px solid var(--line);border-radius:12px;padding:10px;margin:15px 0}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(410px,100%);background:rgba(16,29,48,.96);border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:var(--shadow);text-align:center}.login-card .brand-mark{margin:0 auto 18px}.login-card p,.login-card small{color:var(--muted)}.login-card form{display:grid;gap:14px;text-align:left;margin:24px 0 16px}@media(max-width:1100px){.server-grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}.details-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.shell{display:block}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-bottom{display:none}main{padding:20px 14px}.server-grid,.metrics,.camera-grid{grid-template-columns:1fr}header{align-items:flex-start;gap:12px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.details-metrics{grid-template-columns:repeat(2,1fr)}}

/* Расширенная диагностика TRASSIR SDK */
.card-error{margin-top:10px}.mini.accent,.ghost.accent{border-color:rgba(61,217,197,.55);color:var(--cyan)}button:disabled,.mini:disabled,.ghost:disabled{opacity:.42;cursor:not-allowed;filter:none}.link-button{display:inline-flex;align-items:center;text-decoration:none}.details-actions{flex-wrap:wrap;margin-bottom:16px}.health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.health-grid article{min-height:85px;background:#0c1829;border:1px solid var(--line);border-radius:11px;padding:12px}.health-grid span,.health-grid small{display:block;color:var(--muted);font-size:11px}.health-grid b{display:block;font-size:15px;margin:5px 0;word-break:break-word}.state-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.state-strip>div{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#0c1829;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.state-strip>div>span:first-child{color:var(--muted);font-size:12px}.sdk-errors{border:1px solid rgba(255,98,125,.38);background:rgba(255,98,125,.08);border-radius:11px;padding:12px 14px;margin:12px 0}.sdk-errors h3{margin:0 0 8px;font-size:14px}.sdk-errors div{color:#ffb0bd;font-size:12px;margin-top:5px;word-break:break-word}.sdk-note{border:1px solid rgba(255,204,102,.3);background:rgba(255,204,102,.07);color:#f1ce83;border-radius:10px;padding:10px 12px;margin:12px 0;font-size:12px}.camera-heading{gap:16px;align-items:flex-end}.camera-heading h2 small{color:var(--muted);font-weight:400;font-size:12px}.camera-filters{display:flex;gap:10px;align-items:center}.camera-filters input[type="text"],.camera-filters input:not([type]){min-width:240px}.camera-filters label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:7px;white-space:nowrap}.camera-filters label input{width:auto}.camera.camera-offline{border-color:rgba(255,98,125,.46);background:rgba(255,98,125,.055)}.event-table{max-height:360px;border:1px solid var(--line);border-radius:11px}.event-table table{min-width:680px}.event-table thead{position:sticky;top:0;background:#101d30;z-index:1}.event-table td:first-child{white-space:nowrap;color:var(--muted)}
@media(max-width:1100px){.health-grid{grid-template-columns:repeat(2,1fr)}.state-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.health-grid,.state-strip{grid-template-columns:1fr}.camera-heading{align-items:stretch;flex-direction:column}.camera-filters{align-items:stretch;flex-direction:column}.camera-filters input[type="text"],.camera-filters input:not([type]){min-width:0}.details-actions>*{width:100%;justify-content:center;text-align:center}}

/* v0.3: clickable disk health card and physical disk popup */
.agent-hint{margin:-5px 0 12px;color:var(--muted);font-size:12px}.agent-hint code{color:#b9d5ff;background:#0b1728;border:1px solid var(--line);border-radius:6px;padding:3px 6px}.state-strip>.state-item{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#0c1829;border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--text);font:inherit;text-align:left}.state-strip>.state-item>span:first-child{color:var(--muted);font-size:12px}.state-clickable{cursor:pointer;position:relative;transition:.18s border-color,.18s transform,.18s background}.state-clickable:hover{border-color:var(--blue);background:#12233a;transform:translateY(-1px)}.state-clickable i{font-style:normal;color:var(--blue);font-size:11px}.modal.secondary{z-index:32;background:rgba(2,7,14,.83)}.disks-modal-card{width:min(1120px,100%)}.disk-grid{display:grid;gap:14px}.disk-card{background:#0c1829;border:1px solid var(--line);border-radius:14px;padding:16px}.disk-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.disk-head h3{margin:3px 0 0;font-size:16px}.disk-index{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.disk-specs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}.disk-specs>div{background:#101e31;border:1px solid #20334e;border-radius:9px;padding:10px}.disk-specs span{display:block;color:var(--muted);font-size:11px}.disk-specs b{display:block;margin-top:3px}.disk-ident{font-family:Consolas,monospace;color:#c8d5e8;font-size:12px;line-height:1.7;word-break:break-all}.disk-ident span{color:var(--muted)}.disk-volumes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}.disk-volume{background:#101e31;border:1px solid #20334e;border-radius:9px;padding:10px}.disk-volume span,.disk-volume small{color:var(--muted)}.disk-volume small{display:block;margin-top:3px}.disk-progress{height:5px;background:#243450;border-radius:5px;overflow:hidden;margin-top:8px}.disk-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue));border-radius:5px}
@media(max-width:760px){.disk-specs{grid-template-columns:repeat(2,1fr)}.disk-volumes{grid-template-columns:1fr}.state-clickable i{display:none}}

/* v0.5: live video, bulk tools and disk history */
.camera{position:relative}.camera-actions{display:flex;gap:5px;float:right;margin-left:8px}.camera-actions .mini{padding:5px 7px}.camera .alert-message{clear:both;padding-top:8px}.live-modal-card{width:min(1180px,100%)}.live-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px}.live-toolbar select{max-width:250px}.live-stage{min-height:520px;background:#050b13;border:1px solid var(--line);border-radius:14px;display:grid;place-items:center;overflow:hidden}.live-stage video,.live-stage img{display:block;max-width:100%;max-height:72vh;width:100%;height:auto;object-fit:contain;background:#000}.bulk-rename-tools{display:grid;grid-template-columns:1fr auto 1fr auto;gap:8px;margin-bottom:14px}.rename-table{max-height:500px;border:1px solid var(--line);border-radius:11px}.rename-table table{min-width:820px}.rename-table input[type="checkbox"]{width:auto}.rename-table td:nth-child(3){min-width:320px}.server-check-list{display:grid;gap:8px;margin:14px 0;max-height:300px;overflow:auto}.server-check-list label{display:flex;align-items:center;gap:10px;background:#0c1829;border:1px solid var(--line);border-radius:10px;padding:10px}.server-check-list input{width:auto}.server-check-list span{display:grid;gap:3px}.server-check-list small{color:var(--muted)}.advanced-field{margin-top:12px}.ntp-result{display:grid;gap:4px;padding:10px 12px;border-radius:9px;margin-top:7px;border:1px solid var(--line)}.ntp-result span{font-size:12px;color:var(--muted)}.ntp-result.ok{border-color:rgba(57,217,138,.4);background:rgba(57,217,138,.06)}.ntp-result.bad{border-color:rgba(255,98,125,.4);background:rgba(255,98,125,.06)}.disk-history-toolbar{display:flex;gap:7px;margin-bottom:12px}.disk-chart{height:205px;background:#091421;border:1px solid #20334e;border-radius:10px;padding:7px;margin-top:13px}.disk-chart canvas{display:block}
@media(max-width:760px){.live-toolbar{flex-direction:column;align-items:stretch}.live-toolbar select{max-width:none}.live-stage{min-height:300px}.bulk-rename-tools{grid-template-columns:1fr}.camera-actions{float:none;margin:9px 0 0}.disk-history-toolbar{flex-wrap:wrap}}


/* v0.7: MSO Trassir Central Control Web VNC */
.vnc-modal-card{width:min(1480px,calc(100vw - 28px));height:min(920px,calc(100vh - 28px));display:flex;flex-direction:column}.vnc-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.vnc-check{display:flex;align-items:center;grid-template-columns:auto 1fr;gap:7px;background:#101e31;border:1px solid var(--line);padding:9px 11px;border-radius:9px}.vnc-check input{width:auto}.vnc-stage{position:relative;flex:1;min-height:460px;background:#02050a;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;min-width:0}.vnc-stage canvas{max-width:100%;max-height:100%;outline:none}.vnc-stage:fullscreen{width:100vw;height:100vh;border:0;border-radius:0;background:#000}.vnc-stage:fullscreen canvas{max-width:100vw;max-height:100vh}.ghost.red{color:var(--red);border-color:rgba(255,98,125,.4)}
@media(max-width:760px){.vnc-modal-card{height:calc(100vh - 12px);width:calc(100vw - 12px)}.vnc-toolbar>*{flex:1 1 auto}.vnc-stage{min-height:300px}}


/* v0.7.1: native license.txt inventory */
.license-modal-card{width:min(1040px,100%)}.license-hero{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:18px;background:linear-gradient(135deg,#10213a,#0c1829);border:1px solid var(--line);border-radius:15px}.license-icon{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,var(--blue),var(--cyan));font-size:25px;font-weight:900}.license-hero span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.license-hero h3{margin:4px 0;font-size:20px}.license-hero p{margin:0;color:#b8c6db}.license-actions{display:flex;align-items:center}.license-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.license-specs>div{background:#0c1829;border:1px solid var(--line);border-radius:11px;padding:12px}.license-specs span{display:block;color:var(--muted);font-size:11px}.license-specs b{display:block;margin-top:5px;word-break:break-word}.license-section-title{margin-top:18px}.license-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.license-feature{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#0c1829;border:1px solid var(--line);border-radius:11px;padding:12px 14px}.license-feature span{display:block;font-weight:700}.license-feature code{display:block;margin-top:4px;color:var(--muted);font-size:11px}.license-feature strong{font-size:22px;color:var(--cyan)}.license-source{margin-top:14px;background:#091421;border:1px solid var(--line);border-radius:10px;padding:11px;color:var(--muted);font-size:12px;word-break:break-all}.mono{font-family:Consolas,monospace}.health-clickable{cursor:pointer;position:relative;transition:.18s border-color,.18s transform,.18s background}.health-clickable:hover{border-color:var(--blue);background:#12233a;transform:translateY(-1px)}.health-clickable i{position:absolute;right:10px;bottom:8px;color:var(--blue);font-style:normal;font-size:10px}.state-item>b{font-size:13px;white-space:nowrap}
@media(max-width:760px){.license-hero{grid-template-columns:auto 1fr}.license-actions{grid-column:1/-1}.license-actions>*{width:100%;justify-content:center}.license-specs,.license-grid{grid-template-columns:1fr}}

/* v0.7.2: единая лицензионная карточка и синхронное переименование */
.license-summary-card{grid-column:span 2;background:linear-gradient(135deg,rgba(79,140,255,.10),rgba(61,217,197,.07))!important}.license-summary-card small{max-width:100%;white-space:normal}.rename-device-option{display:flex;align-items:center;gap:9px;margin:0 0 10px;padding:10px 12px;background:#0c1829;border:1px solid var(--line);border-radius:10px}.rename-device-option input{width:auto}.rename-table td:nth-child(3){min-width:250px}.rename-table td:nth-child(4){min-width:300px}
@media(max-width:900px){.license-summary-card{grid-column:span 1}}

/* v0.7.3: Lost Channels и точная связь Grabber channelXX_guid */
.lost-modal-card{width:min(1120px,100%)}.lost-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px;color:var(--muted)}.lost-list{display:grid;gap:10px;margin-top:14px}.lost-card{display:grid;grid-template-columns:minmax(240px,1fr) minmax(300px,1.4fr) auto;gap:14px;align-items:end;background:#0c1829;border:1px solid rgba(255,98,125,.28);border-radius:12px;padding:14px}.lost-card span{display:block;color:var(--red);font-size:11px;text-transform:uppercase}.lost-card h3{margin:4px 0;font-size:16px}.lost-card code{color:var(--muted);font-size:11px}.good-empty{color:var(--green);border:1px solid rgba(57,217,138,.25);border-radius:12px;background:rgba(57,217,138,.05)}
@media(max-width:760px){.lost-card{grid-template-columns:1fr}.lost-card button{width:100%}}


/* v0.7.5: camera IP addresses in cards, rename and Lost Channels */
.server-stats small{display:block;margin-top:3px;color:var(--muted);font-size:11px;white-space:nowrap}.camera-count-stat b{display:flex!important;align-items:baseline;gap:5px;white-space:nowrap}.camera-count-stat b strong{font-size:17px;color:var(--text)}.camera-count-stat b em{font-style:normal;font-size:14px;color:#dbe8fb}.server-aux{display:flex;justify-content:space-between;gap:12px;margin-top:11px;color:var(--muted);font-size:11px}.server-aux b{color:#dbe8fb}.inventory-modal-card{width:min(1220px,100%)}.inventory-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--muted);margin-bottom:14px}.monitor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.monitor-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;background:#0c1829;border:1px solid var(--line);border-radius:13px;padding:15px}.monitor-card.connected{border-color:rgba(57,217,138,.32)}.monitor-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:#142741;color:var(--cyan);font-size:25px}.monitor-card span{color:var(--muted);font-size:11px}.monitor-card h3{margin:3px 0;font-size:17px}.monitor-card p{margin:0;color:#c4d2e7}.monitor-card code{grid-column:1/-1;display:block;background:#091421;border:1px solid #20334e;border-radius:8px;padding:8px;color:var(--muted);font-size:11px;word-break:break-word}.ip-device-list{display:grid;gap:13px}.ip-device-card{background:#0c1829;border:1px solid var(--line);border-radius:14px;padding:15px}.ip-device-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.ip-device-head span:first-child{color:var(--muted);font-size:11px}.ip-device-head h3{margin:3px 0;font-size:17px}.ip-device-head p{margin:0;color:#b7c6da}.ip-device-meta{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0;color:var(--muted);font-size:11px}.ip-device-meta code{color:#c7d8ef}.ip-channel-list{display:grid;gap:7px}.ip-channel-row{display:grid;grid-template-columns:minmax(210px,1.25fr) repeat(3,minmax(150px,1fr));gap:9px;background:#101e31;border:1px solid #20334e;border-radius:10px;padding:10px}.ip-channel-row>div{min-width:0}.ip-channel-row span,.ip-channel-row small{display:block;color:var(--muted);font-size:10px}.ip-channel-row b{display:block;margin:2px 0;white-space:normal;word-break:break-word}
@media(max-width:900px){.monitor-grid{grid-template-columns:1fr}.ip-channel-row{grid-template-columns:1fr 1fr}.server-aux{flex-direction:column;gap:3px}}
@media(max-width:560px){.ip-channel-row{grid-template-columns:1fr}.monitor-card{grid-template-columns:auto 1fr}.monitor-card>.status{grid-column:1/-1}.server-stats small{white-space:normal}}

.server-aux-single{justify-content:flex-end}.lost-card p{margin:5px 0;color:var(--muted);font-size:12px}.lost-card p b{color:#dbe8fb}.camera .alert-message small{line-height:1.5}

/* 0.8.0 — центры инцидентов, инвентаризации, лицензий и отчётов */
.center-filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.center-filters input,.center-filters select{background:#0a1727;border:1px solid #294663;color:#dcecff;border-radius:10px;padding:10px 12px;min-width:180px}.center-stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:16px 0}.center-stats article{background:#0d1b2e;border:1px solid #233b57;border-radius:14px;padding:15px}.center-stats span{display:block;color:#86a5c7;font-size:13px}.center-stats strong{display:block;font-size:25px;margin:5px 0}.center-stats small{color:#6f8cab}.admin-incident-card{background:#0b192a;border:1px solid #263e59;border-left:5px solid #ffc65b;border-radius:14px;padding:15px;display:grid;grid-template-columns:minmax(180px,230px) 1fr auto;gap:18px;margin-bottom:10px}.admin-incident-card.critical{border-left-color:#ff5d79}.admin-incident-card.closed{opacity:.68;border-left-color:#66819c}.admin-incident-card h3{margin:5px 0}.admin-incident-card p{margin:5px 0;color:#96b0ca}.admin-incident-card code{font-size:11px;color:#7593b2}.admin-incident-server{display:grid;align-content:start;justify-items:start}.admin-incident-meta{display:grid;align-content:center;justify-items:end;gap:6px;color:#7f9dbb;font-size:12px}.inventory-state{display:inline-flex;align-items:center;gap:7px;font-weight:700}.inventory-state:before{content:"";width:8px;height:8px;border-radius:50%;background:#ffc65a}.inventory-state.online:before{background:#43dea1}.admin-license-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px}.admin-license-card{background:#0d1b2e;border:1px solid #29435e;border-radius:16px;padding:18px}.license-card-head{display:flex;justify-content:space-between;gap:12px}.license-card-head h3{margin:0}.license-card-head p{margin:5px 0 0;color:#8aa6c4}.license-card-values{display:flex;justify-content:space-between;align-items:end;margin-top:18px}.license-card-values b{font-size:24px}.license-center-gauge{height:8px;background:#1a2d43;border-radius:99px;overflow:hidden;margin:12px 0}.license-center-gauge i{display:block;height:100%;background:linear-gradient(90deg,#4b8dff,#43dcc8)}.license-center-gauge.low i{background:#ffc65a}.license-center-gauge.full i{background:#ff5b78}.license-code-list{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.license-code-list span{background:#14283f;border:1px solid #294763;border-radius:8px;padding:5px 7px;font-size:11px;color:#9cb8d4}.admin-report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.admin-report-grid article{background:#0d1b2e;border:1px solid #29435e;border-radius:16px;padding:20px}.admin-report-grid h3{margin-top:0}.admin-report-grid p{color:#8faac7;min-height:42px}.admin-report-grid article>div{display:flex;gap:10px;flex-wrap:wrap}.admin-report-grid a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.panel-head p{margin:5px 0 0;color:#7895b4}@media(max-width:900px){.center-stats{grid-template-columns:1fr 1fr}.admin-incident-card{grid-template-columns:1fr}.admin-incident-meta{justify-items:start}.center-filters{justify-content:flex-start}}

/* MTCC 0.8.3 — фирменный логотип */
.login-logo{display:block;width:min(250px,82%);height:auto;margin:0 auto 20px}.sidebar-logo{display:block;width:86px;height:auto;flex:0 0 auto}.brand:has(.sidebar-logo){gap:10px;align-items:center}.brand:has(.sidebar-logo) b{font-size:14px}.brand:has(.sidebar-logo) span{font-size:8px}.login-card{overflow:hidden}


/* MTCC 0.8.4 — compact branding and animated login background */
.login-body,.public-login-page{position:relative;overflow:hidden;isolation:isolate;background:#071321}
.login-body:before,.public-login-page:before{content:"";position:fixed;inset:-35%;z-index:-3;background:
 radial-gradient(circle at 20% 25%,rgba(61,217,197,.16),transparent 28%),
 radial-gradient(circle at 78% 18%,rgba(79,140,255,.18),transparent 30%),
 radial-gradient(circle at 55% 82%,rgba(108,99,255,.13),transparent 32%);
 animation:mtccAurora 18s ease-in-out infinite alternate;will-change:transform}
.login-body:after,.public-login-page:after{content:"";position:fixed;inset:0;z-index:-2;opacity:.28;background-image:
 linear-gradient(rgba(112,155,205,.07) 1px,transparent 1px),
 linear-gradient(90deg,rgba(112,155,205,.07) 1px,transparent 1px);
 background-size:54px 54px;mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 78%,transparent 100%);
 animation:mtccGrid 26s linear infinite}
.login-ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.login-ambient i{position:absolute;width:34vw;height:34vw;min-width:260px;min-height:260px;border-radius:50%;filter:blur(70px);opacity:.18;mix-blend-mode:screen;animation:mtccFloat 17s ease-in-out infinite}
.login-ambient i:nth-child(1){left:-10vw;top:4vh;background:#3dd9c5}
.login-ambient i:nth-child(2){right:-8vw;top:12vh;background:#4f8cff;animation-delay:-6s;animation-duration:21s}
.login-ambient i:nth-child(3){left:32vw;bottom:-18vw;background:#6c63ff;animation-delay:-11s;animation-duration:24s}
.login-card,.public-login-card{position:relative;z-index:1;backdrop-filter:blur(22px);background:linear-gradient(155deg,rgba(16,29,48,.94),rgba(8,21,36,.88));box-shadow:0 32px 90px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.025)}
.login-card h1,.public-login-card h1{font-size:clamp(24px,3vw,34px);line-height:1.12;letter-spacing:-.025em;margin-bottom:10px}
.login-card p,.public-login-card p{font-size:15px;margin-bottom:2px}
.brand:has(.sidebar-logo) b{font-size:12px!important;letter-spacing:.13em;line-height:1.25}
.brand:has(.sidebar-logo) span{font-size:7px!important;letter-spacing:.17em;line-height:1.35}
.brand:has(.sidebar-logo){gap:8px!important}
.sidebar-logo{width:76px!important}
@keyframes mtccAurora{0%{transform:translate3d(-3%,-2%,0) rotate(-2deg) scale(1)}50%{transform:translate3d(4%,2%,0) rotate(2deg) scale(1.05)}100%{transform:translate3d(-1%,5%,0) rotate(-1deg) scale(1.09)}}
@keyframes mtccGrid{from{background-position:0 0,0 0}to{background-position:54px 54px,54px 54px}}
@keyframes mtccFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}35%{transform:translate3d(7vw,5vh,0) scale(1.12)}70%{transform:translate3d(-4vw,10vh,0) scale(.92)}}
@media(prefers-reduced-motion:reduce){.login-body:before,.public-login-page:before,.login-body:after,.public-login-page:after,.login-ambient i{animation:none!important}}
@media(max-width:700px){.login-card h1,.public-login-card h1{font-size:25px}.login-ambient i{filter:blur(55px)}}

/* MTCC 0.8.5 — authentication branding and animated network lines */
.login-body,.public-login-page{position:relative;overflow:hidden;isolation:isolate}
.mtcc-login-card{width:min(470px,calc(100vw - 32px));padding:34px 42px;gap:15px}
.login-logo,.public-login-logo{display:block;width:min(360px,94%);max-height:118px;height:auto;object-fit:contain;margin:0 auto 8px}
.mtcc-login-title{display:flex;align-items:center;justify-content:center;gap:12px;margin:2px 0 0}
.mtcc-login-title h1{font-size:clamp(34px,5vw,52px)!important;letter-spacing:.16em!important;line-height:1!important;margin:0!important}
.mtcc-login-title b{font-size:12px;letter-spacing:.12em;color:var(--cyan);border:1px solid rgba(61,217,197,.35);background:rgba(61,217,197,.08);padding:5px 8px;border-radius:999px}
.login-lines{position:fixed;inset:-12%;z-index:0;overflow:hidden;pointer-events:none;opacity:.75;transform:rotate(-7deg)}
.login-lines:before,.login-lines:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(75,150,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(61,217,197,.07) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(circle at center,#000 0,transparent 73%);animation:mtccGridDrift 24s linear infinite}
.login-lines:after{background-size:144px 144px;opacity:.55;animation-direction:reverse;animation-duration:38s}
.login-lines span{position:absolute;left:-25%;width:150%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(79,140,255,.12) 18%,rgba(61,217,197,.9) 48%,rgba(79,140,255,.18) 72%,transparent 100%);box-shadow:0 0 14px rgba(61,217,197,.35);animation:mtccLineSweep 9s linear infinite;transform-origin:center}
.login-lines span:after{content:"";position:absolute;right:32%;top:-3px;width:7px;height:7px;border-radius:50%;background:#63f3df;box-shadow:0 0 20px #3dd9c5,0 0 38px #4f8cff}
.login-lines span:nth-child(1){top:13%;animation-delay:-1s;animation-duration:11s}
.login-lines span:nth-child(2){top:25%;animation-delay:-6s;animation-duration:15s;transform:rotate(5deg)}
.login-lines span:nth-child(3){top:38%;animation-delay:-3s;animation-duration:12s;transform:rotate(-4deg)}
.login-lines span:nth-child(4){top:49%;animation-delay:-9s;animation-duration:17s;transform:rotate(8deg)}
.login-lines span:nth-child(5){top:61%;animation-delay:-5s;animation-duration:13s;transform:rotate(-7deg)}
.login-lines span:nth-child(6){top:72%;animation-delay:-11s;animation-duration:18s;transform:rotate(3deg)}
.login-lines span:nth-child(7){top:84%;animation-delay:-2s;animation-duration:14s;transform:rotate(-2deg)}
.login-lines span:nth-child(8){top:94%;animation-delay:-8s;animation-duration:20s;transform:rotate(6deg)}
@keyframes mtccLineSweep{0%{translate:-28% 0;opacity:0}12%{opacity:.85}82%{opacity:.65}100%{translate:28% 0;opacity:0}}
@keyframes mtccGridDrift{to{transform:translate3d(72px,72px,0)}}
.login-card,.public-login-card{position:relative;z-index:3}
.login-card form,.public-login-card{position:relative}
.login-card input:-webkit-autofill,.public-login-card input:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px #0b1728 inset;transition:background-color 9999s ease-out}
@media(max-width:600px){.mtcc-login-card{padding:28px 24px}.login-logo,.public-login-logo{width:min(300px,92%)}.mtcc-login-title h1{font-size:35px!important}}
@media(prefers-reduced-motion:reduce){.login-lines,.login-lines:before,.login-lines:after,.login-lines span{animation:none!important}}

/* Configuration and audit center */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.settings-card{background:#0c1829;border:1px solid var(--line);border-radius:14px;padding:18px}
.settings-card h3{margin:0 0 7px}.settings-card p{color:var(--muted);min-height:42px}.settings-card form{display:grid;gap:11px}.settings-card .checks{margin:0}.audit-filter{display:flex;gap:10px;flex-wrap:wrap}.audit-filter input{max-width:260px}.audit-success{color:var(--green)}.audit-failure{color:var(--red)}.auth-source{display:inline-flex;padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px}.security-status{display:grid;gap:8px;margin-top:12px}.security-status div{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid var(--line)}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}


/* MTCC 0.8.5 Hotfix 4 — compact login metadata */
.mtcc-login-title{margin-bottom:4px}
.mtcc-login-meta{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;margin:0 0 8px;color:var(--muted)}
.mtcc-login-meta span{font-size:12px;line-height:1.2;white-space:nowrap}
.mtcc-login-meta b{flex:0 0 auto;font-size:11px;line-height:1;letter-spacing:.1em;color:var(--cyan);border:1px solid rgba(61,217,197,.35);background:rgba(61,217,197,.08);padding:5px 8px;border-radius:999px}
@media(max-width:600px){.mtcc-login-meta{gap:7px}.mtcc-login-meta span{font-size:10px}.mtcc-login-meta b{font-size:9px;padding:4px 6px}}

.settings-card-wide{grid-column:1/-1}.ftp-actions{justify-content:flex-start;margin-top:12px}.security-status b{word-break:break-word}.disk-chart,.disk-history-toolbar{display:none!important}

/* MTCC 0.9.6: SLA, OpenFreeMap, time, agents and update center */
.object-map-layout{display:grid;grid-template-columns:minmax(540px,1.6fr) minmax(320px,.8fr);gap:16px;margin-top:14px}.object-map-canvas{position:relative;min-height:590px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#081522}.object-map-maplibre,.object-map-fallback{position:absolute;inset:0}.object-map-maplibre{z-index:1}.object-map-fallback{z-index:2;background-color:#081522;background-image:linear-gradient(rgba(58,104,145,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(58,104,145,.16) 1px,transparent 1px),radial-gradient(circle at 35% 40%,rgba(32,194,187,.1),transparent 35%);background-size:42px 42px,42px 42px,100% 100%}.map-toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.map-toolbar a{text-decoration:none}.map-notice{margin:12px 0 0;padding:10px 12px;border:1px solid rgba(255,200,92,.35);border-radius:10px;background:rgba(255,200,92,.07);color:#ffd990}.map-notice.error{border-color:rgba(255,98,125,.42);background:rgba(255,98,125,.08);color:#ff9caf}.map-grid-label{position:absolute;left:14px;top:12px;color:var(--muted);font-size:12px}.object-map-marker{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;color:#dcecff;display:grid;justify-items:center;gap:4px;cursor:pointer;z-index:2}.object-map-marker i{width:18px;height:18px;border-radius:50%;border:4px solid rgba(255,255,255,.18);box-shadow:0 0 24px currentColor}.object-map-marker span{background:rgba(5,14,24,.9);border:1px solid #29445f;border-radius:8px;padding:4px 7px;white-space:nowrap;font-size:11px;font-weight:800}.object-map-marker.online{color:#39d98a}.object-map-marker.warning{color:#ffc85c}.object-map-marker.critical,.object-map-marker.offline{color:#ff627d}.object-map-marker.unknown{color:#7493b3}.object-map-list{display:grid;gap:8px;align-content:start;max-height:590px;overflow:auto}.map-list-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#0a1929;border:1px solid var(--line);border-radius:12px;padding:10px;cursor:pointer}.map-list-card:hover{border-color:#2b7e8e;transform:translateY(-1px)}.map-list-card div{display:grid;gap:3px}.map-list-card small{color:var(--muted)}.map-list-card em{font-style:normal;color:#a8c2dc}.openfreemap-marker{display:block;width:28px;height:34px;padding:0;border:0;background:transparent;cursor:pointer;overflow:visible}.ofm-object-pin{position:relative;display:block;width:28px;height:28px;color:#7493b3}.ofm-object-pin i{position:absolute;inset:4px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:currentColor;border:3px solid rgba(255,255,255,.9);box-shadow:0 0 0 3px rgba(5,14,24,.72),0 0 22px currentColor}.ofm-object-pin b{position:absolute;left:31px;top:3px;display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 7px;border:1px solid rgba(54,87,119,.85);border-radius:8px;background:rgba(5,14,24,.92);color:#ecf7ff;font-size:11px;line-height:1.2;box-shadow:0 5px 16px rgba(0,0,0,.28)}.ofm-object-pin.online{color:#39d98a}.ofm-object-pin.warning{color:#ffc85c}.ofm-object-pin.critical,.ofm-object-pin.offline{color:#ff627d}.ofm-object-pin.unknown{color:#7493b3}.object-map-maplibre .maplibregl-ctrl-group{background:#0b1a2a;border:1px solid #26435f;box-shadow:0 5px 18px rgba(0,0,0,.28)}.object-map-maplibre .maplibregl-ctrl-group button{background-color:#0b1a2a}.object-map-maplibre .maplibregl-ctrl-group button:hover{background-color:#122b42}.object-map-maplibre .maplibregl-ctrl-icon{filter:invert(94%) sepia(10%) saturate(621%) hue-rotate(168deg) brightness(104%)}.object-map-maplibre .maplibregl-ctrl-attrib,.object-map-maplibre .maplibregl-ctrl-scale{background:rgba(5,14,24,.88);color:#bfd2e5;border-color:#45627d}.object-map-maplibre .maplibregl-ctrl-attrib a{color:#58e0d0}.object-map-maplibre .maplibregl-popup-content{background:#091827;color:#eaf6ff;border:1px solid #29445f;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.42)}.object-map-maplibre .maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:#091827}.object-map-maplibre .maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:#091827}.object-map-maplibre .maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:#091827}.object-map-maplibre .maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:#091827}.object-map-maplibre .maplibregl-popup-close-button{color:#a8c2dc;font-size:20px;padding:4px 8px}.ofm-popup{display:grid;gap:7px;min-width:230px}.ofm-popup>b{font-size:16px}.ofm-popup>span,.ofm-popup>p{color:#a8c2dc;margin:0}.ofm-popup dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:4px 0}.ofm-popup dt{color:#7f9bb6}.ofm-popup dd{margin:0}.ofm-popup-action{width:100%;margin-top:4px}.update-status{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.update-status>div{background:#0a1929;border:1px solid var(--line);border-radius:12px;padding:14px}.update-current{display:grid;gap:5px}.update-current span,.update-status small{color:var(--muted)}.update-current b{font-size:26px}.update-upload{display:flex;gap:12px;align-items:end;margin:16px 0}.update-upload label{flex:1}.update-upload input{margin-top:7px}.center-stats{flex-wrap:wrap}.center-stats>div{min-width:150px}@media(max-width:1100px){.object-map-layout{grid-template-columns:1fr}.object-map-canvas{min-height:470px}.object-map-list{max-height:none}.update-status{grid-template-columns:1fr}}@media(max-width:700px){.object-map-canvas{min-height:400px}.update-upload{display:grid}.object-map-marker span,.ofm-object-pin b{max-width:145px}.map-toolbar{justify-content:flex-start}.map-toolbar a,.map-toolbar button{font-size:11px;padding:8px}}


/* MTCC 0.9.7 — reliable OpenFreeMap canvas and FTP browser */
.object-map-plotly,.object-map-fallback{position:absolute;inset:0;width:100%;height:100%;min-height:100%}
.object-map-plotly{z-index:3;background:#081522;overflow:hidden}
.object-map-plotly.hidden{display:none!important}
.object-map-plotly>.js-plotly-plot,.object-map-plotly .plot-container,.object-map-plotly .svg-container,.object-map-plotly .maplibregl-map{width:100%!important;height:100%!important;min-height:100%!important}
.object-map-plotly .modebar{top:10px!important;right:10px!important;background:rgba(9,24,39,.92)!important;border:1px solid #29445f!important;border-radius:8px!important;padding:3px!important}
.object-map-plotly .modebar-btn path{fill:#dcecff!important}
.object-map-plotly .maplibregl-ctrl-attrib{background:rgba(5,14,24,.88)!important;color:#bfd2e5!important}
.object-map-plotly .maplibregl-ctrl-attrib a{color:#58e0d0!important}
.ftp-browser{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:12px}
.ftp-browser-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ftp-browser-head h4{margin:0 0 5px;font-size:16px}.ftp-browser-head p{margin:0;min-height:0}
.ftp-browser-actions{display:flex;gap:8px;flex-wrap:wrap}.ftp-browser-path{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#081522;color:#8ee9dd;word-break:break-all}
.ftp-upload-form{display:grid!important;grid-template-columns:minmax(260px,1fr) auto auto;gap:12px!important;align-items:center}
.ftp-upload-form input[type=file]{min-width:0}.ftp-upload-form label{display:flex;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}
.ftp-browser-table{max-height:430px;overflow:auto}.ftp-entry-name{border:0;background:transparent;color:#dcecff;padding:4px 0;cursor:pointer;text-align:left;font:inherit;font-weight:700}.ftp-entry-name:hover{color:var(--cyan)}.ftp-entry-name.folder{color:#7fd7ff}.ghost.mini{display:inline-flex;padding:6px 9px;font-size:11px;text-decoration:none}
.error-text{color:var(--red)!important}
@media(max-width:850px){.ftp-upload-form{grid-template-columns:1fr!important}.ftp-upload-form label{white-space:normal}}


/* MTCC 0.9.8 — built-in raster map and FTP backups section */
.object-map-raster{position:absolute;inset:0;z-index:3;overflow:hidden;background:#081522;cursor:grab;touch-action:none;user-select:none}
.object-map-raster.dragging{cursor:grabbing}
.object-map-raster.hidden{display:none!important}
.raster-tile-layer,.raster-marker-layer{position:absolute;inset:0;overflow:hidden}
.raster-map-tile{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none;user-select:none}
.raster-marker-layer{pointer-events:none;z-index:4}
.raster-object-marker{position:absolute;transform:translate(-50%,-100%);border:0;background:transparent;color:#7493b3;pointer-events:auto;cursor:pointer;display:grid;justify-items:center;gap:3px;overflow:visible;z-index:5}
.raster-object-marker i{display:block;width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:currentColor;border:3px solid rgba(255,255,255,.94);box-shadow:0 0 0 3px rgba(5,14,24,.72),0 0 24px currentColor}
.raster-object-marker span{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 7px;border:1px solid rgba(54,87,119,.9);border-radius:8px;background:rgba(5,14,24,.94);color:#ecf7ff;font-size:11px;font-weight:800;box-shadow:0 5px 16px rgba(0,0,0,.3)}
.raster-object-marker.online{color:#39d98a}.raster-object-marker.warning{color:#ffc85c}.raster-object-marker.critical,.raster-object-marker.offline{color:#ff627d}.raster-object-marker.unknown{color:#7493b3}
.raster-map-controls{position:absolute;left:12px;top:12px;z-index:8;display:grid;border:1px solid #29445f;border-radius:9px;overflow:hidden;background:rgba(5,14,24,.92);box-shadow:0 6px 18px rgba(0,0,0,.3)}
.raster-map-controls button{width:38px;height:36px;border:0;border-bottom:1px solid #29445f;background:#0b1a2a;color:#eaf6ff;font-size:23px;line-height:1;cursor:pointer}.raster-map-controls button:hover{background:#153149}.raster-map-controls span{padding:5px 4px;color:#8faac7;font-size:10px;text-align:center}
.raster-map-attribution{position:absolute;right:7px;bottom:5px;z-index:8;padding:3px 6px;border-radius:5px;background:rgba(5,14,24,.86);color:#a8c2dc;font-size:9px;pointer-events:none}
.map-provider-label{display:inline-flex;align-items:center;padding:8px 10px;border:1px solid #29445f;border-radius:9px;color:#8faac7;font-size:11px}
.ftp-backup-panel{margin-top:16px}.ftp-backup-panel>h3{margin-top:0}.ftp-backup-panel .security-status{margin-top:14px}

/* MTCC 0.9.8 Hotfix 1 */
.overview-search{display:flex;gap:10px;align-items:center}.overview-search input{width:min(430px,42vw)}.nav-system{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.vnc-zoom{display:flex;align-items:center;gap:4px}.vnc-zoom .ghost{min-width:38px;padding-left:10px;padding-right:10px}.vnc-zoom-label{min-width:82px!important}.vnc-stage>div{min-width:0;min-height:0}.vnc-stage canvas{display:block;outline:none}.settings-grid+.panel{margin-top:18px}@media(max-width:900px){.overview-search{width:100%;flex-wrap:wrap}.overview-search input{width:100%}}

/* MTCC 0.9.9 operations center */
.config-compare-layout{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(480px,1.1fr);gap:18px}.config-compare-layout h3{margin:0 0 12px}.diff-list{display:grid;gap:10px;max-height:620px;overflow:auto}.diff-item{background:#0b192a;border:1px solid #29425e;border-left:4px solid #4b8dff;border-radius:12px;padding:12px}.diff-item.warning{border-left-color:#ffc65a}.diff-item>div{display:flex;justify-content:space-between;gap:12px}.diff-item span{color:#8faac7}.diff-item pre{white-space:pre-wrap;word-break:break-word;background:#08131f;border:1px solid #20344d;border-radius:8px;padding:10px;font-size:11px;color:#b9cde4}.wide-table{overflow:auto}.wide-table table{min-width:1500px}.wide-table td small,.camera-control-table small{display:block;color:#7795b5;margin-top:4px}.problem-chip{display:block;color:#ffc65a;font-size:11px;margin:2px 0}.bulk-operation-grid{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(420px,1.25fr);gap:20px}.bulk-operation-form{display:grid;gap:12px}.bulk-operation-form label{display:grid;gap:6px}.bulk-operation-form input,.bulk-operation-form select,.maintenance-form input,.maintenance-form select,.script-upload-form input,.script-upload-form select{background:#091727;border:1px solid #294663;color:#dcecff;border-radius:10px;padding:10px 12px}.check-row{display:flex!important;align-items:center;gap:9px}.operation-result{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;margin-top:8px;border:1px solid #29425e;border-radius:10px;background:#0b192a}.operation-result.ok{border-color:rgba(67,222,161,.35)}.operation-result.error{border-color:rgba(255,91,120,.45)}.script-upload-form{display:grid;grid-template-columns:1.2fr 1fr .6fr .8fr .8fr 1.4fr auto;gap:10px;margin-bottom:18px}.script-catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px}.script-card{background:#0d1b2e;border:1px solid #29435e;border-radius:16px;padding:17px}.script-card-head{display:flex;justify-content:space-between;gap:12px}.script-card h3{margin:0}.script-card p{color:#8faac7}.script-meta,.script-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.script-meta{color:#7c9abb;font-size:11px;margin:12px 0}.script-actions{justify-content:flex-end}.risk{padding:5px 8px;border-radius:999px;font-size:11px;background:#20324a}.risk.low{color:#5be3aa}.risk.medium{color:#ffc65a}.risk.high{color:#ff6b86}.maintenance-form{display:grid;grid-template-columns:1.3fr 1fr .65fr .9fr .9fr 1.4fr auto;gap:10px;margin-bottom:18px}.priority{font-weight:700}.priority.low{color:#7fa9cf}.priority.normal{color:#5be3aa}.priority.high{color:#ffc65a}.priority.critical{color:#ff6b86}.status.ok{color:#43dea1;border-color:rgba(67,222,161,.35)}
@media(max-width:1200px){.config-compare-layout,.bulk-operation-grid{grid-template-columns:1fr}.script-upload-form,.maintenance-form{grid-template-columns:1fr 1fr}.script-upload-form button,.maintenance-form button{grid-column:1/-1}}
@media(max-width:700px){.script-upload-form,.maintenance-form{grid-template-columns:1fr}.config-compare-layout{display:block}.config-compare-layout>div+div{margin-top:18px}}

/* MTCC 1.0.1 nested navigation and agent lifecycle */
.subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:8px;background:rgba(8,18,34,.65);border:1px solid var(--border);border-radius:14px}.subtabs button{border:1px solid transparent;background:transparent;color:var(--muted);padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.subtabs button:hover{color:var(--text);background:rgba(255,255,255,.04)}.subtabs button.active{color:#fff;background:linear-gradient(135deg,#3978ff,#6758ff);box-shadow:0 8px 22px rgba(61,102,255,.22)}
.agent-window{display:flex;align-items:center;gap:5px;min-width:190px}.agent-window input{width:82px;padding:7px}.agent-actions{min-width:210px;flex-wrap:wrap}.audit-filter{display:flex;gap:8px;flex-wrap:wrap}.audit-filter input,.audit-filter select{min-width:145px}.audit-details{max-width:360px}.audit-details summary{cursor:pointer;color:var(--accent)}.audit-details pre{white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto;background:#07111e;padding:10px;border-radius:8px;font-size:11px}.system-subtabs,.inventory-subtabs{position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}


/* MTCC 1.1.0 — mobile layout and PWA shell */
html{min-width:320px;scroll-behavior:smooth}body{min-height:100dvh;-webkit-tap-highlight-color:transparent}.mobile-topbar,.mobile-nav-backdrop,.mobile-menu-close{display:none}.pwa-install-nav{color:var(--cyan)}button,a,input,select,textarea{touch-action:manipulation}.is-offline .mobile-brand small{color:var(--red)}
@supports(padding:max(0px)){body{padding-bottom:env(safe-area-inset-bottom)}}
@media(max-width:900px){
  body{background-attachment:fixed}.shell{display:block;min-height:100dvh}.mobile-topbar{position:fixed;z-index:1200;inset:0 0 auto 0;height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;background:rgba(7,15,28,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(18px);box-shadow:0 8px 24px rgba(0,0,0,.22)}
  .mobile-menu-btn,.mobile-install-btn,.mobile-menu-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:#15243a;color:var(--text);cursor:pointer}.mobile-menu-btn{padding:11px}.mobile-menu-btn span{display:block;width:21px;height:2px;margin:2.5px 0;border-radius:2px;background:currentColor}.mobile-brand{min-width:0;display:grid;grid-template-columns:30px auto;grid-template-rows:18px 14px;justify-content:center;align-items:center;column-gap:8px}.mobile-brand img{grid-row:1/3;width:30px;height:30px;border-radius:8px}.mobile-brand b{font-size:14px;letter-spacing:.12em}.mobile-brand small{font-size:10px;color:var(--green)}.mobile-install-btn{font-size:23px}
  .mobile-nav-backdrop{display:block;position:fixed;z-index:1240;inset:0;background:rgba(0,5,12,.66);backdrop-filter:blur(3px)}.mobile-nav-backdrop[hidden]{display:none}.sidebar{position:fixed;z-index:1250;top:0;bottom:0;left:0;width:min(86vw,340px);height:100dvh;padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;overscroll-behavior:contain;background:rgba(8,16,29,.985);box-shadow:20px 0 60px rgba(0,0,0,.46)}body.mobile-nav-open .sidebar{transform:translateX(0)}body.mobile-nav-open{overflow:hidden}.mobile-menu-close{position:absolute;right:13px;top:calc(12px + env(safe-area-inset-top));font-size:27px}.brand{padding-right:48px}.sidebar nav{display:grid;grid-template-columns:1fr;gap:5px}.nav{min-height:44px;padding:11px 13px}.sidebar-bottom{display:block;margin-top:22px;padding-top:10px;border-top:1px solid var(--line)}
  main{padding:calc(78px + env(safe-area-inset-top)) 14px calc(32px + env(safe-area-inset-bottom));min-height:100dvh}header{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}header>div{min-width:0;flex:1}h1{font-size:22px;line-height:1.15}header p{font-size:12px}.primary,.ghost{min-height:44px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.metrics article{padding:14px}.metrics strong{font-size:23px}.server-grid,.camera-grid,.admin-license-grid,.settings-grid,.agent-grid,.script-catalog-grid{grid-template-columns:1fr!important}.server-card{padding:15px}.server-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.server-stats>div{min-width:0}.server-stats b,.server-stats small{white-space:normal}.section-title,.panel-head{align-items:flex-start;gap:10px;flex-wrap:wrap}.section-title>*,.panel-head>*{min-width:0}.overview-search,.center-filters,.audit-filter,.map-toolbar{width:100%;display:grid;grid-template-columns:1fr!important;gap:8px}.overview-search input{width:100%}.panel{padding:14px!important;border-radius:14px}.panel-head{margin-top:0}.subtabs{display:flex;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding-bottom:3px}.subtabs::-webkit-scrollbar{display:none}.subtabs button{flex:0 0 auto;min-height:42px;white-space:nowrap}.table-wrap{margin-left:-14px;margin-right:-14px;padding:0 14px;overflow:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}table{min-width:720px}th,td{padding:11px 9px}.row-actions{flex-wrap:wrap}.form-grid,.script-upload-form,.maintenance-form,.ftp-upload-form,.bulk-operation-grid,.config-compare-layout{grid-template-columns:1fr!important}.form-grid .wide,.script-upload-form button,.maintenance-form button{grid-column:auto!important}.checks{grid-template-columns:1fr}.modal{padding:0;align-items:end}.modal-card,.modal-card.large,.lost-modal-card,.inventory-modal-card{width:100%;max-width:none;max-height:calc(100dvh - env(safe-area-inset-top));border-radius:22px 22px 0 0;padding:18px 15px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -25px 80px rgba(0,0,0,.55)}.modal-head{position:sticky;top:-18px;z-index:4;margin:-18px -15px 16px;padding:16px 15px 12px;background:rgba(16,29,48,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(15px)}.modal-head h2{font-size:18px}.icon-btn{min-width:44px;min-height:44px}.details-metrics,.license-specs,.license-grid,.tv-modal-details{grid-template-columns:repeat(2,minmax(0,1fr))}.live-toolbar,.vnc-toolbar,.modal-actions,.update-upload{display:grid;grid-template-columns:1fr;gap:8px}.live-toolbar>* ,.vnc-toolbar>* ,.modal-actions>*{width:100%}.live-stage{min-height:240px}.vnc-stage{height:min(62dvh,520px)}.object-map-layout{grid-template-columns:1fr}.object-map-canvas,.object-map-maplibre{min-height:430px}.object-map-list{max-height:none}.admin-report-grid{grid-template-columns:1fr}.update-status{grid-template-columns:1fr}.update-upload label{min-width:0}.center-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.center-stats>div{min-width:0}.toast{left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));max-width:none;text-align:center}.login-page{padding:calc(20px + env(safe-area-inset-top)) 14px calc(20px + env(safe-area-inset-bottom))}.login-card{width:100%;max-width:430px;padding:24px 20px}
}
@media(max-width:560px){
  main{padding-left:10px;padding-right:10px}header{display:grid;grid-template-columns:1fr}header #addServerBtn{width:100%}.metrics{grid-template-columns:1fr 1fr}.metrics article{padding:12px}.metrics strong{font-size:21px}.server-top{align-items:flex-start}.server-stats{grid-template-columns:1fr 1fr}.server-stats>div:first-child{grid-column:1/-1}.server-aux{display:grid;gap:4px}.panel{padding:12px!important}.table-wrap{margin-left:-12px;margin-right:-12px;padding:0 12px}.details-metrics,.license-specs,.license-grid,.center-stats,.tv-modal-details{grid-template-columns:1fr}.object-map-canvas,.object-map-maplibre{min-height:360px}.map-list-card{grid-template-columns:auto 1fr}.map-list-card>.status{grid-column:2}.modal-card,.modal-card.large{padding-left:12px;padding-right:12px}.modal-head{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.camera-card-actions,.license-actions{display:grid;grid-template-columns:1fr}.camera-card-actions>* ,.license-actions>*{width:100%}.overview-search{display:grid}.settings-card{padding:14px}.update-current b{font-size:22px}
}
@media(hover:none){.server-card:hover,.map-list-card:hover,.health-clickable:hover{transform:none}.primary:hover,.ghost:hover{filter:none}}

/* MTCC 1.2.0 — root cause, archive validation and mobile PTZ */
.root-cause{display:grid;gap:4px;margin-top:10px;padding:10px 12px;border:1px solid rgba(79,140,255,.34);border-radius:10px;background:rgba(79,140,255,.07)}.root-cause span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--blue)}.root-cause b{font-size:13px}.root-cause small{color:var(--muted)}
.live-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:14px}.ptz-panel{background:#0b1728;border:1px solid var(--line);border-radius:14px;padding:13px;align-self:start}.ptz-head{display:grid;gap:8px}.ptz-head h3{margin:0}.ptz-head label{display:grid;gap:5px;color:var(--muted);font-size:11px}.ptz-head input{width:100%}.ptz-pad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);justify-content:center;gap:7px;margin:14px 0}.ptz-pad button,.ptz-zoom button{border:1px solid #2b4568;background:#132743;color:#eaf3ff;border-radius:12px;font-weight:800;cursor:pointer;user-select:none;touch-action:none}.ptz-pad button:active,.ptz-zoom button:active{background:#28538c;transform:scale(.97)}.ptz-up{grid-column:2}.ptz-left{grid-column:1;grid-row:2}.ptz-home{grid-column:2;grid-row:2;color:var(--cyan)!important}.ptz-right{grid-column:3;grid-row:2}.ptz-down{grid-column:2;grid-row:3}.ptz-zoom{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ptz-zoom button{min-height:42px}.ptz-panel>small{display:block;margin-top:10px;color:var(--muted);line-height:1.4}
.inline-label{display:flex!important;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.inline-label input{width:82px}.archive-test-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:14px}.archive-test-card{overflow:hidden;background:#0c1829;border:1px solid var(--line);border-radius:14px}.archive-test-card.ok{border-color:rgba(57,217,138,.28)}.archive-test-card.failed{border-color:rgba(255,98,125,.34)}.archive-frame{aspect-ratio:16/9;background:#050b13;display:grid;place-items:center;overflow:hidden}.archive-frame img{width:100%;height:100%;object-fit:cover}.archive-test-card>div:last-child{padding:12px}.archive-test-card h3{margin:8px 0 3px;font-size:15px}.archive-test-card p{margin:0 0 7px;color:var(--muted)}.error-text{color:var(--red)!important}
@media(max-width:980px){.live-layout{grid-template-columns:1fr}.ptz-panel{width:100%}.ptz-head{grid-template-columns:1fr minmax(160px,280px);align-items:center}.ptz-pad{grid-template-columns:repeat(3,64px);grid-template-rows:repeat(3,64px)}}
@media(max-width:560px){.archive-test-grid{grid-template-columns:1fr}.ptz-head{grid-template-columns:1fr}.ptz-pad{grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,58px)}.ptz-zoom{grid-template-columns:1fr 1fr}.inline-label{white-space:normal}}


/* MTCC 1.3.0 — hourly local image quality control */
.image-quality-settings{display:grid;grid-template-columns:auto auto minmax(170px,.45fr) minmax(170px,.45fr) auto;gap:12px;align-items:end;margin:15px 0}.image-quality-settings label{display:grid;gap:6px;color:var(--muted);font-size:12px}.image-quality-settings label:has(input[type=checkbox]){display:flex;align-items:center;min-height:44px}.image-quality-settings input[type=number]{background:#091727;border:1px solid #294663;color:#dcecff;border-radius:10px;padding:10px 12px}.image-quality-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:15px}.image-quality-card{background:#0b192a;border:1px solid #29425e;border-radius:14px;overflow:hidden}.image-quality-card.problem{border-color:#d78b35}.image-quality-card.failed{border-color:#b94d63}.image-quality-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#07111e}.image-quality-card-body{padding:12px}.image-quality-card h3{margin:0 0 6px;font-size:14px}.image-quality-card p{margin:5px 0;color:var(--muted);font-size:12px}.quality-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.quality-metrics span{background:#081522;border-radius:8px;padding:7px;text-align:center;font-size:10px}.quality-metrics b{display:block;font-size:13px;color:#eaf3ff}@media(max-width:900px){.image-quality-settings{grid-template-columns:1fr 1fr}.image-quality-settings button{grid-column:1/-1}}@media(max-width:560px){.image-quality-settings{grid-template-columns:1fr}.image-quality-settings button{grid-column:auto}.image-quality-grid{grid-template-columns:1fr}}

/* MTCC 1.5.0 incident accountability */
.incident-actor{margin-top:9px;padding:8px 10px;border:1px solid rgba(61,217,197,.32);background:rgba(61,217,197,.07);border-radius:9px;color:#b9eee7;font-size:12px}
.incident-hidden-note{margin-top:9px;padding:9px 10px;border:1px solid rgba(255,204,102,.35);background:rgba(255,204,102,.08);border-radius:9px;color:#f6d994;font-size:12px}
.admin-incident-card.hidden-incident{opacity:.76}

/* MTCC 1.6.0 — cinematic monitoring drill-down, flexible inventory and AI queue */
.server-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(89,120,151,.22)}
.server-card-footer small{color:var(--muted)}
.server-card-footer .mini{position:relative;z-index:2}

.inventory-filter-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(7,19,32,.58)}
.inventory-filter-grid label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.inventory-filter-grid label select,.inventory-filter-grid label input{width:100%;min-width:0;text-transform:none;letter-spacing:normal}
.inventory-filter-grid .inventory-search-wide{grid-column:span 2}

.object-map-canvas.cinematic-active{box-shadow:0 0 0 1px rgba(77,220,205,.4),0 0 70px rgba(41,199,184,.16)}
.object-map-canvas.cinematic-active .raster-tile-layer{filter:saturate(.72) brightness(.73);transition:filter .35s ease}
.map-cinematic-shade{position:absolute;inset:0;z-index:11;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(circle at center,rgba(16,52,65,.12),rgba(3,10,18,.72));backdrop-filter:blur(1px);pointer-events:none}
.map-cinematic-shade.hidden{display:none}
.map-cinematic-shade>b{padding:9px 14px;border:1px solid rgba(93,231,216,.36);border-radius:999px;background:rgba(4,18,29,.84);color:#dcfff9;font-size:13px;box-shadow:0 12px 36px rgba(0,0,0,.38)}
.map-cinematic-radar{position:relative;width:112px;height:112px;border-radius:50%;border:1px solid rgba(73,228,208,.42);background:radial-gradient(circle,rgba(68,229,207,.28) 0 4%,transparent 5% 100%);box-shadow:0 0 55px rgba(63,223,202,.28)}
.map-cinematic-radar:after{content:"";position:absolute;inset:50% 50% 0 50%;width:50%;height:1px;transform-origin:left center;background:linear-gradient(90deg,#51ead8,transparent);animation:mtccRadarSweep 1.15s linear infinite}
.map-cinematic-radar i{position:absolute;inset:50%;border:1px solid rgba(81,234,216,.42);border-radius:50%;animation:mtccRadarPulse 1.8s ease-out infinite}
.map-cinematic-radar i:nth-child(2){animation-delay:.55s}.map-cinematic-radar i:nth-child(3){animation-delay:1.1s}
@keyframes mtccRadarSweep{to{transform:rotate(360deg)}}
@keyframes mtccRadarPulse{0%{inset:50%;opacity:.95}100%{inset:0;opacity:0}}
.raster-object-marker.focus-target i,.object-map-marker.focus-target i{animation:mtccTargetPulse 1s ease-in-out infinite;box-shadow:0 0 0 4px rgba(255,255,255,.9),0 0 0 11px rgba(255,88,118,.25),0 0 42px currentColor}
.raster-object-marker.focus-target span,.object-map-marker.focus-target span{border-color:#ff718a;background:rgba(33,5,15,.94)}
@keyframes mtccTargetPulse{50%{transform:rotate(-45deg) scale(1.28)}}

.map-camera-focus{position:absolute;right:18px;bottom:18px;z-index:14;width:min(440px,calc(100% - 36px));max-height:calc(100% - 36px);overflow:auto;padding:16px;border:1px solid rgba(89,229,213,.38);border-radius:18px;background:linear-gradient(155deg,rgba(8,24,39,.97),rgba(4,13,23,.98));box-shadow:0 26px 80px rgba(0,0,0,.62),0 0 40px rgba(54,219,199,.12);animation:mtccFocusPanelIn .52s cubic-bezier(.2,.85,.2,1)}
.map-camera-focus.hidden{display:none}
@keyframes mtccFocusPanelIn{from{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:none}}
.map-focus-close{position:absolute;right:9px;top:9px;z-index:3;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:rgba(5,15,25,.88);color:#eef8ff;font-size:23px;cursor:pointer}
.map-focus-eyebrow{display:flex;align-items:center;gap:8px;margin:0 42px 10px 0;color:#ff8298;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.map-focus-eyebrow i{width:9px;height:9px;border-radius:50%;background:#ff627d;box-shadow:0 0 0 5px rgba(255,98,125,.14);animation:mtccBlink 1s infinite}
@keyframes mtccBlink{50%{opacity:.32}}
.map-focus-shot{height:190px;margin:-2px -2px 14px;border-radius:13px;overflow:hidden;background:#06111d;border:1px solid rgba(89,120,151,.28)}
.map-focus-shot img{width:100%;height:100%;object-fit:cover;display:block}
.map-focus-image-placeholder{height:100%;display:grid;place-content:center;justify-items:center;gap:5px;color:#7791aa;text-align:center}.map-focus-image-placeholder span{font-size:32px}.map-focus-image-placeholder b{color:#d9e8f5}
.map-focus-copy h3{margin:0 42px 3px 0;font-size:22px}.map-focus-copy p{margin:0 0 10px;color:var(--muted)}
.map-focus-time{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:10px;background:rgba(255,98,125,.1);color:#f4b2be}.map-focus-time b{color:#fff}
.map-focus-specs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.map-focus-specs>div{min-width:0;padding:9px 10px;border:1px solid rgba(63,91,119,.35);border-radius:10px;background:rgba(7,20,33,.68)}.map-focus-specs .wide{grid-column:1/-1}.map-focus-specs dt{color:#7895af;font-size:10px;text-transform:uppercase}.map-focus-specs dd{margin:3px 0 0;color:#edf7ff;font-size:12px;overflow-wrap:anywhere}.map-focus-specs code{font-size:10px}
.map-focus-camera-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px}.map-focus-camera-tabs button{flex:0 0 auto;max-width:210px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#0a1929;color:#9eb6cc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.map-focus-camera-tabs button.active{border-color:#4ce0cf;color:#eafffb;background:rgba(55,219,199,.13)}
.map-focus-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-focus-ok{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center;padding:18px 42px 18px 4px}.map-focus-ok>span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:rgba(57,217,138,.13);color:#55e7a0;font-size:28px}.map-focus-ok b{font-size:18px}.map-focus-ok p{margin:4px 0;color:#bed0df}

.ai-queue-status{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin:0 0 14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(120deg,rgba(10,28,45,.9),rgba(8,20,34,.7))}
.ai-queue-status>div:last-child{display:grid;gap:3px}.ai-queue-status span{color:#82a0ba;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.ai-queue-status b{font-size:16px}.ai-queue-status small{color:var(--muted)}
.ai-queue-animation{display:flex;align-items:flex-end;gap:4px;width:35px;height:31px;padding:5px;border-radius:9px;background:rgba(84,118,148,.12)}.ai-queue-animation i{display:block;width:6px;height:9px;border-radius:4px;background:#6e89a3}.ai-queue-status.running{border-color:rgba(64,227,207,.44);box-shadow:0 0 30px rgba(64,227,207,.08)}.ai-queue-status.running .ai-queue-animation i{background:#45dfcc;animation:mtccAiBars .75s ease-in-out infinite}.ai-queue-status.running .ai-queue-animation i:nth-child(2){animation-delay:.15s}.ai-queue-status.running .ai-queue-animation i:nth-child(3){animation-delay:.3s}.ai-queue-status.waiting-window .ai-queue-animation i{background:#ffc85c}
@keyframes mtccAiBars{0%,100%{height:7px;opacity:.55}50%{height:25px;opacity:1}}

@media(max-width:1200px){.inventory-filter-grid{grid-template-columns:repeat(4,minmax(130px,1fr))}.inventory-filter-grid .inventory-search-wide{grid-column:span 2}}
@media(max-width:700px){.inventory-filter-grid{grid-template-columns:1fr 1fr;padding:11px}.inventory-filter-grid .inventory-search-wide{grid-column:1/-1}.map-camera-focus{left:8px;right:8px;bottom:8px;width:auto;max-height:78%;padding:13px;border-radius:15px}.map-focus-shot{height:150px}.map-focus-specs{grid-template-columns:1fr}.map-focus-specs .wide{grid-column:auto}.map-focus-actions{grid-template-columns:1fr}.ai-queue-status{grid-template-columns:auto 1fr;padding:12px}.server-card-footer{margin-top:9px}}

/* MTCC 1.7.0 — incident comments and work tickets */
.incident-comment{margin-top:8px;padding:8px 10px;border:1px solid #294663;border-radius:10px;background:#081522;color:#dcecff;font-size:12px}.incident-comment small{display:block;margin-top:4px;color:#7897b7}.primary-mini{border-color:#2bc8bd!important;color:#64eadf!important}.mini.ok{border-color:#40c98a!important;color:#65e4aa!important}

/* MTCC 1.8.0: MAC discovery */
.panel-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.compact-input{min-width:260px;max-width:420px}.mac-scan-status{margin:0 0 12px;padding:8px 12px;border:1px solid var(--line,#243b58);border-radius:10px;color:#8eabc7;font-size:12px;display:flex;gap:8px;align-items:center}.mac-scan-status.running{color:#8de8df;border-color:rgba(43,200,189,.35);background:rgba(43,200,189,.06)}.mac-scan-status.running i{width:10px;height:10px;border:2px solid rgba(141,232,223,.25);border-top-color:#8de8df;border-radius:50%;animation:macSpin .8s linear infinite}.mac-scan-status.error{color:#ff8392;border-color:rgba(255,91,112,.35)}@keyframes macSpin{to{transform:rotate(360deg)}}@media(max-width:780px){.compact-input{min-width:100%;width:100%}.panel-actions{width:100%}}


/* MTCC 1.9.1 — object-scoped MAC and OTRS-style ticket center */
.ticket-toolbar{display:grid;grid-template-columns:repeat(4,minmax(150px,.7fr)) minmax(240px,1.4fr) auto;gap:10px;margin:16px 0}.ticket-toolbar input,.ticket-toolbar select,.ticket-edit-form input,.ticket-edit-form select,.ticket-edit-form textarea,.ticket-properties input,.ticket-properties select,.ticket-reply textarea{background:#091727;border:1px solid #294663;color:#e5f1ff;border-radius:10px;padding:10px 12px}.ticket-row{cursor:pointer}.ticket-row:hover{background:rgba(87,135,255,.08)}.ticket-row.overdue{box-shadow:inset 4px 0 #ff6685}.ticket-row small{display:block;color:#7f9abb;margin-top:4px}.ticket-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#1a2b42}.ticket-status.new{color:#7eb5ff}.ticket-status.open{color:#5ce2ac}.ticket-status.pending{color:#ffc75e}.ticket-status.resolved{color:#9faefb}.ticket-status.closed{color:#8c9aad}.danger-text{color:#ff718d!important}.ticket-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ticket-edit-form label,.ticket-properties label{display:grid;gap:6px;color:#91acc7;font-size:12px}.ticket-edit-form .wide{grid-column:1/-1}.ticket-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.65fr);gap:18px}.ticket-conversation{display:grid;gap:12px;align-content:start}.ticket-origin,.ticket-article{background:#0a1829;border:1px solid #263f5b;border-radius:14px;padding:15px}.ticket-origin p,.ticket-article p{white-space:pre-wrap;line-height:1.5}.ticket-origin small,.ticket-article span{color:#7f9abb;font-size:11px}.ticket-article>div{display:flex;justify-content:space-between;gap:12px}.ticket-article.internal{border-left:4px solid #ffc75e}.ticket-article.external{border-left:4px solid #58dfa9}.ticket-reply{display:grid;grid-template-columns:1fr auto;gap:10px}.ticket-reply textarea{grid-column:1/-1}.ticket-reply label{display:flex;align-items:center;gap:8px;color:#91acc7}.ticket-properties{display:grid;gap:10px;align-content:start;background:#0a1829;border:1px solid #263f5b;border-radius:14px;padding:14px}.ticket-history{margin-top:8px;border-top:1px solid #263f5b;padding-top:12px;max-height:320px;overflow:auto}.ticket-history h3{margin:0 0 10px}.ticket-history>div{padding:9px 0;border-bottom:1px solid rgba(41,66,94,.55)}.ticket-history b,.ticket-history span,.ticket-history small{display:block}.ticket-history span,.ticket-history small{color:#7f9abb;font-size:11px}.mac-scan-status .selected-object{color:#77b5ff}
@media(max-width:1100px){.ticket-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-detail-grid{grid-template-columns:1fr}.ticket-properties{order:-1}}
@media(max-width:700px){.ticket-toolbar,.ticket-edit-form{grid-template-columns:1fr}.ticket-edit-form .wide{grid-column:auto}.ticket-table{min-width:1050px}.ticket-reply{grid-template-columns:1fr}.ticket-reply button{width:100%}}

/* MTCC 1.9.2 — MSO CUMera CUMfigurator */
.nav-cumera{position:relative;overflow:hidden}.nav-cumera:after{content:"";position:absolute;right:12px;width:7px;height:7px;border-radius:50%;background:#22d3ee;box-shadow:0 0 12px #22d3ee}
.cumera-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;margin-bottom:18px;border:1px solid rgba(34,211,238,.2);border-radius:22px;background:radial-gradient(circle at 80% 20%,rgba(34,211,238,.16),transparent 34%),linear-gradient(135deg,rgba(15,23,42,.98),rgba(8,47,73,.55));box-shadow:0 18px 45px rgba(2,8,23,.28)}
.cumera-hero h2{font-size:30px;margin:3px 0 8px}.cumera-hero p{max-width:760px;color:var(--muted);margin:0;line-height:1.55}.cumera-kicker{font-size:11px;letter-spacing:.18em;color:#67e8f9;font-weight:800}.cumera-hero-badge{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid rgba(103,232,249,.25);border-radius:15px;background:rgba(2,6,23,.42);min-width:220px}.cumera-hero-badge i{width:11px;height:11px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 6px rgba(34,197,94,.12),0 0 18px #22c55e}.cumera-hero-badge div{display:flex;flex-direction:column}.cumera-hero-badge small{color:var(--muted);margin-top:2px}
.cumera-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:18px}.cumera-control,.cumera-range{margin:0}.cumera-form-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px 14px}.cumera-form-grid.compact{grid-template-columns:repeat(2,minmax(150px,1fr))}.cumera-form-grid label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.cumera-form-grid input,.cumera-form-grid select{width:100%}.cumera-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.cumera-vendor-hint{display:flex;align-items:center;gap:12px;margin-top:15px;padding:11px 13px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:rgba(15,23,42,.45)}.cumera-vendor-hint b{color:#67e8f9}.cumera-vendor-hint span{font-weight:700}.cumera-vendor-hint small{margin-left:auto;color:var(--muted)}
.cumera-job-status{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;margin:16px 0 12px;padding:13px;border:1px solid rgba(148,163,184,.14);border-radius:13px;background:rgba(15,23,42,.45)}.cumera-job-status>span{position:relative;width:42px;height:42px;border-radius:50%;background:conic-gradient(#22d3ee var(--progress,0%),rgba(148,163,184,.15) 0)}.cumera-job-status>span:after{content:"";position:absolute;inset:5px;border-radius:50%;background:#101827}.cumera-job-status.running>span{animation:cumeraSpin 1.3s linear infinite}.cumera-job-status.error>span{background:#ef4444}.cumera-job-status div{display:flex;flex-direction:column}.cumera-job-status small{color:var(--muted);margin-top:3px}@keyframes cumeraSpin{to{transform:rotate(360deg)}}
.cumera-results{max-height:330px}.cumera-result{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(148,163,184,.12)}.cumera-result.ok,.cumera-result.found{color:#86efac;background:rgba(34,197,94,.12)}.cumera-result.error{color:#fca5a5;background:rgba(239,68,68,.12)}.cumera-log-panel{margin-top:18px}.cumera-log{min-height:240px;max-height:440px;overflow:auto;margin:0;padding:18px;border-radius:14px;background:#050b16;color:#bfdbfe;border:1px solid rgba(59,130,246,.18);font:12px/1.65 Consolas,"SFMono-Regular",monospace;white-space:pre-wrap;word-break:break-word}
@media(max-width:1180px){.cumera-layout{grid-template-columns:1fr}.cumera-form-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:700px){.cumera-hero{align-items:flex-start;flex-direction:column;padding:20px}.cumera-hero h2{font-size:24px}.cumera-hero-badge{width:100%}.cumera-form-grid,.cumera-form-grid.compact{grid-template-columns:1fr}.cumera-vendor-hint{align-items:flex-start;flex-direction:column}.cumera-vendor-hint small{margin-left:0}.cumera-actions>*{flex:1 1 auto}.cumera-results{max-height:420px}}

/* MTCC 1.9.3 hotfix */
.nav-cumera-bottom{margin-top:8px;border:1px solid rgba(34,211,238,.22)!important;background:rgba(8,47,73,.22)!important}.nav-cumera-bottom+\#openMonitorDashboard{margin-top:6px}

/* MTCC 1.9.5 — CUMera Latin-only credentials */
.cumera-input-policy{margin:12px 0 2px;padding:10px 12px;border:1px solid rgba(250,204,21,.28);border-radius:12px;background:rgba(250,204,21,.07);color:#fde68a;font-size:12px;line-height:1.45}
.cumera-form-grid input.input-invalid{border-color:#fb7185!important;box-shadow:0 0 0 3px rgba(251,113,133,.15)!important}

/* MTCC 1.9.6 — object passport, network map and operation report */
.object-center-head{position:sticky;top:0;z-index:4}.object-tabs{display:flex;gap:8px;flex-wrap:wrap}.object-tabs button{border:1px solid #29405f;background:#0d192b;color:#9bb0cb;padding:10px 14px;border-radius:10px;font-weight:700}.object-tabs button.active{background:linear-gradient(135deg,#315f9f,#4f73ff);color:white}.object-tab{display:none}.object-tab.active{display:block}.object-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.object-plan-stage,.network-stage{position:relative;min-height:620px;border:1px solid #29405f;border-radius:16px;overflow:hidden;background:radial-gradient(circle at center,#152843,#09111f);touch-action:none}.object-plan-stage>img{width:100%;height:100%;min-height:620px;object-fit:contain;display:block}.object-plan-stage .plan-empty{position:absolute;inset:0;display:grid;place-items:center}.object-plan-stage.has-image .plan-empty{display:none}.plan-marker,.network-node{position:absolute;transform:translate(-50%,-50%);cursor:grab;user-select:none;z-index:2}.plan-marker:active,.network-node:active{cursor:grabbing}.plan-marker .pin{width:24px;height:24px;border:4px solid white;border-radius:50% 50% 50% 0;background:#ff5e70;transform:rotate(-45deg);box-shadow:0 8px 20px #0008}.plan-marker .pin.online{background:#4dd8b3}.plan-marker label{display:block;margin-top:10px;padding:4px 8px;border-radius:8px;background:#08111ee6;color:white;font-size:11px;white-space:nowrap}.object-palette{max-height:720px;overflow:auto}.object-camera-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px;border:1px solid #233955;border-radius:10px;margin:7px 0;background:#0c1829}.object-camera-item small{color:#7f96b4}.object-camera-item.added{opacity:.55}.camera-export-select{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.camera-export-select label{display:flex;gap:8px;align-items:center;padding:8px;border:1px solid #233955;border-radius:8px}.report-options,.credential-form,.maintenance-form,.document-upload{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.report-options label:first-child{min-width:320px;flex:1}.network-stage{min-height:650px}.network-stage svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.network-node{min-width:150px;padding:12px;border-radius:13px;border:1px solid #386486;background:#102a40;color:#eaf6ff;box-shadow:0 8px 22px #0007}.network-node.switch{border-color:#58d2c0}.network-node.server{border-color:#718eff}.network-node.camera{border-color:#ffb65f}.network-node.selected{outline:3px solid #65ddff}.network-node small{display:block;color:#89a7c1}.network-link{stroke:#59c9d8;stroke-width:2;opacity:.8}.network-editor-fields{display:grid;gap:10px}.reliability-high{color:#ff687b;font-weight:800}.reliability-medium{color:#ffc85c;font-weight:800}.archive-short{color:#ffcc66;font-weight:800}.archive-short small{display:block;color:#9bb0cb}.operation-report{display:grid;gap:12px}.operation-report .ok-box{border:1px solid #36bfa0;background:#102d2a;padding:14px;border-radius:12px}.operation-report .warn-box{border:1px solid #d29a46;background:#302719;padding:14px;border-radius:12px}.operation-report pre{white-space:pre-wrap;background:#07101d;padding:12px;border-radius:10px;max-height:280px;overflow:auto}.maintenance-active{color:#5de2b7;font-weight:800}
@media(max-width:1100px){.object-grid{grid-template-columns:1fr}.object-plan-stage,.object-plan-stage>img,.network-stage{min-height:480px}.object-palette{max-height:none}}

/* MTCC 1.9.7 hotfix: compact PDF options, smooth maps, ticket comment popup */
.report-options-modern{display:grid;grid-template-columns:minmax(280px,1fr) 2.2fr auto;gap:14px;align-items:start}.report-title-field{min-width:0!important}.report-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(155px,1fr));gap:7px}.report-choice-grid label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #263f5b;border-radius:10px;background:#0b192a;color:#b8cbe0}.report-choice-grid input{width:auto}.report-select-actions{display:grid;gap:7px}.object-plan-stage,.network-stage{transition:opacity .55s cubic-bezier(.2,.8,.2,1),transform .55s cubic-bezier(.2,.8,.2,1),filter .55s}.object-plan-stage.object-switching,.network-stage.object-switching{opacity:.22;transform:scale(.985);filter:blur(2px)}.object-plan-stage>img{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.object-plan-stage.object-switching>img{opacity:.35;transform:scale(1.015)}.raster-map-tile{animation:tileSoftIn .28s ease both}.raster-object-marker,.object-map-marker{transition:left .25s linear,top .25s linear,transform .25s ease}.ticket-notification-card{width:min(560px,100%)}.ticket-comment-popup{padding:16px;border:1px solid #345675;border-radius:14px;background:linear-gradient(145deg,#0c1d31,#0a1727)}.ticket-comment-popup>div{display:flex;justify-content:space-between;gap:12px}.ticket-comment-popup span{color:#7f9abb;font-size:11px}.ticket-comment-popup p{white-space:pre-wrap;margin:12px 0 0;line-height:1.55}.compact-stats{grid-template-columns:repeat(3,minmax(150px,1fr));margin-bottom:14px}@keyframes tileSoftIn{from{opacity:.35}to{opacity:1}}
@media(max-width:1050px){.report-options-modern{grid-template-columns:1fr}.report-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-select-actions{display:flex}}@media(max-width:650px){.report-choice-grid{grid-template-columns:1fr}.compact-stats{grid-template-columns:1fr}}

/* MTCC 1.9.8 Hotfix 2 */
.recorder-group{margin:0 0 18px;border:1px solid var(--line,#213a55);border-radius:18px;padding:12px;background:linear-gradient(145deg,rgba(16,35,57,.74),rgba(8,23,39,.58))}
.recorder-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 5px 12px}.recorder-group-head>div{display:flex;gap:10px;align-items:baseline}.recorder-group-head b{font-size:16px}.recorder-group-head small,.recorder-group-head span{color:var(--muted,#86a4c2);font-size:12px}.recorder-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.recorder-group-grid .server-card{margin:0}
.recorder-group-row td{background:#122840!important;color:#dff6ff!important;padding:10px 14px!important;border-top:1px solid #31506d;border-bottom:1px solid #31506d}.recorder-group-row td span{float:right;color:#8fb0cc;font-size:12px}
.connectivity-badge{display:inline-flex;margin:5px 0 0 8px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800}.connectivity-badge.critical{background:rgba(255,80,112,.16);color:#ff7792}.connectivity-badge.warning{background:rgba(255,193,85,.14);color:#ffd06d}
.date-picker-wrap{display:grid;grid-template-columns:1fr 42px;gap:6px}.calendar-btn{border:1px solid #294664;background:#142a43;color:#d8efff;border-radius:10px;cursor:pointer;font-size:18px}.calendar-btn:hover{background:#1b3959}
.sla-top-grid,.sla-problem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.sla-top-grid{margin:12px 0 20px}.sla-camera-card{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:start;padding:14px;border:1px solid #27425f;border-radius:15px;background:#0e2035}.sla-camera-card.warn{border-color:#725d30}.sla-camera-card.danger{border-color:#71364a}.sla-card-score{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#193755;color:#7fe5ff;font-weight:900;font-size:20px}.sla-camera-card.warn .sla-card-score{background:#41351e;color:#ffd36c}.sla-camera-card.danger .sla-card-score{background:#40202d;color:#ff829a}.sla-camera-card b{display:block;font-size:15px}.sla-camera-card small{display:block;color:#8eacc8;margin-top:3px}.sla-card-metrics{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;font-size:11px;color:#8eacc8}.sla-card-metrics strong{color:#fff}.sla-camera-card p{margin:8px 0 0;color:#b9cee0;font-size:12px}.sla-top-title{display:flex;justify-content:space-between;align-items:end;margin-top:15px}.sla-top-title small{color:#7899b8}
.network-stage:fullscreen{background:#081725;padding:28px;width:100vw;height:100vh;border-radius:0}.network-stage:fullscreen #networkNodes,.network-stage:fullscreen #networkLinks{height:calc(100vh - 70px)}.network-fullscreen-title{opacity:.85}.network-node{transition:left .35s cubic-bezier(.2,.8,.2,1),top .35s cubic-bezier(.2,.8,.2,1),transform .2s}.network-node:hover{transform:translate(-50%,-50%) scale(1.04)}.network-link{transition:all .35s ease}.network-link-list{max-height:180px;overflow:auto;display:grid;gap:5px}
.dictionary-form{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:18px}.dictionary-form button{align-self:end}
.rack-designer{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.rack-card{border:1px solid #294661;border-radius:14px;background:#091a2b;padding:12px}.rack-card>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.rack-card>header small{display:block;color:#7f9fba}.rack-body{border:3px solid #3c5268;background:#070f18;padding:5px}.rack-unit{height:24px;border-bottom:1px solid #293b4d;position:relative;color:#657f98;font-size:9px;padding:2px 5px}.rack-unit.occupied{background:rgba(75,135,176,.07)}.rack-unit>b{position:absolute;left:35px;right:4px;top:1px;background:linear-gradient(90deg,#224769,#17344f);border:1px solid #4c779c;border-radius:4px;color:#e9f7ff;display:flex;align-items:center;padding:0 8px;z-index:2}.rack-unit>b small{margin-left:auto;color:#a7c5dc}.rack-unit>b button{margin-left:7px;border:0;background:transparent;color:#ff8195;cursor:pointer}
.object-document-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.object-card{display:grid;grid-template-columns:110px 1fr;gap:13px;border:1px solid #294661;border-radius:16px;overflow:hidden;background:#0e2035;cursor:pointer;transition:.2s}.object-card:hover{transform:translateY(-2px);border-color:#5dbad8}.object-card-photo{height:120px;background:#071522;display:grid;place-items:center;color:#6e8ca7}.object-card-photo img{width:100%;height:100%;object-fit:cover}.object-card>div:last-child{padding:11px 10px 10px 0}.object-card h3{margin:7px 0 3px}.object-card p{margin:0 0 8px;color:#9ab4ca;font-size:12px}.object-profile-editor{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:18px}.object-profile-preview{border:1px solid #294661;border-radius:16px;overflow:hidden;background:#0a1929}.object-profile-preview img{width:100%;height:230px;object-fit:cover}.object-profile-preview>div:last-child{padding:14px}.object-photo-placeholder{height:230px;display:grid;place-items:center;color:#7895ae}.object-profile-fields{display:grid;gap:10px}.object-profile-fields label{display:grid;gap:6px}
@media(max-width:900px){.dictionary-form{grid-template-columns:1fr 1fr}.object-profile-editor{grid-template-columns:1fr}.recorder-group-grid{grid-template-columns:1fr}.sla-top-grid,.sla-problem-grid{grid-template-columns:1fr}}

/* MTCC 1.9.9 Hotfix 3 */
.canvas-toolbar{display:flex;gap:7px;align-items:center;margin:0 0 8px}.canvas-toolbar span{color:var(--muted);font-size:12px;min-width:44px}.zoom-pan-viewport{overflow:hidden;touch-action:none;cursor:grab}.zoom-pan-viewport.panning{cursor:grabbing}.zoom-pan-canvas{position:absolute;inset:0;transform-origin:0 0;will-change:transform;transition:transform .08s linear}.zoom-pan-viewport.panning .zoom-pan-canvas{transition:none}.network-canvas{min-width:100%;min-height:100%}.network-canvas>svg,.network-canvas>#networkNodes{position:absolute;inset:0;width:100%;height:100%}.object-plan-stage #objectPlanCanvas img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.object-plan-stage #objectPlanCanvas #objectPlanMarkers{position:absolute;inset:0}.network-camera-card{width:min(760px,100%)}.network-camera-preview{display:block;width:100%;max-height:480px;object-fit:contain;background:#050b14;border:1px solid var(--line);border-radius:14px}.network-camera-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.compact-warning{padding:14px;border:1px solid rgba(255,204,102,.35);background:rgba(255,204,102,.08);color:var(--yellow);border-radius:12px;text-align:center}.object-profile-fields input[type=number]{max-width:180px}.network-stage:fullscreen{background:var(--bg);padding:30px}.network-stage:fullscreen .network-canvas{inset:40px 0 0}.recorder-group-head{gap:12px}@media(max-width:760px){.network-camera-actions{flex-direction:column}.canvas-toolbar{position:relative;z-index:4}}

/* MTCC 1.10.0 Hotfix 4 */
.recorder-group{grid-column:1/-1}
.quality-problem-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.quality-problem-tags span{padding:4px 8px;border-radius:999px;background:rgba(255,110,130,.12);border:1px solid rgba(255,110,130,.28);color:#ff9cad;font-size:11px;font-weight:700}.quality-problem-tags span.ok{background:rgba(69,214,157,.12);border-color:rgba(69,214,157,.28);color:#72e9b8}.quality-feedback{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:11px;padding-top:10px;border-top:1px solid rgba(91,127,160,.22)}.quality-feedback small{color:var(--muted);margin-left:auto}.camera-fov-sector{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;overflow:visible;z-index:-1}.camera-fov-sector path{fill:rgba(103,216,255,.18);stroke:rgba(103,216,255,.72);stroke-width:2}.plan-marker{z-index:2}.plan-marker label{white-space:nowrap}.switch-port-result{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-top:12px;padding:12px 14px;border:1px solid rgba(94,228,202,.32);background:rgba(94,228,202,.08);border-radius:13px}.switch-port-result span{color:var(--muted);text-align:right}.error-text{color:#ff8097}.server-grid>.server-card{min-width:0}
@media(max-width:760px){.quality-feedback{display:grid;grid-template-columns:1fr}.quality-feedback small{margin:0}.switch-port-result{align-items:flex-start;flex-direction:column}.switch-port-result span{text-align:left}}

/* MTCC 1.10.1 */
.snmp-settings-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end;margin:14px 0 16px}.snmp-settings-form label{display:grid;gap:6px;color:var(--muted);font-size:12px}.snmp-settings-form input,.snmp-settings-form select{width:100%}.snmp-form-actions{display:flex;gap:8px;align-items:center}.snmp-test-result{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin:0 0 14px;border:1px solid var(--line);border-radius:12px;background:rgba(13,25,42,.72);color:var(--muted)}.snmp-test-result.ok{border-color:rgba(35,196,131,.5);background:rgba(35,196,131,.08);color:#b9f6da}.snmp-test-result.error{border-color:rgba(244,83,111,.55);background:rgba(244,83,111,.08);color:#ffd0d8}.snmp-test-result.loading{border-color:rgba(77,168,255,.5);color:#c9e7ff}.secret-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:rgba(77,168,255,.12);color:#9fd0ff;font-size:11px;font-weight:700}@media(max-width:1100px){.snmp-settings-form{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:680px){.snmp-settings-form{grid-template-columns:1fr}.snmp-form-actions{flex-wrap:wrap}}


/* ---- MTCC 1.11.0 network equipment center ---- */
.network-center-hero{display:flex;justify-content:space-between;gap:28px;align-items:center;background:linear-gradient(135deg,rgba(28,53,92,.96),rgba(9,20,38,.98));border:1px solid rgba(99,162,255,.24);overflow:hidden;position:relative}.network-center-hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-120px;top:-190px;background:radial-gradient(circle,rgba(48,139,255,.22),transparent 68%)}.network-center-hero h2{font-size:30px;margin:4px 0 8px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:#63a8ff}.network-center-controls{display:grid;grid-template-columns:minmax(200px,1fr) minmax(220px,1fr);gap:10px;align-items:center;z-index:1}.network-center-controls label{display:flex;align-items:center;gap:8px;font-size:13px}.network-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.network-metrics article{padding:18px 20px;border-radius:18px;background:linear-gradient(145deg,#111f34,#0b1628);border:1px solid rgba(122,158,207,.16);box-shadow:0 14px 30px rgba(0,0,0,.16)}.network-metrics span,.network-metrics small{display:block;color:var(--muted)}.network-metrics b{display:block;font-size:28px;margin:6px 0}.network-tabs{margin-bottom:16px;overflow:auto}.network-tab{display:none}.network-tab.active{display:block}.network-device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.network-device-card{background:linear-gradient(145deg,rgba(18,34,57,.98),rgba(10,21,38,.98));border:1px solid rgba(121,159,209,.16);border-radius:20px;padding:18px;box-shadow:0 16px 38px rgba(0,0,0,.18)}.network-device-card.online{border-color:rgba(49,205,143,.25)}.network-device-card.offline{border-color:rgba(255,91,111,.25)}.device-card-top{display:flex;align-items:center;gap:12px}.device-card-top>div:nth-child(2){flex:1}.device-card-top h3{margin:0 0 4px}.device-card-top p{margin:0;color:var(--muted)}.device-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:rgba(51,137,255,.15);font-size:24px;color:#71b2ff}.device-card-model{margin:16px 0;padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.035);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-capabilities{display:flex;gap:8px;flex-wrap:wrap}.device-capabilities span{padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.05);color:var(--muted);font-size:12px}.device-capabilities span.ok{background:rgba(44,201,138,.12);color:#66e4ae}.device-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:17px}.device-detail-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.device-detail-summary span{padding:14px;border-radius:14px;background:rgba(255,255,255,.04)}.device-detail-summary b{display:block;font-size:20px}.panel-subsection{margin-top:20px}.neighbor-row{display:grid;grid-template-columns:minmax(140px,1fr) 25px minmax(160px,1fr) minmax(160px,1fr);gap:8px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);align-items:center}.network-topology-viewport{height:620px;overflow:hidden;position:relative;background:radial-gradient(circle at 50% 50%,rgba(28,62,104,.2),transparent 55%),#07111f;border:1px solid rgba(112,151,204,.15);border-radius:18px;cursor:grab}.network-topology-viewport:active{cursor:grabbing}.network-topology-canvas{position:absolute;transform-origin:0 0;transition:transform .12s ease}.network-topology-canvas svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.topology-device-node{position:absolute;transform:translate(-50%,-50%);width:190px;min-height:84px;border-radius:16px;border:1px solid rgba(102,160,238,.28);background:linear-gradient(145deg,#152a47,#0c192d);color:#fff;padding:12px;text-align:left;box-shadow:0 12px 30px rgba(0,0,0,.3);z-index:2}.topology-device-node.online{border-color:rgba(54,218,151,.48)}.topology-device-node b,.topology-device-node span,.topology-device-node small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topology-device-node span{color:#87baff;margin:5px 0}.topology-device-node small{color:var(--muted)}.topology-link{stroke:#4e8edc;stroke-width:2;opacity:.7}.topology-link.cdp{stroke:#9c73ff;stroke-dasharray:7 5}.network-topology-canvas text{fill:#9db2cd;font-size:11px;text-anchor:middle}.physical-camera-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}.physical-camera-card{border-radius:18px;overflow:hidden;background:linear-gradient(145deg,#12223a,#0a1526);border:1px solid rgba(117,156,208,.16);cursor:pointer;transition:transform .2s,border-color .2s}.physical-camera-card:hover{transform:translateY(-3px);border-color:rgba(77,151,255,.5)}.physical-camera-card.linked{border-color:rgba(50,203,142,.24)}.camera-card-shot{height:160px;background:#050c16;position:relative}.camera-card-shot img{width:100%;height:100%;object-fit:cover}.camera-card-shot span{position:absolute;left:10px;bottom:10px;padding:5px 9px;border-radius:999px;background:rgba(5,12,22,.78);backdrop-filter:blur(8px);font-size:11px}.camera-card-shot.no-shot:after{content:"Снимок отсутствует";display:grid;place-items:center;height:100%;color:var(--muted)}.physical-camera-body{padding:15px}.physical-camera-body h3{margin:0 0 4px}.physical-camera-body p{margin:0 0 13px;color:var(--muted)}.path-chain{display:flex;align-items:center;gap:8px;padding:10px;border-radius:12px;background:rgba(44,199,138,.08)}.path-chain b,.path-chain strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.port-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.port-metrics span{font-size:10px;color:var(--muted);padding:7px;background:rgba(255,255,255,.035);border-radius:8px}.port-metrics b{display:block;color:#fff;margin-top:3px}.physical-camera-detail{display:grid;grid-template-columns:minmax(300px,1fr) minmax(380px,1.1fr);gap:18px}.camera-detail-preview img{width:100%;max-height:390px;object-fit:contain;background:#050b14;border-radius:16px}.camera-detail-preview a{display:block;text-align:center;margin-top:10px}.connection-card{padding:20px;border-radius:18px;background:linear-gradient(145deg,rgba(23,45,75,.95),rgba(9,20,36,.95));border:1px solid rgba(93,154,237,.22)}.connection-card h3{font-size:24px;margin:8px 0 4px}.connection-card p{color:var(--muted)}.connection-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:18px 0}.connection-metrics div{padding:11px;border-radius:11px;background:rgba(255,255,255,.04)}.connection-metrics span{display:block;color:var(--muted);font-size:11px}.connection-metrics b{display:block;margin-top:4px}.full{width:100%;margin-top:14px}.correlation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:15px}.correlation-card{padding:18px;border-radius:18px;background:linear-gradient(145deg,#17253c,#0b1628);border:1px solid rgba(255,183,74,.25)}.correlation-card.critical{border-color:rgba(255,81,104,.4)}.correlation-card>div,.correlation-card footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.correlation-card h3{margin:14px 0 8px}.correlation-card p{color:#c8d4e5;line-height:1.5}.correlation-card footer{margin-top:15px;padding-top:12px;border-top:1px solid rgba(255,255,255,.07)}.correlation-card footer span{color:var(--muted)}.correlation-card footer b{color:#fff}.compact-warning{margin-top:10px;padding:9px 11px;border-radius:10px;background:rgba(255,178,61,.1);color:#ffc66d;font-size:12px}
@media(max-width:900px){.network-center-hero{display:block}.network-center-controls{grid-template-columns:1fr;margin-top:18px}.network-metrics{grid-template-columns:repeat(2,1fr)}.network-device-grid,.physical-camera-grid,.correlation-grid{grid-template-columns:1fr}.physical-camera-detail{grid-template-columns:1fr}.device-detail-summary{grid-template-columns:1fr}.port-metrics{grid-template-columns:repeat(2,1fr)}}

.uplink-list{margin:12px 0;padding:10px;border-radius:11px;background:rgba(85,140,220,.08)}.uplink-list>b,.uplink-list span{display:block}.uplink-list span{margin-top:6px;color:var(--muted);font-size:12px}


/* ---- MTCC 1.11.1 network UI and port reboot hotfix ---- */
.network-tabs{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px;
  margin:16px 0;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  border:1px solid rgba(92,132,187,.22);
  border-radius:14px;
  background:linear-gradient(145deg,rgba(15,29,49,.96),rgba(9,19,34,.96));
  box-shadow:0 12px 30px rgba(0,0,0,.15);
}
.network-tabs button{
  flex:0 0 auto;
  min-height:40px;
  border:1px solid transparent;
  border-radius:10px;
  padding:9px 14px;
  background:transparent;
  color:#95abc7;
  font:inherit;
  font-weight:750;
  white-space:nowrap;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.network-tabs button:hover{
  color:#eef6ff;
  border-color:rgba(90,146,225,.28);
  background:rgba(64,119,197,.12);
  transform:translateY(-1px);
}
.network-tabs button.active{
  color:#fff;
  border-color:rgba(91,151,255,.48);
  background:linear-gradient(135deg,#315f9f,#5f65ff);
  box-shadow:0 8px 20px rgba(65,112,224,.25);
}
.modal-card.wide{
  width:min(1180px,calc(100vw - 40px));
  max-width:1180px;
  overflow-x:hidden;
}
#networkDeviceModal .modal-head [data-close],
#physicalCameraModal .modal-head [data-close]{
  width:42px;
  height:42px;
  min-width:42px;
  border:1px solid rgba(118,151,196,.25);
  border-radius:11px;
  background:#182943;
  color:#dce9fb;
  font-size:23px;
  line-height:1;
  cursor:pointer;
}
#networkDeviceModal .modal-head [data-close]:hover,
#physicalCameraModal .modal-head [data-close]:hover{
  background:#223958;
  border-color:rgba(103,162,244,.5);
}
.physical-camera-detail{min-width:0}
.camera-detail-preview,.connection-card{min-width:0}
.camera-detail-preview img{display:block}
.connection-card .row-actions{flex-wrap:wrap}
.connection-card .row-actions .mini{flex:1 1 140px;min-height:39px}
.port-cycle-button{color:#ffcf76!important;border-color:rgba(255,190,83,.42)!important;background:rgba(255,178,48,.08)!important}
.port-cycle-button:hover{background:rgba(255,178,48,.16)!important}
.uplink-list{display:grid;gap:7px;margin:12px 0;padding:12px;border-radius:12px;background:rgba(255,255,255,.035);overflow:hidden}
.uplink-list span{display:block;min-width:0;overflow-wrap:anywhere;color:#b9cbe2}
.network-snmp-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:rgba(94,139,204,.08);color:#9eb5d3;font-size:12px}
@media(max-width:900px){
  .network-tabs{margin-left:0;margin-right:0}
  .modal-card.wide{width:100%;max-width:none}
  .physical-camera-detail{grid-template-columns:1fr}
}

/* MTCC 1.11.2 network inventory */
.network-object-group{grid-column:1/-1;border:1px solid var(--border);border-radius:20px;background:linear-gradient(135deg,rgba(19,35,61,.95),rgba(10,22,39,.95));padding:16px;margin-bottom:18px}.network-object-head{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:14px;align-items:center;padding:2px 4px 16px}.network-object-head span{color:#67d8ff;font-size:11px;font-weight:800;letter-spacing:.13em}.network-object-head h3{margin:3px 0;font-size:20px}.network-object-head p{margin:0;color:var(--muted)}.recorder-link-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-weight:900;background:linear-gradient(135deg,#4f86ff,#735cff);box-shadow:0 12px 30px rgba(79,134,255,.24)}.network-object-stats{display:grid;grid-template-columns:repeat(3,auto auto);gap:3px 8px;align-items:baseline}.network-object-stats b{font-size:20px}.network-object-stats small{color:var(--muted);margin-right:8px}.network-object-group .network-device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.device-popup-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:14px}.switch-port-visual{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:9px;margin:10px 0 18px}.switch-port-tile{border:1px solid rgba(129,156,195,.24);border-radius:13px;background:#101d31;color:var(--text);padding:10px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:3px;min-height:76px}.switch-port-tile.up{border-color:rgba(79,222,176,.45)}.switch-port-tile.down{opacity:.65}.switch-port-tile.poe-on{box-shadow:inset 0 0 0 1px rgba(255,201,82,.25)}.switch-port-tile small,.switch-port-tile em{grid-column:1/-1;color:var(--muted);font-style:normal;font-size:11px}.switch-port-tile em{color:#ffd06d;font-weight:700}.port-camera-chip{margin-top:5px;padding:4px 7px;border-radius:8px;background:rgba(103,216,255,.09);color:#9fe8ff;font-size:11px}.device-auto-map{display:grid;grid-template-columns:minmax(180px,230px) auto minmax(180px,230px) minmax(260px,1fr);gap:13px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(6,16,29,.45)}.auto-map-node{border:1px solid rgba(103,216,255,.3);border-radius:14px;padding:13px;display:flex;flex-direction:column}.auto-map-node span{font-size:10px;letter-spacing:.12em;color:#67d8ff}.auto-map-node small{color:var(--muted)}.auto-map-arrow{font-size:26px;color:#67d8ff}.auto-map-camera-list{display:grid;gap:7px;max-height:300px;overflow:auto}.auto-map-camera{border-left:3px solid #735cff;background:rgba(115,92,255,.1);border-radius:9px;padding:8px 10px;display:grid}.auto-map-camera span{font-size:10px;color:#67d8ff}.auto-map-camera small{color:var(--muted)}.server-type-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin-bottom:16px}.server-type-stats article{border:1px solid var(--border);border-radius:16px;background:linear-gradient(145deg,#14233b,#0d192a);padding:14px}.server-type-stats span,.server-type-stats small{display:block;color:var(--muted)}.server-type-stats b{font-size:28px}.server-total-stat{background:linear-gradient(135deg,rgba(79,134,255,.25),rgba(115,92,255,.18))!important}.server-type-stats .warning{border-color:rgba(255,188,76,.4)}
@media(max-width:850px){.network-object-head{grid-template-columns:auto 1fr}.network-object-stats{grid-column:1/-1}.device-auto-map{grid-template-columns:1fr}.auto-map-arrow{transform:rotate(90deg);justify-self:center}}

/* MTCC 2.0 — unified branding, adaptive server cards and camera center */
.brand-logo-only{padding:0 4px 22px;justify-content:center}.sidebar-logo-full{display:block;width:100%;max-width:210px;height:76px;object-fit:contain}.mobile-brand-logo{min-width:0;gap:8px}.mobile-brand-logo img{width:132px;height:38px;object-fit:contain}.mobile-brand-logo small{white-space:nowrap}.mtcc-full-login-logo{display:block;width:min(100%,430px)!important;height:auto!important;max-height:170px!important;object-fit:contain!important;margin:0 auto 20px!important}.mtcc-login-card{width:min(560px,calc(100vw - 32px))}.public-login-card.mtcc-login-card{width:min(560px,calc(100vw - 32px))}.mtcc-login-meta{margin-top:4px}.tv-logo{width:250px!important;height:80px!important;object-fit:contain!important}

.server-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start}.server-card{min-width:0;overflow:hidden}.server-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.server-top>div{min-width:0}.server-name,.server-address{overflow-wrap:anywhere}.server-card .status{flex:none;max-width:150px;white-space:nowrap;align-self:start}.server-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.server-stats>div{min-width:0}.server-stats b,.server-stats span{overflow-wrap:anywhere}.modal-card.large{width:min(1180px,calc(100vw - 28px));overflow-x:hidden}.details-metrics{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.state-strip{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}

.server-detail-tabs,.camera-center-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px;margin:0 0 18px;scrollbar-width:thin}.server-detail-tabs button,.camera-center-tabs button{border:1px solid var(--line);background:#0b1728;color:var(--muted);padding:11px 15px;border-radius:11px;font-weight:750;white-space:nowrap;cursor:pointer}.server-detail-tabs button.active,.camera-center-tabs button.active{color:#fff;border-color:rgba(79,140,255,.75);background:linear-gradient(135deg,rgba(79,140,255,.28),rgba(61,217,197,.14));box-shadow:0 8px 24px rgba(0,0,0,.18)}.server-detail-tabs span,.camera-center-tabs span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:6px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.09)}.server-detail-pane,.camera-center-pane{display:none}.server-detail-pane.active,.camera-center-pane.active{display:block;animation:mtccPaneIn .2s ease-out}@keyframes mtccPaneIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.camera-center-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(22,36,58,.95),rgba(11,23,40,.95));margin-bottom:14px}.camera-center-head>div:first-child>span{color:#67a1ff;font-size:11px;font-weight:850;letter-spacing:.14em}.camera-center-head h3{font-size:22px;margin:5px 0}.camera-center-head p{margin:0;color:var(--muted)}.camera-center-summary{display:grid;grid-template-columns:auto auto;gap:4px 12px;align-items:center;min-width:190px}.camera-center-summary .status{grid-column:1/-1;margin-bottom:5px}.camera-center-summary b{font-size:22px}.camera-center-summary small{color:var(--muted)}.camera-wizard-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:rgba(8,18,32,.6)}.wizard-title{display:grid;gap:4px;margin-bottom:18px}.wizard-title b{font-size:19px}.wizard-title span{color:var(--muted)}.operation-success{display:grid;gap:5px;margin-top:14px;padding:14px;border:1px solid rgba(57,217,138,.38);border-radius:12px;background:rgba(57,217,138,.09)}.operation-success b{color:var(--green);font-size:16px}.operation-success span,.operation-success small{color:var(--muted)}

@media(max-width:980px){.server-grid{grid-template-columns:1fr}.camera-center-head{grid-template-columns:1fr}.camera-center-summary{grid-template-columns:auto 1fr;min-width:0}.modal-card.large{width:calc(100vw - 18px);padding:16px}.details-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.details-actions>*{width:100%;justify-content:center;text-align:center}.server-card .status{max-width:none}}
@media(max-width:620px){.server-top{grid-template-columns:1fr}.server-card .status{margin-top:10px;justify-self:start}.server-stats{grid-template-columns:1fr 1fr}.details-actions{grid-template-columns:1fr}.camera-center-head{padding:15px}.camera-center-tabs{margin-inline:-4px}.mtcc-full-login-logo{max-height:120px!important}.sidebar-logo-full{height:64px}}

/* MTCC 2.0.1 — logo frame and startup hotfix */
.mtcc-logo-frame{
  position:relative;
  isolation:isolate;
  border:1px solid rgba(90,139,220,.38);
  background:
    radial-gradient(circle at 50% 10%,rgba(64,118,210,.17),transparent 58%),
    linear-gradient(145deg,rgba(17,31,52,.98),rgba(7,16,29,.98));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 18px 42px rgba(0,0,0,.28),
    0 0 34px rgba(45,107,212,.08);
  overflow:hidden;
}
.mtcc-logo-frame::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 15%,rgba(91,148,255,.08) 48%,transparent 72%);
  transform:translateX(-65%);
  animation:mtccLogoSweep 8s ease-in-out infinite;
}
@keyframes mtccLogoSweep{0%,70%{transform:translateX(-70%)}88%,100%{transform:translateX(75%)}}
.mtcc-logo-frame img{position:relative;z-index:1;filter:drop-shadow(0 8px 20px rgba(0,0,0,.34)) saturate(1.08)}
.mtcc-logo-frame-sidebar{
  margin:12px 12px 20px;
  padding:10px 12px;
  min-height:96px;
  border-radius:18px;
  justify-content:center;
}
.mtcc-logo-frame-sidebar .sidebar-logo-full{height:72px;max-width:220px}
.mtcc-logo-frame-login{
  width:100%;
  box-sizing:border-box;
  border-radius:20px;
  padding:18px 22px;
  margin:0 auto 22px;
}
.mtcc-logo-frame-login .mtcc-full-login-logo{margin:0 auto!important;max-height:155px!important}
.mtcc-logo-frame-mobile{
  border-radius:10px;
  padding:3px 8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 8px 18px rgba(0,0,0,.2);
}
@media(max-width:620px){
  .mtcc-logo-frame-sidebar{margin:8px 10px 15px;min-height:82px;padding:8px}
  .mtcc-logo-frame-sidebar .sidebar-logo-full{height:62px}
  .mtcc-logo-frame-login{padding:13px 14px;border-radius:16px;margin-bottom:18px}
  .mtcc-logo-frame-login .mtcc-full-login-logo{max-height:112px!important}
}


/* MTCC 2.0.3 — brighter branding container and camera-center actions */
.mtcc-logo-frame{
  background:linear-gradient(145deg,rgba(48,76,111,.98),rgba(27,48,76,.98))!important;
  border-color:rgba(132,190,255,.62)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.16),0 0 0 1px rgba(68,139,229,.16)!important;
}
.mtcc-logo-frame::before{background:linear-gradient(110deg,transparent 15%,rgba(255,255,255,.20) 48%,transparent 76%)!important;opacity:.58!important}
.mtcc-logo-frame img{filter:drop-shadow(0 8px 18px rgba(0,0,0,.26)) saturate(1.12) brightness(1.08)!important}
.camera-center-action-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px;border:1px solid var(--border);border-radius:15px;background:rgba(14,29,50,.72)}
.camera-center-action-row span{color:var(--muted)}
@media(max-width:620px){.camera-center-action-row .primary{width:100%}}


/* MTCC 2.0.3 — mobile header, translucent brand, camera-center rename */
.mtcc-logo-frame{
  background:linear-gradient(145deg,rgba(45,67,94,.30),rgba(19,34,56,.18))!important;
  border-color:rgba(119,164,224,.42)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 28px rgba(0,0,0,.20)!important;
  backdrop-filter:blur(8px) saturate(1.08);
}
.mtcc-logo-frame::before{opacity:.25!important}
.mtcc-logo-frame img{filter:drop-shadow(0 7px 16px rgba(0,0,0,.24)) saturate(1.08) brightness(1.04)!important}
.mobile-network-state{min-width:0;justify-self:center;padding:8px 15px;border:1px solid rgba(61,217,197,.26);border-radius:999px;background:rgba(11,23,40,.52);color:var(--green);font-size:12px;font-weight:800;letter-spacing:.04em}
.is-offline .mobile-network-state{color:var(--red);border-color:rgba(255,91,110,.30)}
.live-modal-card{width:min(920px,100%)}
.live-layout{display:block!important}.ptz-panel{display:none!important}
.camera-center-inline-rename{display:grid;gap:10px;margin-bottom:16px}
.camera-center-rename-row{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,1.15fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;background:rgba(9,20,35,.66)}
.camera-center-rename-row>div{display:grid;gap:4px;min-width:0}.camera-center-rename-row small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-center-rename-row input{min-width:0}
@media(max-width:760px){.camera-center-rename-row{grid-template-columns:1fr}.camera-center-rename-row .primary{width:100%}.mobile-topbar{grid-template-columns:44px minmax(0,1fr) 44px}}

/* MTCC 2.0.4 — selective switch discovery */
.network-add-modal{width:min(1180px,calc(100vw - 32px));max-width:1180px}
.network-add-common{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,1fr) minmax(140px,.55fr) minmax(110px,.4fr);gap:14px;padding:4px 0 18px}
.network-add-common label,.network-add-section label{display:grid;gap:7px;color:var(--muted)}
.network-add-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:18px;align-items:start}
.network-add-section{border:1px solid var(--border);border-radius:20px;padding:18px;background:rgba(8,19,36,.48);min-width:0}
.network-add-section .panel-head{margin-bottom:14px}
.network-add-section .panel-head h3{margin:0 0 4px}
.network-add-section .panel-head p{margin:0;color:var(--muted)}
.network-scan-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center}
.network-scan-controls .check-row{grid-column:1/-1;display:flex;align-items:center;gap:10px}
.network-scan-summary{margin:14px 0 10px;padding:11px 13px;border-radius:13px;background:rgba(63,123,214,.10);border:1px solid rgba(111,168,255,.18);color:var(--muted)}
.network-scan-results{display:grid;gap:10px;max-height:48vh;overflow:auto;padding-right:4px}
.network-scan-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(18,35,59,.72)}
.network-scan-card.added{opacity:.7;background:rgba(20,56,51,.42)}
.network-scan-card h4{margin:8px 0 4px;font-size:1rem}
.network-scan-card p,.network-scan-card small{margin:0;color:var(--muted);overflow-wrap:anywhere}
.network-scan-card button{min-width:112px}
.form-grid.one-column{grid-template-columns:1fr}
@media(max-width:900px){.network-add-common{grid-template-columns:1fr 1fr}.network-add-grid{grid-template-columns:1fr}.network-scan-results{max-height:38vh}}
@media(max-width:600px){.network-add-modal{width:calc(100vw - 16px)}.network-add-common{grid-template-columns:1fr}.network-scan-controls{grid-template-columns:1fr}.network-scan-card{grid-template-columns:1fr}.network-scan-card button{width:100%}}

/* MTCC 2.0.5 — PoE diagnostics and vendor profile */
.poe-diag-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.poe-diag-summary article{padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(14,31,52,.72)}.poe-diag-summary span,.poe-diag-summary small{display:block;color:var(--muted)}.poe-diag-summary b{display:block;font-size:26px;margin:5px 0}.poe-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:10px}.poe-profile-grid label{display:grid;gap:6px}.poe-profile-grid code,.table-wrap code{word-break:break-all}@media(max-width:800px){.poe-diag-summary,.poe-profile-grid{grid-template-columns:1fr}}

/* MTCC 2.1.8 — AI persistence and cautious defect confirmation */
.quality-observation{display:block;margin:8px 0;padding:7px 9px;border:1px solid rgba(255,204,102,.45);border-radius:8px;background:rgba(255,204,102,.08);color:#ffd77f;font-size:12px}

/* MTCC 2.1.8 — local VLM verdicts */
.vlm-verdict{display:flex;flex-direction:column;gap:5px;margin:12px 0;padding:12px 14px;border:1px solid rgba(111,138,196,.34);border-radius:14px;background:rgba(10,22,41,.66)}
.vlm-verdict b{font-size:14px}.vlm-verdict span,.vlm-verdict small{color:var(--muted);line-height:1.45}
.vlm-verdict.ok{border-color:rgba(79,211,154,.42);background:rgba(36,125,92,.12)}
.vlm-verdict.problem{border-color:rgba(255,117,135,.48);background:rgba(150,45,64,.14)}
.vlm-verdict.uncertain{border-color:rgba(255,198,94,.45);background:rgba(142,102,28,.13)}
.vlm-verdict.unavailable{border-style:dashed}


/* MTCC 2.1.5 — live web-update log popup */
.update-log-modal-card{width:min(1120px,calc(100vw - 32px));overflow:hidden;display:flex;flex-direction:column;max-height:92vh}
.update-log-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.update-log-toolbar .ghost{margin-left:auto}.update-log-toolbar .ghost+.ghost{margin-left:0}
.update-log-version{color:var(--cyan);font-weight:800;letter-spacing:.04em}
.update-log-output{margin:0;min-height:420px;max-height:58vh;overflow:auto;padding:16px;border:1px solid #2b4563;border-radius:13px;background:#050b13;color:#cce7d7;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,Monaco,monospace;white-space:pre-wrap;word-break:break-word;box-shadow:inset 0 0 28px rgba(0,0,0,.4)}
.update-log-output::selection{background:#315d91;color:#fff}
#updateLogHint{margin-top:12px}
@media(max-width:760px){.update-log-modal-card{width:100%;max-height:calc(100dvh - env(safe-area-inset-top))}.update-log-toolbar{display:grid;grid-template-columns:1fr 1fr}.update-log-toolbar .status,.update-log-version{align-self:center}.update-log-toolbar .ghost{margin-left:0}.update-log-output{min-height:52dvh;max-height:58dvh;font-size:11px;padding:12px}}

/* MTCC 2.1.9 — night/IR adaptive analyzer */
.quality-observation.night-ir{display:inline-flex;margin:.35rem 0 .55rem;padding:.35rem .65rem;border:1px solid rgba(93,210,255,.35);border-radius:999px;background:rgba(58,142,190,.13);color:#9bdcff;font-size:.78rem;font-weight:700}

/* MTCC 2.2.6 — external streaming / MediaMTX */
.streaming-hero{background:linear-gradient(135deg,#12233c,#0d1a2d 55%,#102c35)}
.streaming-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.streaming-settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.streaming-settings-form label{display:grid;gap:6px;color:var(--muted);font-size:13px}
.streaming-settings-form label.wide,.streaming-settings-form .wide{grid-column:1/-1}
.streaming-settings-form input,.streaming-settings-form select,.streaming-settings-form textarea{width:100%}
.streaming-settings-form .check-row{display:flex;align-items:center;gap:9px;min-height:46px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(6,17,31,.3);color:var(--text)}
.streaming-settings-form .check-row input{width:auto}
.stream-source-mask{display:block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.streaming-layout-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0;max-height:330px;overflow:auto}
.stream-layout-choice{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(9,23,40,.6)}
.stream-layout-choice input{width:auto}.stream-layout-choice span{display:grid;gap:2px;min-width:0}.stream-layout-choice small{color:var(--muted)}
.streaming-layout-list{display:grid;gap:12px}.streaming-layout-card{border:1px solid var(--line);border-radius:15px;padding:14px;background:linear-gradient(145deg,#122239,#0b1728)}
.streaming-layout-card h3{margin:0 0 4px}.streaming-layout-card p{margin:0;color:var(--muted)}.streaming-layout-card footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.stream-layout-mini-grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:5px;margin-top:12px}.stream-layout-mini-grid span{min-height:42px;display:grid;place-items:center;padding:4px;background:#071421;border:1px solid #2b4665;border-radius:8px;color:#9ec7e8;font-size:10px;text-align:center;overflow:hidden}
.streaming-api-keys{display:grid;gap:8px;margin-top:12px}.streaming-api-key{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#0b192a}.streaming-api-key div{display:grid;gap:3px}.streaming-api-key small{color:var(--muted)}
.streaming-output{width:100%;min-height:240px;resize:vertical;background:#06111f;color:#aee8e3;border:1px solid var(--line);border-radius:12px;padding:13px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.5}
@media(max-width:1100px){.streaming-grid{grid-template-columns:1fr}.streaming-settings-form{grid-template-columns:1fr}.streaming-settings-form label.wide,.streaming-settings-form .wide{grid-column:auto}.streaming-layout-picker{grid-template-columns:1fr}}
@media(max-width:700px){#view-streaming .panel{padding:14px}.streaming-layout-card footer{display:grid;grid-template-columns:1fr 1fr}.streaming-layout-card footer .primary{grid-column:1/-1}.stream-source-mask{max-width:180px}}

.streaming-interface-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.streaming-interface-card{display:grid;gap:6px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#09182a}.streaming-interface-card.default{border-color:#3e8c7b;box-shadow:inset 0 0 0 1px #3e8c7b33}.streaming-interface-card>div{display:flex;justify-content:space-between;gap:8px}.streaming-interface-card span,.streaming-interface-card small{color:var(--muted);font-size:11px}.streaming-interface-card code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9edbd4}@media(max-width:700px){.streaming-interface-cards{grid-template-columns:1fr}}

/* MTCC 2.2.6 — Yucca-style streaming center, without recording */
.streaming-subnav{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.streaming-subnav button{border:1px solid var(--line);background:rgba(20,35,58,.75);color:var(--text);border-radius:12px;padding:10px 15px;font-weight:700;cursor:pointer}
.streaming-subnav button:hover{border-color:var(--accent);background:rgba(72,111,255,.13)}
.stream-source-type{display:inline-flex;align-items:center;width:max-content;padding:3px 8px;margin:0 7px 5px 0;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em}
.stream-source-type.server{color:#7de7d4;background:rgba(31,177,150,.13);border:1px solid rgba(76,213,190,.3)}
.stream-source-type.rtsp{color:#9fc1ff;background:rgba(72,111,255,.12);border:1px solid rgba(111,148,255,.3)}
.streaming-settings-form label[hidden]{display:none!important}
#streamingSourcesSection,#streamingPublicSection,#streamingLayoutsSection,#streamingApiSection,#streamingSettingsSection{scroll-margin-top:90px}
@media(max-width:720px){.streaming-subnav{display:grid;grid-template-columns:1fr 1fr}.streaming-subnav button{padding:9px 8px;font-size:12px}}

/* MTCC 2.2.6 — simplified batch streaming UI */
.compact-streaming-hero{padding-bottom:14px}.streaming-subnav.simple{grid-template-columns:repeat(3,minmax(0,1fr));max-width:680px}.streaming-quick-panel{margin-bottom:16px}.streaming-selected-badge{display:flex;align-items:baseline;gap:7px;padding:9px 14px;border:1px solid #4e7f79;border-radius:14px;background:#0e2a2d}.streaming-selected-badge b{font-size:24px;color:#7de0cd}.streaming-selected-badge span{color:var(--muted);font-size:12px}.streaming-quick-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.streaming-quick-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px}.streaming-quick-controls label.wide{grid-column:1/-1}.streaming-batch-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.streaming-camera-picker{display:grid;gap:14px;max-height:620px;overflow:auto;padding-right:4px}.streaming-camera-group{border:1px solid var(--line);border-radius:15px;background:#0b1829;overflow:hidden}.streaming-camera-group>header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.streaming-camera-group h3{margin:0}.streaming-camera-group header span{color:var(--muted);font-size:12px}.streaming-camera-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.streaming-camera-choice{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#101f34;cursor:pointer;min-width:0}.streaming-camera-choice:hover{border-color:#4e759e}.streaming-camera-choice.ready:has(input:checked){border-color:#53bea8;background:#102d35;box-shadow:inset 0 0 0 1px #53bea833}.streaming-camera-choice.blocked{opacity:.52;cursor:not-allowed}.streaming-camera-choice input{margin-top:4px;flex:0 0 auto}.streaming-camera-choice span{display:grid;gap:3px;min-width:0}.streaming-camera-choice b,.streaming-camera-choice small,.streaming-camera-choice em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.streaming-camera-choice small{color:var(--muted)}.streaming-camera-choice em{font-style:normal;font-size:11px;color:#7fc4b6}.streaming-camera-choice.blocked em{color:#e49b9b}.streaming-advanced{margin-top:14px;border:1px solid var(--line);border-radius:14px;background:#0a1727}.streaming-advanced>summary,.streaming-settings-collapsed>details>summary{padding:13px 15px;cursor:pointer;font-weight:800}.streaming-advanced form{padding:0 14px 14px}.streaming-settings-columns{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:18px;padding:0 16px 16px}.streaming-settings-columns h3{margin-top:8px}.streaming-settings-form.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.rtsp-template-list{display:grid;gap:8px;margin:10px 0 14px;max-height:450px;overflow:auto}.rtsp-template-row{border:1px solid var(--line);border-radius:12px;background:#0a1727}.rtsp-template-row summary{display:flex;justify-content:space-between;gap:8px;padding:11px;cursor:pointer}.rtsp-template-row label{display:grid;gap:5px;padding:0 10px 10px;color:var(--muted);font-size:12px}.rtsp-template-row input{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.streaming-preview-card{max-width:min(1180px,94vw)}.streaming-preview-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.streaming-preview-stage{height:min(72vh,760px);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#030a12}.streaming-preview-stage iframe{width:100%;height:100%;border:0;background:#030a12}.streaming-output{margin-top:12px}.streaming-layout-card footer .primary{min-width:120px}
@media(max-width:1200px){.streaming-quick-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.streaming-camera-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.streaming-settings-columns{grid-template-columns:1fr}}
@media(max-width:720px){.streaming-subnav.simple{grid-template-columns:1fr}.streaming-quick-controls{grid-template-columns:1fr}.streaming-quick-controls label.wide{grid-column:auto}.streaming-camera-grid{grid-template-columns:1fr}.streaming-batch-toolbar{display:grid;grid-template-columns:1fr 1fr}.streaming-batch-toolbar .primary{grid-column:1/-1}.streaming-selected-badge{padding:7px 10px}.streaming-preview-stage{height:66vh}.streaming-settings-columns{padding:0 10px 10px}.streaming-settings-form.compact{grid-template-columns:1fr}}
.streaming-batch-result{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0;padding:10px 13px;border:1px solid var(--line);border-radius:12px}.streaming-batch-result.ok{border-color:#3f927e;background:#0e2928}.streaming-batch-result.warning{border-color:#9e793d;background:#2b2415}.streaming-batch-result details{width:100%}.streaming-batch-result pre{white-space:pre-wrap;margin:8px 0 0;color:#f0c3a2}


/* MTCC 2.2.6 — visual streaming layout constructor */
.streaming-layout-designer-panel{min-width:0}.stream-layout-builder{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(420px,1.3fr);gap:14px;margin:14px 0}.stream-layout-palette-wrap,.stream-layout-canvas-wrap{border:1px solid var(--line);border-radius:16px;background:#091728;padding:12px;min-width:0}.stream-layout-builder-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.stream-layout-builder-head small{color:var(--muted)}.stream-layout-search{width:100%;margin-bottom:9px}.stream-layout-palette{display:grid;gap:7px;max-height:480px;overflow:auto}.stream-layout-palette-item{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;text-align:left;gap:9px;padding:10px;border:1px solid #294462;border-radius:11px;background:#102038;color:var(--text);cursor:grab}.stream-layout-palette-item:active{cursor:grabbing}.stream-layout-palette-item span:nth-child(2){display:grid;min-width:0}.stream-layout-palette-item b,.stream-layout-palette-item small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stream-layout-palette-item small{color:var(--muted)}.stream-layout-palette-item em{font-style:normal;font-size:10px;color:#75d9c3}.stream-layout-palette-item.used{border-color:#3f756c}.stream-layout-palette-item.selected{outline:2px solid #6c7cff;background:#172957}.stream-layout-drag{font-weight:900;color:#82a3c8}.stream-layout-canvas{display:grid;grid-template-columns:repeat(var(--layout-builder-columns),minmax(0,1fr));gap:9px;min-height:260px}.stream-layout-slot{position:relative;min-height:118px;border:2px dashed #294765;border-radius:13px;background:#071421;display:grid;place-items:center;padding:12px;color:#7891ad;text-align:center;cursor:pointer;transition:.18s ease;overflow:hidden}.stream-layout-slot.filled{border-style:solid;border-color:#4f7c9f;background:linear-gradient(145deg,#10243d,#0a182a);color:var(--text);place-items:stretch}.stream-layout-slot.accepting,.stream-layout-slot.drag-over{border-color:#6c7cff;box-shadow:0 0 0 3px #6c7cff25;transform:translateY(-1px)}.stream-layout-slot-number{position:absolute;left:8px;top:6px;font-size:10px;color:#7891ad}.stream-layout-slot-camera{display:grid;place-content:center;gap:5px;min-width:0}.stream-layout-slot-camera b,.stream-layout-slot-camera small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stream-layout-slot-camera small{color:var(--muted)}.stream-layout-slot-remove{position:absolute;right:6px;top:5px;width:28px;height:28px;padding:0;border-radius:8px;background:#331a28;color:#ff9db3;border:1px solid #714052}.stream-layout-mini-grid .empty-slot{color:#486078;border-style:dashed;background:#081321}.streaming-preview-stage iframe{color-scheme:dark}.streaming-preview-card .compact-warning{margin-bottom:10px}
@media(max-width:900px){.stream-layout-builder{grid-template-columns:1fr}.stream-layout-palette{max-height:230px}.stream-layout-canvas{min-height:220px}.stream-layout-slot{min-height:96px}.streaming-layout-controls{grid-template-columns:1fr 1fr!important}}
@media(max-width:540px){.streaming-layout-controls{grid-template-columns:1fr!important}.stream-layout-canvas{gap:6px}.stream-layout-slot{min-height:86px;padding:8px}.stream-layout-slot-camera small{font-size:9px}.stream-layout-slot-camera b{font-size:11px}.streaming-preview-toolbar{display:grid;grid-template-columns:1fr 1fr}.streaming-preview-toolbar .primary{grid-column:1/-1}.streaming-preview-toolbar .status{grid-column:1/-1}}

/* MTCC 2.2.6 custom RTSP dictionaries */
.rtsp-template-create{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;margin:10px 0 12px;border:1px solid var(--line);border-radius:12px;background:#0a1727}.rtsp-template-create label{display:grid;gap:5px;color:var(--muted);font-size:12px}.rtsp-template-create .wide{grid-column:1/-1}.rtsp-template-row summary span{display:flex;align-items:center;gap:8px;min-width:0}.rtsp-template-row summary em{font-style:normal;font-size:10px;color:var(--muted);text-transform:uppercase}.rtsp-template-actions{display:flex;justify-content:flex-end;padding:0 10px 10px}@media(max-width:720px){.rtsp-template-create{grid-template-columns:1fr}}

/* MTCC 2.2.14 — compact camera picker and browser-compatible playback */
.streaming-camera-picker{max-height:520px;gap:9px}
.streaming-camera-group.compact>header{padding:8px 11px;margin:0}
.streaming-camera-group.compact h3{font-size:13px}
.streaming-camera-grid.compact{grid-template-columns:repeat(4,minmax(210px,1fr));gap:5px;padding:7px}
.streaming-camera-choice.compact{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 8px;min-height:52px;border-radius:9px}
.streaming-camera-choice.compact input{width:16px;height:16px;margin:0}
.streaming-camera-choice.compact>.streaming-camera-copy{display:grid!important;visibility:visible!important;opacity:1!important;gap:1px;min-width:0;color:var(--text)}
.streaming-camera-choice.compact>.streaming-camera-copy b{display:block!important;visibility:visible!important;color:var(--text)!important;font-size:12px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.streaming-camera-choice.compact>.streaming-camera-copy small{display:block!important;visibility:visible!important;color:var(--muted)!important;font-size:10px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.streaming-camera-choice.compact>em{font-size:9px;max-width:96px;text-align:right;white-space:normal;line-height:1.15}
@media(max-width:1450px){.streaming-camera-grid.compact{grid-template-columns:repeat(3,minmax(210px,1fr))}}
@media(max-width:1050px){.streaming-camera-grid.compact{grid-template-columns:repeat(2,minmax(190px,1fr))}}
@media(max-width:650px){.streaming-camera-grid.compact{grid-template-columns:1fr}.streaming-camera-choice.compact>em{max-width:110px}}
