@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/* ================================================================
   VARIABLES — Navy + Gold Design System
   ================================================================ */
:root {
  --bg-body:      #060d1a;
  --bg-sidebar:   #07111f;
  --bg-main:      #09132200;
  --bg-card:      #0e1c30;
  --bg-card-2:    #122040;
  --bg-input:     #0b1828;
  --bg-tbl-even:  rgba(10,20,40,0.6);
  --bg-tbl-hover: rgba(201,168,76,0.06);

  --gold:         #c9a84c;
  --gold-light:   #e8c96a;
  --gold-dark:    #9f7f2e;
  --gold-bg:      rgba(201,168,76,0.10);
  --gold-border:  rgba(201,168,76,0.25);

  --text-primary:   #dde5f0;
  --text-secondary: #7a90a8;
  --text-muted:     #42607a;

  --success:      #10b981; --success-bg: rgba(16,185,129,0.12);
  --danger:       #ef4444; --danger-bg:  rgba(239,68,68,0.12);
  --warning:      #f59e0b; --warning-bg: rgba(245,158,11,0.12);
  --info:         #60a5fa; --info-bg:    rgba(96,165,250,0.12);

  --border:       rgba(255,255,255,0.07);
  --border-gold:  rgba(201,168,76,0.28);
  --radius-sm:    8px;
  --radius-md:    12px;
  --radius-lg:    18px;
  --shadow-sm:    0 2px 10px rgba(0,0,0,0.35);
  --shadow-md:    0 6px 24px rgba(0,0,0,0.45);
  --shadow-lg:    0 12px 48px rgba(0,0,0,0.55);
  --shadow-gold:  0 0 24px rgba(201,168,76,0.18);
  --sidebar-w:    260px;
  --topbar-h:     62px;
  --transition:   all 0.22s ease;
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg-body);color:var(--text-primary);min-height:100vh;display:flex;overflow-x:hidden;line-height:1.5}
a{color:var(--gold);text-decoration:none;transition:var(--transition)}
a:hover{color:var(--gold-light)}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg-body)}
::-webkit-scrollbar-thumb{background:#1e3a5f;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--gold-dark)}

/* ================================================================
   SIDEBAR
   ================================================================ */
#sidebar{
  width:var(--sidebar-w);min-height:100vh;background:var(--bg-sidebar);
  border-right:1px solid var(--border-gold);
  display:flex;flex-direction:column;
  position:fixed;top:0;left:0;z-index:200;
  transition:transform 0.3s ease;
}
.sidebar-logo{
  display:flex;align-items:center;gap:12px;
  padding:22px 20px;border-bottom:1px solid var(--border-gold);
}
.logo-icon{
  width:42px;height:42px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  display:flex;align-items:center;justify-content:center;
  font-size:1.15rem;font-weight:800;color:var(--bg-body);
  box-shadow:var(--shadow-gold);letter-spacing:-0.02em;
}
.logo-text{flex:1;min-width:0}
.logo-title{font-size:.88rem;font-weight:700;color:var(--gold);line-height:1.3;letter-spacing:.02em}
.logo-sub{font-size:.66rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}
.sidebar-nav{flex:1;padding:14px 0;overflow-y:auto}
.nav-section-label{
  font-size:.62rem;font-weight:700;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.12em;
  padding:10px 20px 4px;margin-top:4px;
}
.sidebar-nav a{
  display:flex;align-items:center;gap:11px;
  padding:10px 20px;color:var(--text-secondary);
  font-size:.855rem;font-weight:450;
  border-left:3px solid transparent;
  transition:var(--transition);position:relative;
}
.sidebar-nav a:hover{color:var(--text-primary);background:rgba(255,255,255,0.04);border-left-color:var(--gold-dark)}
.sidebar-nav a.active{color:var(--gold);background:var(--gold-bg);border-left-color:var(--gold);font-weight:600}
.sidebar-nav a i{font-size:1.05rem;width:20px;text-align:center;flex-shrink:0}
.sidebar-footer{padding:14px 20px;border-top:1px solid var(--border)}
.user-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.user-avatar{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:var(--gold-bg);border:1px solid var(--gold-border);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);font-size:.82rem;font-weight:700;
}
.user-name{font-size:.8rem;font-weight:600;color:var(--text-primary)}
.user-role{font-size:.68rem;color:var(--text-muted)}
.logout-link{
  display:flex;align-items:center;gap:7px;
  font-size:.8rem;color:var(--danger);padding:7px 8px;
  border-radius:var(--radius-sm);transition:var(--transition);
  border:1px solid transparent;
}
.logout-link:hover{color:var(--danger);background:var(--danger-bg);border-color:rgba(239,68,68,.2)}

/* ================================================================
   MAIN WRAPPER
   ================================================================ */
#main-wrapper{margin-left:var(--sidebar-w);flex:1;display:flex;flex-direction:column;min-height:100vh}
#topbar{
  height:var(--topbar-h);background:var(--bg-card);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 28px;position:sticky;top:0;z-index:100;
}
.topbar-left{display:flex;align-items:center;gap:14px}
.sidebar-toggle{
  display:none;background:none;border:none;
  color:var(--text-secondary);font-size:1.2rem;cursor:pointer;
  padding:6px;border-radius:var(--radius-sm);transition:var(--transition);
}
.sidebar-toggle:hover{color:var(--gold);background:var(--gold-bg)}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:.8rem}
.breadcrumb .sep{color:var(--text-muted)}
.breadcrumb .crumb{color:var(--text-muted)}
.breadcrumb .crumb.active{color:var(--text-primary);font-weight:600}
.topbar-right{display:flex;align-items:center;gap:12px}
.topbar-user{font-size:.8rem;color:var(--text-secondary)}
.topbar-user strong{color:var(--text-primary)}
#page-content{flex:1;padding:28px;overflow-y:auto}

/* ================================================================
   CARDS
   ================================================================ */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.card-header{padding:18px 22px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-title{font-size:1rem;font-weight:650;color:var(--text-primary);display:flex;align-items:center;gap:9px}
.card-title i{color:var(--gold)}
.card-body{padding:22px}
.card-body.p-0{padding:0}

/* KPI Cards */
.kpi-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:20px;display:flex;align-items:flex-start;gap:14px;
  transition:var(--transition);cursor:default;
}
.kpi-card:hover{border-color:var(--gold-border);box-shadow:var(--shadow-gold);transform:translateY(-2px)}
.kpi-icon{width:46px;height:46px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.kpi-icon.gold{background:var(--gold-bg);color:var(--gold)}
.kpi-icon.success{background:var(--success-bg);color:var(--success)}
.kpi-icon.danger{background:var(--danger-bg);color:var(--danger)}
.kpi-icon.info{background:var(--info-bg);color:var(--info)}
.kpi-value{font-size:1.95rem;font-weight:750;color:var(--text-primary);line-height:1}
.kpi-label{font-size:.73rem;color:var(--text-muted);margin-top:5px;text-transform:uppercase;letter-spacing:.05em}

/* ================================================================
   PAGE HEADER
   ================================================================ */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:26px;gap:16px;flex-wrap:wrap}
.page-title{font-size:1.55rem;font-weight:770;color:var(--text-primary)}
.page-subtitle{font-size:.82rem;color:var(--text-muted);margin-top:3px}
.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}

/* ================================================================
   GRID
   ================================================================ */
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

/* ================================================================
   TABLES
   ================================================================ */
.table-wrapper{overflow-x:auto;border-radius:var(--radius-md)}
.data-table{width:100%;border-collapse:collapse;font-size:.855rem}
.data-table thead th{
  background:rgba(201,168,76,.08);color:var(--gold);
  font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  padding:12px 14px;border-bottom:1px solid var(--border-gold);white-space:nowrap;
}
.data-table tbody tr{border-bottom:1px solid var(--border);transition:background .15s}
.data-table tbody tr:nth-child(even){background:var(--bg-tbl-even)}
.data-table tbody tr:hover{background:var(--bg-tbl-hover)}
.data-table tbody td{padding:11px 14px;color:var(--text-primary);vertical-align:middle}
.data-table tbody td.muted{color:var(--text-muted);font-size:.8rem}

/* ================================================================
   BADGES
   ================================================================ */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}
.badge-archivado{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,.2)}
.badge-no-archivado{background:var(--success-bg);color:var(--success);border:1px solid rgba(16,185,129,.2)}
.badge-fiscalia{background:var(--info-bg);color:var(--info);border:1px solid rgba(96,165,250,.2)}
.badge-despacho{background:var(--gold-bg);color:var(--gold);border:1px solid var(--gold-border)}

/* ================================================================
   FORMS
   ================================================================ */
.form-section{margin-bottom:26px}
.form-section-title{
  font-size:.73rem;font-weight:700;color:var(--gold);
  text-transform:uppercase;letter-spacing:.1em;
  padding-bottom:10px;border-bottom:1px solid var(--gold-border);
  margin-bottom:18px;display:flex;align-items:center;gap:8px;
}
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;letter-spacing:.02em}
.form-label .req{color:var(--gold);margin-left:2px}
.form-control{
  width:100%;background:var(--bg-input);border:1px solid var(--border);
  border-radius:var(--radius-sm);color:var(--text-primary);
  padding:9px 13px;font-size:.875rem;font-family:inherit;
  transition:var(--transition);outline:none;-webkit-appearance:none;
}
.form-control:focus{border-color:var(--gold-dark);box-shadow:0 0 0 3px rgba(201,168,76,.12);background:var(--bg-card)}
.form-control::placeholder{color:var(--text-muted)}
select.form-control{
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%237a90a8' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:38px;
}
select.form-control option{background:#0e1c30;color:var(--text-primary)}
textarea.form-control{resize:vertical;min-height:75px}
.form-control.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px rgba(239,68,68,.10)}
.invalid-feedback{font-size:.74rem;color:var(--danger);margin-top:4px;display:flex;align-items:center;gap:4px}
.fecha-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:12px}

/* Sección condicional */
.cond-section{overflow:hidden;transition:max-height .4s ease,opacity .3s ease;max-height:0;opacity:0;pointer-events:none}
.cond-section.visible{max-height:700px;opacity:1;pointer-events:auto}

/* ================================================================
   BUTTONS
   ================================================================ */
.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer;border:none;transition:var(--transition);text-decoration:none;white-space:nowrap}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--bg-body)}
.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--gold-light),var(--gold));box-shadow:var(--shadow-gold);transform:translateY(-1px);color:var(--bg-body)}
.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}
.btn-secondary:hover{border-color:var(--border-gold);color:var(--gold);background:var(--gold-bg)}
.btn-success{background:var(--success);color:#fff}
.btn-success:hover{background:#0da572;transform:translateY(-1px)}
.btn-danger{background:transparent;border:1px solid rgba(239,68,68,.3);color:var(--danger)}
.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger)}
.btn-sm{padding:6px 13px;font-size:.8rem}
.btn-icon{padding:7px;aspect-ratio:1;border-radius:8px}

/* ================================================================
   ALERTS
   ================================================================ */
.alert{padding:13px 17px;border-radius:var(--radius-sm);display:flex;align-items:flex-start;gap:11px;font-size:.865rem;margin-bottom:18px}
.alert i{font-size:1.05rem;flex-shrink:0;margin-top:1px}
.alert-success{background:var(--success-bg);border:1px solid rgba(16,185,129,.2);color:var(--success)}
.alert-danger {background:var(--danger-bg); border:1px solid rgba(239,68,68,.2); color:var(--danger)}
.alert-warning{background:var(--warning-bg);border:1px solid rgba(245,158,11,.2);color:var(--warning)}
.alert-info   {background:var(--info-bg);   border:1px solid rgba(96,165,250,.2);  color:var(--info)}

/* ================================================================
   FILTERS BAR
   ================================================================ */
.filters-bar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;align-items:flex-end}
.filters-bar .form-group{margin:0}
.filters-bar .form-control{min-width:140px}

/* ================================================================
   IMPORT PREVIEW
   ================================================================ */
.preview-row-ok   td{border-left:3px solid var(--success)}
.preview-row-err  td{border-left:3px solid var(--danger);background:rgba(239,68,68,.04)}
.preview-row-err  td{color:var(--text-secondary)}
.err-detail{font-size:.73rem;color:var(--danger);display:flex;align-items:center;gap:4px;margin-top:2px}

/* Drop zone */
.drop-zone{
  border:2px dashed var(--border-gold);border-radius:var(--radius-lg);
  padding:52px 24px;text-align:center;cursor:pointer;
  transition:var(--transition);background:rgba(201,168,76,.03);
}
.drop-zone:hover,.drop-zone.dragover{border-color:var(--gold);background:var(--gold-bg)}
.drop-zone .dz-icon{font-size:3.2rem;color:var(--gold);display:block;margin-bottom:14px}
.drop-zone p{color:var(--text-secondary);font-size:.9rem}
.drop-zone strong{color:var(--gold)}
#file-input{display:none}

/* ================================================================
   LOGIN PAGE
   ================================================================ */
.login-page{
  min-height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;
  background:var(--bg-body);
  background-image:
    radial-gradient(ellipse at 15% 50%,rgba(201,168,76,.07) 0%,transparent 50%),
    radial-gradient(ellipse at 85% 20%,rgba(30,58,95,.5) 0%,transparent 50%),
    radial-gradient(ellipse at 50% 90%,rgba(6,13,26,.8) 0%,transparent 60%);
}
.login-card{
  width:100%;max-width:420px;
  background:var(--bg-card);border:1px solid var(--border-gold);
  border-radius:var(--radius-lg);padding:48px 40px;
  box-shadow:var(--shadow-lg),var(--shadow-gold);
}
.login-logo{text-align:center;margin-bottom:34px}
.login-logo-icon{
  width:70px;height:70px;border-radius:18px;margin:0 auto 14px;
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  display:flex;align-items:center;justify-content:center;
  font-size:1.8rem;font-weight:800;color:var(--bg-body);
  box-shadow:var(--shadow-gold);
}
.login-logo-title{font-size:1.3rem;font-weight:750;color:var(--text-primary)}
.login-logo-sub{font-size:.78rem;color:var(--text-muted);margin-top:4px}
.login-card .form-label{color:var(--text-secondary)}
.login-btn{width:100%;justify-content:center;margin-top:22px;padding:11px}
.login-footer{text-align:center;font-size:.75rem;color:var(--text-muted);margin-top:22px}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media(max-width:900px){
  #sidebar{transform:translateX(-100%)}
  #sidebar.open{transform:translateX(0)}
  #main-wrapper{margin-left:0}
  .sidebar-toggle{display:flex}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  #page-content{padding:18px}
}
@media(max-width:560px){
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr}
  .page-header{flex-direction:column}
  .login-card{padding:36px 24px}
}

/* ================================================================
   TOGGLE SWITCH (proceso inmediato / formalización)
   ================================================================ */
.toggle-row {
  display:flex;align-items:center;gap:16px;padding:16px 18px;
  background:var(--bg-input);border:1px solid var(--border);
  border-radius:var(--radius-sm);transition:var(--transition);
}
.toggle-row:hover { border-color:var(--border-gold); }
.toggle-switch {
  position:relative;display:inline-block;
  width:52px;height:28px;flex-shrink:0;
}
.toggle-switch input { opacity:0;width:0;height:0;position:absolute; }
.toggle-slider {
  position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;
  background:#0d1f35;border:1px solid rgba(255,255,255,0.12);
  border-radius:28px;transition:.3s;
}
.toggle-slider::before {
  content:'';position:absolute;
  width:20px;height:20px;left:3px;top:3px;
  background:var(--text-muted);border-radius:50%;transition:.3s;
}
.toggle-switch input:checked + .toggle-slider {
  background:var(--gold-bg);border-color:var(--gold-border);
}
.toggle-switch input:checked + .toggle-slider::before {
  transform:translateX(24px);background:var(--gold);
  box-shadow:0 0 8px rgba(201,168,76,.5);
}
.toggle-switch input:disabled + .toggle-slider { opacity:.4;cursor:not-allowed; }
.toggle-info { flex:1;min-width:0; }
.toggle-title {
  font-size:.875rem;font-weight:600;color:var(--text-primary);
  display:flex;align-items:center;gap:8px;
}
.toggle-title i { color:var(--gold); }
.toggle-state {
  font-size:.75rem;font-weight:600;margin-top:3px;
  color:var(--text-muted);transition:var(--transition);
  letter-spacing:.03em;text-transform:uppercase;
}
.toggle-state.active { color:var(--gold); }
.toggle-hint {
  font-size:.75rem;color:var(--text-muted);margin-top:2px;
}

/* ================================================================
   BLOCK SELECTOR (radio pills — elige UNO de los 3 bloques)
   ================================================================ */
.block-selector {
  display:flex;gap:12px;flex-wrap:wrap;
}
.block-pill { position:relative; }
.block-pill input[type="radio"] {
  position:absolute;opacity:0;width:0;height:0;
}
.block-pill label {
  display:flex;align-items:center;gap:9px;
  padding:13px 20px;
  border:1px solid var(--border);border-radius:var(--radius-md);
  color:var(--text-secondary);font-size:.875rem;font-weight:500;
  cursor:pointer;transition:var(--transition);
  background:var(--bg-input);user-select:none;
}
.block-pill label:hover {
  border-color:var(--gold-border);color:var(--text-primary);
  background:rgba(201,168,76,.04);
}
.block-pill input[type="radio"]:checked + label {
  border-color:var(--gold);background:var(--gold-bg);
  color:var(--gold);font-weight:700;
  box-shadow:var(--shadow-gold);
}
.block-pill label i { font-size:1.1rem; }
.block-selector-hint {
  font-size:.78rem;color:var(--text-muted);
  margin-bottom:14px;display:flex;align-items:center;gap:6px;
}
