*{box-sizing:border-box;margin:0;padding:0}
:root{
  color-scheme:light;
  --bg:#f7f7f5;--bg2:#ffffff;--bg3:#f1f0ed;--bg4:#e8e7e3;
  --border:rgba(0,0,0,0.07);--border2:rgba(0,0,0,0.13);--border3:rgba(0,0,0,0.20);
  --text:#181816;--text2:#6a6a66;--text3:#a0a09b;
  --green:#2a7a38;--green-bg:#eaf3de;
  --amber:#7a5c00;--amber-bg:#faeeda;
  --red:#a32d2d;--red-bg:#fcebeb;
  --blue:#185fa5;--blue-bg:#e6f1fb;
  --purple:#4a3ab0;--purple-bg:#eeedfe;
  --radius:8px;--radius-lg:12px;--radius-xl:16px;
}
/* ── MODO OSCURO ── */
body.dark-mode{
  --bg:#0f1117;--bg2:#1a1d27;--bg3:#22263a;--bg4:#2c3148;
  --border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.13);--border3:rgba(255,255,255,0.22);
  --text:#e8e8e6;--text2:#9a9aa0;--text3:#5a5a65;
  --green:#4ade80;--green-bg:rgba(74,222,128,0.12);
  --amber:#fbbf24;--amber-bg:rgba(251,191,36,0.12);
  --red:#f87171;--red-bg:rgba(248,113,113,0.12);
  --blue:#60a5fa;--blue-bg:rgba(96,165,250,0.12);
  --purple:#a78bfa;--purple-bg:rgba(167,139,250,0.12);
}
html.dark-mode{color-scheme:dark}
html.dark-mode input[type="date"],
html.dark-mode input[type="time"],
html.dark-mode input[type="month"],
html.dark-mode input[type="week"],
html.dark-mode input[type="datetime-local"],
body.dark-mode input[type="date"],
body.dark-mode input[type="time"],
body.dark-mode input[type="month"],
body.dark-mode input[type="week"],
body.dark-mode input[type="datetime-local"]{color-scheme:dark;background-color:var(--bg3);color:var(--text)}
html.dark-mode input::-webkit-calendar-picker-indicator,
body.dark-mode input::-webkit-calendar-picker-indicator{filter:invert(1) brightness(.85);opacity:.82;cursor:pointer}
html{}input[type="number"]{-moz-appearance:textfield}
input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;height:100vh;overflow:hidden}

/* ── LOGIN ── */
#screen-login{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:10000}

/* Avisos operativos visibles sólo dentro de la sesión. */
.sv-action-alert-stack{position:fixed;top:68px;right:18px;z-index:900;width:min(390px,calc(100vw - 32px));display:grid;gap:10px;pointer-events:none}
.sv-action-alert{pointer-events:auto;position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 28px;gap:12px;align-items:start;padding:14px;background:linear-gradient(145deg,var(--bg2),var(--bg3));border:1px solid var(--border2);border-radius:16px;box-shadow:0 18px 45px rgba(0,0,0,.34);animation:sv-action-alert-in .22s ease-out both;overflow:hidden}
.sv-action-alert::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--amber)}
.sv-action-alert.is-leaving{animation:sv-action-alert-out .18s ease-in both}
.sv-action-alert-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--amber-bg);color:var(--amber);font-size:21px}
.sv-action-alert-content{min-width:0}.sv-action-alert-heading{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--text2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.045em}
.sv-action-alert-badge{padding:2px 7px;border-radius:999px;background:var(--amber-bg);color:var(--amber);font-size:10px}
.sv-action-alert-title{margin-top:5px;color:var(--text);font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-action-alert-meta{display:flex;align-items:center;gap:7px;margin-top:3px;color:var(--text3);font-size:12px}.sv-action-alert-meta span{width:3px;height:3px;border-radius:50%;background:var(--text3)}
.sv-action-alert-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.sv-action-alert-actions .btn{min-height:32px}.sv-action-alert-wa{border-color:rgba(37,211,102,.38)!important;color:#53df89!important;text-decoration:none!important}
.sv-action-alert-close{width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:var(--text3);border-radius:8px;cursor:pointer;font-size:17px}.sv-action-alert-close:hover{background:var(--bg4);color:var(--text)}
.sv-important-alert-stack{z-index:100150;max-height:calc(100vh - 88px);overflow-y:auto;padding:1px 3px 12px 1px;scrollbar-width:thin}
.sv-important-alert.is-urgent::before{background:var(--red)}.sv-important-alert.is-urgent .sv-action-alert-icon{background:var(--red-bg);color:var(--red)}.sv-important-alert.is-urgent .sv-action-alert-badge{background:var(--red-bg);color:var(--red)}
.sv-important-alert.is-success::before{background:var(--green)}.sv-important-alert.is-success .sv-action-alert-icon{background:var(--green-bg);color:var(--green)}.sv-important-alert.is-success .sv-action-alert-badge{background:var(--green-bg);color:var(--green)}
.sv-important-alert .sv-action-alert-meta{display:block;line-height:1.4;white-space:normal}
@keyframes sv-action-alert-in{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}@keyframes sv-action-alert-out{to{opacity:0;transform:translateX(12px) scale(.985)}}
@media(max-width:600px){.sv-action-alert-stack{top:auto;right:12px;bottom:16px;width:calc(100vw - 24px)}.sv-action-alert{grid-template-columns:38px minmax(0,1fr) 28px;padding:12px;gap:10px}.sv-action-alert-icon{width:38px;height:38px}.sv-action-alert-actions{display:grid;grid-template-columns:1fr 1fr}.sv-action-alert-actions .btn{justify-content:center}}
#screen-loading.sv-boot-screen{position:fixed;inset:0;z-index:998;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 38%,rgba(96,165,250,.13),transparent 28%),radial-gradient(circle at 50% 62%,rgba(74,222,128,.09),transparent 26%),var(--bg);flex-direction:column;color:var(--text)}
.sv-boot-aura{position:absolute;width:360px;height:360px;border-radius:50%;background:conic-gradient(from 160deg,rgba(96,165,250,.05),rgba(74,222,128,.22),rgba(139,92,246,.12),rgba(96,165,250,.05));filter:blur(18px);animation:svBootSpin 4.8s linear infinite;opacity:.85}
.sv-boot-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;animation:svBootIn .55s ease both}
.sv-boot-logo{width:132px;height:86px;border-radius:24px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.02));border:0.5px solid rgba(120,130,160,.28);box-shadow:0 22px 70px rgba(0,0,0,.30),0 0 0 8px rgba(96,165,250,.035);animation:svBootPulse 1.55s ease-in-out infinite}
.sv-boot-logo img{width:100%;height:100%;object-fit:cover;display:block;filter:drop-shadow(0 10px 24px rgba(0,0,0,.35))}
.sv-boot-brand{font-size:25px;font-weight:800;letter-spacing:-.7px;margin-top:5px}
.sv-boot-sub{font-size:12px;color:var(--text3);letter-spacing:.35px;text-transform:uppercase}
.sv-boot-progress{width:210px;height:4px;margin-top:12px;overflow:hidden;border-radius:999px;background:rgba(120,130,160,.20)}
.sv-boot-bar{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .42s ease;box-shadow:0 0 18px rgba(74,222,128,.30)}
.sv-boot-msg{font-size:12px;color:var(--text3);min-height:18px}
#screen-loading.sv-intro-loading .sv-boot-progress{width:74px;height:74px;margin-top:14px;border-radius:50%;background:conic-gradient(var(--green) 0 70deg,rgba(120,130,160,.15) 70deg 360deg);animation:svBootSpin 1.1s linear infinite;position:relative}
#screen-loading.sv-intro-loading .sv-boot-progress:after{content:'';position:absolute;inset:8px;border-radius:50%;background:var(--bg)}
#screen-loading.sv-intro-loading .sv-boot-bar{display:none}
#screen-loading.sv-intro-loading .sv-boot-msg{display:none}
#screen-loading.sv-boot-exit{animation:svBootFade .28s ease forwards}
@keyframes svBootIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes svBootPulse{0%,100%{transform:scale(1);box-shadow:0 22px 70px rgba(0,0,0,.30),0 0 0 8px rgba(96,165,250,.035)}50%{transform:scale(1.035);box-shadow:0 28px 86px rgba(0,0,0,.36),0 0 0 14px rgba(74,222,128,.055)}}
@keyframes svBootSpin{to{transform:rotate(360deg)}}
@keyframes svBootFade{to{opacity:0;transform:scale(1.015)}}
.login-box{width:360px;background:var(--bg2);border:0.5px solid var(--border2);border-radius:var(--radius-xl);padding:40px 36px}
.login-logo{text-align:center;margin-bottom:32px}
.login-logo-mark{width:86px;height:86px;margin:0 auto 14px;border-radius:24px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:0.5px solid var(--border2)}
.login-logo-mark img{width:100%;height:100%;object-fit:cover;display:block}
.login-brand{font-size:28px;font-weight:700;letter-spacing:1px;color:var(--text)}
.login-brand span{font-weight:300;color:var(--text3)}
.login-tagline{font-size:12px;color:var(--text3);margin-top:4px;letter-spacing:.5px}
.login-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.login-field label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.6px}
.login-field input{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--radius);padding:10px 12px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border .12s;width:100%;box-sizing:border-box}
.login-field input:focus{border-color:var(--border3);background:var(--bg3)}
.login-field input::placeholder{color:var(--text3)}
/* Override autofill del browser en modo oscuro */
.login-field input:-webkit-autofill,
.login-field input:-webkit-autofill:hover,
.login-field input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px var(--bg3) inset !important;
  -webkit-text-fill-color:var(--text) !important;
  border-color:var(--border2) !important;
  transition:background-color 5000s ease-in-out 0s;
}
.login-role{display:flex;gap:8px;margin-bottom:20px}
.role-btn{flex:1;padding:9px;border-radius:var(--radius);border:0.5px solid var(--border2);background:transparent;color:var(--text2);font-size:13px;font-family:inherit;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center;gap:6px}
.role-btn:hover{background:var(--bg3)}
.role-btn.selected{background:var(--text);color:var(--bg2);border-color:var(--text)}
.login-btn{width:100%;padding:11px;border-radius:var(--radius);border:none;background:var(--text);color:var(--bg2);font-size:14px;font-family:inherit;font-weight:500;cursor:pointer;transition:opacity .12s;display:flex;align-items:center;justify-content:center;gap:7px}
.login-btn:disabled{cursor:not-allowed}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.login-btn:hover{opacity:.85}
.login-hint{font-size:11px;color:var(--text3);text-align:center;margin-top:14px}
.login-error{font-size:12px;color:var(--red);background:var(--red-bg);padding:8px 12px;border-radius:var(--radius);margin-bottom:14px;display:none}

/* ── APP SHELL ── */
#screen-app{display:none;height:100vh;flex-direction:column}
#screen-app.visible{display:flex}
.app{display:flex;flex:1;overflow:hidden}

/* ── SIDEBAR ── */
.sidebar{width:204px;background:var(--bg2);border-right:0.5px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:relative;z-index:40;transition:width .22s ease,margin-right .22s ease,box-shadow .22s ease}
.sidebar-pin{display:none;position:absolute;top:8px;right:8px;z-index:3;width:32px;height:30px;align-items:center;justify-content:center;padding:0;border:0.5px solid var(--border);border-radius:var(--radius);background:var(--bg3);color:var(--text2);font:inherit;cursor:pointer;overflow:hidden;transition:color .15s,border-color .15s,background .15s}
.sidebar-pin:hover{color:var(--text);border-color:var(--border3)}
.sidebar-pin i{font-size:15px;flex-shrink:0}
.sidebar-pin.is-pinned{color:var(--blue);border-color:var(--blue);background:var(--blue-bg)}
.s-logo{padding:22px 20px 18px;border-bottom:0.5px solid var(--border)}
.s-brand{font-size:15px;font-weight:700;color:var(--text);letter-spacing:.5px}
.s-brand span{font-weight:300;color:var(--text3)}
.s-sub{font-size:11px;color:var(--text3);margin-top:2px}
.s-nav{padding:14px 10px;flex:1;overflow-y:auto}
.s-section{font-size:10px;color:var(--text3);padding:0 10px;margin:14px 0 4px;text-transform:uppercase;letter-spacing:1px}
.s-section:first-child{margin-top:0}
.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;color:var(--text2);font-size:13px;transition:all .12s;margin-bottom:1px;border:0.5px solid transparent;user-select:none;white-space:nowrap}
.nav-item:hover{background:var(--bg3);color:var(--text)}
.nav-item.active{background:var(--bg3);color:var(--text);border-color:var(--border2)}
.nav-item i{font-size:15px;width:17px;text-align:center;flex-shrink:0}
.nav-item .badge-role{font-size:10px;margin-left:auto;padding:1px 6px;border-radius:20px;background:var(--red-bg);color:var(--red)}
.s-foot{padding:12px 10px;border-top:0.5px solid var(--border)}
.s-user{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;transition:background .12s}
.s-user:hover{background:var(--bg3)}
.s-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}
.s-avatar.admin{background:var(--blue-bg);color:var(--blue)}
.s-avatar.vendedor{background:var(--purple-bg);color:var(--purple)}
.s-uname{font-size:12px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-urole{font-size:11px;color:var(--text3)}
.s-logout{margin-left:auto;color:var(--text3);font-size:15px;flex-shrink:0;cursor:pointer;transition:color .12s}
.s-logout:hover{color:var(--red)}

/* ── TOPBAR ── */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.topbar{height:50px;background:var(--bg2);border-bottom:0.5px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:0 24px;flex-shrink:0}
.page-title{font-size:14px;font-weight:500;color:var(--text)}
.topbar-center{display:flex;align-items:center;justify-content:center;min-width:0}
.topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
.topbar-date{font-size:12px;color:var(--text3);margin-right:6px}
.topbar-dolar{display:flex;align-items:center;gap:5px;max-width:260px;padding:4px 8px;border:0.5px solid var(--border);border-radius:999px;background:var(--bg3);color:var(--text2);font-family:inherit;font-size:11px;line-height:1;cursor:pointer;white-space:nowrap}
.topbar-dolar:hover{border-color:var(--blue);background:var(--blue-bg)}
.topbar-dolar-label{font-size:9px;font-weight:700;letter-spacing:.5px;color:var(--blue)}
.topbar-dolar #dash-dolar-valor{font-weight:700;color:var(--blue)}
.topbar-dolar #dash-dolar-sub{max-width:120px;overflow:hidden;text-overflow:ellipsis;color:var(--text3)}
.icon-btn{width:32px;height:32px;border-radius:var(--radius);border:0.5px solid var(--border);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text2);transition:all .12s}
.icon-btn:hover{background:var(--bg3);color:var(--text)}
.role-badge{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:500;margin-right:4px}
.role-badge.admin{background:var(--blue-bg);color:var(--blue)}
.role-badge.vendedor{background:var(--purple-bg);color:var(--purple)}

/* ── CONTENT ── */
.content{flex:1;overflow-y:auto;overflow-x:auto;padding:24px;box-sizing:border-box;width:100%}
.content::-webkit-scrollbar{width:4px}
.content::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
@media(max-width:768px){.content::-webkit-scrollbar{width:0!important;display:none!important}.content{scrollbar-width:none;-ms-overflow-style:none}}
/* Scrollbar sidebar */
.s-nav::-webkit-scrollbar{width:3px}
.s-nav::-webkit-scrollbar-track{background:transparent}
.s-nav::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
.s-nav::-webkit-scrollbar-thumb:hover{background:var(--border3)}
/* Scrollbar global modo oscuro */
body.dark-mode ::-webkit-scrollbar{width:4px;height:4px}
body.dark-mode ::-webkit-scrollbar-track{background:transparent}
body.dark-mode ::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:4px}
body.dark-mode ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.22)}
.page{display:none;width:100%;box-sizing:border-box}
.page.active{display:block}
.page.sv-page-transitioning{position:relative}
.page.sv-page-transitioning > *:not(.sv-page-transition-loader){visibility:visible!important}
.sv-page-transition-loader{position:fixed;inset:0;z-index:34;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(5,7,12,.76);pointer-events:none}
.page.sv-page-transitioning>.sv-page-transition-loader{display:flex;animation:sv-page-loader-in .14s ease both}
.sv-page-transition-box{display:flex;align-items:center;gap:12px;max-width:360px;width:min(360px,calc(100vw - 32px));border:0.5px solid rgba(120,130,160,.42);border-radius:16px;padding:14px 18px;background:rgba(28,31,42,.96);box-shadow:0 14px 34px rgba(0,0,0,.24)}
.sv-page-transition-spin{width:38px;height:38px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:rgba(96,165,250,.16);color:var(--blue);flex-shrink:0}
.sv-page-transition-spin i{font-size:21px;animation:sv-page-spin .9s linear infinite}
.sv-page-transition-title{font-size:13px;font-weight:800;color:var(--text);white-space:nowrap}
.sv-page-transition-sub{display:block;font-size:11px;color:var(--text3);margin-top:2px;white-space:nowrap}
@keyframes sv-page-loader-in{from{opacity:0}to{opacity:1}}
@keyframes sv-page-spin{to{transform:rotate(360deg)}}
@keyframes sv-page-toast-out{to{opacity:0;visibility:hidden}}

/* ── METRICS ── */
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px}
.rent-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
#sv334-rent-quick{grid-template-columns:repeat(3,minmax(0,1fr))}
#dash-metricas-globales{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:14px}
#dash-metricas-globales>.metric{min-height:76px;padding:12px 14px}
#dash-metricas-globales .m-value{font-size:20px}
#dash-metricas-globales .m-sub{font-size:10px}
.metric{background:var(--bg3);border-radius:var(--radius);padding:14px 16px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;border:0.5px solid transparent}
.metric:hover{transform:translateY(-1px);border-color:rgba(120,130,160,.34);box-shadow:0 12px 30px rgba(0,0,0,.14);background:linear-gradient(145deg,rgba(96,165,250,.055),rgba(255,255,255,.018)),var(--bg3)}
.metrics{}
.card{}
.m-label{font-size:11px;color:var(--text3);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}
.est-mp-card .m-label{align-items:flex-start!important;min-height:32px;line-height:16px}
.cob-monto-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;min-height:22px}
.cob-monto-head>label{margin:0!important}
.cob-monto-rapidos{display:flex;align-items:center;gap:5px}
.cob-monto-rapidos button{border:0.5px solid var(--border2);background:var(--bg3);color:var(--text2);border-radius:999px;padding:3px 9px;font:600 10px/1.25 inherit;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s,background .15s}
.cob-monto-rapidos button:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-bg)}
.cob-moneda-selector{display:flex;align-items:center;gap:7px;color:var(--text3);font-size:11px}
.cob-moneda-selector strong{min-width:30px;color:var(--text3);font-size:11px}
.cob-usd-panel{grid-template-columns:minmax(220px,.8fr) minmax(240px,1.2fr)!important;gap:14px!important;padding:14px 16px;background:linear-gradient(135deg,rgba(96,165,250,.08),rgba(96,165,250,.025));border:0.5px solid rgba(96,165,250,.28);border-radius:var(--radius)}
.cob-usd-cotizacion-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.cob-usd-cotizacion-head label{margin:0!important}
.cob-usd-cotizacion-head button{border:0;background:none;color:var(--blue);padding:2px 0;font:600 10px/1.2 inherit;cursor:pointer;white-space:nowrap}
.cob-usd-ayuda{color:var(--text3);font-size:10px;margin-top:5px}
.cob-usd-equivalencia{display:flex;flex-direction:column;justify-content:center;padding-left:16px;border-left:0.5px solid rgba(96,165,250,.25)}
.cob-usd-equivalencia span{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.55px}
.cob-usd-equivalencia strong{font-size:21px;color:var(--green);margin-top:4px}
.cob-usd-equivalencia small{font-size:10px;color:var(--text3);margin-top:3px}
@media(max-width:700px){.cob-usd-panel{grid-template-columns:1fr!important}.cob-usd-equivalencia{padding:12px 0 0;border-left:0;border-top:0.5px solid rgba(96,165,250,.25)}.cob-moneda-selector{margin-left:auto}}
.m-value{font-size:22px;font-weight:600;color:var(--text);margin-bottom:4px}
.m-sub{font-size:11px;color:var(--text3)}
.m-up{color:var(--green)}
.m-warn{color:var(--amber)}

/* ── CARDS ── */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;min-width:0}
.card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:12px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;box-sizing:border-box;min-width:0;max-width:100%;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.card:hover{transform:translateY(-1px);border-color:rgba(120,130,160,.42);box-shadow:0 14px 38px rgba(0,0,0,.18);background:linear-gradient(145deg,rgba(96,165,250,.035),rgba(255,255,255,.012)),var(--bg2)}
.card:last-child{margin-bottom:0}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px;flex-wrap:wrap}
.card-title{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;font-weight:400}

/* Agenda: el desplazamiento horizontal queda contenido dentro del calendario. */
#page-agenda{min-width:0;max-width:100%}
#agenda-calendar-card{overflow:hidden}
#ag-calendario{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;padding-bottom:4px}
#ag-calendario[data-view="mes"]>div{min-width:720px}
#ag-calendario[data-view="semana"]>div{min-width:860px}
#ag-calendario[data-view="dia"]>div{min-width:100%}
.agenda-scroll-hint{display:none}
#page-agenda.agenda-compact #agenda-calendar-card{padding:10px!important;overflow:hidden!important}
#page-agenda.agenda-compact .agenda-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr);align-items:stretch!important}
#page-agenda.agenda-compact .agenda-nav{width:100%;display:grid!important;grid-template-columns:36px minmax(0,1fr) 36px auto;gap:5px!important}
#page-agenda.agenda-compact .agenda-nav #ag-titulo{min-width:0!important;font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-agenda.agenda-compact .agenda-actions{width:100%;flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:3px;-webkit-overflow-scrolling:touch}
#page-agenda.agenda-compact .agenda-actions>*{flex-shrink:0}
#page-agenda.agenda-compact .agenda-legend{display:none!important}
#page-agenda.agenda-compact .agenda-scroll-hint{display:none!important}
#page-agenda.agenda-compact #ag-calendario{overflow:visible!important;padding-bottom:0!important}
#page-agenda.agenda-compact #ag-calendario[data-view="mes"]>div,
#page-agenda.agenda-compact #ag-calendario[data-view="semana"]>div{min-width:0!important;width:100%!important}
#page-agenda.agenda-compact .ag-mes-movil{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
#page-agenda.agenda-compact .ag-mes-dia-nombre{background:var(--bg3);padding:7px 0;text-align:center;color:var(--text3);font-size:10px;font-weight:700}
#page-agenda.agenda-compact .ag-mes-celda{position:relative;display:flex;min-width:0;min-height:54px;padding:6px 2px;align-items:center;flex-direction:column;gap:4px;border:0;background:var(--bg2);color:var(--text);font:inherit}
#page-agenda.agenda-compact button.ag-mes-celda{cursor:pointer}
#page-agenda.agenda-compact .ag-mes-celda.es-finde{background:var(--bg)}
#page-agenda.agenda-compact .ag-mes-celda.es-hoy{background:var(--blue-bg);color:var(--blue);font-weight:700;box-shadow:inset 0 0 0 1px var(--blue)}
#page-agenda.agenda-compact .ag-mes-vacia{background:var(--bg)}
#page-agenda.agenda-compact .ag-mes-numero{font-size:12px;line-height:1}
#page-agenda.agenda-compact .ag-mes-puntos{display:flex;max-width:100%;gap:2px}
#page-agenda.agenda-compact .ag-mes-puntos i{display:block;width:5px;height:5px;border-radius:50%}
#page-agenda.agenda-compact .ag-mes-cantidad{font-size:9px;color:var(--text3);line-height:1}
#page-agenda.agenda-compact .ag-mes-lista-movil{display:flex;flex-direction:column;gap:7px;margin-top:10px}
#page-agenda.agenda-compact .ag-mes-lista-head{display:flex;align-items:center;justify-content:space-between;color:var(--text3);font-size:11px;text-transform:uppercase;letter-spacing:.45px}
#page-agenda.agenda-compact .ag-mes-lista-head small{text-transform:none;letter-spacing:0;color:var(--text3);font-size:11px}
#page-agenda.agenda-compact .ag-mes-lista-vacia{padding:14px;border:1px dashed var(--border2);border-radius:var(--radius);color:var(--text3);font-size:12px;text-align:center}
#page-agenda.agenda-compact .ag-mes-lista-item{display:grid;grid-template-columns:74px minmax(0,1fr);gap:9px;width:100%;padding:9px 10px;border:0;border-left:3px solid;border-radius:var(--radius);background:var(--bg3);color:var(--text);font:inherit;text-align:left;cursor:pointer}
#page-agenda.agenda-compact .ag-mes-lista-fecha{display:flex;flex-direction:column;gap:2px;font-size:11px;font-weight:700;text-transform:capitalize}
#page-agenda.agenda-compact .ag-mes-lista-fecha small,
#page-agenda.agenda-compact .ag-mes-lista-info small{font-size:10px;color:var(--text3);font-weight:400;text-transform:none}
#page-agenda.agenda-compact .ag-mes-lista-info{min-width:0;display:flex;flex-direction:column;gap:2px}
#page-agenda.agenda-compact .ag-mes-lista-info strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}
#page-agenda.agenda-compact .ag-mes-lista-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#page-agenda.agenda-compact .ag-semana-movil{display:flex;min-width:0!important;flex-direction:column;gap:8px}
#page-agenda.agenda-compact .ag-semana-dia{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2)}
#page-agenda.agenda-compact .ag-semana-dia.es-hoy{border-color:var(--blue)}
#page-agenda.agenda-compact .ag-semana-fecha{display:flex;width:100%;padding:9px 10px;align-items:center;justify-content:space-between;border:0;background:var(--bg3);color:var(--text);font:inherit;text-align:left;cursor:pointer}
#page-agenda.agenda-compact .ag-semana-dia.es-hoy .ag-semana-fecha{background:var(--blue-bg);color:var(--blue)}
#page-agenda.agenda-compact .ag-semana-fecha strong{text-transform:capitalize;font-size:13px}
#page-agenda.agenda-compact .ag-semana-fecha span{color:var(--text3);font-size:10px}
#page-agenda.agenda-compact .ag-semana-eventos{display:flex;flex-direction:column;gap:5px;padding:7px}
#page-agenda.agenda-compact .ag-semana-evento{display:grid;grid-template-columns:52px minmax(0,1fr);gap:7px;width:100%;padding:7px 8px;border:0;border-left:3px solid;border-radius:4px;color:var(--text);font:inherit;text-align:left;cursor:pointer}
#page-agenda.agenda-compact .ag-semana-evento span{font-size:10px}
#page-agenda.agenda-compact .ag-semana-evento strong{min-width:0;overflow:hidden;font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.sv-auto-grid-wrap,.table-wrap{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.sv-auto-grid-wrap>table,.table-wrap>table{width:max-content;min-width:100%;max-width:none!important}
.sv-scroll-panel{max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.sv-resizable-wrap{position:relative;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch}
.sv-resizable-table{table-layout:fixed;width:max-content;min-width:100%;max-width:none!important}
.sv-resizable-table th,.sv-resizable-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-resizable-table th{position:relative;user-select:none}
.sv-resizable-table th.tr,.sv-resizable-table td.tr{text-align:right}
.sv-col-resizer{position:absolute;top:0;right:0;width:12px;height:100%;cursor:col-resize;z-index:6;touch-action:none;transform:translateX(50%)}
.sv-col-resizer:after{content:'';position:absolute;top:7px;bottom:7px;left:5px;width:2px;border-radius:999px;background:rgba(120,130,160,.22);transition:background .12s,box-shadow .12s,transform .12s}
.sv-resizable-th:hover .sv-col-resizer:after,.sv-col-resizer:hover:after,body.sv-resizing-columns .sv-col-resizer:after{background:var(--blue);box-shadow:0 0 0 2px var(--blue-bg),0 0 18px rgba(96,165,250,.28);transform:scaleY(1.12)}
body.sv-resizing-columns{cursor:col-resize!important;user-select:none!important}

/* ── TABLES ── */
table{width:100%;border-collapse:collapse;touch-action:pan-x pan-y}
th{font-size:11px;color:var(--text3);text-align:left;padding:0 10px 9px 0;border-bottom:0.5px solid var(--border);font-weight:400}
td{padding:9px 10px 9px 0;font-size:13px;color:var(--text2);border-bottom:0.5px solid var(--border)}
tr:last-child td{border-bottom:none}
tr:hover td{color:var(--text)}
.dt{width:100%;border-collapse:collapse}
.dt th{font-size:11px;color:var(--text3);padding:6px 8px;text-align:left;border-bottom:0.5px solid var(--border);font-weight:400}
.dt td{padding:7px 8px;font-size:13px;color:var(--text2);border-bottom:0.5px solid var(--border)}
.dt tr:last-child td{border-bottom:none}
.dt tr:hover td{background:var(--bg3)}
.dt input{background:transparent;border:none;width:100%;color:var(--text);font-size:13px;font-family:inherit;outline:none;padding:2px 4px}
.dt input:focus{background:var(--bg3);border-radius:4px}
.dt input[type=number]{text-align:right}

/* ── BADGES ── */
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500}
.b-green{background:var(--green-bg);color:var(--green)}
.b-amber{background:var(--amber-bg);color:var(--amber)}
.b-red{background:var(--red-bg);color:var(--red)}
.b-blue{background:var(--blue-bg);color:var(--blue)}
.b-purple{background:var(--purple-bg);color:var(--purple)}

/* ── BAR CHART ── */
.bar-area{display:flex;align-items:flex-end;gap:6px;height:120px;margin-top:8px;padding:0 4px;box-sizing:border-box;touch-action:pan-x pan-y}
.bc{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;flex:1;min-width:0;height:100%;touch-action:pan-x pan-y}
.bar{width:100%;background:var(--bg4);border-radius:3px 3px 0 0;cursor:pointer;transition:background .15s,height .3s;min-height:4px;touch-action:pan-x pan-y}
.bar:hover,.bar.today{background:var(--text)}
.bar-lbl{font-size:10px;color:var(--text3);white-space:nowrap}
.bar-lbl.today{color:var(--text);font-weight:600}
/* Dashboard: mantener el gráfico de ventas apoyado abajo dentro de su tarjeta */
#dash-row2-admin > .card:first-child{display:flex;flex-direction:column}
#dash-bar-area{margin-top:auto}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:var(--radius);font-size:13px;cursor:pointer;border:0.5px solid var(--border2);background:transparent;color:var(--text2);font-family:inherit;transition:all .12s}
.btn:hover{background:var(--bg3);color:var(--text)}
.btn-primary{background:var(--text);color:var(--bg2);border-color:var(--text)}
.btn-primary:hover{opacity:.85}
.btn-sm{padding:4px 9px;font-size:12px}
.btn-icon{border-color:transparent;padding:4px 6px;color:var(--text3)}
.btn-icon:hover{color:var(--text);background:var(--bg3)}
.btn-danger{color:var(--red);border-color:transparent}
.btn-danger:hover{background:var(--red-bg)}

/* ── FORMS ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid.cols3{grid-template-columns:1fr 1fr 1fr}
.fg{display:flex;flex-direction:column;gap:5px}
.fg.full{grid-column:1/-1}
.fg label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.fg input,.fg select{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--radius);padding:8px 11px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border .12s;width:100%}
.fg input:focus,.fg select:focus{border-color:var(--border3);background:var(--bg2)}
.fg input::placeholder{color:var(--text3)}
.fg input[readonly]{color:var(--text3);cursor:default}

/* ── SEARCH DROPDOWN ── */
.sw{position:relative}
.drop{position:absolute;top:calc(100% + 3px);left:0;right:0;background:var(--bg2);border:0.5px solid var(--border2);border-radius:var(--radius);z-index:100;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.07)}
.di{padding:9px 12px;cursor:pointer;font-size:13px;display:flex;justify-content:space-between;align-items:center;border-bottom:0.5px solid var(--border);color:var(--text)}
.di:last-child{border-bottom:none}
.di:hover{background:var(--bg3)}
.di-addr{font-size:11px;color:var(--text3)}

/* ── TOTALS ── */
.totals{display:flex;flex-direction:column;align-items:flex-end;padding-top:14px;gap:0}
.tbox{min-width:210px}
.tl{display:flex;justify-content:space-between;font-size:13px;color:var(--text2);margin-bottom:7px;gap:24px}
.tl.iva{color:var(--amber)}
.tl.final{color:var(--text);font-weight:600;font-size:14px;border-top:0.5px solid var(--border);padding-top:9px;margin-top:2px}
.flex-end{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;flex-shrink:0}

/* ── EMPLEADO DETALLE ── */
.emp-header{display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-lg);margin-bottom:12px}
.emp-avatar{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0}
.emp-info{flex:1}
.emp-name{font-size:16px;font-weight:500;color:var(--text);margin-bottom:3px}
.emp-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text3)}
.emp-sueldo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.sueldo-card{background:var(--bg3);border-radius:var(--radius);padding:14px 16px}
.sueldo-label{font-size:11px;color:var(--text3);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.sueldo-value{font-size:18px;font-weight:600;color:var(--text)}
.sueldo-sub{font-size:11px;color:var(--text3);margin-top:3px}

/* ── SEARCH INPUT ── */
.search-input{background:var(--bg3);max-width:100%;box-sizing:border-box;border:0.5px solid var(--border);border-radius:var(--radius);padding:8px 11px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border .12s}
.search-input:focus{border-color:var(--border3);background:var(--bg2)}
.search-input::placeholder{color:var(--text3)}

/* ── DIVIDER ── */
.divider{height:0.5px;background:var(--border);margin:16px 0}

/* ── ACCESO DENEGADO ── */
.no-access{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:12px;color:var(--text3)}
.no-access i{font-size:40px}
.no-access p{font-size:14px}

/* ── RESPONSIVE MOBILE ── */
@media (max-width: 900px) {
  /* ── TABLAS RESPONSIVE: ocultar tabla desktop, mostrar versión mobile ── */
  .hide-mobile-block{display:none!important}
  .show-mobile-only{display:block!important}

  /* ── SIDEBAR ── */
  .sidebar{display:flex;position:fixed;top:0;left:-280px;bottom:0;z-index:300;background:var(--bg2);flex-direction:column;overflow-y:auto;border-right:0.5px solid var(--border);width:260px;height:100vh;transition:left .25s ease}
  .sidebar.open{left:0;box-shadow:4px 0 20px rgba(0,0,0,.15)}
  .hamburger{display:flex!important}
  .hamburger.icon-btn{width:44px;height:44px;border:none}
  .main{min-width:0;flex:1}
  body{overflow-y:auto;overflow-x:auto;height:auto}
  .app{overflow:visible;height:auto}
  .content{overflow-y:visible;overflow-x:auto;height:auto;-webkit-overflow-scrolling:touch}

  /* ── TOPBAR ── */
  .topbar{padding:0 14px}
  .topbar-date{display:none}
  .topbar-dolar #dash-dolar-sub{display:none}
  .topbar-right{gap:4px}

  /* ── CONTENIDO ── */
  .content{padding:10px;overflow-x:auto}
  .page{overflow-x:visible}
  .card{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px}

  /* ── GRIDS ── */
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .row2{grid-template-columns:1fr!important}
  .form-grid,.form-grid.cols3{grid-template-columns:1fr!important}
  .fg.full{grid-column:1!important}

  /* ── FLEX HEADERS (card-head, filtros) ── */
  .card-head{flex-wrap:wrap;gap:8px}
  .card-head > div{flex-wrap:wrap;gap:6px}

  /* Agenda móvil */
  #agenda-calendar-card{padding:10px!important}
  .agenda-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr);align-items:stretch!important}
  .agenda-nav{width:100%;display:grid!important;grid-template-columns:36px minmax(0,1fr) 36px auto;gap:5px!important}
  .agenda-nav #ag-titulo{min-width:0!important;font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .agenda-actions{width:100%;flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:3px;-webkit-overflow-scrolling:touch}
  .agenda-actions>*{flex-shrink:0}
  .agenda-legend{display:none!important}
  .agenda-scroll-hint{display:none!important}
  #ag-calendario{overflow:visible;padding-bottom:0}
  #ag-calendario[data-view="mes"]>div,
  #ag-calendario[data-view="semana"]>div{min-width:0;width:100%}
  .ag-mes-movil{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
  .ag-mes-dia-nombre{background:var(--bg3);padding:7px 0;text-align:center;color:var(--text3);font-size:10px;font-weight:700}
  .ag-mes-celda{position:relative;display:flex;min-width:0;min-height:54px;padding:6px 2px;align-items:center;flex-direction:column;gap:4px;border:0;background:var(--bg2);color:var(--text);font:inherit}
  button.ag-mes-celda{cursor:pointer}
  .ag-mes-celda.es-finde{background:var(--bg)}
  .ag-mes-celda.es-hoy{background:var(--blue-bg);color:var(--blue);font-weight:700;box-shadow:inset 0 0 0 1px var(--blue)}
  .ag-mes-vacia{background:var(--bg)}
  .ag-mes-numero{font-size:12px;line-height:1}
  .ag-mes-puntos{display:flex;max-width:100%;gap:2px}
  .ag-mes-puntos i{display:block;width:5px;height:5px;border-radius:50%}
  .ag-mes-cantidad{font-size:9px;color:var(--text3);line-height:1}
  .ag-mes-lista-movil{display:flex;flex-direction:column;gap:7px;margin-top:10px}
  .ag-mes-lista-head{display:flex;align-items:center;justify-content:space-between;color:var(--text3);font-size:11px;text-transform:uppercase;letter-spacing:.45px}
  .ag-mes-lista-head small{text-transform:none;letter-spacing:0;color:var(--text3);font-size:11px}
  .ag-mes-lista-vacia{padding:14px;border:1px dashed var(--border2);border-radius:var(--radius);color:var(--text3);font-size:12px;text-align:center}
  .ag-mes-lista-item{display:grid;grid-template-columns:74px minmax(0,1fr);gap:9px;width:100%;padding:9px 10px;border:0;border-left:3px solid;border-radius:var(--radius);background:var(--bg3);color:var(--text);font:inherit;text-align:left;cursor:pointer}
  .ag-mes-lista-fecha{display:flex;flex-direction:column;gap:2px;font-size:11px;font-weight:700;text-transform:capitalize}
  .ag-mes-lista-fecha small,.ag-mes-lista-info small{font-size:10px;color:var(--text3);font-weight:400;text-transform:none}
  .ag-mes-lista-info{min-width:0;display:flex;flex-direction:column;gap:2px}
  .ag-mes-lista-info strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}
  .ag-mes-lista-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ag-semana-movil{display:flex;min-width:0!important;flex-direction:column;gap:8px}
  .ag-semana-dia{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2)}
  .ag-semana-dia.es-hoy{border-color:var(--blue)}
  .ag-semana-fecha{display:flex;width:100%;padding:9px 10px;align-items:center;justify-content:space-between;border:0;background:var(--bg3);color:var(--text);font:inherit;text-align:left;cursor:pointer}
  .ag-semana-dia.es-hoy .ag-semana-fecha{background:var(--blue-bg);color:var(--blue)}
  .ag-semana-fecha strong{text-transform:capitalize;font-size:13px}
  .ag-semana-fecha span{color:var(--text3);font-size:10px}
  .ag-semana-eventos{display:flex;flex-direction:column;gap:5px;padding:7px}
  .ag-semana-evento{display:grid;grid-template-columns:52px minmax(0,1fr);gap:7px;width:100%;padding:7px 8px;border:0;border-left:3px solid;border-radius:4px;color:var(--text);font:inherit;text-align:left;cursor:pointer}
  .ag-semana-evento span{font-size:10px}
  .ag-semana-evento strong{min-width:0;overflow:hidden;font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}

  /* ── TABLAS ── */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;width:100%}
  table{white-space:nowrap;font-size:12px;min-width:auto}
  th{padding:6px 8px;font-size:11px}
  td{padding:6px 8px}

  /* ── BOTONES ── */
  .btn{font-size:12px;padding:6px 10px}
  .btn-sm{font-size:11px;padding:5px 8px}

  /* ── MÉTRICAS ── */
  .m-value{font-size:18px}
  .m-label{font-size:11px}

  /* ── INPUTS DE BÚSQUEDA ── */
  .search-input{font-size:12px}
  input[type=text],input[type=email],input[type=number],input[type=date],input[type=month],input[type=time],input[type=password],select,textarea{font-size:16px!important} /* Evita zoom en iOS */

  /* ── MODALES ── */
  .modal{width:95vw!important;max-width:95vw!important;padding:20px 16px}
  .modal-overlay{align-items:flex-end!important}
  .modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0!important;max-height:90vh;overflow-y:auto}

  /* ── ASISTENTE ── */
  .asist-rubro-btn{padding:18px 12px}
  .asist-rubro-ico{width:52px;height:52px;font-size:22px}
  .asist-rubro-label{font-size:14px}
  .asist-opcion-btn{padding:14px 16px}
  .asist-opcion-titulo{font-size:14px}
  #asist-preguntas,#asist-resumen{max-width:100%}

  /* ── EQUIPOS (cards) ── */
  #eq-cards{grid-template-columns:1fr!important}

  /* ── MÓDULO OT ── */
  #ot-list-view .card-head{flex-direction:column;align-items:flex-start}

  /* ── MISC ── */
  .page-title{font-size:13px}
  .badge{font-size:10px;padding:2px 6px}
  .toggle-knob{width:32px;height:18px}
  .toggle-sw input:checked + .toggle-knob::after{transform:translateX(14px)}
  .toggle-knob::after{width:12px;height:12px}
}

@media (max-width: 480px) {
  /* Extra pequeño — celular */
  .metrics{grid-template-columns:1fr 1fr!important}
  .m-value{font-size:16px}
  .content{padding:8px}
  .card{padding:10px}
  .topbar{height:48px}
  .asist-rubro-btn{padding:14px 8px}
  .asist-rubro-ico{width:44px;height:44px;font-size:18px}
  /* Modales full screen en celular */
  .modal{width:100vw!important;border-radius:var(--radius-xl) var(--radius-xl) 0 0!important}
}

@media (min-width:1101px){
  .hamburger{display:none!important}
  .sidebar{display:flex!important}
  .sidebar-pin{display:flex}
  .sidebar .s-logo{padding-top:48px}
  .sidebar.desktop-autohide{width:60px;margin-right:0;box-shadow:none}
  .sidebar.desktop-autohide:hover,
  .sidebar.desktop-autohide:focus-within{width:204px;margin-right:-144px;box-shadow:8px 0 24px rgba(0,0,0,.24)}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .sidebar-pin{right:14px}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-logo{padding:50px 8px 14px;text-align:center}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-brand{font-size:0}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-brand::before{content:'SV';font-size:13px;font-weight:800;color:var(--text)}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-sub{display:none}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-section{height:9px;margin:7px 10px 3px;padding:0;border-bottom:1px solid var(--border);font-size:0}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-nav{padding-left:10px;padding-right:10px;overflow-x:hidden}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .nav-item{width:39px;padding-left:10px;padding-right:10px;gap:14px}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-foot{padding-left:10px;padding-right:10px;overflow:hidden}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-user{width:39px;padding-left:4px;padding-right:4px;overflow:hidden}
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-user>div:not(.s-avatar),
  .sidebar.desktop-autohide:not(:hover):not(:focus-within) .s-logout{display:none}
  .overlay-mobile{display:none!important}
  .hide-mobile-block{display:table!important}
  .show-mobile-only{display:none!important}
}

/* Tablet: conservar las tablas amplias, pero liberar el ancho que normalmente
   ocupa el menú lateral, sin depender de la orientación del dispositivo. */
@media (min-width:901px) and (max-width:1100px){
  .sidebar{
    display:flex;
    position:fixed;
    top:0;
    left:-280px;
    bottom:0;
    z-index:300;
    width:260px;
    height:100vh;
    overflow-y:auto;
    flex-direction:column;
    background:var(--bg2);
    border-right:0.5px solid var(--border);
    transition:left .25s ease;
  }
  .sidebar.open{left:0;box-shadow:4px 0 20px rgba(0,0,0,.15)}
  .hamburger{display:flex!important}
  .hamburger.icon-btn{width:44px;height:44px;border:none}
  .main{min-width:0;flex:1}
  .hide-mobile-block{display:table!important}
  .show-mobile-only{display:none!important}
}
/* ── CONFIG TABS ── */
.cfg-tab{padding:7px 14px;border-radius:var(--radius);border:none;background:transparent;color:var(--text2);font-size:13px;font-family:inherit;cursor:pointer;transition:all .12s}
.cfg-tab:hover{background:var(--bg2);color:var(--text)}
.cfg-tab.active{background:var(--bg2);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.cfg-tabs-main{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:16px;background:var(--bg3);padding:5px;border-radius:var(--radius-lg);max-width:100%;overflow:visible}
.cfg-tabs-main .cfg-tab{white-space:nowrap;flex:0 0 auto}

/* ── FACTURACIONES TABS ── */
.fact-tab{padding:7px 14px;border-radius:var(--radius);border:none;background:transparent;color:var(--text2);font-size:13px;font-family:inherit;cursor:pointer;transition:all .12s}
.fact-tab:hover{background:var(--bg2);color:var(--text)}
.fact-tab.active{background:var(--bg2);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.08)}

/* ── NOTIF ── */
.notif{position:fixed;bottom:130px;right:16px;background:var(--text);color:var(--bg2);padding:11px 16px;border-radius:var(--radius);font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:9999;display:flex;align-items:center;gap:8px}
.notif.show{opacity:1}

/* ── AVISO MODO DEMO ── */
.security-demo-banner{background:var(--amber-bg);color:var(--amber);border-bottom:0.5px solid var(--border2);font-size:12px;padding:7px 14px;text-align:center}
.security-demo-banner strong{font-weight:600}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:500;display:none;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
/* v20.362: modales sensibles no dejan leer/interactuar contenido administrativo detrás */
.modal-overlay.secure-modal.open{background:rgba(8,10,16,.88)!important;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:12000!important}
.modal-overlay.secure-modal .modal{box-shadow:0 18px 70px rgba(0,0,0,.45)}
body.modal-secure-open{overflow:hidden!important}
.sv-modal-stack-open .content{overflow:hidden!important;overscroll-behavior:none!important}
.sv-modal-underlay{pointer-events:none!important;overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important}
.sv-modal-underlay .modal{overflow:hidden!important}
.sv-system-dialog-overlay{z-index:1000002!important;background:rgba(3,6,14,.78)!important;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:18px}
.modal.sv-system-dialog{width:min(500px,96vw);max-width:500px;padding:0;overflow:hidden;border:1px solid rgba(126,156,220,.24);border-radius:20px;background:linear-gradient(155deg,var(--bg2),var(--bg3));box-shadow:0 30px 90px rgba(0,0,0,.68)}
.sv-system-dialog-head{display:flex;align-items:center;gap:13px;padding:21px 23px 17px;border-bottom:1px solid var(--border);background:radial-gradient(circle at 8% 0,rgba(59,130,246,.14),transparent 42%)}
.sv-system-dialog-icon{width:42px;height:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:center;border-radius:13px;border:1px solid rgba(96,165,250,.25);background:rgba(59,130,246,.12);color:var(--blue)}
.sv-system-dialog-icon.danger{border-color:rgba(248,113,113,.28);background:rgba(239,68,68,.12);color:var(--red)}
.sv-system-dialog-icon i{font-size:21px}
.sv-system-dialog-titles{min-width:0;display:flex;flex-direction:column;gap:3px}.sv-system-dialog-titles strong{font-size:17px;color:var(--text)}.sv-system-dialog-titles span{font-size:11px;color:var(--text3)}
.sv-system-dialog-message{padding:22px 23px 8px;color:var(--text2);font-size:13px;line-height:1.55;white-space:pre-line}
.sv-system-dialog-input{display:block;width:calc(100% - 46px);box-sizing:border-box;margin:14px 23px 2px;padding:11px 12px;border:1px solid var(--border2);border-radius:10px;background:var(--bg3);color:var(--text);font:inherit;outline:none;resize:vertical}
.sv-system-dialog-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.sv-system-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:20px 23px 22px}
@media(max-width:768px){.sv-system-dialog-overlay{align-items:flex-end!important;padding:10px}.modal.sv-system-dialog{width:100%;max-width:none;border-radius:20px 20px 14px 14px}.sv-system-dialog-actions .btn{min-height:44px;flex:1}}
.modal{background:var(--bg2);border:0.5px solid var(--border2);border-radius:var(--radius-xl);padding:28px 28px 24px;width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.modal-title{font-size:15px;font-weight:500;color:var(--text)}

/* Editor de comunicados: modal oscuro y desacoplado del historial */
.comunicado-editor-overlay{z-index:12150;background:rgba(2,5,12,.84);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);padding:18px}
.modal.comunicado-editor-modal{width:min(720px,96vw);max-width:720px;padding:0!important;overflow:hidden;background:linear-gradient(155deg,#181d2a 0%,#10141e 58%,#0b0f17 100%);border:1px solid rgba(126,156,220,.24);border-radius:22px;box-shadow:0 32px 100px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.025)}
.comunicado-editor-head{display:flex;align-items:flex-start;gap:14px;padding:24px 26px 20px;border-bottom:1px solid rgba(255,255,255,.07);background:radial-gradient(circle at 8% 0%,rgba(59,130,246,.14),transparent 38%)}
.comunicado-editor-icon{width:50px;height:50px;flex:0 0 50px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,rgba(59,130,246,.24),rgba(59,130,246,.08));border:1px solid rgba(96,165,250,.28);color:#78a9ff;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.comunicado-editor-icon i{font-size:24px}
.comunicado-editor-kicker{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#78a9ff;margin-bottom:5px}
.comunicado-editor-title{font-size:20px;line-height:1.2;font-weight:750;color:#f5f7fb}
.comunicado-editor-subtitle{font-size:12px;line-height:1.45;color:#8790a4;margin-top:6px;max-width:520px}
.comunicado-editor-close{flex:0 0 auto;color:#7f899e;background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.08)}
.comunicado-editor-close:hover{color:#f2f5fb;background:rgba(255,255,255,.08)}
.comunicado-editor-body{padding:22px 26px 24px}
.comunicado-editor-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:14px}
.comunicado-editor-modal .fg label{color:#768097;letter-spacing:.75px;font-size:10px;font-weight:650}
.comunicado-editor-modal input,.comunicado-editor-modal select,.comunicado-editor-modal textarea{width:100%;background:#090d15!important;color:#eef2f9!important;border:1px solid rgba(129,148,188,.2)!important;border-radius:11px!important;box-shadow:inset 0 1px 4px rgba(0,0,0,.22);font-family:inherit}
.comunicado-editor-modal input,.comunicado-editor-modal select{height:45px;padding:0 13px}
.comunicado-editor-modal textarea{min-height:158px;padding:13px 14px;line-height:1.55;resize:vertical}
.comunicado-editor-modal input::placeholder,.comunicado-editor-modal textarea::placeholder{color:#4e576a}
.comunicado-editor-modal input:focus,.comunicado-editor-modal select:focus,.comunicado-editor-modal textarea:focus{outline:none;border-color:rgba(96,165,250,.62)!important;box-shadow:0 0 0 3px rgba(59,130,246,.1),inset 0 1px 4px rgba(0,0,0,.22)}
.comunicado-editor-message{margin-top:15px}
.comunicado-editor-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;color:#667086;font-size:10px}
.comunicado-editor-hint span:first-child{display:flex;align-items:center;gap:5px}
.comunicado-editor-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:16px 26px 20px;border-top:1px solid rgba(255,255,255,.07);background:rgba(3,6,12,.25)}
.comunicado-editor-footer .btn{min-height:40px;padding-left:17px;padding-right:17px}
.comunicados-panel{padding-bottom:14px}
.comunicados-panel .card-head{margin-bottom:10px}
.comunicados-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;margin-bottom:9px;border-radius:10px;background:var(--bg3);border:.5px solid var(--border)}
.comunicados-tab{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--text3);border-radius:8px;padding:6px 10px;font:inherit;font-size:12px;cursor:pointer}
.comunicados-tab:hover{color:var(--text);background:rgba(255,255,255,.035)}
.comunicados-tab.active{color:var(--text);background:var(--bg2);box-shadow:0 1px 4px rgba(0,0,0,.18)}
.comunicados-tab span{min-width:19px;padding:1px 5px;border-radius:10px;background:var(--bg4);color:var(--text2);font-size:10px;text-align:center}
.comunicado-card-compacto{padding:10px 12px;background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius)}
.comunicado-card-cuerpo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.comunicado-card-mensaje{font-size:12px;color:var(--text2);margin-top:4px;line-height:1.4;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.comunicado-card-meta{font-size:10px;color:var(--text3);margin-top:4px}
.comunicado-card-acciones{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap;margin-top:6px}
.comunicado-card-lecturas{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
@media(max-width:640px){
  .comunicados-tabs{display:flex;width:100%}
  .comunicados-tab{flex:1;justify-content:center}
  .comunicado-card-cuerpo{flex-direction:column}
  .comunicado-card-resumen{width:100%;display:flex;align-items:center;justify-content:space-between}
}
@media(max-width:640px){
  .comunicado-editor-overlay{align-items:center!important;padding:10px}
  .modal.comunicado-editor-modal{width:100%!important;max-width:100%!important;max-height:94vh;border-radius:18px!important}
  .comunicado-editor-head{padding:19px 17px 16px;gap:11px}
  .comunicado-editor-icon{width:42px;height:42px;flex-basis:42px;border-radius:13px}
  .comunicado-editor-title{font-size:18px}
  .comunicado-editor-body{padding:18px 17px}
  .comunicado-editor-grid{grid-template-columns:1fr}
  .comunicado-editor-modal textarea{min-height:135px}
  .comunicado-editor-footer{padding:14px 17px 17px}
}

/* PANEL USUARIO */
.up-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;color:var(--text2);font-size:13px;transition:background .12s}
.up-item:hover{background:var(--bg3);color:var(--text)}

/* ── TIMELINE PRESUPUESTO ── */
.timeline{display:flex;align-items:flex-start;gap:0;margin:20px 0;overflow-x:auto;padding-bottom:8px}
.tl-step{display:flex;flex-direction:column;align-items:center;flex:1;min-width:80px;position:relative}
.tl-step:not(:last-child)::after{content:'';position:absolute;top:16px;left:calc(50% + 16px);right:calc(-50% + 16px);height:2px;background:var(--border2)}
.tl-step.done:not(:last-child)::after{background:var(--green)}
.tl-step.active:not(:last-child)::after{background:var(--border2)}
.tl-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;border:2px solid var(--border2);background:var(--bg2);color:var(--text3);z-index:1;position:relative}
.tl-step.done .tl-dot{background:var(--green);border-color:var(--green);color:#fff}
.tl-step.active .tl-dot{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px var(--blue-bg)}
.tl-step.rejected .tl-dot{background:var(--red);border-color:var(--red);color:#fff}
.tl-step.pending .tl-dot{background:var(--amber);border-color:var(--amber);color:#fff}
.tl-label{font-size:10px;color:var(--text3);text-align:center;margin-top:6px;line-height:1.3}
.tl-step.done .tl-label{color:var(--green);font-weight:500}
.tl-step.active .tl-label{color:var(--blue);font-weight:600}
.tl-step.rejected .tl-label{color:var(--red);font-weight:500}
.tl-step.pending .tl-label{color:var(--amber);font-weight:500}
.tl-date{font-size:9px;color:var(--text3);margin-top:2px}

/* ── ESTADOS EXTENDIDOS ── */
.badge-borrador{background:#f1f0ed;color:#6a6a66;border:0.5px solid #d3d1c7}
.badge-revision{background:var(--amber-bg);color:var(--amber)}
.badge-aprobado-int{background:var(--blue-bg);color:var(--blue)}
.badge-enviado{background:#e8f4fd;color:#0369a1}
.badge-visto{background:#fef3c7;color:#92400e}
.badge-aceptado{background:var(--green-bg);color:var(--green)}
.badge-rechazado{background:var(--red-bg);color:var(--red)}
.badge-vencido{background:#f3f4f6;color:#6b7280}
.badge-anulado { background:var(--bg2); color:var(--text3); border:1px solid var(--border); }
.badge-convertido{background:#ede9fe;color:#5b21b6}

/* ── ALERTA APROBACIÓN ── */
.aprobacion-alert{background:var(--amber-bg);border:0.5px solid var(--amber);border-radius:var(--radius);padding:10px 14px;font-size:13px;color:var(--amber);display:flex;align-items:center;gap:10px;margin-bottom:14px}

/* ── CARD ACCIÓN ── */
.accion-card{background:var(--bg3);border-radius:var(--radius);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.accion-card:last-child{margin-bottom:0}
@media (min-width:769px){
  .ppto-acciones-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
  .ppto-acciones-grid .accion-card{margin-bottom:0;min-height:44px}
}

/* ── ORDEN DE TRABAJO ── */
.ot-estado{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:0.5px solid var(--border)}
.ot-estado:last-child{border-bottom:none}
.ot-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border2);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all .15s}
.ot-check.done{background:var(--green);border-color:var(--green);color:#fff}
.ot-check.pending{background:var(--bg2)}
.checklist-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:0.5px solid var(--border);cursor:pointer}
.checklist-item:last-child{border-bottom:none}
.checklist-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--green);cursor:pointer;flex-shrink:0}
.checklist-item label{font-size:13px;color:var(--text2);cursor:pointer;flex:1}
.checklist-item.checked label{text-decoration:line-through;color:var(--text3)}
.progress-bar{height:6px;background:var(--bg4);border-radius:3px;overflow:hidden;margin:8px 0}
.progress-fill{height:100%;background:var(--green);border-radius:3px;transition:width .3s}
.venta-estado-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}

/* ── ESTADOS DE VENTA ── */
.venta-timeline{display:flex;gap:0;overflow-x:auto;padding:4px 0 12px;margin-bottom:4px}
.vt-step{display:flex;flex-direction:column;align-items:center;flex:1;min-width:72px;position:relative}
.vt-step:not(:last-child)::after{content:'';position:absolute;top:14px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:var(--border2)}
.vt-step.done:not(:last-child)::after{background:var(--green)}
.vt-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;border:2px solid var(--border2);background:var(--bg2);color:var(--text3);z-index:1;position:relative}
.vt-step.done .vt-dot{background:var(--green);border-color:var(--green);color:#fff}
.vt-step.active .vt-dot{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 3px var(--blue-bg)}
.vt-step.warn .vt-dot{background:var(--amber);border-color:var(--amber);color:#fff}
.vt-label{font-size:10px;color:var(--text3);text-align:center;margin-top:5px;line-height:1.3}
.vt-step.done .vt-label{color:var(--green);font-weight:500}
.vt-step.active .vt-label{color:var(--blue);font-weight:600}
.vt-step.warn .vt-label{color:var(--amber);font-weight:500}

/* ── HISTORIAL CLIENTE ── */
.hist-tab{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap}
.hist-tab-btn{padding:6px 14px;border-radius:var(--radius);border:0.5px solid var(--border2);background:transparent;color:var(--text2);font-size:12px;font-family:inherit;cursor:pointer;transition:all .12s}
.hist-tab-btn.active{background:var(--text);color:var(--bg2);border-color:var(--text)}
.hist-sec{display:none}
.hist-sec.active{display:block}
.cli-card-head{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-lg);margin-bottom:12px}
.cli-avatar{width:46px;height:46px;border-radius:50%;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;flex-shrink:0}

/* ── STOCK INLINE EN NUEVA VENTA ── */
.stock-indicator{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:2px 6px;border-radius:10px;white-space:nowrap;margin-top:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){
  .stock-indicator{font-size:9px;padding:2px 4px;gap:2px}
  .stock-indicator i{display:none}
  /* ── TABLA DE NUEVA VENTA EN MOBILE ── */
  /* Reducir padding de filas en mobile */
  #cli-tbody tr td { padding: 8px 6px !important; }
  #cli-tbody tr { line-height: 1.3; }
  /* Ocultar columnas secundarias en pantalla chica para que no se apriete */
  #page-venta #det-body td:nth-child(4),   /* Cant */
  #page-venta thead th:nth-child(4) { min-width:48px }
  #page-venta #det-body td:nth-child(5),   /* Disponible — ocultar en mobile */
  #page-venta thead th:nth-child(5) { display:none }
  #page-venta #det-body td:nth-child(6),   /* P.unit */
  #page-venta thead th:nth-child(6) { min-width:70px }
  #page-venta #det-body td:nth-child(7),   /* %Desc */
  #page-venta thead th:nth-child(7) { min-width:55px }
  #page-venta #det-body td:nth-child(8),   /* Subtotal */
  #page-venta thead th:nth-child(8) { min-width:70px }
  /* Botón búsqueda avanzada más compacto en mobile */
  .btn-busq-avanz { width:22px!important; height:22px!important }
  /* Input de cantidad más compacto */
  #page-venta #det-body .qty { width:40px!important }
  /* Input de precio más compacto */
  #page-venta #det-body .price { width:65px!important }
  /* Input de descuento más compacto */
  #page-venta #det-body .disc { width:36px!important }
  /* Totales en columna en mobile */
  #page-venta .totals { flex-direction:column!important; align-items:flex-start!important }
  #page-venta .tbox { width:100%!important; max-width:100%!important }
  /* Botones de confirmar en ancho completo */
  #page-venta .flex-end { flex-direction:column!important; gap:8px!important }
  #page-venta .flex-end .btn { width:100%!important; justify-content:center!important }
}
.stock-ok{background:var(--green-bg);color:var(--green)}
.stock-warn{background:var(--amber-bg);color:var(--amber)}
.stock-error{background:var(--red-bg);color:var(--red)}
.stock-cell{text-align:right;white-space:nowrap}
.prod-search-drop{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--bg2);border:0.5px solid var(--border2);border-radius:var(--radius);z-index:50;box-shadow:0 4px 16px rgba(0,0,0,.08);overflow-y:auto;max-height:260px}
.prod-drop-item{padding:8px 12px;cursor:pointer;border-bottom:0.5px solid var(--border);font-size:13px;display:flex;justify-content:space-between;align-items:center}
.prod-drop-item:last-child{border-bottom:none}
.prod-drop-item:hover{background:var(--bg3)}
.prod-drop-thumb{width:38px;height:38px;flex:0 0 38px;border-radius:9px}
.prod-drop-stock{font-size:11px;color:var(--text3)}
.prod-drop-stock.warn{color:var(--amber)}
.prod-drop-stock.error{color:var(--red)}
.product-hero{display:flex;align-items:center;gap:22px;padding:22px 24px;margin-bottom:14px;border:1px solid rgba(148,163,184,.18);border-radius:var(--radius-xl);background:linear-gradient(135deg,rgba(30,41,59,.68),rgba(15,23,42,.42));box-shadow:0 14px 42px rgba(0,0,0,.18)}
.product-hero-img{width:116px;height:116px;border-radius:22px;background:linear-gradient(135deg,rgba(245,158,11,.22),rgba(59,130,246,.10));border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;box-shadow:0 16px 36px rgba(0,0,0,.26)}
.product-hero-img i{font-size:46px;color:var(--amber)}
.product-hero-img img{width:100%;height:100%;object-fit:cover}
.product-hero-info{flex:1;min-width:0}
.product-hero-kicker{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.12em;margin-bottom:6px}
.product-hero-name{font-size:28px;line-height:1.08;font-weight:800;color:var(--text);letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.product-hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;color:var(--text2);font-size:13px}
.product-hero-meta>span{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08)}
.product-hero-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--blue)!important}
.product-hero-edit{align-self:flex-start;flex-shrink:0}
.product-hero-actions{align-self:stretch;display:flex;flex-direction:column;align-items:stretch;gap:8px;flex-shrink:0}
.product-hero-delete{align-self:flex-end;margin-top:auto;color:var(--text3);border-color:var(--border);min-width:38px}
.product-hero-delete:hover{color:var(--red);border-color:var(--red);background:var(--red-bg)}
@media(max-width:760px){.product-hero{align-items:flex-start;gap:14px;padding:16px}.product-hero-img{width:78px;height:78px;border-radius:16px}.product-hero-img i{font-size:34px}.product-hero-name{font-size:20px}.product-hero-actions{margin-left:auto}.product-hero-edit{margin-left:0}}
.cfg-comision-input{color:var(--text)!important;caret-color:var(--text)}
.cfg-comision-input::placeholder{color:var(--text3);opacity:1}
.prod-row-img{width:64px;height:64px;border-radius:14px;object-fit:cover;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(30,41,59,.92),rgba(15,23,42,.76));border:1px solid rgba(255,255,255,.10);box-shadow:0 10px 24px rgba(0,0,0,.18);flex-shrink:0;overflow:hidden}
.prod-row-img-placeholder i{font-size:25px;color:var(--text3)}
#prod-tbl td:first-child{padding-top:10px!important;padding-bottom:10px!important}
@media(max-width:760px){.prod-row-img{width:54px;height:54px;border-radius:12px}.prod-row-img-placeholder i{font-size:22px}}
.btn-ver-compra-prod{color:var(--amber)!important;border-color:var(--amber)!important;background:rgba(251,191,36,.05)!important;white-space:nowrap;gap:6px}
.btn-ver-compra-prod:hover{background:rgba(251,191,36,.13)!important;box-shadow:0 0 0 2px rgba(251,191,36,.10)}
.item-prod-cell{display:flex;align-items:center;gap:10px;min-width:0}
.item-prod-img{width:42px;height:42px;border-radius:10px;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;background:linear-gradient(135deg,rgba(30,41,59,.92),rgba(15,23,42,.76));border:1px solid rgba(255,255,255,.10);box-shadow:0 8px 18px rgba(0,0,0,.16);overflow:hidden}
.item-prod-img i{font-size:18px;color:var(--text3)}
.item-prod-img-edit{width:46px;height:46px;border-radius:11px}
.item-prod-mini-line{display:flex;align-items:center;gap:8px;min-width:0}
.item-prod-mini-line .item-prod-img{width:34px;height:34px;flex-basis:34px;border-radius:9px}
@media(max-width:760px){.item-prod-img{width:36px;height:36px;flex-basis:36px}.item-prod-img-edit{width:40px;height:40px}.item-prod-mini-line .item-prod-img{width:30px;height:30px;flex-basis:30px}}
.venta-resumen-stock{background:var(--bg3);border-radius:var(--radius);padding:12px 14px;margin-top:12px;display:none}

/* ── FAB (Botón flotante) ── */
/* FAB: solo visible en mobile */
.fab-container{position:fixed!important;bottom:82px!important;right:16px!important;left:auto!important;z-index:9998;display:none;flex-direction:column;align-items:flex-end;gap:10px}
/* En desktop: ocultar FAB */
@media(min-width:1025px){.fab-container{display:none!important}}
/* En mobile: mostrar FAB */
@media(max-width:1024px){.fab-container{bottom:72px!important;right:16px!important;left:auto!important}}
@media(min-width:769px){.notif{bottom:24px!important;right:24px!important}}
.fab-main{width:48px;height:48px;border-radius:50%;background:var(--text);color:var(--bg2);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.3);transition:transform .2s;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.fab-main.open{transform:rotate(45deg)}
.fab-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s,transform .2s}
.fab-actions.open{opacity:1;pointer-events:auto;transform:translateY(0)}
.fab-item{display:flex;align-items:center;gap:10px;cursor:pointer;background:none;border:none;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.fab-label{background:var(--text);color:var(--bg2);font-size:12px;font-weight:500;padding:5px 11px;border-radius:20px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.fab-btn{width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.2);flex-shrink:0}

/* ── INPUTS EN TABLAS (estilo spreadsheet) ── */
.dt input, table.dt input,
#pp-tbody input, #det-body input, #ot-tabla input {
  border: none;
  background: transparent;
  padding: 4px 6px;
  font-size: 13px;
  font-family: inherit;
  color: var(--text);
  width: 100%;
  border-radius: 4px;
  transition: background .15s;
  -webkit-appearance: none;
}
.dt input:hover, #pp-tbody input:hover, #det-body input:hover {
  background: var(--bg3);
}
.dt input:focus, #pp-tbody input:focus, #det-body input:focus {
  background: var(--bg3);
  outline: 1.5px solid var(--border2);
  outline-offset: -1px;
}
.dt input[readonly], #pp-tbody input[readonly], #det-body input[readonly] {
  color: var(--text2);
  cursor: default;
}
.dt input[type=number], #pp-tbody input[type=number], #det-body input[type=number] {
  text-align: right;
}

/* Tabla de presupuesto / venta — look spreadsheet */
.tbl-sheet {
  width: 100%;
  border-collapse: collapse;
}
.tbl-sheet th {
  font-size: 11px;
  font-weight: 500;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .4px;
  padding: 8px 10px;
  border-bottom: 1.5px solid var(--border2);
  text-align: left;
  white-space: nowrap;
}
.tbl-sheet th.tr { text-align: right; }
.tbl-sheet td {
  padding: 2px 4px;
  border-bottom: 0.5px solid var(--border);
  vertical-align: middle;
}
.tbl-sheet tr:last-child td { border-bottom: none; }
.tbl-sheet tr:hover td { background: var(--bg3); }
.tbl-sheet .td-num { width: 70px; }
.tbl-sheet .td-price { width: 100px; }
.tbl-sheet .td-sub { width: 90px; text-align: right; font-weight: 500; color: var(--text); padding-right: 8px; }
.tbl-sheet .td-del { width: 32px; text-align: center; }
.tbl-sheet .td-del button {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text3);
  padding: 4px;
  border-radius: 4px;
  transition: color .12s, background .12s;
}
.tbl-sheet .td-del button:hover { color: var(--red); background: var(--red-bg); }

/* ── SELECTOR DE PRODUCTO ── */
.prod-selector{display:inline-flex;align-items:center;cursor:pointer;padding:4px 8px;border-radius:4px;font-size:13px;font-weight:500;color:var(--text);transition:background .12s;min-width:80px;user-select:none}
.prod-selector:hover{background:var(--bg3)}
.prod-search-drop{position:absolute;top:calc(100% + 2px);left:0;min-width:280px;background:var(--bg2);border:0.5px solid var(--border2);border-radius:var(--radius-lg);z-index:100;box-shadow:0 4px 20px rgba(0,0,0,.12);overflow-y:auto;max-height:260px}
.prod-drop-list{max-height:220px;overflow-y:auto}
.prod-drop-item{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;border-bottom:0.5px solid var(--border)}
.prod-drop-item:last-child{border-bottom:none}
.prod-drop-item:hover{background:var(--bg3)}
/* ── TOGGLE SWITCH ── */
.toggle-sw{position:relative;display:inline-flex;align-items:center;cursor:pointer;vertical-align:middle}
.toggle-sw input{opacity:0;width:0;height:0;position:absolute}
.toggle-knob{display:inline-block;width:36px;height:20px;background:var(--border2);border-radius:20px;transition:background .2s;position:relative;flex-shrink:0}
.toggle-knob::after{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle-sw input:checked + .toggle-knob{background:var(--green)}
.toggle-sw input:checked + .toggle-knob::after{transform:translateX(16px)}
/* ── ASISTENTE DE VENTAS ── */
.asist-rubro-btn{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--radius-xl);padding:24px 16px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.asist-rubro-btn:hover{border-color:var(--green);box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(-2px)}
.asist-rubro-ico{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px}
.asist-rubro-label{font-size:15px;font-weight:600;color:var(--text)}
.asist-rubro-marca{font-size:11px;color:var(--text3)}
.asist-opcion-btn{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:14px;text-align:left;width:100%}
.asist-opcion-btn:hover,.asist-opcion-btn.selected{border-color:var(--green);background:var(--green-bg)}
.asist-opcion-btn.selected .asist-opcion-check{opacity:1}
.asist-opcion-ico{font-size:24px;flex-shrink:0;width:36px;text-align:center}
.asist-opcion-titulo{font-size:15px;font-weight:600;color:var(--text)}
.asist-opcion-desc{font-size:12px;color:var(--text3);margin-top:2px}
.asist-opcion-check{width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;margin-left:auto;opacity:0;flex-shrink:0;font-size:13px}
.asist-prod-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:0.5px solid var(--border)}
.asist-prod-row:last-child{border-bottom:none}
.asist-prod-info{flex:1;min-width:0}
.asist-prod-nombre{font-size:13px;font-weight:500}
.asist-prod-sku{font-size:11px;color:var(--text3);margin-top:1px}
.asist-prod-precio{font-size:13px;font-weight:600;color:var(--green);white-space:nowrap}
.asist-qty{display:flex;align-items:center;gap:6px}
.asist-qty button{width:28px;height:28px;border-radius:50%;border:1px solid var(--border2);background:var(--bg3);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;color:var(--text)}
.asist-qty input{width:40px;text-align:center;border:1px solid var(--border2);border-radius:4px;background:var(--bg3);color:var(--text);font-size:13px;padding:3px}
.eq-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-xl);padding:14px;cursor:pointer;transition:box-shadow .15s,border-color .15s;position:relative}
.eq-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.12);border-color:var(--border2)}
.eq-cat-badge{font-size:10px;padding:2px 8px;border-radius:20px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}
.eq-card-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eq-card-row i{font-size:13px;color:var(--text3);flex-shrink:0}
.eq-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:0.5px solid var(--border)}
.eq-estado-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}
.eq-estado-operativo .eq-estado-dot{background:var(--green)}
.eq-estado-alerta .eq-estado-dot{background:var(--amber)}
.eq-estado-mantenimiento .eq-estado-dot{background:var(--blue)}
.eq-estado-baja .eq-estado-dot{background:var(--red)}
.btn-tipo-rel{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:10px;font-size:13px;cursor:pointer;text-align:left;color:var(--text);transition:all .15s}
.btn-tipo-rel.activo{background:var(--text);color:var(--bg2);border-color:var(--text)}
.check-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg3);border-radius:var(--radius);font-size:13px;cursor:pointer;border:1px solid transparent;transition:border-color .15s,background .15s}
.check-item.checked{background:rgba(34,197,94,.08);border-color:var(--green)}
.check-item input[type=checkbox]{width:18px;height:18px;flex-shrink:0;cursor:pointer;accent-color:var(--green)}
.rel-foto-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius);cursor:pointer}
.ppto-menu-item {
  display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;
  background:none;border:none;cursor:pointer;font-size:13px;color:var(--text);
  text-align:left;transition:background .15s;
}
.ppto-menu-item:hover { background:var(--bg2); }
/* ── MENSAJERÍA INTERNA ── */
#chat-fab{position:fixed;bottom:82px;right:16px;z-index:9996;width:48px;height:48px;border-radius:50%;background:var(--green);border:none;cursor:pointer;color:#fff;display:none;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(61,220,132,.35);transition:transform .2s}
#chat-fab:hover{transform:scale(1.08)}
#chat-badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;border-radius:9px;background:var(--red);color:#fff;font-size:10px;font-weight:700;display:none;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg)}
#chat-modal{display:none;position:fixed;inset:0;z-index:99997;background:rgba(0,0,0,.5);align-items:flex-end;justify-content:flex-end;padding:0 16px}
#chat-modal.open{display:flex}
#chat-box{background:var(--bg2);border-radius:16px 16px 0 0;width:100%;max-width:400px;height:80vh;display:flex;flex-direction:column;box-shadow:0 -8px 32px rgba(0,0,0,.3)}
#chat-header{padding:12px 16px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
#chat-canales{display:flex;gap:6px;padding:10px 16px;border-bottom:0.5px solid var(--border);overflow-x:auto;flex-shrink:0;scrollbar-width:none}
#chat-canales::-webkit-scrollbar{display:none}
.chat-canal-btn{padding:5px 9px;border-radius:20px;border:0.5px solid var(--border2);background:none;color:var(--text2);cursor:pointer;font-size:11px;white-space:nowrap;font-family:inherit;transition:all .15s;position:relative}
.chat-canal-btn.active{background:var(--green);color:#fff;border-color:var(--green)}
.chat-canal-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:8px;background:var(--red);color:#fff;font-size:9px;font-weight:700;display:none;align-items:center;justify-content:center;padding:0 3px}
#chat-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px;position:relative}
#chat-messages.chat-drop-active{outline:2px dashed #25d366;outline-offset:-8px;background:rgba(37,211,102,.08)}
#chat-messages.chat-drop-active:after{content:'Soltá la imagen para enviarla';position:absolute;inset:12px;z-index:5;border-radius:12px;background:rgba(11,20,26,.92);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:600;pointer-events:none}
.chat-msg{max-width:80%;padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.4;position:relative}
.chat-msg-wrap{display:flex;flex-direction:column;position:relative;margin-bottom:2px;touch-action:pan-y}
.chat-msg-wrap .chat-msg{transition:transform .15s ease;will-change:transform}
.chat-msg-wrap.swiping .chat-msg{transition:none}
.chat-msg-wrap:hover .chat-reply-btn{opacity:1}
.chat-reply-btn{opacity:0;transition:opacity .15s;position:absolute;top:50%;transform:translateY(-50%);background:var(--bg3);border:0.5px solid var(--border2);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text3);font-size:13px}
.chat-reply-btn:hover{color:var(--blue);border-color:var(--blue)}
.chat-reply-preview{background:rgba(255,255,255,.08);border-left:3px solid var(--green);border-radius:4px;padding:4px 8px;margin-bottom:4px;font-size:11px;color:var(--text3);cursor:pointer}
.chat-tick{font-size:11px;display:inline-flex;align-items:center}
.chat-msg.mine{align-self:flex-end;background:#005c4b;color:#fff;border-radius:12px 12px 2px 12px}
.chat-msg.other{align-self:flex-start;background:var(--bg3);color:var(--text);border-radius:12px 12px 12px 2px}
.chat-msg-autor{font-size:10px;font-weight:600;margin-bottom:3px;opacity:.8}
.chat-msg-hora{font-size:10px;opacity:.6;margin-top:3px;text-align:right}
#chat-input-row{padding:10px 16px;border-top:0.5px solid var(--border);display:flex;gap:8px;align-items:flex-end;flex-shrink:0}
#chat-input{flex:1;border-radius:20px;padding:8px 14px;border:0.5px solid var(--border2);background:var(--bg3);color:var(--text);font-size:13px;font-family:inherit;resize:none;max-height:80px;outline:none;line-height:1.4}
#chat-send{width:36px;height:36px;border-radius:50%;background:var(--green);border:none;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chat-online-dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;margin-right:4px}
@media(max-width:1024px){#chat-fab{bottom:16px}#chat-box{max-width:100%;border-radius:16px 16px 0 0}}
/* ── SEARCHABLE SELECT ── */
.ss-drop{display:none;position:fixed;background:var(--bg2);border:0.5px solid var(--border2);border-radius:var(--radius);box-shadow:0 4px 16px rgba(0,0,0,.2);z-index:9000;overflow:hidden;max-height:260px;flex-direction:column}
.ss-drop.open{display:flex}
.ss-search{padding:8px 12px;border:none;border-bottom:0.5px solid var(--border);background:var(--bg3);color:var(--text);font-size:13px;font-family:inherit;outline:none;flex-shrink:0}
.ss-list{overflow-y:auto;flex:1}
.ss-opt{padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text)}
.ss-opt:hover,.ss-opt.selected{background:var(--bg3)}
.ss-opt.selected{color:var(--blue);font-weight:500}
.ss-opt.group-head{font-size:11px;color:var(--text3);padding:6px 12px 2px;text-transform:uppercase;letter-spacing:.5px;cursor:default;pointer-events:none}
.ss-input{width:100%;padding:8px 12px;border:0.5px solid var(--border2);border-radius:var(--radius);background:var(--bg3);color:var(--text);font-size:13px;font-family:inherit;cursor:pointer;box-sizing:border-box}
/* ── ASISTENTE IA ── */
#ia-modal{display:none;position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.5);align-items:flex-end;justify-content:center}
#ia-modal.open{display:flex}
#ia-box{background:var(--bg2);border-radius:16px 16px 0 0;width:100%;max-width:680px;height:75vh;display:flex;flex-direction:column;box-shadow:0 -8px 32px rgba(0,0,0,.3)}
#ia-header{padding:14px 16px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;justify-content:space-between}
#ia-messages{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.ia-msg-user{align-self:flex-end;background:var(--blue);color:#fff;padding:9px 14px;border-radius:14px 14px 2px 14px;max-width:85%;font-size:13px;line-height:1.5;white-space:pre-wrap}
.ia-msg-bot{align-self:flex-start;background:var(--bg3);color:var(--text);padding:9px 14px;border-radius:14px 14px 14px 2px;max-width:85%;font-size:13px;line-height:1.5;white-space:pre-wrap}
.ia-msg-bot.thinking{color:var(--text3);font-style:italic}
#ia-input-row{padding:12px 16px;border-top:0.5px solid var(--border);display:flex;gap:8px;align-items:flex-end}
#ia-input{flex:1;border-radius:14px;padding:9px 14px;border:0.5px solid var(--border2);background:var(--bg3);color:var(--text);font-size:13px;font-family:inherit;resize:none;max-height:100px;outline:none;line-height:1.4}
#ia-send{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
#ia-fab{position:fixed;bottom:24px;right:16px;z-index:9997;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;cursor:pointer;color:#fff;display:none;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(99,102,241,.4);transition:transform .2s}
/* En mobile/tablet: ocultar IA flotante (va dentro del FAB) */
@media(max-width:1024px){#ia-fab{display:none!important}}
#ia-fab:hover{transform:scale(1.08)}
@media(max-width:768px){#ia-box{height:85vh}}

/* Accesos flotantes compactos: chat abajo y acciones (+) arriba, sin solaparse. */
@media(max-width:1024px){
  #chat-fab{bottom:calc(18px + env(safe-area-inset-bottom, 0px))!important}
  .fab-container{bottom:calc(78px + env(safe-area-inset-bottom, 0px))!important}
}

/* Reservar el lateral de los accesos flotantes en acciones de formularios. */
.form-bottom-actions{
  gap:8px;
  flex-wrap:wrap;
  padding-right:116px;
}
@media(max-width:1024px){
  .form-bottom-actions{padding-right:68px}
}
@media(max-width:700px){
  .form-bottom-actions{
    justify-content:stretch;
    padding-right:0;
    margin-bottom:72px;
  }
  .form-bottom-actions>.btn{flex:1 1 145px;justify-content:center}
}

@media(max-width:900px){.dash-ventas-split{grid-template-columns:1fr!important}.dash-ventas-split>div:nth-child(2){border-left:none!important;border-top:0.5px solid var(--border);padding-left:0!important;padding-top:14px}}


/* ══════════════════════════════════════════════════════════════════════════════
   v20.339 — Dashboard: ajustes finos PC/tablet
   - Tablet: gráficos lado a lado con el mismo ancho.
   - PC: OT pendientes más ancho; ventas más compacto.
   - PC: evolución mensual más separada y más baja.
   - Celular: mantiene gráficos apilados.
   ══════════════════════════════════════════════════════════════════════════════ */
#dash-row2-admin{align-items:stretch;gap:12px!important}
#dash-row2-admin > .card:first-child{display:block;min-height:0!important}
#dash-row2-admin .dash-ventas-split{min-height:0!important;align-items:stretch}
#dash-row2-admin #dash-bar-area{margin-top:0!important}
#dash-month-svg{display:block!important}
#dash-month-labels{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));flex:1;min-width:0;max-width:100%;gap:0;color:var(--text3);font-size:11px;line-height:1.2}
#dash-month-labels span{display:block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:clip}
#dash-month-labels span:first-child{text-align:left}
#dash-month-labels span:last-child{text-align:right}
#dash-month-var{white-space:nowrap;margin-left:10px;flex-shrink:0}
#dash-ventas-quick-326{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
#dash-ventas-quick-326 .q326{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--radius);padding:8px 10px;min-width:0;cursor:pointer}
#dash-ventas-quick-326 .q326-l{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
#dash-ventas-quick-326 .q326-v{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#dash-row2-admin > .card:nth-child(2) table td{padding:8px 10px 8px 0!important}
#dash-row2-admin > .card:nth-child(2) table th{padding-bottom:8px!important}
#dash-ot-pendientes td{line-height:1.22!important}

@media (min-width:1200px){
  #dash-row2-admin{grid-template-columns:minmax(320px,.62fr) minmax(720px,1.38fr)!important;gap:14px!important}
  #dash-row2-admin > .card:first-child{padding:14px 16px 12px!important}
  #dash-row2-admin > .card:first-child .card-head{margin-bottom:10px!important}
  #dash-row2-admin .dash-ventas-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:18px!important;min-height:150px!important}
  #dash-row2-admin .dash-ventas-split > div:nth-child(2){border-left:0.5px solid var(--border)!important;border-top:none!important;padding-left:18px!important;padding-top:0!important}
  #dash-row2-admin .dash-ventas-split > div{width:100%!important;min-width:0!important}
  #dash-row2-admin #dash-bar-area{height:104px!important;max-height:104px!important}
  #dash-month-svg{height:104px!important;max-height:104px!important;width:100%!important}
  #dash-month-labels{font-size:10px!important}
  #dash-month-var{font-size:10px!important}
  #dash-month-total{font-size:11px!important}
  #dash-ventas-quick-326{margin-top:8px!important}
  #dash-row2-admin > .card:nth-child(2){min-height:450px!important}
}

@media (min-width:701px) and (max-width:1199px){
  #dash-row2-admin{grid-template-columns:1fr!important}
  #dash-row2-admin .dash-ventas-split{grid-template-columns:1fr 1fr!important;gap:18px!important;min-height:160px!important}
  #dash-row2-admin .dash-ventas-split > div:nth-child(2){border-left:0.5px solid var(--border)!important;border-top:none!important;padding-left:18px!important;padding-top:0!important}
  #dash-row2-admin .dash-ventas-split > div{width:100%!important;min-width:0!important}
  #dash-row2-admin #dash-bar-area{height:104px!important;max-height:104px!important}
  #dash-month-svg{height:104px!important;max-height:104px!important;width:100%!important}
}

@media (max-width:700px){
  #dash-row2-admin .dash-ventas-split{grid-template-columns:1fr!important;gap:14px!important}
  #dash-row2-admin .dash-ventas-split > div:nth-child(2){border-left:none!important;border-top:0.5px solid var(--border)!important;padding-left:0!important;padding-top:14px!important}
  #dash-row2-admin #dash-bar-area{height:118px!important}
  #dash-month-svg{height:118px!important;max-height:118px!important}
}


/* ══════════════════════════════════════════════════════════════════════════════
   v20.339 — Mobile UX integral
   Ajustes generales responsive sin tocar lógica: tarjetas, filtros, botones,
   tablas, notificaciones y espacios en pantallas chicas.
   ══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px){
  body{font-size:14px!important;background:var(--bg)!important;overflow-x:hidden!important}
  .content{padding:12px!important;max-width:100vw!important;overflow-x:hidden!important}
  .page{max-width:100%!important;overflow-x:hidden!important}
  .card{border-radius:14px!important;padding:14px!important;margin-bottom:12px!important;overflow-x:hidden!important}
  .card-head{align-items:flex-start!important;gap:10px!important;margin-bottom:12px!important}
  .card-head > div{max-width:100%!important}
  .card-title{font-size:12px!important;line-height:1.3!important;letter-spacing:.9px!important}
  .metrics,.emp-sueldo-grid{gap:10px!important;margin-bottom:12px!important}
  .metric,.sueldo-card{padding:13px 14px!important;border-radius:12px!important;min-width:0!important}
  .m-label,.sueldo-label{font-size:10.5px!important;line-height:1.25!important;overflow-wrap:anywhere!important}
  .m-value,.sueldo-value{font-size:20px!important;line-height:1.15!important;overflow-wrap:anywhere!important}
  .m-sub,.sueldo-sub{font-size:11px!important;line-height:1.25!important;overflow-wrap:anywhere!important}
  .form-grid,.form-grid.cols3{gap:10px!important}
  .fg{min-width:0!important}
  .fg input,.fg select,.fg textarea,.search-input,.ss-input{width:100%!important;min-width:0!important;max-width:100%!important;border-radius:10px!important;padding:10px 12px!important;box-sizing:border-box!important}
  .btn{min-height:36px!important;border-radius:10px!important;white-space:normal!important;line-height:1.2!important;justify-content:center!important;text-align:center!important}
  .btn-sm{min-height:34px!important;padding:7px 10px!important}
  .flex-end{gap:8px!important;flex-wrap:wrap!important}
  .flex-end .btn{flex:1 1 auto!important;min-width:120px!important}
  .table-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;touch-action:pan-x pan-y!important}
  .sv-scroll-panel,#sp-lista,#mnt-relaciones-lista,#mnt-dup-fijos-lista,#mnt-migraciones-lista{max-width:100%!important;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-x pan-y!important}
  #sp-lista .cr,#mnt-relaciones-lista>div,#mnt-dup-fijos-lista>div,#mnt-migraciones-lista>div{min-width:0!important}
  table{max-width:100%!important}
  .table-wrap>table,.sv-auto-grid-wrap>table{max-width:none!important;width:max-content!important;min-width:100%!important}
  th,td{font-size:12px!important;line-height:1.3!important;vertical-align:top!important}
  .badge{font-size:10.5px!important;line-height:1.2!important;white-space:normal!important;text-align:center!important}
  .modal{width:96vw!important;max-width:96vw!important;padding:18px!important}
  .modal-head{gap:10px!important}
}

@media (max-width: 768px){
  #actualizador-proceso-metricas{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .topbar{height:56px!important;padding:0 12px!important;gap:6px!important}
  .page-title{font-size:16px!important;font-weight:600!important}
  .topbar-right{gap:4px!important}
  .role-badge{font-size:12px!important;padding:5px 10px!important;margin-right:0!important}
  .icon-btn{width:38px!important;height:38px!important;border-radius:12px!important}
  .hamburger.icon-btn,#btn-home{width:40px!important;height:40px!important}

  /* Filtros y headers: en móvil primero contenido, luego acciones. */
  .card-head{flex-direction:column!important;align-items:stretch!important}
  .card-head .btn,.card-head button,.card-head select,.card-head input{max-width:100%!important}
  .card-head > div[style*="display:flex"]{width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}

  /* Métricas: dos columnas si hay espacio, una cuando la tarjeta se aprieta. */
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .metrics[style*="repeat(4"],.metrics[style*="repeat(3"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .card > div[style*="grid-template-columns:repeat(4"],
  .card > div[style*="grid-template-columns:repeat(5"],
  .card > div[style*="grid-template-columns:repeat(auto-fill"]{grid-template-columns:repeat(2,minmax(0,1fr))!important;min-width:0!important;max-width:100%!important}
  #dash-micuenta-card .metrics,#dash-adm-metrics,#page-cuentacorriente .metrics,#page-tesoreria .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Notificaciones: la tarjeta pasa de fila desktop a bloque mobile. */
  #page-notificaciones > div:first-child{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important;margin-bottom:14px!important}
  #page-notificaciones > div:first-child > div{width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  #page-notificaciones #notif-count-label{font-size:14px!important;line-height:1.3!important;color:var(--text2)!important}
  #page-notificaciones #notif-filtro{width:100%!important;font-size:18px!important;min-height:48px!important}
  #page-notificaciones > div:first-child .btn{width:100%!important}
  #notif-lista{display:flex!important;flex-direction:column!important;gap:10px!important}
  #notif-lista > div{display:grid!important;grid-template-columns:28px minmax(0,1fr)!important;gap:10px!important;align-items:start!important;padding:14px!important;margin-bottom:0!important;overflow:hidden!important}
  #notif-lista > div > i{grid-column:1!important;grid-row:1!important;font-size:23px!important;margin-top:1px!important}
  #notif-lista > div > div:nth-child(2){grid-column:2!important;grid-row:1!important;min-width:0!important;width:100%!important}
  #notif-lista > div > div:nth-child(2) strong{display:block!important;font-size:15px!important;line-height:1.18!important;overflow-wrap:anywhere!important;word-break:normal!important;hyphens:auto!important;max-width:100%!important}
  #notif-lista > div > div:nth-child(2) > div:first-child{display:flex!important;flex-wrap:wrap!important;gap:6px!important;align-items:flex-start!important}
  #notif-lista > div > div:nth-child(2) > div:nth-child(2){font-size:13px!important;line-height:1.45!important;margin-top:8px!important;overflow-wrap:anywhere!important}
  #notif-lista > div > div:nth-child(2) > div:nth-child(3){font-size:12px!important;line-height:1.35!important;margin-top:8px!important}
  #notif-lista > div > div:nth-child(3){grid-column:1 / -1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;justify-content:stretch!important;width:100%!important;margin-top:8px!important}
  #notif-lista > div > div:nth-child(3) .btn{width:100%!important;min-width:0!important;padding:8px 6px!important}

  /* OT / listas con mucho texto: reducir aire y permitir corte prolijo. */
  #dash-ot-pendientes td,#ot-tbody td,#ventas-tbody td,#pagos-tbody td,#cc-tbody td{overflow-wrap:anywhere!important;white-space:normal!important}
  #dash-ot-pendientes td{padding:8px 6px!important;line-height:1.25!important}
  #dash-ot-pendientes td:first-child{font-weight:600!important;color:var(--text)!important}

  /* Tablas muy anchas: mantienen scroll horizontal pero sin romper la pantalla. */
  #page-venta table,#page-presupuesto table,#page-detalle table,#page-ordentrabajo table,#page-cobranzas table,#page-tesoreria table,#page-empleados table,#page-productos table,#page-clientes table{min-width:680px!important}
  #page-dashboard table{min-width:0!important}

  /* Botones flotantes menos invasivos y fuera del contenido principal. */
  .fab-container{right:14px!important;bottom:calc(78px + env(safe-area-inset-bottom, 0px))!important}
  #chat-fab{right:14px!important;bottom:calc(18px + env(safe-area-inset-bottom, 0px))!important}
  .fab-main,#chat-fab,#ia-fab{width:52px!important;height:52px!important}
}

@media (max-width: 560px){
  .content{padding:10px!important}
  .metrics,.metrics[style*="repeat"],.emp-sueldo-grid,#dash-micuenta-card .metrics,#dash-adm-metrics,#page-cuentacorriente .metrics,#page-tesoreria .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .metric,.sueldo-card{padding:12px!important}
  .m-value,.sueldo-value{font-size:18px!important}
  .row2{gap:10px!important}
  .card{padding:12px!important;border-radius:14px!important}
  .form-grid{grid-template-columns:1fr!important}
  .flex-end{flex-direction:column!important;align-items:stretch!important}
  .flex-end .btn{width:100%!important;min-width:0!important}
  #notif-lista > div{grid-template-columns:24px minmax(0,1fr)!important;padding:13px!important}
  #notif-lista > div > div:nth-child(3){grid-template-columns:1fr 1fr!important}
}

@media (max-width: 390px){
  .content{padding:8px!important}
  .metrics,.metrics[style*="repeat"],.emp-sueldo-grid{grid-template-columns:1fr!important}
  .card > div[style*="grid-template-columns:repeat(4"],
  .card > div[style*="grid-template-columns:repeat(5"],
  .card > div[style*="grid-template-columns:repeat(auto-fill"]{grid-template-columns:1fr!important}
  #page-dashboard .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .topbar{padding:0 8px!important}
  .page-title{font-size:15px!important}
  .role-badge{padding:4px 8px!important}
  #notif-lista > div > div:nth-child(3){grid-template-columns:1fr!important}
}

@media (max-width: 760px){
  #cfg-tabs-main.cfg-tabs-main{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;overflow:visible!important;white-space:normal!important;padding:6px!important;margin-bottom:12px!important;position:static!important}
  #cfg-tabs-main .cfg-tab{width:100%!important;min-width:0!important;white-space:normal!important;flex:initial!important;padding:10px 8px!important;text-align:center!important}
}

/* ══════════════════════════════════════════════════════════════════════════════
   v20.339 — Estadísticas y Rentabilidad: panel gráfico ejecutivo
   Replica el lenguaje visual del dashboard principal, con contenido específico.
   ══════════════════════════════════════════════════════════════════════════════ */
.sv334-analytics-card{background:linear-gradient(145deg,rgba(96,165,250,.08),rgba(15,17,23,.02));border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:12px;overflow:hidden}
.sv334-analytics-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.sv334-title{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;font-weight:500;display:flex;align-items:center;gap:6px}
.sv334-period{font-size:12px;color:var(--text2);background:var(--bg3);border:0.5px solid var(--border);border-radius:999px;padding:5px 10px}
.sv334-graph-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch}
.sv334-graph{min-width:0;display:flex;flex-direction:column}
.sv334-graph + .sv334-graph{border-left:0.5px solid var(--border);padding-left:28px}
.sv334-graph-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.sv334-graph-title{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.7px}
.sv334-graph-total{font-size:12px;font-weight:700;color:var(--green);white-space:nowrap}
.sv334-chart-wrap{height:142px;position:relative;display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:stretch}
.sv334-axis-y{display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:var(--text3);text-align:right;padding:2px 0 20px;line-height:1}
.sv334-bars-area{height:100%;display:flex;align-items:flex-end;gap:8px;border-left:0.5px solid var(--border2);border-bottom:0.5px solid var(--border2);padding:0 2px 20px 8px;position:relative}
.sv334-bars-area:before{content:'';position:absolute;left:8px;right:2px;top:32%;border-top:0.5px dashed rgba(120,130,160,.22)}
.sv334-bars-area:after{content:'';position:absolute;left:8px;right:2px;top:64%;border-top:0.5px dashed rgba(120,130,160,.18)}
.sv334-bc{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;flex:1;min-width:0;height:100%;z-index:1}
.sv334-bar{width:100%;min-height:4px;border-radius:4px 4px 0 0;background:var(--bg4);transition:height .25s ease;box-shadow:0 0 0 1px rgba(255,255,255,.03) inset}
.sv334-bar.pos{background:linear-gradient(180deg,var(--green),rgba(74,222,128,.70))}
.sv334-bar.neg{background:linear-gradient(180deg,var(--red),rgba(248,113,113,.70))}
.sv334-bar.today{background:linear-gradient(180deg,var(--blue),rgba(96,165,250,.70))}
.sv334-lbl{font-size:10px;color:var(--text3);white-space:nowrap;line-height:1;position:absolute;bottom:0;transform:translateX(-50%)}
.sv334-line-wrap{height:142px;display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:stretch}
.sv334-svg-wrap{position:relative;border-left:0.5px solid var(--border2);border-bottom:0.5px solid var(--border2);min-width:0}
.sv334-svg{width:100%;height:122px;display:block;overflow:visible}
.sv334-xlabels{height:20px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));font-size:10px;color:var(--text3);padding-top:5px;gap:0}
.sv334-xlabels span{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:clip}
.sv334-xlabels span:first-child{text-align:left}.sv334-xlabels span:last-child{text-align:right}
.sv334-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;padding:10px 0;border-top:0.5px dashed var(--border)}
.sv334-mini-card{display:flex;align-items:center;gap:10px;min-width:0;background:rgba(255,255,255,.025);border:0.5px solid var(--border);border-radius:var(--radius);padding:10px 12px}
.sv334-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.sv334-ico.green{background:var(--green-bg);color:var(--green)}.sv334-ico.blue{background:var(--blue-bg);color:var(--blue)}.sv334-ico.purple{background:var(--purple-bg);color:var(--purple)}.sv334-ico.red{background:var(--red-bg);color:var(--red)}
.sv334-mini-l{font-size:11px;color:var(--text2)}
.sv334-mini-v{font-size:16px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sv334-mini-v.green{color:var(--green)}.sv334-mini-v.blue{color:var(--blue)}.sv334-mini-v.purple{color:var(--purple)}.sv334-mini-v.red{color:var(--red)}
.sv334-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.sv334-q{background:linear-gradient(145deg,rgba(96,165,250,.07),rgba(255,255,255,.015));border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;min-width:0;cursor:pointer;transition:transform .12s ease,border-color .12s ease}
.sv334-q:hover{transform:translateY(-1px);border-color:var(--border2)}
.sv334-q-l{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.sv334-q-l i{font-size:16px}
.sv334-q-v{font-size:23px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sv334-q-v.green{color:var(--green)}.sv334-q-v.blue{color:var(--blue)}.sv334-q-v.purple{color:var(--purple)}.sv334-q-v.red{color:var(--red)}
.sv334-q-sub{font-size:11px;color:var(--text3);margin-top:5px;line-height:1.25}
@media(max-width:1199px){.sv334-graph-grid{grid-template-columns:1fr;gap:18px}.sv334-graph + .sv334-graph{border-left:none;border-top:0.5px solid var(--border);padding-left:0;padding-top:16px}.sv334-chart-wrap,.sv334-line-wrap{height:132px}.sv334-svg{height:112px}.sv334-mini,.sv334-quick{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.sv334-analytics-card{padding:14px 12px}.sv334-chart-wrap,.sv334-line-wrap{grid-template-columns:34px 1fr;height:126px}.sv334-svg{height:106px}.sv334-axis-y{font-size:9px}.sv334-bars-area{gap:5px;padding-left:6px}.sv334-mini{grid-template-columns:1fr;gap:8px}.sv334-quick{grid-template-columns:1fr;gap:8px}.sv334-q{padding:12px}.sv334-q-v{font-size:20px}.sv334-graph-total{font-size:11px}.sv334-period{display:none}}

/* v1.36.5 — Acabado visual uniforme en tarjetas y gráficos */
#dash-rentabilidad-card{background:radial-gradient(circle at top left,rgba(96,165,250,.12),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.025),rgba(15,17,23,.08)),var(--bg2)}
#dash-rentabilidad-card .metric{background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.012));border-color:rgba(120,130,160,.18)}
#dash-rentabilidad-card [id^="dash-rent-bar-"]{box-shadow:0 0 20px rgba(255,255,255,.06)}
#dash-rent-bar-ing{background:linear-gradient(90deg,rgba(74,222,128,.82),var(--green))!important}
#dash-rent-bar-gas{background:linear-gradient(90deg,rgba(248,113,113,.82),var(--red))!important}
.sv334-analytics-card{background:radial-gradient(circle at 12% 0,rgba(96,165,250,.14),transparent 30%),linear-gradient(145deg,rgba(255,255,255,.032),rgba(15,17,23,.08)),var(--bg2);box-shadow:0 18px 48px rgba(0,0,0,.16);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.sv334-analytics-card:hover{transform:translateY(-1px);border-color:rgba(120,130,160,.42);box-shadow:0 22px 56px rgba(0,0,0,.20)}
.sv334-graph{background:rgba(255,255,255,.018);border:0.5px solid rgba(120,130,160,.16);border-radius:var(--radius-lg);padding:13px 14px}
.sv334-graph + .sv334-graph{border-left:0.5px solid rgba(120,130,160,.16);padding-left:14px}
.sv334-bars-area,.sv334-svg-wrap{background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.006));border-color:rgba(120,130,160,.25);border-radius:10px;padding-top:8px}
.sv334-bars-area{padding-right:8px}
.sv334-bar{border-radius:8px 8px 3px 3px;box-shadow:0 8px 20px rgba(0,0,0,.16),0 0 0 1px rgba(255,255,255,.04) inset}
.sv334-bar.pos{background:linear-gradient(180deg,#7df7a5,var(--green))}
.sv334-bar.neg{background:linear-gradient(180deg,#ff9b9b,var(--red))}
.sv334-bar.today{background:linear-gradient(180deg,#9cc5ff,var(--blue))}
.sv334-svg path{filter:drop-shadow(0 0 8px rgba(96,165,250,.28))}
.sv334-svg polygon{fill:rgba(96,165,250,.18)}
.sv334-mini-card,.sv334-q{transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.sv334-mini-card:hover,.sv334-q:hover{transform:translateY(-1px);border-color:rgba(120,130,160,.42);box-shadow:0 12px 30px rgba(0,0,0,.16);background:linear-gradient(145deg,rgba(96,165,250,.075),rgba(255,255,255,.018))}


/* v20.362 — Topbar mobile y acciones de empleados */
@media(max-width:640px){
  #fb-status{display:none!important}
  .topbar-right{gap:3px!important}
}
.emp-actions-358{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.emp-actions-358 .btn{min-height:34px;white-space:nowrap}
@media(max-width:900px){.emp-actions-358{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.emp-actions-358 .btn{width:100%;justify-content:center}}

/* v1.36.9 — Ajuste visual uniforme: menos brillo, más consistencia */
.card,.sv334-analytics-card,.sv334-graph{background:linear-gradient(145deg,rgba(255,255,255,.028),rgba(255,255,255,.008)),var(--bg2)!important;border-color:rgba(120,130,160,.22)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important}
.card:hover,.sv334-analytics-card:hover{transform:translateY(-1px);border-color:rgba(120,130,160,.38)!important;box-shadow:0 14px 34px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.03)!important}
.metric,.sv334-mini-card,.sv334-q{background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.01)),var(--bg3)!important;border:0.5px solid rgba(120,130,160,.18)!important}
#dash-rentabilidad-card{background:linear-gradient(145deg,rgba(74,222,128,.045),rgba(96,165,250,.025)),var(--bg2)!important}
#dash-rentabilidad-card:before{display:none!important}
#dash-rentabilidad-card .metric{background:linear-gradient(145deg,rgba(255,255,255,.034),rgba(255,255,255,.01)),var(--bg3)!important}
.sv334-chart-wrap,.sv334-line-wrap{height:158px!important}
.sv334-bars-area,.sv334-svg-wrap{height:138px!important;box-sizing:border-box;background:linear-gradient(180deg,rgba(255,255,255,.020),rgba(255,255,255,.006))!important;border-color:rgba(120,130,160,.22)!important}
.sv334-svg{height:138px!important}
.sv334-bars-area{padding-bottom:24px!important}
.sv334-xlabels{height:20px!important}
.sidebar{background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.004)),var(--bg2)!important}
.nav-item{position:relative;overflow:hidden;transition:background-color .08s linear,color .08s linear,border-color .08s linear!important;will-change:auto}
.nav-item:before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:999px;background:var(--blue);opacity:0;transition:opacity .08s linear}
.nav-item:after{display:none!important;content:none!important}
.nav-item:hover{transform:none!important;background:rgba(96,165,250,.055)!important;border-color:rgba(120,130,160,.20)!important}
.nav-item:hover:before,.nav-item.active:before{opacity:1;transform:none!important}
.nav-item.active{background:rgba(96,165,250,.10)!important;border-color:rgba(120,130,160,.24)!important}
.nav-item i{position:relative;z-index:1;transition:color .08s linear}
.nav-item span,.nav-item{z-index:0}
.nav-item:hover i,.nav-item.active i{transform:none!important;color:var(--blue)}
@media(max-width:1199px){.sv334-chart-wrap,.sv334-line-wrap{height:148px!important}.sv334-bars-area,.sv334-svg-wrap,.sv334-svg{height:128px!important}}
@media(max-width:700px){.sv334-chart-wrap,.sv334-line-wrap{height:134px!important}.sv334-bars-area,.sv334-svg-wrap,.sv334-svg{height:114px!important}}

/* v1.36.7 — Dashboard: gráficos y rentabilidad con estilo moderno */
#dash-rentabilidad-card{position:relative;overflow:hidden!important;background:radial-gradient(circle at 6% 0,rgba(74,222,128,.16),transparent 28%),radial-gradient(circle at 92% 10%,rgba(96,165,250,.14),transparent 32%),linear-gradient(145deg,rgba(255,255,255,.035),rgba(15,17,23,.08)),var(--bg2)!important}
#dash-rentabilidad-card:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent,rgba(255,255,255,.045),transparent);transform:translateX(-80%);transition:transform .6s ease}
#dash-rentabilidad-card:hover:before{transform:translateX(80%)}
#dash-rentabilidad-card .card-head,#dash-rentabilidad-card .metrics{position:relative;z-index:1}
#dash-rentabilidad-card .metric{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.014))!important;border-color:rgba(120,130,160,.20)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
#dash-row2-admin .bar-area,#dash-bar-area{height:148px;padding:12px 10px 18px;border:0.5px solid rgba(120,130,160,.18);border-radius:var(--radius-lg);background:radial-gradient(circle at top,rgba(96,165,250,.09),transparent 45%),linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,.006));position:relative}
#dash-row2-admin .bar-area:before,#dash-bar-area:before{content:'';position:absolute;left:12px;right:12px;top:35%;border-top:0.5px dashed rgba(120,130,160,.22)}
#dash-row2-admin .bar-area:after,#dash-bar-area:after{content:'';position:absolute;left:12px;right:12px;top:67%;border-top:0.5px dashed rgba(120,130,160,.16)}
#dash-row2-admin .bc,#dash-bar-area .bc{position:relative;z-index:1}
#dash-row2-admin .bar,#dash-bar-area .bar{border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#9cc5ff,var(--blue))!important;box-shadow:0 10px 24px rgba(96,165,250,.13),inset 0 1px 0 rgba(255,255,255,.24)}
#dash-row2-admin .bar:hover,#dash-row2-admin .bar.today,#dash-bar-area .bar:hover,#dash-bar-area .bar.today{background:linear-gradient(180deg,#7df7a5,var(--green))!important;box-shadow:0 12px 26px rgba(74,222,128,.18),inset 0 1px 0 rgba(255,255,255,.28)}
.bar-lbl.today{color:var(--green)!important}
.sv334-analytics-card{background:radial-gradient(circle at 12% 0,rgba(96,165,250,.16),transparent 30%),radial-gradient(circle at 92% 8%,rgba(139,92,246,.12),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.04),rgba(15,17,23,.08)),var(--bg2)!important}
.sv334-graph{background:linear-gradient(145deg,rgba(255,255,255,.032),rgba(255,255,255,.01))!important;border-color:rgba(120,130,160,.20)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.sv334-bars-area,.sv334-svg-wrap{background:radial-gradient(circle at top,rgba(96,165,250,.08),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.006))!important}

/* v1.36.9-final — prevalece sobre el bloque visual anterior */
#dash-rentabilidad-card{background:linear-gradient(145deg,rgba(74,222,128,.045),rgba(96,165,250,.025)),var(--bg2)!important}
#dash-rentabilidad-card:before{display:none!important;content:none!important}
#dash-rentabilidad-card .metric{background:linear-gradient(145deg,rgba(255,255,255,.034),rgba(255,255,255,.01)),var(--bg3)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.02)!important}
.sv334-analytics-card{background:linear-gradient(145deg,rgba(255,255,255,.028),rgba(255,255,255,.008)),var(--bg2)!important}
.sv334-bars-area,.sv334-svg-wrap{height:138px!important;background:linear-gradient(180deg,rgba(255,255,255,.020),rgba(255,255,255,.006))!important}
.sv334-chart-wrap,.sv334-line-wrap{height:158px!important}
.sv334-svg{height:138px!important}

/* v1.36.11 — Dashboard ejecutivo: barras y líneas con el mismo alto útil */
.sv334-chart-wrap,.sv334-line-wrap{height:168px!important;min-height:168px!important}
.sv334-bars-area,.sv334-svg-wrap{height:148px!important;min-height:148px!important}
.sv334-svg{height:148px!important}
.sv334-bars-area{padding:10px 8px 24px 8px!important;align-items:flex-end!important}
.sv334-bc{height:118px!important;align-self:flex-end!important}
.sv334-bar{max-height:118px!important}
@media(max-width:1199px){.sv334-chart-wrap,.sv334-line-wrap{height:158px!important;min-height:158px!important}.sv334-bars-area,.sv334-svg-wrap,.sv334-svg{height:138px!important;min-height:138px!important}.sv334-bc{height:108px!important}.sv334-bar{max-height:108px!important}}
@media(max-width:700px){.sv334-chart-wrap,.sv334-line-wrap{height:142px!important;min-height:142px!important}.sv334-bars-area,.sv334-svg-wrap,.sv334-svg{height:122px!important;min-height:122px!important}.sv334-bc{height:92px!important}.sv334-bar{max-height:92px!important}}

/* v1.36.22 — Line chart ejecutivo y monitor compacto de recursos */
.page.active .card{content-visibility:auto;contain-intrinsic-size:180px}
.page.active .row2,.page.active .metrics{content-visibility:auto;contain-intrinsic-size:120px}
.sv334-svg-wrap{overflow:hidden!important}
.sv334-line-grid{stroke:rgba(120,130,160,.18);stroke-width:.7;vector-effect:non-scaling-stroke;stroke-dasharray:5 5}
.sv334-line-area{opacity:.82}
.sv334-line-glow{fill:none;stroke:rgba(96,165,250,.20);stroke-width:9;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:blur(.25px)}
.sv334-line-path{fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 10px rgba(96,165,250,.36))}
.sv334-line-dot{fill:var(--bg2);stroke-width:2.4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px rgba(96,165,250,.35))}
.sv334-line-dot.today{fill:var(--blue);stroke:rgba(255,255,255,.75)}
.sv-rm-card.sv-rm-compact{position:relative;z-index:3;display:flex;align-items:center;gap:8px;max-width:min(640px,calc(100vw - 520px));min-height:30px;padding:4px 8px;border:0.5px solid rgba(120,130,160,.22);border-radius:999px;background:rgba(24,27,36,.86);box-shadow:none;opacity:.78;transition:opacity .08s linear,border-color .08s linear}
.sv-rm-card.sv-rm-compact:hover{opacity:.96;border-color:rgba(120,130,160,.34)}
.sv-rm-title{display:flex;align-items:center;gap:6px;color:var(--text2);font-size:11px;font-weight:700;white-space:nowrap}
.sv-rm-title i{color:var(--blue);font-size:14px}
.sv-rm-title .badge{font-size:9px;padding:2px 6px}
.sv-rm-strip{display:flex;align-items:center;gap:6px;min-width:0}
.sv-rm-mini{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto auto;align-items:center;column-gap:5px;min-width:76px;max-width:132px;padding:3px 7px;border-left:0.5px solid rgba(120,130,160,.18)}
.sv-rm-mini span{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.sv-rm-mini strong{font-size:11px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-rm-mini em{grid-column:1/3;font-style:normal;font-size:9px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.sv-rm-meter{grid-column:1/3;height:3px;border-radius:999px;background:rgba(120,130,160,.18);overflow:hidden;margin-top:3px}
.sv-rm-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--blue));border-radius:999px;transition:width .25s ease}
.sv-rm-meter span.warn{background:linear-gradient(90deg,var(--amber),#fbbf24)}
.sv-rm-meter span.danger{background:linear-gradient(90deg,var(--red),#fb7185)}
@media(max-width:1280px){.sv-rm-card.sv-rm-compact{max-width:min(520px,calc(100vw - 460px))}.sv-rm-mini{min-width:68px}.sv-rm-mini em{display:none}}
@media(max-width:1100px){.topbar{grid-template-columns:minmax(0,1fr) auto}.topbar-center{display:none}.sv-rm-card.sv-rm-compact{display:none!important}}
@media(max-width:760px){.sv-page-transition-loader{padding:16px}.sv-page-transition-box{max-width:100%;padding:12px 14px}}

/* v1.36.27 - full width modules and grids */
.content{max-width:none!important}
.page.active{width:100%!important;max-width:none!important;min-width:0!important}
.page.active > *,
.page.active .card,
.page.active .metrics,
.page.active .row2{max-width:none!important}
.page.active .card{width:100%!important}
.page.active .table-wrap,
.page.active .sv-auto-grid-wrap,
.page.active .sv-resizable-wrap,
.page.active .sv-scroll-panel{width:100%!important;max-width:100%!important;min-width:0!important}
.page.active table{max-width:none!important}
.page.active .table-wrap > table,
.page.active .sv-auto-grid-wrap > table,
.page.active table.sv-resizable-table{width:max-content!important;min-width:100%!important}
.page.active .table-wrap > table.sv-percent-table,
.page.active .sv-auto-grid-wrap > table.sv-percent-table,
.page.active table.sv-resizable-table.sv-percent-table,
.page.active table.sv-percent-table{table-layout:fixed!important;width:var(--sv-percent-total-width,100%)!important;min-width:100%!important;max-width:none!important}
.page.active .dt{width:100%!important;min-width:100%!important}
#page-presupuesto,
#page-presupuesto #ppto-list-view,
#page-presupuesto #ppto-detalle-view,
#page-presupuesto #ppto-form-view{width:100%!important;max-width:none!important;min-width:0!important}
#page-presupuesto .card,
#page-presupuesto .table-wrap,
#page-presupuesto .sv-resizable-wrap{width:100%!important;max-width:none!important}
#page-presupuesto #ppto-tabla{min-width:100%!important}
#page-presupuesto #ppto-tabla th:nth-child(3),
#page-presupuesto #ppto-tabla td:nth-child(3){text-align:left!important}
.sv-card-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}
.sv-card-head-actions .btn{flex:0 0 auto}
.sv-column-percent-btn{border-color:rgba(120,130,160,.35)!important;background:rgba(120,130,160,.08)!important;color:var(--text2)!important}
.sv-column-percent-btn:hover{background:rgba(120,130,160,.16)!important;color:var(--text)!important}
.sv-grid-column-toolbar{display:flex;justify-content:flex-end;align-items:center;margin:0 0 8px}
.item-prod-cell{position:relative}
.sv-item-drag-handle{flex:0 0 20px;width:20px;height:30px;padding:0;border:0;background:transparent;color:var(--text3);cursor:grab;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;touch-action:none}
.sv-item-drag-handle:hover{color:var(--blue);background:var(--blue-bg)}
.sv-item-drag-handle:active{cursor:grabbing}
.sv-item-actions-cell{white-space:nowrap!important;text-align:right!important}
.sv-item-order-controls{display:inline-flex;vertical-align:middle;flex-direction:column;margin-right:2px;border:1px solid var(--border);border-radius:5px;overflow:hidden;background:var(--bg)}
.sv-item-order-controls[hidden],.sv-item-drag-handle[hidden]{display:none!important}
.sv-item-order-controls button{width:20px;height:14px;padding:0;border:0;background:transparent;color:var(--text3);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;line-height:1}
.sv-item-order-controls button+button{border-top:1px solid var(--border)}
.sv-item-order-controls button:hover:not(:disabled){background:var(--blue-bg);color:var(--blue)}
.sv-item-order-controls button:disabled{opacity:.25;cursor:default}
.sv-item-row-dragging{opacity:.46;outline:1px dashed var(--blue);outline-offset:-2px}
.sv-item-row-moved{animation:svItemRowMoved .4s ease}
@keyframes svItemRowMoved{0%{background:var(--blue-bg)}100%{background:transparent}}
.sv-action-metric{cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.sv-action-metric:hover,.sv-action-metric:focus-visible{transform:translateY(-2px);border-color:rgba(96,165,250,.58);box-shadow:0 10px 28px rgba(0,0,0,.22);outline:none}
.sv-kpi-target-highlight{animation:svKpiTarget 1.8s ease}
@keyframes svKpiTarget{0%,100%{box-shadow:none}20%,70%{box-shadow:0 0 0 2px rgba(96,165,250,.7),0 0 28px rgba(96,165,250,.2)}}
.sv-column-percent-head{cursor:move;user-select:none}
.sv-column-percent-head button{cursor:pointer}
.sv-column-percent-panel.is-dragging{border-color:rgba(96,165,250,.55)!important;box-shadow:0 28px 80px rgba(0,0,0,.58)!important}
#cfg-general #cfg-dolar-tipo-card,
#cfg-general #cfg-dolar-historico-card{display:none}
#cfg-general.cfg-dolar-only > .card{display:none!important}
#cfg-general.cfg-dolar-only #cfg-dolar-tipo-card,
#cfg-general.cfg-dolar-only #cfg-dolar-historico-card{display:block!important}

/* v2.0.10 - agenda y grillas a pantalla completa */
#page-agenda.page.active{display:flex!important;flex-direction:column;width:100%!important;min-height:calc(100vh - 98px)!important}
#page-agenda.page.active .metrics{flex-shrink:0;width:100%!important}
#page-agenda #agenda-calendar-card{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;min-height:calc(100vh - 245px)!important;width:100%!important;max-width:none!important}
#page-agenda #agenda-calendar-card > .agenda-toolbar{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;width:100%;min-width:0;flex-shrink:0}
#page-agenda #agenda-calendar-card > .agenda-scroll-hint{flex-shrink:0}
#page-agenda #ag-calendario{display:block!important;flex:1 1 auto!important;width:100%!important;max-width:none!important;margin-top:8px!important;min-height:0!important}
#page-agenda #ag-calendario[data-view="mes"]>div,
#page-agenda #ag-calendario[data-view="semana"]>div,
#page-agenda #ag-calendario[data-view="dia"]>div{width:100%!important;min-width:100%!important}
#page-agenda #ag-calendario[data-view="mes"]{display:flex!important;flex-direction:column!important;overflow:hidden!important}
#page-agenda #ag-calendario[data-view="mes"]>.ag-mes-desktop{flex:1 1 auto!important;height:100%!important;min-height:0!important}
#page-agenda #ag-calendario[data-view="mes"] .ag-mes-head,
#page-agenda #ag-calendario[data-view="mes"] .ag-mes-cell{min-height:0!important}
#page-agenda #ag-calendario[data-view="mes"] .ag-mes-cell{overflow:hidden}
.page.active .card > table,
.page.active .card > div > table{width:100%!important;min-width:100%!important}
.page.active .table-wrap{display:block!important}
.page.active .table-wrap > table:not(#gas-tbl):not(#prod-tbl){width:100%!important;min-width:100%!important}
.page.active .sv-percent-table{width:var(--sv-percent-total-width,100%)!important;min-width:100%!important}

/* v1.36.27 - logo unificado y recorte en configuracion */
.sv-logo-cropper{margin-top:16px;padding:14px;border:0.5px solid var(--border);border-radius:var(--radius-lg);background:var(--bg3)}
.sv-logo-crop-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.sv-logo-crop-head strong{display:block;font-size:13px;color:var(--text)}
.sv-logo-crop-head span{display:block;margin-top:2px;font-size:12px;color:var(--text3)}
.sv-logo-crop-stage{position:relative;width:min(420px,100%);aspect-ratio:14/9;margin:0 auto 12px;overflow:hidden;border:1.5px dashed var(--border2);border-radius:var(--radius);background:repeating-conic-gradient(rgba(120,130,160,.10) 0 25%,transparent 0 50%) 50%/18px 18px}
.sv-logo-crop-stage:after{content:'';position:absolute;inset:0;border:999px solid rgba(0,0,0,.08);pointer-events:none}
.sv-logo-crop-stage img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;user-select:none;pointer-events:none;transform-origin:center center}
.sv-logo-crop-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sv-logo-crop-controls label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.sv-logo-crop-controls input{display:block;width:100%;margin-top:5px;accent-color:var(--blue)}
@media(max-width:700px){.sv-logo-crop-controls{grid-template-columns:1fr}.login-logo-mark{width:76px;height:76px;border-radius:20px}}

/* v1.36.27 - mantenimiento simple con examen único */
#cfg-mantenimiento{display:flex;flex-direction:column;gap:12px}
#cfg-mantenimiento .card{margin-bottom:0}
.mnt-hero-card{background:radial-gradient(circle at 12% 0,rgba(96,165,250,.10),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.006)),var(--bg2)!important}
.mnt-hero-copy{font-size:13px;color:var(--text2);line-height:1.45;margin-bottom:14px;max-width:920px}
.mnt-exam-box{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px;border:0.5px solid var(--border);border-radius:var(--radius-lg);background:rgba(120,130,160,.045)}
.mnt-exam-btn{min-width:190px;min-height:44px;font-size:15px!important;justify-content:center}
.mnt-exam-info{display:flex;min-width:0;flex-direction:column;gap:3px}
.mnt-exam-info strong{font-size:13px;color:var(--text)}
.mnt-exam-info span{font-size:12px;color:var(--text3);line-height:1.4}
.mnt-main-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mnt-main-grid #mnt-v2-audit-card{grid-column:1/-1}
.mnt-primary-card{min-height:0}
.mnt-primary-card .metrics{gap:8px!important}
.mnt-primary-card .metric{padding:12px!important}
.mnt-advanced-card{border-color:rgba(120,130,160,.11)!important;background:linear-gradient(145deg,rgba(255,255,255,.012),rgba(255,255,255,.004)),var(--bg2)!important}
.mnt-advanced-card .card-head{margin-bottom:10px}
.mnt-advanced-card .card-title{letter-spacing:.95px}
#mnt-console{min-height:150px!important;max-height:230px!important}
@media(max-width:1180px){.mnt-main-grid{grid-template-columns:1fr}.mnt-main-grid #mnt-v2-audit-card{grid-column:auto}}
@media(max-width:700px){#cfg-mantenimiento .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.mnt-exam-box{align-items:stretch;flex-direction:column}.mnt-exam-btn{width:100%}}
#page-productos,
#page-productos #prod-list-view,
#page-productos #prod-list-view > .card{width:100%!important;max-width:none!important}
#page-gastos,
#page-gastos > .metrics,
#page-gastos #gasto-list,
#page-gastos #gasto-list > .table-wrap{
  width:100%!important;
  max-width:none!important;
}
#page-gastos.page.active{
  display:flex!important;
  flex-direction:column;
  min-height:calc(100vh - 98px);
}
#page-gastos > .metrics,
#page-gastos > #gas-alertas-box{flex:0 0 auto}
#page-gastos #gasto-list{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}
#page-gastos #gasto-list > .table-wrap{flex:1 1 auto}
#page-productos .prod-table-wrap{width:100%!important;max-width:100%!important}
#page-productos #prod-tbl{table-layout:auto!important;width:auto!important;min-width:0!important;max-width:none!important}
#page-productos #prod-tbl td,
#page-productos #prod-tbl th{box-sizing:border-box}
#page-gastos #gas-tbl{table-layout:auto!important;width:auto!important;min-width:0!important;max-width:none!important}
#page-productos #prod-tbl.sv-percent-table,
#page-gastos #gas-tbl.sv-percent-table{table-layout:fixed!important;width:var(--sv-percent-total-width,100%)!important;min-width:100%!important;max-width:none!important}
#gas-tbl th,#gas-tbl td{white-space:nowrap}
#gas-tbl .gas-desc-cell{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#gas-tbl .gas-bulk-cell.gas-bulk-hidden{
  display:table-cell!important;
  width:0!important;
  min-width:0!important;
  max-width:0!important;
  padding:0!important;
  border:0!important;
  visibility:hidden!important;
  overflow:hidden!important;
}
.sv-percent-table th,.sv-percent-table td{overflow:hidden;text-overflow:ellipsis}
.page.active .table-wrap > table.sv-percent-table,
.page.active .sv-auto-grid-wrap > table.sv-percent-table,
.page.active table.sv-resizable-table.sv-percent-table,
.page.active table.sv-percent-table{table-layout:fixed!important;width:var(--sv-percent-total-width,100%)!important;min-width:100%!important;max-width:none!important}

/* v2.0.23 — Rentabilidad dashboard modernizada */
.sv-column-percent-overlay{position:fixed;inset:0;z-index:1000000;background:rgba(0,0,0,.52);display:flex;align-items:center;justify-content:center;padding:18px}
.sv-column-percent-panel{width:min(720px,96vw);max-height:88vh;overflow:hidden;display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--border2);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.48)}
.sv-column-percent-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border)}
.sv-column-percent-head strong{display:block;font-size:15px;color:var(--text)}
.sv-column-percent-head span{display:block;font-size:12px;color:var(--text3);margin-top:3px}
.sv-column-percent-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:16px 18px;overflow:auto}
.sv-column-percent-row{display:grid;grid-template-columns:minmax(0,1fr) 76px 14px 112px;gap:8px;align-items:center;border:1px solid var(--border);background:rgba(255,255,255,.025);border-radius:10px;padding:8px 10px}
.sv-column-percent-row span{font-size:12px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-column-percent-row input{width:100%;padding:6px 8px;border:1px solid var(--border2);border-radius:8px;background:var(--bg);color:var(--text);font-family:inherit;text-align:right}
.sv-column-percent-row select{width:100%;min-width:0;padding:6px 7px;border:1px solid var(--border2);border-radius:8px;background:var(--bg);color:var(--text);font-family:inherit;font-size:12px}
.sv-column-percent-row em{font-style:normal;color:var(--text3);font-size:12px}
.sv-column-percent-total{padding:0 18px 12px;color:var(--text3);font-size:12px}
.sv-column-percent-total span{margin-left:6px;color:var(--text3)}
.sv-column-percent-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--border)}
@media (max-width: 720px){.sv-column-percent-list{grid-template-columns:1fr}.sv-column-percent-overlay{align-items:flex-end;padding:10px}.sv-column-percent-panel{max-height:94vh}}
.hsex-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg3);padding:9px 12px}
.hsex-summary strong{font-size:18px;color:var(--amber)}
.hsex-summary span{font-size:12px;color:var(--text3)}
.hsex-calendar-head,.hsex-day-row{display:grid;grid-template-columns:110px 90px minmax(220px,1fr);gap:10px;align-items:center}
.hsex-calendar-head{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:0 2px}
.hsex-calendar-body{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow:auto;padding-right:4px}
.hsex-day-row{border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.025);padding:7px 8px}
.hsex-day-row.hsex-day-active{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.08)}
.hsex-day-label{font-size:12px;color:var(--text2);font-weight:600;text-transform:capitalize}
.hsex-horas-input,.hsex-lugar-input{width:100%;padding:7px 9px;border:1px solid var(--border2);border-radius:8px;background:var(--bg);color:var(--text);font-family:inherit}
@media (max-width: 720px){
  .hsex-calendar-head{display:none}
  .hsex-day-row{grid-template-columns:1fr;gap:7px}
  .hsex-summary{align-items:flex-start;flex-direction:column}
}
.ppto-menu-floating{position:fixed;display:block;background:var(--bg2);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.38);z-index:999999;min-width:190px;padding:5px 0}
.ppto-menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border:0;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.ppto-menu-item:hover{background:rgba(96,165,250,.12)}
.ppto-menu-item i{font-size:14px}
.ppto-menu-sep{border-top:1px solid var(--border);margin:4px 0}

/* v2.0.29 - Rentabilidad sobria + KPIs superiores modernos */
.metrics > .metric,
.sv-kpi-card{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 0,rgba(96,165,250,.075),transparent 34%),
    linear-gradient(145deg,rgba(255,255,255,.043),rgba(255,255,255,.012)),
    var(--bg3)!important;
  border:1px solid rgba(148,163,184,.16)!important;
  border-radius:16px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.028)!important;
}
.metrics > .metric:after,
.sv-kpi-card:after{
  content:'';
  position:absolute;
  inset:auto -42px -58px auto;
  width:130px;
  height:130px;
  border-radius:999px;
  background:rgba(96,165,250,.055);
  pointer-events:none;
}
.metrics > .metric:hover,
.sv-kpi-card:hover{
  transform:translateY(-1px);
  border-color:rgba(148,163,184,.34)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.metrics > .metric .m-label,
.metrics > .metric .m-value,
.metrics > .metric .m-sub{position:relative;z-index:1}
.metrics > .metric .m-label{display:flex;align-items:center;gap:6px;color:var(--text3);letter-spacing:.075em}
.metrics > .metric .m-value{font-weight:800;letter-spacing:-.02em}
#dash-rentabilidad-card.sv-rent-compact{
  position:relative;
  overflow:hidden!important;
  padding:18px 20px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.028),rgba(255,255,255,.008)),var(--bg2)!important;
  border-color:rgba(148,163,184,.20)!important;
}
#dash-rentabilidad-card.sv-rent-compact:before{display:none!important;content:none!important}
#dash-rentabilidad-card.sv-rent-compact .sv-rent-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  margin-bottom:14px!important;
}
#dash-rentabilidad-card.sv-rent-compact.is-negative .metric:nth-child(3):after,
#dash-rentabilidad-card.sv-rent-compact.is-negative .metric:nth-child(4):after{background:rgba(248,113,113,.075)}
#dash-rentabilidad-card.sv-rent-compact.is-positive .metric:nth-child(3):after,
#dash-rentabilidad-card.sv-rent-compact.is-positive .metric:nth-child(4):after{background:rgba(74,222,128,.075)}
@media(max-width:920px){
  #dash-rentabilidad-card.sv-rent-compact .sv-rent-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  #dash-rentabilidad-card.sv-rent-compact .sv-rent-metrics{grid-template-columns:1fr!important}
}

/* v2.0.100 - Visual financiero moderno del comparativo mensual */
.sv-rent-viz2{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(260px,.72fr);
  min-height:248px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:20px;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 15%,rgba(96,165,250,.07),transparent 32%),
    linear-gradient(145deg,rgba(255,255,255,.027),rgba(255,255,255,.007));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.sv-rent-viz2-chart{padding:18px 22px 16px;min-width:0}
.sv-rent-viz2-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.sv-rent-viz2-head>div{display:flex;flex-direction:column;gap:4px}
.sv-rent-viz2-head span{color:var(--text3);font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.sv-rent-viz2-head strong{font-size:14px;color:var(--text);font-weight:700}
.sv-rent-viz2-scale{display:inline-flex!important;align-items:center;gap:5px;padding:5px 8px;border:1px solid rgba(148,163,184,.14);border-radius:999px;background:rgba(255,255,255,.025);letter-spacing:.04em!important;white-space:nowrap}
.sv-rent-viz2-plot{position:relative;height:174px;margin-top:10px;display:flex;justify-content:center;align-items:stretch;gap:clamp(42px,10vw,120px);padding:4px 56px 0}
.sv-rent-viz2-grid{position:absolute;inset:22px 0 34px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.sv-rent-viz2-grid:after,.sv-rent-viz2-grid span{content:'';display:block;border-top:1px dashed rgba(148,163,184,.105)}
.sv-rent-viz2-column{position:relative;z-index:1;width:min(150px,32%);display:grid;grid-template-rows:24px 1fr 25px;gap:5px;text-align:center}
.sv-rent-viz2-amount{font-size:13px;font-weight:800;letter-spacing:-.015em;white-space:nowrap}
.sv-rent-viz2-income .sv-rent-viz2-amount{color:#86efac}
.sv-rent-viz2-expense .sv-rent-viz2-amount{color:#fca5a5}
.sv-rent-viz2-barbox{position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;padding:0 18px;border-bottom:1px solid rgba(148,163,184,.22)}
.sv-rent-viz2-bar{position:relative;width:100%;min-height:0;border-radius:12px 12px 5px 5px;transition:height .65s cubic-bezier(.2,.85,.2,1);overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.22)}
.sv-rent-viz2-bar>span{position:absolute;inset:0;background:linear-gradient(115deg,transparent 10%,rgba(255,255,255,.23) 48%,transparent 72%);transform:translateX(-82%);animation:svRentShine 4.8s ease-in-out infinite}
.sv-rent-viz2-income .sv-rent-viz2-bar{background:linear-gradient(180deg,#86efac 0%,#22c55e 52%,#15803d 100%);box-shadow:0 14px 30px rgba(34,197,94,.16)}
.sv-rent-viz2-expense .sv-rent-viz2-bar{background:linear-gradient(180deg,#fca5a5 0%,#ef4444 52%,#b91c1c 100%);box-shadow:0 14px 30px rgba(239,68,68,.15)}
.sv-rent-viz2-label{display:flex;align-items:center;justify-content:center;gap:5px;color:var(--text2);font-size:11px;font-weight:650}
.sv-rent-viz2-income .sv-rent-viz2-label i{color:var(--green)}
.sv-rent-viz2-expense .sv-rent-viz2-label i{color:var(--red)}
.sv-rent-viz2-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;border-left:1px solid rgba(148,163,184,.14);background:linear-gradient(160deg,rgba(15,23,42,.34),rgba(255,255,255,.012));text-align:center}
.sv-rent-viz2-ring{--sv-ring-color:var(--green);position:relative;width:112px;height:112px;border-radius:50%;padding:10px;background:conic-gradient(var(--sv-ring-color) 0 var(--sv-ratio-angle),rgba(148,163,184,.105) var(--sv-ratio-angle) 360deg);box-shadow:0 0 34px color-mix(in srgb,var(--sv-ring-color) 13%,transparent)}
.sv-rent-viz2-ring:before{content:'';position:absolute;inset:8px;border-radius:50%;background:var(--bg2);border:1px solid rgba(148,163,184,.13)}
.sv-rent-viz2-ring>div{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.sv-rent-viz2-ring strong{font-size:23px;line-height:1;font-weight:850;letter-spacing:-.04em;color:var(--text)}
.sv-rent-viz2-ring span{margin-top:5px;font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.sv-rent-viz2-ring.is-warning{--sv-ring-color:var(--amber)}
.sv-rent-viz2-ring.is-over{--sv-ring-color:var(--red)}
.sv-rent-viz2-result{margin-top:12px;display:flex;flex-direction:column;align-items:center}
.sv-rent-viz2-result>span{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
.sv-rent-viz2-result>strong{margin-top:4px;font-size:18px;font-weight:800}
.sv-rent-viz2-result>small{margin-top:5px;max-width:220px;color:var(--text3);font-size:10px;line-height:1.35}
.sv-rent-viz2-counts{width:100%;display:flex;justify-content:center;gap:14px;margin-top:13px;padding-top:11px;border-top:1px solid rgba(148,163,184,.12);color:var(--text3);font-size:10px}
.sv-rent-viz2-counts span{display:flex;align-items:center;gap:4px;white-space:nowrap}
.sv-rent-viz2-counts strong{color:var(--text2);font-size:11px}
@keyframes svRentShine{0%,65%{transform:translateX(-82%)}85%,100%{transform:translateX(115%)}}
@media(prefers-reduced-motion:reduce){.sv-rent-viz2-bar,.sv-rent-viz2-bar>span{transition:none;animation:none}}
@media(max-width:900px){.sv-rent-viz2{grid-template-columns:1fr}.sv-rent-viz2-summary{border-left:0;border-top:1px solid rgba(148,163,184,.14);flex-direction:row;gap:22px;text-align:left}.sv-rent-viz2-result{margin-top:0;align-items:flex-start}.sv-rent-viz2-counts{width:auto;margin-top:0;padding:0 0 0 18px;border-top:0;border-left:1px solid rgba(148,163,184,.12);flex-direction:column;gap:7px}}
@media(max-width:620px){.sv-rent-viz2-chart{padding:15px 12px}.sv-rent-viz2-plot{gap:24px;padding-inline:16px}.sv-rent-viz2-column{width:42%}.sv-rent-viz2-barbox{padding-inline:12px}.sv-rent-viz2-summary{flex-direction:column;text-align:center}.sv-rent-viz2-result{align-items:center}.sv-rent-viz2-counts{width:100%;padding:10px 0 0;border-left:0;border-top:1px solid rgba(148,163,184,.12);flex-direction:row}}

/* v2.0.192 - Gastos legible en celular y controles coherentes */
.gas-toolbar-actions{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:900px){
  #page-gastos .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  #page-gastos .metrics .metric{padding:12px!important}
  #page-gastos #gasto-list{padding:14px 12px!important;overflow:visible!important}
  #page-gastos #gasto-list>.card-head{display:block!important}
  #page-gastos #gasto-list>.card-head>.card-title{display:block;margin-bottom:12px}
  #page-gastos .gas-toolbar-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%}
  #page-gastos .gas-toolbar-actions .search-input,
  #page-gastos .gas-toolbar-actions .btn{width:100%!important;min-height:44px;justify-content:center}
  #page-gastos .gas-toolbar-actions .sv-column-percent-btn{display:none!important}
  #page-gastos .table-wrap{overflow:visible!important;width:100%!important}
  #page-gastos #gas-tbl,
  #page-gastos #gas-tbl.sv-percent-table{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:auto!important}
  #page-gastos #gas-tbl colgroup,
  #page-gastos #gas-tbl thead{display:none!important}
  #page-gastos #gas-tbl tbody{display:grid!important;grid-template-columns:1fr;gap:12px;width:100%}
  #page-gastos #gas-tbl tbody tr.gas-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--border2);border-radius:14px;padding:0;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012)),var(--bg3);overflow:hidden}
  #page-gastos #gas-tbl tbody tr.gas-empty-row{display:block!important;border:1px solid var(--border);border-radius:12px}
  #page-gastos #gas-tbl tbody tr.gas-empty-row td{display:block!important;width:100%!important}
  #page-gastos #gas-tbl tbody tr.gas-row>td{display:flex!important;min-width:0!important;width:auto!important;max-width:none!important;min-height:56px;padding:10px 12px!important;border:0!important;border-bottom:1px solid rgba(148,163,184,.10)!important;overflow:visible!important;text-align:left!important;white-space:normal!important;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px}
  #page-gastos #gas-tbl tbody tr.gas-row>td:nth-last-child(-n+2){border-bottom:0!important}
  #page-gastos #gas-tbl tbody tr.gas-row>td:before{content:attr(data-label);display:block;font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);font-weight:600}
  #page-gastos #gas-tbl .gas-desc-cell{grid-column:1/-1;grid-row:1;max-width:none!important;min-height:68px!important;font-size:15px;line-height:1.35;white-space:normal!important}
  #page-gastos #gas-tbl .gas-date-cell{grid-column:1}
  #page-gastos #gas-tbl .gas-status-cell{grid-column:2}
  #page-gastos #gas-tbl .gas-amount-cell,
  #page-gastos #gas-tbl .gas-paid-cell{font-size:15px;font-weight:700!important}
  #page-gastos #gas-tbl .gas-status-cell .badge,
  #page-gastos #gas-tbl .gas-type-cell .badge{max-width:100%;white-space:normal;line-height:1.25;text-align:left}
  #page-gastos #gas-tbl .gas-bulk-cell{grid-column:1/-1;min-height:44px!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important}
  #page-gastos #gas-tbl .gas-bulk-cell.gas-bulk-hidden{display:none!important}
  #page-gastos #gas-tbl .gas-bulk-cell input{width:22px;height:22px}
  #page-gastos #gas-tbl .gas-actions-cell{grid-column:1/-1;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;flex-wrap:wrap;padding:10px!important;background:rgba(255,255,255,.018)}
  #page-gastos #gas-tbl .gas-actions-cell:before{width:100%}
  #page-gastos #gas-tbl .gas-actions-cell .btn{min-height:40px;justify-content:center}
  #page-gastos #gas-tbl .gas-actions-cell .btn:not(.btn-icon){flex:1 1 120px}
  #page-gastos #gas-tbl .gas-actions-cell .btn-icon{width:40px;flex:0 0 40px}
  #page-gastos .flex-end{justify-content:stretch!important}
  #page-gastos .flex-end .btn{width:100%;min-height:44px;justify-content:center}
}
@media(max-width:390px){
  #page-gastos .metrics{grid-template-columns:1fr!important}
  #page-gastos #gas-tbl tbody tr.gas-row{grid-template-columns:1fr}
  #page-gastos #gas-tbl .gas-desc-cell,
  #page-gastos #gas-tbl .gas-status-cell,
  #page-gastos #gas-tbl .gas-actions-cell,
  #page-gastos #gas-tbl .gas-bulk-cell{grid-column:1}
  #page-gastos #gas-tbl tbody tr.gas-row>td:nth-last-child(2){border-bottom:1px solid rgba(148,163,184,.10)!important}
}

/* v2.0.30 - Switch visual para preferencias booleanas */
.sv-switch-row{
  display:flex;
  align-items:center;
  gap:12px;
  width:max-content;
  max-width:100%;
  cursor:pointer;
  text-transform:none!important;
  letter-spacing:0!important;
  color:var(--text2)!important;
  user-select:none;
}
.sv-switch-row input{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  pointer-events:none;
}
.sv-switch-ui{
  position:relative;
  flex:0 0 auto;
  width:50px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.24);
  background:linear-gradient(180deg,rgba(120,130,160,.20),rgba(15,23,42,.72));
  box-shadow:inset 0 1px 5px rgba(0,0,0,.30);
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.sv-switch-ui:before{
  content:'';
  position:absolute;
  top:3px;
  left:3px;
  width:20px;
  height:20px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff,#cbd5e1);
  box-shadow:0 5px 12px rgba(0,0,0,.32);
  transition:transform .18s ease,background .18s ease;
}
.sv-switch-row input:checked + .sv-switch-ui{
  border-color:rgba(74,222,128,.44);
  background:linear-gradient(90deg,rgba(34,197,94,.72),rgba(96,165,250,.42));
  box-shadow:0 0 18px rgba(74,222,128,.14),inset 0 1px 5px rgba(0,0,0,.22);
}
.sv-switch-row input:checked + .sv-switch-ui:before{
  transform:translateX(22px);
  background:linear-gradient(180deg,#ecfdf5,#bbf7d0);
}
.sv-switch-row input:focus-visible + .sv-switch-ui{
  outline:2px solid rgba(96,165,250,.65);
  outline-offset:3px;
}
.sv-switch-text{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.sv-switch-text strong{
  font-size:13px;
  color:var(--text);
  line-height:1.2;
}
.sv-switch-text em{
  font-style:normal;
  font-size:11px;
  color:var(--text3);
  line-height:1.25;
}

/* v2.0.220 - Firma amplia y grillas responsivas inicializadas por módulo */
.ot-firma-superficie{
  position:relative;
  width:100%;
  min-height:260px;
  overflow:hidden;
  border:1px solid var(--border2);
  border-radius:12px;
  background:#fff;
}
.ot-firma-canvas{
  display:block;
  width:100%;
  height:clamp(260px,32vh,340px);
  min-height:260px;
  cursor:crosshair;
  touch-action:none;
  background-color:#fff;
}

.sv-responsive-grid .sv-grid-actions-cell{
  position:relative;
  overflow:visible!important;
}
.sv-grid-actions-original{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
}
.sv-grid-actions-trigger,
.sv-grid-actions-menu{
  display:none;
}
.sv-grid-actions-menu{
  min-width:190px;
  padding:6px;
  border:1px solid var(--border2);
  border-radius:12px;
  background:var(--bg2);
  box-shadow:0 18px 42px rgba(0,0,0,.38);
  z-index:120;
}
.sv-grid-actions-item{
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px 10px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text2);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.sv-grid-actions-item:hover,
.sv-grid-actions-item:focus-visible{
  background:rgba(255,255,255,.07);
  color:var(--text);
  outline:none;
}
.sv-responsive-grid th[data-sort]{
  cursor:pointer;
  user-select:none;
}
.sv-responsive-grid th[data-sort]:hover{
  color:var(--text);
}

@media(max-width:900px){
  .ot-firma-superficie{min-height:300px}
  .ot-firma-canvas{height:300px;min-height:300px}
  .sv-responsive-grid{
    min-width:760px!important;
    width:max-content!important;
    table-layout:auto!important;
  }
  .sv-responsive-grid th,
  .sv-responsive-grid td{
    white-space:nowrap!important;
  }
  .sv-responsive-grid .sv-grid-actions-original{display:none!important}
  .sv-responsive-grid .sv-grid-actions-trigger{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
  }
  .sv-responsive-grid .sv-grid-actions-menu.abierto{
    position:fixed;
    left:12px;
    right:12px;
    bottom:78px;
    display:flex;
    flex-direction:column;
    max-height:min(60vh,420px);
    overflow:auto;
  }
}

@media(max-width:520px){
  .ot-firma-superficie{min-height:330px}
  .ot-firma-canvas{height:330px;min-height:330px}
}

/* v2.0.225 - Las grillas conservan su tabla en escritorio y pasan a tarjetas
   consistentes en celular. El contenido no se comprime ni se trunca. */
.sv-ppto-mobile-scroll-hint{display:none!important}
@media(max-width:900px){
  #role-badge-el{display:none!important}
  .topbar-dolar{display:inline-flex!important;flex-shrink:0}
  .sv-column-percent-btn,
  [onclick*="openColumnPercentEditor"]{display:none!important}

  .table-wrap:has(> table.sv-mobile-card-grid),
  .sv-auto-grid-wrap:has(> table.sv-mobile-card-grid){
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  table.sv-mobile-card-grid,
  #page-presupuesto #ppto-tabla.sv-mobile-card-grid,
  #page-presupuesto #ppto-tabla.sv-percent-table.sv-mobile-card-grid,
  #page-presupuesto #ppto-tabla.sv-resizable-table.sv-percent-table.sv-mobile-card-grid{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:auto!important;
    border:0!important;
  }
  table.sv-mobile-card-grid colgroup,
  table.sv-mobile-card-grid thead{display:none!important}
  table.sv-mobile-card-grid tbody{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    width:100%!important;
  }
  table.sv-mobile-card-grid tbody > tr{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    padding:12px!important;
    border:1px solid var(--border)!important;
    border-radius:14px!important;
    background:var(--bg3)!important;
    box-shadow:0 5px 16px rgba(0,0,0,.08)!important;
  }
  table.sv-mobile-card-grid tbody > tr[hidden],
  table.sv-mobile-card-grid tbody > tr.hide-mobile,
  table.sv-mobile-card-grid tbody > tr[style*="display: none"],
  table.sv-mobile-card-grid tbody > tr[style*="display:none"]{display:none!important}
  table.sv-mobile-card-grid tbody > tr > td{
    position:static!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    min-width:0!important;
    width:auto!important;
    min-height:54px!important;
    padding:9px 10px!important;
    border:0!important;
    border-bottom:1px solid var(--border)!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-overflow:clip!important;
    text-align:left!important;
  }
  table.sv-mobile-card-grid tbody > tr > td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:4px;
    color:var(--text3);
    font-size:10px;
    font-weight:600;
    line-height:1.2;
    letter-spacing:.055em;
    text-transform:uppercase;
  }
  table.sv-mobile-card-grid tbody > tr > td.sv-card-wide,
  table.sv-mobile-card-grid tbody > tr > td.sv-card-actions,
  table.sv-mobile-card-grid tbody > tr > td[colspan]{grid-column:1/-1!important}
  table.sv-mobile-card-grid tbody > tr > td.sv-card-actions{
    min-height:44px!important;
    align-items:flex-end!important;
    border-bottom:0!important;
  }
  table.sv-mobile-card-grid tbody > tr > td.sv-card-actions::before{align-self:flex-start}
  table.sv-mobile-card-grid tbody > tr > td[hidden],
  table.sv-mobile-card-grid tbody > tr > td.hide-mobile,
  table.sv-mobile-card-grid tbody > tr > td[style*="display: none"],
  table.sv-mobile-card-grid tbody > tr > td[style*="display:none"]{display:none!important}
  table.sv-mobile-card-grid .badge{max-width:100%;white-space:normal!important;text-align:center}
  table.sv-mobile-card-grid .sv-grid-actions-trigger{margin-left:auto}
  #page-presupuesto #ppto-list-view > .card{overflow-x:visible!important}
  #page-presupuesto #ppto-list-view .sv-column-percent-btn{display:none!important}
}
@media(max-width:430px){
  table.sv-mobile-card-grid tbody > tr{grid-template-columns:1fr!important}
  table.sv-mobile-card-grid tbody > tr > td{grid-column:1/-1!important}
}

/* v2.0.253 - Cargos usa la misma tarjeta adaptable que el resto de las grillas. */
@media(max-width:900px){
  #cargos-tbl.sv-mobile-card-grid tbody > tr > td:first-child{
    grid-column:1/-1!important;
    min-height:62px!important;
    font-size:14px!important;
    border-bottom-color:var(--border2)!important;
  }
  #cargos-tbl.sv-mobile-card-grid tbody > tr > td:first-child::before{color:var(--blue)!important}
  #cargos-tbl.sv-mobile-card-grid input[type="number"]{
    width:100%!important;
    max-width:150px!important;
    min-height:34px!important;
    text-align:left!important;
  }
  #cargos-tbl.sv-mobile-card-grid tbody > tr > td:nth-child(3) > div{
    width:100%!important;
    justify-content:flex-start!important;
  }
}
