
:root{
  --green:#004b35;--green-2:#076447;--green-3:#0b7d59;--gold:#f4b400;
  --bg:#f4f7fb;--surface:#ffffff;--surface-2:#f8fafc;--text:#182235;--muted:#64748b;
  --line:#dfe7ef;--line-2:#edf2f7;--red:#b91c1c;--amber:#b45309;--blue:#1d4ed8;
  --shadow:0 16px 45px rgba(15,23,42,.08);--shadow-soft:0 8px 22px rgba(15,23,42,.055);
  --radius:20px;--radius-sm:13px;--header:74px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:linear-gradient(180deg,#fbfdff 0%,var(--bg) 50%,#edf3f8 100%);font-size:14px;line-height:1.45}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}img,svg{max-width:100%}
.topbar{position:sticky;top:0;z-index:1000;min-height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px clamp(20px,2.3vw,38px);background:linear-gradient(135deg,#003d2c 0%,var(--green) 58%,#08664a 100%);color:#fff;border-bottom:3px solid var(--gold);box-shadow:0 12px 32px rgba(0,43,31,.24)}
.brand{display:flex;align-items:center;gap:12px;min-width:250px}.brand-logo{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,#fff,#dff7ed);color:var(--green);display:grid;place-items:center;text-decoration:none;font-weight:950;letter-spacing:-.08em;box-shadow:inset 0 -2px 0 rgba(0,0,0,.09)}.brand strong{display:block;font-size:15px;line-height:1.1}.brand span{display:block;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.72);margin-top:2px}.topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.topnav{display:flex;align-items:center;gap:7px}.topnav a,.logout-link{min-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;color:#fff;text-decoration:none;font-size:12px;font-weight:900;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13);transition:.15s}.topnav a:hover,.logout-link:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}.topnav a[href*="tt3"],.topnav a[href*="tt11"]{min-width:58px}.logout-link{background:rgba(255,255,255,.07)}.user-chip{display:flex;align-items:center;gap:9px;padding:7px 11px 7px 7px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);min-width:190px}.avatar{width:33px;height:33px;border-radius:50%;background:#fff;color:var(--green);display:grid;place-items:center;font-weight:950}.user-chip strong,.user-chip small{display:block;max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip strong{font-size:12px}.user-chip small{font-size:10px;color:rgba(255,255,255,.76);text-transform:uppercase;font-weight:850;letter-spacing:.045em}.pending-menu{position:relative}.pending-trigger{min-height:34px;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 12px;color:#fff;background:rgba(244,180,0,.20);font-size:12px;font-weight:950}.pending-trigger strong{min-width:22px;height:22px;display:grid;place-items:center;background:#fff;color:#103a2c;border-radius:999px;font-size:11px}.pending-menu.open .pending-trigger,.pending-trigger:hover{background:rgba(244,180,0,.30)}.pending-panel{display:none;position:absolute;right:0;top:calc(100% + 12px);width:min(390px,92vw);padding:14px;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:18px;box-shadow:0 28px 90px rgba(15,23,42,.24)}.pending-menu.open .pending-panel{display:block}.pending-panel h4{margin:0 0 10px;color:var(--green);font-size:14px}.pending-item{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px;padding:11px 12px;border-radius:13px;background:#f8fafc;border:1px solid #eef2f7;text-decoration:none}.pending-item:hover{background:#ecfdf5;border-color:#cdeedd}.pending-item strong{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:var(--green);color:#fff;font-size:12px}
.wrap{width:100%;max-width:none;margin:0;padding:24px clamp(20px,2.2vw,40px) 52px}.contextbar{margin:0 0 16px;display:flex}.card,.card-clean,.module-tile,.panel{background:rgba(255,255,255,.96);border:1px solid rgba(223,231,239,.98);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:22px;margin-bottom:20px}.card.compact{padding:18px}.card:hover,.module-tile:hover{box-shadow:var(--shadow)}h1,h2,h3{margin:0 0 14px;line-height:1.15;letter-spacing:-.025em;color:#162033}h1{font-size:clamp(25px,1.8vw,34px)}h2{font-size:clamp(20px,1.3vw,25px)}h3{font-size:17px}p{margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{display:inline-flex;color:var(--green);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.11em;margin-bottom:8px}.text-small{font-size:16px!important;letter-spacing:-.02em}
.btn,button[type=submit],input[type=submit],.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;min-width:112px;padding:9px 15px;border:0;border-radius:12px;background:var(--green);color:#fff;text-decoration:none;font-size:13px;font-weight:900;box-shadow:0 9px 19px rgba(0,75,53,.15);transition:.15s}.btn:hover,button[type=submit]:hover,input[type=submit]:hover{background:var(--green-2);transform:translateY(-1px)}.btn.light,.btn.secondary,.button.secondary{background:#edf3f7;color:#102033;border:1px solid #dfe8f0;box-shadow:none}.btn.light:hover,.btn.secondary:hover{background:#dfe9f0}.btn.ghost{background:#fff;color:var(--green);border:1px solid #d7eadf;box-shadow:var(--shadow-soft)}.btn.ghost:hover{background:#ecfdf5}.btn.warn,.btn.warning{background:var(--amber)}.btn.danger{background:var(--red)}.btn.sm{min-height:32px;min-width:82px;border-radius:10px;padding:7px 11px;font-size:12px}.btn-back{border-radius:999px;min-width:0;padding-inline:16px}.actions,.actions-cell,.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.toolbar{justify-content:space-between}.module-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.module-actions .btn,.actions .btn{min-width:130px}.module-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.module-tabs a{display:inline-flex;align-items:center;min-height:36px;min-width:126px;justify-content:center;text-decoration:none;border-radius:12px;padding:8px 12px;background:#eef3f7;border:1px solid #dfe8f0;font-size:12px;font-weight:900}.module-tabs a:hover{background:#e3eee8;color:var(--green)}
form{margin:0}.grid,.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:end}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-grid p,.grid p{margin:0}label{display:block;margin-bottom:6px;color:#334155;font-size:12px;font-weight:900}input,select,textarea{width:100%;min-height:40px;border:1px solid #ccd7e3;border-radius:12px;background:#fff;color:var(--text);padding:9px 11px;outline:none;transition:.14s}textarea{min-height:92px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green-3);box-shadow:0 0 0 4px rgba(0,75,53,.10)}input[type=file]{padding:7px}fieldset{border:1px solid var(--line);border-radius:16px;padding:16px;margin:0 0 16px}legend{padding:0 8px;font-weight:900;color:var(--green)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th,td{padding:12px 13px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}th{position:sticky;top:0;z-index:1;background:#f6f9fc;color:#334155;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.055em}tr:hover td{background:#fbfdfd}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950;background:#e8eef5;color:#334155}.badge.ok{background:#dcfce7;color:#166534}.badge.rev,.badge.info{background:#dbeafe;color:#1e40af}.badge.dev,.badge.warn{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.flash{padding:13px 15px;border-radius:14px;margin:0 0 16px;font-weight:800;border:1px solid}.flash.ok,.flash.success{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.flash.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.flash.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}
.dashboard-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:24px 28px;border-left:5px solid var(--green);background:linear-gradient(135deg,#fff,#f7fbf9)}.dashboard-intro p{color:var(--muted);max-width:900px}.module-grid-clean{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:20px}.module-tile{min-height:255px;display:flex;flex-direction:column;justify-content:space-between;padding:28px}.tile-head{display:flex;gap:16px;align-items:flex-start}.tile-icon{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:#e5f4ee;color:var(--green);font-weight:950;font-size:18px;flex:0 0 auto}.tile-head p{color:var(--muted)}.tile-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.tile-metrics div,.stat,.kpi,.analysis-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:var(--shadow-soft)}.tile-metrics span,.stat span,.kpi .label,.mini-label{display:block;color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.075em;margin-bottom:6px}.tile-metrics strong,.stat strong,.kpi .value{display:block;color:var(--green);font-size:28px;line-height:1.05}.tile-actions,.admin-links{display:flex;flex-wrap:wrap;gap:9px}.tile-actions a,.admin-links a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none;border-radius:999px;padding:8px 12px;background:#eef5f1;color:#063b2b;font-size:12px;font-weight:950;border:1px solid #d6ebe1}.tile-actions a:first-child{background:var(--green);color:#fff}.tile-actions a:hover,.admin-links a:hover{background:var(--green);color:#fff}.tile-tt11 .tile-icon{background:#eef4ff;color:var(--blue)}.admin-dock{display:flex;justify-content:space-between;gap:20px;align-items:center;border-left:5px solid var(--gold)}
.stats,.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.indicator-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.analysis-card h3{font-size:15px;margin-bottom:8px}.progress{height:10px;border-radius:999px;background:#e8eef5;overflow:hidden}.progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--green-3))}.score{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:14px;background:#e8f6ef;color:var(--green);font-weight:950;font-size:18px}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#eef3f7;color:#334155;font-size:11px;font-weight:900}.chart-bars{display:grid;gap:10px}.chart-row{display:grid;grid-template-columns:145px 1fr 48px;gap:10px;align-items:center}.chart-row strong{font-size:12px}.chart-row .bar{height:12px;border-radius:999px;background:#e8eef5;overflow:hidden}.chart-row .bar span{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--green-3));border-radius:999px}.chart-row em{text-align:right;font-style:normal;font-weight:900;color:var(--green)}
.checkbox-list{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:10px;background:#fbfdff}.checkbox-row{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:12px}.checkbox-row:hover{background:#eef6f2}.checkbox-row input{width:auto;min-height:auto}.row-disabled td{background:#f8fafc;color:#64748b}.row-disabled:hover td{background:#f8fafc}.lock-note{display:inline-block;font-size:12px;font-weight:850;color:#92400e;background:#fef3c7;border:1px solid #fde68a;padding:6px 9px;border-radius:999px}.line-desc{font-weight:850;color:#0f172a}.filter-card{border-left:4px solid var(--green)}hr{border:0;border-top:1px solid var(--line);margin:18px 0}.link-like{background:none;border:0;padding:0;color:#0b4f3a;font-weight:900;text-align:left;text-decoration:underline;text-underline-offset:3px}.modal{display:none;position:fixed!important;inset:0!important;z-index:999999!important;width:100vw!important;height:100vh!important;background:rgba(15,23,42,.62);align-items:center!important;justify-content:center!important;padding:28px}.modal.open{display:flex!important}.modal-box{background:#fff;width:min(1120px,94vw);max-height:82vh;overflow:auto;border-radius:20px;padding:28px;box-shadow:0 34px 110px rgba(0,0,0,.45);position:relative;border:1px solid #e5e7eb;margin:auto}.modal-close{position:sticky;float:right;right:0;top:0;border:0;background:#eef2f7;border-radius:10px;width:38px;height:38px;font-size:24px;line-height:28px;z-index:2}.detalle-tt3-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin:16px 0 22px}.detalle-tt3-grid>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:12px}.detalle-tt3-grid span{display:block;font-size:12px;color:#64748b;margin-bottom:6px;font-weight:850;text-transform:uppercase;letter-spacing:.03em}.detalle-tt3-grid strong{display:block;color:#0f172a;line-height:1.35;word-break:break-word}.detalle-tt3-grid .wide{grid-column:1/-1}body.modal-open{overflow:hidden}.auth-shell{min-height:calc(100vh - 120px);display:grid;place-items:center}.login-card{width:min(460px,100%);padding:30px;border-radius:24px}
@media(max-width:1100px){.topbar{position:relative;align-items:flex-start;flex-direction:column}.brand{min-width:0}.topbar-right{width:100%;justify-content:flex-start}.topnav{overflow:auto}.pending-panel{right:auto;left:0}.module-grid-clean,.indicator-grid{grid-template-columns:1fr}.grid.two{grid-template-columns:1fr}.dashboard-intro{align-items:flex-start;flex-direction:column}.admin-dock{flex-direction:column;align-items:flex-start}.admin-links{justify-content:flex-start}}
@media(max-width:760px){.wrap{padding:16px 12px 34px}.card,.card-clean,.module-tile{padding:18px;border-radius:18px}.topnav{width:100%;flex-wrap:nowrap;padding-bottom:4px}.user-chip{min-width:0}.tile-head{flex-direction:column}.tile-metrics{grid-template-columns:1fr}.detalle-tt3-grid{grid-template-columns:1fr}.modal{padding:12px}.modal-box{padding:20px;max-height:88vh}.module-actions .btn,.actions .btn,.module-tabs a{min-width:0;width:auto}.chart-row{grid-template-columns:1fr}.chart-row em{text-align:left}th,td{padding:10px}}
@media print{.topbar,.contextbar,.actions,.module-tabs,.btn{display:none!important}.wrap{padding:0}.card{box-shadow:none;border:0}}

/* =========================================================
   AJUSTE VISUAL 2026-05-06: respiración, botones y formularios
   ========================================================= */
.card{padding:clamp(20px,1.8vw,30px)}
.card > h1 + form,
.card > h2 + form,
.card > h3 + form{margin-top:18px}
.card > form.form-grid + .actions,
.card > form + .actions,
.card > .form-grid + .actions{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--line-2);
}
.actions{
  gap:10px;
  row-gap:12px;
}
.actions .btn,
.module-actions .btn,
.module-tabs a{
  min-width:142px;
  min-height:38px;
  padding-inline:16px;
  border-radius:999px;
  white-space:nowrap;
}
.card .actions .btn.light,
.card .module-tabs a{
  background:#f2f6f9;
  color:#1f2a3d;
  border-color:#dce6ef;
}
.card .actions .btn.light:hover,
.card .module-tabs a:hover{
  background:#e8f4ef;
  color:var(--green);
  border-color:#c9e5d8;
}
.form-grid{
  gap:18px 20px;
}
.form-grid.compact{
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
form .form-grid + .btn,
form .form-grid + button,
form .form-grid + input[type=submit]{
  margin-top:20px;
}
form > .btn,
form > button[type=submit],
form > input[type=submit]{
  margin-top:8px;
}
.card > form > .btn,
.card > form > button[type=submit]{
  margin-top:18px;
}
input,select,textarea{
  min-height:44px;
}
.btn,button[type=submit],input[type=submit],.button{
  min-height:40px;
  min-width:126px;
  border-radius:12px;
}
.btn.sm{
  min-height:34px;
  min-width:92px;
}
.detalle-tt3-grid{
  margin:20px 0 26px;
  gap:16px;
}
.detalle-tt3-grid>div{
  min-height:64px;
}
.filter-card .form-grid,
.card > form.form-grid.compact{
  align-items:end;
}
.table-wrap,
table{
  margin-top:12px;
}
.card > table{
  margin-top:14px;
}
.card p.muted + form,
.card p.muted + .form-grid,
.card p.muted + .table-wrap{
  margin-top:18px;
}
.flash + form,
.flash + .form-grid{
  margin-top:18px;
}

/* Layout más cómodo para pantallas anchas */
.wrap{
  padding-top:26px;
}
.card:first-of-type{
  margin-top:0;
}
.card h1,
.card h2{
  margin-bottom:18px;
}
.card h1 + .muted,
.card h2 + .muted{
  margin-top:-8px;
  margin-bottom:16px;
}

@media(min-width:1200px){
  .card > form.form-grid.compact{grid-template-columns:repeat(4,minmax(210px,1fr));}
  .card > form.form-grid.compact p:has(button){align-self:end;}
}
@media(max-width:760px){
  .actions .btn,
  .module-actions .btn,
  .module-tabs a{min-width:0;flex:1 1 auto;}
  .card > form.form-grid + .actions,
  .card > form + .actions{margin-top:16px;padding-top:14px;}
}

/* Ajuste final: indicadores, navegación por rol y tortas */
.module-actions{margin-top:1.15rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;border-top:1px solid var(--line,#dde5ec);padding-top:1rem}
.module-actions .btn{min-width:128px;text-align:center;justify-content:center}
.chart-card-inline{margin-top:1.1rem;display:grid;grid-template-columns:180px minmax(220px,1fr);gap:1.2rem;align-items:center;padding:1rem;border:1px solid var(--line,#dfe7ee);border-radius:18px;background:linear-gradient(135deg,#ffffff,#f8fbfa)}
.pie-chart{--p1:0;--p2:0;--p3:0;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#006b4b 0 calc(var(--p1)*1%), #2f80ed calc(var(--p1)*1%) calc((var(--p1) + var(--p2))*1%), #f2a900 calc((var(--p1) + var(--p2))*1%) calc((var(--p1) + var(--p2) + var(--p3))*1%), #dfe8ef calc((var(--p1) + var(--p2) + var(--p3))*1%) 100%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.04),0 14px 30px rgba(7,35,35,.12)}
.pie-chart::after{content:"";position:absolute;inset:28px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #e3ebf2}
.pie-chart span{position:relative;z-index:1;font-size:1.55rem;font-weight:900;color:#004b36;letter-spacing:-.03em}
.legend{display:grid;gap:.55rem;font-size:.92rem;color:#253347}
.legend span{display:flex;align-items:center;gap:.55rem;padding:.45rem .55rem;border-radius:10px;background:#fff;border:1px solid #edf2f6}
.dot{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto}.dot.ok{background:#006b4b}.dot.rev{background:#2f80ed}.dot.warn{background:#f2a900}.dot.neutral{background:#dfe8ef}
@media (max-width:760px){.chart-card-inline{grid-template-columns:1fr}.pie-chart{margin:auto}.module-actions .btn{min-width:0;flex:1 1 150px}}

/* Ajuste gestión TT11: distribución clara entre trámite y acciones laterales */
.tt11-management-shell{display:flex;flex-direction:column;gap:18px}.tt11-summary-card{border-left:5px solid var(--green)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.section-head.simple{margin-bottom:18px}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eef7f2;border:1px solid #d4ebdf;color:var(--green);font-size:12px;font-weight:900;padding:10px 14px;white-space:nowrap}.tt11-line-title{font-size:16px;font-weight:900;color:#0f172a;margin:8px 0 16px}.compact-stats{grid-template-columns:repeat(4,minmax(150px,1fr));margin-top:10px}.tt11-action-layout{display:grid;grid-template-columns:minmax(520px,1fr) 420px;gap:18px;align-items:start}.tt11-primary-action{min-height:360px;border-top:4px solid var(--green)}.tt11-side-actions{display:grid;grid-template-columns:1fr;gap:18px}.soft-action-card{background:linear-gradient(180deg,#fff,#fbfcfd)}.soft-action-card h3{margin-bottom:6px}.action-stack,.stack-form{display:flex;flex-direction:column;gap:13px}.action-form{padding:15px;border:1px solid var(--line);background:#f8fafc;border-radius:16px}.empty-state{padding:18px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc}.stack-form textarea{min-height:92px}.stack-form .btn{align-self:flex-start;margin-top:5px}@media(max-width:1050px){.tt11-action-layout{grid-template-columns:1fr}.compact-stats{grid-template-columns:repeat(2,minmax(150px,1fr))}.section-head{flex-direction:column}.status-pill{white-space:normal}}@media(max-width:680px){.compact-stats{grid-template-columns:1fr}}

/* Modal de adjuntos TT11 */
.app-modal{display:none;position:fixed!important;inset:0!important;z-index:2147483000!important;background:rgba(15,23,42,.66);align-items:center!important;justify-content:center!important;padding:28px;backdrop-filter:blur(4px)}
.app-modal.is-open{display:flex!important}
.modal-card{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:24px;box-shadow:0 32px 110px rgba(2,6,23,.48);padding:28px;width:min(980px,94vw);max-height:86vh;overflow:auto;margin:auto}
.modal-card-wide{width:min(1180px,96vw)}
.modal-card h2{margin:0 0 8px;font-size:24px;letter-spacing:-.02em;color:#0f172a}
.modal-close{position:absolute;top:16px;right:16px;border:0;border-radius:12px;width:38px;height:38px;background:#eef2f7;color:#0f172a;font-size:24px;line-height:1;cursor:pointer;font-weight:900}
.modal-close:hover{background:#dbeafe}.inline-toolbar{margin-top:16px;display:flex;gap:10px;align-items:center}.table-wrap{width:100%;overflow:auto;border:1px solid #e5e7eb;border-radius:16px}.table-wrap table{margin:0}.table-wrap th{white-space:nowrap}.btn.mini{min-height:30px;padding:7px 11px;font-size:12px;border-radius:10px;text-decoration:none;display:inline-flex;align-items:center}.empty-state{padding:18px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;color:#64748b;font-weight:700}
@media(max-width:760px){.app-modal{padding:12px}.modal-card{padding:20px;width:96vw;max-height:88vh}.modal-card h2{font-size:20px}.inline-toolbar{flex-direction:column;align-items:flex-start}}

/* Ajuste de banner: navegación principal simplificada */
.topbar-right{margin-left:auto;gap:10px}
.topbar-back{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.96);color:#004b35;text-decoration:none;font-size:13px;font-weight:950;border:1px solid rgba(255,255,255,.42);box-shadow:0 10px 24px rgba(0,0,0,.16);transition:.15s}
.topbar-back:hover{transform:translateY(-1px);background:#ecfdf5;color:#003d2c}
.topbar .topnav{display:none!important}
.contextbar{display:none!important}
@media(max-width:1100px){.topbar-right{justify-content:flex-start}.topbar-back{order:-1}}
@media(max-width:760px){.topbar-back{width:100%;min-height:40px}.pending-menu,.pending-trigger,.user-chip,.logout-link{width:auto}.topbar-right{gap:8px}}

/* Desconexiones mayores */
.tile-dm .tile-icon{background:#fff4d6;color:#694700}
.candidate-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border,#d9e2ec);border-radius:18px;background:#fbfdff;margin:10px 0;box-shadow:0 8px 18px rgba(15,23,42,.04)}
.candidate-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.estado-panel{border-left:4px solid #00543a}
.estado-title{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.info-grid.dense{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin:14px 0}
.info-grid.dense>div{border:1px solid #dfe7ef;border-radius:14px;padding:12px;background:#f8fafc}
.info-grid.dense small{display:block;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800;font-size:11px;margin-bottom:6px}
.info-grid.dense strong{display:block;color:#003f2d;font-size:15px;line-height:1.25}
.info-grid .span-2{grid-column:span 2}.info-grid .span-3{grid-column:span 3}
.pill.warn{background:#fff3cd;color:#8a5a00;border-color:#ffe08a}.pill.light{background:#eefaf5;color:#00543a}
.form-stack{display:flex;flex-direction:column;gap:12px}.form-stack textarea{min-height:100px}
.modal-wide{max-width:980px;width:calc(100vw - 64px);max-height:calc(100vh - 64px);overflow:auto}
.hidden{display:none!important}.modal-open{overflow:hidden}
@media (max-width:900px){.info-grid.dense{grid-template-columns:1fr}.info-grid .span-2,.info-grid .span-3{grid-column:span 1}.candidate-card{align-items:flex-start;flex-direction:column}}

/* FIX Desconexiones: modal real al frente de todo */
.modal-overlay{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  z-index:2147483600!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:28px!important;
  background:rgba(15,23,42,.68)!important;
  backdrop-filter:blur(4px);
  overflow:auto!important;
}
.modal-overlay.hidden{display:none!important;}
.modal-overlay .modal-card{
  position:relative!important;
  width:min(1120px,94vw)!important;
  max-height:86vh!important;
  overflow:auto!important;
  margin:auto!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:0 36px 120px rgba(2,6,23,.52)!important;
  border:1px solid rgba(226,232,240,.95)!important;
}
.modal-overlay .modal-wide{width:min(1180px,96vw)!important;}
.modal-overlay .modal-close{
  position:sticky!important;
  top:0!important;
  float:right!important;
  z-index:2147483601!important;
}
body.modal-open{overflow:hidden!important;}
@media(max-width:760px){.modal-overlay{padding:12px!important}.modal-overlay .modal-card{width:96vw!important;max-height:90vh!important;padding:20px!important}}

/* Calendario de festividades en banner */
.topbar-fest-btn{
  min-height:38px;display:inline-flex;align-items:center;justify-content:center;
  padding:9px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.12);color:#fff;font-size:13px;font-weight:950;
  cursor:pointer;box-shadow:none;white-space:nowrap;transition:.16s ease;
}
.topbar-fest-btn:hover{background:rgba(255,255,255,.2);transform:translateY(-1px)}
.fest-modal-overlay{display:none;position:fixed;inset:0;z-index:2147483600;background:rgba(15,23,42,.66);backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:28px}
.fest-modal-overlay.is-open{display:flex!important}.fest-modal-card{width:min(1180px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:26px;border:1px solid rgba(226,232,240,.95);box-shadow:0 36px 120px rgba(2,6,23,.45);padding:28px;position:relative}.fest-modal-close{position:absolute;top:18px;right:18px;width:42px;height:42px;border:0;border-radius:14px;background:#eef2f7;color:#0f172a;font-size:26px;font-weight:900;cursor:pointer}.fest-modal-close:hover{background:#fee2e2;color:#991b1b}.fest-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:22px}.fest-modal-head h2{font-size:28px;margin:0 0 6px;color:#0f172a;letter-spacing:-.03em}.fest-controls{display:flex;align-items:center;gap:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:10px 12px}.fest-controls strong{min-width:155px;text-align:center;color:#004b36;font-size:17px}.fest-control-group{display:flex;gap:6px}.fest-control-group button{min-width:0;min-height:34px;border-radius:11px;border:1px solid #dbe5ed;background:#fff;color:#0f172a;font-weight:850;padding:7px 10px;cursor:pointer}.fest-control-group button:hover{background:#ecfdf5;color:#00543a}.fest-modal-body{display:grid;grid-template-columns:minmax(540px,1fr) 360px;gap:22px;align-items:start}.fest-calendar-wrap{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:22px;padding:16px}.fest-week-head{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.fest-week-head span{text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#64748b}.fest-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.fest-day{min-width:0;min-height:82px;border-radius:16px;border:1px solid #e2e8f0;background:#fff;color:#0f172a;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:10px;cursor:pointer;position:relative;transition:.14s ease}.fest-day span{font-size:15px;font-weight:900}.fest-day em{font-style:normal;align-self:flex-end;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:12px;font-weight:950;display:grid;place-items:center}.fest-day:hover{border-color:#00543a;box-shadow:0 10px 22px rgba(0,84,58,.12);transform:translateY(-1px)}.fest-day.has-event{background:linear-gradient(135deg,#fff5f5,#ffffff);border-color:#fecaca;box-shadow:inset 0 0 0 2px rgba(220,38,38,.06)}.fest-day.has-event span{color:#b91c1c}.fest-day.is-selected{border-color:#00543a!important;background:#ecfdf5!important;box-shadow:0 0 0 3px rgba(0,84,58,.13)}.fest-day.is-blank{background:transparent;border:0;box-shadow:none;cursor:default}.fest-day-panel{border:1px solid #e2e8f0;border-radius:22px;background:#fff;padding:18px;box-shadow:0 14px 30px rgba(15,23,42,.06);position:sticky;top:16px}.fest-day-panel h3{margin:0 0 12px;font-size:19px;color:#0f172a}.fest-day-list{display:grid;gap:10px}.fest-event{border:1px solid #e2e8f0;border-left:5px solid #dc2626;border-radius:16px;padding:12px;background:#fffafa}.fest-event strong{display:block;color:#111827;font-size:14px;margin-bottom:5px}.fest-event span{display:inline-flex;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:11px;font-weight:900;padding:4px 8px;margin-bottom:7px}.fest-event small{display:block;color:#64748b;font-size:12px;font-weight:700}.fest-loading{grid-column:1/-1;padding:40px;text-align:center;color:#64748b;font-weight:800;background:#f8fafc;border-radius:16px}
@media(max-width:980px){.fest-modal-head{flex-direction:column}.fest-controls{width:100%;justify-content:space-between}.fest-modal-body{grid-template-columns:1fr}.fest-day-panel{position:static}.fest-day{min-height:66px}.topbar-fest-btn{width:auto}}
@media(max-width:640px){.fest-modal-overlay{padding:10px}.fest-modal-card{padding:20px;border-radius:20px}.fest-controls{flex-direction:column;align-items:stretch}.fest-control-group{justify-content:center}.fest-calendar-grid,.fest-week-head{gap:4px}.fest-day{min-height:54px;border-radius:12px;padding:7px}.fest-day span{font-size:13px}.fest-day em{min-width:20px;height:20px;font-size:10px}.fest-week-head span{font-size:10px}}

/* Desconexiones: separar claramente independiente vs simultánea */
.mode-card { position: relative; }
.mode-card .eyebrow {
  display:inline-flex; align-items:center; padding:.35rem .7rem; border-radius:999px;
  background:#ecfdf5; color:#00513a; font-weight:900; letter-spacing:.08em; text-transform:uppercase;
  font-size:.72rem; margin-bottom:.6rem;
}
.separated-form { margin-top:1rem; margin-bottom:1rem; padding:1rem; border:1px solid var(--line, #dbe3ea); border-radius:18px; background:#f8fbfd; }
.candidate-list { display:grid; gap:.8rem; margin-top:1rem; }
.simultaneous-card .candidate-card { display:grid; grid-template-columns: 1fr auto; gap:1rem; align-items:center; padding:1rem; border:1px solid #dbe3ea; border-radius:18px; background:#fff; }
.simultaneous-card .candidate-actions { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; justify-content:flex-end; }
@media (max-width: 900px){ .simultaneous-card .candidate-card{grid-template-columns:1fr;} .simultaneous-card .candidate-actions{justify-content:flex-start;} }

/* Desconexiones: flujo simplificado selección -> adhesión -> independiente */
.descon-step-head { border-left: 4px solid var(--green, #00513b); }
.empty-state-card { min-height: 120px; display:flex; flex-direction:column; justify-content:center; }
.section-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.candidate-list-full { display:grid; gap:.85rem; }
.candidate-card-row { display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:center; gap:1rem; padding:1rem 1.15rem; border:1px solid rgba(15,23,42,.10); border-radius:18px; background:#fff; box-shadow:0 10px 24px rgba(15,23,42,.04); }
.candidate-main strong { display:block; font-size:1rem; color:#0f172a; margin-bottom:.35rem; }
.candidate-meta { display:flex; flex-wrap:wrap; gap:.45rem .65rem; color:#64748b; font-size:.86rem; }
.candidate-meta span { background:#f1f5f9; border:1px solid #e2e8f0; border-radius:999px; padding:.28rem .55rem; }
.candidate-actions { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; flex-wrap:wrap; }
.independent-toggle-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.independent-toggle-card h2 { margin-bottom:.2rem; }
.independent-card { scroll-margin-top:120px; }
@media (max-width: 900px){
  .candidate-card-row { grid-template-columns:1fr; }
  .candidate-actions { justify-content:flex-start; }
  .independent-toggle-card { align-items:flex-start; flex-direction:column; }
}

/* Desconexiones simultáneas: formulario de adhesión controlado */
.adhesion-details{display:block;margin-top:.6rem;max-width:760px}
.adhesion-details>summary{list-style:none;display:inline-flex;cursor:pointer;user-select:none}
.adhesion-details>summary::-webkit-details-marker{display:none}
.adhesion-details[open]{background:#f8fafc;border:1px solid #dbe5ee;border-radius:18px;padding:14px;margin-top:10px;box-shadow:0 12px 28px rgba(15,23,42,.08)}
.adhesion-details[open]>summary{margin-bottom:12px}
.mini-form{grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}
.alert-soft.warn{background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;border-radius:16px;padding:14px 16px;line-height:1.45}
@media(max-width:900px){.mini-form{grid-template-columns:1fr}.mini-form .span-2{grid-column:auto}}

/* Calendario operativo: actividades 14004 dentro del modal de festividades */
.fest-event.programada{
  border-left:4px solid #dc2626;
  background:linear-gradient(135deg, rgba(220,38,38,.08), rgba(255,255,255,.96));
}
.fest-programada-grid{
  margin-top:10px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.fest-programada-grid div{
  padding:8px 10px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:12px;
  background:rgba(255,255,255,.75);
}
.fest-programada-grid small{
  display:block;
  color:#64748b;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.fest-programada-grid strong{
  display:block;
  margin-top:2px;
  color:#0f172a;
  font-size:.86rem;
  line-height:1.25;
  word-break:break-word;
}
@media (max-width: 900px){
  .fest-programada-grid{grid-template-columns:1fr;}
}

/* Ajuste calendario operativo: tarjetas resumidas, filtro y detalle en segundo modal */
.fest-municipio-filter{
  display:flex;
  align-items:center;
  gap:10px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:8px 10px;
  min-width:260px;
}
.fest-municipio-filter span{
  color:#64748b;
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}
.fest-municipio-filter select{
  min-height:34px;
  border:0;
  background:transparent;
  color:#0f172a;
  font-weight:800;
  outline:0;
  width:100%;
}
.fest-event.compact{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px;
}
.fest-event.compact .fest-event-main{min-width:0;}
.fest-event.compact p{
  margin:6px 0 7px;
  color:#334155;
  font-size:.84rem;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.fest-event.compact .btn.small{
  min-height:34px;
  padding:8px 12px;
  white-space:nowrap;
  box-shadow:none;
}
.fest-detail-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:2147483646;
  background:rgba(15,23,42,.52);
  backdrop-filter:blur(4px);
  align-items:center;
  justify-content:center;
  padding:24px;
}
.fest-detail-modal.is-open{display:flex!important;}
.fest-detail-card{
  width:min(900px,94vw);
  max-height:88vh;
  overflow:auto;
  background:#fff;
  border:1px solid rgba(226,232,240,.95);
  border-radius:24px;
  box-shadow:0 36px 120px rgba(2,6,23,.48);
  padding:28px;
  position:relative;
}
.fest-detail-close{
  position:absolute;
  top:16px;
  right:16px;
  width:40px;
  height:40px;
  border:0;
  border-radius:14px;
  background:#eef2f7;
  color:#0f172a;
  font-size:25px;
  font-weight:900;
  cursor:pointer;
}
.fest-detail-close:hover{background:#fee2e2;color:#991b1b;}
.fest-detail-card h2{
  margin:0 46px 8px 0;
  font-size:1.55rem;
  letter-spacing:-.03em;
  color:#0f172a;
}
.fest-detail-grid{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.fest-detail-grid div{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:15px;
  padding:11px 13px;
}
.fest-detail-grid small{
  display:block;
  color:#64748b;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:900;
  margin-bottom:4px;
}
.fest-detail-grid strong{
  display:block;
  color:#0f172a;
  font-size:.9rem;
  line-height:1.3;
  word-break:break-word;
}
@media(max-width:980px){
  .fest-municipio-filter{width:100%;}
  .fest-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  .fest-event.compact{align-items:flex-start;flex-direction:column;}
  .fest-detail-card{padding:22px;border-radius:20px;}
  .fest-detail-grid{grid-template-columns:1fr;}
}
