@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --bg:#F2F3F5; --panel:#FFFFFF; --ink:#13161C; --ink-soft:#5C6270; --line:#E4E6EA;
  --sidebar:#13161F; --sidebar-soft:#1B1F2B; --sidebar-text:#9099AC;
  --crimson:#E0263A; --crimson-soft:#FCE4E6; --crimson-dark:#A91B2B;
  --blue:#2563AC; --blue-soft:#E5F0FB;
  --success:#1E8E5A; --success-soft:#E7F5EE;
  --warn:#B8862B; --warn-soft:#FBF1DF;
  --purple:#6D4FC7; --purple-soft:#EFEAFB;
  --radius:10px;
  --mono:'IBM Plex Mono', monospace; --display:'Space Grotesk', sans-serif; --body:'IBM Plex Sans', sans-serif;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
a{color:var(--blue);}

/* layout */
.shell{display:flex;min-height:100vh;}
.sidebar{width:230px;background:var(--sidebar);color:#fff;flex:none;display:flex;flex-direction:column;padding:18px 14px;}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px;}
.drop{width:30px;height:30px;flex:none;}
.sidebar-brand-text{display:flex;flex-direction:column;line-height:1.2;}
.sidebar-brand-text .name{font-family:var(--display);font-weight:600;font-size:16px;}
.sidebar-brand-text .name .hs{color:var(--ink-soft);}
.sidebar-brand-text .tag{font-size:10px;color:var(--sidebar-text);}
.nav{flex:1;display:flex;flex-direction:column;gap:2px;margin-top:6px;}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:var(--sidebar-text);font-size:13.5px;font-weight:500;border:none;background:transparent;text-align:left;width:100%;}
.nav-item:hover{background:var(--sidebar-soft);color:#fff;}
.nav-item.active{background:var(--crimson);color:#fff;}
.nav-item svg{width:17px;height:17px;flex:none;}
.tenant-badge{display:flex;align-items:center;gap:10px;border:1px solid #2A2F3D;border-radius:10px;padding:10px;margin-top:10px;}
.tenant-badge .ic{width:30px;height:30px;border-radius:7px;background:var(--sidebar-soft);display:flex;align-items:center;justify-content:center;flex:none;}
.tenant-badge .label{font-size:11px;color:var(--sidebar-text);}
.tenant-badge .value{font-size:12.5px;font-weight:600;}
.user-card{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px;}
.avatar-sm{width:30px;height:30px;border-radius:50%;background:var(--crimson);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex:none;}
.user-card .who{flex:1;line-height:1.2;}
.user-card .who .n{font-size:12.5px;font-weight:600;}
.user-card .who .r{font-size:10.5px;color:var(--sidebar-text);}
.logout-link{display:flex;align-items:center;gap:6px;color:#F5949C;font-size:12px;font-weight:600;border:none;background:transparent;padding:8px 10px;}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 26px;background:#fff;border-bottom:1px solid var(--line);}
.topbar-left{display:flex;align-items:center;gap:14px;}
.menu-ic{color:var(--ink-soft);}
.page-title{font-family:var(--display);font-weight:600;font-size:19px;}
.topbar-right{display:flex;align-items:center;gap:16px;}
.icon-btn{position:relative;border:none;background:transparent;color:var(--ink-soft);padding:4px;}
.icon-btn .dot{position:absolute;top:0;right:0;background:var(--crimson);color:#fff;font-size:9px;font-weight:700;border-radius:999px;width:15px;height:15px;display:flex;align-items:center;justify-content:center;}
.topbar-user{display:flex;align-items:center;gap:8px;}
.topbar-user .who{line-height:1.2;text-align:right;}
.topbar-user .n{font-size:13px;font-weight:600;}
.topbar-user .r{font-size:11px;color:var(--ink-soft);}

.content{padding:22px 26px;flex:1;}

/* stat cards */
.stats-row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px;}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;gap:12px;align-items:flex-start;}
.stat-ic{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:none;}
.stat-ic svg{width:18px;height:18px;}
.stat-body .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:600;}
.stat-body .num{font-family:var(--display);font-size:21px;font-weight:600;margin:2px 0;}
.stat-body .delta{font-size:11px;font-weight:600;}
.delta.up{color:var(--success);} .delta.down{color:var(--crimson);} .delta.flat{color:var(--ink-soft);}

.grid-2{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;margin-bottom:16px;}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:16px;}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;}
.card h3{font-family:var(--display);font-size:14.5px;font-weight:600;margin:0 0 14px;}

.legend-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 0;}
.legend-dot{width:9px;height:9px;border-radius:50%;flex:none;}
.legend-row .v{margin-left:auto;color:var(--ink-soft);}

.alert-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);}
.alert-item:last-child{border-bottom:none;}
.alert-ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:none;}
.alert-ic svg{width:15px;height:15px;}
.alert-body strong{display:block;font-size:13px;}
.alert-body span{display:block;font-size:11.5px;color:var(--ink-soft);}

/* tables */
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap;}
.search-input{flex:1;min-width:200px;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:13px;background:#fff;}
select.filter-select{border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:12.5px;background:#fff;}
.primary-btn{border:none;background:var(--crimson);color:#fff;font-weight:600;font-size:13px;padding:10px 16px;border-radius:8px;display:flex;align-items:center;gap:6px;}
.ghost-btn{border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:500;font-size:12.5px;padding:7px 12px;border-radius:7px;}

.table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.tabs-row{display:flex;gap:18px;padding:0 16px;border-bottom:1px solid var(--line);}
.tab-link{padding:13px 2px;font-size:13px;font-weight:600;color:var(--ink-soft);border:none;background:transparent;border-bottom:2px solid transparent;}
.tab-link.active{color:var(--crimson);border-color:var(--crimson);}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:11px 14px;border-bottom:1px solid var(--line);font-weight:600;background:#FAFAFB;white-space:nowrap;}
td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#FAFBFC;}
.mono{font-family:var(--mono);font-size:12px;color:var(--ink-soft);}
.code-link{color:var(--crimson);font-weight:600;font-family:var(--mono);font-size:12.5px;}
.cell-sub{font-size:11.5px;color:var(--ink-soft);}

.badge{font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;display:inline-block;white-space:nowrap;}
.badge-entregado, .badge-disponible, .badge-activo, .badge-en_entrega{background:var(--success-soft);color:var(--success);}
.badge-en_ruta{background:var(--blue-soft);color:var(--blue);}
.badge-pendiente, .badge-inactivo{background:#EFEFF1;color:var(--ink-soft);}
.badge-preparando, .badge-reservada, .badge-proxima_a_vencer, .badge-en_descanso{background:var(--warn-soft);color:var(--warn);}
.badge-cancelado, .badge-vencida, .badge-urgente{background:var(--crimson-soft);color:var(--crimson-dark);}
.badge-alta{background:var(--warn-soft);color:var(--warn);}
.badge-media{background:var(--blue-soft);color:var(--blue);}
.badge-baja{background:#EFEFF1;color:var(--ink-soft);}
.badge-en_transito{background:var(--purple-soft);color:var(--purple);}

.pager{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-soft);}
.pager-btns{display:flex;align-items:center;gap:4px;}
.pager-btns button{width:28px;height:28px;border:1px solid var(--line);background:#fff;border-radius:6px;font-size:12px;}
.pager-btns button.active{background:var(--crimson);color:#fff;border-color:var(--crimson);}
.icon-action{border:1px solid var(--line);background:#fff;border-radius:6px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;margin-right:4px;color:var(--ink-soft);}
.empty-row td{text-align:center;color:var(--ink-soft);padding:30px;}

/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,18,25,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;}
.modal{background:#fff;border-radius:14px;width:560px;max-width:100%;max-height:90vh;overflow-y:auto;padding:22px;}
.modal h3{font-family:var(--display);font-size:17px;margin:0 0 16px;}
.field{margin-bottom:12px;}
.field label{display:block;font-size:11.5px;font-weight:600;color:var(--ink-soft);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em;}
.field input, .field select, .field textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:9px 11px;font-size:13px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.unit-pick{border:1px solid var(--line);border-radius:7px;max-height:160px;overflow-y:auto;padding:6px;}
.unit-pick label{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:6px 8px;border-radius:6px;}
.unit-pick label:hover{background:#FAFAFB;}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;}

/* messenger detail panel */
.courier-grid{display:grid;grid-template-columns:1fr 310px;gap:16px;}
.profile-card{text-align:center;}
.profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--crimson);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600;margin:0 auto 10px;}
.profile-name{font-family:var(--display);font-weight:600;font-size:16px;}
.profile-id{font-size:12px;color:var(--ink-soft);margin-bottom:8px;}
.profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;text-align:left;}
.profile-stat .v{font-family:var(--display);font-weight:600;font-size:16px;}
.profile-stat .l{font-size:11px;color:var(--ink-soft);}
.activity-item{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;}
.activity-item:last-child{border-bottom:none;}
.activity-item .t{color:var(--ink-soft);font-size:11px;white-space:nowrap;}

.empty-state{padding:50px 20px;text-align:center;color:var(--ink-soft);}
.loading-row{padding:40px;text-align:center;color:var(--ink-soft);font-size:13px;}

@media (max-width:1100px){
  .stats-row{grid-template-columns:repeat(2,1fr);}
  .grid-2,.grid-3{grid-template-columns:1fr;}
  .courier-grid{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .sidebar{display:none;}
  .table-wrap{overflow-x:auto;}
  table{min-width:640px;}
  .content{padding:14px;}
}

/* ── Alert priority badges ───────────────────────────────── */
.badge-alt-critica     { background:var(--crimson-soft); color:var(--crimson-dark); }
.badge-alt-importante  { background:var(--warn-soft);    color:var(--warn); }
.badge-alt-advertencia { background:var(--purple-soft);  color:var(--purple); }
.badge-alt-informativa { background:var(--blue-soft);    color:var(--blue); }

/* ── Alert status badges ─────────────────────────────────── */
.badge-alts-nueva      { background:#EFEFF1; color:var(--ink-soft); }
.badge-alts-en_revision{ background:var(--warn-soft);    color:var(--warn); }
.badge-alts-en_progreso{ background:var(--blue-soft);    color:var(--blue); }
.badge-alts-programada { background:var(--purple-soft);  color:var(--purple); }
.badge-alts-resuelta   { background:var(--success-soft); color:var(--success); }

/* ── Configuración layout ────────────────────────────────── */
.cfg-shell { display:flex; gap:0; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; min-height:560px; }
.cfg-sidebar { width:190px; background:#FAFAFB; border-right:1px solid var(--line); padding:14px 10px; flex:none; }
.cfg-nav-item { display:block; width:100%; text-align:left; padding:9px 12px; border-radius:8px; border:none; background:transparent; font-size:13px; font-weight:500; color:var(--ink-soft); margin-bottom:2px; cursor:pointer; }
.cfg-nav-item:hover { background:var(--line); color:var(--ink); }
.cfg-nav-item.active { background:var(--crimson-soft); color:var(--crimson); font-weight:600; }
.cfg-content { flex:1; padding:24px 28px; overflow-y:auto; }
.cfg-title { font-family:var(--display); font-size:18px; font-weight:600; margin:0 0 4px; }
.cfg-sub { color:var(--ink-soft); font-size:13px; margin:0 0 20px; }
.cfg-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.cfg-card { border:1px solid var(--line); border-radius:var(--radius); padding:16px; background:#fff; }
.cfg-card-head { display:flex; justify-content:space-between; align-items:center; font-family:var(--display); font-size:14px; font-weight:600; margin-bottom:14px; }
.cfg-row { display:flex; justify-content:space-between; align-items:center; padding:8px 0; border-bottom:1px solid var(--line); font-size:12.5px; }
.cfg-row:last-of-type { border-bottom:none; }
.cfg-row-label { color:var(--ink-soft); }
.cfg-row-value { font-weight:500; text-align:right; max-width:60%; }
.cfg-select { border:1px solid var(--line); border-radius:6px; padding:4px 8px; font-size:12px; background:#fff; }
.org-logo-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.org-logo { width:44px; height:44px; border-radius:10px; background:var(--crimson-soft); display:flex; align-items:center; justify-content:center; }

/* ── Toggle switch ───────────────────────────────────────── */
.toggle-switch { position:relative; display:inline-block; width:38px; height:22px; flex:none; }
.toggle-switch input { opacity:0; width:0; height:0; }
.toggle-slider { position:absolute; inset:0; background:#ccc; border-radius:22px; transition:.2s; cursor:pointer; }
.toggle-slider::before { content:""; position:absolute; width:16px; height:16px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:.2s; }
.toggle-switch input:checked + .toggle-slider { background:var(--crimson); }
.toggle-switch input:checked + .toggle-slider::before { transform:translateX(16px); }
.cfg-toggle-row { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:11px 0; border-bottom:1px solid var(--line); }
.cfg-toggle-row:last-child { border-bottom:none; }
.cfg-toggle-row strong { display:block; font-size:13px; }

@media (max-width:1100px) {
  .cfg-grid-3 { grid-template-columns:1fr 1fr; }
  .cfg-sidebar { display:none; }
  .cfg-shell { border:none; background:transparent; }
}
@media (max-width:760px) {
  .cfg-grid-3 { grid-template-columns:1fr; }
}
