/* AppSeguros · Mancera Hernández SAS · v1.2.0-pruebas */
@font-face{font-family:'Archivo';src:url('../fonts/archivo-variable.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{--side:#1E86A0;--side2:#197389;--side3:#135E70;--ink:#13233F;--ink2:#1F3459;--sign:#F4C430;--bg:#ECEFF4;--paper:#fff;--line:#D7DDE6;--soft:#F5F7FA;--muted:#586377;--m1:#1F8A5B;--m2:#B98700;--m2b:#F4C430;--m3:#2A63C9;--m4:#6B4FC4;--m5:#0E7C7B;--m6:#C2386D;--m7:#0F7C9E;--danger:#C8372D;--warn:#D98200;--ok:#1F8A5B;--r:14px}
*{box-sizing:border-box}input[type=checkbox]{accent-color:var(--ink)}
html,body{margin:0}
body{font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);font-size:14.5px;line-height:1.45;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;line-height:1.15;font-stretch:86%}
h1{font-size:26px;font-weight:780}
h2{font-size:20px;font-weight:720}
h3{font-size:16px;font-weight:700}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sign);outline-offset:2px}
.ic{flex:none;vertical-align:middle}
.muted{color:var(--muted)}
.small{font-size:12.5px}
.strong{font-weight:700}
.num{font-variant-numeric:tabular-nums}

/* Shell */
.shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
.side{background:var(--side);color:#fff;padding:18px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:11px;align-items:center;padding:4px 8px 20px}
.mark{width:42px;height:42px;border-radius:11px;background:#fff;color:var(--ink);display:grid;place-items:center;font-weight:860;font-stretch:75%;font-size:17px;letter-spacing:-.5px;flex:none}
.brand b{display:block;color:#fff;font-size:15.5px;font-stretch:88%;font-weight:720;line-height:1.1}
.brand small{color:#FFFFFF;font-size:12.5px;font-weight:500}
.navlbl{font-size:12px;font-weight:600;color:#FFFFFF;padding:14px 12px 6px}
.nav{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#fff;font-weight:500;cursor:pointer;border:0;background:none;text-align:left;width:100%}
.nav:hover{background:var(--side2);color:#fff}
.nav.on{background:var(--side3);color:#fff;font-weight:650;box-shadow:inset 3px 0 0 var(--sign)}
.nav .tag{margin-left:auto;font-size:11.5px;color:#FFFFFF}
.nav .sw{width:10px;height:10px;border-radius:3px;margin-left:auto;flex:none;box-shadow:0 0 0 1.5px #fff}
.side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.35);padding:14px 8px 4px;display:flex;gap:10px;align-items:center}
.avatar{width:36px;height:36px;border-radius:50%;background:#2C4470;color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.side-foot .who{min-width:0;flex:1}
.side-foot .who b{display:block;color:#fff;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-foot .who span{font-size:12px;color:#FFFFFF}.side-foot .avatar{background:var(--side3)}.side .iconbtn{color:#fff}.side .iconbtn:hover{background:var(--side2)}
.iconbtn{background:none;border:0;color:#AFC0D8;cursor:pointer;padding:6px;border-radius:8px}
.iconbtn:hover{background:var(--ink2);color:#fff}
main{min-width:0}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;background:var(--paper);border-bottom:1px solid var(--line);gap:16px;position:sticky;top:0;z-index:20;flex-wrap:wrap}
.crumb{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.crumb b{color:var(--ink);font-size:15px}
.top-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.btn.mob-out{display:none}@media (max-width:860px){.btn.mob-out{display:inline-flex}}.demo-pill{background:#FFF4CC;color:#6B5200;border:1px solid #F0D98A;border-radius:999px;padding:4px 10px;font-size:12px}
.switch{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.switch select{padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--soft);max-width:230px}
.content{padding:22px 28px 70px;max-width:1360px}

/* Cards & grids */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.card.flat{background:var(--soft)}
.card-h{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.card-h .r{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gauto{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.tight{gap:10px}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sp{height:14px}

/* KPI */
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px 14px 18px;position:relative;overflow:hidden}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c,var(--ink))}
.kpi .l{font-size:12.5px;color:var(--muted)}
.kpi .v{font-size:25px;font-weight:760;font-stretch:82%;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.kpi .s{font-size:12.5px;color:var(--muted)}
.kpi.click{cursor:pointer}
.kpi.click:hover{border-color:var(--c)}
.kpi.sel{border-color:var(--c);box-shadow:0 0 0 2px var(--c) inset}

/* Module cards */
.modcard{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:0;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;text-align:left}
.modcard:hover{border-color:var(--c)}
.modcard .band{background:var(--c);color:#fff;padding:14px 18px;display:flex;align-items:flex-end;justify-content:space-between;min-height:84px}
.modcard .band .n{font-size:46px;font-weight:850;font-stretch:70%;line-height:.8;opacity:.95}
.modcard .band.dark{color:var(--ink)}
.modcard .body{padding:14px 18px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.modcard .body p{color:var(--muted);font-size:13px}
.modcard .stats{display:flex;gap:18px;margin-top:auto;padding-top:8px;border-top:1px dashed var(--line)}
.modcard .stats div{font-size:12px;color:var(--muted)}
.modcard .stats b{display:block;font-size:17px;color:var(--ink);font-stretch:85%}

.modhead{display:flex;gap:16px;align-items:stretch;margin-bottom:14px}
.modhead .n{background:var(--c);color:#fff;border-radius:14px;min-width:74px;display:grid;place-items:center;font-size:40px;font-weight:850;font-stretch:70%}
.modhead .n.dark{color:var(--ink)}
.modhead .t{display:flex;flex-direction:column;justify-content:center;gap:3px}
.tiles{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.tiles>.tile{flex:1 1 140px;max-width:230px}
.tile{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left}
.tile:hover{border-color:var(--c)}
.tile.on{border-color:var(--c);box-shadow:0 0 0 2px var(--c) inset;background:var(--soft)}
.tile .ib{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--soft);color:var(--c);flex:none}
.tile.on .ib{background:var(--c);color:#fff}
.tile span{font-weight:600;font-size:13.5px;line-height:1.2}

/* Forms */
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label,.lbl{font-size:12.5px;color:var(--muted);font-weight:600}
.lbl{display:block;margin:12px 0 6px}
input,select,textarea{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:#fff;width:100%;min-width:0}
textarea{min-height:80px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px rgba(244,196,48,.45)}
.ro{border:1px dashed var(--line);border-radius:9px;padding:9px 11px;background:var(--soft);display:flex;align-items:center;gap:6px;min-height:40px}
.ro.strong{font-size:17px}
.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:#fff}
.search input{border:0;padding:9px 0;box-shadow:none!important}
.check{display:flex;gap:8px;align-items:center;font-size:13.5px;cursor:pointer}
.check input{width:auto}
.form-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
.sec-t{font-size:13px;font-weight:700;margin:16px 0 8px;display:flex;align-items:center;gap:8px}
.sec-t:after{content:"";flex:1;border-top:1px solid var(--line)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:9px 14px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:600;white-space:nowrap}
.btn:hover{border-color:var(--ink)}
.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.primary:hover{background:var(--ink2)}
.btn.sign{background:var(--sign);border-color:var(--sign);color:var(--ink)}
.btn.danger{color:var(--danger);border-color:#EBC0BC}
.btn.danger:hover{background:#FBEDEC}
.btn.wa{color:#11743F;border-color:#BFE3CE}
.btn.wa:hover{background:#EAF7EF}
.btn.ghost{background:transparent}
.btn.sm{padding:6px 10px;font-size:13px;border-radius:8px}
.btn.xs{padding:4px 8px;font-size:12px;border-radius:7px;gap:4px}
.btn.block{width:100%}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* Tables */
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:560px}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{position:sticky;top:0;background:var(--soft);text-align:left;font-weight:650;font-size:12.5px;color:var(--muted);padding:9px 11px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
td{padding:9px 11px;border-bottom:1px solid #EDF0F4;vertical-align:middle}
tr:last-child td{border-bottom:0}
td.num{white-space:nowrap}td .acts{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
/* con el menú «Más» las acciones caben en una sola línea */
td .acts:has(.mas){flex-wrap:nowrap;white-space:nowrap;gap:4px}
td:has(.acts .mas){white-space:nowrap;width:1%}
/* La columna de acciones queda siempre a la vista aunque la tabla corra.
   Antes solo pasaba cuando las acciones se agrupaban en el menú «Más», así
   que en las tablas anchas (recibos escolares, por ejemplo) los botones se
   quedaban fuera de la pantalla y tocaba reducir el zoom para alcanzarlos. */
.tbl-wrap table:has(td .acts) td:has(.acts){position:sticky;right:0;z-index:3;background:#fff;
  box-shadow:-12px 0 12px -11px rgba(16,24,40,.16)}
.tbl-wrap table:has(td .acts) th:last-child{position:sticky;right:0;z-index:4;background:var(--soft);
  box-shadow:-12px 0 12px -11px rgba(16,24,40,.16)}
/* Los botones de la fila, en una sola línea: apilados estiraban la fila. */
.tbl-wrap table:has(td .acts) td:has(.acts){white-space:nowrap;width:1%}
td .acts{flex-wrap:nowrap}
/* En pantallas de portátil se aprieta la tabla: cabe más sin perder letra. */
@media (max-width:1560px){
  .shell{grid-template-columns:216px minmax(0,1fr)}
  table{font-size:13px}
  th{padding:8px 8px;font-size:12px}
  td{padding:8px 8px}
  td .acts .btn.xs{padding:4px 7px}
}
@media (max-width:1320px){
  .shell{grid-template-columns:196px minmax(0,1fr)}
  table{font-size:12.5px}
  th,td{padding:7px 7px}
}
/* v3.2 · menú «Más» de las listas */
td .acts .btn.xs{white-space:nowrap}
td .acts [data-ic] .et{display:none}
td .acts [data-ic]{padding:5px 6px}
td .acts [data-ic] svg{margin:0}
.mas{position:relative;display:inline-flex}
.mas-bt{color:var(--muted);padding:5px 6px}
.mas .mas-p{font-size:15px;line-height:1;letter-spacing:1px}
.mas .mas-n{background:#EDF0F4;color:var(--muted);border-radius:20px;padding:0 4px;font-size:10px;font-weight:700;margin-left:3px}
.mas.on .mas-bt{background:#EDF0F4;color:var(--tx)}
.mas-pop{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:90;min-width:176px;max-width:240px;
  background:#fff;border:1px solid #E3E8EF;border-radius:11px;padding:6px;
  box-shadow:0 12px 34px rgba(16,24,40,.16);flex-direction:column;gap:3px}
.mas.on .mas-pop{display:flex}
.mas-pop>*{width:100%;justify-content:flex-start !important;font-size:12.5px;padding:7px 10px;border-radius:8px}
.mas-pop>.btn.xs{border-color:transparent;background:transparent}
.mas-pop>.btn.xs:hover{background:#F3F6FA;border-color:transparent}
.mas-pop>.btn.xs.danger:hover{background:#FDECEC}
@media(max-width:760px){.mas-pop{min-width:170px}}
.empty{padding:28px;text-align:center;color:var(--muted)}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;white-space:nowrap;background:#EEF1F5;color:#445066}
.badge.ok{background:#E3F4EB;color:#16663F}
.badge.warn{background:#FFF1D6;color:#8A5300}
.badge.danger{background:#FBE6E4;color:#9E2A21}
.badge.info{background:#E5EEFB;color:#1F4E9E}
.badge.violet{background:#EEE9FA;color:#4F3799}
.badge.dark{background:var(--ink);color:#fff}
.chip{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:1px 7px;font-size:11.5px;font-weight:650;border:1px solid var(--line);background:#fff;margin:1px 3px 1px 0}
.bar{height:8px;border-radius:99px;background:#E4E8EE;overflow:hidden}
.bar i{display:block;height:100%;background:var(--c,var(--ink));border-radius:99px}

/* POS */
.pos{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.step-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.stepn{width:26px;height:26px;border-radius:50%;background:var(--m1);color:#fff;display:grid;place-items:center;font-weight:750;font-size:13px}
.inst-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.pick{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 11px;cursor:pointer}
.pick b{background:var(--soft);border-radius:7px;padding:4px 7px;font-stretch:80%;font-size:14px}
.pick span{font-size:12.5px;line-height:1.2}
.pick.on{border-color:var(--m1);box-shadow:0 0 0 2px var(--m1) inset}
.pick.on b{background:var(--m1);color:#fff}
.results{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:300px;overflow:auto}
.res{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;cursor:pointer;text-align:left;width:100%}
.res:hover{border-color:var(--m1)}
.res.on{border-color:var(--m1);box-shadow:0 0 0 2px var(--m1) inset;background:#F3FAF6}
.res[disabled]{cursor:default;opacity:.62;border-style:dashed}
.res .nm{font-weight:650}
.res .meta{font-size:12.5px;color:var(--muted)}
.res .badge{margin-left:auto}
.medios{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.medio{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;font-weight:600;font-size:13px}
.medio.on{border-color:var(--ink);background:var(--ink);color:#fff}
.pos-side{position:sticky;top:84px;display:flex;flex-direction:column;gap:10px}
.printer{background:var(--ink);border-radius:16px;padding:14px 14px 0;display:flex;flex-direction:column;align-items:center}
.printer .slot{width:92%;height:8px;border-radius:6px;background:#0A1528;margin-bottom:-2px}
.printer .cap{color:#9FB0C8;font-size:12px;align-self:flex-start;margin:0 0 8px 4px}
.hint{font-size:12.5px;color:var(--muted);text-align:center}

/* Receipt 58mm */
.paper58{width:236px;background:#fff;color:#111;font-family:'DejaVu Sans Mono','Consolas','Courier New',monospace;font-size:11px;line-height:1.38;padding:14px 12px 26px;position:relative;margin-bottom:0}
.paper58:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px;background:linear-gradient(-45deg,transparent 5px,#fff 0) 0 0/10px 10px,linear-gradient(45deg,transparent 5px,#fff 0) 0 0/10px 10px}
.printer .paper58{margin-bottom:22px}
.paper58 .c{text-align:center}
.paper58 .b{font-weight:700}
.paper58 .big{font-size:13.5px}
.paper58 .lr{display:flex;justify-content:space-between;gap:6px}
.paper58 .lr span:last-child{text-align:right}
.paper58 .sep{border-top:1px dashed #555;margin:6px 0}
.paper58 .logo{width:38px;height:38px;margin:0 auto 4px;border:2px solid #111;border-radius:8px;display:grid;place-items:center;font-family:'Archivo',sans-serif;font-weight:850;font-stretch:75%}
.paper58.dim{color:#9AA3B2}
.paper58 .stamp{border:2px solid #111;text-align:center;font-weight:800;margin:6px 0;padding:2px}
.rcpt-modal{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start}
.rcpt-bg{background:#DDE2EA;border-radius:14px;padding:18px 18px 28px;display:flex;justify-content:center}

/* Modal & toast */
.overlay{position:fixed;inset:0;background:rgba(13,24,44,.55);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:100;overflow:auto}
.modal{background:#fff;border-radius:18px;width:min(760px,100%);padding:22px 24px;position:relative}
.modal.wide{width:min(980px,100%)}
.modal.narrow{width:min(520px,100%)}
.modal-h{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.modal-h .iconbtn{margin-left:auto;color:var(--muted)}
.modal-h .iconbtn:hover{background:var(--soft);color:var(--ink)}
#toasts{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:200}
.toast{background:var(--ink);color:#fff;border-radius:12px;padding:11px 14px;display:flex;gap:9px;align-items:center;box-shadow:0 8px 24px rgba(13,24,44,.25);max-width:380px;font-size:13.5px}
.toast.err{background:var(--danger)}
.toast .ic{color:var(--sign)}
.toast.err .ic{color:#fff}

/* Login */
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}
.login-art{background:var(--side);color:#fff;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-art .big{font-size:64px;font-weight:860;font-stretch:68%;line-height:.9;letter-spacing:-1px;max-width:520px}
.login-art .big em{font-style:normal;color:var(--sign)}
.login-art .stripe{position:absolute;right:-90px;top:70px;width:420px;height:44px;background:repeating-linear-gradient(-45deg,var(--sign) 0 26px,var(--side) 26px 52px);transform:rotate(-12deg);opacity:.9}
.login-art ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:520px}
.login-art li{border:1px solid rgba(255,255,255,.4);border-radius:12px;padding:10px 12px;font-size:13px;color:#F2FAFC}
.login-art li b{display:block;color:#fff;font-size:14px}
.login-form{padding:40px 48px;display:flex;flex-direction:column;justify-content:center;gap:16px;max-width:620px}
.demo-users{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.du{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;display:flex;gap:10px;align-items:center;cursor:pointer;text-align:left}
.du:hover{border-color:var(--ink)}
.du .avatar{background:var(--soft);color:var(--ink);border:1px solid var(--line)}
.du b{display:block;font-size:13.5px}
.du span{font-size:12px;color:var(--muted)}
.du.off{opacity:.55}

/* Kanban */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;overflow:auto;padding-bottom:6px}
.col{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:10px;min-height:300px}
.col-h{display:flex;align-items:center;gap:8px;padding:4px 4px 10px;font-weight:700;font-size:13.5px}
.col-h .badge{margin-left:auto}
.kcard{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 11px;margin-bottom:8px;display:flex;flex-direction:column;gap:5px;font-size:13px}
.kcard b{font-size:13.5px}.kcard .kh{flex-wrap:nowrap;align-items:flex-start}.kcard .kh span{flex:none}
.kcard select{padding:5px 7px;font-size:12.5px}

/* Bars chart */
.hbars{display:flex;flex-direction:column;gap:10px}
.hb{display:grid;grid-template-columns:170px 1fr 90px;gap:10px;align-items:center;font-size:13px}.hb>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb .bar{height:12px}
.stackbar{display:flex;height:16px;border-radius:99px;overflow:hidden;background:#E4E8EE}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12.5px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}

.alert-row{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #EDF0F4;font-size:13.5px}
.alert-row:last-child{border-bottom:0}
.dropzone{border:2px dashed var(--line);border-radius:14px;padding:22px;text-align:center;background:var(--soft);display:flex;flex-direction:column;gap:8px;align-items:center}
.steps3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.perm td,.perm th{text-align:center}
.perm td:first-child,.perm th:first-child{text-align:left}
.perm input{width:18px;height:18px}

.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.split{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}
.alogo{display:inline-grid;place-items:center;border-radius:6px;color:#fff;font-weight:800;font-stretch:78%;flex:none;overflow:hidden;border:1px solid rgba(19,35,63,.14);line-height:1}
.alogo img{max-width:92%;max-height:92%;object-fit:contain}
.mini{width:100%;font-size:13px;border-collapse:collapse}.mini td{padding:6px 0;border-bottom:1px dashed #E4E8EE}.mini tr:last-child td{border-bottom:0}
.addcard{border-style:dashed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;min-height:200px;background:transparent}
.legal{display:flex;gap:8px;align-items:flex-start;border-radius:10px;padding:9px 12px;font-size:12.5px;margin-bottom:12px;line-height:1.4}
.legal .ic{margin-top:1px}.legal.ok{background:#E9F6EF;color:#16553A}.legal.no{background:#FFF3DC;color:#7A4A00}
.conn{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;border:1px solid;font-weight:600;white-space:nowrap}
.conn.on{background:#E3F4EB;color:#16663F;border-color:#BFE3CE}.conn.off{background:#FFF1D6;color:#8A5300;border-color:#F0D98A}.conn.sync{background:#E5EEFB;color:#1F4E9E;border-color:#C5D8F5}
.offbar{background:#FFF1D6;color:#6B4200;border-bottom:1px solid #F0D98A;padding:9px 28px;display:flex;gap:8px;align-items:center;font-size:13px}
.offc{border-style:dashed;background:#FBFCFD}
.ibx{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--c);color:#fff;flex:none}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.seg button{border:0;background:transparent;padding:7px 16px;cursor:pointer;font-weight:600;font-size:13px}.seg button.on{background:var(--ink);color:#fff}
.phone{width:270px;border-radius:30px;background:var(--ink);padding:10px 10px 16px}.phone-top{display:flex;align-items:center;gap:8px;color:#fff;font-size:13px;font-weight:600;padding:6px 8px 10px}
.screen{background:#ECE7DF;border-radius:20px;min-height:330px;padding:14px 12px;display:flex;flex-direction:column;gap:8px}
.bubble{background:#fff;border-radius:4px 12px 12px 12px;padding:8px 10px 18px;font-size:13px;max-width:94%;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.08)}.bubble .t{position:absolute;right:8px;bottom:3px;font-size:10px;color:#8A93A3}.bubble.img{padding:4px}.bubble img{width:100%;border-radius:8px;display:block}
.mail{width:100%;max-width:330px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;font-size:13px}.mail-h{background:var(--ink);color:#fff;padding:12px 14px;display:flex;gap:10px;align-items:center}.mail-h span{font-size:12px;color:#C9D3E2}.mail-img{width:100%;display:block}.mail-b{padding:14px}.mail-f{font-size:11px;color:var(--muted);padding:10px 14px;background:var(--soft)}
.m6btn{background:var(--m6);color:#fff;border-color:var(--m6)}.m6btn:hover{filter:brightness(.94);border-color:var(--m6)}
.pos.cam{grid-template-columns:minmax(0,1fr) 340px}
.prod h3{font-size:15px}.placa{font-family:'DejaVu Sans Mono',Consolas,monospace;font-weight:700;font-size:18px;border:2px solid var(--ink);border-radius:6px;padding:2px 10px;background:var(--sign)}
.hb>span.lg{display:flex;align-items:center;gap:8px}
@media (max-width:1100px){.g5{grid-template-columns:repeat(3,minmax(0,1fr))}.split{grid-template-columns:1fr}.pos.cam{grid-template-columns:1fr}}
@media (max-width:860px){.g5{grid-template-columns:repeat(2,1fr)}.offbar{padding:8px 16px}}
.ofis{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:6px;font-size:11.5px;color:var(--muted);line-height:1.35}.ofis b{color:var(--ink);font-weight:700}
.mark.logo{background:#fff;padding:5px;overflow:hidden}.mark.logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
#print-area{display:none}
@media print{
  @page{size:58mm auto;margin:0}
  body{background:#fff}
  body>*:not(#print-area){display:none!important}
  #print-area{display:block!important}
  #print-area .paper58{width:58mm;padding:3mm 3mm 6mm;font-size:9pt}
  #print-area .paper58:after{display:none}
}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.pos{grid-template-columns:1fr}.pos-side{position:static}.login{grid-template-columns:1fr}.login-art{min-height:auto;gap:30px}}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;overflow-x:auto;padding:10px;gap:6px}
  .brand,.navlbl,.side-foot,.side-credit{display:none}
  .nav{width:auto;white-space:nowrap}
  .g2,.g3,.steps3,.rcpt-modal{grid-template-columns:1fr}
  .content{padding:16px}
  .top{padding:12px 16px}
  .medios{grid-template-columns:repeat(2,1fr)}
  .demo-users{grid-template-columns:1fr}
  .hb{grid-template-columns:100px 1fr 70px}
  .login-art .big{font-size:44px}
  .login-form{padding:28px 20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Campos obligatorios sin diligenciar */
.field.falta label{color:var(--danger)}
.field.falta input,.field.falta select,.field.falta textarea,input.falta,select.falta,textarea.falta{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(200,55,45,.16)!important;background:#FFF6F5!important}
label.falta{color:var(--danger);outline:2px solid rgba(200,55,45,.35);outline-offset:3px;border-radius:6px}
.search.falta{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(200,55,45,.16)}

/* Cotizador todo riesgo en tarjetas (v1.4) */
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:start}
.qcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.qhead{display:flex;align-items:center;gap:10px}.qhead select{flex:1;min-width:0;font-weight:700}
.qtot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;background:var(--soft);border-radius:10px;padding:9px 12px;font-size:13px;color:var(--muted)}
.qtot b{color:var(--ink);margin-left:4px}.qtot span:last-child b{font-size:16px;color:var(--side3)}
.qsec{border-top:1px solid var(--line);padding-top:8px}.qsec h5{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--side);margin:0 0 6px}
.qrow{display:flex;align-items:center;gap:8px;font-size:13px;padding:2px 0}.qrow span:not(.qi){flex:1;min-width:0}.qrow b{white-space:nowrap}
.qrow.ded span{color:var(--muted)}
.qi{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;flex:none}
.qi.ok{background:var(--ok)}.qi.no{background:var(--danger)}
.qadd{border-style:dashed;align-items:center;justify-content:center;min-height:260px;cursor:pointer;background:transparent;color:var(--ink);font:inherit}
.qadd:hover{border-color:var(--side);background:var(--soft)}
.qedit{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:8px}

/* Seguimiento de cotizaciones · v1.4.1 */
.kq-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.seg button{border:0;background:none;padding:8px 11px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-right:1px solid var(--line)}
.seg button:last-child{border-right:0}.seg button.on{background:var(--m4);color:#fff}
.kq{gap:6px}.kq-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.kq-nom{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kq-veh{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kq-row{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.kq-acts{display:flex;gap:5px}.kq-acts .btn{flex:none}
.kq-edit{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;border-color:#CBBEF0;background:#F6F3FF}
.placa{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;background:#F7D117;border:2px solid #1B1B1B;border-radius:6px;padding:3px 10px 1px;line-height:1;box-shadow:inset 0 0 0 2px #F7D117,inset 0 0 0 3px rgba(0,0,0,.35);min-width:92px}
.placa b{font-family:"Arial Narrow",Arial,sans-serif;font-weight:800;font-size:19px;letter-spacing:1.5px;color:#111}
.placa i{font-style:normal;font-size:6.5px;letter-spacing:1.6px;font-weight:700;color:#111;margin-top:1px}
.placa.mini{min-width:78px;padding:2px 8px 1px}.placa.mini b{font-size:16px}
.placa.vacia{background:#EEF1F5;border-style:dashed;color:var(--muted);font-size:10px;font-weight:700;padding:6px 8px}
@media (max-width:760px){.seg{width:100%;overflow-x:auto}.seg button{flex:1;padding:8px 6px}}
.kq-top .small{white-space:nowrap}

.placa{padding:4px 10px;min-height:32px}.placa.mini{padding:3px 8px;min-height:28px}.placa b{line-height:1}
.kq-top{align-items:center}

.lnk{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.lnk:hover b{color:var(--side);text-decoration:underline}
.kq-bar select{width:auto;flex:0 1 220px;min-width:170px}@media (max-width:760px){.kq-bar select{flex:1 1 100%}}

.side-credit{font-size:10.5px;color:rgba(255,255,255,.62);padding:10px 14px 0;margin-top:auto;letter-spacing:.2px}
.side-credit+.side-foot{margin-top:8px}

/* Campana de avisos · v1.9 */
.bell-w{position:relative;display:inline-flex}
.bell{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;width:38px;height:34px;display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.bell.on{border-color:#F0C98A;background:#FFFBF1}
.bell-n{position:absolute;top:-7px;right:-7px;background:var(--danger);color:#fff;border-radius:10px;font-size:10.5px;font-weight:800;padding:1px 5px;line-height:1.5}
.bell-box{position:absolute;right:0;top:42px;width:360px;max-width:92vw;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(19,35,63,.18);z-index:60;overflow:hidden}
.bell-h{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13.5px}
.bell-i{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 12px;cursor:pointer;font:inherit}
.bell-i:last-child{border-bottom:0}.bell-i:hover{background:var(--soft)}
.bell-i>span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.bell-i b{font-size:13px}.bell-i .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bell-ic{color:var(--side);flex:none;margin-top:1px}
.field .dv{max-width:70px;text-align:center;background:var(--soft);font-weight:700}

/* Lugar de venta obligatorio · v1.9.2 */
.puntos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:6px}
.medio.punto{padding:10px 8px;text-align:center}.medio.punto span{line-height:1.2}
.req{font-weight:500;color:var(--muted);font-size:11.5px}
.field.falta .puntos .medio{border-color:var(--danger);background:#FFF6F5;box-shadow:0 0 0 3px rgba(200,55,45,.12)}
.field.falta .lbl,.field.falta .req{color:var(--danger)}

/* v1.17.0 · Embudo de cotizaciones: título de columna que muestra las ocultas */
.col-t{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.col-t:hover{color:var(--m4,var(--m3))}
.col-t svg{opacity:.5}
.col-ocultas{display:flex;align-items:center;gap:6px;width:100%;margin:0 0 8px;padding:7px 9px;font-size:12.5px;
  background:transparent;border:1px dashed var(--line);border-radius:9px;color:var(--muted);cursor:pointer;text-align:left}
.col-ocultas:hover{border-style:solid;color:var(--ink)}
/* v1.17.0 · Vencimientos de SOAT: lo ya avisado baja al final de la cola */
tr.fila-avisada>td{background:var(--bg2,#F7F9FC);color:var(--muted)}
tr.fila-avisada>td b{font-weight:600}

/* v3.2 · línea del cron: monoespaciada y seleccionable de un clic */
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
input.mono[readonly]{background:#F7F9FC;color:#13233F;cursor:text}

/* v3.7 · buscador de cliente en comisiones */
.cli-pop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;background:#fff;
  border:1px solid #E3E8EF;border-radius:11px;box-shadow:0 12px 30px rgba(16,24,40,.14);
  max-height:290px;overflow:auto;padding:5px}
.cli-it{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;
  background:none;border:0;text-align:left;padding:7px 10px;border-radius:8px;cursor:pointer;font:inherit}
.cli-it:hover,.cli-it:focus{background:#F3F6FA}
