:root{
  --brand-primary:#007C8E;
  --brand-secondary:#07A0A3;
  --brand-dark:#161616;
  --surface:#f5fbfb;
  --surface-2:#edf6f6;
  --surface-3:#ffffff;
  --line:#d7e7e7;
  --line-strong:#bfd7d7;
  --text:#243234;
  --muted:#66797d;
  --success-bg:#dff6e8;
  --success:#147742;
  --warning-bg:#fff3cd;
  --warning:#7a5a00;
  --danger:#c53b4a;
  --sidebar:264px;
  --shadow:0 18px 50px rgba(0, 78, 91, 0.08);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#f7fbfc;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
img{max-width:100%}
.app-shell{min-height:100vh}

.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#f8fcfc 0%, #eef7f7 100%);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:50}
.sidebar-brand{padding:24px 22px 20px;border-bottom:1px solid var(--line);display:grid;gap:14px;justify-items:center;text-align:center}
.sidebar-brand img{width:150px;height:56px;object-fit:contain}
.sidebar-brand strong{display:block;font-size:17px;color:var(--brand-primary);font-weight:800;letter-spacing:.2px}
.sidebar-brand span{display:block;margin-top:4px;font-size:12px;letter-spacing:2px;color:var(--brand-primary)}
.sidebar-nav{padding:14px 10px 20px;overflow:auto;display:grid;gap:6px}
.nav-item,.nav-toggle,.nav-subtoggle{width:100%;border:0;background:transparent;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:var(--brand-primary);cursor:pointer}
.nav-item,.nav-toggle{padding:14px 14px;font-weight:800}
.nav-toggle-main{display:flex;align-items:center;gap:12px}
.nav-ico{width:18px;display:inline-flex;justify-content:center;font-size:14px;opacity:.95}
.nav-item:hover,.nav-toggle:hover,.nav-item.active,.nav-group.open>.nav-toggle{background:#fff;box-shadow:0 10px 25px rgba(0,124,142,.08);border:1px solid rgba(0,124,142,.16)}
.nav-group b,.nav-subgroup b{transition:transform .2s ease}
.nav-group.open>.nav-toggle b,.nav-subgroup.open>.nav-subtoggle b{transform:rotate(180deg)}
.nav-sub{display:none;padding:4px 8px 8px 10px}
.nav-group.open>.nav-sub{display:grid;gap:4px}
.nav-sub>a,.nav-subchildren>a{display:block;padding:11px 14px;border-radius:12px;color:var(--brand-primary);font-weight:700;font-size:14px}
.nav-sub>a:hover,.nav-subchildren>a:hover,.nav-sub>a.active,.nav-subchildren>a.active{background:#fff;color:var(--brand-primary);box-shadow:0 8px 22px rgba(0,124,142,.06)}
.nav-subgroup{border:1px solid transparent;border-radius:14px;padding:2px}
.nav-subgroup.open{background:rgba(255,255,255,.52);border-color:rgba(0,124,142,.1)}
.nav-subtoggle{padding:11px 12px;font-weight:800;color:var(--brand-primary)}
.nav-subchildren{display:none;padding:0 6px 8px 16px}
.nav-subgroup.open>.nav-subchildren{display:grid;gap:4px}
.whatsapp{margin:auto auto 18px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#1fc66a;color:#fff;font-size:26px;box-shadow:0 12px 30px rgba(31,198,106,.25)}

.main{margin-left:var(--sidebar);min-height:100vh}
.topbar{height:74px;margin:10px 14px 0;padding:0 18px;background:#eff7f7;border:1px solid var(--line);border-radius:18px;display:flex;align-items:center;justify-content:flex-end;position:sticky;top:10px;z-index:20;backdrop-filter:blur(8px)}
.top-actions{display:flex;align-items:center;gap:14px;color:var(--brand-primary);font-weight:800}
.pill{padding:7px 6px}
.icon-pill{width:34px;height:34px;border-radius:50%;background:var(--brand-primary);color:#fff;display:grid;place-items:center;box-shadow:0 10px 22px rgba(0,124,142,.18)}
.logout:hover{background:var(--danger)}
.mobile-menu{display:none;border:0;background:transparent;font-size:26px;color:var(--brand-primary)}
.content{padding:26px 24px 40px}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.page-head h1{margin:4px 0 0;font-size:42px;line-height:1.05;color:var(--brand-primary)}
.page-head .eyebrow{color:var(--brand-primary);font-weight:900;letter-spacing:2px;font-size:13px}
.muted{color:var(--muted)}
.card{background:var(--surface-3);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.compact-card{padding:16px 18px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:4px}
.stat-card span{color:var(--brand-primary);font-weight:800}.stat-card strong{font-size:36px;color:var(--brand-secondary)}.stat-card small{color:var(--muted)}
.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-top:18px}
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.quick-grid a{padding:18px;border-radius:14px;background:var(--surface);color:var(--brand-primary);font-weight:800;border:1px solid #e1eeee}
.quick-grid a:hover{background:#fff}
.accent-card{background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary));color:white}
.accent-card .muted,.accent-card p{color:rgba(255,255,255,.92)}
.btn{border:1px solid var(--brand-primary);background:#fff;color:var(--brand-primary);border-radius:12px;padding:11px 16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:800;transition:.18s ease}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--brand-primary);color:#fff;box-shadow:0 12px 26px rgba(0,124,142,.18)}
.btn.primary:hover{background:var(--brand-secondary);border-color:var(--brand-secondary)}
.btn.small{padding:7px 11px;font-size:13px;border-radius:10px}
.alert{padding:14px 16px;border-radius:14px;margin-bottom:16px;border:1px solid transparent}
.alert.success{background:#e3f6ee;color:var(--success);border-color:#c9ebd8}
.alert.danger{background:#fdecee;color:#9b2d3a;border-color:#f4c9cf}

.table-tools,.bitacora-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.table-tools label,.bitacora-tools label{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text)}
.table-tools input,.table-tools select,.toolbar-filter select,.bitacora-tools select,.field-block input,.field-block select,.field-block textarea,.auth-card input,.color-input input{border:1px solid var(--line-strong);background:#fff;border-radius:12px;padding:12px 14px;outline:none;color:var(--text);width:100%}
.field-block textarea{min-height:140px;resize:vertical}
.table-tools input:focus,.table-tools select:focus,.toolbar-filter select:focus,.bitacora-tools select:focus,.field-block input:focus,.field-block select:focus,.field-block textarea:focus,.auth-card input:focus,.color-input input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 4px rgba(0,124,142,.12)}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.table-wrap table{width:100%;border-collapse:collapse;min-width:720px}
.table-wrap th,.table-wrap td{padding:14px 12px;border-bottom:1px solid #e6efef;text-align:left}
.table-wrap th{background:#f6fbfb;color:#4d6669;font-size:13px;text-transform:uppercase;letter-spacing:.4px}
.table-wrap tr:hover td{background:#fbfefe}
.empty{text-align:center!important;color:var(--muted)}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:6px 10px;border-radius:999px;font-weight:800}
.status.activo,.status.cerrado{background:var(--success-bg);color:var(--success)}
.status.inactivo{background:#fbe8ea;color:#9e2b38}
.status.abierto{background:var(--warning-bg);color:var(--warning)}
.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 2px}
.page-number{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;font-weight:700}

.bitacora-toolbar .toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}
.toolbar-filter select{min-width:220px}
.search-label input{min-width:300px}
.bitacora-table table{min-width:1650px}
.bitacora-table td{vertical-align:top}
.cell-long{max-width:260px;white-space:normal;line-height:1.45}
.text-link{color:var(--brand-primary)}
.row-actions{display:grid;grid-template-columns:repeat(2,40px);gap:8px}
.icon-action{width:40px;height:40px;border:1px solid var(--line-strong);background:#f1f8f8;color:var(--brand-primary);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:900;transition:.18s ease}
.icon-action:hover{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary);transform:translateY(-1px)}
.icon-action span{font-size:11px}
.danger-icon{color:#a42c38;background:#fff5f5;border-color:#f0c6ca}
.block-muted{display:block;color:var(--muted);margin-top:6px;max-width:145px}

.form-shell{padding:28px}
.form-grid-pro{display:grid;gap:18px}
.field-row{display:grid;gap:18px}
.field-row.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.field-block{display:grid;gap:8px}
.field-block label{font-weight:800;color:var(--brand-dark)}
.clean-actions{padding-left:0;display:flex;gap:10px;justify-content:flex-start}
.form-separator{border:0;border-top:1px solid #e2eded;margin:4px 0}
.bitacora-form-card{max-width:980px}
.area-form-card{max-width:860px}
.area-toolbar{margin-bottom:16px}

.modal-dialog{width:min(680px,calc(100% - 30px));border:0;border-radius:18px;padding:0;box-shadow:0 28px 80px rgba(13,40,45,.28)}
.mail-dialog{width:min(760px,calc(100% - 30px))}
.modal-dialog::backdrop,.modal-static::backdrop{background:rgba(7,20,22,.45)}
.modal-static{position:fixed;inset:0;margin:auto;z-index:60}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e3eded}
.modal-head h2{font-size:18px;margin:0;color:var(--brand-dark)}
.modal-x{border:0;background:transparent;color:var(--muted);font-size:28px;line-height:1;cursor:pointer}
.modal-body{padding:20px 22px;max-height:70vh;overflow:auto}
.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:16px 22px;border-top:1px solid #e3eded}
.file-drop{display:block;border:2px dashed #bddbdc;background:#f4fbfb;border-radius:14px;padding:26px;text-align:center}
.file-drop input{display:block;margin:0 auto 12px}
.file-drop span{font-weight:800;color:var(--brand-primary)}
.recipient-head{display:flex;justify-content:space-between;align-items:center;margin-top:2px}
.recipient-row{display:grid;grid-template-columns:1fr 1.2fr 40px;gap:8px;margin-top:10px}
.mail-note{font-size:12px;color:var(--muted);margin:5px 0 0}
.simple-list,.email-history{display:grid;gap:10px}
.simple-list>div,.email-history article{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.simple-list>div{display:flex;justify-content:space-between;gap:14px;align-items:center}
.simple-list small,.email-history article span{color:var(--muted)}
.email-history article>div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.email-history article>div:first-child{display:grid}
.email-history article h4{margin:12px 0 6px}
.email-history article p{margin:0;line-height:1.5}

.auth-bg{min-height:100vh;background:linear-gradient(135deg,#f7fcfc,#e7f7f7);display:grid;place-items:center;padding:20px}
.auth-card{width:min(460px,100%);background:white;border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:0 25px 70px rgba(76,62,130,.15)}
.install-card{width:min(540px,100%)}
.brand-login{text-align:center;margin-bottom:24px}.brand-login img{width:220px;height:88px;object-fit:contain}.brand-login h1{color:var(--brand-primary);margin:8px 0 4px}.brand-login p{color:var(--muted);margin:0}.auth-card form{display:grid;gap:14px}.auth-foot{text-align:center;color:#aaa;margin-top:18px;font-size:12px}
.settings-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:18px;align-items:start}.settings-form{display:grid;gap:18px}.logo-settings-row{display:grid;grid-template-columns:230px 1fr;gap:22px;align-items:center}.logo-preview{height:135px;border:1px dashed #bdd7d8;border-radius:14px;background:#fbfefe;display:grid;place-items:center;padding:16px}.logo-preview img{width:100%;max-height:100px;object-fit:contain}.color-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.color-grid label{font-weight:800;display:grid;gap:7px}.color-grid label>span{font-size:12px;color:var(--muted);font-weight:500}.color-input{display:grid;grid-template-columns:46px 1fr;gap:8px}.color-input input[type=color]{width:46px;height:44px;padding:3px;border:1px solid #d5dfdf;border-radius:9px;background:#fff}.brand-sample{background:var(--brand-dark);color:#fff;overflow:hidden;position:relative}.brand-sample img{width:100%;height:120px;object-fit:contain;background:#fff;border-radius:12px;padding:10px;margin:14px 0}.brand-sample h2{margin:10px 0 4px}.brand-sample p{color:#e8eeee}.sample-tag{font-size:11px;letter-spacing:1.5px;color:#fff;background:var(--brand-primary);padding:6px 9px;border-radius:30px}.sample-colors{display:flex;gap:8px;margin-top:18px}.sample-colors i{width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.4)}

@media(max-width:1100px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .dashboard-grid{grid-template-columns:1fr}
  .field-row.two-col{grid-template-columns:1fr}
}
@media(max-width:760px){
  :root{--sidebar:280px}
  .sidebar{transform:translateX(-100%);transition:.25s ease}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0}
  .topbar{margin:0;border-radius:0;border-left:0;border-right:0;top:0}
  .mobile-menu{display:block}
  .pill{display:none}
  .top-actions{gap:8px}
  .user-name{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .content{padding:18px 14px 30px}
  .page-head{flex-direction:column;align-items:flex-start}
  .page-head h1{font-size:33px}
  .stats-grid,.quick-grid,.settings-grid,.color-grid{grid-template-columns:1fr}
  .table-tools,.bitacora-toolbar,.pagination-bar{flex-direction:column;align-items:flex-start}
  .search-label input,.toolbar-filter select{min-width:0;width:100%}
  .form-shell{padding:20px}
  .recipient-row{grid-template-columns:1fr}
  .row-actions{grid-template-columns:repeat(4,40px)}
}
/* Ajuste 16/08/2026: el logotipo ya incluye el nombre completo de NOVASIG. */
.sidebar-brand{padding:24px 20px 18px}
.sidebar-brand img{width:174px;height:64px;object-fit:contain}
