:root{--bg:#f5f6f8;--panel:#fff;--ink:#111318;--muted:#747b86;--line:#e7e9ed;--dark:#0c0e12;--good:#138a58;--bad:#c53a32;--warn:#b47708}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input{font:inherit}.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.hero{background:var(--dark);color:#fff;padding:58px;display:flex;flex-direction:column;justify-content:space-between}.brand{font-weight:800;letter-spacing:.18em}.hero h1{font-size:clamp(42px,5vw,70px);line-height:1.02;letter-spacing:-.05em;max-width:720px;margin:0}.hero p{color:#9aa1ad;max-width:620px;font-size:18px}.formwrap{display:grid;place-items:center;padding:28px}.form{width:min(390px,100%)}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:700}.form h2{font-size:38px;letter-spacing:-.04em;margin:10px 0 8px}.form label{display:block;font-size:13px;font-weight:700;margin:22px 0 8px}.form input{width:100%;height:50px;border:1px solid var(--line);border-radius:12px;padding:0 14px;background:#fff;outline:none}.primary{border:0;background:var(--dark);color:#fff;border-radius:12px;height:50px;padding:0 20px;font-weight:700;cursor:pointer}.form .primary{width:100%;margin-top:24px}.error{color:var(--bad);font-size:13px;margin-top:12px}.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.side{background:var(--dark);color:#fff;padding:26px 18px;position:sticky;top:0;height:100vh}.side small{color:#747b86}.nav{margin-top:34px;display:grid;gap:5px}.nav button{border:0;background:transparent;color:#9ba1aa;text-align:left;padding:11px 13px;border-radius:10px;cursor:pointer}.nav button.active,.nav button:hover{background:#1a1d23;color:#fff}.sidefoot{position:absolute;bottom:22px;left:18px;right:18px;border-top:1px solid #23262d;padding-top:16px}.main{padding:34px 40px;min-width:0}.top{display:flex;justify-content:space-between;gap:20px;align-items:center}.top h1{font-size:30px;letter-spacing:-.04em;margin:0}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px}.metric strong{font-size:34px;letter-spacing:-.05em}.metric span{display:block;color:var(--muted);font-size:13px;margin-top:6px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.panelhead{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:13px 18px;border-bottom:1px solid #f0f1f3;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef1f4;font-size:11px}.good{color:var(--good);background:#eaf7f1}.bad{color:var(--bad);background:#fff0ef}.empty{padding:42px;text-align:center;color:var(--muted)}@media(max-width:900px){.login{grid-template-columns:1fr}.hero{display:none}.shell{grid-template-columns:1fr}.side{height:auto;position:relative}.nav{grid-template-columns:repeat(3,1fr)}.sidefoot{display:none}.main{padding:24px 16px}.grid{grid-template-columns:repeat(2,1fr)}}

/* MagicINFO content library */
.content-actions{display:flex;gap:6px}.viewbtn{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;font-size:20px;color:var(--muted)}.viewbtn.active{background:var(--dark);color:#fff;border-color:var(--dark)}
.content-toolbar{margin:24px 0 18px;display:flex;align-items:center;gap:10px}.content-search{height:44px;min-width:280px;flex:1;max-width:520px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 13px}.content-search input{border:0;outline:0;width:100%;background:transparent}.content-toolbar select{height:44px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 34px 0 13px;color:var(--ink)}
.content-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.content-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;min-width:0;transition:transform .15s ease,box-shadow .15s ease}.content-card:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(17,19,24,.08)}.content-preview{position:relative;aspect-ratio:16/9;background:#17191e;display:flex;align-items:center;justify-content:center;overflow:hidden}.content-preview img{width:100%;height:100%;object-fit:cover;display:block}.no-thumb{color:#7e858f;font-size:12px}.filetype{display:inline-flex;padding:4px 7px;border-radius:7px;background:#eef1f4;font-size:10px;font-weight:800;letter-spacing:.06em}.filetype.overlay{position:absolute;left:10px;bottom:10px;background:rgba(12,14,18,.78);color:#fff;backdrop-filter:blur(4px)}.content-info{padding:14px 15px 15px}.content-info h3{font-size:14px;margin:0 0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;margin-top:6px}.mini-thumb{width:100px;aspect-ratio:16/9;background:#17191e;border-radius:7px;overflow:hidden;display:grid;place-items:center;color:#8b9199;font-size:9px}.mini-thumb img{width:100%;height:100%;object-fit:cover}.tiny{font-size:10px;margin-top:3px}.content-table td{vertical-align:middle}
@media(max-width:700px){.content-toolbar{align-items:stretch;flex-wrap:wrap}.content-search{min-width:100%;max-width:none}.content-toolbar select{flex:1}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.content-grid{grid-template-columns:1fr}}

/* IMACON locales / role-aware UI */
.local-toolbar{margin:24px 0 18px}.local-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.local-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;min-height:255px;display:flex;flex-direction:column;justify-content:space-between}.local-card-top{display:flex;justify-content:space-between}.local-icon,.device-icon{width:48px;height:48px;border-radius:13px;background:#f0f3f7;display:grid;place-items:center;font-size:24px;color:#44556d}.dots{border:0;background:none;font-size:22px}.local-card h2{font-size:20px;margin:18px 0 8px}.store-code{font-size:12px;border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-weight:500;white-space:nowrap}.local-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.local-footer{border-top:1px solid var(--line);padding-top:16px;margin-top:18px;display:flex;gap:18px}.linkbtn{border:0;background:none;color:#1769e0;padding:0;cursor:pointer;font-weight:650}.detail-actions{display:flex;gap:10px;flex-wrap:wrap}.blue{background:#2868e8}.softbtn,.backbtn{border:1px solid var(--line);background:#fff;border-radius:10px;height:44px;padding:0 16px;font-weight:650;cursor:pointer}.backbtn{margin-right:12px;font-size:20px}.local-summary{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;margin:26px 0;display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.local-summary>div{display:flex;flex-direction:column;gap:10px}.local-devices{padding-bottom:8px}.device-row{margin:12px 20px;padding:16px 18px;background:#f7f9fb;border-radius:14px;display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;gap:14px;align-items:center}.device-main{display:flex;flex-direction:column;gap:3px}.device-main span,.device-main small{color:var(--muted)}.device-server{font-size:11px;color:var(--muted)}
.assistant-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:50;display:grid;place-items:center;padding:20px}.assistant-modal{width:min(650px,100%);background:#fff;border-radius:18px;padding:38px;position:relative}.assistant-modal h2{font-size:30px;margin:8px 0}.assistant-close{position:absolute;right:24px;top:18px;border:0;background:none;font-size:34px;color:#666;cursor:pointer}.assistant-main,.assistant-option{width:100%;min-height:112px;border-radius:14px;margin-top:24px;display:grid;grid-template-columns:54px 1fr;text-align:left;align-items:center;padding:20px 28px;cursor:pointer}.assistant-main{background:#1b2a40;color:#fff;border:1px solid #101827}.assistant-option{background:#fff;color:#111;border:1px solid var(--line)}.assistant-main span,.assistant-option span{font-size:30px;grid-row:1/3}.assistant-main b,.assistant-option b{font-size:22px}.assistant-main small,.assistant-option small{opacity:.72}
.schedule-note{margin:24px 0;background:#fff8e8;border:1px solid #f0d9a4;border-radius:14px;padding:16px 18px;font-size:13px}.schedule-note span{color:#745d2a}.schedule-board{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:auto}.schedule-head,.schedule-line{display:grid;grid-template-columns:150px repeat(var(--cols,4),minmax(220px,1fr));min-width:900px}.schedule-head{grid-template-columns:150px repeat(auto-fit,minmax(220px,1fr));background:#1c2940;color:#fff;font-size:12px;font-weight:700}.schedule-head>div,.schedule-line>div{padding:18px;border-right:1px solid rgba(255,255,255,.18)}.schedule-line{grid-template-columns:150px repeat(auto-fit,minmax(220px,1fr))}.timecell{font-weight:800}.schedule-cell{min-height:180px;border-left:1px solid var(--line)}.program-chip{background:#f3f6fa;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;display:flex;flex-direction:column;gap:4px}.program-chip small,.program-chip em{font-size:10px;color:var(--muted);font-style:normal}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px}.admin-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:26px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:8px}.admin-card b{font-size:18px}.admin-card span{color:var(--muted)}
@media(max-width:1050px){.local-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.local-grid{grid-template-columns:1fr}.local-summary{grid-template-columns:1fr}.device-row{grid-template-columns:52px 1fr auto}.device-server{display:none}.admin-grid{grid-template-columns:1fr}}

/* Local detail v2 */
.local-kpis{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 14px}.local-kpi,.summary-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;min-width:125px;display:flex;flex-direction:column;gap:4px}.local-kpi b,.summary-stat b{font-size:25px}.local-kpi span,.summary-stat span{font-size:12px;color:var(--muted);font-weight:650}.local-kpi.main{min-width:150px}.local-kpi.online b{color:#07966d}.local-summary.compact{margin:14px 0 26px;grid-template-columns:repeat(3,minmax(0,1fr));padding:20px 24px}.screen-groups{display:flex;flex-direction:column;gap:20px}.screen-group{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px}.screen-group-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.screen-group-head>div{display:flex;gap:12px;align-items:center}.screen-group-head h2{font-size:18px;margin:0 0 3px}.screen-group-head span{font-size:12px;color:var(--muted)}.screen-type-icon{width:42px;height:42px;border-radius:11px;background:#eef2f7;display:grid;place-items:center;font-size:20px}.screen-group .local-devices{border:0;box-shadow:none;margin:0}.screen-group .device-row{margin:10px 0}.screen-group .device-row:last-child{margin-bottom:0}
@media(max-width:700px){.local-summary.compact{grid-template-columns:1fr}.local-kpis>*{flex:1 1 120px}}

.device-main span strong{color:#1b2a40}.device-main small{font-size:12px}.screen-group-head h2{text-transform:none}

/* v4: content request + clean schedules */
.request-form{display:flex;flex-direction:column;gap:18px}.request-section{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.request-section h2{font-size:17px;margin:0 0 18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#4b5b70}.form-grid label.wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;background:#fff}.destination-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.destination-tabs label{border:1px solid var(--line);border-radius:10px;padding:10px 14px}.hidden{display:none!important}.device-picker{margin-top:18px}.request-devices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.request-devices label{display:flex;gap:10px;align-items:flex-start;background:#f7f9fb;border-radius:10px;padding:12px}.request-devices span{display:flex;flex-direction:column}.request-devices small{color:var(--muted);margin-top:3px}.request-actions{display:flex;justify-content:flex-end;gap:10px}.request-success,.request-error{border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.request-success{background:#e8faf2;color:#087755}.request-error{background:#fff0f0;color:#b42318}.schedule-simple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.schedule-simple-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:7px}.schedule-simple-card span,.schedule-simple-card small{color:var(--muted)}.empty{display:flex;flex-direction:column;gap:6px}
@media(max-width:750px){.form-grid,.request-devices,.schedule-simple{grid-template-columns:1fr}}

.local-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.local-filters select{min-height:42px;border:1px solid #dfe3e8;border-radius:10px;padding:0 12px;background:#fff;min-width:170px}.local-filters .content-search{flex:1;min-width:240px}.where-local{padding:2px 0}

.content-filter-wrap input{min-height:42px;border:1px solid #dfe3e8;border-radius:10px;padding:0 12px;background:#fff;min-width:190px}.permission-list{max-height:230px;overflow:auto;border:1px solid #e5e7eb;border-radius:10px;padding:10px;margin:8px 0 14px;display:grid;gap:6px}.admin-user-form{max-height:90vh;overflow:auto}.danger-user{margin-top:8px}

/* IMACON v8 */
.local-filters{display:grid;grid-template-columns:minmax(300px,1fr) 170px 170px 170px auto;gap:10px;align-items:center}.local-filters select{width:100%;height:44px;appearance:none;-webkit-appearance:none;padding:0 38px 0 14px;background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,#7a828e 50%),linear-gradient(135deg,#7a828e 50%,transparent 50%);background-position:calc(100% - 17px) 19px,calc(100% - 12px) 19px;background-size:5px 5px;background-repeat:no-repeat}.main-local-search{max-width:none!important}.search-summary{margin:-4px 0 18px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.search-summary>div:first-child{min-width:240px;flex:1;display:flex;flex-direction:column;gap:4px}.summary-chip{border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:10px 14px;display:flex;gap:7px;align-items:baseline;cursor:pointer}.summary-chip strong{font-size:19px}.summary-chip span{font-size:11px;color:var(--muted)}
.local-summary.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.device-summary{font-size:13px!important;line-height:1.5}.dashboard-areas,.dashboard-local-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}.area-card,.dash-local-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:20px;text-align:left;display:flex;flex-direction:column;gap:7px;cursor:pointer;min-height:145px}.area-card b{font-size:30px;margin-top:auto}.area-card small,.dash-local-card small,.dash-local-card span{color:var(--muted)}
.assistant-modal label,.schedule-upload-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#4b5b70;margin-top:16px}.assistant-modal input,.assistant-modal select,.assistant-modal textarea{width:100%;min-height:46px;border:1px solid var(--line);border-radius:11px;padding:0 13px;background:#fff}.assistant-modal input[type=file]{padding:10px 12px}.assistant-modal .primary{width:100%;margin-top:22px}.form-separator{text-align:center;color:var(--muted);font-size:11px;margin:14px 0}
.schedule-program{margin-bottom:16px}.schedule-events{padding:6px 20px 18px}.schedule-event{display:grid;grid-template-columns:180px 150px minmax(260px,1fr);gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.schedule-event>div{display:flex;flex-direction:column;gap:5px}.program-attachment{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:8px 0;display:flex;justify-content:space-between;align-items:center}.attachment-link{display:inline-flex;align-items:center;text-decoration:none;color:var(--ink)}
@media(max-width:1050px){.local-filters{grid-template-columns:1fr 1fr 1fr}.local-filters .main-local-search{grid-column:1/-1}.dashboard-areas,.dashboard-local-grid{grid-template-columns:repeat(2,1fr)}.local-summary.compact{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.local-filters{grid-template-columns:1fr}.local-filters .main-local-search{grid-column:auto}.dashboard-areas,.dashboard-local-grid{grid-template-columns:1fr}.schedule-event{grid-template-columns:1fr}.local-summary.compact{grid-template-columns:1fr}}
/* IMACON v9 dashboard + incident center */
.dashboard-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:22px 0}.dash-metric{position:relative;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 18px 16px;min-height:142px;cursor:pointer;transition:.18s ease;box-shadow:0 1px 2px rgba(15,23,42,.025)}.dash-metric:hover,.dash-metric.open{transform:translateY(-1px);border-color:#cbd5e1;box-shadow:0 8px 24px rgba(15,23,42,.06)}.dash-metric .metric-icon{position:absolute;right:16px;top:16px;width:34px;height:34px;border-radius:10px;background:#f3f6fb;display:grid;place-items:center;color:#2563eb}.dash-metric .metric-label{display:block;color:#64748b;font-size:12px;font-weight:700}.dash-metric strong{display:block;font-size:28px;line-height:1;margin:18px 0 18px;letter-spacing:-.04em}.dash-metric small{color:#64748b;font-size:11px}.metric-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin:-8px 0 22px;animation:metricIn .18s ease}.breakdown-item{position:relative;overflow:hidden;border:0;border-radius:12px;background:#f8fafc;padding:14px;text-align:left;cursor:pointer}.breakdown-item span{display:block;font-size:12px;color:#64748b}.breakdown-item strong{font-size:20px}.breakdown-item small{font-size:10px;color:#94a3b8;margin-left:5px}.breakdown-item i{position:absolute;bottom:0;left:0;width:var(--w);height:3px;background:#3b82f6}@keyframes metricIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.dash-incidents{margin-top:22px;background:#fff;border:1px solid var(--line);border-left:3px solid #ef4444;border-radius:16px;padding:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-heading h2{font-size:17px;margin:3px 0}.btn-lite{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:700;cursor:pointer}.incident-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid #eef2f7;border-radius:12px;padding:13px 14px;margin:8px 0;background:#fff}.incident-dot{width:8px;height:8px;border-radius:50%;background:#ef4444}.status-proceso .incident-dot{background:#eab308}.status-solucionado .incident-dot{background:#10b981}.status-activo-menor .incident-dot{background:#f97316}.incident-copy{display:flex;flex-direction:column;gap:2px}.incident-copy b{font-size:13px}.incident-copy small{color:#64748b}.incident-copy p{font-size:12px;color:#64748b;margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:850px}.incident-tags{display:flex;gap:6px}.status-badge,.priority-badge{font-size:10px;font-weight:800;border-radius:999px;padding:5px 8px;background:#f1f5f9}.status-activo .status-badge{background:#fee2e2;color:#b91c1c}.status-proceso .status-badge{background:#fef3c7;color:#a16207}.status-solucionado .status-badge{background:#d1fae5;color:#047857}.status-activo-menor .status-badge{background:#ffedd5;color:#c2410c}
.incident-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.incident-stats button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:15px;text-align:left;cursor:pointer;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px}.incident-stats i{width:11px;height:11px;border-radius:50%}.incident-stats i.red{background:#ef4444}.incident-stats i.yellow{background:#eab308}.incident-stats i.green{background:#10b981}.incident-stats i.orange{background:#f97316}.incident-stats strong{font-size:22px}.incident-stats span{font-size:12px;color:#64748b}.incident-analytics{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.analytics-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;min-height:160px}.mini-bars{height:105px;display:flex;align-items:flex-end;gap:16px;padding-top:20px}.mini-bars span{height:100%;flex:1;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:5px}.mini-bars i{display:block;width:100%;max-width:55px;height:var(--h);min-height:5px;background:#ef4444;border-radius:7px 7px 3px 3px}.mini-bars .bar-proceso i{background:#eab308}.mini-bars .bar-solucionado i{background:#10b981}.mini-bars .bar-activo-menor i{background:#f97316}.analytics-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px}.analytics-numbers span{background:#f8fafc;border-radius:12px;padding:15px;color:#64748b;font-size:11px}.analytics-numbers strong{display:block;color:#0f172a;font-size:24px}.incident-toolbar{display:flex;gap:9px;align-items:center;margin:14px 0}.incident-toolbar .content-search{flex:1;max-width:none}.incident-list{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.incident-modal{max-width:680px}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.modal-actions .primary{width:auto!important;margin-top:0!important}
@media(max-width:1000px){.dashboard-metric-grid{grid-template-columns:repeat(3,1fr)}.incident-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.dashboard-metric-grid{grid-template-columns:repeat(2,1fr)}.incident-analytics{grid-template-columns:1fr}.incident-row{grid-template-columns:10px 1fr}.incident-tags,.incident-edit{grid-column:2}.incident-toolbar{flex-wrap:wrap}.incident-toolbar .content-search{flex-basis:100%}.modal-grid{grid-template-columns:1fr}}
@media print{.side,.top button,.incident-toolbar,.incident-edit{display:none!important}.main{margin:0!important;padding:0!important}.incident-row,.analytics-card{break-inside:avoid}}
/* IMACON v10 — operaciones, locales e instalaciones */
:root{--dash-blue:#2563eb;--dash-violet:#7c3aed;--dash-green:#10b981;--dash-amber:#f59e0b;--dash-red:#ef4444}
.dashboard-metric-grid .dash-metric:nth-child(1){--accent:var(--dash-blue)}.dashboard-metric-grid .dash-metric:nth-child(2){--accent:var(--dash-green)}.dashboard-metric-grid .dash-metric:nth-child(3){--accent:#14b8a6}.dashboard-metric-grid .dash-metric:nth-child(4){--accent:var(--dash-violet)}.dashboard-metric-grid .dash-metric:nth-child(5){--accent:var(--dash-red)}
.dash-metric{border-top:2px solid color-mix(in srgb,var(--accent) 65%,white)}.dash-metric .metric-icon{background:color-mix(in srgb,var(--accent) 10%,white);color:var(--accent)}.dash-metric strong{font-size:25px}.dash-metric.open{box-shadow:0 10px 30px color-mix(in srgb,var(--accent) 10%,transparent)}
.scheduled-dashboard{margin-top:22px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--dash-violet);border-radius:16px;padding:18px}.scheduled-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 4px;border-top:1px solid #eef2f7}.scheduled-row time{font-weight:800;color:#6d28d9;font-size:12px}.scheduled-row div{display:flex;flex-direction:column;gap:2px}.scheduled-row small{color:#64748b}
.btn-danger-lite{border:1px solid #fecaca;background:#fff;color:#dc2626;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:750;cursor:pointer}.incident-admin-actions{display:flex;gap:7px}.editor-devices{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.editor-device-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #eef2f7}.editor-device-row>span{display:flex;flex-direction:column}.editor-device-row small{color:#64748b}.local-editor{max-width:820px;max-height:92vh;overflow:auto}
.local-media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.local-media-grid figure{position:relative;margin:0;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#f1f5f9}.local-media-grid img{width:100%;height:100%;object-fit:cover}.media-delete{position:absolute;right:7px;top:7px;width:27px;height:27px;border:0;border-radius:50%;background:rgba(15,23,42,.78);color:#fff;cursor:pointer}
.project-grid,.technician-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card,.technician-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;display:flex;flex-direction:column;gap:10px}.project-card h2,.technician-card h2{font-size:16px;margin:3px 0}.project-card .pill,.technician-card .pill{align-self:flex-start}.progress-thin{height:7px;background:#e9eef5;border-radius:999px;overflow:hidden}.progress-thin i{display:block;height:100%;background:#2563eb;border-radius:inherit}.technician-card>div{display:flex;gap:7px;margin-top:auto}.technician-card small{line-height:1.7;color:#64748b}
@media(max-width:900px){.project-grid,.technician-grid{grid-template-columns:1fr 1fr}.local-media-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.project-grid,.technician-grid,.local-media-grid{grid-template-columns:1fr}.scheduled-row{grid-template-columns:1fr}.editor-device-row{grid-template-columns:1fr}}
/* v11 compact operational UI */
.detail-actions.compact-actions{gap:7px;max-width:760px}.detail-actions.compact-actions .softbtn,.detail-actions.compact-actions .primary{height:38px;padding:0 13px;border-radius:9px;font-size:12px}.small-primary{height:38px;padding:0 13px;border-radius:9px;font-size:12px}.clickable-device{cursor:pointer;transition:.15s}.clickable-device:hover{background:#f3f6fa}.icon-delete{border:0;background:transparent;color:#ef4444;font-size:18px;padding:7px 9px;cursor:pointer;border-radius:8px}.icon-delete:hover{background:#fee2e2}.device-detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:15px;overflow:hidden;margin:22px 0}.device-detail-summary>div{background:#fff;padding:18px}.device-detail-summary span{display:block;color:#64748b;font-size:12px;margin-bottom:7px}.device-detail-summary b{font-size:15px}.playlist-section{margin-top:18px}.panelhead>div{display:flex;flex-direction:column;gap:4px}.panelhead small{color:#64748b}.device-playlists{padding:12px}.device-playlist{border:1px solid #e6e9ee;background:#f8fafc;border-radius:14px;padding:14px;margin-bottom:10px}.playlist-title{display:flex;justify-content:space-between;align-items:center}.playlist-title>div{display:flex;align-items:center;gap:9px}.playlist-title small{color:#64748b}.dot-good{width:8px;height:8px;border-radius:50%;background:#10b981}.playlist-thumbs{display:flex;gap:10px;overflow:auto;margin:14px 0 8px}.playlist-thumb{width:150px;min-width:150px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.playlist-thumb img,.thumb-empty{width:100%;height:82px;object-fit:cover;background:#eef2f7;display:grid;place-items:center}.playlist-thumb span{display:block;padding:7px;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-thumbs{display:flex;gap:7px;overflow:auto;margin-top:9px}.schedule-thumb{width:92px;min-width:92px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}.schedule-thumb img,.schedule-thumb>span{width:100%;height:52px;object-fit:cover;background:#eef2f7;display:grid;place-items:center}.schedule-thumb small{display:block!important;padding:5px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-modal{max-width:620px}.local-editor .primary,.assistant-modal .primary{height:42px;border-radius:9px;font-size:13px}.local-editor input,.local-editor select,.local-editor textarea,.assistant-modal input,.assistant-modal select,.assistant-modal textarea{font-size:13px}@media(max-width:900px){.device-detail-summary{grid-template-columns:1fr 1fr}.detail-actions.compact-actions{max-width:none}.playlist-thumb{width:120px;min-width:120px}}
/* IMACON v12 — compact operations UI */
.compact-actions{gap:7px}.compact-actions button,.small-primary,.btn-lite{min-height:34px;padding:7px 11px;font-size:13px;border-radius:9px}.local-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.local-playlist-rail{background:#fff;border:1px solid #e5e9ef;border-radius:16px;padding:14px;position:sticky;top:18px}.rail-head{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.rail-head small{color:#758197}.rail-playlist{width:100%;display:flex;gap:10px;text-align:left;align-items:center;border:0;background:#f6f8fb;padding:10px;border-radius:11px;margin:7px 0}.rail-playlist:hover{background:#eef3fb}.rail-playlist div{display:flex;flex-direction:column;min-width:0}.rail-playlist b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-playlist small{color:#7a8799}.where-result{padding:7px 0;border-bottom:1px solid #edf0f4}.where-result small{display:block;color:#748197;margin:3px 0 0 8px}.permission-builder{border:1px solid #e3e7ed;border-radius:14px;padding:14px}.area-permissions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.area-check{background:#f3f5f8;border-radius:9px;padding:8px 10px}.permission-list.modern{max-height:280px;display:grid;grid-template-columns:1fr 1fr;gap:6px;overflow:auto}.permission-list.modern label{display:flex;gap:8px;padding:9px;border:1px solid #edf0f4;border-radius:9px}.permission-list.modern span{display:flex;flex-direction:column}.permission-list.modern small{color:#7b8798}.ops-calendar{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:16px;margin:18px 0}.calendar-card,.sync-card{background:#fff;border:1px solid #e4e8ee;border-radius:16px;padding:18px}.calendar-strip{display:grid;grid-template-columns:repeat(14,1fr);gap:6px}.cal-day{position:relative;text-align:center;background:#f6f8fb;border-radius:10px;padding:8px 4px}.cal-day small{display:block;color:#8a95a5}.cal-day.has-change{background:#edf4ff;outline:1px solid #8ab4ff}.cal-day i{position:absolute;right:4px;top:4px;background:#2f6fed;color:#fff;border-radius:99px;font-size:9px;padding:2px 5px}.sync-card{display:flex;flex-direction:column;gap:8px}.sync-card small{color:#7c8797}@media(max-width:1050px){.local-detail-layout,.ops-calendar{grid-template-columns:1fr}.local-playlist-rail{position:static}.permission-list.modern{grid-template-columns:1fr}.calendar-strip{grid-template-columns:repeat(7,1fr)}}
/* IMACON v13 — identidad, acordeón de dispositivo y relaciones corregibles */
.side-brand{display:flex;align-items:center;gap:11px;min-height:58px}.side-brand img{width:54px;height:54px;object-fit:contain;background:#fff;border-radius:9px;padding:5px}.side-brand .brand{font-size:14px}.side-brand small{font-size:9px;letter-spacing:.08em}.device-accordion{border-bottom:1px solid #eef1f5}.device-accordion:last-child{border-bottom:0}.device-accordion .device-row{border-bottom:0}.device-chevron{width:30px;height:30px;border:0;background:transparent;border-radius:8px;font-size:18px;color:#64748b;cursor:pointer}.device-chevron:hover{background:#e9eef5}.device-inline-detail{display:none;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:1px;background:#e9edf2;border-top:1px solid #e5e9ef}.device-accordion.open .device-inline-detail{display:grid}.device-inline-detail>div{background:#fff;padding:13px 16px;display:flex;flex-direction:column;gap:4px}.device-inline-detail span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#8490a2}.device-inline-detail b{font-size:12px}.device-inline-detail .open-device-full{margin:8px;align-self:center;white-space:nowrap}.rail-playlist-wrap{position:relative}.rail-playlist-wrap .rail-playlist{padding-right:35px}.rail-remove{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:25px;height:25px;border:0;border-radius:7px;background:transparent;color:#ef4444;font-size:20px;line-height:1;cursor:pointer}.rail-remove:hover{background:#fee2e2}.rail-playlist{cursor:pointer}@media(max-width:850px){.device-inline-detail{grid-template-columns:1fr 1fr}.device-inline-detail .open-device-full{grid-column:1/-1}.side-brand img{width:44px;height:44px}}

/* v13.2: quitar playlists MagicINFO mal asociadas desde el detalle */
.device-playlist{position:relative}
.playlist-remove-x{position:absolute;right:14px;top:14px;width:30px;height:30px;border:1px solid #fecaca;border-radius:9px;background:#fff;color:#ef4444;font-size:22px;line-height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.playlist-remove-x:hover{background:#fff1f2;border-color:#f87171}
.device-playlist .playlist-title{padding-right:44px}
/* v14 — búsqueda de contenido ordenada + escala compacta coherente */
button,.primary,.softbtn,.linkbtn,.btn-lite,.btn-danger-lite,.small-primary{font-size:12px;font-weight:700}
.primary,.softbtn,.btn-lite,.small-primary{min-height:34px;height:34px;padding:0 12px;border-radius:9px}
.linkbtn{padding:7px 9px;border-radius:8px}.viewbtn{width:34px;height:34px;font-size:16px;border-radius:8px}.backbtn{width:36px;height:36px;font-size:18px}
.top .primary{height:36px;padding:0 13px}.nav button{font-size:13px;padding:9px 11px}.content-toolbar{margin:18px 0 14px}.content-search,.content-toolbar select{height:38px;font-size:12px}.pill{font-size:10px;padding:4px 7px}
.compact-sync{gap:4px!important}.compact-sync h3{font-size:15px;margin:0 0 5px;letter-spacing:-.01em}.compact-sync span{font-size:11px;color:#7c8797}.compact-sync b{font-size:13px;font-weight:750}
.content-where-panel{background:#fff;border:1px solid var(--line);border-radius:15px;margin:0 0 16px;overflow:hidden}.content-where-head{padding:13px 15px;border-bottom:1px solid #edf0f4;display:flex;justify-content:space-between}.content-where-head b{font-size:14px}.content-where-head small{display:block;color:#7a8797;font-size:10px;margin-top:2px}.content-where-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#edf0f4}.content-where-local{background:#fff;padding:10px}.where-local-main{width:100%;border:0;background:#f7f9fb;border-radius:10px;padding:9px;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;cursor:pointer}.where-code{font-size:12px;font-weight:850;color:#334155}.where-local-main b{font-size:12px}.where-local-main small{display:block;color:#7b8797;font-size:9px;margin-top:2px}.where-local-main strong{font-size:10px;color:#64748b}.where-devices{padding:5px 4px 0}.where-devices button{width:100%;border:0;background:transparent;border-top:1px solid #f0f2f5;padding:7px 5px;text-align:left;display:flex;justify-content:space-between;gap:10px;cursor:pointer}.where-devices button:hover{background:#f8fafc}.where-devices span{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.where-devices small{font-size:9px;color:#7b8797;white-space:nowrap}
@media(max-width:850px){.content-where-list{grid-template-columns:1fr}.where-local-main{grid-template-columns:48px minmax(0,1fr) auto}}
/* v14 — escala compacta y resultados de búsqueda por contenido */
button,.primary,.softbtn,.linkbtn,.btn-lite,.btn-danger-lite,.small-primary{font-size:12px;font-weight:700}
.primary,.softbtn,.btn-lite,.small-primary{min-height:34px;height:34px;padding:0 12px;border-radius:9px}.top .primary{height:36px;padding:0 13px}.linkbtn{padding:7px 9px;border-radius:8px}.viewbtn{width:34px;height:34px;font-size:16px;border-radius:8px}.nav button{font-size:13px;padding:9px 11px}.content-search,.content-toolbar select{height:38px;font-size:12px}
.compact-sync{gap:4px}.compact-sync h3{font-size:15px;margin:0 0 4px}.compact-sync span{font-size:11px;color:#7c8797}.compact-sync b{font-size:13px}
.content-where-panel{background:#fff;border:1px solid var(--line);border-radius:15px;margin:0 0 16px;overflow:hidden}.content-where-head{padding:12px 14px;border-bottom:1px solid #edf0f4}.content-where-head b{font-size:14px}.content-where-head small{display:block;color:#7a8797;font-size:10px;margin-top:2px}.content-where-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#edf0f4}.content-where-local{background:#fff;padding:10px}.where-local-main{width:100%;border:0;background:#f7f9fb;border-radius:10px;padding:9px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;cursor:pointer}.where-code{font-size:12px;font-weight:850;color:#334155}.where-local-main b{font-size:12px}.where-local-main small{display:block;color:#7b8797;font-size:9px;margin-top:2px}.where-local-main strong{font-size:10px;color:#64748b}.where-devices{padding:5px 4px 0}.where-devices>div{border-top:1px solid #f0f2f5;padding:7px 5px;display:flex;justify-content:space-between;gap:10px}.where-devices span{font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.where-devices small{font-size:9px;color:#7b8797;white-space:nowrap}@media(max-width:850px){.content-where-list{grid-template-columns:1fr}}

.group-head-actions{display:flex;align-items:center;gap:8px}.edit-device-category{font-size:11px!important;padding:6px 9px!important;min-height:30px!important}.category-editor{max-width:560px}.category-device-list{display:grid;gap:7px;margin:12px 0 4px}.category-device-list label{display:flex;align-items:center;gap:10px;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px}.category-device-list label span{display:flex;flex-direction:column;gap:2px}.category-device-list small{color:#748094}

.schedule-head-actions{display:flex;align-items:center;gap:8px}.schedule-head-actions .btn-lite{padding:7px 11px;font-size:13px}.schedule-head-actions .icon-delete{width:32px;height:32px;border-radius:9px;font-size:20px}.assistant-modal select{width:100%;min-height:42px;border:1px solid var(--line,#dfe3e8);border-radius:10px;padding:0 36px 0 12px;background:#fff;font:inherit}
/* v19 — corrección de asignaciones, carrusel local y búsqueda relacional */
.local-kpis{display:grid;grid-template-columns:150px 150px minmax(0,1fr);gap:14px;align-items:stretch}.local-content-kpi{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px 14px;display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;align-items:center}.kpi-content-head{display:flex;flex-direction:column}.kpi-content-head b{font-size:26px}.kpi-content-head span{font-size:11px;color:#748094}.local-content-carousel{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding:2px}.local-content-card{width:92px;min-width:92px;height:76px;border:1px solid #e4e8ee;background:#f8fafc;border-radius:9px;padding:0;overflow:hidden;text-align:left;cursor:pointer}.local-content-card img,.local-content-card>.thumb-empty{width:100%;height:51px;object-fit:cover;display:flex;align-items:center;justify-content:center}.local-content-card small{display:block;font-size:8px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 6px}.reassign-device{font-size:10px!important;height:29px!important;min-height:29px!important;padding:0 8px!important}.content-toolbar{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(150px,.8fr) minmax(150px,.8fr) minmax(120px,.6fr) auto;gap:8px;align-items:center}.content-toolbar select,.content-toolbar .content-search{min-width:0;width:100%}.content-where-list{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.where-devices>div{min-width:0}.editor-device-row{gap:8px}.editor-device-row>span{min-width:0;flex:1}@media(max-width:1050px){.local-kpis{grid-template-columns:130px 130px 1fr}.content-toolbar{grid-template-columns:1fr 1fr}.content-search{grid-column:1/-1}}@media(max-width:720px){.local-kpis{grid-template-columns:1fr 1fr}.local-content-kpi{grid-column:1/-1}.content-toolbar{grid-template-columns:1fr}.content-toolbar>*{grid-column:auto}}
/* v20 — contenidos confirmados, navegación a playlist y galería ampliada */
.content-toolbar{grid-template-columns:minmax(240px,1.5fr) minmax(130px,.72fr) minmax(130px,.72fr) minmax(105px,.55fr) auto;gap:9px}
.content-toolbar select{height:31px!important;font-size:9.6px!important;padding:0 28px 0 9px!important;border-radius:8px!important}
.content-toolbar .content-search{height:34px!important;position:relative;padding-right:48px}
.content-toolbar .content-search input{font-size:11px!important}
.content-go{position:absolute;right:3px;top:3px;height:28px!important;min-height:28px!important;padding:0 11px!important;border:0;border-radius:7px;background:#0b0f14;color:#fff;font-size:10px!important;cursor:pointer}
.playlist-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.playlist-detail-item{position:relative;display:grid;grid-template-columns:82px 1fr;gap:11px;align-items:center;border:1px solid #e5e9ef;border-radius:12px;padding:8px;background:#fafbfc}.playlist-detail-item img,.playlist-detail-item>.thumb-empty{width:82px;height:58px;object-fit:cover;border-radius:8px}.playlist-detail-item b{font-size:12px;display:block}.playlist-detail-item small{display:block;color:#7b8797;font-size:9px;margin-top:4px}.playlist-order{position:absolute;left:4px;top:4px;background:#111827;color:#fff;border-radius:99px;min-width:19px;height:19px;display:grid;place-items:center;font-size:9px;font-weight:800}
.local-media-grid .media-open{cursor:zoom-in;transition:transform .15s ease}.local-media-grid .media-open:hover{transform:scale(1.02)}.media-lightbox{position:fixed;inset:0;z-index:10000;background:rgba(5,9,15,.88);display:flex;align-items:center;justify-content:center;padding:34px;cursor:zoom-out}.media-lightbox img{max-width:94vw;max-height:90vh;object-fit:contain;border-radius:10px;box-shadow:0 20px 70px rgba(0,0,0,.35)}.media-lightbox-close{position:fixed;right:22px;top:18px;width:38px;height:38px!important;min-height:38px!important;border:0;border-radius:50%;background:#fff;color:#111;font-size:22px!important;cursor:pointer}
@media(max-width:1050px){.content-toolbar{grid-template-columns:1fr 1fr}.content-toolbar .content-search{grid-column:1/-1}}@media(max-width:720px){.content-toolbar{grid-template-columns:1fr}.content-toolbar>*{grid-column:auto}.playlist-detail-grid{grid-template-columns:1fr}}
/* v21: acceso directo y edición segura de imágenes */
.side-assistant{margin:14px 14px 0;width:calc(100% - 28px);min-height:36px;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:#2868e8;color:#fff;font-size:11px;font-weight:750;padding:8px 10px;cursor:pointer;text-align:left}
.side-assistant:hover{filter:brightness(1.05)}
.media-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.media-modal-head h2{margin:0}.local-media-grid figure .media-delete{display:block}.local-media-grid figure{cursor:zoom-in}.media-editing .local-media-grid figure{cursor:default}
/* v22 · playlist actual */
.device-playlist.current-playlist{border:1.5px solid #39b982;background:#f1fbf6;box-shadow:0 0 0 2px rgba(57,185,130,.08)}
.current-playlist-badge{display:inline-flex;align-items:center;margin-left:9px;padding:3px 7px;border-radius:999px;background:#dff7ea;color:#08794f;font-size:10px;font-weight:800;letter-spacing:.05em;vertical-align:middle}
.device-playlist.current-playlist .dot-good{box-shadow:0 0 0 4px rgba(25,181,122,.12)}
/* v23 — proportional UI: compact, consistent, low-noise controls */
.device-row{gap:12px}.device-main{min-width:0}.device-main b,.device-main span,.device-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.device-view,.device-action{height:30px;min-height:30px;padding:0 10px;border-radius:8px;border:1px solid #dce2ea;background:#fff;font-size:11px!important;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer}
.device-view{border-color:#b9d7ff;background:#eef6ff;color:#1264d6}.device-view:hover{background:#e1efff}.device-action:hover{background:#f4f6f8}.device-action.danger{color:#d92d20;border-color:#f2c7c3;background:#fff}.device-action.danger:hover{background:#fff3f2}
.admin-user-form h2{font-size:22px;margin-bottom:16px}.admin-user-form .assistant-close{width:30px;height:30px;font-size:18px}.admin-user-form label{font-size:12px}.admin-user-form input,.admin-user-form select{height:38px;font-size:12px}.admin-user-form .permission-builder{padding:12px}.admin-user-form .area-check{padding:6px 9px;font-size:11px}.admin-user-form .permission-list.modern label{padding:7px 8px}.admin-user-form .permission-list.modern b{font-size:11px}.admin-user-form .permission-list.modern small{font-size:9px}.admin-user-form .modal-actions button{height:34px;font-size:11px}
@media(max-width:900px){.device-row{gap:8px}.device-view,.device-action{padding:0 8px}}
/* v24 — alineación, controles compactos y acciones de local */
.admin-user-form .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-user-form .section-heading>div{display:flex;align-items:baseline;gap:8px;min-width:0}.admin-user-form .section-heading b{font-size:13px;white-space:nowrap}.admin-user-form .section-heading small{font-size:10px;line-height:1.25;color:#7b8797}.admin-user-form #allVisibleLocals{height:28px!important;min-height:28px!important;padding:0 10px!important;font-size:10px!important;flex:0 0 auto}
.admin-user-form .area-permissions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.admin-user-form .area-check{height:30px;display:inline-flex!important;align-items:center;gap:6px;padding:0 9px!important;border-radius:8px!important}.admin-user-form .area-check input,.admin-user-form .permission-list input,.admin-user-form .inline-check input{appearance:auto!important;width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important;margin:0!important;padding:0!important;vertical-align:middle}
.admin-user-form .permission-list.modern{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-user-form .permission-list.modern label{min-height:48px;display:grid!important;grid-template-columns:15px minmax(0,1fr);align-items:center;gap:8px;padding:7px 9px!important}.admin-user-form .permission-list.modern label span{min-width:0}.admin-user-form .permission-list.modern b,.admin-user-form .permission-list.modern small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-form .inline-check{display:inline-flex!important;align-items:center;gap:7px}
.device-row{grid-template-columns:auto minmax(0,1fr) auto auto auto auto!important;align-items:center!important}.device-row>.pill{align-self:start;margin-top:1px}.device-view{align-self:start!important;background:#1264d6!important;border-color:#1264d6!important;color:#fff!important}.device-view:hover{background:#0d55ba!important}.device-chevron{display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;padding:0!important}.device-action{font-size:10px!important;height:28px!important;min-height:28px!important;padding:0 8px!important}
.detail-actions.compact-actions{gap:7px}.detail-actions.compact-actions .softbtn,.detail-actions.compact-actions .primary,.local-onedrive{border:1px solid #cfd6df!important;box-shadow:0 1px 0 rgba(15,23,42,.03);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.detail-actions.compact-actions .primary{border-color:#1264d6!important}.local-onedrive{color:#1264d6!important;background:#f7fbff!important}
.content-where-head small{font-size:10px}.content-where-panel:has(.content-where-list) .content-where-head{background:#fbfcfd}
@media(max-width:720px){.admin-user-form .permission-list.modern{grid-template-columns:1fr}.admin-user-form .section-heading>div{display:block}.device-row{grid-template-columns:auto minmax(0,1fr) auto!important}.device-row .device-action,.device-row .device-chevron{grid-column:auto}}
/* v26 · ficha local: miniaturas y centro de sincronización */
.local-kpis{grid-template-columns:140px 140px minmax(360px,1.35fr) minmax(220px,.8fr)}
.local-photo-kpi{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px 14px;display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px;align-items:center}
.local-photo-strip{display:flex;gap:6px;overflow-x:auto;padding:2px}.local-photo-thumb{width:62px;height:58px;min-width:62px;padding:0;border:1px solid #e1e6ed;border-radius:8px;overflow:hidden;background:#f7f9fb;cursor:pointer}.local-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.local-photo-thumb:hover{border-color:#2684ff;box-shadow:0 0 0 2px rgba(38,132,255,.1)}
.sync-center{padding:22px}.sync-status-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}.sync-status-row>div{display:flex;flex-direction:column;gap:5px}.sync-status-row b{font-size:18px}.sync-counts{display:flex;gap:10px;flex-wrap:wrap;padding:18px 0}.sync-counts span{border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:12px}.sync-help{background:#f7f9fc;border:1px solid #e4e9f0;border-radius:12px;padding:16px}.sync-help p{font-size:13px;color:var(--muted);max-width:760px}.sync-instructions{margin-top:12px;border-left:3px solid #2684ff;padding:10px 12px;display:flex;flex-direction:column;gap:7px;font-size:12px}.sync-instructions code{font-size:12px;background:#fff;border:1px solid var(--line);padding:7px 9px;border-radius:7px;width:max-content;max-width:100%;overflow:auto}
@media(max-width:1150px){.local-kpis{grid-template-columns:130px 130px 1fr}.local-photo-kpi{grid-column:1/-1}}@media(max-width:720px){.local-kpis{grid-template-columns:1fr 1fr}.local-content-kpi,.local-photo-kpi{grid-column:1/-1}}
/* v27 · dispositivos por permisos + filtros múltiples + formatos */
.device-tools{padding:14px 16px;margin-bottom:14px}.device-filter-row{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.device-filter{position:relative}.device-filter summary{list-style:none;min-width:128px;height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 11px;border:1px solid #d9e0e8;border-radius:9px;background:#fff;font-size:11px;font-weight:700;cursor:pointer}.device-filter summary::-webkit-details-marker{display:none}.device-filter summary:after{content:'⌄';font-size:13px;line-height:1}.device-filter[open] summary{border-color:#9fc5ff;box-shadow:0 0 0 2px rgba(38,132,255,.08)}.device-filter-menu{position:absolute;z-index:20;top:39px;left:0;width:220px;max-height:270px;overflow:auto;background:#fff;border:1px solid #dce2e9;border-radius:10px;box-shadow:0 12px 35px rgba(15,23,42,.13);padding:7px}.device-filter-menu label{display:flex;align-items:center;gap:8px;min-height:30px;padding:5px 7px;border-radius:7px;font-size:11px;cursor:pointer}.device-filter-menu label:hover{background:#f5f8fb}.device-filter-menu input,.device-select-row input,.device-explorer-table input{width:14px!important;height:14px!important;min-width:14px!important;margin:0!important}.filter-all{border-bottom:1px solid #edf0f4;margin-bottom:4px;font-weight:750}.device-select-row{display:flex;align-items:center;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid #edf0f4;font-size:11px;color:#667085}.device-select-row label{display:flex;align-items:center;gap:7px;font-weight:700;color:#344054}.format-summary{margin-bottom:14px;border:1px solid #b9d7ff;background:#f7fbff;border-radius:14px;padding:15px}.format-summary-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.format-summary-head h2{font-size:18px;margin:2px 0}.format-summary-head>span{font-size:11px;color:#667085}.format-cards{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.format-cards article{min-width:180px;background:#fff;border:1px solid #d8e7fb;border-radius:10px;padding:10px 12px}.format-cards b,.format-cards span,.format-cards small{display:block}.format-cards b{font-size:15px}.format-cards span{font-size:11px;font-weight:700;color:#1264d6;margin-top:2px}.format-cards small{font-size:9.5px;color:#7b8797;margin-top:5px}.device-explorer-table td{vertical-align:middle}.device-explorer-table td small{display:block;color:#7b8797;font-size:9px;margin-top:2px}.device-explorer-table th,.device-explorer-table td{white-space:nowrap}.device-explorer-table th:first-child,.device-explorer-table td:first-child{width:32px;text-align:center}@media(max-width:760px){.device-filter{width:calc(50% - 4px)}.device-filter summary{width:100%;min-width:0}.device-filter-menu{width:100%}.format-summary-head{align-items:flex-start;flex-direction:column}}
/* v28 · buscador de dispositivos y listado inicial completo */
.device-search-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.device-search{flex:1;min-width:220px;max-width:620px;height:38px;display:flex;align-items:center;gap:8px;border:1px solid #d9e0e8;border-radius:9px;background:#fff;padding:0 11px}.device-search:focus-within{border-color:#8dbbfa;box-shadow:0 0 0 2px rgba(38,132,255,.08)}.device-search>span{font-size:15px;color:#667085;line-height:1}.device-search input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;width:100%!important;height:34px!important;min-height:34px!important;padding:0!important;font-size:12px!important}.device-scope-note{font-size:10px;color:#7b8797;white-space:nowrap}@media(max-width:760px){.device-search-row{align-items:stretch;flex-direction:column}.device-search{max-width:none;width:100%}.device-scope-note{white-space:normal}}

/* v29 — dispositivos expandidos y avisos de contenido */
.device-filter-row{gap:14px 16px!important}.device-filter{margin-bottom:2px}.device-explorer-list{display:grid;gap:10px;padding:14px}.device-explorer-card{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;border:1px solid #e2e7ed;background:#fff;border-radius:12px;padding:13px 15px}.device-pick-wrap{padding-top:4px}.device-explorer-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.device-explorer-title>b{font-size:13px}.device-explorer-local{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-top:4px}.device-explorer-local strong{font-size:11px}.device-explorer-local span{font-size:10px;color:#778396}.device-explorer-meta{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-top:10px}.device-explorer-meta>span{border-top:1px solid #eef1f4;padding-top:7px;min-width:0}.device-explorer-meta small,.device-explorer-meta b{display:block}.device-explorer-meta small{font-size:8px;color:#8994a4;text-transform:uppercase;letter-spacing:.05em}.device-explorer-meta b{font-size:10px;margin-top:2px;overflow:hidden;text-overflow:ellipsis}.local-card-top{display:flex;align-items:flex-start;justify-content:space-between}.local-new-content{width:30px;height:30px;min-height:30px;border:1px solid #b99cff;border-radius:9px;background:#f2edff;color:#7147d9;font-size:14px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;animation:imaconPurplePulse 1.45s ease-in-out infinite}.detail-new-content{width:auto;padding:0 9px;gap:5px}.detail-new-content span{font-size:9px}.request-new-dot{width:9px;height:9px;border-radius:50%;background:#8a5cf5;display:inline-block;box-shadow:0 0 0 4px #eee8ff}.request-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.request-summary-grid>div{border:1px solid #e5e9ef;border-radius:9px;padding:9px 10px;min-width:0}.request-summary-grid .wide{grid-column:1/-1}.request-summary-grid small,.request-summary-grid b{display:block}.request-summary-grid small{font-size:9px;color:#7d8795}.request-summary-grid b{font-size:11px;margin-top:3px;overflow-wrap:anywhere}.request-summary-status{display:flex;align-items:center;gap:9px;margin-top:14px;padding:10px 12px;background:#faf8ff;border:1px solid #e2d8ff;border-radius:10px}.request-summary-status small{margin-left:auto;color:#7d8795;font-size:9px}.request-dashboard-row{width:100%;border:0;background:transparent;text-align:left;cursor:pointer}.request-dashboard-row:hover{background:#faf8ff}@keyframes imaconPurplePulse{0%,100%{box-shadow:0 0 0 0 rgba(138,92,245,.08)}50%{box-shadow:0 0 0 6px rgba(138,92,245,.18)}}@media(prefers-reduced-motion:reduce){.local-new-content{animation:none}}@media(max-width:850px){.device-explorer-meta{grid-template-columns:1fr 1fr}}@media(max-width:560px){.device-explorer-meta,.request-summary-grid{grid-template-columns:1fr}.request-summary-grid .wide{grid-column:auto}.request-summary-status{align-items:flex-start;flex-wrap:wrap}.request-summary-status small{margin-left:0;width:100%}}
/* v30: explorador de dispositivos y flujo de peticiones */
.device-tools.panel{overflow:visible!important;position:relative;z-index:20}.device-filter-row{gap:18px 22px!important;padding-bottom:4px}.device-filter{z-index:30}.device-filter[open]{z-index:60}.device-filter-menu{z-index:100!important}.device-explorer-list{display:grid!important;visibility:visible!important;max-height:none!important;overflow:visible!important}.device-explorer-card{display:grid!important}.panel:has(#deviceTable){overflow:visible!important}.panel:has(#deviceTable) #deviceTable{display:block!important;min-height:40px}.request-status-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.request-status-actions button{min-height:34px;border-radius:9px;border:1px solid #dfe4ea;background:#fff;font-size:10px;font-weight:750;cursor:pointer;padding:5px 8px}.request-status-actions .status-purple{border-color:#cbbcff;color:#7147d9;background:#f7f4ff}.request-status-actions .status-blue{border-color:#b8d6ff;color:#1264d6;background:#f4f9ff}.request-status-actions .status-orange{border-color:#f3d09a;color:#a15d00;background:#fff9ef}.request-status-actions .status-green{border-color:#b8dfcd;color:#138a58;background:#f1faf6}.request-summary-status.status-preparing{background:#f4f9ff;border-color:#b8d6ff}.request-summary-status.status-scheduled{background:#fff9ef;border-color:#f3d09a}.request-summary-status.status-completed{background:#f1faf6;border-color:#b8dfcd}.request-summary-status.status-preparing .request-new-dot{background:#2684ff;box-shadow:0 0 0 4px #e6f1ff}.request-summary-status.status-scheduled .request-new-dot{background:#d9850b;box-shadow:0 0 0 4px #fff0d8}.request-summary-status.status-completed .request-new-dot{background:#138a58;box-shadow:0 0 0 4px #e3f5ec}@media(max-width:700px){.request-status-actions{grid-template-columns:1fr 1fr}.device-filter-row{gap:12px!important}}
/* v31 · gestión completa de usuarios */
.users-table td{vertical-align:middle}.user-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.user-actions button{min-width:64px;height:30px;min-height:30px;padding:0 10px;font-size:11px}.user-local-chips{display:flex;flex-wrap:wrap;gap:4px;max-width:520px}.user-local-chips span{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border:1px solid #e1e6ec;border-radius:7px;background:#f7f9fb;font-size:10px;line-height:1.2}.user-local-chips small{align-self:center;color:#6f7b8c;font-size:10px}.user-scope-all{font-size:11px;color:#536174}.permission-head-actions{display:flex;gap:6px;align-items:center}.admin-user-form #noneVisibleLocals{height:28px!important;min-height:28px!important;padding:0 10px!important;font-size:10px!important}.admin-user-form .formmsg:not(:empty){margin-top:9px;padding:8px 10px;border-radius:8px;background:#fff1f0;font-size:11px}

/* v33 · acceso IMACON / IMA */
.login-hero{position:relative;overflow:hidden;isolation:isolate;background:#0c0e12}
.login-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,9,12,.82),rgba(7,9,12,.64));pointer-events:none}
.login-brand{display:flex;align-items:center;min-height:72px}
.login-brand img{display:block;width:min(185px,42%);height:auto;max-height:82px;object-fit:contain;object-position:left center;filter:invert(1) grayscale(1) brightness(3)}
.login-hero h1{max-width:650px}
.login-hero p{font-size:18px;color:#b2b8c2;margin-top:12px}
.login-contact{display:inline-flex;align-items:center;width:max-content;color:#fff;text-decoration:none;font-size:14px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.55);padding:0 0 4px}
.login-contact:hover{border-bottom-color:#fff}
.login-hero.has-video::before{content:"";position:absolute;inset:0;z-index:-2;background:#0c0e12}
.login-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.login-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-3;pointer-events:none}
.login-hero.has-video::after{background:linear-gradient(90deg,rgba(7,9,12,.78),rgba(7,9,12,.58))}
@media (prefers-reduced-motion:reduce){.login-video{display:none}}

/* v35 login video layering */
.login-hero.has-video{position:relative;isolation:isolate;overflow:hidden}
.login-hero.has-video .login-video{z-index:0!important;display:block;background:#0c0e12}
.login-hero.has-video::before{z-index:0!important}
.login-hero.has-video::after{z-index:1!important}
.login-hero.has-video>.login-brand,.login-hero.has-video>div:not(.login-brand),.login-hero.has-video>.login-contact{position:relative;z-index:2}
.admin-local-search{margin:0 0 16px;max-width:520px}
.admin-local-search input{width:100%}

/* v36 login: video-only left panel; brand/contact on access panel */
.login-access{position:relative;min-height:100vh}
.access-brand{position:absolute;top:34px;right:40px;display:flex;justify-content:flex-end;align-items:center;z-index:3}
.access-brand img{display:block;width:150px;max-width:32vw;height:auto;max-height:68px;object-fit:contain;object-position:right center}
.access-contact{position:absolute;right:40px;bottom:34px;color:#111318;text-decoration:none;font-size:13px;font-weight:700;border-bottom:1px solid #b8bdc5;padding-bottom:3px}
.access-contact:hover{border-bottom-color:#111318}
.login-hero.has-video{padding:0;background:#0c0e12}
.login-hero.has-video::after{display:none!important}
.login-hero.has-video::before{background:#0c0e12;z-index:0!important}
.login-hero.has-video .login-video{z-index:1!important;object-fit:cover;object-position:center}
@media(max-width:900px){.login-access{min-height:100vh}.access-brand{top:24px;right:24px}.access-brand img{width:125px}.access-contact{right:24px;bottom:24px}}

/* v38: alertas de tickets en la esquina inferior derecha de cada local */
.local-footer{position:relative;padding-right:36px}.local-ticket-alert{position:absolute;right:0;bottom:0;width:30px;height:30px;border:1px solid #f3b1a9;border-radius:9px;background:#fff0ed;color:#b93c31;font-size:16px;font-weight:750;cursor:pointer;animation:imaconTicketPulse 1.6s ease-in-out infinite}@keyframes imaconTicketPulse{0%,100%{box-shadow:0 0 0 0 rgba(219,76,61,.06)}50%{box-shadow:0 0 0 5px rgba(219,76,61,.15)}}@media(prefers-reduced-motion:reduce){.local-ticket-alert{animation:none}}

/* v39 monthly calendar */
.month-toolbar{display:flex;justify-content:space-between;align-items:center;margin:12px 0;gap:10px;text-transform:capitalize}.month-toolbar button{border:1px solid #e3e5ed;background:white;border-radius:8px;padding:5px 14px;cursor:pointer}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.month-weekday{text-align:center;font-size:11px;color:#7c8292}.month-day,.month-blank{min-height:53px;min-width:0;border:1px solid #e7e9ef;border-radius:8px;background:#fff;padding:5px;text-align:left;display:flex;flex-direction:column;gap:3px}.month-day{cursor:pointer}.month-day.has-events{background:#f4f0ff;border-color:#bca5fa}.month-event{font-size:10px;color:#7a43bd;white-space:nowrap}.month-day-detail{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.month-day-detail button{border:1px solid #ddd;border-radius:8px;background:white;padding:8px;cursor:pointer}@media(max-width:650px){.month-day,.month-blank{min-height:44px}.month-event{font-size:9px}}

.local-request-state{display:inline-flex;font-size:18px;margin-left:auto}.local-request-state.status-pending{color:#9c65cb}.local-request-state.status-preparing{color:#3888dc}.local-request-state.status-scheduled{color:#e69b30}.local-request-state.status-completed{color:#36a874}

.local-server-label{font-size:10px;color:#8d94a2;margin-left:7px;font-weight:500;white-space:nowrap}
