@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("/static/fonts/inter-400.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("/static/fonts/inter-600.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("/static/fonts/inter-700.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url("/static/fonts/fraunces-600.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:700;font-display:swap;src:url("/static/fonts/fraunces-700.woff2") format("woff2")}
:root{color-scheme:light;--wine:#7b1e2b;--wine-dark:#5d1721;--wine-soft:#a12735;--wine-bg:#f9eaed;--navy:#24476d;--navy-deep:#17324d;--navy-ink:#25364a;--navy-gradient:#1e3a8a;--amber:#d97706;--amber-dark:#b45309;--amber-text:#92400e;--amber-bg:#fef3c7;--amber-line:#f59e0b;--amber-badge-line:#fcd34d;--red-deep:#dc2626;--red-dark:#991b1b;--red-bg:#fee2e2;--red-line:#fca5a5;--green-deep:#16a34a;--green-dark:#166534;--green-bg:#dcfce7;--green-line:#86efac;--blue-deep:#1e40af;--blue-bg:#dbeafe;--blue-line:#93c5fd;--thumb-bg:#e5e7eb;--ink:#242424;--muted:#5f6a7c;--muted-strong:#475467;--bg:#f4f1ea;--paper:#fff;--surface:#fafbfc;--surface-2:#f0f3f6;--ghost:#eef1f4;--line:#e5e7eb;--line-strong:#cfd4dc;--input-border:#c9c9c9;--ok:#1e7a46;--ok-dark:#245b2d;--ok-bg:#edf8ef;--ok-bg-soft:#e7f5eb;--ok-line:#b8daba;--warn:#ad8d00;--warn-dark:#765f00;--warn-strong:#a95200;--warn-bg:#fff8d9;--danger:#9b1c2b;--danger-bg:#fff1f1;--danger-bg-soft:#fdecec;--danger-bg-warm:#fffaf9;--danger-line:#e6b8b8;--info-bg:#eef4fb;--info-bg-2:#e7effa;--info-line:#c7d8ee;--code-bg:#111827;--shadow-sm:#0000000a;--shadow:#00000011;--font-display:"Fraunces",Georgia,serif;--font-ui:"Inter",system-ui,-apple-system,sans-serif;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-lg:18px;--text-xl:24px;--text-2xl:30px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-full:999px;--dur-fast:120ms;--dur:180ms;--gold:#b58f1c;--gold-bg:#fffbe6;--ease:cubic-bezier(.2,.8,.2,1);--hairline:#e4ded2;--focus:#7b1e2b;--focus-ring:0 0 0 3px rgba(123,30,43,.22);--text-3xl:38px;--text-2xl-table-head:12px;--pad-section:28px;--spine-w:248px;--sans-tag:600;}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:var(--font-ui);color:var(--ink)}.top{height:78px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px 4vw;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:14px}.brand img{width:58px;height:58px;object-fit:contain}.brand strong{display:block;color:var(--wine);font-size:20px}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.user{display:flex;gap:14px;align-items:center}main{width:min(1180px,92vw);margin:30px auto 50px}.hero{background:linear-gradient(120deg,var(--wine),var(--wine-dark));color:var(--paper);padding:30px;border-radius:18px;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 12px 35px var(--shadow)}.hero.compact{padding:22px 28px}.hero h1{margin:5px 0 8px;font-size:30px}.hero p{margin:0;opacity:.9}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:bold}.panel,.form-panel,.roadmap,.login-card{background:var(--paper);margin-top:24px;border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 8px 28px var(--shadow-sm)}.panel-head{display:flex;justify-content:space-between;align-items:center}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:16px}.project-card{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--paper);transition:.15s}.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--shadow);border-color:var(--line-strong)}.project-card h3{margin:10px 0}.project-card p{font-size:12px;color:var(--muted)}.badge{font-size:11px;background:var(--wine-bg);color:var(--wine);padding:5px 8px;border-radius:999px}.primary,.ghost{border:0;border-radius:9px;padding:11px 16px;font-weight:bold;cursor:pointer}.primary{background:var(--navy);color:var(--paper)}.primary:hover{filter:brightness(.92)}.ghost{background:var(--ghost)}.ghost-link,.back{color:var(--paper);text-decoration:none;font-weight:bold}.form-panel h2{color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:10px;margin-top:30px}.form-panel h2:first-child{margin-top:0}.grid{display:grid;gap:15px}.grid.two{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}label{display:flex;flex-direction:column;font-size:12px;font-weight:bold;color:var(--muted-strong);gap:6px}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:10px 11px;font:inherit;background:var(--paper);color:var(--ink)}input[type="checkbox"],input[type="radio"]{width:auto;accent-color:var(--navy)}button{font-family:inherit;font-size:inherit}button:not([class]){border:1px solid var(--input-border);background:var(--paper);color:var(--navy-deep);padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}details{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin:12px 0}details summary{cursor:pointer;font-weight:700;color:var(--navy)}.wide{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;margin-top:28px}.alert{margin:18px 0;padding:13px 16px;border-radius:10px}.alert.ok{background:var(--ok-bg-soft);color:var(--ok)}.alert.error{background:var(--danger-bg-soft);color:var(--wine-soft)}.empty{padding:30px;text-align:center;color:var(--muted)}.milestones{display:flex;gap:9px;flex-wrap:wrap}.milestones span{border:1px solid var(--line);border-radius:999px;padding:8px 11px;font-size:12px}.milestones .done{background:var(--ok-bg);color:var(--ok)}footer{text-align:center;color:var(--muted);font-size:11px;padding:20px}.login-card{max-width:420px;margin:7vh auto;text-align:center}.login-logo{width:110px;height:110px;object-fit:contain}.login-card form{display:grid;gap:15px;text-align:left;margin-top:24px}@media(max-width:760px){.hero{align-items:flex-start;flex-direction:column}.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}.top{padding:8px 3vw}.user span{display:none}}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.import-panel{display:flex;align-items:center;justify-content:space-between;gap:24px}.import-panel form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.secondary{border:1px solid var(--input-border);background:var(--paper);color:var(--navy-deep);padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.section-note{color:var(--muted);margin-top:-8px}.body-list{display:grid;gap:10px;margin:12px 0}.body-row{display:grid;grid-template-columns:1.2fr .5fr .5fr 1fr .55fr .55fr 1.4fr auto;gap:10px;align-items:end;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.remove-body{border:0;background:var(--wine);color:var(--paper);padding:10px 12px;border-radius:9px;cursor:pointer}.alert{background:var(--danger-bg);color:var(--wine);border:1px solid var(--danger-line);padding:12px 16px;border-radius:10px;margin:12px 0}.alert.ok{background:var(--ok-bg);color:var(--ok-dark);border-color:var(--ok-line)}@media(max-width:1150px){.body-row{grid-template-columns:1fr 1fr}.import-panel{align-items:flex-start;flex-direction:column}}
.subpanel{margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.subhead{display:flex;justify-content:space-between;align-items:center;gap:12px}.subhead h3{margin:0;color:var(--navy)}.tank-list{display:grid;gap:10px}.tank-row{display:grid;grid-template-columns:1.1fr .65fr .9fr .9fr .85fr .9fr 1.3fr auto;gap:9px;align-items:end;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.catalog-card{border:1px solid var(--line-strong);border-radius:12px;padding:13px;background:var(--surface)}.catalog-card legend{padding:0 7px;font-weight:700;color:var(--navy)}.catalog-option{display:grid;grid-template-columns:1.1fr 1fr;gap:9px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line)}.catalog-option:last-child{border-bottom:0}.checkline{display:flex;flex-direction:row;align-items:center;gap:8px}.checkline input,.check-tile input{width:auto}.special-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 18px}.check-tile{display:flex;flex-direction:row;align-items:center;gap:8px;padding:11px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface)}@media(max-width:1050px){.tank-row{grid-template-columns:1fr 1fr}.catalog-grid{grid-template-columns:1fr}.special-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.special-grid{grid-template-columns:1fr}}
.inventory-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.table-scroll{overflow:auto;border:1px solid var(--line-strong);border-radius:12px;margin:12px 0}.data-table{width:100%;border-collapse:collapse;min-width:920px;background:var(--paper)}.data-table th,.data-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left;font-size:12px;vertical-align:top}.data-table th{background:var(--surface-2);color:var(--navy);position:sticky;top:0}.data-table input,.data-table select{min-width:90px;padding:7px}.chem-head{margin:16px 0 10px}.chem-list{display:grid;gap:12px}.chem-row{display:grid;grid-template-columns:1.4fr 1.3fr .7fr .65fr .7fr 1fr 1fr 1.2fr .8fr .8fr .9fr auto;gap:8px;align-items:end;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.chem-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.chem-summary>div{padding:12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface)}.danger-table td:first-child{color:var(--danger)}.danger-table tr:has(td:first-child strong){background:var(--danger-bg-warm)}@media(max-width:1100px){.inventory-columns{grid-template-columns:1fr}.chem-row{grid-template-columns:repeat(3,1fr)}.chem-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.inventory-grid,.chem-row,.chem-summary{grid-template-columns:1fr}}

.json-preview{max-height:320px;overflow:auto;background:var(--surface-2);color:var(--navy-deep);border:1px solid var(--line);padding:14px;border-radius:10px;font-size:12px}.data-table form{margin:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:14px}.map-card{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--paper);text-decoration:none;color:var(--navy-ink)}.map-card:hover{border-color:var(--wine);box-shadow:0 2px 8px rgba(0,0,0,.08)}.map-card span{font-size:.85rem;color:var(--muted)}
.navlinks{display:flex;gap:14px;align-items:center;margin-left:auto;margin-right:18px}.navlinks a{color:var(--navy);text-decoration:none;font-weight:700;font-size:.9rem}.navlinks a:hover{text-decoration:underline}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:end}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.form-grid input,.form-grid select{padding:10px;border:1px solid var(--input-border);border-radius:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--surface-2);color:var(--muted)}.button{display:inline-flex;align-items:center;text-decoration:none;padding:10px 14px;border-radius:8px}

/* v0.11 · créditos por expediente */
.credit-balance{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:150px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.credit-balance strong{font-size:2rem;line-height:1}.credit-balance span{font-size:.84rem;opacity:.72;margin-top:5px}.credit-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0}.credit-strip>div{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.credit-strip span{display:block;font-size:.78rem;opacity:.7;margin-bottom:4px}.credit-strip strong{font-size:.98rem}.split-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.split-actions form{margin:0}.form-grid.compact{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}


/* v0.13 · tablero de cartera y vencimientos */
.portfolio-stats{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin:18px 0}.portfolio-stats>div{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface)}.portfolio-stats strong{display:block;font-size:1.65rem;color:var(--navy)}.portfolio-stats span{font-size:.78rem;color:var(--muted)}.portfolio-table{min-width:980px}.portfolio-table td small{display:block;color:var(--muted);margin-top:4px;max-width:320px}.portfolio-badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:700}.portfolio-badge.vencidos{background:var(--danger-bg-soft);color:var(--danger)}.portfolio-badge.urgentes{background:var(--warn-bg);color:var(--warn-strong)}.portfolio-badge.proximos{background:var(--warn-bg);color:var(--warn-dark)}.portfolio-badge.en_proceso{background:var(--info-bg-2);color:var(--navy)}.portfolio-badge.vigentes{background:var(--ok-bg-soft);color:var(--ok)}.portfolio-badge.sin_liberar{background:var(--ghost);color:var(--muted)}.portfolio-row.vencidos td:first-child{border-left:4px solid var(--danger)}.portfolio-row.urgentes td:first-child{border-left:4px solid var(--warn-strong)}.portfolio-row.proximos td:first-child{border-left:4px solid var(--warn)}.muted{color:var(--muted)}@media(max-width:900px){.portfolio-stats{grid-template-columns:repeat(2,1fr)}}
.document-stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin:0 0 18px}.document-stats>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--paper)}.document-stats strong{display:block;font-size:1.35rem;color:var(--navy)}.document-stats span{font-size:.76rem;color:var(--muted)}.portfolio-badge.sin_fecha{background:var(--ghost);color:var(--muted)}.expiry-table{min-width:1250px}.expiry-table td:first-child{text-align:center}.expiry-table input[type="checkbox"]{width:18px;height:18px;min-width:auto}@media(max-width:900px){.document-stats{grid-template-columns:repeat(2,1fr)}}

/* v0.15 · centro de avisos automáticos */
.reminder-list{display:grid;gap:10px;margin-top:16px}.reminder-card{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--line);border-left:5px solid var(--warn);border-radius:12px;padding:14px 16px;background:var(--paper)}.reminder-card.overdue{border-left-color:var(--danger);background:var(--danger-bg-warm)}.reminder-card.critical{border-left-color:var(--warn-strong);background:var(--danger-bg-warm)}.reminder-card.warning{border-left-color:var(--warn)}.reminder-card strong{display:block;margin:4px 0}.reminder-card p{margin:3px 0;color:var(--muted-strong)}.reminder-card small{color:var(--muted)}.reminder-severity{font-size:.68rem;font-weight:800;letter-spacing:.08em;color:var(--muted)}.reminder-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.reminder-actions form{margin:0}@media(max-width:760px){.reminder-card{align-items:flex-start;flex-direction:column}}


/* v0.16 · mini CRM */
.crm-stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin:16px 0}.crm-stats>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}.crm-stats strong{display:block;font-size:1.35rem;color:var(--navy)}.crm-stats span{font-size:.76rem;color:var(--muted)}.crm-table{min-width:900px}.crm-table small{display:block;color:var(--muted);margin-top:4px}.crm-badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:700;background:var(--ghost);color:var(--muted)}.crm-badge.cotizacion_enviada{background:var(--info-bg-2);color:var(--navy)}.crm-badge.seguimiento{background:var(--warn-bg);color:var(--warn-dark)}.crm-badge.renovado{background:var(--ok-bg-soft);color:var(--ok)}.crm-badge.no_interes,.crm-badge.cerrado{background:var(--ghost);color:var(--muted)}.crm-project textarea{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:10px 11px;font:inherit;resize:vertical}.crm-project .subpanel h3{margin-top:0}@media(max-width:900px){.crm-stats{grid-template-columns:repeat(2,1fr)}}

/* v0.17 · control económico */
.finance-stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin:14px 0}.finance-stats>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}.finance-stats strong{display:block;font-size:1.3rem;color:var(--navy)}.finance-stats span{font-size:.76rem;color:var(--muted)}.finance-table{min-width:760px}.finance-table small{display:block;color:var(--muted);margin-top:4px}.finance-badge,.quote-badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:700;background:var(--ghost);color:var(--muted)}.finance-badge.pagado,.quote-badge.aceptada{background:var(--ok-bg-soft);color:var(--ok)}.finance-badge.parcial,.quote-badge.enviada{background:var(--warn-bg);color:var(--warn-dark)}.finance-badge.pendiente{background:var(--danger-bg-soft);color:var(--danger)}.quote-badge.rechazada,.quote-badge.cancelada{background:var(--ghost);color:var(--muted)}.finance-forms{align-items:start}.inline-form{display:flex;gap:6px;align-items:center}.inline-form select{min-width:120px}@media(max-width:900px){.finance-stats{grid-template-columns:repeat(2,1fr)}.finance-forms{grid-template-columns:1fr}}
/* coherencia UX · accesibilidad base */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.readonly-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.readonly-summary .kv{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}.readonly-summary .kv span{display:block;font-size:.74rem;color:var(--muted);margin-bottom:3px}.readonly-summary .kv strong{font-size:.95rem;color:var(--ink)}
/* Iteration 2 · explainable requirements and evidence links */
.readiness-graph{margin:var(--space-5) 0;padding:clamp(16px,3vw,28px);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:0 8px 28px var(--shadow-sm)}
.readiness-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.readiness-heading h2{margin:2px 0 5px}.readiness-scope{max-width:760px;margin:0;color:var(--muted);line-height:1.55}.readiness-count{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted-strong);font-size:.78rem;font-weight:700}
.readiness-next{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:18px 0;padding:16px 18px;border:1px solid var(--info-line);border-left:5px solid var(--navy);border-radius:var(--radius);background:var(--info-bg)}.readiness-next>div{min-width:0}.readiness-next strong{display:block;margin:4px 0;color:var(--navy);font-size:1rem}.readiness-next p{margin:4px 0 0;color:var(--muted-strong);line-height:1.5}.readiness-next .button{flex:none}.readiness-clear{background:var(--ok-bg-soft);border-color:var(--ok-line);border-left-color:var(--ok)}
.readiness-counts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.readiness-counts span,.readiness-badge{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:700;line-height:1.2}.status-complete{background:var(--ok-bg-soft);color:var(--ok-dark)}.status-needs_evidence,.status-needs_review,.status-not_evaluated{background:var(--warn-bg);color:var(--warn-dark)}.status-stale{background:var(--danger-bg);color:var(--danger)}.status-not_applicable{background:var(--ghost);color:var(--muted-strong)}
.readiness-list{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.readiness-list>summary,.readiness-item>summary,.readiness-na-form>summary{cursor:pointer;font-weight:700;color:var(--navy);padding:8px 2px}.readiness-items{display:grid;gap:8px;margin-top:10px}.readiness-item{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:10px;background:var(--surface);overflow:hidden}.readiness-item.status-complete{border-left-color:var(--ok)}.readiness-item.status-stale{border-left-color:var(--danger)}.readiness-item.status-not_applicable{border-left-color:var(--muted)}.readiness-item>summary{display:flex;align-items:center;gap:10px;padding:11px 13px;list-style:none}.readiness-item>summary::-webkit-details-marker{display:none}.readiness-item>summary::after{content:'+';margin-left:auto;color:var(--muted);font-size:1.15rem}.readiness-item[open]>summary::after{content:'−'}.readiness-id{flex:none;color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}.readiness-item>summary strong{min-width:0;flex:1}.readiness-badge{flex:none;background:var(--paper);color:var(--muted-strong)}.readiness-item-body{padding:0 14px 14px}.readiness-item-body>p{line-height:1.5}.readiness-facts{padding:10px 12px;border-radius:8px;background:var(--paper)}.readiness-facts ul,.readiness-evidence{list-style:none;margin:8px 0 0;padding:0}.readiness-facts li{display:flex;justify-content:space-between;gap:14px;padding:5px 0;border-top:1px solid var(--line)}.readiness-facts li span,.readiness-evidence small,.readiness-citation small,.readiness-disposition small{color:var(--muted);font-size:.78rem}.readiness-facts li b{text-align:right;overflow-wrap:anywhere}.readiness-citation{padding:10px 12px;border-left:3px solid var(--line-strong);background:var(--paper)}.readiness-citation small,.readiness-disposition small{display:block;margin-top:4px}.readiness-guidance{color:var(--muted-strong)}.readiness-evidence li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 0;border-top:1px solid var(--line)}.readiness-evidence li>span{flex:1;min-width:180px}.readiness-evidence form,.readiness-item-body>form{margin:6px 0}.readiness-link-form{display:flex;align-items:flex-end;gap:10px;margin:12px 0}.readiness-link-form label,.readiness-na-form label{flex:1;font-weight:700}.readiness-link-form select,.readiness-na-form textarea{display:block;width:100%;margin-top:5px}.readiness-na-form{margin-top:10px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.readiness-na-form p{color:var(--muted-strong);font-size:.86rem}.readiness-na-form textarea{min-height:82px;resize:vertical}
@media(max-width:720px){.readiness-heading,.readiness-next{align-items:stretch;flex-direction:column}.readiness-heading .readiness-count{align-self:flex-start}.readiness-next .button{width:100%;justify-content:center}.readiness-item>summary{flex-wrap:wrap}.readiness-item>summary strong{flex-basis:calc(100% - 60px)}.readiness-badge{margin-left:32px}.readiness-link-form{align-items:stretch;flex-direction:column}.readiness-link-form button{width:100%}.readiness-facts li{align-items:flex-start;flex-direction:column;gap:2px}.readiness-facts li b{text-align:left}.readiness-evidence li>span{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* paso 03 · mensajes flash persistentes */
.flash-area{display:grid;gap:8px;margin-top:18px}
.flash{padding:12px 16px;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:600}
.flash.ok{background:var(--ok-bg);color:var(--ok-dark);border-color:var(--ok-line)}
.flash.error{background:var(--danger-bg);color:var(--wine);border-color:var(--danger-line)}
.flash.info{background:var(--info-bg);color:var(--navy);border-color:var(--info-line)}
/* paso 04 · paneles colapsables del dashboard */
details.collapse-panel{background:var(--paper);margin-top:24px;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px var(--shadow-sm);overflow:hidden}
details.collapse-panel summary.collapse-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 26px;cursor:pointer;list-style:none}
details.collapse-panel summary.collapse-head::-webkit-details-marker{display:none}
details.collapse-panel summary.collapse-head h2{margin:0;padding:0;border:0}
details.collapse-panel summary.collapse-head::after{content:'▾';color:var(--muted);font-size:1.15rem}
details.collapse-panel[open] summary.collapse-head::after{content:'▴'}
details.collapse-panel .collapse-body{padding:0 26px 26px}
/* paso 07 · onboarding y visibilidad de créditos */
.onboarding{background:var(--info-bg);border:1px solid var(--info-line);border-radius:14px;padding:22px;margin-top:12px}
.onboarding h3{margin:0 0 10px;color:var(--navy)}
.onboarding ol{margin:0 0 16px;padding-left:20px;line-height:1.8}
.ledger-list{display:grid;gap:6px;margin-top:14px}
.ledger-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface)}
.ledger-row strong{color:var(--navy)}
.ledger-row small{display:block;color:var(--muted);margin-top:2px}
/* premium · tipografía display */
h1,h2,.hero h1,.brand strong,.login-card h1{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}
h2{font-size:var(--text-xl)}
body{font-synthesis:none;text-rendering:optimizeLegibility}
/* premium · micro-interacciones */
.project-card,.map-card,.stepper a,.button,.secondary,.primary,.ghost{transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}
.project-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.folio-badge{display:inline-block;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:700;background:var(--ghost);color:var(--navy);border:1px solid var(--line)}
.flash{animation:flash-in var(--dur) var(--ease)}
.portfolio-badge,.crm-badge,.finance-badge,.quote-badge{animation:pulse-in var(--dur) var(--ease)}
@keyframes flash-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
/* paso 04 · ritual de generación */
.job-progress{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:12px 0}
.job-stage{font-weight:700;color:var(--navy);margin-bottom:10px}
.job-bar{height:10px;border-radius:999px;background:var(--ghost);overflow:hidden}
.job-bar-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--navy),var(--wine));transition:width var(--dur) var(--ease)}
.job-reveal{margin-top:12px;padding:14px 16px;border:1px solid var(--ok-line);border-radius:var(--radius);background:var(--ok-bg)}
.job-reveal h3{margin:0 0 4px;color:var(--ok-dark)}
.job-reveal p{margin:0 0 10px;color:var(--muted)}
.job-reveal.reveal-in{animation:flash-in var(--dur) var(--ease)}
.job-error{margin-top:12px;padding:12px 14px;border:1px solid var(--danger-line);border-radius:var(--radius);background:var(--danger-bg);color:var(--danger);font-weight:600}
.job-retry{margin-top:10px}
/* paso 05 · workbench (paleta + atajos + layout) */
[hidden],.palette-overlay[hidden]{display:none!important}
.palette-overlay{position:fixed;inset:0;background:rgba(16,24,40,.4);backdrop-filter:blur(2px);z-index:100;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.palette{width:min(560px,92vw);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}
.palette-input{width:100%;border:0;border-bottom:1px solid var(--line);padding:16px 18px;font-size:var(--text-lg);font-family:var(--font-ui);outline:none;background:var(--paper);color:var(--ink)}
.palette-list{max-height:48vh;overflow:auto;padding:8px}
.palette-item{padding:11px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--ink)}
.palette-item.selected{background:var(--info-bg);color:var(--navy);font-weight:700}
.project-card.selected{outline:2px solid var(--navy);outline-offset:2px}
.workbench{display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:var(--space-5);align-items:start;margin-top:var(--space-5)}
.wb-rail{position:sticky;top:96px;display:flex;flex-direction:column;gap:var(--space-5)}
.wb-rail > *{margin-top:0}
.wb-main{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}
.wb-main > *{margin-top:0}
@media(max-width:1100px){.workbench{grid-template-columns:1fr}.wb-rail{position:static}}
/* paso 06 · remote móvil */
.mobile-status{display:none}
.mobile-nav{display:none}
@media(max-width:768px){
  html{scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .mobile-status{display:block;margin-top:var(--space-4)}
  .ms-card{border-radius:var(--radius-lg);padding:18px;margin-bottom:10px;color:var(--paper)}
  .ms-card strong{display:block;font-size:var(--text-xl);font-family:var(--font-display);font-weight:700}
  .ms-card span{font-size:var(--text-sm);opacity:.94}
  .ms-card.ok{background:linear-gradient(120deg,var(--ok),var(--ok-dark))}
  .ms-card.warn{background:linear-gradient(120deg,var(--warn-strong),var(--warn-strong))}
  .ms-card.danger{background:linear-gradient(120deg,var(--danger),var(--wine))}
  .ms-action{width:100%;justify-content:center;margin-top:6px}
  .ms-action-form button{width:100%}
  .mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--paper);border-top:1px solid var(--line);z-index:50;box-shadow:0 -4px 16px rgba(16,24,40,.08)}
  .mobile-nav a,.mobile-nav button{flex:1;min-width:0;text-align:center;padding:14px 8px 15px;font-weight:700;font-size:var(--text-sm);font-family:inherit;color:var(--muted);text-decoration:none;border:0;background:transparent;cursor:pointer}
  .mobile-nav a:first-child{color:var(--navy)}
  body{padding-bottom:72px}
  .import-panel{display:none}
  .portfolio-panel{display:none}
  .sticky-actions{bottom:64px}
  .navlinks{display:none}
  .palette-trigger{display:none}
}
/* paso 02 · flujo guiado del expediente */
.stepper{display:flex;gap:6px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:10px;margin-top:18px;position:sticky;top:86px;z-index:9}
.stepper a{flex:1 1 0;min-width:0;overflow:hidden;text-decoration:none;color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:.8rem;font-weight:700;display:flex;flex-direction:column;gap:4px;transition:.15s}
.stepper a>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.stepper a .n{font-size:.66rem;letter-spacing:.07em;color:var(--muted);text-transform:uppercase;font-weight:800}
.stepper a .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--line-strong);vertical-align:middle;margin-right:3px}
.stepper a.complete .dot{background:var(--ok)}
.stepper a:hover{border-color:var(--navy)}
.stepper a.active{border-color:var(--navy);color:var(--navy);background:var(--info-bg)}
.stepper a.active .dot{background:var(--navy)}
.sticky-actions{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:10px 4vw;display:flex;align-items:center;gap:14px;z-index:20;box-shadow:0 -6px 20px var(--shadow)}
.sticky-actions .save-status{flex:1;font-size:.82rem;color:var(--muted)}
.sticky-actions .save-status.dirty{color:var(--warn-strong);font-weight:700}
@media(max-width:700px){.stepper a{min-width:45%;flex:1 1 45%}.sticky-actions{flex-wrap:wrap}}
/* RGC OS: Cloud presence badge & Preflight avionics */
.cloud-presence-badge{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);font-weight:700;color:var(--muted-strong);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-full);padding:6px 14px;box-shadow:0 2px 6px var(--shadow-sm);transition:all var(--dur) var(--ease)}
.cloud-presence-badge .pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);transition:background var(--dur) var(--ease)}
.cloud-presence-badge.syncing{color:var(--warn-dark);border-color:var(--warn);background:var(--warn-bg)}
.cloud-presence-badge.syncing .pulse-dot{background:var(--warn);box-shadow:0 0 0 3px rgba(173,141,0,.25);animation:pulseDot .8s infinite alternate ease-in-out}
.cloud-presence-badge.saved{color:var(--ok-dark);border-color:var(--ok-line);background:var(--ok-bg)}
.cloud-presence-badge.saved .pulse-dot{background:var(--ok)}
.cloud-presence-badge.error{color:var(--danger);border-color:var(--danger-line);background:var(--danger-bg)}
.cloud-presence-badge.error .pulse-dot{background:var(--danger)}
@keyframes pulseDot{0%{transform:scale(0.8);opacity:.7}100%{transform:scale(1.25);opacity:1}}
.preflight-card{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--navy);border-radius:var(--radius);padding:18px 22px;margin:18px 0;box-shadow:0 4px 18px var(--shadow-sm);transition:border-color var(--dur) var(--ease)}
.preflight-card.audit-ready{border-left-color:var(--ok);background:linear-gradient(to right,var(--ok-bg-soft),var(--paper) 40%)}
.preflight-card.audit-blocked{border-left-color:var(--danger);background:linear-gradient(to right,var(--danger-bg-soft),var(--paper) 40%)}
.preflight-card.audit-warning{border-left-color:var(--warn);background:linear-gradient(to right,var(--warn-bg),var(--paper) 40%)}
.preflight-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.preflight-score-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:72px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line)}
.audit-ready .preflight-score-badge{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-dark)}
.audit-blocked .preflight-score-badge{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}
.audit-warning .preflight-score-badge{background:var(--warn-bg);border-color:var(--warn);color:var(--warn-dark)}
.score-num{font-size:var(--text-xl);font-weight:800;line-height:1;font-family:var(--font-display)}
.score-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-weight:700}
.preflight-title-box{flex:1;min-width:240px}
.preflight-title-box h3{margin:0 0 4px;font-size:var(--text-base);color:var(--navy-deep)}
.preflight-sub{margin:0;font-size:var(--text-sm);color:var(--muted-strong)}
.preflight-details{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:12px}
.audit-group h4{margin:0 0 6px;font-size:var(--text-sm);color:var(--navy)}
.audit-group ul{margin:0;padding-left:20px;font-size:var(--text-sm)}
.audit-group.critical li{color:var(--danger);margin-bottom:4px}
.audit-group.warnings li{color:var(--warn-dark);margin-bottom:4px}
.audit-group.passed li{color:var(--ok);margin-bottom:3px}
.audit-jump{display:inline-block;margin-left:8px;padding:2px 8px;background:var(--ghost);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--navy);font-size:11px;font-weight:700;text-decoration:none}
.audit-jump:hover{background:var(--line)}
.btn-apply-suggestion{display:inline-block;margin-left:6px;padding:2px 8px;background:var(--ok-bg);border:1px solid var(--ok-line);border-radius:var(--radius-sm);color:var(--ok-dark);font-size:11px;font-weight:700;cursor:pointer;transition:background var(--dur) var(--ease)}
.input-highlight{outline:3px solid var(--navy)!important;box-shadow:0 0 12px var(--line-strong)!important;animation:pulseHighlight 1.8s var(--ease) forwards}
@keyframes pulseHighlight{0%{transform:scale(1.02);background:var(--ok-bg-soft)}50%{transform:scale(1.01);background:var(--paper)}100%{transform:scale(1)}}

/* Paso 03 · Estudio GIS Espacial Interactivo & Lightbox */
.gis-studio-container{margin:18px 0;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
.gis-studio-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px}
.gis-studio-status{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}
.gis-coords-preview{display:flex;gap:16px;font-size:var(--text-sm);color:var(--muted-strong)}
.gis-coords-preview strong{color:var(--navy)}
.gis-interactive-canvas{width:100%;height:440px;background:var(--ghost);position:relative;z-index:1}
.gis-lightbox-overlay{position:fixed;inset:0;background:rgba(17,24,39,.85);z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px}
.gis-lightbox-content{background:var(--paper);border-radius:var(--radius-lg);max-width:1100px;width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 48px rgba(0,0,0,.35)}
.gis-lightbox-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--surface)}
.gis-lightbox-header h4{margin:0;color:var(--navy);font-size:var(--text-base)}
.gis-lightbox-close{background:transparent;border:0;font-size:20px;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px}
.gis-lightbox-close:hover{color:var(--ink);background:var(--ghost)}
.gis-lightbox-body{flex:1;overflow:auto;padding:16px;display:flex;align-items:center;justify-content:center;background:var(--code-bg)}
.gis-lightbox-body img{max-width:100%;max-height:72vh;object-fit:contain;border-radius:6px}
.gis-lightbox-footer{padding:12px 20px;border-top:1px solid var(--line);background:var(--surface);display:flex;justify-content:flex-end}

/* Paso 04 · Compañero Móvil de Campo "El Ojo del Consultor" */
.gps-field-group{display:flex;align-items:center;gap:12px;margin:8px 0 16px;flex-wrap:wrap}
.gps-fix-btn{display:inline-flex;align-items:center;gap:6px;font-weight:700}
.gps-accuracy-badge{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:600;padding:4px 10px;border-radius:var(--radius-full);border:1px solid var(--line)}
.gps-accuracy-badge.high{background:var(--ok-bg-soft);color:var(--ok);border-color:var(--ok-line)}
.gps-accuracy-badge.medium{background:var(--warn-bg);color:var(--warn-dark);border-color:var(--line-strong)}
.gps-accuracy-badge.low{background:var(--danger-bg-soft);color:var(--danger);border-color:var(--danger-line)}
.gps-accuracy-badge.searching{background:var(--info-bg-2);color:var(--navy);border-color:var(--info-line)}
.gps-accuracy-badge.error{background:var(--danger-bg-soft);color:var(--danger)}

.rapid-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:16px 0}
.rapid-photo-card{border:1px solid var(--line-strong);border-radius:var(--radius);padding:14px;background:var(--surface);display:flex;flex-direction:column;gap:8px;position:relative}
.rapid-photo-card label{display:block;font-size:var(--text-sm);font-weight:700;color:var(--navy)}
.rapid-photo-card input[type="file"]{font-size:var(--text-xs);padding:4px}
.photo-status{font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-full);display:inline-block;width:fit-content}
.photo-status.compressing{background:var(--info-bg-2);color:var(--navy)}
.photo-status.uploading{background:var(--warn-bg);color:var(--warn-dark)}
.photo-status.done{background:var(--ok-bg-soft);color:var(--ok)}
.photo-status.error{background:var(--danger-bg-soft);color:var(--danger)}
.photo-thumb{width:100%;height:110px;object-fit:cover;border-radius:6px;border:1px solid var(--line);margin-top:4px}

.thumb-stepper{display:inline-flex;align-items:center;gap:4px}
.thumb-stepper input[type="number"]{width:70px;text-align:center;font-weight:700;padding:8px 4px}
.step-btn{min-width:44px;min-height:44px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--navy);font-size:18px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.step-btn:hover:not(:disabled){background:var(--ghost);border-color:var(--navy)}
.step-btn:disabled{opacity:.4;cursor:not-allowed}

.offline-alert-bar{position:fixed;bottom:0;left:0;right:0;background:var(--warn-dark);color:var(--paper);text-align:center;padding:10px 16px;font-size:var(--text-sm);font-weight:700;z-index:99999}

/* Paso 05 · Teatro de Ensamblaje & Sello de Oro SHA-256 */
.assembly-theater{margin:18px 0;padding:16px 20px;border:1px solid var(--info-line);border-radius:var(--radius);background:var(--info-bg)}
.assembly-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.assembly-step{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--muted-strong)}
.assembly-step .step-check{font-weight:700;width:18px;text-align:center}
.assembly-step.completed{color:var(--ok);font-weight:600}
.assembly-step.completed .step-check{color:var(--ok)}
.assembly-step.active{color:var(--navy);font-weight:700}
.assembly-step.active .step-check{color:var(--navy)}
.assembly-step.pending{color:var(--muted)}
.assembly-step.pending .step-check{color:var(--muted)}

.golden-seal-card{margin:18px 0;padding:20px;border:2px solid var(--ok-line);border-radius:var(--radius);background:var(--ok-bg);display:grid;gap:14px}
.seal-badge{display:flex;align-items:center;gap:12px}
.seal-icon{font-size:32px}
.seal-badge strong{display:block;color:var(--ok-dark);font-size:var(--text-base);letter-spacing:.05em}
.seal-badge small{color:var(--muted-strong)}
.seal-hash-row{display:flex;align-items:center;justify-content:space-between;background:var(--paper);border:1px solid var(--ok-line);border-radius:8px;padding:10px 14px;flex-wrap:wrap;gap:10px}
.seal-hash-row code{font-family:monospace;font-size:var(--text-xs);color:var(--navy);word-break:break-all}
.copy-hash-btn{font-size:var(--text-xs);padding:6px 12px;background:var(--ghost);border:1px solid var(--line-strong);border-radius:6px;cursor:pointer;font-weight:700}
.seal-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.seal-meta-grid>div{background:var(--paper);padding:10px 14px;border:1px solid var(--ok-line);border-radius:8px}
.seal-meta-grid span{display:block;font-size:var(--text-xs);color:var(--muted)}
.seal-meta-grid strong{font-size:var(--text-sm);color:var(--navy-ink)}

/* Paso 06 · Radar Comercial 365 & WhatsApp Concierge */
.radar-filters{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}
.radar-pill{border:1px solid var(--line-strong);background:var(--paper);padding:8px 14px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;color:var(--muted-strong);cursor:pointer}
.radar-pill:hover{border-color:var(--navy);color:var(--navy)}
.radar-pill.active{background:var(--navy);color:var(--paper);border-color:var(--navy)}
.wa-concierge-btn{display:inline-flex;align-items:center;gap:6px;background:var(--ok);color:var(--paper);border:0;border-radius:var(--radius-full);padding:6px 12px;font-size:var(--text-xs);font-weight:700;text-decoration:none}
.wa-concierge-btn:hover{background:var(--ok-dark);color:var(--paper)}

/* Live Glass Twin (Talonario Virtual a 35ms) & Paridad Madre */
html, body {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

.vx-studio-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(460px, 0.95fr);
  gap: 20px;
  align-items: start;
  margin: 16px 0;
}

.vx-twin-column {
  position: sticky;
  top: 86px;
  max-height: calc(100vh - 106px);
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 30;
  box-shadow: 0 8px 30px var(--shadow);
}

.vx-twin-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  font-weight: 700;
}

.vx-twin-title {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--navy);
}

.vx-twin-badge {
  font-size: 10px;
  background: var(--navy);
  color: var(--paper);
  padding: 2px 7px;
  border-radius: 4px;
  letter-spacing: 0.5px;
}

.vx-twin-controls {
  display: flex;
  align-items: center;
  gap: 5px;
}

.vx-twin-controls button {
  padding: 3px 8px;
  font-size: 12px;
  background: var(--paper);
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  cursor: pointer;
  font-weight: 700;
  color: var(--navy-deep);
}

.vx-twin-controls button:hover {
  background: var(--ghost);
}

.vx-twin-zoom-val {
  font-size: 11px;
  min-width: 36px;
  text-align: center;
  color: var(--muted);
  font-weight: 600;
}

.vx-twin-body {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
  background: var(--bg);
}

.vx-twin-sheet {
  background: var(--paper);
  border: 1px solid var(--line-strong);
  box-shadow: 0 4px 16px var(--shadow-sm);
  border-radius: 8px;
  padding: 18px;
  font-family: var(--font-ui);
  font-size: 12px;
  color: var(--ink);
  transform-origin: top left;
  transition: transform 0.12s ease-out;
}

.vx-twin-sheet h4 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 13px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 5px;
}

.mono-badge {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 11px;
  background: var(--surface-2);
  border: 1px solid var(--line-strong);
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--navy-deep);
  display: inline-block;
}
.cas-badge { color: var(--navy); font-weight: 600; }
.onu-badge { color: var(--wine); font-weight: 600; }

.organigram-board {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  padding: 20px;
  margin: 14px 0;
  overflow-x: auto;
  text-align: center;
}
.organigram-level {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin: 12px 0;
  flex-wrap: wrap;
}
.organigram-box {
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 4px solid var(--navy);
  border-radius: 8px;
  padding: 10px 14px;
  min-width: 170px;
  max-width: 240px;
  flex: 1 1 180px;
  word-break: break-word;
  box-shadow: 0 2px 6px var(--shadow-sm);
  text-align: center;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.organigram-box:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px var(--shadow-md);
}
.organigram-box.leader { border-top-color: var(--wine); }
.organigram-box.operative { border-top-color: var(--navy); }
.organigram-box.brigade { border-top-color: var(--ok); }
.organigram-box strong { display: block; font-size: 12px; color: var(--navy-ink); }
.organigram-box span { display: block; font-size: 11px; color: var(--muted); margin-top: 3px; word-break: break-word; }

.sample-body-note { margin: 8px 0 12px; padding: 10px 14px; border-radius: 10px; background: var(--warn-bg); color: var(--warn-dark); }
.fine-note { display: block; color: var(--warn-dark); }
.fine-val input[aria-disabled="true"] { opacity: .45; }
.fine-matrix select { max-width: 170px; font-size: 12px; }
.fine-matrix textarea { min-width: 220px; font-size: 12px; }
.fine-matrix td { vertical-align: top; }
.fine-matrix .fine-r { font-weight: 700; white-space: nowrap; }
.fine-level { font-weight: 700; white-space: nowrap; border-radius: 6px; }
.fine-level-alto { background: var(--red-bg); color: var(--red-dark); }
.fine-level-medio { background: var(--warn-bg); color: var(--warn-dark); }
.fine-level-bajo { background: var(--ok-bg); color: var(--ok-dark); }
.fine-level-pendiente { background: var(--surface-2); color: var(--muted); }
.fine-level-na { background: var(--surface-2); color: var(--muted); font-style: italic; }
.fine-val { display: flex; gap: 6px; align-items: center; font-size: 12px; }
.fine-val input:disabled + * , .fine-val input:disabled { cursor: not-allowed; }
.fine-matrix small { display: block; margin-top: 4px; }
.fine-import { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-top: 12px; font-size: 13px; }
.fine-import small { flex-basis: 100%; }
.fine-origin-banner {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  padding: 16px 20px;
  margin: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.fine-origin-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.fine-origin-header strong {
  font-size: 13px;
  font-weight: 700;
  color: var(--navy-ink);
  letter-spacing: 0.02em;
}
.fine-origin-seal {
  font-size: 11px;
  font-weight: 700;
  background: var(--wine);
  color: var(--paper);
  padding: 3px 8px;
  border-radius: 4px;
  letter-spacing: 0.05em;
}
.fine-origin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.fine-origin-item {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 14px;
}
.fine-origin-item span {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 4px;
}
.fine-origin-item strong {
  display: block;
  font-size: 13px;
  color: var(--navy-ink);
  word-break: break-word;
}
.fine-origin-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.fine-tag {
  background: var(--paper);
  border: 1px solid var(--info-line);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--navy);
}
.fine-badge-gp {
  font-family: monospace;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
}
.fine-badge-gp.alto { background: var(--danger-bg); color: var(--danger); }
.fine-badge-gp.medio { background: var(--warn-bg); color: var(--warn-dark); }
.fine-badge-gp.bajo { background: var(--ok-bg); color: var(--ok-dark); }

/* Ticket 27335 RGC-WEB-004 · Indicador puntual independiente del Atlas de Riesgos y motor de sugerencia Fine */
.fine-hazard-cell {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.fine-hazard-title-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.fine-atlas-dot-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-full);
  padding: 2px 8px 2px 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted-strong);
  cursor: pointer;
  line-height: 1.3;
}
.fine-atlas-dot-btn:hover {
  border-color: var(--navy);
  background: var(--surface-2);
}
.fine-atlas-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.atlas-dot-muy-alto,
.atlas-dot-alto {
  background: var(--red-deep);
  box-shadow: 0 0 0 2px var(--red-bg);
}
.atlas-dot-medio {
  background: var(--amber);
  box-shadow: 0 0 0 2px var(--amber-bg);
}
.atlas-dot-bajo,
.atlas-dot-muy-bajo {
  background: var(--green-deep);
  box-shadow: 0 0 0 2px var(--green-bg);
}
.atlas-dot-sin-ref {
  background: var(--paper);
  border: 2px solid var(--muted);
}
.fine-proposal-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--info-bg);
  color: var(--navy);
  border: 1px solid var(--info-line);
  border-radius: 6px;
  padding: 2px 7px;
  font-size: 11px;
  font-weight: 700;
}
.fine-suggestion-box {
  margin-top: 4px;
  padding: 6px 8px;
  border-radius: 6px;
  background: var(--surface);
  border: 1px dashed var(--line-strong);
  font-size: 11px;
  color: var(--muted-strong);
}
.fine-suggestion-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.fine-mini-btn {
  border: 1px solid var(--info-line);
  background: var(--paper);
  color: var(--navy);
  border-radius: 6px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.fine-mini-btn:hover {
  background: var(--info-bg);
}
.fine-atlas-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 12px 0;
  padding: 12px 16px;
  border-radius: 10px;
  background: var(--surface);
  border: 1px solid var(--line-strong);
}
.fine-atlas-legend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  color: var(--muted-strong);
}
.fine-atlas-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.fine-atlas-modal {
  position: fixed;
  inset: 0;
  background: var(--shadow);
  backdrop-filter: blur(2px);
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.fine-atlas-modal-card {
  width: min(760px, 94vw);
  max-height: 86vh;
  overflow: auto;
  background: var(--paper);
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  padding: 22px 24px;
  box-shadow: 0 16px 40px var(--shadow);
}
.fine-atlas-kv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.fine-atlas-kv {
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.fine-atlas-kv span {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 3px;
}
.fine-atlas-kv strong {
  font-size: 13px;
  color: var(--navy-ink);
}
.fine-history-list {
  display: grid;
  gap: 8px;
  max-height: 280px;
  overflow: auto;
  margin-top: 10px;
}
.fine-history-item {
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--line);
  font-size: 12px;
}
.fine-evid-input {
  margin-top: 5px;
  font-size: 11px;
  padding: 5px 8px;
}
.fine-additional-section {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line-strong);
}
.fine-add-row {
  background: var(--surface);
}


.emergency-map-wrap {
  margin: 16px 0;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  overflow: hidden;
  background: var(--surface);
  box-shadow: 0 4px 16px var(--shadow-sm);
}
.emergency-map-wrap img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 1200px) {
  .vx-studio-grid { grid-template-columns: minmax(0, 1fr); }
  .vx-form-column { min-width: 0; }
  .vx-form-column > .subhead { flex-wrap: wrap; }
  .vx-twin-column { position: static; max-height: none; }
}

/* Paso 09 · Importación XLSX: drop-zone, relleno en vivo y Acta dorada */
.xlsx-import-panel { border-left: 4px solid var(--gold); }
.import-receipt { background: var(--gold-bg); border: 1px solid var(--gold); border-radius: 10px; padding: 14px 18px; margin-bottom: 14px; }
.import-receipt code { font-family: monospace; background: rgba(0,0,0,.05); padding: 1px 6px; border-radius: 4px; }
#xlsx-dropzone { border: 2px dashed var(--line-strong); border-radius: 12px; padding: 26px; text-align: center; cursor: pointer; transition: all .18s; }
#xlsx-dropzone.drag { border-color: var(--navy); background: var(--info-bg); }
#xlsx-dropzone.uploading { border-color: var(--gold); background: var(--gold-bg); pointer-events: none; opacity: 0.85; }
#xlsx-dropzone p, #xlsx-dropzone span { pointer-events: none; }
#xlsx-status { color: var(--muted-strong); } #xlsx-status.error { color: var(--danger); }
.filled-flash { background: var(--gold-bg) !important; transition: background .5s; }
.import-warnings { margin-top: 10px; } .import-warnings summary { cursor: pointer; color: var(--warn-strong); }

.copiloto-fab{position:fixed;right:24px;bottom:84px;z-index:60;width:58px;height:58px;border-radius:50%;border:2px solid var(--gold);background:var(--navy);color:var(--paper);font-size:22px;cursor:grab;box-shadow:0 8px 24px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.12);transition:transform .2s ease, box-shadow .2s ease;touch-action:none;user-select:none;-webkit-user-select:none;padding:0;display:flex;align-items:center;justify-content:center}
/* Mobile navigation owns the help entry point; keep the floating desktop launcher hidden. */
@media(max-width:768px){#copiloto-fab{display:none}}
.copiloto-fab:active{cursor:grabbing}
.copiloto-fab.is-dragging{cursor:grabbing !important;transform:scale(1.08) !important;box-shadow:0 18px 42px rgba(0,0,0,.38), 0 0 0 2px var(--gold) !important;transition:none !important}
.copiloto-fab.is-snapping{transition:top .36s cubic-bezier(.18,.89,.32,1.15), left .36s cubic-bezier(.18,.89,.32,1.15), transform .2s ease, box-shadow .2s ease !important}
.copiloto-fab.copiloto-ghost{opacity:.18 !important;pointer-events:none !important;transition:opacity .25s ease !important}
.copiloto-fab.is-parked{transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease !important}
.copiloto-fab.dock-right.is-parked{transform:translateX(36px)}
.copiloto-fab.dock-right.is-parked:hover{transform:translateX(0)}
.copiloto-fab.dock-left.is-parked{transform:translateX(-36px)}
.copiloto-fab.dock-left.is-parked:hover{transform:translateX(0)}
.copiloto-avatar-wrap{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--navy-deep)}
.copiloto-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;pointer-events:none;display:block}
.copiloto-pulse-ring{position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--gold);opacity:0;pointer-events:none;animation:pulseFilemonHalo 3.5s infinite}
@keyframes pulseFilemonHalo{0%{transform:scale(.96);opacity:0}50%{transform:scale(1.08);opacity:.45}100%{transform:scale(1.2);opacity:0}}
.copiloto-status-dot{position:absolute;bottom:2px;right:2px;width:13px;height:13px;border-radius:50%;background:var(--ok);border:2px solid var(--paper);box-shadow:0 1px 4px rgba(0,0,0,.3);pointer-events:none;transition:background .3s ease}
.copiloto-status-dot.status-warn{background:var(--warn-strong)}
.copiloto-status-dot.status-danger{background:var(--danger)}
.copiloto-fab.dock-left .copiloto-whisper-pill{right:auto;left:66px;animation:fadeInWhisperLeft var(--dur) var(--ease)}
@keyframes fadeInWhisperLeft{from{opacity:0;transform:translateY(-50%) translateX(-6px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}
.copiloto-head-identity{display:flex;align-items:center;gap:10px}
.copiloto-head-avatar{width:36px;height:36px;border-radius:50%;border:2px solid var(--gold);object-fit:cover;background:var(--navy-deep);flex-shrink:0}
.copiloto-head-sub{display:block;font-size:var(--text-xs);color:var(--gold-bg);opacity:.88;font-weight:500}
.copiloto-context-hud{position:fixed;z-index:70;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:180px;animation:fadeInWhisper var(--dur-fast) var(--ease)}
.copiloto-hud-item{background:transparent;border:0;border-radius:8px;padding:8px 12px;text-align:left;font-size:var(--text-sm);color:var(--ink);font-weight:600;cursor:pointer;transition:background var(--dur-fast);display:flex;align-items:center;gap:8px}
.copiloto-hud-item:hover{background:var(--wine-bg);color:var(--wine-dark)}
.copiloto-panel{position:fixed;right:18px;bottom:80px;z-index:60;width:min(360px,calc(100vw - 36px));max-height:70vh;display:none;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.22);overflow:hidden}
.copiloto-panel.open{display:flex}
.copiloto-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.copiloto-close{background:transparent;border:0;font-size:20px;cursor:pointer;color:var(--muted)}
.copiloto-body{overflow-y:auto;padding:12px 14px}
.copiloto-card h4{margin:0 0 6px}
.copiloto-card p{margin:4px 0;font-size:.9rem}
.copiloto-task-guide ol{padding-left:1.25rem;margin:.35rem 0 .75rem}
.copiloto-manual-link{display:inline-flex;align-items:center;min-height:48px;padding:8px 4px;color:var(--wine-dark);font-weight:700}
.help-assistance{border-top:1px solid var(--line);padding:12px 14px;flex-shrink:0;max-height:45vh;overflow:auto;background:var(--surface)}
.help-assistance summary,.help-assistance__action{min-height:48px;display:flex;align-items:center;padding:10px 12px;border-radius:8px;cursor:pointer;font-weight:700}
.help-assistance__action{width:100%;margin:8px 0;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.help-assistance__consent,.help-assistance__status{font-size:.8rem;line-height:1.4;color:var(--muted)}
.help-assistance__photo-input{max-width:100%;min-width:0}
.help-assistance__ocr-result{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font:inherit;font-size:.86rem}
.help-assistance__support-preview{width:100%;min-height:80px}
.help-assistance__support-packet{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font:inherit;font-size:.8rem;line-height:1.5}
.help-manual-index{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.help-manual-index a{display:inline-flex;align-items:center;min-height:48px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.help-manual-section{scroll-margin-top:100px;padding:24px 0;border-top:1px solid var(--line)}
.copiloto-action,.copiloto-tab-btn,.copiloto-close,.copiloto-pin-btn{min-height:48px;min-width:48px}
.copiloto-task-guide li{padding:.2rem 0;font-size:.88rem;line-height:1.45}
.copiloto-task-guide h5{margin:.8rem 0 .25rem;color:var(--ink);font-size:.82rem}
.copiloto-task-guide .copiloto-meta{margin-top:.75rem;padding-top:.55rem;border-top:1px solid var(--line)}
.copiloto-meta{color:var(--muted);font-size:.82rem}
.copiloto-fundamento{color:var(--warn-strong);font-size:.78rem}
.copiloto-action{margin-top:8px;padding:8px 12px;border-radius:9px;border:1px solid var(--input-border);background:var(--navy);color:var(--paper);font-weight:700;cursor:pointer}
.copiloto-form{padding:10px 14px;border-top:1px solid var(--line)}
.copiloto-query{width:100%;padding:9px 12px;border:1px solid var(--input-border);border-radius:9px}
.copiloto-flash{outline:3px solid var(--gold) !important;outline-offset:3px !important;box-shadow:0 0 16px var(--gold-bg) !important;transition:outline .4s, box-shadow .4s}


.next-step-radar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:14px 0}
.copiloto-why{background:transparent;border:0;color:var(--warn-strong);cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0}

/* ============ DISEÑO · 2026-09-22 · EL EXPEDIENTE COMO INSTRUMENTO · BASE ============ */
::selection{background:var(--wine-bg);color:var(--wine-dark)}
:focus-visible{outline:var(--focus-ring);outline-offset:1px;border-radius:var(--radius-sm)}
.eyebrow{letter-spacing:2.2px;text-transform:uppercase}
body{background:var(--bg)}
.top{background:color-mix(in srgb,var(--paper) 92%,var(--bg));backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline)}
main{width:min(1220px,92vw);margin:var(--pad-section) auto 56px}
.hero{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--wine),var(--wine-dark) 55%,var(--navy-deep));box-shadow:0 16px 44px color-mix(in srgb,var(--wine-dark) 28%,transparent)}
.hero::after{content:"";position:absolute;inset:auto -40px -70px auto;width:340px;height:340px;border:1px solid rgba(255,255,255,.14);border-radius:50%;pointer-events:none}
.hero.compact{position:relative;overflow:hidden}
.panel,.form-panel,.roadmap,.login-card{border-radius:var(--radius-lg);box-shadow:0 2px 0 var(--hairline),0 14px 34px var(--shadow-sm)}
.panel-head{gap:16px}
input,select,textarea{border:1px solid var(--hairline);border-radius:var(--radius-sm);box-shadow:inset 0 1px 2px var(--shadow-sm);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
input:focus,select:focus,textarea:focus{border-color:var(--wine);outline:none;box-shadow:var(--focus-ring)}
label{letter-spacing:.2px}
button:not([class]){color:var(--wine-dark);border-color:var(--hairline)}
button:not([class]):hover{background:var(--wine-bg);border-color:var(--wine-soft)}
@media(prefers-reduced-motion:no-preference){body{scroll-behavior:smooth}}

/* ===== UI BEAUTIFY · DASHBOARD ===== */
.big-three{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin:0 0 var(--space-5)}
.bt-item{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:0 1px 0 rgba(36,36,36,.03)}
.bt-item span{display:block;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:var(--sans-tag)}
.bt-item strong{display:block;font-family:var(--font-display);font-size:var(--text-2xl);color:var(--ink);margin:var(--space-2) 0 var(--space-1);line-height:1.1}
.bt-item.money strong{color:var(--wine)}
.bt-item em{font-style:normal;color:var(--muted);font-size:var(--text-sm)}
.stat-card{display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper)}
.stat-card strong{font-family:var(--font-display);font-size:var(--text-lg);color:var(--navy-deep)}
.stat-card em{font-style:normal;font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.portfolio-stats,.document-stats,.crm-stats,.finance-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin:var(--space-4) 0}
.ami-rail{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-3) var(--space-3) var(--space-2);margin:var(--space-3) 0;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);scrollbar-width:thin}
.rail-piece{flex:1 0 176px;display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);border-left:3px solid var(--muted);border-radius:var(--radius-sm);background:var(--surface);text-decoration:none;color:var(--ink)}
.rail-piece.vencidos{border-left-color:var(--danger)}
.rail-piece.urgentes{border-left-color:var(--warn-strong)}
.rail-piece.proximos{border-left-color:var(--gold)}
.rail-piece.vigentes,.rail-piece.en_proceso{border-left-color:var(--ok)}
.rail-piece.sin_liberar{border-left-color:var(--muted)}
.rail-name{font-weight:var(--sans-tag);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-delta{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:900px){.big-three{grid-template-columns:1fr}}

/* ===== UI BEAUTIFY · ESPINAZO ===== */
.spine{position:sticky;top:106px;float:left;width:var(--spine-w);margin-right:var(--space-5);display:none}
.spine-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:0 0 var(--space-3)}
.spine a{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--muted-strong);text-decoration:none;font-weight:var(--sans-tag);font-size:var(--text-base);border-left:3px solid transparent;margin-bottom:2px}
.spine a:hover{color:var(--navy-deep)}
.spine a.active{color:var(--navy-deep);border-left-color:var(--wine);background:var(--surface)}
.spine a.complete .sp-dot{background:var(--ok)}
.sp-dot{width:8px;height:8px;border-radius:999px;background:var(--hairline);flex:none}
.territory-chip{display:none !important;visibility:hidden !important}
.t2,.t4{color:var(--navy);background:var(--info-bg);border-color:var(--info-line)}
#next-step-radar{background:linear-gradient(120deg,var(--navy),var(--navy-deep));color:var(--paper);border-radius:var(--radius);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;box-shadow:0 4px 16px rgba(23,50,77,.18);margin-bottom:var(--space-4)}
#next-step-radar .button{color:var(--navy-deep)}
@media(min-width:1024px){
  .spine{display:block}
  .form-panel{margin-left:calc(var(--spine-w) + var(--space-4))}
  .stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2);overflow:hidden;margin:var(--space-2) 0 var(--space-4);padding:8px;border-radius:14px}
  .stepper a{min-width:0;overflow:hidden;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:8px 11px;font-size:var(--text-xs);text-decoration:none;color:var(--muted-strong);white-space:nowrap}
  .stepper a>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .stepper a .n{font-weight:var(--sans-tag);color:var(--muted-strong)}
  .stepper a.complete{color:var(--ok-dark);border-color:var(--ok-line);background:var(--ok-bg-soft)}
  .stepper a.complete .n{color:var(--navy-deep)}
  .stepper a.active,.stepper a.complete.active{background:var(--navy);color:var(--paper);border-color:var(--navy);box-shadow:0 4px 12px rgba(23,50,77,.2)}
  .stepper a.active .n,.stepper a.complete.active .n{color:var(--paper);opacity:.92}
  .stepper a.active>span:last-child,.stepper a.complete.active>span:last-child{color:var(--ok-bg)}
  .stepper a.active .dot,.stepper a.complete.active .dot{background:var(--ok-bg);box-shadow:0 0 0 2px rgba(255,255,255,.28)}
  .form-panel h2{margin-top:calc(var(--pad-section) + var(--space-4));padding-top:var(--space-4);border-top:1px solid var(--hairline)}
}

@media(max-width:1023px){
  .stepper{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .stepper::-webkit-scrollbar{display:none}
  .stepper a{flex:0 0 auto;min-width:max-content;flex-direction:row;align-items:center;white-space:nowrap;border-radius:999px;padding:8px 12px}
  .stepper a>span:nth-child(2){display:none}
}

/* ===== UI BEAUTIFY · INSTRUMENTOS ===== */
.preflight-score-badge{position:relative;flex:none}
.score-ring{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;
  --ring: conic-gradient(var(--ok) calc(var(--score)*1%), var(--surface) calc(var(--score)*1% + 2%));
  background: var(--ring);
  box-shadow: inset 0 0 0 1px var(--hairline), 0 10px 30px rgba(36,36,36,.08)}
.score-ring::before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--paper)}
.score-num{position:relative;z-index:1;font-family:var(--font-display);font-size:var(--text-xl);color:var(--ink)}
.score-label{position:relative;z-index:1;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:-6px}
.preflight-title-box h3{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:.01em;color:var(--navy-deep)}
.audit-group{border-left:3px solid transparent;padding-left:var(--space-4);margin:var(--space-4) 0}
.audit-group.critical{border-left-color:var(--danger)}
.audit-group.warnings{border-left-color:var(--warn-strong)}
.audit-group.passed{border-left-color:var(--ok)}
.audit-group li{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) 0;border-bottom:1px dashed var(--hairline);font-size:var(--text-base)}
.audit-group.passed li{color:var(--muted-strong)}
.preflight-actions .secondary,#toggle-audit-details{font-weight:var(--sans-tag)}
/* ceremonia de liberación */
.golden-seal-card{position:relative;background:linear-gradient(160deg,var(--paper),var(--gold-bg));border:1px solid var(--gold);border-radius:var(--radius-lg);padding:var(--space-6);margin:var(--space-5) 0;box-shadow:0 18px 50px rgba(201,162,39,.14)}
.golden-seal-card::after{content:"LIBERADO";position:absolute;top:-14px;right:18px;transform:rotate(3deg);font-family:var(--font-display);letter-spacing:.34em;font-size:var(--text-2xl);color:var(--gold);opacity:.5;pointer-events:none}
.golden-seal-card.draft-document-card{background:var(--paper);border-color:var(--line);box-shadow:none}
.golden-seal-card.draft-document-card::after{content:"BORRADOR";color:var(--muted-strong);letter-spacing:.18em}
.seal-badge .seal-icon{font-size:1.6rem}
.seal-badge strong{font-family:var(--font-display);font-size:var(--text-lg);color:var(--wine);letter-spacing:.04em}
.seal-hash-row code{background:var(--code-bg);color:var(--gold-bg);padding:6px 10px;border-radius:8px;font-size:12px;letter-spacing:.04em}
.copy-hash-btn{background:var(--wine);color:var(--paper);border:none;border-radius:8px;padding:8px 12px;font-weight:700;cursor:pointer}
.seal-meta-grid code{background:var(--surface)}

/* ===== UI BEAUTIFY · REGISTROS y HÁPTICA ===== */
.registry{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}
.registry thead th{position:sticky;top:92px;z-index:5;background:var(--surface);font-size:var(--text-2xl-table-head);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:2px solid var(--hairline);text-align:left;white-space:nowrap}
/* The evidence registry lives inside its own overflow container; the page-level sticky offset covers its row actions. */
.evidence-table-scroll .registry thead th{position:static}
.table-scroll .registry thead th,.table-scroll .data-table th{position:sticky;top:0;z-index:2}
.registry tbody td{padding:11px 12px;border-bottom:1px solid var(--hairline);vertical-align:top;line-height:1.45}
.registry tbody tr:nth-child(even){background:var(--surface-2)}
.registry tbody tr:hover{background:var(--info-bg-2)}
.registry strong{color:var(--ink)}
.mono{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.02em;color:var(--navy-deep);background:var(--surface);padding:1px 5px;border-radius:5px}
.money{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.kbd-chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--muted);background:var(--surface);border:1px solid var(--hairline);border-radius:999px;padding:4px 10px}
.kbd-chip kbd{background:var(--paper);border:1px solid var(--hairline);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-family:inherit;font-size:11px;color:var(--muted-strong)}
#save-status{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-xs);color:var(--muted);letter-spacing:.02em}
#save-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg);animation:none}
#save-status.dirty{color:var(--warn-dark)}
#save-status.dirty::before{background:var(--warn-strong);box-shadow:0 0 0 3px var(--warn-bg);animation:pulseDot 1.1s var(--ease) infinite}
@keyframes pulseDot{0%,100%{opacity:1}50%{opacity:.35}}
.sticky-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-5);background:var(--paper);border-top:1px solid var(--hairline);box-shadow:0 -8px 24px rgba(36,36,36,.06)}
@media(prefers-reduced-motion:reduce){#save-status.dirty::before{animation:none}}

/* ===== UI BEAUTIFY · COPILOTO GUÍA ===== */
@media(min-width:1200px){
  #copiloto-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,38vw);border-radius:0;border-left:1px solid var(--hairline);box-shadow:-18px 0 60px rgba(36,36,36,.16)}
  #copiloto-fab.open{right:calc(min(420px,38vw) + var(--space-5));bottom:var(--space-5);transform:rotate(90deg)}
}
#copiloto-panel{border-radius:var(--radius-lg);box-shadow:0 24px 70px rgba(36,36,36,.24);overflow:hidden}
.copiloto-head{background:linear-gradient(120deg,var(--wine-dark),var(--wine));color:var(--paper);padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between}
.copiloto-head strong{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:.02em}
.copiloto-card{border-left:3px solid var(--wine);background:var(--paper);border-radius:var(--radius);padding:var(--space-4)}
.copiloto-fundamento{font-size:var(--text-xs);color:var(--muted);border-top:1px dashed var(--hairline);margin-top:var(--space-3);padding-top:var(--space-2);letter-spacing:.03em}
.copiloto-action{background:var(--wine);color:var(--paper);border:none;border-radius:999px;padding:8px 16px;font-weight:700;cursor:pointer}

/* ===== UI BEAUTIFY · VIVO MÓVIL ===== */
@supports(padding:max(0px)){ .sticky-actions,.mobile-nav{padding-bottom:max(var(--space-3), env(safe-area-inset-bottom))} }
@media(max-width:760px){
  .hero{padding:var(--space-4) var(--space-4)}
  .hero h1{font-size:var(--text-xl)}
  .big-three{grid-template-columns:1fr}
  .ami-rail{scroll-snap-type:x proximity}
  .rail-piece{scroll-snap-align:start;flex:0 0 78%}
  .form-panel,.panel,.xlsx-import-panel,.preflight-card{padding:var(--space-4)}
  .grid.two,.grid.three,.grid.four{grid-template-columns:1fr}
  .sticky-actions{position:fixed;left:0;right:0;bottom:0;z-index:60;justify-content:flex-end;border-radius:0;pointer-events:none}
  .sticky-actions > button{pointer-events:auto}
  .sticky-actions .kbd-chip{display:none}
  main{padding-bottom:calc(var(--space-7) + 8px)}
  .registry thead th{position:static}
  #next-step-radar{position:static;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}
  .score-ring{width:96px;height:96px}
}
@media(max-width:1023px){ .territory-chip{display:none} }
@media(prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important;scroll-behavior:auto!important} }

/* Paso 02 · Semáforo normativo de Tanques de Gas LP (NOM-004-SEDG) */
.tank-status-col{display:flex;flex-direction:column;gap:6px}
.tank-status-col label{font-size:12px;font-weight:bold;color:var(--muted-strong)}
.tank-badge-wrap{min-height:38px;display:flex;align-items:center}
.tank-status-badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:9999px;font-size:11px;font-weight:700;line-height:1.2;letter-spacing:0.02em}
.badge-green{background:var(--ok-bg-soft);color:var(--ok-dark);border:1px solid var(--ok-line)}
.badge-red{background:var(--danger-bg-soft);color:var(--danger);border:1px solid var(--danger-line)}
.badge-yellow{background:var(--warn-bg);color:var(--warn-dark);border:1px solid var(--warn)}
.badge-gray{background:var(--ghost);color:var(--muted);border:1px solid var(--line)}

/* ===== GIS ULTRA-PREMIUM EXPERIENCE (Linear / Apple Tier) ===== */
.gis-control-console{margin:18px 0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:16px 20px}
.gis-console-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.gis-radius-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gis-label-chip{font-size:12px;font-weight:700;color:var(--muted-strong);text-transform:uppercase;letter-spacing:.04em}
.gis-radius-pills{display:inline-flex;background:var(--ghost);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}
.radius-pill{border:none;background:transparent;color:var(--muted-strong);font-size:12px;font-weight:700;padding:6px 14px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease}
.radius-pill:hover{color:var(--navy);background:rgba(0,0,0,.04)}
.radius-pill.active{background:var(--navy);color:var(--paper);box-shadow:0 2px 4px rgba(0,0,0,.15)}
.pill-badge{background:var(--wine);color:var(--paper);font-size:9px;padding:2px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}

.gis-action-cell{flex:1;display:flex;justify-content:flex-end}
.gis-btn-generate{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-gradient) 100%);color:var(--paper);border:none;border-radius:var(--radius-sm);padding:12px 24px;font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(15,23,42,.18);transition:all .2s ease}
.gis-btn-generate:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.26);filter:brightness(1.06)}
.gis-btn-generate:active{transform:translateY(0);box-shadow:0 2px 6px rgba(15,23,42,.2)}

/* Staleness & Sync Banners */
.gis-staleness-alert{background:var(--amber-bg);border:1px solid var(--amber-line);border-radius:var(--radius);padding:14px 18px;margin:16px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.gis-staleness-alert .alert-content{display:flex;gap:12px;align-items:flex-start}
.gis-staleness-alert .alert-icon{font-size:20px}
.gis-staleness-alert strong{color:var(--amber-text);display:block;font-size:13px;margin-bottom:2px}
.gis-staleness-alert p{color:var(--amber-dark);font-size:12px;margin:0;line-height:1.4}
.btn-sync-action{background:var(--amber);color:var(--paper);border:none;border-radius:6px;padding:8px 16px;font-size:12px;font-weight:700;cursor:pointer}
.btn-sync-action:hover{background:var(--amber-dark)}

.gis-sync-banner{background:var(--ok-bg-soft);border:1px solid var(--ok-line);border-radius:var(--radius);padding:10px 16px;margin:16px 0;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;color:var(--ok-dark)}
.gis-sync-banner .sync-icon{font-size:14px;color:var(--ok);font-weight:800}
.gis-sync-banner .sync-date{margin-left:auto;color:var(--muted);font-size:11px}
.gis-sync-banner[data-gis-state="stale"],.gis-sync-banner[data-gis-state="partial"],.gis-sync-banner[data-gis-state="failed_partial"],.gis-sync-banner[data-gis-state="unavailable"],.gis-sync-banner[data-gis-state="failed"]{background:var(--amber-bg);border-color:var(--amber-line);color:var(--amber-dark)}
.gis-sync-banner[data-gis-state="unverified"],.gis-sync-banner[data-gis-state="running"]{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink)}
.gis-sync-banner small{flex-basis:100%;color:var(--muted);font-size:11px;font-weight:500}
.gis-output-state{display:inline-flex;align-items:center;width:fit-content;border-radius:999px;padding:4px 8px;font-size:10px;line-height:1.25;font-weight:700;background:var(--surface-2);color:var(--ink)}
.gis-output-state.state-current{background:var(--ok-bg-soft);color:var(--ok-dark)}
.gis-output-state.state-stale,.gis-output-state.state-partial,.gis-output-state.state-unavailable{background:var(--amber-bg);color:var(--amber-dark)}
.gis-output-state.state-unknown{background:var(--surface-2);color:var(--muted)}
.cert-item .cert-note-icon{color:var(--muted);font-weight:900;font-size:14px;line-height:1.2}

/* Executive Risk Dashboard */
.gis-dashboard-section{margin:24px 0;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.dashboard-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.dashboard-header h3{margin:0;font-size:16px;color:var(--navy);font-family:var(--font-display)}
.dashboard-header .section-note,h3 + .section-note{margin-top:var(--space-1)}
.badge-evaluated{background:var(--ghost);border:1px solid var(--line);color:var(--muted-strong);padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700}

.gis-risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.risk-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;display:flex;flex-direction:column;gap:10px;border-left:4px solid var(--line-strong);transition:transform .15s ease}
.risk-card:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.04)}
.risk-card.status-alto{border-left-color:var(--red-deep)}
.risk-card.status-medio{border-left-color:var(--amber-line)}
.risk-card.status-bajo{border-left-color:var(--green-deep)}
.risk-card.status-auxilio{border-left-color:var(--navy)}

.risk-card-head{display:flex;align-items:center;gap:10px}
.risk-card-head .risk-icon{font-size:20px}
.risk-card-head strong{font-size:13px;color:var(--navy);display:block}
.risk-card-head small{color:var(--muted);font-size:11px}
.risk-badge{margin-left:auto;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.risk-badge.alto{background:var(--red-bg);color:var(--red-dark);border:1px solid var(--red-line)}
.risk-badge.medio{background:var(--amber-bg);color:var(--amber-text);border:1px solid var(--amber-badge-line)}
.risk-badge.bajo{background:var(--green-bg);color:var(--green-dark);border:1px solid var(--green-line)}
.risk-badge.auxilio{background:var(--blue-bg);color:var(--blue-deep);border:1px solid var(--blue-line)}
/* Ticket 28876: sin datos o sin registros en las capas no es un hallazgo favorable: tono neutro, nunca verde. */
.risk-card.status-sin_datos,.risk-card.status-sin_registros{border-left-color:var(--line-strong)}
.risk-badge.sin_datos,.risk-badge.sin_registros{background:var(--ghost);color:var(--muted-strong);border:1px solid var(--line-strong)}

.risk-verdict{font-size:12px;color:var(--ink);line-height:1.45;margin:0;background:var(--ghost);padding:8px 10px;border-radius:6px}
.risk-metrics{display:flex;flex-direction:column;gap:4px;font-size:11px;border-top:1px dashed var(--line);padding-top:8px}
.metric-item{display:flex;justify-content:space-between;color:var(--muted-strong)}
.metric-item strong{color:var(--navy)}

/* Auxilio Card Body */
.auxilio-body{display:flex;flex-direction:column;gap:8px}
.aux-row{display:flex;align-items:flex-start;gap:10px;font-size:11px;background:var(--ghost);padding:6px 10px;border-radius:6px}
.aux-badge{font-weight:700;color:var(--navy);min-width:65px}
.aux-info strong{display:block;color:var(--ink);font-size:11.5px}
.aux-info small{color:var(--muted);font-size:10.5px}

/* Laminario Digital Gallery */
.gis-laminario-section{margin:24px 0}
.laminario-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:16px}
.laminario-head h3{margin:0;font-size:16px;color:var(--navy);font-family:var(--font-display)}
.laminario-head .section-note{margin:6px 0 0;line-height:1.45}
.annual-review{margin:18px 0;padding:clamp(14px,3vw,22px);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper)}
.annual-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.annual-review-heading h3{margin:0;color:var(--navy)}.annual-review-heading p{margin:6px 0 0;color:var(--muted-strong);line-height:1.5}.annual-review-status{flex:none;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:800}.annual-review-status.complete{background:var(--ok-bg-soft);border-color:var(--ok-line);color:var(--ok-dark)}.annual-review-status.pending{background:var(--warn-bg);border-color:var(--amber-line);color:var(--amber-dark)}
.annual-diff-counts{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin:16px 0}.annual-diff-counts span{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface);color:var(--muted-strong);font-size:.78rem}.annual-diff-counts strong{display:block;color:var(--navy);font-size:1.3rem}.annual-attention,.annual-baseline-unavailable{margin:14px 0;padding:13px 15px;border:1px solid var(--amber-line);border-radius:var(--radius);background:var(--amber-bg);color:var(--amber-dark)}.annual-attention ul{margin:7px 0 0;padding-left:20px}.annual-attention a,.annual-edit-link{font-weight:700}.annual-baseline-unavailable p{line-height:1.5}.annual-baseline-unavailable form{margin:10px 0 0}
.annual-diff-groups{display:grid;gap:8px}.annual-diff-group{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.annual-diff-group>summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;cursor:pointer;list-style:none;padding:12px 14px}.annual-diff-group>summary::-webkit-details-marker{display:none}.annual-diff-group>summary strong{color:var(--navy)}.annual-group-counts{color:var(--muted);font-size:.76rem}.annual-confirmed,.annual-unconfirmed{margin-left:auto;border-radius:999px;padding:4px 8px;font-size:.7rem;font-weight:800}.annual-confirmed{background:var(--ok-bg-soft);color:var(--ok-dark)}.annual-unconfirmed{background:var(--warn-bg);color:var(--warn-dark)}.annual-diff-body{padding:0 14px 14px}.annual-edit-link{display:inline-block;margin:2px 0 10px}.annual-diff-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}.annual-diff-table{width:100%;min-width:640px;border-collapse:collapse;font-size:.82rem}.annual-diff-table th,.annual-diff-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.annual-diff-table thead th{background:var(--surface-2);color:var(--muted-strong)}.annual-diff-table tbody th{max-width:260px;color:var(--ink);overflow-wrap:anywhere}.annual-diff-state{display:inline-block;border-radius:999px;padding:4px 7px;font-size:.7rem;font-weight:800;white-space:nowrap}.annual-diff-state.state-unchanged{background:var(--surface-2);color:var(--muted-strong)}.annual-diff-state.state-changed,.annual-diff-state.state-new{background:var(--info-bg-2);color:var(--navy)}.annual-diff-state.state-missing{background:var(--danger-bg);color:var(--danger)}.annual-confirm-form{margin:12px 0 0}.annual-confirmation-receipt{padding:9px 11px;border-left:3px solid var(--ok);background:var(--ok-bg-soft);color:var(--ok-dark);font-size:.82rem;line-height:1.45}
@media(max-width:720px){.annual-review-heading{flex-direction:column}.annual-review-status{align-self:flex-start}.annual-diff-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.annual-diff-group>summary{align-items:flex-start;flex-direction:column}.annual-confirmed,.annual-unconfirmed{margin-left:0}.annual-confirm-form button,.annual-baseline-unavailable button{width:100%;justify-content:center}}
@media(max-width:720px){
  .annual-diff-table-wrap{overflow:visible;border:0;border-radius:0}
  .annual-diff-table{display:block;width:100%;min-width:0}
  .annual-diff-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .annual-diff-table tbody{display:grid;gap:8px}
  .annual-diff-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr);border:1px solid var(--line);border-radius:8px;background:var(--surface)}
  .annual-diff-table tbody tr>th[scope=row]{max-width:none;padding:9px 10px;font-weight:800;background:var(--surface-2);overflow-wrap:anywhere}
  .annual-diff-table tbody tr>td{display:grid;grid-template-columns:minmax(88px,31%) minmax(0,1fr);gap:8px;overflow-wrap:anywhere;word-break:normal}
  .annual-diff-table tbody tr>td::before{color:var(--muted-strong);font-size:.72rem;font-weight:800;line-height:1.35}
  .annual-diff-table tbody tr>td:nth-of-type(1)::before{content:"Última liberación"}
  .annual-diff-table tbody tr>td:nth-of-type(2)::before{content:"Expediente actual"}
  .annual-diff-table tbody tr>td:nth-of-type(3)::before{content:"Estado"}
.annual-diff-table tbody tr>td:last-child{border-bottom:0}
}
.drill-log-panel{display:grid;gap:14px}.drill-log-panel>h2,.drill-log-panel>p{margin-bottom:0}.drill-live-card,.drill-history-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:clamp(14px,3vw,22px);display:grid;gap:14px}.drill-live-card{border-color:var(--amber-line);background:var(--paper)}.drill-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.drill-card-heading h3{margin:5px 0;color:var(--navy)}.drill-card-heading p,.drill-timeline p{margin:4px 0;color:var(--muted-strong);line-height:1.45}.drill-mode-tag{font-size:.7rem;letter-spacing:.07em;font-weight:850;color:var(--amber-dark)}.drill-status{border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:800;background:var(--surface-2);color:var(--muted-strong);white-space:nowrap}.drill-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.drill-metrics>div{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.drill-metrics span,.drill-timeline small{font-size:.74rem;color:var(--muted)}.drill-metrics strong{font-size:.86rem;color:var(--ink);overflow-wrap:anywhere}.drill-timeline{list-style:none;padding:0 0 0 7px;margin:0;display:grid;gap:0}.drill-timeline li{position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;padding:0 0 14px}.drill-timeline li:not(:last-child)::before{content:"";position:absolute;left:6px;top:12px;bottom:0;width:2px;background:var(--line)}.drill-timeline-dot{width:12px;height:12px;margin-top:3px;border-radius:50%;background:var(--wine);z-index:1}.drill-timeline li>div{display:grid;gap:3px}.drill-timeline small{display:block}.drill-correction{margin-top:5px}.drill-correction summary{color:var(--muted-strong);font-size:.78rem;font-weight:700;cursor:pointer}.drill-correction form,.drill-next-form,.drill-start-form,.drill-action-create,.drill-action-card form{display:grid;gap:11px}.drill-next-form,.drill-start-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--paper)}.drill-next-form>div p{margin:4px 0;color:var(--muted);font-size:.82rem}.drill-next-form>button{align-self:end}.drill-cancel-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.drill-cancel-form label{flex:1 1 260px}.drill-actions{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:12px}.drill-actions h4{margin:0;color:var(--navy)}.drill-action-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.65fr);gap:14px;border:1px solid var(--line);border-radius:11px;padding:13px;background:var(--paper)}.drill-action-card p{margin:5px 0;color:var(--muted-strong);line-height:1.45}.drill-action-card small{display:block;color:var(--muted);line-height:1.45}.drill-action-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.drill-action-create{border-top:1px dashed var(--line-strong);padding-top:14px}.drill-action-create h4{margin:0}.drill-log-panel textarea{width:100%;box-sizing:border-box;min-height:70px}
.drill-log-panel .drill-next-form input,.drill-log-panel .drill-next-form textarea,.drill-log-panel .drill-start-form select{width:100%;box-sizing:border-box}
@media(max-width:720px){.drill-card-heading{flex-direction:column}.drill-metrics{grid-template-columns:1fr}.drill-next-form,.drill-start-form,.drill-action-card,.drill-action-fields{grid-template-columns:1fr}.drill-next-form button,.drill-start-form button,.drill-action-card button,.drill-action-create button{width:100%;justify-content:center}.drill-cancel-form{display:grid}.drill-cancel-form button{width:100%}}
.laminario-filters{display:inline-flex;gap:6px;flex-wrap:wrap}
.laminario-filter-pill{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:11.5px;font-weight:700;color:var(--muted-strong);cursor:pointer;transition:all .15s ease}
.laminario-filter-pill:hover{color:var(--navy);background:var(--ghost)}
.laminario-filter-pill.active{background:var(--wine);color:var(--paper);border-color:var(--wine)}

.laminario-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.laminario-card{background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.03)}
.laminario-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.08);border-color:var(--navy)}
.laminario-thumb-wrap{position:relative;width:100%;height:150px;background:var(--thumb-bg);overflow:hidden}
.laminario-thumb{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.laminario-card:hover .laminario-thumb{transform:scale(1.04)}
.thumb-group-tag{position:absolute;top:8px;left:8px;background:rgba(15,23,42,.85);color:var(--paper);font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;backdrop-filter:blur(4px)}

.laminario-card-body{padding:12px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.laminario-card-body strong{font-size:12.5px;color:var(--navy);line-height:1.3}
.sheet-sub{font-size:11px;color:var(--muted)}
.card-action-bar{margin-top:auto;padding-top:8px}
.btn-inspect-sheet{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:6px 12px;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--navy);font-size:11.5px;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s ease}
.btn-inspect-sheet:hover{background:var(--ghost);border-color:var(--navy)}

/* Cert Card (Integración Documental Word) */
.gis-cert-card{margin:24px 0 12px;background:var(--paper);border:1px solid var(--info-line);border-radius:var(--radius);padding:18px 22px;border-left:4px solid var(--info)}
.cert-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.cert-icon{font-size:24px}
.cert-head strong{color:var(--navy);font-size:14px;display:block}
.cert-head p{margin:2px 0 0;font-size:11.5px;color:var(--muted)}
.cert-hash-box{margin-left:auto;background:var(--ghost);padding:6px 12px;border-radius:6px;border:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.hash-label{font-size:9px;font-weight:800;color:var(--muted-strong);letter-spacing:.04em}
.cert-hash-box code{font-size:11px;color:var(--navy);font-weight:700}

.cert-matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;border-top:1px solid var(--line);padding-top:12px}
.cert-item{display:flex;align-items:flex-start;gap:8px;font-size:11.5px}
.cert-item .check-ok{color:var(--ok);font-weight:900;font-size:14px}
.cert-item strong{color:var(--ink);display:block}
.cert-item span{color:var(--muted);font-size:10.5px}

/* Empty State & UX Coherence */
.gis-empty-guide-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:24px;margin:24px 0;display:flex;gap:20px;align-items:flex-start}
.empty-guide-icon{font-size:36px;line-height:1}
.empty-guide-body h4{font-size:15px;color:var(--navy);font-family:var(--font-display);margin:0 0 8px}
.empty-guide-body p{font-size:12.5px;color:var(--ink);margin:0 0 10px;line-height:1.45}
.empty-guide-body ul{margin:0;padding-left:18px;font-size:12px;color:var(--muted-strong);line-height:1.6}
.gis-coords-missing-alert{background:var(--warn-bg);border:1px solid var(--warn);border-radius:var(--radius);padding:12px 16px;margin:14px 0;display:flex;align-items:center;gap:12px;font-size:12px}
.gis-coords-missing-alert strong{color:var(--warn-strong);display:block;margin-bottom:2px}
.gis-coords-missing-alert p{color:var(--warn-dark);margin:0}
.tel-link{color:var(--navy);font-weight:700;text-decoration:none}
.tel-link:hover{text-decoration:underline}

/* ==========================================================================
   SOVEREIGN UI / UX & LEICA GRADE POLISH (skill-for-filemon-or-something)
   Micro-tactile physics, 44px hit zones, 4 button tiers & responsive ergonomics.
   ZERO HEX CODES OUTSIDE :root INVARIANT STRICTLY ENFORCED.
   ========================================================================== */

/* 1. Global Micro-Tactile Feedback */
button:active,
.button:active,
.secondary:active,
.primary:active,
.ghost:active,
.radar-pill:active,
.radius-pill:active,
.laminario-filter-pill:active,
.wa-concierge-btn:active,
.step-btn:active,
.copy-hash-btn:active,
.btn-apply-suggestion:active,
.audit-jump:active,
.project-card:active,
.rail-piece:active {
  transform: scale(0.97) !important;
  transition: transform 0.08s ease !important;
}

/* 2. Tier 1: The Focal Jewel (.button.primary, button.primary, .primary) */
.button.primary,
button.primary,
.primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 22px;
  border-radius: var(--radius-full);
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: linear-gradient(135deg, var(--wine), var(--wine-dark));
  color: var(--paper) !important;
  font-size: var(--text-sm);
  font-weight: 700;
  box-shadow: 0 4px 14px -2px rgba(123, 30, 43, 0.38);
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.12s ease, filter 0.12s ease, box-shadow 0.12s ease;
}
.button.primary:hover,
button.primary:hover,
.primary:hover {
  filter: brightness(1.08);
  box-shadow: 0 6px 18px -2px rgba(123, 30, 43, 0.48);
}

/* 3. Tier 2: The Structured Pill (.button.secondary, button.secondary, .secondary) */
.button.secondary,
button.secondary,
.secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 18px;
  border-radius: var(--radius-full);
  border: 1px solid var(--line-strong);
  background: var(--paper);
  color: var(--navy-deep) !important;
  font-size: var(--text-sm);
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.04);
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.12s ease, background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}
.button.secondary:hover,
button.secondary:hover,
.secondary:hover {
  background: var(--surface-2);
  border-color: var(--navy);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

/* 4. Tier 3: The Ghost Action (.button.ghost, button.ghost, .ghost) */
.button.ghost,
button.ghost,
.ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 8px 16px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  background: transparent;
  color: var(--muted-strong);
  font-size: var(--text-sm);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.12s ease, background 0.12s ease, color 0.12s ease;
}
.button.ghost:hover,
button.ghost:hover,
.ghost:hover {
  background: var(--ghost);
  color: var(--navy);
}

/* 5. Tier 4: The Fire Alarm (.button.danger, button.danger, .danger-btn, .remove-body) */
.button.danger,
button.danger,
.danger-btn,
.remove-body {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: var(--radius-full);
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: linear-gradient(135deg, var(--red-deep), var(--red-dark));
  color: var(--paper) !important;
  font-size: var(--text-sm);
  font-weight: 700;
  box-shadow: 0 4px 14px -2px rgba(220, 38, 38, 0.35);
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.12s ease, filter 0.12s ease;
}
.button.danger:hover,
button.danger:hover,
.danger-btn:hover,
.remove-body:hover {
  filter: brightness(1.08);
}

/* 6. Ergonomic Hit Targets (Fitts's Law 44px) */
.radar-pill {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.03);
}
.wa-concierge-btn {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  box-shadow: 0 2px 6px rgba(30, 122, 70, 0.25);
  cursor: pointer;
}
.laminario-filter-pill {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.radius-pill {
  min-height: 38px;
}

/* 7. Mobile Ergonomics: No iOS Auto-Zoom */
@media(max-width: 768px) {
  input, select, textarea {
    font-size: 16px !important;
  }
}

/* 8. Sovereign UI/UX: Identity Live Glass Twin (Cédula Técnica) */
.identity-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
  align-items: start;
}
@media (min-width: 1024px) {
  .identity-layout {
    grid-template-columns: 1.15fr 0.85fr;
  }
  .identity-preview-panel {
    position: sticky;
    top: 84px;
  }
}
.cedula-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: 0 4px 20px var(--shadow-sm), 0 1px 0 var(--hairline);
  position: relative;
  overflow: hidden;
}
.identity-engine-preview {
  display: block;
  width: 100%;
  height: auto;
  margin-top: var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--paper);
}
#identity-preview-status {
  margin: var(--space-2) 0 var(--space-4);
}
.organization-identity-card,
.identity-stale-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
  padding: var(--space-4) var(--space-5);
  margin: var(--space-4) 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface);
}
.organization-identity-card > div { display: grid; gap: 3px; }
.organization-identity-card strong { color: var(--ink); }
.organization-identity-card span,
.organization-identity-card small,
.identity-stale-banner span { color: var(--muted); }
.identity-stale-banner { border-color: var(--warn); background: var(--warn-bg); }
.identity-source-note { grid-column: 1 / -1; color: var(--muted); font-size: 13px; }
.cedula-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--wine), var(--gold), var(--navy));
}
.cedula-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  border-bottom: 2px solid var(--hairline);
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-4);
}
.cedula-title {
  font-family: var(--font-display);
  font-size: var(--text-xs);
  color: var(--navy-deep);
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.3;
}
.cedula-subtitle {
  font-size: var(--text-xs);
  color: var(--muted);
  font-weight: 600;
  margin-top: 2px;
}
.cedula-seal-icon {
  font-size: 24px;
  line-height: 1;
  opacity: 0.85;
}
.cedula-badge {
  font-size: var(--text-xs);
  font-weight: 700;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.cedula-badge.complete {
  background: var(--ok-bg);
  color: var(--ok);
  border: 1px solid var(--ok-line);
}
.cedula-badge.pending {
  background: var(--warn-bg);
  color: var(--warn-strong);
  border: 1px solid var(--amber-badge-line);
}
.cedula-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.5;
}
.cedula-field {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-3);
  border-bottom: 1px dashed var(--line);
  padding-bottom: var(--space-2);
}
.cedula-field-label {
  color: var(--muted-strong);
  font-weight: 600;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex: none;
}
.cedula-field-val {
  color: var(--navy-deep);
  font-weight: 700;
  text-align: right;
  word-break: break-word;
}
.cedula-logo-wrap {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--hairline);
  display: flex;
  align-items: center;
  gap: var(--space-4);
}
.cedula-logo-preview {
  max-width: 140px;
  max-height: 70px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 4px;
  background: var(--surface);
  box-shadow: 0 2px 6px var(--shadow-sm);
}
.cedula-logo-label {
  font-weight: 700;
  font-size: var(--text-xs);
  color: var(--navy-deep);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* 9. Sovereign UI/UX: Authentication Portals & Security Reassurance */
.login-card {
  max-width: 440px;
  margin: 6vh auto;
  text-align: center;
  background: var(--paper);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08), 0 2px 0 var(--hairline);
  padding: var(--space-6);
  position: relative;
}
.login-logo {
  width: 96px;
  height: 96px;
  border-radius: var(--radius);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
  margin-bottom: var(--space-2);
}
.security-reassurance {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: var(--text-xs);
  color: var(--muted);
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--hairline);
  font-weight: 500;
}
.login-card a {
  color: var(--navy);
  font-weight: 600;
  font-size: var(--text-sm);
  text-decoration: none;
  transition: color 0.12s ease;
}
.login-card a:hover {
  color: var(--wine);
  text-decoration: underline;
}

.badge-role-superadmin {
  background: var(--navy);
  color: var(--paper) !important;
  font-size: var(--text-xs);
  font-weight: 700;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  display: inline-block;
  border: 1px solid var(--gold);
}
.badge-role-admin {
  background: var(--navy-deep);
  color: var(--paper) !important;
  font-size: var(--text-xs);
  font-weight: 700;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  display: inline-block;
}
.badge-role-editor {
  background: var(--wine-bg);
  color: var(--wine) !important;
  font-size: var(--text-xs);
  font-weight: 700;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  display: inline-block;
}
.badge-role-viewer {
  background: var(--ghost);
  color: var(--muted-strong) !important;
  font-size: var(--text-xs);
  font-weight: 700;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  display: inline-block;
}
.badge-active {
  background: var(--ok-bg);
  color: var(--ok) !important;
  border: 1px solid var(--ok-line);
}
.badge-inactive {
  background: var(--danger-bg-soft);
  color: var(--danger) !important;
  border: 1px solid var(--danger-line);
}

/* ==========================================================================
   Portal Público & Manifiesto Soberano (/login) & Dashboard Cockpit
   ========================================================================== */
.portal-layout {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: var(--space-6);
  align-items: start;
  margin: var(--space-6) auto;
  max-width: 1200px;
}

.portal-manifesto {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 38px 42px;
  box-shadow: 0 10px 32px var(--shadow-sm);
}

.portal-badge-wrap {
  display: flex;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}

.portal-badge {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  background: var(--surface-2);
  color: var(--navy-deep);
  border: 1px solid var(--line);
}

.portal-badge.gold {
  background: var(--gold-bg);
  color: var(--amber-dark);
  border-color: var(--amber-badge-line);
}

.portal-title {
  font-family: var(--font-display);
  font-size: 28px;
  line-height: 1.25;
  color: var(--navy-deep);
  margin: 0 0 var(--space-4) 0;
  letter-spacing: -0.015em;
}

.portal-lead p {
  font-size: 16px;
  line-height: 1.55;
  color: var(--navy-ink);
  margin: 0 0 var(--space-4) 0;
}

.portal-body-prose p {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink);
  margin: 0 0 var(--space-3) 0;
}

.portal-callout {
  display: flex;
  gap: var(--space-3);
  background: var(--surface-2);
  border: 1px solid var(--info-line);
  border-radius: var(--radius);
  padding: 18px 22px;
  margin: var(--space-4) 0;
}

.portal-callout-bar {
  width: 4px;
  background: linear-gradient(180deg, var(--wine), var(--navy));
  border-radius: var(--radius-full);
  flex-shrink: 0;
}

.portal-callout-text p {
  margin: 0;
}

.portal-callout-text .callout-lead {
  font-size: 15px;
  font-weight: 600;
  color: var(--navy-deep);
}

.portal-callout-text .callout-punch {
  font-size: 16px;
  font-weight: 700;
  color: var(--wine);
  margin-top: 4px;
}

.portal-tagline-seal {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--amber-bg);
  border: 1px solid var(--amber-line);
  color: var(--amber-dark);
  padding: 10px 18px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  letter-spacing: 0.04em;
  margin: var(--space-4) 0;
}

.portal-capabilities {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--line);
}

.cap-pill {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--muted-strong);
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 4px 10px;
  border-radius: var(--radius-full);
}

.login-card-sovereign {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 32px 30px;
  box-shadow: 0 12px 36px var(--shadow);
}

.login-header {
  text-align: center;
  margin-bottom: var(--space-4);
}

.login-header .login-logo {
  width: 72px;
  height: 72px;
  object-fit: contain;
  margin-bottom: var(--space-2);
}

.login-header h2 {
  font-size: 20px;
  color: var(--navy-deep);
  margin: 0 0 4px 0;
}

.login-header p {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}

.login-form {
  display: grid;
  gap: var(--space-4);
}

.label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.forgot-link {
  font-size: 12px;
  color: var(--navy);
  text-decoration: none;
}

.forgot-link:hover {
  text-decoration: underline;
}

.login-btn {
  width: 100%;
  justify-content: center;
  margin-top: var(--space-2);
}

.security-badge {
  text-align: center;
  font-size: 11px;
  color: var(--muted);
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px dashed var(--line);
}

.portal-toggle-mobile {
  display: none;
}

@media (max-width: 960px) {
  .portal-layout {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
  .portal-manifesto {
    padding: 24px;
  }
  .portal-toggle-mobile {
    display: inline-block;
    background: var(--surface-2);
    border: 1px solid var(--line-strong);
    color: var(--navy);
    padding: 8px 14px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    margin: var(--space-2) 0;
  }
  .portal-body-prose {
    display: none;
  }
  .portal-body-prose.open {
    display: block;
    animation: flash-in var(--dur) var(--ease);
  }
}

/* Insignia de Respaldo Profesional en Dashboard */
.manifesto-cockpit-panel {
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 5px solid var(--wine);
  border-radius: var(--radius);
  padding: 22px 26px;
  margin: var(--space-4) 0;
  box-shadow: 0 4px 18px -2px var(--shadow-sm);
}

.manifesto-cockpit-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}

.manifesto-status-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--wine);
  background: var(--wine-bg);
  padding: 3px 8px;
  border-radius: var(--radius-full);
  margin-bottom: 4px;
}

.manifesto-cockpit-header h2 {
  font-family: var(--font-display);
  font-size: 19px;
  color: var(--navy-deep);
  margin: 0;
}

.manifesto-tagline-chip {
  font-size: 12px;
  font-weight: 700;
  color: var(--amber-dark);
  background: var(--amber-bg);
  border: 1px solid var(--amber-line);
  padding: 6px 12px;
  border-radius: var(--radius-full);
}

.manifesto-summary-text {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink);
  margin: var(--space-3) 0;
}

.manifesto-quote-strip {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  background: var(--surface-2);
  border: 1px solid var(--info-line);
  border-radius: var(--radius-sm);
  padding: 10px 16px;
  margin: var(--space-3) 0;
}

.manifesto-quote-strip .quote-mark {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--wine);
  line-height: 1;
}

.manifesto-quote-strip p {
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--navy-deep);
}

.manifesto-accordion {
  border: 0;
  padding: 0;
  margin: var(--space-3) 0 0 0;
  background: transparent;
}

.manifesto-accordion summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--navy);
  cursor: pointer;
  padding: 6px 0;
  border-top: 1px dashed var(--line);
}

.manifesto-accordion summary::-webkit-details-marker {
  display: none;
}

.manifesto-accordion[open] .accordion-arrow {
  transform: rotate(180deg);
}

.accordion-arrow {
  transition: transform var(--dur-fast) var(--ease);
}

.manifesto-full-prose {
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted-strong);
  padding-top: var(--space-2);
}

.manifesto-full-prose p {
  margin: 0 0 var(--space-2) 0;
}

.manifesto-rule-note {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  margin-top: var(--space-3);
  font-size: 12px;
  color: var(--navy-deep);
}
/* ==========================================================================
   ÁNGEL DE LA GUARDA NORMATIVO · RADAR, ECO DOCUMENTAL & TABS
   ========================================================================== */

.radar-normativo-card {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-3);
  transition: all var(--dur-fast) var(--ease);
}

.radar-normativo-card.radar-alto {
  border-left: 4px solid var(--wine);
  background: linear-gradient(180deg, var(--surface-2), rgba(123, 30, 43, 0.04));
}

.radar-normativo-card.radar-atencion {
  border-left: 4px solid var(--amber-dark);
  background: linear-gradient(180deg, var(--surface-2), rgba(217, 119, 6, 0.04));
}

.radar-normativo-card.radar-ordinario {
  border-left: 4px solid var(--ok);
}

.radar-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-2);
  gap: var(--space-2);
}

.radar-tag {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--muted-strong);
  text-transform: uppercase;
}

.radar-badge-status {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: var(--radius-full);
}

.radar-alto .radar-badge-status {
  background: var(--wine-bg);
  color: var(--wine);
  border: 1px solid var(--wine-line);
}

.radar-atencion .radar-badge-status {
  background: var(--amber-bg);
  color: var(--amber-dark);
  border: 1px solid var(--amber-line);
}

.radar-ordinario .radar-badge-status {
  background: var(--ok-bg-soft);
  color: var(--ok-dark);
  border: 1px solid var(--ok-line);
}

.radar-formula {
  margin-top: var(--space-2);
}

.radar-quotient {
  font-size: 11.5px;
  color: var(--muted-strong);
  font-family: var(--font-mono, monospace);
  display: flex;
  gap: var(--space-1);
  flex-wrap: wrap;
}

.radar-total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: var(--space-1) 0;
  font-size: 12px;
}

.radar-total-val {
  font-size: 13px;
  font-family: var(--font-mono, monospace);
  color: var(--navy-deep);
}

.radar-bar-track {
  width: 100%;
  height: 6px;
  background: var(--line);
  border-radius: 999px;
  overflow: hidden;
  margin: 4px 0 8px;
}

.radar-bar-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ok), var(--amber-dark), var(--wine));
  transition: width var(--dur-normal) var(--ease);
}

.radar-ext-alert {
  font-size: 12px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  margin-top: var(--space-2);
}

.radar-ext-alert.deficit {
  background: var(--amber-bg);
  border: 1px solid var(--amber-line);
  color: var(--amber-dark);
}

.radar-ext-alert.ok {
  background: var(--ok-bg-soft);
  border: 1px solid var(--ok-line);
  color: var(--ok-dark);
}

.radar-ext-alert p {
  margin: 0 0 6px 0;
}

.radar-action-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  background: var(--wine);
  color: var(--paper);
  border: none;
  border-radius: var(--radius-sm);
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease);
}

.radar-action-btn:hover {
  background: var(--wine-dark);
}

.radar-action-btn:active {
  transform: scale(0.97);
}

.radar-rcdf-row {
  margin-top: var(--space-2);
  font-size: 11px;
  color: var(--muted-strong);
  border-top: 1px dashed var(--line);
  padding-top: 4px;
}

/* Tabs del Ángel de la Guarda */
.copiloto-tabs {
  display: flex;
  border-bottom: 1px solid var(--line);
  background: var(--surface-2);
}

.copiloto-tab-btn {
  flex: 1;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 8px 12px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted-strong);
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease);
  text-align: center;
}

.copiloto-tab-btn:hover {
  color: var(--navy);
}

.copiloto-tab-btn.active {
  color: var(--wine);
  border-bottom-color: var(--wine);
  background: var(--surface);
}

/* Recorte Documental Glass Twin */
.glass-twin-doc-snippet {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: var(--space-4);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  color: var(--ink);
  font-family: Arial, sans-serif;
  margin-top: var(--space-2);
}

.doc-page-header {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--wine);
  text-transform: uppercase;
  border-bottom: 1px solid var(--line);
  padding-bottom: 4px;
  margin-bottom: var(--space-3);
}

.doc-centered-title {
  text-align: center;
  font-weight: 800;
  font-size: 12px;
  color: var(--navy);
  margin-bottom: 2px;
}

.doc-subtitle {
  text-align: center;
  font-size: 10px;
  color: var(--muted);
  margin-bottom: var(--space-2);
}

.doc-signature-box {
  border: 1px solid var(--line-strong);
  background: var(--surface);
  padding: var(--space-3);
  text-align: center;
  border-radius: 4px;
  font-size: 11px;
}

.doc-sig-line {
  width: 160px;
  height: 1px;
  background: var(--muted-strong);
  margin: var(--space-3) auto var(--space-1);
}

.doc-prelim-stamp {
  border: 2px solid var(--wine);
  color: var(--wine);
  background: var(--wine-bg);
  font-weight: 800;
  font-size: 10px;
  text-align: center;
  padding: 6px;
  border-radius: 4px;
  margin-bottom: var(--space-3);
}

.doc-mini-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10.5px;
}

.doc-mini-table th,
.doc-mini-table td {
  padding: 4px 6px;
  text-align: left;
}

.doc-mini-table.table-bordered th,
.doc-mini-table.table-bordered td {
  border: 1px solid var(--line-strong);
}

.doc-mini-table th {
  background: var(--navy);
  color: var(--paper);
  font-weight: 700;
}

.doc-total-tr {
  background: var(--surface-2);
}

.doc-coords-pill {
  display: inline-block;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  background: var(--surface-2);
  padding: 2px 6px;
  border-radius: 4px;
}

.doc-map-placeholder {
  border: 1px dashed var(--line-strong);
  background: var(--surface);
  color: var(--muted);
  font-size: 10px;
  text-align: center;
  padding: 18px 8px;
  border-radius: 4px;
  margin-top: var(--space-2);
  font-style: italic;
}

.copiloto-card .copiloto-norma-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--wine-bg);
  color: var(--wine);
  border: 1px solid var(--wine-line);
  font-size: 10px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-2);
}

.copiloto-consecuencia-box {
  background: rgba(123, 30, 43, 0.05);
  border-left: 3px solid var(--wine);
  padding: var(--space-2) var(--space-3);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin: var(--space-2) 0;
  font-size: 11px;
  color: var(--navy-deep);
}

.copiloto-consecuencia-box strong {
  color: var(--wine);
}

/* Herramientas del Cabezal y Fijado (Dock) */
.copiloto-head-tools {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.copiloto-pin-btn {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: var(--paper);
  border-radius: var(--radius-sm);
  padding: 4px 8px;
  font-size: 13px;
  cursor: pointer;
  line-height: 1;
  transition: all var(--dur-fast) var(--ease);
}

.copiloto-pin-btn:hover {
  background: rgba(255, 255, 255, 0.15);
}

.copiloto-pin-btn.active {
  background: var(--paper);
  color: var(--wine);
  border-color: var(--paper);
}

/* Modo Docked en Escritorio */
@media(min-width: 1200px) {
  body.copiloto-pinned main {
    margin-right: calc(min(420px, 38vw) + 24px);
    transition: margin-right var(--dur) var(--ease);
  }
  #copiloto-panel.pinned {
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.08);
    border-left: 2px solid var(--wine);
  }
}

/* Gutter Whisper Pill en FAB */
.copiloto-whisper-pill {
  position: absolute;
  right: 56px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--navy-deep);
  color: var(--paper);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 6px 12px;
  border-radius: var(--radius-full);
  border: 1px solid var(--line-strong);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  white-space: nowrap;
  pointer-events: none;
  animation: fadeInWhisper var(--dur) var(--ease);
}

@keyframes fadeInWhisper {
  from { opacity: 0; transform: translateY(-50%) translateX(6px); }
  to { opacity: 1; transform: translateY(-50%) translateX(0); }
}

/* Implicaciones Técnicas y Recomendaciones Comerciales en Radar */
.radar-implicaciones-card {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  padding: var(--space-3);
  margin-top: var(--space-2);
  font-size: 11px;
}

.radar-implicaciones-card.atencion {
  border-left: 3px solid var(--amber-dark);
  background: var(--amber-bg);
  color: var(--amber-text);
}

.radar-implicaciones-title {
  font-weight: 800;
  color: var(--wine);
  margin-bottom: var(--space-1);
}

.radar-implicaciones-card.atencion .radar-implicaciones-title {
  color: var(--amber-dark);
}

.radar-implicaciones-list {
  margin: 4px 0 6px 16px;
  padding: 0;
  line-height: 1.5;
  color: var(--muted-strong);
}

.radar-consejo-comercial {
  background: rgba(123, 30, 43, 0.06);
  border-left: 2px solid var(--wine);
  padding: 4px 8px;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--navy-deep);
  margin-top: var(--space-2);
}

.copiloto-dwell-expanded .copiloto-consecuencia-box {
  animation: dwellPulse 1.2s var(--ease);
}

@keyframes dwellPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); box-shadow: 0 4px 12px rgba(123, 30, 43, 0.12); }
  100% { transform: scale(1); }
}

/* ==========================================================================
   FLIGHT DECK SOBERANO & CENTRO DE MANDO RESOLUTIVO (ULTRA-PREMIUM)
   ========================================================================== */

/* Centro de Mando Activo (The Next Best Move Engine) */
.preflight-quick-resolvers {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--line);
}

.command-center-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--navy);
  margin-bottom: var(--space-3);
}

.badge-pending {
  background: var(--amber-bg);
  color: var(--amber-dark);
  border: 1px solid var(--amber-badge-line);
  padding: 3px 9px;
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: 700;
}

.resolver-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-3);
}

.resolver-card {
  background: var(--surface);
  border: 1px solid var(--line-strong);
  border-left: 4px solid var(--amber-dark);
  border-radius: var(--radius-sm);
  padding: var(--space-3);
  box-shadow: 0 2px 8px var(--shadow-sm);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-2);
  transition: all var(--dur) var(--ease);
}

.resolver-card:hover {
  border-color: var(--navy);
  box-shadow: 0 4px 14px var(--shadow);
}

.resolver-card.resolving {
  opacity: 0.7;
  transform: scale(0.98);
}

.resolver-card.resolved {
  border-left-color: var(--ok);
  background: var(--ok-bg-soft);
}

.resolver-head {
  display: flex;
  gap: var(--space-2);
  align-items: flex-start;
}

.resolver-icon {
  font-size: 20px;
  line-height: 1;
}

.resolver-head strong {
  display: block;
  font-size: 12.5px;
  color: var(--navy-ink);
  line-height: 1.3;
}

.resolver-head p {
  margin: 2px 0 0;
  font-size: 11px;
  color: var(--muted-strong);
  line-height: 1.4;
}

.btn-quick-resolve {
  background: var(--navy);
  color: var(--paper);
  min-height: 44px;
  border-radius: var(--radius-sm);
  border: 0;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 12px;
  cursor: pointer;
  text-align: center;
  transition: transform var(--dur-fast) var(--ease), filter var(--dur-fast) var(--ease);
}

.btn-quick-resolve:active {
  transform: scale(0.97);
}

.command-center-all-clear {
  background: var(--ok-bg-soft);
  border: 1px solid var(--ok-line);
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-4);
  display: flex;
  gap: var(--space-3);
  align-items: center;
  color: var(--ok-dark);
}

.command-center-all-clear .icon-clear {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ok);
  color: var(--paper);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 16px;
  flex-shrink: 0;
}

.command-center-all-clear strong {
  display: block;
  font-size: 13px;
  color: var(--ok-dark);
}

.command-center-all-clear p {
  margin: 2px 0 0;
  font-size: 11.5px;
  color: var(--muted-strong);
}

/* Bóveda de Liberación Oficial */
.vault-release-box {
  background: linear-gradient(135deg, var(--wine), var(--wine-dark));
  color: var(--paper);
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  padding: var(--space-5);
  margin-top: var(--space-4);
  box-shadow: 0 8px 32px rgba(123, 30, 43, 0.25);
}

.vault-badge-gold {
  display: inline-block;
  background: var(--gold);
  color: var(--paper);
  font-weight: 800;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  font-size: 11px;
  letter-spacing: 0.08em;
  margin-bottom: var(--space-2);
}

.vault-release-content h3 {
  margin: 0;
  font-size: 18px;
  color: var(--paper);
}

.vault-release-content p {
  margin: 4px 0 var(--space-4);
  font-size: 13px;
  opacity: 0.9;
}

.vault-btn-oro {
  background: linear-gradient(135deg, var(--gold), var(--amber-dark)) !important;
  color: var(--paper) !important;
  min-height: 48px;
  font-size: 15px;
  font-weight: 800;
  border-radius: var(--radius-full);
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  box-shadow: 0 4px 16px rgba(181, 143, 28, 0.4);
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease);
}

.vault-btn-oro:active {
  transform: scale(0.97);
}

/* Colapso Inteligente de Ruido y Ficha Maestra */
#xlsx-dropzone.collapsed {
  display: none !important;
}

.excel-status-badge {
  background: var(--ok-bg-soft);
  border: 1px solid var(--ok-line);
  border-radius: var(--radius-sm);
  padding: 8px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-3);
  font-size: 12px;
}

.excel-status-badge .badge-dot.green {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ok);
  display: inline-block;
  margin-right: 6px;
}

.excel-status-badge .badge-title {
  font-weight: 700;
  color: var(--ok-dark);
}

.excel-status-badge .badge-tools {
  display: flex;
  gap: 12px;
  align-items: center;
}

.btn-link-action {
  background: transparent;
  border: 0;
  color: var(--navy);
  text-decoration: underline;
  cursor: pointer;
  font-weight: 600;
  font-size: 11.5px;
  padding: 0;
}

/* HUD Global de Drag & Drop */
.global-drag-hud {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.global-drag-hud.active {
  display: flex;
}

.global-drag-box {
  border: 3px dashed var(--gold);
  border-radius: var(--radius-lg);
  background: var(--paper);
  padding: var(--space-7);
  text-align: center;
  max-width: 500px;
  color: var(--navy-deep);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
}

.global-drag-box .drag-icon {
  font-size: 48px;
  display: block;
  margin-bottom: var(--space-2);
}

.global-drag-box h3 {
  margin: 0;
  font-size: 20px;
  color: var(--wine);
}

.global-drag-box p {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--muted);
}

/* Arquitectura Split-Screen 50/50 & Modo Mesa Completa 100% */
@media (min-width: 1200px) {
  .flight-deck-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-5);
    align-items: start;
    margin-top: var(--space-4);
    transition: grid-template-columns var(--dur) var(--ease);
  }
  .flight-deck-layout.is-preview-hidden,
  body.flight-deck-preview-hidden .flight-deck-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .flight-deck-layout.is-preview-hidden .flight-deck-twin-viewport,
  body.flight-deck-preview-hidden .flight-deck-twin-viewport {
    display: none !important;
  }
  .flight-deck-workbench {
    min-width: 0;
  }
  .flight-deck-twin-viewport {
    position: sticky;
    top: 86px;
    height: calc(100vh - 106px);
    overflow-y: auto;
    background: var(--paper);
    border: 1px solid var(--line-strong);
    border-radius: var(--radius);
    box-shadow: 0 8px 30px var(--shadow-sm);
  }
  body.has-flight-deck .stepper {
    position: sticky;
    top: 86px;
    margin-top: 0;
    margin-bottom: var(--space-4);
    z-index: 25;
    background: var(--paper);
    box-shadow: 0 4px 16px var(--shadow-sm);
  }
  body.has-flight-deck .spine {
    display: none !important;
  }
  body.has-flight-deck .form-panel {
    margin-left: 0 !important;
    margin-top: 0 !important;
  }
  body.has-flight-deck main {
    width: min(1680px, 96vw) !important;
    max-width: 1680px !important;
  }
  body.has-flight-deck .vx-studio-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  body.has-flight-deck:not(.flight-deck-preview-hidden) .vx-twin-column {
    display: none;
  }
  body.has-flight-deck.flight-deck-preview-hidden .vx-twin-column {
    display: none;
  }
  body.has-flight-deck:not(.flight-deck-preview-hidden) .chem-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  body.has-flight-deck:not(.flight-deck-preview-hidden) .chem-row > label:nth-child(1),
  body.has-flight-deck:not(.flight-deck-preview-hidden) .chem-row > label:nth-child(2),
  body.has-flight-deck:not(.flight-deck-preview-hidden) .chem-row > label:nth-child(6),
  body.has-flight-deck:not(.flight-deck-preview-hidden) .chem-row > label:nth-child(8) {
    grid-column: span 2;
  }
  body.has-flight-deck.flight-deck-preview-hidden .chem-row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  body.has-flight-deck.flight-deck-preview-hidden .chem-row > label:nth-child(1),
  body.has-flight-deck.flight-deck-preview-hidden .chem-row > label:nth-child(2),
  body.has-flight-deck.flight-deck-preview-hidden .chem-row > label:nth-child(6) {
    grid-column: span 2;
  }
}

.flight-deck-workbench-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding: 8px 14px;
  margin-bottom: var(--space-3);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 2px 8px var(--shadow-sm);
}

.workbench-bar-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--navy-deep);
}

.workbench-bar-status .sync-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ok);
  box-shadow: 0 0 0 3px var(--ok-bg);
}

.workbench-bar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.btn-workbench-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--radius-full);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--navy-deep);
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease);
}

.btn-workbench-toggle:hover {
  border-color: var(--navy);
  background: var(--info-bg);
}

.btn-workbench-toggle.active-full {
  background: var(--navy);
  color: var(--paper);
  border-color: var(--navy);
}

.flight-deck-reopen-pill {
  position: fixed;
  right: 22px;
  bottom: 76px;
  z-index: 45;
  display: none;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: var(--radius-full);
  border: 1px solid var(--navy);
  background: var(--navy-deep);
  color: var(--paper);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(23, 50, 77, 0.32);
  transition: transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}

.flight-deck-reopen-pill:hover {
  background: var(--wine);
  border-color: var(--wine);
  transform: translateY(-2px);
}

.flight-deck-reopen-pill .reopen-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ok-bg);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.25);
}

@media (min-width: 1200px) {
  body.flight-deck-preview-hidden .flight-deck-reopen-pill {
    display: inline-flex;
  }
}

/* Talonario Virtual Continuo (Official Carta/A4 Sheet) */
.official-doc-sheet {
  padding: var(--space-4);
  background: var(--paper);
}

.doc-sheet-toolbar {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--space-2);
  margin-bottom: var(--space-3);
  position: sticky;
  top: 0;
  background: var(--paper);
  z-index: 5;
}

.doc-sheet-toolbar-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.doc-live-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 800;
  color: var(--navy-deep);
  letter-spacing: 0.03em;
}

.doc-live-status .live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ok);
  box-shadow: 0 0 0 3px var(--ok-bg);
}

.doc-toolbar-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.doc-follow-btn,
.doc-hide-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--navy-deep);
  transition: all var(--dur-fast) var(--ease);
}

.doc-follow-btn.active {
  background: var(--ok-bg-soft);
  color: var(--ok-dark);
  border-color: var(--ok-line);
}

.doc-follow-btn.paused {
  background: var(--amber-bg);
  color: var(--amber-dark);
  border-color: var(--amber-line);
}

.doc-hide-btn:hover {
  background: var(--wine-bg);
  color: var(--wine);
  border-color: var(--wine-soft);
}

.doc-sheet-tabs {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.doc-tab-btn {
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--navy);
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease);
}

.doc-tab-btn:hover {
  background: var(--surface-2);
}

.doc-tab-btn.active {
  background: var(--navy);
  color: var(--paper);
  border-color: var(--navy);
}

.doc-zoom-tag {
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.doc-row-active-focus {
  background: var(--gold-bg) !important;
  outline: 2px solid var(--gold);
  transition: background var(--dur) var(--ease);
}

.sheet-page-paper {
  background: var(--paper);
  border: 1px solid var(--hairline);
  box-shadow: 0 2px 12px var(--shadow-sm);
  padding: 24px;
  border-radius: 4px;
  min-height: 520px;
  color: var(--ink);
}

.sheet-header-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 2px solid var(--navy);
  padding-bottom: 8px;
  margin-bottom: 16px;
}

.sheet-logo {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.sheet-header-brand strong {
  display: block;
  font-size: 12px;
  color: var(--wine);
  letter-spacing: 0.04em;
}

.sheet-header-brand span {
  display: block;
  font-size: 10px;
  color: var(--muted);
}

.sheet-doc-title-zone {
  text-align: center;
  margin: 16px 0;
}

.sheet-doc-title-zone h1 {
  font-size: 15px;
  color: var(--wine);
  margin: 0;
}

.sheet-doc-title-zone h2 {
  font-size: 12px;
  color: var(--navy);
  margin: 4px 0 0;
  font-weight: 600;
}

.sheet-card-meta {
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 12px;
  border-radius: 4px;
  margin: 12px 0;
  font-size: 12px;
}

.sheet-meta-row {
  margin-bottom: 6px;
}

.sheet-meta-row:last-child {
  margin-bottom: 0;
}

.sheet-meta-row span {
  color: var(--muted);
  display: inline-block;
  min-width: 140px;
}

.sheet-ropc-signature-box {
  margin-top: 24px;
  text-align: center;
  font-size: 11.5px;
}

.sig-title {
  color: var(--muted);
  font-size: 11px;
  margin-bottom: 24px;
}

.sig-line {
  width: 220px;
  height: 1px;
  background: var(--line-strong);
  margin: 0 auto 6px;
}

.sheet-footer-folio {
  margin-top: 28px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
  font-size: 10px;
  color: var(--muted);
  text-align: right;
}

.sheet-page-title {
  font-size: 13.5px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 4px;
  text-align: center;
}

.sheet-norm-citation {
  font-size: 10.5px;
  color: var(--muted);
  text-align: center;
  margin-bottom: 14px;
}

.sheet-table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0;
  font-size: 11px;
}

.sheet-table th,
.sheet-table td {
  border: 1px solid var(--line-strong);
  padding: 6px 8px;
}

.sheet-table th {
  background: var(--surface-2);
  color: var(--navy);
  font-weight: 700;
}

.sheet-callout-status {
  background: var(--ok-bg-soft);
  border: 1px solid var(--ok-line);
  border-radius: 4px;
  padding: 8px 12px;
  margin-bottom: 12px;
  font-size: 11.5px;
}

.sheet-callout-status strong {
  color: var(--ok-dark);
}

.sheet-signatures-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 30px;
  text-align: center;
  font-size: 11px;
}

.sheet-gold-seal-box {
  margin-top: 30px;
  background: var(--gold-bg);
  border: 1px solid var(--gold);
  border-radius: 6px;
  padding: 10px 14px;
  text-align: center;
}

.gold-seal-badge {
  font-size: 10px;
  font-weight: 800;
  color: var(--amber-dark);
  letter-spacing: 0.08em;
  display: block;
  margin-bottom: 4px;
}

.sheet-gold-seal-box code {
  font-size: 9.5px;
  font-family: monospace;
  color: var(--navy-ink);
  word-break: break-all;
}

.doc-field-pulse {
  animation: docGlow 1.2s var(--ease);
}

@keyframes docGlow {
  0% { background-color: rgba(181, 143, 28, 0.35); }
  100% { background-color: transparent; }
}

.swiss-gutter-note {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-top: 3px;
  font-family: var(--font-ui);
}

/* Experiencia de trabajos: preflight, recuperación y centro persistente. */
.gis-preflight{display:flex;gap:16px;align-items:flex-start;margin:14px 0;padding:16px 18px;border:1px solid var(--info-line);border-radius:var(--radius);background:var(--info-bg)}
.gis-preflight h3{margin:0 0 6px;color:var(--navy)}
.gis-preflight p{margin:5px 0;color:var(--muted-strong);line-height:1.55}
.gis-preflight-blocked{color:var(--danger)!important}
.job-connection,.activity-connection{margin:10px 0;padding:10px 12px;border:1px solid var(--amber-line);border-radius:var(--radius-sm);background:var(--amber-bg);color:var(--amber-dark)}
.job-heartbeat{display:block;margin-top:10px;color:var(--muted)}
.job-activity-state[data-activity-state="no_signal"],.activity-signal[data-activity-state="no_signal"]{color:var(--amber-dark);font-weight:700}
.job-activity-state[data-activity-state="active"],.activity-signal[data-activity-state="active"]{color:var(--ok-dark)}
.job-bar[aria-valuenow] .job-bar-fill{background:linear-gradient(90deg,var(--navy),var(--wine))}
.job-indeterminate .job-bar-fill{width:35%;animation:job-sweep 1.5s ease-in-out infinite alternate}
@keyframes job-sweep{from{transform:translateX(-20%)}to{transform:translateX(205%)}}
.activity-panel{margin-top:20px}
.activity-list{display:grid;gap:10px;margin-top:16px}
.activity-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.activity-main{min-width:0;display:grid;gap:5px}
.activity-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.activity-main>a{font-weight:700;color:var(--navy);overflow-wrap:anywhere}
.activity-stage{margin:0;color:var(--muted-strong)}
.activity-result{margin:0;color:var(--ok-dark);font-weight:700}
.activity-main small{color:var(--muted);overflow-wrap:anywhere}
.activity-status{border-radius:999px;padding:4px 9px;background:var(--ghost);font-size:var(--text-xs);font-weight:700}
.activity-status.queued,.activity-status.running{background:var(--info-bg);color:var(--navy)}
.activity-status.done{background:var(--ok-bg);color:var(--ok-dark)}
.activity-status.failed{background:var(--danger-bg);color:var(--danger)}
.activity-error{margin:4px 0 0;color:var(--danger)}
.activity-empty{text-align:center;padding:32px 16px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface)}
.activity-empty h3{margin:0 0 6px}
.activity-empty p{color:var(--muted)}
@media(max-width:600px){.activity-row{align-items:flex-start;flex-direction:column}.activity-row>.button{width:100%;justify-content:center}.activity-title{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.job-indeterminate .job-bar-fill{animation:none;transform:none}}
.word-proof-card{margin:16px 0;padding:18px;border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:12px;background:var(--surface)}.word-proof-card h3{margin:0 0 8px;color:var(--navy-deep)}.word-proof-card p{line-height:1.5}.word-proof-ok{color:var(--ok-dark)}.word-proof-warning{color:var(--warn-dark)}.word-proof-error{color:var(--danger)}.word-proof-card .actions{justify-content:flex-start;flex-wrap:wrap;margin-top:14px}@media(max-width:600px){.word-proof-card{padding:14px}.word-proof-card .actions>*{width:100%;justify-content:center}}
.word-preview-shell{max-width:1100px;margin:0 auto;padding-bottom:calc(96px + env(safe-area-inset-bottom))}.word-preview-heading{align-items:center}.word-preview-heading h1{overflow-wrap:anywhere}.word-preview-panel{display:grid;gap:16px;margin-top:18px;padding:clamp(12px,3vw,24px);border:1px solid var(--line);border-radius:16px;background:var(--surface)}.word-preview-page{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain;object-position:top center;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 8px 28px var(--shadow)}.word-preview-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.word-preview-controls strong{font-variant-numeric:tabular-nums}.word-preview-controls strong span{color:var(--muted)}.word-preview-controls .disabled{opacity:.52;pointer-events:none}.word-preview-jump{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.word-preview-jump input{width:6rem}.word-preview-findings{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.word-preview-findings h2{margin:0 0 8px;font-size:1.1rem}.word-preview-findings p{margin:0;color:var(--muted);line-height:1.5}.word-preview-findings ul{display:grid;gap:10px;margin:12px 0 0;padding:0;list-style:none}.word-preview-findings li{display:grid;gap:5px;padding:12px;border-left:3px solid var(--warn);background:var(--surface)}.word-preview-severity{font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--warn-dark)}.word-preview-review-note{margin:0;color:var(--muted);line-height:1.5}.word-preview-heading>.button{min-height:44px}@media(max-width:600px){.word-preview-heading{align-items:flex-start;gap:12px}.word-preview-heading>.button{width:100%;justify-content:center}.word-preview-controls>*{flex:1 1 100%;justify-content:center;text-align:center}.word-preview-page{max-height:none}.word-preview-jump>*{flex:1 1 auto}.word-preview-jump input{width:5rem}}
@media(max-width:700px){.table-scroll.evidence-table-scroll{overflow:visible;border:0}#table-evidencias{display:block;min-width:0;width:100%;background:transparent}#table-evidencias thead{display:none}#table-evidencias tbody{display:grid;gap:12px;padding:2px}#table-evidencias tr{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;border:1px solid var(--line-strong);border-radius:12px;background:var(--paper);box-shadow:0 2px 8px var(--shadow-sm)}#table-evidencias td{display:grid;grid-template-columns:minmax(82px,30%) minmax(0,1fr);align-items:start;gap:9px;min-width:0;padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:normal;overflow-wrap:anywhere}#table-evidencias td::before{content:attr(data-label);color:var(--muted-strong);font-size:11px;font-weight:700;line-height:1.35}#table-evidencias td:last-child{border-bottom:0}#table-evidencias .evidence-file-link{display:flex!important;min-width:0;max-width:100%;flex-wrap:wrap;overflow-wrap:anywhere;word-break:break-word}#table-evidencias .evidence-file-link .mono{white-space:normal;overflow-wrap:anywhere;word-break:break-word}#table-evidencias td form{min-width:0;max-width:100%}#table-evidencias td .button,#table-evidencias td button{max-width:100%;white-space:normal}}
/* Existing drill evidence stays in its original project storage and remains easy to review on phones. */
.drill-evidence-links{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.drill-evidence-links h5{margin:0;color:var(--navy)}.drill-evidence-links>.section-note{margin:0;font-size:.8rem}.drill-evidence-links ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.drill-evidence-links li{display:grid;gap:4px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow-wrap:anywhere}.drill-evidence-links li>form{display:flex;align-items:center;gap:8px}.drill-evidence-links li>form button{width:auto}
.workbench .wb-rail > .import-panel{align-items:stretch;flex-direction:column;gap:var(--space-4)}
.workbench .wb-rail > .import-panel form{align-items:stretch;flex-direction:column;width:100%;min-width:0}
.workbench .wb-rail > .import-panel input[type="file"]{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%}

/* Help and save actions remain separate on native mobile, with or without a keyboard. */
@media(max-width:768px){
  .mobile-nav>a,.mobile-nav>button{min-height:48px}
  body:not(.field-mode) .sticky-actions{bottom:var(--mobile-nav-height,64px)}
  body:not(.field-mode):has(#sticky-actions) main{padding-bottom:calc(var(--project-save-height,144px) + var(--mobile-nav-height,64px) + 24px)}
  body.field-mode #copiloto-fab{display:flex!important;top:auto!important;left:auto!important;right:12px!important;bottom:calc(var(--field-dock-height,136px) + var(--field-keyboard-inset,0px) + 14px)!important}
  #copiloto-panel{top:calc(var(--help-viewport-top,0px) + 8px);bottom:auto;right:12px;width:calc(100% - 24px);height:calc(var(--help-viewport-height,100dvh) - var(--mobile-nav-height,64px) - 16px);max-height:none;overflow-y:auto;z-index:80}
  body.field-mode #copiloto-panel{height:calc(var(--help-viewport-height,100dvh) - 16px)}
  #copiloto-panel>.copiloto-head,#copiloto-panel>.copiloto-tabs,#copiloto-panel>.copiloto-form{flex-shrink:0}
  #copiloto-panel>.copiloto-body,#copiloto-panel>.copiloto-glass-twin{flex:1 0 auto;overflow:visible}
  #copiloto-panel>.help-assistance{max-height:none;overflow:visible}
}

/* Ticket 27336 · Integracion Soberana Tiny Little Office (tlo) · Espejo Vivo y Kit de Campo */
.tlo-sovereign-studio{position:relative;z-index:25;margin:26px 0;border-radius:18px;border:1px solid rgba(30,58,138,.22);background:var(--paper);box-shadow:0 18px 44px rgba(15,23,42,.10);overflow:hidden}
.tlo-studio-header{background:linear-gradient(135deg,var(--code-bg),var(--navy-deep));color:var(--paper);padding:18px 24px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid rgba(255,255,255,.12)}
.tlo-studio-brand{display:flex;flex-direction:column;gap:4px}
.tlo-studio-eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgb(147,197,253);display:flex;align-items:center;gap:8px}
.tlo-studio-title{margin:0;font-family:var(--font-display);font-size:21px;font-weight:700;color:var(--paper);letter-spacing:-.01em}
.tlo-header-right{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.tlo-oracle-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;background:rgba(22,163,74,.22);border:1px solid rgba(134,239,172,.55);color:rgb(220,252,231);font-size:12px;font-weight:700;box-shadow:0 0 18px rgba(22,163,74,.25)}
.tlo-oracle-pill .tlo-dot{width:8px;height:8px;border-radius:50%;background:rgb(74,222,128);box-shadow:0 0 8px rgb(74,222,128)}
.tlo-lens-tabs{display:flex;flex-wrap:wrap;gap:6px;background:rgba(15,23,42,.55);padding:5px;border-radius:12px;border:1px solid rgba(255,255,255,.12)}
.tlo-lens-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:8px;font-size:12px;font-weight:700;color: rgba(255,255,255,.78);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:all var(--dur-fast) var(--ease);user-select:none}
.tlo-lens-tab:hover{color:var(--paper);background:rgba(255,255,255,.08)}
.tlo-lens-tab.active{background:var(--paper);color:var(--navy-deep);box-shadow:0 4px 12px rgba(0,0,0,.22)}
.tlo-screen-pane{display:none;padding:22px 24px;background:linear-gradient(180deg,var(--surface) 0%,var(--paper) 100%)}
.tlo-screen-pane.active{display:block}
.tlo-split-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,0.92fr);gap:20px;align-items:stretch}
@media(max-width:1080px){.tlo-split-grid{grid-template-columns:1fr}}
.tlo-pane-card{border-radius:14px;border:1px solid var(--line-strong);background:var(--paper);box-shadow:0 6px 20px rgba(15,23,42,.05);display:flex;flex-direction:column;overflow:hidden}
.tlo-pane-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface)}
.tlo-pane-head h4{margin:0;font-size:15px;font-weight:800;color:var(--navy-deep);display:flex;align-items:center;gap:8px}
.tlo-pane-sub{font-size:11.5px;color:var(--muted);margin-top:2px;display:block}
.tlo-open-app-link{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:8px;font-size:11.5px;font-weight:700;background:var(--info-bg);color:var(--navy-gradient);border:1px solid var(--info-line);text-decoration:none;white-space:nowrap}
.tlo-open-app-link:hover{background:var(--blue-bg);border-color:var(--blue-line)}

/* Screen 1 · Organigrama Vivo (tlo/diagram) */
.tlo-org-stage{padding:20px 16px;background-image:radial-gradient(rgba(36,71,109,.12) 1px,transparent 1px);background-size:16px 16px;display:flex;flex-direction:column;align-items:center;flex:1}
.tlo-org-tier{display:flex;justify-content:center;width:100%;position:relative}
.tlo-org-stem{width:2px;height:18px;background:var(--navy)}
.tlo-org-bus{width:78%;height:2px;background:var(--navy);margin-bottom:14px;position:relative}
.tlo-org-bus::before{content:"";position:absolute;top:-10px;left:50%;width:2px;height:10px;background:var(--navy)}
.tlo-org-node{border-radius:12px;padding:10px 14px;display:flex;align-items:center;gap:11px;box-shadow:0 6px 16px rgba(15,23,42,.08);position:relative;min-width:250px;max-width:340px;border:1.5px solid var(--line-strong);background:var(--paper)}
.tlo-org-node.level-1{background:linear-gradient(135deg,var(--navy-gradient),var(--navy-deep));color:var(--paper);border-color:rgba(147,197,253,.45)}
.tlo-org-node.level-2{background:linear-gradient(135deg,var(--ok),var(--ok-dark));color:var(--paper);border-color:rgba(134,239,172,.45)}
.tlo-org-avatar{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.65);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0;overflow:hidden;color:var(--paper)}
.tlo-org-Avatar-img{width:100%;height:100%;object-fit:cover}
.tlo-org-node.level-3 .tlo-org-avatar{background:var(--info-bg);color:var(--navy-gradient);border-color:var(--blue-line);width:34px;height:34px;font-size:12px}
.tlo-org-info{min-width:0;flex:1}
.tlo-org-role{display:block;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.88}
.tlo-org-name{display:block;font-size:13px;font-weight:800;line-height:1.25;margin:1px 0;overflow-wrap:anywhere}
.tlo-org-meta{display:block;font-size:11px;opacity:.86;line-height:1.2}
.tlo-org-pt-badge{padding:2px 6px;border-radius:999px;font-size:9px;font-weight:800;background:var(--green-bg);color:var(--green-dark);border:1px solid var(--green-line);white-space:nowrap;align-self:flex-start;flex-shrink:0}
.tlo-org-grid-l3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
@media(max-width:640px){.tlo-org-grid-l3{grid-template-columns:1fr}}
.tlo-org-node.level-3{min-width:0;max-width:none;padding:10px 12px;border-top:3px solid var(--green-deep);flex-direction:column;align-items:flex-start;gap:6px;overflow:hidden}
.tlo-org-l3-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:6px}
.tlo-org-node.level-3 .tlo-org-role{color:var(--green-dark)}
.tlo-org-node.level-3 .tlo-org-name{color:var(--navy-deep);font-size:12.5px}
.tlo-org-node.level-3 .tlo-org-meta{color:var(--muted-strong);font-size:11px}

/* Screen 1 · Right Pane · Piedra Rosetta Humano ⇄ Agente IA */
.tlo-rosetta-card{background:var(--code-bg);color:var(--paper);border-color:rgba(147,197,253,.24)}
.tlo-rosetta-card .tlo-pane-head{background:rgba(255,255,255,.04);border-bottom-color:rgba(255,255,255,.10)}
.tlo-rosetta-card .tlo-pane-head h4{color:var(--paper)}
.tlo-rosetta-card .tlo-pane-sub{color:rgb(147,197,253)}
.tlo-uri-pill{font-family:monospace;font-size:11px;padding:4px 9px;border-radius:6px;background:rgba(30,64,175,.38);color:rgb(219,234,254);border:1px solid rgba(147,197,253,.35)}
.tlo-code-viewport{padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.55;overflow-x:auto;flex:1;background:rgba(0,0,0,.22)}
.tlo-code-line{display:flex;gap:12px;padding:1px 4px;border-radius:4px}
.tlo-code-line:hover{background:rgba(255,255,255,.05)}
.tlo-ln{color:rgba(255,255,255,.35);user-select:none;min-width:22px;text-align:right;font-variant-numeric:tabular-nums}
.tlo-lc{color:rgb(220,252,231);white-space:pre-wrap;word-break:break-word}
.tlo-lc.tlo-edge{color:rgb(253,230,138)}
.tlo-lc.tlo-meta{color:rgb(147,197,253)}
.tlo-copilot-banner{margin:12px 16px 16px;padding:12px 14px;border-radius:12px;background:rgba(22,163,74,.16);border:1px solid rgba(134,239,172,.45);display:flex;flex-direction:column;gap:10px}
.tlo-copilot-status{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:rgb(220,252,231)}
.tlo-copilot-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.tlo-btn-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:all var(--dur-fast) var(--ease);user-select:none}
.tlo-btn-emerald{background:var(--green-deep);color:var(--paper);border-color:rgba(134,239,172,.5)}
.tlo-btn-emerald:hover{background:var(--green-dark)}
.tlo-btn-slate{background:rgba(255,255,255,.09);color:var(--paper);border-color:rgba(255,255,255,.22)}
.tlo-btn-slate:hover{background:rgba(255,255,255,.16)}

/* Sticky Bottom Tactical Dock */
.tlo-tactical-dock{background:linear-gradient(90deg,var(--code-bg),var(--navy-deep));padding:13px 24px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.tlo-dock-label{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgb(253,230,138);display:flex;align-items:center;gap:7px}
.tlo-dock-buttons{display:flex;flex-wrap:wrap;gap:8px}
.tlo-dock-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:9px;font-size:12px;font-weight:700;background:rgba(255,255,255,.10);color:var(--paper);border:1px solid rgba(255,255,255,.20);text-decoration:none;cursor:pointer;transition:all var(--dur-fast) var(--ease)}
.tlo-dock-btn:hover{background:var(--paper);color:var(--navy-deep);transform:translateY(-1px)}

/* Screen 2 · Croquis de Campo Interactivo (tlo/draw) + Memoria de Calculo Transparente (tlo/calc) */
.tlo-blueprint-wrap{padding:16px;background-color:var(--surface);background-image:linear-gradient(to right,rgba(36,71,109,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(36,71,109,.07) 1px,transparent 1px);background-size:20px 20px;flex:1;display:flex;flex-direction:column;justify-content:center}
.tlo-blueprint-svg{width:100%;height:auto;max-height:380px;border-radius:10px;background:var(--paper);border:1.5px solid var(--navy);box-shadow:inset 0 0 24px rgba(36,71,109,.05)}
.tlo-blueprint-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:11.5px;font-weight:700;color:var(--navy-deep)}
.tlo-calc-list{padding:16px 18px;display:flex;flex-direction:column;gap:12px;flex:1}
.tlo-formula-card{padding:12px 14px;border-radius:11px;border:1px solid var(--line-strong);border-left:4px solid var(--navy-gradient);background:var(--surface);display:flex;flex-direction:column;gap:6px}
.tlo-formula-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.tlo-formula-head strong{font-size:13px;color:var(--navy-deep)}
.tlo-formula-status{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;background:var(--green-bg);color:var(--green-dark);border:1px solid var(--green-line)}
.tlo-formula-math{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;font-weight:700;color:var(--navy-gradient);background:var(--paper);padding:8px 11px;border-radius:8px;border:1px dashed var(--info-line)}
.tlo-whatif-box{margin:0 18px 18px;padding:14px 16px;border-radius:12px;background:var(--info-bg);border:1px solid var(--info-line);display:flex;flex-direction:column;gap:10px}
.tlo-whatif-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:760px){.tlo-whatif-grid{grid-template-columns:1fr}}

/* Screen 3 · Kit Operativo de Campo Instantaneo en 1 Clic */
.tlo-kit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media(max-width:980px){.tlo-kit-grid{grid-template-columns:1fr}}
.tlo-badges-preview{padding:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:var(--surface-2);flex:1}
@media(max-width:540px){.tlo-badges-preview{grid-template-columns:1fr}}
.tlo-lanyard-card{background:var(--paper);border-radius:12px;border:1px solid var(--line-strong);overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.06);display:flex;flex-direction:column;justify-content:space-between}
.tlo-lanyard-top{padding:8px 10px;background:linear-gradient(90deg,var(--navy-gradient),var(--navy-deep));color:var(--paper);font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;gap:4px}
.tlo-lanyard-top.band-green{background:linear-gradient(90deg,var(--green-deep),var(--green-dark))}
.tlo-lanyard-body{padding:14px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.tlo-lanyard-photo{width:46px;height:46px;border-radius:50%;background:var(--info-bg);color:var(--navy-gradient);border:2px solid var(--blue-line);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}
.tlo-lanyard-qr{width:42px;height:42px;border:1px solid var(--line);border-radius:6px;padding:3px;background:var(--paper);flex-shrink:0;margin-top:2px}
.tlo-lanyard-foot{padding:5px 10px;background:var(--amber-bg);color:var(--amber-text);font-size:10px;font-weight:800;text-align:center;border-top:1px solid var(--amber-badge-line)}

.tlo-poster-preview{padding:18px;background:linear-gradient(145deg,var(--code-bg),var(--navy-deep));color:var(--paper);flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.tlo-poster-headline{margin:0;font-size:16px;font-weight:800;color:rgb(253,230,138);line-height:1.3}
.tlo-poster-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tlo-poster-box{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);font-size:11.5px;line-height:1.45}
.tlo-poster-box strong{display:block;color:rgb(134,239,172);margin-bottom:4px;font-size:11px;text-transform:uppercase}
.tlo-poster-meet{padding:9px 12px;border-radius:9px;background:rgba(22,163,74,.24);border:1px solid rgba(134,239,172,.5);font-size:11.5px;font-weight:700;color:rgb(220,252,231)}

.tlo-gantt-preview{padding:14px 16px;flex:1;display:flex;flex-direction:column;gap:8px;background:var(--paper)}
.tlo-gantt-months{display:grid;grid-template-columns:124px repeat(12,minmax(0,1fr));gap:2px;font-size:9.5px;font-weight:800;color:var(--muted);text-align:center;padding-bottom:4px;border-bottom:1px solid var(--line)}
.tlo-gantt-row{display:grid;grid-template-columns:124px repeat(12,minmax(0,1fr));gap:2px;align-items:center;font-size:11px;padding:3px 0}
.tlo-gantt-label{font-weight:700;color:var(--navy-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:6px}
.tlo-gantt-bar{height:14px;border-radius:999px;background:linear-gradient(90deg,var(--navy-gradient),var(--green-deep));box-shadow:0 2px 6px rgba(30,58,138,.22)}

.tlo-trip-preview{padding:14px 18px;flex:1;display:flex;flex-direction:column;gap:9px;background:var(--paper)}
.tlo-trip-stop{display:flex;align-items:flex-start;gap:10px;position:relative;padding-bottom:6px}
.tlo-trip-stop:not(:last-child)::after{content:"";position:absolute;left:11px;top:24px;bottom:-4px;width:2px;background:var(--blue-line)}
.tlo-trip-pin{width:24px;height:24px;border-radius:50%;background:var(--navy-gradient);color:var(--paper);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}
.tlo-trip-stop:last-child .tlo-trip-pin{background:var(--green-deep)}
.tlo-trip-info{flex:1;min-width:0}
.tlo-trip-info strong{display:block;font-size:12.5px;color:var(--navy-deep)}
.tlo-trip-info span{font-size:11px;color:var(--muted-strong)}
.tlo-kit-actions-bar{margin-top:18px;padding:14px 18px;border-radius:12px;background:var(--surface);border:1px solid var(--line-strong);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}

/* Ticket 27341 · Rung-4 Sovereign Live Word Canvas, Rosetta Twin & 1-Thumb Mobile Field Walk */
.tlo-screen-pane.r4-pane-canvas{padding:0;background:rgb(250,248,243);position:relative}
.r4-top-bar{background:rgb(15,23,42);color:var(--paper);padding:12px 22px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.10)}
.r4-top-brand{display:flex;align-items:center;gap:12px}
.r4-brand-glyph{width:28px;height:28px;border-radius:7px;background:rgba(185,28,28,.25);border:1px solid rgba(248,113,113,.45);display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.r4-top-title{font-size:16px;font-weight:700;color:var(--paper);letter-spacing:-.01em}
.r4-top-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.r4-autosynth-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:999px;background:rgba(21,128,61,.38);border:1.5px solid rgb(34,197,94);color:rgb(220,252,231);font-size:12.5px;font-weight:700;box-shadow:0 0 18px rgba(34,197,94,.22)}
.r4-bell-badge{font-size:14px;opacity:.85}
.r4-avatar-chip{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,rgb(30,58,138),rgb(15,23,42));border:1.5px solid rgba(255,255,255,.65);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--paper)}

.r4-canvas-shell{display:grid;grid-template-columns:48px minmax(300px,38%) minmax(0,62%);min-height:610px;background:rgb(250,248,243)}
@media(max-width:1080px){.r4-canvas-shell{grid-template-columns:1fr}.r4-slim-rail{display:none}}
.r4-slim-rail{background:rgb(244,241,234);border-right:1px solid rgb(226,221,210);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:16px 0}
.r4-rail-group{display:flex;flex-direction:column;align-items:center;gap:18px}
.r4-rail-icon{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;color:rgb(71,85,105)}
.r4-rail-icon.active{background:rgb(255,255,255);color:rgb(15,23,42);box-shadow:0 2px 6px rgba(15,23,42,.08);border:1px solid rgb(203,213,225)}
.r4-rail-avatar{width:28px;height:28px;border-radius:50%;background:rgb(15,23,42);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}

.r4-work-queue-pane{min-width:0;padding:22px 24px 86px;border-right:1px solid rgb(226,221,210);display:flex;flex-direction:column;gap:10px;background:rgb(250,248,243)}
.r4-pane-eyebrow-row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.r4-pane-eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:rgb(100,116,139)}
.r4-pane-dots{color:rgb(100,116,139);font-size:12px;letter-spacing:2px}
.r4-queue-heading{margin:4px 0 0;font-size:24px;font-weight:800;color:rgb(15,23,42);letter-spacing:-.02em}
.r4-queue-sub{margin:0;font-size:16px;font-weight:700;color:rgb(30,41,59)}
.r4-queue-caption{margin:0 0 6px;font-size:13px;color:rgb(71,85,105)}
.r4-queue-cards{display:flex;flex-direction:column;gap:10px}
.r4-qcard{padding:13px 16px;border-radius:11px;border:1.5px solid rgb(21,128,61);background:rgb(240,253,244);display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;color:rgb(15,23,42);box-shadow:0 2px 6px rgba(21,128,61,.06)}
.r4-qcard-body strong{font-weight:800}
.r4-qcard-check{color:rgb(21,128,61);font-size:17px;font-weight:900;flex-shrink:0}

.r4-active-section-label{margin-top:8px;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgb(71,85,105)}
.r4-decision-card{padding:16px;border-radius:12px;border:1.5px solid rgb(217,164,65);background:rgb(254,247,224);display:flex;flex-direction:column;gap:12px;box-shadow:0 6px 16px rgba(180,83,9,.08)}
.r4-decision-card.resolved{border-color:rgb(21,128,61);background:rgb(240,253,244)}
.r4-decision-title{margin:0;font-size:14.5px;font-weight:700;color:rgb(15,23,42);line-height:1.4}
.r4-wine-action-btn{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:10px 18px;border-radius:999px;background:rgb(98,25,40);color:var(--paper);font-size:13.5px;font-weight:800;text-decoration:none;box-shadow:0 6px 16px rgba(98,25,40,.28);transition:all var(--dur-fast) var(--ease);cursor:pointer}
.r4-wine-action-btn:hover{background:rgb(122,30,48);transform:translateY(-1px);color:var(--paper)}
.r4-decision-card.resolved .r4-wine-action-btn{background:rgb(21,128,61);box-shadow:0 6px 16px rgba(21,128,61,.25)}

.r4-agent-receipt-card{margin-top:6px;border-radius:11px;background:rgb(23,32,48);color:rgb(226,232,240);border:1px solid rgb(51,65,85);overflow:hidden;box-shadow:0 8px 20px rgba(15,23,42,.16)}
.r4-receipt-head{padding:9px 14px;background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.10);display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:700;color:rgb(241,245,249)}
.r4-receipt-copy{color:rgb(148,163,184);text-decoration:none;font-size:13px}
.r4-receipt-body{padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.55;color:rgb(203,213,225)}
.r4-emerald-txt{color:rgb(74,222,128);font-weight:800}

.r4-word-sheet-pane{min-width:0;padding:22px 28px 86px;background:rgb(245,243,238);display:flex;flex-direction:column;gap:14px}
.r4-legal-sheet{background:rgb(255,255,255);border:1px solid rgb(226,232,240);border-radius:8px;padding:24px 28px;box-shadow:0 12px 32px rgba(15,23,42,.07);display:flex;flex-direction:column;align-items:center;flex:1}
.r4-rgc-crest{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:8px}
.r4-crest-svg{width:76px;height:62px}
.r4-crest-title{font-family:var(--font-display);font-size:16px;font-weight:800;color:rgb(98,25,40);letter-spacing:.01em;margin-top:2px}
.r4-crest-sub{font-size:10.5px;font-weight:700;color:rgb(146,96,14)}
.r4-sheet-chapter-title{margin:6px 0 12px;font-size:13.5px;font-weight:900;color:rgb(15,23,42);text-align:center;letter-spacing:.02em;text-transform:uppercase}
.r4-arch-plan-wrap{width:100%;display:flex;justify-content:center}
.r4-arch-svg{width:100%;max-width:680px;height:auto;display:block}
.r4-sheet-foot-note{margin:12px 0 0;font-size:12.5px;color:rgb(51,65,85);text-align:center}

/* Bottom Floating 48px Tactical Dock in Screen 1 */
.r4-floating-dock-wrap{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;pointer-events:none;z-index:5}
.r4-floating-dock{pointer-events:auto;background:rgb(20,29,43);color:var(--paper);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:8px 14px;display:inline-flex;align-items:center;gap:12px;box-shadow:0 16px 36px rgba(15,23,42,.38)}
.r4-dock-key-pill{min-height:42px;padding:0 16px;border-radius:999px;background:rgb(21,128,61);color:var(--paper);display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:14px;text-decoration:none}
.r4-dock-title-box{display:flex;flex-direction:column;padding:0 6px}
.r4-dock-title-box strong{font-size:12.5px;color:var(--paper)}
.r4-dock-title-box span{font-size:11px;color:rgb(148,163,184)}
.r4-dock-circle-btn{width:40px;height:40px;border-radius:50%;background:rgb(112,26,42);border:1px solid rgba(248,113,113,.35);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:15px;transition:transform var(--dur-fast) var(--ease)}
.r4-dock-circle-btn:hover{transform:scale(1.07);color:var(--paper)}
.r4-dock-verify-pill{min-height:40px;padding:0 14px;border-radius:999px;background:rgba(21,128,61,.35);border:1.5px solid rgb(34,197,94);color:rgb(134,239,172);display:inline-flex;align-items:center;gap:8px;font-weight:800;text-decoration:none}

/* RUNG-4 SCREEN 2 · Simetria Indiscriminada Humano ⇄ Agente IA */
.tlo-screen-pane.r4-pane-rosetta{padding:0;background:rgb(11,19,36)}
.r4-rosetta-top-header{background:rgb(8,14,28);color:var(--paper);padding:14px 24px;text-align:center;border-bottom:1px solid rgba(255,255,255,.10)}
.r4-rosetta-top-header h4{margin:0;font-size:19px;font-weight:500;color:rgb(226,232,240)}
.r4-rosetta-top-header h4 strong{font-weight:800;color:var(--paper)}
.r4-rosetta-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:600px}
@media(max-width:1040px){.r4-rosetta-split{grid-template-columns:1fr}}

.r4-obsidian-pane{min-width:0;background:rgb(11,19,36);color:var(--paper);padding:28px 30px;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.12)}
.r4-obs-title-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.r4-robot-icon{font-size:24px}
.r4-obs-title-row h5{margin:0;font-size:20px;font-weight:800;color:var(--paper);letter-spacing:-.01em}
.r4-obs-sub-bar{font-size:12.5px;color:rgb(148,163,184);padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.10)}
.r4-obs-sub-bar code{color:rgb(147,197,253);font-family:monospace}
.r4-mac-dots{display:flex;gap:8px;margin:16px 0 12px}
.r4-mac-dots span{width:11px;height:11px;border-radius:50%;display:inline-block}
.r4-mac-dots .dot-red{background:rgb(239,68,68)}
.r4-mac-dots .dot-amber{background:rgb(245,158,11)}
.r4-mac-dots .dot-green{background:rgb(34,197,94)}
.r4-obs-section-label{margin:0 0 8px;font-size:13.5px;font-weight:600;color:rgb(226,232,240)}
.r4-intent-code-box{background:rgb(15,24,44);border:1px solid rgba(148,163,184,.28);border-radius:10px;padding:16px 18px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.65;display:flex;flex-direction:column;gap:2px;box-shadow:inset 0 2px 12px rgba(0,0,0,.35)}
.r4-code-ln{display:flex;gap:16px}
.r4-code-ln span{color:rgb(100,116,139);min-width:16px;text-align:right;user-select:none}
.r4-code-ln code{color:rgb(241,245,249);white-space:pre-wrap}
.r4-rosetta-actions-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.r4-emerald-receipt-box{margin-top:4px;padding:16px 18px;border-radius:10px;background:rgba(6,78,59,.45);border:1.5px solid rgb(16,185,129);color:rgb(110,231,183);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.55;box-shadow:0 0 24px rgba(16,185,129,.18)}

.r4-human-sheet-pane{min-width:0;background:rgb(250,248,244);padding:24px 28px;display:flex;flex-direction:column;gap:12px}
.r4-human-head-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.r4-human-head-row h5{margin:0;font-size:20px;font-weight:500;color:rgb(15,23,42)}
.r4-human-head-row h5 strong{font-weight:800}
.r4-page34-sheet{background:rgb(253,252,249);border:1px solid rgb(226,221,210);border-radius:10px;padding:20px 22px;box-shadow:0 8px 24px rgba(15,23,42,.06);display:flex;flex-direction:column;flex:1}
.r4-p34-chapter{margin:0;text-align:center;font-size:13px;font-weight:900;color:rgb(15,23,42);line-height:1.35;text-transform:uppercase}
.r4-p34-sub{margin:6px 0 12px;text-align:center;font-size:12px;color:rgb(71,85,105)}
.r4-p34-tree{display:flex;flex-direction:column;align-items:center;width:100%}
.r4-p34-tier-center{display:flex;justify-content:center;width:100%}
.r4-p34-connector-svg{width:100%;max-width:480px;height:24px;display:block}
.r4-p34-tier-label{align-self:flex-start;font-size:12px;font-weight:700;color:rgb(51,65,85);margin:0 0 4px 4px}
.r4-p34-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
@media(max-width:680px){.r4-p34-row3{grid-template-columns:1fr}}

.r4-p34-card{background:rgb(255,255,255);border:1.5px solid rgb(203,213,225);border-radius:11px;padding:9px 11px;display:flex;flex-direction:column;gap:6px;box-shadow:0 4px 12px rgba(15,23,42,.06);cursor:pointer;transition:all var(--dur-fast) var(--ease)}
.r4-p34-card:hover{border-color:rgb(37,99,235);transform:translateY(-1px)}
.r4-p34-card.leader{min-width:210px;max-width:250px;border:2px solid rgb(234,179,8);box-shadow:0 0 22px rgba(234,179,8,.35)}
.r4-p34-card-top{display:flex;align-items:center;gap:8px}
.r4-p34-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,rgb(30,58,138),rgb(59,130,246));color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800;flex-shrink:0}
.r4-p34-avatar.leader-av{background:linear-gradient(135deg,rgb(146,64,14),rgb(217,119,6))}
.r4-p34-avatar.alt{background:linear-gradient(135deg,rgb(15,118,110),rgb(20,184,166))}
.r4-p34-card-meta{display:flex;flex-direction:column;min-width:0;gap:2px}
.r4-p34-name{font-size:11.5px;font-weight:800;color:rgb(15,23,42);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r4-p34-role-pill{display:inline-block;padding:1px 6px;border-radius:4px;background:rgb(224,231,255);color:rgb(30,58,138);font-size:9.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r4-p34-collision-pill{padding:2px 8px;border-radius:999px;background:rgb(220,252,231);color:rgb(21,128,61);font-size:10px;font-weight:800;text-align:center}

.r4-p34-sig-section{margin-top:16px;padding-top:10px}
.r4-p34-sig-caption{font-size:12px;font-weight:700;color:rgb(15,23,42);margin-bottom:8px}
.r4-p34-sig-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:16px}
.r4-sig-block{display:flex;flex-direction:column;align-items:center;text-align:center;font-size:11.5px;color:rgb(51,65,85)}
.r4-sig-spacer{height:38px}
.r4-ink-sig-svg{width:130px;height:40px}
.r4-sig-line{width:100%;height:1.5px;background:rgb(30,41,59);margin-bottom:5px}
.r4-gold-seal-svg{width:70px;height:70px;filter:drop-shadow(0 4px 10px rgba(180,130,35,.35))}

/* RUNG-4 SCREEN 3 · Modo Campo 1-Mano (Experiencia de Barrio Nivel Dios) */
.tlo-screen-pane.r4-pane-mobile{padding:22px 26px;background:rgb(122,120,114);color:var(--paper)}
.r4-mobile-showcase-head{text-align:center;margin-bottom:18px}
.r4-mobile-showcase-head h4{margin:0;font-size:22px;font-weight:500;color:rgb(248,250,252)}
.r4-mobile-showcase-head h4 strong{font-weight:800;color:var(--paper)}
.r4-mobile-stage-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:24px;align-items:start}
@media(max-width:1100px){.r4-mobile-stage-grid{grid-template-columns:1fr}}
.r4-mobile-col{min-width:0;display:flex;flex-direction:column;align-items:center}
.r4-mobile-col-title{margin:0 0 12px;font-size:17px;font-weight:700;color:rgb(15,23,42);background: rgba(255,255,255,.78);padding:5px 14px;border-radius:999px}
.r4-phone-annotated-wrap{display:flex;align-items:stretch;gap:14px;justify-content:center;width:100%}
@media(max-width:680px){.r4-phone-callouts{display:none}}
.r4-phone-callouts{display:flex;flex-direction:column;justify-content:space-between;width:175px;padding:24px 0;text-align:right;color:rgb(15,23,42)}
.r4-callout-top,.r4-callout-bottom{background:rgba(255,255,255,.82);padding:12px;border-radius:12px;border-right:4px solid rgb(15,23,42);display:flex;flex-direction:column;gap:4px}
.r4-callout-top strong,.r4-callout-bottom strong{font-size:13px;color:rgb(15,23,42);line-height:1.25}
.r4-callout-top span,.r4-callout-bottom span{font-size:11px;color:rgb(51,65,85);line-height:1.3}
.r4-pct-tag{font-style:normal;font-size:12px;font-weight:900;color:rgb(21,128,61);margin-top:2px}

.r4-phone-frame{width:336px;max-width:100%;background:rgb(247,243,235);border:8px solid rgb(24,24,27);border-radius:34px;overflow:hidden;box-shadow:0 22px 48px rgba(0,0,0,.38);color:rgb(15,23,42);display:flex;flex-direction:column}
.r4-phone-statusbar{padding:8px 18px 4px;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;color:rgb(30,41,59)}
.r4-phone-cam-dot{width:11px;height:11px;border-radius:50%;background:rgb(15,23,42)}
.r4-phone-appbar{padding:6px 16px 10px;display:flex;align-items:center;gap:10px;font-size:13.5px;color:rgb(15,23,42)}
.r4-phone-map-stage{position:relative;margin:0 12px;background:rgb(255,255,255);border-radius:12px;border:1px solid rgb(203,213,225);padding:6px;cursor:pointer}
.r4-phone-plan-svg{width:100%;height:auto;display:block}

.r4-photo-pin{position:absolute;width:74px;background:rgb(51,65,85);color:var(--paper);border-radius:10px;padding:4px;border:2px solid var(--paper);box-shadow:0 6px 14px rgba(0,0,0,.28);display:flex;flex-direction:column;align-items:center}
.r4-photo-pin.pin-ext1{top:12px;left:12px}
.r4-photo-pin.pin-ext2{bottom:18px;right:10px}
.r4-photo-thumb{width:100%;height:42px;border-radius:6px;background:linear-gradient(135deg,rgb(71,85,105),rgb(30,41,59));display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;font-size:9px;font-weight:700}
.r4-cam-chip{position:absolute;top:2px;left:3px;font-size:9px}
.r4-photo-caption{font-size:9.5px;font-weight:800;margin-top:2px}

.r4-offline-pill{margin:8px 12px;padding:6px 10px;border-radius:999px;background:rgb(21,128,61);color:var(--paper);font-size:10px;font-weight:800;text-align:center}
.r4-thumb-dock{background:rgb(245,239,228);border-top:1px solid rgb(226,217,203);border-radius:22px 22px 0 0;padding:10px 14px 16px;display:flex;flex-direction:column;gap:8px}
.r4-thumb-handle{width:34px;height:4px;border-radius:999px;background:rgb(180,172,158);align-self:center;margin-bottom:2px}
.r4-thumb-title{margin:0 0 2px;font-size:14px;font-weight:800;color:rgb(15,23,42)}
.r4-thumb-btn{min-height:44px;padding:8px 14px;border-radius:999px;background:rgb(232,224,209);color:rgb(15,23,42);font-size:12px;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:9px;border:1px solid rgb(212,202,184);transition:transform var(--dur-fast) var(--ease)}
.r4-thumb-btn:hover{transform:translateY(-1px);color:rgb(15,23,42);background:rgb(224,214,196)}
.r4-thumb-btn.wine{background:rgb(98,25,40);color:var(--paper);border-color:rgb(98,25,40)}
.r4-thumb-btn.wine:hover{background:rgb(120,30,48);color:var(--paper)}

/* Right Tablet Frame in Screen 3 */
.r4-tablet-frame{width:100%;max-width:580px;background:rgb(242,237,228);border:8px solid rgb(24,24,27);border-radius:32px;overflow:hidden;box-shadow:0 22px 48px rgba(0,0,0,.38);color:rgb(15,23,42);display:flex;flex-direction:column}
.r4-tablet-body{padding:10px 18px 18px;display:flex;flex-direction:column;gap:14px}
.r4-tablet-top-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:14px;align-items:start}
@media(max-width:640px){.r4-tablet-top-grid,.r4-tablet-bottom-grid{grid-template-columns:1fr}}
.r4-pvc-badges-pair{display:flex;flex-direction:column;align-items:center}
.r4-pvc-cards-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.r4-pvc-badge{background:rgb(255,255,255);border-radius:10px;border:1px solid rgb(203,213,225);overflow:hidden;box-shadow:0 6px 16px rgba(15,23,42,.10);display:flex;flex-direction:column;align-items:center}
.r4-lanyard-strap{display:flex;flex-direction:column;align-items:center;margin-top:-2px}
.r4-strap-ribbon{width:14px;height:14px;background:rgb(15,23,42);display:block}
.r4-strap-clip{width:18px;height:8px;border:2px solid rgb(148,163,184);border-radius:4px;background:rgb(241,245,249);display:block}
.r4-pvc-head{width:100%;background:rgb(15,23,42);color:var(--paper);text-align:center;padding:6px 4px;font-size:9.5px;font-weight:800;line-height:1.2}
.r4-pvc-content{padding:10px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}
.r4-pvc-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,rgb(30,58,138),rgb(59,130,246));color:var(--paper);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;border:2px solid rgb(226,232,240)}
.r4-pvc-name{font-size:10.5px;font-weight:800;color:rgb(15,23,42);margin-top:2px}
.r4-pvc-role{font-size:8.5px;color:rgb(100,116,139)}
.r4-pvc-qr{width:54px;height:54px;color:rgb(15,23,42);margin-top:4px}
.r4-pvc-foot{width:100%;height:7px;background:rgb(15,23,42)}
.r4-pvc-caption{font-size:11px;font-weight:700;color:rgb(30,41,59);text-align:center;margin-top:6px}

.r4-dark-poster{background:rgb(11,25,48);color:var(--paper);border-radius:10px;padding:12px;box-shadow:0 8px 20px rgba(15,23,42,.22)}
.r4-dark-poster h6{margin:0 0 8px;font-size:13px;font-weight:800;color:var(--paper);line-height:1.25}
.r4-dark-poster-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:8.5px;line-height:1.35;color:rgb(203,213,225)}
.r4-dark-poster-cols strong{display:block;color:rgb(125,211,252);font-size:8px;margin-bottom:3px}
.r4-dark-poster-cols ol{margin:0;padding-left:12px;display:flex;flex-direction:column;gap:3px}
.r4-dark-poster-cols p{margin:0}

.r4-tablet-bottom-grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:14px;align-items:stretch}
.r4-hospital-route-card{background:rgb(255,255,255);border-radius:12px;padding:14px;border:1px solid rgb(226,232,240);box-shadow:0 4px 12px rgba(15,23,42,.06);display:flex;flex-direction:column;justify-content:space-between}
.r4-hospital-route-card h6{margin:0;font-size:13px;font-weight:800;color:rgb(15,23,42)}
.r4-hosp-sub{margin:2px 0 10px;font-size:10.5px;color:rgb(71,85,105)}
.r4-hosp-stops{display:flex;flex-direction:column;gap:8px}
.r4-hosp-stop{display:flex;align-items:center;gap:8px;font-size:11px;color:rgb(30,41,59)}
.r4-stop-dot{width:18px;height:18px;border-radius:50%;border:1.5px solid rgb(148,163,184);display:inline-flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:800;color:rgb(71,85,105);flex-shrink:0}
.r4-stop-dot.wine{background:rgb(98,25,40);border-color:rgb(98,25,40);color:var(--paper)}

/* Cinemascope Embedded /tlo/ Portal Modal */
.r4-portal-backdrop{position:fixed;inset:0;background:rgba(11,19,36,.78);z-index:120;display:flex;align-items:center;justify-content:center;padding:20px}
.r4-portal-backdrop[hidden]{display:none!important}
.r4-portal-window{width:min(92vw,1360px);height:min(86vh,860px);background:rgb(15,23,42);border:1.5px solid rgba(147,197,253,.38);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 28px 64px rgba(0,0,0,.55)}
.r4-portal-bar{padding:12px 18px;background:rgb(11,19,36);color:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.12)}
.r4-portal-iframe{flex:1;width:100%;border:0;background:rgb(255,255,255)}


.guide-focus{outline:3px solid var(--amber-line) !important;outline-offset:3px;box-shadow:0 0 0 6px var(--amber-bg) !important;transition:outline-color .3s}
