:root{
  --bg:#f4f6f9; --card:#ffffff; --line:#e3e8ef; --ink:#17202e; --mut:#64748b;
  --sbar:#0f172a; --sbar-ink:#94a3b8; --sbar-act:#ffffff;
  --acc:#0e9f6e; --acc-d:#0b7d55; --amber:#d97706; --rose:#e11d48; --blue:#2563eb;
  --chip:#eef2f7;
}
*{box-sizing:border-box; margin:0; padding:0}
body{font-family:"Segoe UI",system-ui,-apple-system,sans-serif; background:var(--bg); color:var(--ink); display:flex; min-height:100vh; font-size:14px}
a{color:var(--acc-d); text-decoration:none}

/* sidebar */
aside{width:232px; background:var(--sbar); color:var(--sbar-ink); display:flex; flex-direction:column; flex-shrink:0; position:sticky; top:0; height:100vh}
.logo{color:#fff; font-weight:700; font-size:17px; padding:20px 18px 14px; letter-spacing:.5px}
.logo small{display:block; color:var(--sbar-ink); font-weight:400; font-size:11px; margin-top:2px}
.sel{padding:0 14px 10px}
.sel label{font-size:10px; text-transform:uppercase; letter-spacing:1px; color:#64748b; display:block; margin-bottom:4px}
.sel select{width:100%; background:#1e293b; color:#e2e8f0; border:1px solid #334155; border-radius:6px; padding:6px 8px; font-size:12px; outline:none}
nav{flex:1; padding:10px 8px}
.nav a{display:flex; align-items:center; gap:10px; color:var(--sbar-ink); padding:9px 12px; border-radius:8px; font-size:13px; margin-bottom:2px}
.nav a:hover{background:#1e293b; color:#e2e8f0}
.nav a.on{background:var(--acc-d); color:#fff; font-weight:600}
.nav .ic{width:16px; text-align:center; font-size:14px}
.navsec{font-size:10px; text-transform:uppercase; letter-spacing:1px; color:#475569; padding:13px 12px 4px}
.foot{padding:14px 18px; font-size:10.5px; color:#64748b; border-top:1px solid #1e293b; line-height:1.5}
.foot b{color:#94a3b8}

/* main */
main{flex:1; padding:22px 26px; max-width:1180px; margin:0 auto; min-width:0}
.hdr{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap}
.hdr h1{font-size:19px; font-weight:650}
.hdr .sub{color:var(--mut); font-size:12.5px; margin-top:3px}
.badges{display:flex; gap:8px; flex-wrap:wrap}
.b{font-size:11px; font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap}
.b-lvl{background:#e0f2fe; color:#0369a1}
.b-riel{background:#ede9fe; color:#5b21b6}
.b-demo{background:#fef3c7; color:#92400e}
.hdr-side{display:flex; align-items:center; gap:10px; flex-wrap:wrap}

.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-bottom:18px}
.card{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:13px 15px}
.card .k{font-size:11px; color:var(--mut); text-transform:uppercase; letter-spacing:.6px; margin-bottom:5px}
.card .v{font-size:19px; font-weight:700}
.card .d{font-size:11.5px; color:var(--mut); margin-top:3px}
.pos{color:var(--acc-d)} .neg{color:var(--rose)} .warn{color:var(--amber)}
.toast{position:fixed; right:18px; bottom:18px; background:#0f172a; color:#fff; font-size:12.5px; padding:10px 16px; border-radius:8px; box-shadow:0 6px 20px rgba(0,0,0,.25); z-index:50; max-width:360px; opacity:1; transition:opacity .4s}
.toast.out{opacity:0}
.prio{display:flex; gap:9px; align-items:flex-start; padding:8px 0; border-bottom:1px solid var(--line)}
.prio:last-child{border-bottom:none}
.prio .dot{width:8px; height:8px; border-radius:50%; margin-top:5px; flex-shrink:0}
.prio .dest{font-size:11px; margin-left:auto; white-space:nowrap; padding-top:2px}

.panel{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px 18px; margin-bottom:16px}
.panel h2{font-size:14.5px; font-weight:650; margin-bottom:4px}
.panel .desc{font-size:12px; color:var(--mut); margin-bottom:12px}
.cierre{background:#f0fdf4; border:1px solid #bbf7d0; border-left:4px solid var(--acc); border-radius:8px; padding:11px 14px; font-size:13px; margin-bottom:14px}
.cierre b{color:var(--acc-d)}

table{width:100%; border-collapse:collapse; font-size:12.5px}
th{text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--mut); padding:7px 8px; border-bottom:1px solid var(--line)}
td{padding:8px; border-bottom:1px solid var(--line); vertical-align:middle}
tr:last-child td{border-bottom:none}
td.num,th.num{text-align:right; font-variant-numeric:tabular-nums}
.tag{display:inline-block; font-size:10.5px; font-weight:600; padding:2px 8px; border-radius:999px}
.t-alta{background:#dcfce7; color:#15803d}
.t-media{background:#fef3c7; color:#b45309}
.t-baja{background:#ffe4e6; color:#be123c}
.t-nuevo{background:#dbeafe; color:#1d4ed8}
.t-conf{background:#dcfce7; color:#15803d}
.t-desc{background:#e2e8f0; color:#475569}
.t-seg{background:#fef3c7; color:#b45309}
.t-ok{background:#dcfce7; color:#15803d}
.t-err{background:#ffe4e6; color:#be123c}
.t-warn{background:#fef3c7; color:#b45309}
.t-ab{background:#dbeafe; color:#1d4ed8}
.t-cer{background:#dcfce7; color:#15803d}

.btn{display:inline-block; background:var(--acc); color:#fff; border:none; border-radius:7px; padding:7px 13px; font-size:12px; font-weight:600; cursor:pointer}
.btn:hover{background:var(--acc-d)}
.btn.ghost{background:#fff; color:var(--acc-d); border:1px solid var(--acc)}
.btn.sm{padding:4px 9px; font-size:11px}
.btnrow{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap}

.chiprow{display:flex; gap:7px; flex-wrap:wrap; margin:9px 0 4px}
.chip{font-size:11.5px; padding:5px 11px; border-radius:999px; background:var(--chip); border:1px solid var(--line); cursor:pointer}
.chip.on{background:var(--acc); border-color:var(--acc); color:#fff; font-weight:600}

input[type=text],textarea{width:100%; border:1px solid var(--line); border-radius:7px; padding:8px 10px; font-size:12.5px; font-family:inherit; outline:none}
textarea{resize:vertical; min-height:64px}
.forml{font-size:11px; color:var(--mut); margin:10px 0 4px; text-transform:uppercase; letter-spacing:.5px}

.tabs{display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:14px}
.tab{font-size:12.5px; padding:8px 14px; cursor:pointer; color:var(--mut); border-bottom:2px solid transparent}
.tab.on{color:var(--acc-d); font-weight:600; border-color:var(--acc-d)}

.muted{color:var(--mut)} .small{font-size:11.5px}
.persistencia-state{margin-top:7px; color:#68717a; font-size:11px}
.degradaciones-normativas{margin:0 0 12px; padding:10px 12px; background:#fffbeb; border:1px solid #fde68a; border-left:3px solid var(--amber); border-radius:8px}
.degradaciones-normativas .deg-norm{font-size:12.5px; line-height:1.55; color:#57470a}
.degradaciones-normativas .deg-norm+.deg-norm{margin-top:4px}
.degradaciones-normativas .tag{margin-right:5px; font-size:10px}
.persistencia-state.ok{color:#16845a}
.persistencia-state.warn{color:#a46c18}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.act{display:flex; gap:10px; align-items:flex-start; padding:11px 0; border-bottom:1px solid var(--line)}
.act:last-child{border-bottom:none}
.act .dot{width:9px; height:9px; border-radius:50%; margin-top:5px; flex-shrink:0}

/* inventario */
.inventory-metric{border-left:3px solid var(--line);padding:6px 10px}
.inventory-metric .label{font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.inventory-metric .value{font-size:13px}
.inventory-alert{padding:10px 14px;border-radius:8px;font-size:12.5px;border:1px solid}
.inventory-empty{padding:12px 14px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;font-size:12.5px;color:var(--mut)}
.inventory-summary-context{margin:2px 0 16px;font-size:12px;line-height:1.5;color:var(--mut)}
.inventory-summary-reading{margin-bottom:16px}
.inventory-summary-explanation{margin:0 0 18px;padding:10px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;line-height:1.65;color:var(--mut)}
.inventory-summary-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin:0 0 18px}
.inventory-metric{min-height:48px;padding:9px 12px;line-height:1.45}
.inventory-metric-label{font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.inventory-metric-value{font-size:13px}
.inventory-summary-recommendation{margin-top:2px!important;padding:11px 14px!important;line-height:1.55}
.inventory-table-context{margin:0 0 8px;font-size:12px;line-height:1.5;color:var(--mut)}
.inventory-table-legend{margin:0 0 12px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;font-size:11.5px;line-height:1.55;color:var(--mut)}
.inventory-review-row td{background:#fff!important;border-left:3px solid var(--line)!important}
.inventory-review-row .btn{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important}
.inventory-review-row .btn:hover{background:#f5f7f8!important;color:var(--ink)!important}
.inventory-trend{margin-top:2px}
.inventory-trend-reading{margin:12px 0;padding:10px 12px;border-left:3px solid var(--line);background:#fbfcfd;border-radius:7px;font-size:12.5px;line-height:1.5;color:var(--mut)}
.inventory-trend-metrics{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.inventory-trend-metric{flex:1;min-width:130px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:11.5px;line-height:1.5;color:var(--mut)}
.inventory-trend-chart{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.inventory-trend-note{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:11.5px;line-height:1.5;color:var(--mut)}
@media(max-width:700px){.inventory-summary-metrics{gap:10px}.inventory-metric{min-height:0}.inventory-trend-metric{min-width:110px}}

/* perfil financiero */
.pf-panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.pf-title{font-size:14.5px;font-weight:400;margin-bottom:4px}
.pf-desc{font-size:12px;color:var(--mut);margin-bottom:12px;line-height:1.5}
.pf-empty{padding:12px 14px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;font-size:12.5px;color:var(--mut)}
.pf-banner{padding:10px 14px;border-radius:8px;font-size:12.5px;margin-bottom:12px}
.pf-banner-warn{background:#fffbeb;border:1px solid #fde68a;border-left:3px solid var(--amber)}
.pf-note{margin-top:12px;padding:10px 14px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;font-size:11.5px;color:var(--mut);line-height:1.5}
.pf-error{font-size:11.5px;color:#be123c;margin-top:4px}
.pf-warning{font-size:11.5px;color:#b45309;margin-top:4px}
.pf-ref-list{display:flex;flex-direction:column;gap:10px}
.pf-ref-card{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff}
.pf-ref-card.pf-ref-legacy{border-color:#fde68a;background:#fffbeb}
.pf-ref-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.pf-ref-name{font-size:13px;font-weight:400}
.pf-ref-desc{font-size:11.5px;color:var(--mut);margin-bottom:6px;line-height:1.4}
.pf-ref-value{font-size:14px;font-weight:400;margin:4px 0}
.pf-ref-meta{font-size:11px;color:var(--mut)}
.pf-ref-source-note{font-size:11px;color:var(--mut);margin-top:4px;line-height:1.4}
.pf-legacy-alert{padding:8px 10px;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;font-size:11.5px;color:#92400e;margin:6px 0;line-height:1.4}
.pf-edit-fields{margin-top:8px}
.pf-field{margin-bottom:8px}
.pf-field-btn{display:flex;gap:6px;margin-top:4px}
.pf-field-row{display:flex;gap:10px;flex-wrap:wrap}
.pf-field-row .pf-field{flex:1;min-width:120px}
.pf-label{display:block;font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;font-weight:400}
.pf-input,.pf-select,.pf-textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:12.5px;font-family:inherit;outline:none;background:#fff;color:var(--ink)}
.pf-input:focus,.pf-select:focus,.pf-textarea:focus{border-color:var(--acc)}
.pf-textarea{resize:vertical;min-height:48px}
.pf-forml{font-size:11px;color:var(--mut);margin:10px 0 4px;text-transform:uppercase;letter-spacing:.5px}
.pf-goal-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.pf-goal-card{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fff}
.pf-goal-card.pf-goal-proposed{border-color:#93c5fd;background:#f0f9ff}
.pf-goal-card.pf-goal-legacy{border-color:#e2e8f0;background:#f8fafc;opacity:.7}
.pf-goal-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.pf-goal-title{font-size:13px;font-weight:400}
.pf-goal-details{font-size:12px;line-height:1.6}
.pf-goal-row{padding:2px 0}
.pf-goal-label{color:var(--mut);font-weight:400}
.pf-goal-unavailable{color:#b45309}
.pf-goal-reason{margin-top:6px;font-size:11.5px;color:var(--mut);font-style:italic}
.pf-goal-actions{margin-top:12px}
.pf-review{border:1px solid var(--line)}
.pf-review-heading{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:10px}
.pf-review-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:18px 0 16px}
.pf-review-summary > div{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}
.pf-review-stat{font-size:12.5px;font-weight:400}
.pf-review-num{font-weight:400;font-size:inherit}
.pf-review-stat-warn{color:#b45309}
.pf-review-stat-error{color:#be123c}
.pf-review-section{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.pf-review-subtitle{font-size:12.5px;font-weight:400;margin-bottom:6px}
.pf-review-item{padding:6px 10px;border-radius:6px;font-size:12px;margin-bottom:4px}
.pf-review-error{background:#ffe4e6;color:#9f1239}
.pf-review-warn{background:#fef3c7;color:#92400e}
.pf-review-impact{padding:10px 12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;font-size:12.5px;line-height:1.5}
.pf-review-date{font-size:11.5px;color:var(--mut)}
.pf-review-actions{display:flex;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);flex-wrap:wrap}
.pf-steps{margin:12px 0}
.pf-step{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
.pf-step:last-child{border-bottom:none}
.pf-step-num{width:22px;height:22px;border-radius:50%;background:var(--chip);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:400;flex-shrink:0}
.pf-step-text{font-size:12.5px;line-height:1.5}
.pf-step-desc{font-size:11.5px;color:var(--mut);margin-top:2px}
.pf-legacy-section{margin-top:12px}
.pf-legacy-toggle{cursor:pointer;font-size:12.5px;font-weight:400;color:var(--mut);padding:8px 0}
.pf-legacy-note{font-size:11.5px;color:var(--mut);margin-bottom:8px;padding:8px 10px;background:#f8fafc;border:1px solid var(--line);border-radius:6px;line-height:1.5}
@media(max-width:760px){.pf-field-row{flex-direction:column}.pf-field-row .pf-field{min-width:0}.pf-ref-header{flex-direction:column;align-items:flex-start}.pf-goal-header{flex-direction:column;align-items:flex-start}.pf-review-summary{grid-template-columns:1fr;gap:8px}.pf-review-actions{flex-direction:column}.pf-review-actions .btn{width:100%;text-align:center}}

/* Perfil financiero: mismas primitivas visuales que Inventario. Las clases pf-*
   quedan como estructura, sin crear un lenguaje visual paralelo. */
.pf-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;margin-bottom:18px}
.pf-title{font-size:15px;font-weight:400!important;color:#24282d;margin-bottom:6px}
.pf-desc,.pf-ref-desc,.pf-review-date,.pf-goal-reason{font-weight:400;color:var(--mut);line-height:1.5}
.pf-ref-card,.pf-goal-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px 14px;margin-bottom:8px}
.pf-ref-card.pf-ref-pending{border-style:dashed;border-color:#c4c9cf}
.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy){display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:24px;align-items:center}
.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy) .pf-ref-identity{grid-column:1;align-self:center}
.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy) .pf-edit-fields,.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy) .pf-ref-data{grid-column:2;align-self:center}
.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy) .pf-error,.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy) .pf-warning{grid-column:1 / -1}
.pf-edit-fields > .pf-field-row + .pf-field-row{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.pf-ref-data{grid-column:2;align-self:center}
.pf-ref-value{margin:0 0 4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pf-ref-meta{margin:0}
.pf-ref-card.pf-ref-legacy,.pf-goal-card.pf-goal-proposed,.pf-goal-card.pf-goal-legacy{border-color:var(--line);background:#fff}
.pf-ref-card.pf-ref-valid{border-color:var(--line);border-left:3px solid var(--acc)}
.pf-ref-card.pf-ref-error{border-color:var(--line);border-left:3px solid var(--rose)}
.pf-ref-card.pf-ref-warning{border-color:var(--line);border-left:3px solid var(--amber)}
.pf-ref-card.pf-ref-pending-state{border-color:var(--line);border-left:3px dashed #c4c9cf}
.pf-ref-name,.pf-ref-value,.pf-goal-title,.pf-goal-label,.pf-review-subtitle,.pf-step-num{font-weight:400}
.pf-review{border:1px solid var(--line)}
.pf-review-num{font-weight:400;font-size:inherit}
.pf-review-impact{background:#f8fbf9;border:1px solid #d9eee3;border-left:3px solid var(--acc);border-radius:10px}
.pf-error,.pf-warning{font-weight:400}
.pf-input,.pf-select,.pf-textarea{border-radius:8px;font-weight:400}
.pf-help{font-size:11.5px;line-height:1.5;color:var(--mut);margin-top:4px}
.pf-review-note{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;font-size:12px;color:var(--mut);margin-bottom:5px}
.pf-review-change{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:7px}
.pf-review-change-title{font-size:12.5px;color:var(--ink);margin-bottom:6px}
.pf-review-change-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px;font-size:11.5px;color:var(--mut);line-height:1.45}
.pf-explanation summary{cursor:pointer;color:var(--ink);font-size:13px;list-style-position:inside}
.pf-explanation details[open] summary{margin-bottom:12px}
.pf-explanation .pf-steps{margin-top:8px}
.pf-profile-heading{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:14px}
.pf-profile-heading .pf-title{margin-bottom:0}
.pf-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0 6px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pf-summary-label{font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.pf-summary-value{font-size:15px;color:var(--ink);font-weight:400}
.pf-summary-value-text{font-size:12px}
.pf-ref-actions{margin-top:8px}
.pf-ref-list{display:flex;flex-direction:column;gap:0}
.pf-form-actions{margin:24px 0 18px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:760px){.pf-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy){display:block}.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy) .pf-edit-fields,.pf-ref-card:not(.pf-ref-pending):not(.pf-ref-legacy) .pf-ref-data{margin-top:10px}.pf-ref-value{white-space:normal}}
@media(max-width:760px){.pf-review-change-grid{grid-template-columns:1fr}}
@media(max-width:760px){.pf-form-actions .btnrow{flex-direction:column}.pf-form-actions .btn{width:100%;text-align:center}}

/* recorrido */
.ruta{display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin:-6px 0 16px; font-size:11px}
.ruta .st{background:#eef2f7; border:1px solid var(--line); border-radius:999px; padding:3px 10px; color:var(--mut)}
.ruta .st.on{background:var(--acc-d); border-color:var(--acc-d); color:#fff; font-weight:600}
.ruta .st.done{background:#dcfce7; color:#15803d; border-color:#bbf7d0}
.ruta .ar{color:var(--line)}
/* modal */
.overlay{position:fixed; inset:0; background:rgba(15,23,42,.45); display:flex; align-items:flex-start; justify-content:center; padding:40px 16px; z-index:40; overflow:auto}
.modal{background:#fff; border-radius:12px; max-width:640px; width:100%; padding:18px 20px; box-shadow:0 12px 40px rgba(0,0,0,.25)}
/* mini tarjetas deuda */
.strip{display:flex; gap:12px; flex-wrap:wrap; margin:10px 0 4px}
.strip .sc{flex:1; min-width:150px; background:#f8fafc; border:1px solid var(--line); border-radius:8px; padding:9px 12px}
.strip .sc .k{font-size:10px; color:var(--mut); text-transform:uppercase; letter-spacing:.5px}
.strip .sc .v{font-size:15px; font-weight:700}
/* pasos del análisis */
.stepl{display:flex; gap:8px; align-items:center; font-size:12.5px; padding:4px 0}
.stepl .n{width:18px; height:18px; border-radius:50%; background:var(--chip); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; flex-shrink:0}
.stepl.done .n{background:var(--acc); border-color:var(--acc); color:#fff}

/* =========================================================
   NIVO visual identity layer
   The original structure, copy and interactions remain intact.
   This block skins the existing mock without changing its product model.
   ========================================================= */
:root{
  --bg:#fff; --card:#fff; --line:#e5e8eb; --ink:#24282d; --mut:#565e66;
  --sbar:#fff; --sbar-ink:#565e66; --sbar-act:#24282d;
  --acc:#187a59; --acc-d:#146449; --amber:#b87917; --rose:#bf514b; --blue:#2762c4;
  --chip:#f5f7f8;
}
body{background:#fff;color:var(--ink);font-family:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:400;font-size:14px}
aside{width:238px;background:#fff;color:var(--sbar-ink);border-right:1px solid var(--line);box-shadow:none}
.logo{color:var(--ink);font-weight:500;font-size:16px;padding:18px 18px 14px;letter-spacing:.12em}.logo small{color:var(--mut);font-weight:400;font-size:10px;letter-spacing:0}
.brand-lockup{display:flex;align-items:center;gap:9px;color:var(--ink);padding:16px 18px 14px}.brand-mark{width:31px;height:31px;flex:0 0 31px;display:block;position:relative;overflow:hidden}.brand-mark img{position:absolute;width:121px;max-width:none;height:auto;left:-17px;top:-22.5px}.brand-wordmark{font-size:18px;line-height:1;font-weight:500;letter-spacing:.18em}.brand-wordmark .last{letter-spacing:.08em}
.sel{padding:0 14px 10px}.sel label{color:var(--mut);font-weight:400}.sel select{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 9px}
nav{padding:10px 8px}.nav a{color:var(--mut);padding:9px 11px;border-radius:8px;font-weight:400}.nav a:hover{background:#f5f7f8;color:var(--ink)}.nav a.on{background:#e8f5ef;color:var(--acc-d);font-weight:500}.nav .ic{font-family:"Segoe UI Symbol",sans-serif;font-size:0;color:currentColor}.nav .ic:before{font-size:15px;font-weight:400}.nav a[data-v="inicio"] .ic:before{content:"⌂"}.nav a[data-v="resumen"] .ic:before{content:"◫"}.nav a[data-v="hallazgo"] .ic:before{content:"⌕"}.nav a[data-v="acciones"] .ic:before{content:"✓"}.nav a[data-v="datos"] .ic:before{content:"↗"}.nav a[data-v="maestros"] .ic:before{content:"⚙"}.nav a[data-v="perfil"] .ic:before{content:"◎"}.nav a[data-v="proveedores"] .ic:before{content:"▤"}.nav a[data-v="inventario"] .ic:before{content:"□"}.nav a[data-v="historico"] .ic:before{content:"◴"}
.navsec{color:#a2a8af;font-weight:400}.foot{color:#a2a8af;border-top:1px solid var(--line)}.foot b{color:var(--mut);font-weight:400}
main{padding:22px 28px;max-width:1240px}.hdr{margin-bottom:18px}.hdr h1{font-size:20px;font-weight:500;letter-spacing:-.02em}.hdr .sub{color:var(--mut);font-weight:400}.badges{gap:7px}.b{font-weight:400;border:1px solid transparent}.b-lvl{background:#e8f5ef;color:var(--acc-d)}.b-riel{background:#f2f4f5;color:#69727a}.b-demo{background:#fff4df;color:var(--amber)}
.cards{gap:10px}.card,.panel{border:1px solid var(--line);border-radius:12px;box-shadow:none}.card{padding:14px 16px}.card .k{color:var(--mut);font-weight:400}.card .v{font-weight:400;letter-spacing:-.03em}.card .d{color:var(--mut)}
.panel{padding:16px 18px}.panel h2{font-weight:500}.panel .desc{color:var(--mut)}.cierre{background:#f8fbf9;border:1px solid #d9eee3;border-left:3px solid var(--acc);border-radius:10px}.cierre b{color:var(--acc-d);font-weight:400}
table{font-size:12.5px}th{color:var(--mut);font-weight:400;border-bottom:1px solid var(--line)}td{border-bottom:1px solid #f0f1f2;font-weight:400}.tag{font-weight:400}.t-alta,.t-conf,.t-ok,.t-cer{background:#e8f5ef;color:var(--acc-d)}.t-media,.t-seg,.t-warn{background:#fff4df;color:var(--amber)}.t-baja,.t-err{background:#fff0ee;color:var(--rose)}
.btn{background:var(--acc);font-weight:400;border-radius:8px;padding:8px 13px}.btn:hover{background:var(--acc-d)}.btn.ghost{color:var(--acc-d);border-color:#a9d6c2}.btn.sm{font-weight:400}.btnrow{gap:7px}
.chiprow{gap:6px}.chip{background:#f5f7f8;border:1px solid var(--line);font-weight:400}.chip.on{background:#e8f5ef;border-color:#c7e6d5;color:var(--acc-d);font-weight:400}
input[type=text],textarea{border:1px solid var(--line);border-radius:8px;color:var(--ink);font-weight:400}input[type=text]:focus,textarea:focus{border-color:#a9d6c2;box-shadow:0 0 0 3px rgba(24,122,89,.08)}.forml{color:var(--mut);font-weight:400}
.tabs{border-bottom:1px solid var(--line)}.tab{color:var(--mut);font-weight:400}.tab.on{color:var(--acc-d);font-weight:400;border-color:var(--acc)}
.muted,.small{color:var(--mut)}.grid2{gap:12px}.act .dot{background:var(--acc)}
.sub-mobile{display:none}.panel h3{font-size:12px;font-weight:500;color:var(--ink);margin:14px 0 8px;letter-spacing:0}
.act{border:1px solid transparent;border-bottom-color:#eef0f2;padding:10px 8px;border-radius:8px;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}
.metric-value{font-size:14px;font-weight:400;color:var(--ink)}
.weekly-reading{margin:10px 0 14px;padding:10px 12px;background:#fbfcfd;border:1px solid #dfe4e7;border-radius:8px}
.weekly-reading-title{font-size:12px;color:var(--ink);margin-bottom:7px}
.weekly-reading-line{padding:7px 9px;border-left:3px solid transparent;border-radius:6px;font-size:12px;font-weight:400;margin-top:5px}
.weekly-reading-line.metric-positive{background:#f1faf5;border-left-color:var(--acc);color:#42705e}
.weekly-reading-line.metric-attention{background:#fff9ed;border-left-color:var(--amber);color:#80652f}
.weekly-reading-line.metric-risk{background:#fff3f1;border-left-color:var(--rose);color:#87514b}
.metric-positive td,.metric-attention td,.metric-risk td{padding-top:10px;padding-bottom:10px;font-weight:400}
.metric-positive td{background:#f1faf5}.metric-positive td:first-child{border-left:3px solid var(--acc);border-radius:8px 0 0 8px}.metric-positive td:last-child{border-radius:0 8px 8px 0}
.metric-attention td{background:#fff9ed}.metric-attention td:first-child{border-left:3px solid var(--amber);border-radius:8px 0 0 8px}.metric-attention td:last-child{border-radius:0 8px 8px 0}
.metric-risk td{background:#fff3f1}.metric-risk td:first-child{border-left:3px solid var(--rose);border-radius:8px 0 0 8px}.metric-risk td:last-child{border-radius:0 8px 8px 0}
.ruta .st{background:#f5f7f8;border:1px solid var(--line);color:var(--mut);font-weight:400}.ruta .st.on{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:400}.ruta .st.done{background:#e8f5ef;color:var(--acc-d);border-color:#c7e6d5;font-weight:400}
.modal{border:1px solid var(--line);box-shadow:0 12px 36px rgba(20,30,35,.12)}.strip .sc{background:#fbfcfd;border:1px solid var(--line)}.strip .sc .k{color:var(--mut)}.strip .sc .v{font-weight:400}
/* Default hierarchy: black text for primary information, soft gray for context. */
b,strong,h1,h2,h3,h4,h5,h6,th,.btn,.b,.tag,.nav a.on,.cierre b,.card .v,.strip .sc .v{font-weight:400}
.hdr h1,.panel h2,.card .v{color:var(--ink)}.k,.desc,.sub,.muted,.small,.d,.forml,th,.navsec,.foot,.panel .desc{color:var(--mut)}

/* Stronger application of the reference language: neutral canvas, compact
   surfaces, medium/regular type, and semantic color only where needed. */
body{background:#f8fafb}
main{background:#f8fafb;max-width:none;min-height:100vh;padding:24px 34px}
aside{background:#fff}
.hdr{background:transparent;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}
.hdr h1{margin:0;line-height:1.2;font-size:21px;font-weight:400!important;color:#24282d;text-transform:uppercase}
.hdr .sub{margin-top:6px;line-height:1.4;max-width:760px;font-size:10.5px;color:#5a626a;text-transform:uppercase;letter-spacing:.08em}
.cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.card,.panel{background:#fff;border-color:#e1e5e8;border-radius:12px}
.card:hover,.panel:hover{border-color:#d3d9dd}
.card .k,.panel .desc,.card .d{font-weight:400!important;color:#5a626a}
.card .v{font-size:20px;font-weight:400!important;color:#24282d}
.card .v.pos,.card .v.neg,.card .v.warn{font-weight:400!important}
.panel h2{font-size:15px;font-weight:400!important;color:#24282d}
.panel h2,.panel .desc{letter-spacing:0}
.cierre{background:#f4faf7!important;border:1px solid #d8eee3!important;border-left:3px solid var(--acc)!important;color:#24282d}
.cierre b,.cierre strong{font-weight:400!important;color:#24282d}
.b,.tag,.status,.nav a,.btn,.chip,.tab,.ruta .st,.step .n{font-weight:400!important}
.b-lvl,.t-alta,.t-conf,.t-ok,.t-cer{background:#e8f5ef;color:#176d50}.b-riel,.t-desc{background:#f2f4f5;color:#69727a}.b-demo,.t-media,.t-seg,.t-warn{background:#fff4df;color:#a46c18}.t-baja,.t-err{background:#fff0ee;color:#a84b46}.t-nuevo,.t-ab{background:#edf4ff;color:#2e6ed7}
.btn{background:#187a59;color:#fff;border-radius:8px;box-shadow:none}.btn.ghost{background:#fff;color:#187a59;border-color:#abd8c3}.btn:disabled{background:#f1f3f4;color:#9aa1a8;border-color:#e2e5e7}
.prio{border:1px solid #dfe4e7;border-left:3px solid #dfe4e7;border-radius:8px;padding:10px 12px;margin-top:7px;background:#fff}.prio:last-child{border-bottom:1px solid #dfe4e7}.prio.prio-p0{background:#f1faf5;border-color:#d8eee3;border-left-color:var(--acc)}.prio.prio-p1{background:#fff9ed;border-color:#f1dfb8;border-left-color:var(--amber)}.prio.prio-p2{background:#fbfcfd;border-color:#dfe4e7;border-left-color:#b4bbc1}.prio .dest{color:#2762c4;font-weight:400}.prio .dot{display:none}.prio .dot,.act .dot{box-shadow:none}
.priority-list{margin-top:10px;border:1px solid #dfe4e7;border-radius:8px;overflow:hidden}.priority-list .prio{border:0;border-left:3px solid #dfe4e7;border-bottom:1px solid rgba(223,228,231,.9);border-radius:0;margin:0;padding:12px;background:#fff}.priority-list .prio:last-child{border-bottom:0}.priority-list .prio.prio-p0{background:#f1faf5;border-left-color:var(--acc)}.priority-list .prio.prio-p1{background:#fff9ed;border-left-color:var(--amber)}.priority-list .prio.prio-p2{background:#fbfcfd;border-left-color:#b4bbc1}.priority-list > .small{display:block;padding:12px}
th{font-weight:400!important;color:#5a626a!important;background:#fbfcfd}td{color:#343a40}
.tabs{background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px}.tab{border:0!important;border-radius:7px}.tab.on{background:#e8f5ef;color:#176d50}
.chip{background:#fff;color:#565e66}.chip.on{background:#e8f5ef;color:#176d50}
.modal{background:#fff;border:1px solid #e1e5e8;border-radius:12px;box-shadow:0 14px 45px rgba(20,30,35,.14)}
body b,body strong,body h1,body h2,body h3,body h4,body h5,body h6,body th,body .btn,body .b,body .tag,body .nav a.on,body .cierre b,body .card .v,body .strip .sc .v{font-weight:400!important}
main [style*="font-weight"]{font-weight:400!important}

/* Buttons: dark primary action, quiet secondary controls. */
.btn{background:#17231f!important;color:#fff!important;border:1px solid #17231f!important;border-radius:10px;padding:9px 14px;box-shadow:0 1px 1px rgba(12,28,22,.08);font-weight:500!important;transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.btn:hover{background:#0e1714!important;border-color:#0e1714!important;box-shadow:0 4px 10px rgba(12,28,22,.12);transform:translateY(-1px)}
.btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(12,28,22,.10)}
.btn.ghost{background:#fff!important;color:#68717a!important;border:1px solid #dfe4e7!important;box-shadow:none;font-weight:400!important}.btn.ghost:hover{background:#f5f7f8!important;color:#24282d!important;border-color:#cbd2d7!important;box-shadow:none;transform:none}
.btn.sm{padding:6px 10px;border-radius:8px;font-size:11px}.btnrow{gap:8px}

/* Cards: white surfaces on a soft canvas with restrained elevation. */
.card,.panel{background:#fff;border:1px solid #dfe4e7;border-radius:12px;box-shadow:0 1px 2px rgba(20,30,35,.035),0 7px 20px rgba(20,30,35,.045);transition:border-color .16s ease,box-shadow .16s ease}
.card:hover,.panel:hover{border-color:#d3dade;box-shadow:0 2px 4px rgba(20,30,35,.05),0 11px 28px rgba(20,30,35,.06)}
.cards .card,.grid2 .panel{min-height:92px}
.card .k,.panel .desc{letter-spacing:.015em}.card .v{line-height:1.12}.panel h2{line-height:1.25}
.cierre{box-shadow:0 1px 2px rgba(20,30,35,.025)}
.strip .sc{background:#fff;border:1px solid #e1e6e9;box-shadow:0 1px 2px rgba(20,30,35,.03)}
.stepl .n{box-shadow:inset 0 0 0 1px rgba(20,30,35,.02)}

/* Final neutralization and component consolidation. */
body,main{background:#f7f7f8!important}
.nav a.on{background:#f1f2f3!important;color:#24282d!important;border:1px solid #e5e7e9}
.nav a.on .ic{color:#24282d!important}

/* Semantic accents are carried by text, dots and borders — never by large fills. */
.b,.tag,.chip,.ruta .st,.ruta .st.on,.ruta .st.done,.chip.on,.b-lvl,.b-riel,.b-demo,
.t-alta,.t-media,.t-baja,.t-nuevo,.t-conf,.t-desc,.t-seg,.t-ok,.t-err,.t-warn,.t-ab,.t-cer{
  background:#fff!important;border:1px solid #dfe4e7;color:#5f6870!important;font-weight:400!important
}
.b-lvl,.t-alta,.t-conf,.t-ok,.t-cer{border-color:#16845a;color:#16845a!important}
.b-demo,.t-media,.t-seg,.t-warn{border-color:#8a5600;color:#8a5600!important}
.t-baja,.t-err{border-color:#c43d3d;color:#c43d3d!important}
.t-nuevo,.t-ab{border-color:#2f6fe4;color:#2f6fe4!important}
.chip.on{border-color:#aeb5ba;color:#24282d!important;background:#f1f2f3!important}
.ruta .st.on{border-color:#24282d;color:#24282d!important;background:#f1f2f3!important}
.ruta .st.done{border-color:#16845a;color:#16845a!important;background:#fff!important}
.ruta .ar{color:#b4bbc1!important}
.cierre,.cierre[style],.panel[style*="background"],.cierre[style*="background"]{background:#fff!important}
.toast{background:#fff;color:#24282d;border:1px solid #dfe4e7;border-left:3px solid #16845a;box-shadow:0 8px 24px rgba(20,30,35,.10)}

/* Shared card anatomy: label → value → support text. */
.cards .card,.strip .sc{display:flex;flex-direction:column;justify-content:flex-start;min-height:112px;padding:15px 16px}
.cards .card .k,.strip .sc .k{font-size:11px!important;line-height:1.2;text-transform:uppercase;letter-spacing:.07em;color:#565e66!important;font-weight:400!important;margin:0 0 12px}
.cards .card .v,.strip .sc .v{font-size:20px!important;line-height:1.15;color:#24282d!important;font-weight:400!important;margin:0}
.cards .card .d,.strip .sc .d{font-size:12px!important;line-height:1.35;color:#5f6870!important;margin:5px 0 0;font-weight:400!important}
.cards .card .tag,.strip .sc .tag{align-self:flex-start;margin-top:6px}
.cards{align-items:stretch}.cards .card{height:100%}.strip{gap:10px}.strip .sc{min-width:170px}

/* Route spacing: description and step controls occupy separate rows. */
.ruta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0 20px!important;padding-top:3px;clear:both;line-height:1.35}
.ruta + *{clear:both}
.ruta .st{display:inline-flex;align-items:center;min-height:27px;padding:4px 10px;line-height:1;white-space:nowrap}

/* Filter drawer/input for data preparation. */
#mapeoF,#ingredientesF{display:block;width:100%;height:40px;margin:8px 0 12px!important;padding:9px 12px 9px 42px!important;background:#fff!important;border:1px solid #d5dbe0!important;border-radius:9px!important;color:#24282d!important;font-size:12px!important;font-family:inherit!important;font-weight:400!important;line-height:1.4;box-shadow:0 1px 2px rgba(20,30,35,.03)}
#mapeoF::placeholder,#ingredientesF::placeholder{color:#8a939b;opacity:1}
#mapeoF:focus,#ingredientesF:focus{outline:0;border-color:#24282d!important;box-shadow:0 0 0 3px rgba(36,40,45,.08)!important}
input[type=text],textarea,select{background:#fff!important;border-color:#d5dbe0!important;color:#24282d!important}
input[type=text]::placeholder,textarea::placeholder{color:#9aa1a8}
.forml{font-size:11px!important;line-height:1.2;text-transform:uppercase;letter-spacing:.07em;color:#565e66!important;font-weight:400!important}

/* Card anatomy: every summary card reads as header / body / footer. */
.cards .card,.strip .sc{display:grid!important;grid-template-rows:auto 1fr auto;align-content:stretch;gap:0!important;min-height:126px!important}
.cards .card .k,.strip .sc .k{align-self:start;padding-bottom:12px!important;margin:0!important;font-size:11px!important;line-height:1.2!important;color:#4d555d!important;letter-spacing:.08em!important;text-transform:uppercase!important}
.cards .card .v,.strip .sc .v{align-self:center;padding:7px 0!important;margin:0!important;font-size:20px!important;line-height:1.2!important;color:#202428!important;font-weight:400!important}
.cards .card .d,.strip .sc .d{align-self:end;padding-top:12px!important;margin:0!important;font-size:12px!important;line-height:1.35!important;color:#565e66!important;font-weight:400!important}
.cards .card .tag,.strip .sc .tag{align-self:center;margin:0 0 0 5px!important}

/* NIVO uses flat surfaces only: no gradients and no semantic side borders. */
.cierre,.cierre[style],.panel[style*="background"]{border-left:1px solid #dfe4e7!important;background:#fff!important}
.preview-card{border-color:#dfe4e7!important;background:#fff!important}
.preview-card .preview-header{font-size:11px!important;line-height:1.2!important;text-transform:uppercase!important;letter-spacing:.08em!important;color:#4d555d!important;font-weight:400!important}
.preview-card .preview-note{font-size:12px!important;line-height:1.35!important;color:#565e66!important;margin-top:8px!important}
.preview-card .preview-body{font-size:20px!important;line-height:1.2!important;color:#202428!important;font-weight:400!important;margin-top:18px!important}
.preview-card .preview-footer{font-size:12px!important;line-height:1.35!important;color:#565e66!important;margin-top:12px!important}
.preview-card{padding:17px 18px!important}

/* Final component correction: smaller cards, highlighted labels, quiet indicators. */
*,*::before,*::after{background-image:none!important}
.card,.panel,.strip .sc,.cierre,.preview-card{border:1px solid #dfe4e7!important;border-left:1px solid #dfe4e7!important}
.cards .card,.strip .sc{min-height:104px!important;padding:13px 14px!important}
.cards .card .k,.strip .sc .k{font-size:10px!important;letter-spacing:.09em!important;color:#4f5c66!important;font-weight:500!important;padding-bottom:7px!important}
.cards .card .v,.strip .sc .v{font-size:17px!important;line-height:1.18!important;color:#24282d!important;font-weight:400!important;padding:4px 0!important}
.cards .card .d,.strip .sc .d{font-size:11px!important;line-height:1.3!important;color:#5f6870!important;padding-top:7px!important}
.preview-card{padding:15px 16px!important}
.preview-card .preview-header,.preview-card .preview-body{font-size:10px!important;line-height:1.2!important;text-transform:uppercase!important;letter-spacing:.09em!important;color:#4f5c66!important;font-weight:500!important}
.preview-card .preview-note,.preview-card .preview-footer{font-size:11px!important;line-height:1.3!important;color:#5f6870!important}
.preview-card .preview-body{margin-top:15px!important}
.preview-card .preview-footer{margin-top:7px!important}

/* Header hierarchy: page purpose first, operational context second. */
.hdr{padding-bottom:12px!important;margin-bottom:16px!important}
.hdr .sub{font-size:12px!important;line-height:1.35!important;color:#565e66!important;max-width:760px}
.hdr .ruta{font-size:10px!important;gap:4px!important;margin:9px 0 10px!important;padding-top:0!important;line-height:1!important}
.hdr .ruta .st{min-height:23px!important;padding:3px 8px!important;font-size:10px!important;line-height:1!important}
.hdr .ruta .ar{font-size:11px!important;color:#aeb5bb!important}
.hdr .badges{gap:5px!important;margin-top:5px}
.hdr .badges .b{font-size:10px!important;line-height:1.1!important;padding:4px 8px!important}
.hdr .badges .b-riel{color:#68737c!important}

/* Iconography: one quiet line-symbol language, used only where it adds wayfinding. */
.nav .ic,.nav .ic:before,.btn:before,.stepl .n{font-family:"Segoe UI Symbol",Inter, sans-serif;font-style:normal}
.nav .ic{width:18px!important;color:#565e66!important}.nav a.on .ic{color:#24282d!important}
.btn:before{display:inline-block;margin-right:7px;font-size:14px;line-height:1;vertical-align:-1px;color:currentColor}
.btn[onclick*="regHoy"]:before,.btn[onclick*="regAccion"]:before,.btn[onclick*="aprobar"]:before,.btn[onclick*="regObj"]:before,.btn[onclick*="save"]:before,.btn[onclick*="avance"]:before{content:"✓"}
.btn[onclick*="simUpload"]:before{content:"↥"}.btn[onclick*="go('datos')"]:before{content:"↗"}
.btn.ghost:before{opacity:.72}
.stepl .n{font-weight:400!important;color:#68737c}
.icon-sprite{display:none}
.nav .ic{width:18px!important;height:18px!important;display:block;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;font-size:0!important}
.nav .ic:before{display:none!important}
.filter-field{position:relative;width:100%;margin:8px 0 12px}.filter-field .filter-icon{position:absolute;left:11px;top:11px;width:17px;height:17px;fill:none;stroke:#565e66;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;z-index:1}.filter-field #mapeoF{margin:0!important;padding-left:36px!important}
.btn:before{content:none!important;display:none!important}.btn .ui-icon{width:15px;height:15px;margin-right:7px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Compact bridge: replaces the existing Hallazgos sparkline only when the breakdown has values. */
.compact-bridge{display:grid;gap:7px;margin:10px 0 14px;width:100%;max-width:560px}
.bridge-row{display:grid;grid-template-columns:180px minmax(90px,1fr) 42px;align-items:center;gap:9px;min-width:0}
.bridge-label,.bridge-value{font-size:11px;line-height:1.2;color:#5f6971;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bridge-value{color:#24282d;text-align:right;font-variant-numeric:tabular-nums}
.bridge-track{height:8px;background:#eef1f2;border-radius:3px;overflow:hidden}
.bridge-fill{display:block;height:100%;min-width:8px;border-radius:3px}
.bridge-green{background:#159570}.bridge-blue{background:#3978d8}.bridge-amber{background:#c98617}.bridge-violet{background:#7657c7}.bridge-red{background:#d45a55}
@media (max-width:700px){.bridge-row{grid-template-columns:145px minmax(70px,1fr) 38px}.bridge-label,.bridge-value{font-size:10px}}
.bridge-heading{margin-top:12px!important}.series-heading{margin-top:8px!important}
.microtrend{width:360px;max-width:100%;margin:10px auto 2px}
.microtrend-meta{display:flex;align-items:baseline;justify-content:center}
.microtrend-label{font-size:10px;letter-spacing:.09em;color:#4d555d;line-height:1.2}
.microtrend-current{font-size:18px;line-height:1.2;color:#202428;font-weight:400}
.microtrend-chart{display:block;width:360px;max-width:100%;height:auto;aspect-ratio:320 / 86;margin-top:5px;overflow:visible}
.microtrend-bar{fill:#159570;opacity:.62}
.microtrend-bar.latest{opacity:1}
.microtrend-target{stroke:#c98617;stroke-width:1;stroke-dasharray:3 3;opacity:.78}
.microtrend-axis{font-size:10px;fill:#5f6870}
.microtrend-summary{text-align:center;font-size:11px;line-height:1.3;color:#4d555d;margin:3px 0 7px}
.microtrend-footer{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:11px;line-height:1.3;color:#5f6870;text-align:center}
.microtrend-endpoint{min-width:0}.microtrend-endpoint>span:last-child{display:block}.microtrend-axis-label{font-size:12px;color:#68737c;margin-bottom:2px}
@media (max-width:700px){.microtrend-footer{gap:10px}.microtrend-current{font-size:16px}}
.history-trend{padding:2px 0 14px;border-bottom:1px solid #eef1f2;margin-bottom:14px}
.history-trend:last-child{border-bottom:0;margin-bottom:0}
.history-zero{stroke:#9aa3aa;stroke-width:1}
.history-diverging-bar{opacity:.78}.history-diverging-bar.positive{fill:#159570}.history-diverging-bar.negative{fill:#c98617}
.history-dot-rail{stroke:#e3e7e9;stroke-width:1}.history-dot{fill:#68737c;opacity:.65}.history-dot.latest{fill:#159570;opacity:1}
.history-zone-label{font-size:10px;fill:#5f6870}.history-count-bar{fill:#68737c;opacity:.65}.history-count-bar.latest{fill:#159570;opacity:1}.history-value{font-size:9px;fill:#68737c}.history-value.inside{fill:#fff}
/* Journey and decision-results hierarchy */
.nivo-disclosure{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(20,30,35,.03);margin-top:12px}
.nivo-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;font-weight:500;color:var(--ink)}
.nivo-disclosure>summary::-webkit-details-marker{display:none}.nivo-disclosure>summary:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}.nivo-disclosure>summary::after{content:"⌄";color:var(--mut);font-size:13px;line-height:1;transition:transform .15s ease}.nivo-disclosure[open]>summary::after{transform:rotate(180deg)}
.journey-summary{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.journey-summary-title{font-size:12px;color:var(--ink)}.journey-summary-status{font-size:11.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-content{padding:0 12px 12px;border-top:1px solid var(--line)}.journey-content .cierre{margin-top:12px}.journey-action{padding:5px 0;color:var(--mut)}.journey-action a{color:#2762c4}.journey-summary-chevron{display:none}
.metric-grid,.series-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.metric-card,.series-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px rgba(20,30,35,.03);padding:13px 14px;min-width:0}.metric-card--positive{border-left:3px solid var(--acc)}.metric-card--attention{border-left:3px solid var(--amber)}.metric-card--risk{border-left:3px solid var(--rose)}.metric-card--empty{border-left:3px solid var(--line)}.metric-card-header,.series-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:30px}.metric-card-label,.series-card-label{font-size:11px;line-height:1.3;letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}.metric-card-value,.series-card-current{font-size:13px;font-weight:400;line-height:1.45;color:var(--ink);margin-top:9px;overflow-wrap:anywhere;min-height:20px}.metric-card-reference,.metric-card-coverage,.series-card-target{font-size:11.5px;line-height:1.45;color:var(--mut);margin-top:8px;min-height:17px}.metric-card-reading,.series-card-reading{font-size:12px;font-weight:400;line-height:1.55;color:var(--mut);margin-top:9px;min-height:38px}.metric-card-source{font-size:11.5px;margin-top:auto;padding-top:10px}.metric-card-source a{color:#2762c4}.series-card-status{margin-top:8px;min-height:22px}.series-card-chart{margin-top:8px;min-height:112px;display:flex;align-items:center}.series-card-footer{display:flex;flex-direction:column;min-height:104px;margin-top:auto}.series-card-target{padding-top:8px;border-top:1px solid var(--line)}.series-card-reading{padding-top:8px;border-top:1px solid var(--line);flex:1}.metric-card .tag,.series-card .tag{white-space:nowrap}
.decision-record{padding:18px 0;border-bottom:1px solid var(--line)}.decision-record-header{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;line-height:1.45}.decision-record-title{color:var(--ink)}.decision-record-context,.decision-record-expected,.decision-record-reading{margin-top:12px;font-size:12px;line-height:1.6;color:var(--ink)}.decision-record-expected{padding-top:10px;border-top:1px solid var(--line)}.decision-record-reading{color:var(--mut)}.decision-record-details{margin-top:14px}.decision-record-details summary{cursor:pointer;color:var(--mut);font-size:11.5px}.decision-record-details table{margin-top:8px}
.decision-result-form{margin-top:10px;padding:12px 13px;border:1px solid #d8e9df;border-radius:10px;background:#fbfdfc}.decision-result-context{font-size:11.5px;line-height:1.45;color:#68717a;margin-bottom:9px}.decision-result-context strong{color:#24282d}.decision-result-label{font-size:11px;line-height:1.2;text-transform:uppercase;letter-spacing:.07em;color:#4d555d;margin-bottom:5px}.decision-result-form textarea{display:block;width:100%;min-height:84px;resize:vertical;padding:10px 11px;border:1px solid #cfe0d7;border-radius:9px;background:#fff;color:#24282d;font:inherit;line-height:1.5}.decision-result-form textarea:focus{outline:0;border-color:#16845a;box-shadow:0 0 0 3px rgba(22,132,90,.12)}.decision-result-help{font-size:11px;line-height:1.45;color:#565e66;margin-top:7px}.decision-result-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.decision-result-observed{margin-top:10px;padding:12px 14px;border:1px solid #bbdfc7;border-left:4px solid var(--acc);border-radius:10px;background:#f4fbf6}.decision-result-observed-label{font-size:11px;font-weight:750;letter-spacing:.03em;text-transform:uppercase;color:#277143}.decision-result-observed-text{margin-top:5px;color:var(--ink);line-height:1.55}.decision-result-warning{margin-top:9px;padding:8px 10px;border-radius:8px;background:#fff8e7;color:#8a5a00;font-size:12px}
.scenario-intro{margin:10px 0 14px;padding:11px 12px;background:#fbfcfd;border:1px solid var(--line);border-radius:8px;color:var(--mut);font-size:12px;line-height:1.55}.scenario-choice{padding:12px 0;border-bottom:1px solid var(--line)}.scenario-question{margin-top:4px;color:var(--ink);line-height:1.5}.scenario-outputs{margin-top:5px;color:var(--mut);line-height:1.5}.scenario-intent{padding:11px 12px;background:#fbfcfd;border:1px solid var(--line);border-radius:8px}.scenario-intent-question{margin-top:4px;color:var(--ink);line-height:1.5}
@media(max-width:700px){.metric-grid,.series-grid{grid-template-columns:1fr}.nivo-disclosure>summary{padding:11px 12px}.metric-card,.series-card{padding:12px}.decision-result-form{padding:11px}.decision-result-actions .btn{width:100%}}

/* Responsive: sidebar de iconos en móvil */
@media(max-width:768px){
  aside{width:56px!important;padding:0!important;overflow:visible}
  .brand-lockup{padding:12px 0!important;justify-content:center}
  .brand-wordmark{display:none!important}
  .brand-mark{margin:0!important}
  .sel{display:none!important}
  .nav{padding:6px 4px!important}
  .nav .nav-text{display:none!important}
  .nav a{justify-content:center;padding:10px 6px!important;gap:0!important}
  .nav .ic{width:20px!important;height:20px!important}
  .nav .ic:before{font-size:17px!important}
  .navsec{display:none!important}
  .foot{display:none!important}
  main{margin-left:56px!important;padding:16px 14px!important}
  .hdr{flex-direction:column;gap:10px}
  .hdr-side{width:100%}
  .cards{grid-template-columns:1fr!important}
  .grid2{grid-template-columns:1fr!important}
  table{font-size:11px}
  th,td{padding:6px 4px!important}
  .btn{padding:8px 12px!important;font-size:12px}
  .panel{padding:12px 14px}
  .compact-bridge{max-width:100%!important}
  .bridge-row{grid-template-columns:120px minmax(60px,1fr) 36px!important}
  .microtrend{width:100%!important}
  .microtrend-chart{width:100%!important}
  .mobile-selectors{display:block!important;margin-top:8px}
  .mobile-selectors .sel select{font-size:12px;padding:6px 8px}
  .hallazgo-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .hallazgo-tab{flex:0 0 auto;max-width:240px}
  .hallazgo-footer{margin-top:14px;padding-top:10px}
  .sub-full{display:none!important}.sub-mobile{display:inline!important}
}
@media(min-width:769px) and (max-width:1024px){
  aside{width:200px!important}
  .nav a{font-size:12px;padding:8px 10px}
  main{padding:18px 20px}
}
/* Inicio: hierarchy and journey disclosure */
.inicio-lead{background:#fff;border:1px solid #dfe4e7;border-radius:12px;padding:14px 18px;margin-bottom:12px;box-shadow:0 1px 2px rgba(20,30,35,.035)}
.inicio-summary{border-left:3px solid #187a59;background:#f8fbf9}
.inicio-lead .cierre,.inicio-summary .cierre{font-size:13px!important;line-height:1.5!important}
.inicio-section-label{color:#5a626a;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.inicio-action{border:1px solid #b9ddca;border-left:4px solid #187a59;background:#fbfefc;box-shadow:0 2px 5px rgba(24,122,89,.08)}
.inicio-advanced{margin-top:18px;padding-top:4px}
.inicio-status-card{--status-accent:#16845a;--status-border:#dfe4e7;--status-bg:#fff;background:var(--status-bg);border:1px solid var(--status-border);border-left:3px solid var(--status-accent);border-radius:12px;padding:17px 18px;margin-bottom:14px;box-shadow:none}
.inicio-status-card[data-status="atencion"]{--status-accent:#8a5600;--status-border:#e5e8ea;--status-bg:#fff}
.inicio-status-card[data-status="critico"]{--status-accent:#c43d3d;--status-border:#e5e8ea;--status-bg:#fff}
.inicio-status-card[data-status="sin_datos"]{--status-accent:#64707a;--status-border:#dfe4e7;--status-bg:#fff}
.inicio-status-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.inicio-status-header .inicio-section-label{margin:0}
.inicio-status-badge{display:inline-flex;align-items:center;gap:6px;color:var(--status-accent);border:1px solid var(--status-border);border-radius:999px;background:#fff;padding:5px 9px;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.inicio-status-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--status-accent)}
.inicio-status-verdict{display:flex;align-items:flex-start;gap:10px;margin-bottom:7px}
.inicio-status-icon{display:block;flex:0 0 7px;width:7px;height:7px;margin-top:7px;border-radius:50%;background:var(--status-accent);box-shadow:0 0 0 2px rgba(184,108,0,.14)}
.inicio-status-verdict h2{margin:0;color:#202428;font-size:13px;line-height:1.5;font-weight:400!important;letter-spacing:0}
.inicio-status-summary{max-width:850px;margin:0 0 14px 20px;color:#4f5c66;font-size:13px;line-height:1.5}
.inicio-status-risk{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:5px 9px;margin:0 0 14px 20px;padding:10px 12px;background:#fbfcfd;border:1px solid var(--status-border);border-radius:9px}
.inicio-status-risk-label{grid-column:1/-1;color:var(--status-accent);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.inicio-status-risk-value{color:#202428;font-size:13px;line-height:1.5;font-weight:400!important;font-variant-numeric:tabular-nums}
.inicio-status-risk-text{color:#4f5c66;font-size:12px;line-height:1.35}
.inicio-status-metrics{display:flex;flex-wrap:wrap;gap:7px;margin-left:20px}
.inicio-status-metric{display:inline-flex;align-items:baseline;gap:5px;padding:6px 9px;background:#fff;border:1px solid var(--status-border);border-radius:8px;color:#4d555d;font-size:11px;line-height:1.2}
.inicio-status-metric strong{color:#202428;font-weight:400!important}
.inicio-status-metric small{color:#565e66;font-size:10px}
.inicio-status-metric[data-state="warning"] strong{color:var(--status-accent)}
.inicio-status-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 0 20px;padding-top:12px;border-top:1px solid var(--status-border);font-size:11px;color:#565e66}
.inicio-status-action{white-space:nowrap}
.inicio-status-action.btn.ghost{color:#2762c4!important;border-color:#dfe4e7!important;background:#fff!important}
.inicio-status-action.btn.ghost:hover{color:#24282d!important;background:#f5f7f8!important}
@media(max-width:700px){.inicio-status-card{padding:16px}.inicio-status-header{align-items:flex-start;flex-direction:column;gap:8px}.inicio-status-verdict h2{font-size:13px}.inicio-status-summary,.inicio-status-risk,.inicio-status-metrics,.inicio-status-footer{margin-left:0}.inicio-status-risk{grid-template-columns:1fr}.inicio-status-risk-label{grid-column:auto}.inicio-status-footer{align-items:flex-start;flex-direction:column}}
#hdrRuta{width:100%;margin-top:12px;min-width:0}
.hdr>div:first-child{flex:1 1 auto;min-width:0}
.ruta-disclosure{position:relative;display:inline-block;font-size:10px}
.ruta-disclosure summary{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:28px;cursor:pointer;color:#68717a;list-style:none;padding:4px 8px;background:#fff;border:1px solid #dfe4e7;border-radius:6px;-webkit-user-select:none;user-select:none}
.ruta-disclosure summary:hover{background:#f5f7f8;border-color:#cbd2d7}
.ruta-disclosure summary::-webkit-details-marker{display:none}
.ruta-disclosure summary:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:4px}
.ruta-disclosure .ruta-chevron{font-size:9px;transition:transform .15s ease}
.ruta-disclosure[open] .ruta-chevron{transform:rotate(180deg)}
.ruta-disclosure[open]{display:flex;align-items:center;gap:10px;width:100%;}
.ruta-disclosure[open] .ruta{position:static;top:auto;left:auto;transform:none;z-index:auto;display:flex;align-items:center;justify-content:center;flex:1 1 auto;min-width:0;min-height:28px;width:auto;max-width:none;flex-wrap:nowrap;gap:5px;margin:0!important;padding:2px 0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow-x:auto;overflow-y:hidden;}
.ruta-disclosure .ruta .st{display:inline-flex;align-items:center;min-height:24px;line-height:1}
.ruta-disclosure .ruta .ar{display:inline-flex;align-items:center;line-height:1}
@media(max-width:768px){
  .ruta-disclosure[open]{display:block;width:100%;}
  .ruta-disclosure[open] .ruta{width:100%;max-width:100%;min-height:0;margin:0!important;padding-top:8px;flex-wrap:wrap;justify-content:flex-start;gap:3px!important;overflow-x:visible;overflow-y:visible}
  .ruta-disclosure .ruta .st{min-height:20px!important;padding:2px 6px!important;font-size:9px!important}
}

/* Technical detail block */
.technical-detail{padding:16px 18px}
.technical-detail summary{cursor:pointer;font-weight:400;font-size:13px;padding:2px 0}
.technical-intro{font-size:12px;color:var(--mut);margin:12px 0 16px;line-height:1.5}
.technical-section{margin-bottom:18px}
.technical-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin-bottom:8px;font-weight:400}
.technical-table{width:100%;border-collapse:collapse;font-size:12.5px}
.technical-table td{padding:10px 8px;border-bottom:1px solid #f0f1f2;vertical-align:top}
.technical-table tr:last-child td{border-bottom:none}
.technical-impact{color:var(--mut);font-size:11.5px;margin-top:3px;line-height:1.4}
.technical-status-line{font-size:12.5px;line-height:1.5}
.technical-status{font-size:11.5px;font-weight:400}
@media(max-width:768px){
  .technical-table{font-size:12px}
  .technical-table td{padding:8px 6px}
  .technical-impact{margin-top:6px;padding-top:6px;border-top:1px solid #f0f1f2}
}

/* Stepper */
.stepl{position:relative;padding-left:0}
.stepl+.stepl{margin-top:2px}
.stepl .n{position:relative;z-index:1}

/* Preview card hierarchy */
.preview-card{padding:18px 20px!important}
.preview-status{font-size:12px;font-weight:500}
.preview-level{margin-top:12px;font-size:11px;line-height:1.3;letter-spacing:.08em;color:#68717a;font-weight:400;text-transform:uppercase}
.preview-assertion{font-size:12px;color:var(--ink);line-height:1.5;margin-top:16px}
.preview-limitation{font-size:12px;color:var(--ink);line-height:1.5;margin-top:10px}
.preview-additional{font-size:12px;color:var(--mut);line-height:1.5;margin-top:6px}
.preview-next-step{margin-top:14px;padding:10px 12px;background:#f8fafb;border:1px solid #e1e5e8;border-radius:8px;font-size:12px;line-height:1.5}
.preview-note{margin-top:16px;font-size:11px;color:var(--mut);line-height:1.4}

/* Reading process explanatory block */
.reading-process{margin-top:14px}
.reading-process-intro{font-size:12px;color:var(--mut);line-height:1.5;margin-bottom:14px}
.reading-process-step{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.reading-process-step:last-child{border-bottom:none}
.reading-process-index{width:20px;height:20px;border-radius:50%;background:var(--chip);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--mut);flex-shrink:0;margin-top:1px}
.reading-process-content{flex:1;min-width:0}
.reading-process-name{font-size:12px;color:var(--ink);margin-bottom:3px}
.reading-process-desc{font-size:12px;color:var(--mut);line-height:1.4;margin-bottom:6px}
.reading-process-visible{font-size:11.5px;color:var(--acc-d);line-height:1.4;padding:6px 8px;background:#f4faf7;border-radius:6px;border:1px solid #d8eee3}
.reading-process-note{margin-top:12px;padding:10px 12px;background:#f8fafb;border:1px solid #e1e5e8;border-radius:8px;font-size:11.5px;color:var(--mut);line-height:1.4}

/* Dataset status compact */
.dataset-status{white-space:nowrap;display:inline-block}

/* Card help: info icon + details overlay for contextual interpretation */
.cards .card{position:relative}
.card-header{display:flex;align-items:center;gap:6px;min-width:0}
.card-header .k{padding-right:0!important;margin:0!important}
.card-help{position:relative;top:auto;right:auto;width:12px;height:12px;transform:none;flex:0 0 12px;z-index:5}
.card-help summary{position:relative;z-index:7;list-style:none;cursor:pointer;width:12px;height:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:transparent;border:none;color:#5f6870;font-size:0;line-height:0;transition:color .12s ease}
.card-help summary:hover{color:#4d555d}
.card-help summary:focus-visible{outline:none}
.card-help summary:focus-visible::after{outline:2px solid var(--acc);outline-offset:2px}
.card-help summary::-webkit-details-marker{display:none}
.card-help summary::after{content:"i";font-family:Inter,ui-sans-serif,system-ui;font-style:normal;font-weight:500;font-size:9px;line-height:1;width:12px;height:12px;min-width:12px;min-height:12px;aspect-ratio:1/1;box-sizing:border-box;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f1f3f4;border:1px solid #dfe4e7;transform:translateY(-3px);transition:background .12s ease,border-color .12s ease}
.card-help summary:hover::after{background:#e8eaeb;border-color:#c7cdd3}
.card-help .card-help-panel{position:absolute;top:12px;right:0;width:min(260px,calc(100vw - 24px));background:#fff;border:1px solid #dfe4e7;border-radius:10px;padding:10px 12px;box-shadow:0 4px 16px rgba(20,30,35,.10);font-size:11.5px;line-height:1.45;color:#4d555d;z-index:6;margin-top:4px}
@media(max-width:768px){
  .card-help .card-help-panel{width:min(240px,calc(100vw - 48px));right:0}
}

/* Hallazgo detail: wrapper, label, intro, tabs, footer */
.hallazgo-detail{margin-bottom:16px}
.hallazgo-label{font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:#4d555d;margin-bottom:6px}
.hallazgo-intro{font-size:12px;color:#5f6870;margin-bottom:14px;line-height:1.4}
.hallazgo-tabs-label{font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:#4d555d;margin-bottom:6px}
.hallazgo-tabs{gap:6px;margin-bottom:12px}
.hallazgo-tab{font-size:11.5px;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid #dfe4e7;color:#5f6870;cursor:pointer;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center}
.hallazgo-tab:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:999px}
.hallazgo-tab[aria-selected="true"]{background:#f1f2f3;border-color:#aeb5ba;color:#24282d}
.hallazgo-tab[aria-selected="false"]{background:#fff;color:#565e66}
.hallazgo-title{margin-top:6px;color:#24282d;font-size:15px!important;font-weight:400!important;line-height:1.35;letter-spacing:0}
.hallazgo-meta{margin-top:4px;color:#68737c;font-size:13px;font-weight:400;line-height:1.45}
.hallazgo-meta-label{color:#68737c;font-weight:400}
.hallazgo-meta-separator{margin:0 3px;color:#aeb5bb}
.hallazgo-footer{display:flex;justify-content:flex-end;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid #e5e8eb}
.link-secondary{color:#146449;font-size:12px;font-weight:400;text-decoration:none;display:inline-flex;align-items:center}
.link-secondary:hover,.link-secondary:focus-visible{text-decoration:underline}
.link-secondary:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:3px}
/* Advanced section: grouping for experimental modules in Historial */
.advanced-section{margin-top:18px}
.advanced-section-label{margin:0 0 8px;color:#5a626a;font-size:10px;font-weight:400;letter-spacing:.08em;text-transform:uppercase}
/* Radar summary: compact version for Inicio */
.radar-summary{background:#fff;border:1px solid #dfe4e7;border-radius:12px;padding:14px 18px;margin-bottom:16px;box-shadow:0 1px 2px rgba(20,30,35,.035)}
.radar-summary h2{font-size:15px;font-weight:400;color:#24282d;margin-bottom:4px}
.radar-summary .desc{font-size:12px;color:#5f6870;margin-bottom:10px}
.radar-summary .radar-meta{font-size:12px;color:#4d555d;margin-bottom:6px}
.radar-summary .radar-meta b{color:#24282d;font-weight:400}
.radar-summary .radar-link{margin-top:10px}
/* Finding sections: evidence, recommendation, outcome */
.finding-section{margin-top:14px}
.finding-evidence{margin-top:16px}
.finding-section-label{margin-bottom:6px;color:#565e66;font-size:10px;font-weight:400!important;letter-spacing:.07em;line-height:1.2;text-transform:uppercase}
.finding-section-content{color:#24282d;font-size:13px;font-weight:400;line-height:1.5}
.finding-recommendation{margin-top:16px;padding:14px 16px;background:#f0f7f3;border:1px solid #c7e6d5;border-left:3px solid #146449;border-radius:9px}
.finding-recommendation-title{color:#24282d;font-size:13px;font-weight:400!important;line-height:1.5}
.finding-recommendation-support{margin-top:7px;color:#5f6870;font-size:11px;font-weight:400;line-height:1.35}
.finding-outcome{margin-top:16px;padding-top:14px;border-top:1px solid #c7e6d5}
.finding-outcome-label{margin-bottom:5px;color:#565e66;font-size:10px;font-weight:400!important;letter-spacing:.07em;line-height:1.2;text-transform:uppercase}
.finding-outcome-value{color:#24282d;font-size:13px;font-weight:400!important;line-height:1.5}
.confidence-note{margin:10px 0 12px;padding:8px 10px;background:#fbfcfd;border:1px solid #dfe4e7;border-left:2px solid #c7e6d5;border-radius:8px;color:#68737c;font-size:11px;font-weight:400;line-height:1.4}
.commitment-title{color:#24282d;font-size:15px!important;font-weight:400!important;line-height:1.3}
.finding-other-cause{margin-top:10px}
.finding-other-cause textarea{width:100%;border:1px solid #d5dbe0;border-radius:8px;padding:8px 10px;font-size:12.5px;font-family:inherit;color:#24282d;resize:vertical;min-height:56px}
.finding-other-cause textarea:focus{outline:0;border-color:#187a59;box-shadow:0 0 0 2px rgba(24,122,89,.1)}
.finding-other-note{margin-top:5px;color:#5f6870;font-size:11px}
/* Date field: NIVO-styled date picker wrapper */
.date-field{margin-top:12px}
.date-field-label{display:block;margin-bottom:5px;color:#565e66;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.date-field-control{display:flex;align-items:center;min-height:40px;padding:4px 10px;background:#fbfefc;border:1px solid #c7e6d5;border-radius:8px}
.date-field-control:focus-within{border-color:#187a59;box-shadow:0 0 0 2px rgba(24,122,89,.1)}
.date-field-control input{width:100%;padding:5px 0;color:#24282d;background:transparent;border:0;outline:0;font:inherit;font-size:13px}
.date-field-help{margin-top:5px;color:#5f6870;font-size:11px}
/* Priority decision block */
.priority-decision{position:relative;background:#f0f7f3;border:1px solid #c7e6d5;border-left:3px solid #176d50;border-radius:10px;padding:16px 18px;margin:0 0 14px}
.priority-decision .pd-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.priority-decision .pd-label{font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:#176d50;background:#e8f5ef;border:1px solid #c7e6d5;border-radius:999px;padding:3px 10px;white-space:nowrap}
.priority-decision .pd-body{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.priority-decision .pd-content{flex:1;min-width:0;padding-right:170px}
.priority-decision .pd-title{font-size:12px;color:#24282d;line-height:1.4;font-weight:500}
.priority-decision .pd-detail{font-size:12px;color:#5f6870;margin-top:4px;line-height:1.4}
.priority-decision .pd-action{position:absolute;right:18px;top:50%;transform:translateY(-50%);flex:0 0 auto}
.verdict-method-note{margin:0 0 14px!important;line-height:1.6!important}
.client-reading .persistencia-state,.client-reading .foot{display:none!important}
@media(max-width:600px){
  .priority-decision .pd-body{flex-direction:column;align-items:stretch}
  .priority-decision .pd-content{padding-right:0}
  .priority-decision .pd-action{position:static;transform:none;display:flex;justify-content:stretch}
  .priority-decision .pd-action .btn{width:100%;text-align:center}
}
.prov-data-scroll{position:relative;overflow-x:auto;margin-top:8px}
.prov-data-table{border:1px solid #dfe4e7;border-radius:10px;overflow:hidden;background:#fff}
.prov-data-header,.prov-data-row{display:grid;grid-template-columns:1.1fr 1.25fr 1fr;gap:18px;align-items:center;padding:10px 14px;border-bottom:1px solid #dfe4e7}
.prov-data-header{min-height:30px;background:#fbfcfd;font-size:10px;color:#5f6870;text-transform:uppercase;letter-spacing:.07em}
.prov-data-row{min-height:74px;padding:10px 14px}
.prov-data-row:last-child{border-bottom:none}
.prov-data-identity,.prov-data-result,.prov-data-reading{min-width:0}
.prov-data-scroll::after{content:"";position:sticky;right:0;top:0;display:block;width:28px;height:100%;pointer-events:none;background:linear-gradient(to right,transparent,rgba(247,247,248,.95))}
.prov-row-overdue{background:#fef2f2}
.prov-row-due-soon{background:#fffbeb}
.prov-row-controlled{background:#f0fdf4}
.prov-row-unknown{background:#f9fafb}
.is-highlighted{background:#f0fdf4!important;transition:background .3s ease}

/* Provider attention block: compact preview pattern aligned with the data-reading page. */
.prov-attention,
.prov-attention *{font-weight:400!important}
.prov-attention{padding:14px 16px;background:#fff;border-left:3px solid #87919a;margin-bottom:16px}
.prov-attention--overdue{border-left-color:#bf514b}
.prov-attention--missing{border-left-color:#b87917}
.prov-attention--orphan{border-left-color:#b87917}
.prov-attention--info{border-left-color:#87919a}
.prov-attention-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.prov-attention-kicker{font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.08em;color:#4d555d}
.prov-attention-status{font-size:11px;line-height:1.2;color:#68737c;border:1px solid #cbd2d7;border-radius:999px;padding:4px 9px;white-space:nowrap}
.prov-attention--overdue .prov-attention-status{color:#bf514b;border-color:#e4b5b1;background:#fffafa}
.prov-attention--missing .prov-attention-status,.prov-attention--orphan .prov-attention-status{color:#b87917;border-color:#e7c98d;background:#fffdf5}
.prov-attention-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.prov-attention-title{font-size:14px;line-height:1.35;color:#24282d;margin-bottom:7px}
.prov-attention-facts{font-size:12px;line-height:1.45;color:#4d555d;margin-bottom:7px}
.prov-attention--overdue .prov-attention-facts{color:#a33f3a}
.prov-attention-consequence{font-size:12px;line-height:1.45;color:#4d555d;margin-bottom:9px}
.prov-attention-next{padding:9px 11px;border:1px solid #dfe4e7;border-radius:8px;background:#f8fafb;color:#24282d;font-size:12px;line-height:1.45}
.prov-attention-action-row{display:flex;align-items:center;gap:14px}
.prov-attention-action{display:flex;align-items:center;flex:0 0 auto}
.prov-attention .btn{font-size:11px;font-weight:400!important;white-space:nowrap}
@media(max-width:768px){
  .prov-attention-action-row{align-items:stretch;gap:10px}
  .prov-attention-next{flex:1;min-width:0}
  .prov-attention-action{justify-content:flex-start}
  .prov-attention-action .btn{width:auto}
}
@media(max-width:600px){
  .prov-attention-action-row{flex-direction:column;align-items:stretch}
  .prov-attention-action{justify-content:flex-start}
}

/* Debt summary: contextual reading without changing the shared card system. */
.prov-summary,
.prov-summary *{font-weight:400!important}
.prov-summary-cards{align-items:stretch}
.prov-summary-card{display:grid;grid-template-rows:auto auto auto 1fr;gap:0;border-left:3px solid #68737c!important;background:#fff!important}
.prov-summary-card--total{border-left-color:#68737c!important}
.prov-summary-card--overdue{border-left-color:#bf514b!important}
.prov-summary-card--due-week{border-left-color:#b87917!important}
.prov-summary-card--upcoming{border-left-color:#2762c4!important}
.prov-summary-card--neutral{border-left-color:#dfe4e7!important}
.prov-summary-card .k{margin-bottom:7px;line-height:1.2}
.prov-summary-card .v{margin:0;padding:0;line-height:1.2}
.prov-summary-card .d{margin-top:5px;line-height:1.3}
.prov-summary-context{margin-top:7px;color:#4d555d;font-size:11px;line-height:1.3}
.prov-summary-card--overdue .prov-summary-context{color:#a33f3a}
.prov-summary-warning{margin:0 0 10px;color:#5f6870;font-size:12px;line-height:1.4}
.prov-summary-reading{margin-top:10px;padding:9px 11px;border:1px solid #dfe4e7;border-radius:8px;background:#f8fafb;color:#4d555d;font-size:12px;line-height:1.4}

/* Provider concentration: compact horizontal rows with neutral surfaces. */
.prov-provider-row,
.prov-provider-row *{font-weight:400!important}
.prov-provider-row{min-height:0!important;padding:8px 12px!important;gap:14px!important;align-items:center;background:#fff!important;border-left:3px solid #dfe4e7}
.prov-provider-row--overdue{border-left-color:#bf514b}
.prov-provider-row--due-soon{border-left-color:#b87917}
.prov-provider-row--upcoming{border-left-color:#2762c4}
.prov-provider-row--unknown{border-left-color:#aeb5ba}
.prov-provider-row:last-child{border-bottom:0}
.prov-provider-name{font-size:13px;line-height:1.3;color:#24282d}
.prov-provider-count{margin-top:3px;font-size:11px;line-height:1.3;color:#5f6870}
.prov-provider-amount{font-size:15px;line-height:1.2;color:#24282d}
.prov-provider-share{margin-top:3px;font-size:11px;line-height:1.3;color:#5f6870}
.prov-provider-due{font-size:11px;line-height:1.3;color:#4d555d}
.prov-provider-status{margin-top:3px;font-size:11px;line-height:1.3;color:#4d555d}
.prov-provider-row--overdue .prov-provider-status{color:#a33f3a}
.prov-provider-row--due-soon .prov-provider-status{color:#9a6818}
.prov-provider-row--upcoming .prov-provider-status{color:#2f6fe4}
.prov-provider-row--unknown .prov-provider-status{color:#68737c}
.prov-provider-row .btn{margin-top:5px;font-weight:400!important}

/* Invoice rows: white surfaces, restrained type, and status-only accents. */
.prov-invoices,
.prov-invoices *{font-weight:400!important}
.prov-invoice-row{min-height:0!important;padding:8px 12px!important;gap:14px!important;align-items:center;background:#fff!important}
.prov-invoice-row:last-child{border-bottom:0}
.prov-invoice-number{font-size:13px;line-height:1.3;color:#24282d}
.prov-invoice-provider{margin-top:2px;font-size:12px;line-height:1.3;color:#4d555d}
.prov-invoice-status{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:4px}
.prov-invoice-status-tag{background:#fff!important;border:1px solid #dfe4e7!important;color:#68737c!important}
.prov-invoice-status-tag--overdue{border-color:#c43d3d!important;color:#c43d3d!important}
.prov-invoice-status-tag--due-soon,.prov-invoice-status-tag--partial{border-color:#8a5600!important;color:#8a5600!important}
.prov-invoice-status-tag--pending{border-color:#2f6fe4!important;color:#2f6fe4!important}
.prov-invoice-status-tag--unknown{border-color:#aeb5ba!important;color:#68737c!important}
.prov-invoice-days{font-size:11px;line-height:1.3;color:#5f6870}
.prov-invoice-row--overdue .prov-invoice-days{color:#a33f3a}
.prov-invoice-pending{font-size:15px;line-height:1.2;color:#24282d}
.prov-invoice-detail{margin-top:3px;font-size:11px;line-height:1.3;color:#5f6870}
.prov-invoice-action{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.prov-invoice-reading{font-size:11px;line-height:1.35;color:#4d555d}
.prov-invoice-button{min-height:28px;padding:6px 10px!important;font-size:11px!important;font-weight:400!important;white-space:nowrap}
.prov-invoice-button::before,.prov-invoice-button .ui-icon{content:none!important;display:none!important}
.prov-invoice-row.is-highlighted{background:#fff!important;outline:2px solid rgba(52,120,238,.22);outline-offset:-2px}
.prov-invoice-filters{margin-bottom:12px}
.prov-invoice-empty{padding:8px 0;color:#5f6870;font-size:12px;line-height:1.35}

/* Data-quality exceptions: a conditional, non-duplicative page ending. */
.prov-exceptions,
.prov-exceptions *{font-weight:400!important}
.prov-exceptions{background:#fff}
.prov-exceptions-list{display:grid;gap:8px}
.prov-exception{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 13px;background:#fff;border:1px solid #dfe4e7;border-left:3px solid #b87917;border-radius:8px}
.prov-exception-content{min-width:0}
.prov-exception-status{margin-bottom:3px;color:#b87917;font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.07em}
.prov-exception-title{color:#24282d;font-size:13px;line-height:1.35}
.prov-exception-detail,.prov-exception-consequence{margin-top:3px;color:#4d555d;font-size:11px;line-height:1.35}
.prov-exception-consequence{color:#5f6870}
.prov-exception-button{flex:0 0 auto;min-height:28px;padding:6px 10px!important;font-size:11px!important;font-weight:400!important}
.prov-payment-modal{margin-top:16px;background:#fff}
.prov-payment-header{display:flex;justify-content:space-between;align-items:center;gap:12px}
.prov-payment-summary{margin:12px 0;padding:10px 12px;border:1px solid #dfe4e7;border-radius:8px;background:#f8fafb;color:#4d555d;font-size:12px;line-height:1.45}
.prov-payment-help{margin-top:5px;color:#5f6870;font-size:11px;line-height:1.35}
.prov-payment-modal label{display:block;margin:9px 0 4px;color:#4d555d;font-size:11px;font-weight:400}
.prov-payment-modal input,.prov-payment-modal select{width:100%;max-width:420px;box-sizing:border-box;padding:8px 9px;border:1px solid #dfe4e7;border-radius:8px;color:#24282d;background:#fff;font-size:12px;font-weight:400}
.prov-payment-modal input[type="checkbox"]{width:auto;padding:0;margin-right:5px}
.prov-payment-warning,.prov-payment-error{margin-top:7px;color:#a33f3a;font-size:11px;line-height:1.35}
.prov-payment-confirm{color:#4d555d!important}
.prov-payment-submit:disabled{opacity:.6;cursor:wait}
.prov-payment-modal,.prov-payment-modal *{font-weight:400!important}
@media(max-width:600px){.prov-payment-modal{padding:14px}.prov-payment-header{align-items:flex-start}.prov-payment-modal input,.prov-payment-modal select{max-width:none}}
@media(max-width:600px){
  .prov-exception{align-items:flex-start;flex-direction:column;gap:10px}
  .prov-exception-button{align-self:flex-start}
}
@media(max-width:768px){
  .prov-data-header,.prov-data-row{gap:10px;padding:10px}
  .prov-data-header{min-width:520px}
  .prov-data-row[data-type="provider"]{min-width:520px}
  .prov-data-row[data-type="invoice"]{min-width:560px}
}
/* Costos y configuración de productos: aire, controles y modales con lenguaje visual NIVO. */
/* ===== Costos y configuración de productos — bloque consolidado ===== */
.preparation-page{max-width:1180px}
.preparation-page>.panel{padding:24px 26px 28px}
.preparation-page>.panel>h2{margin:0 0 6px;font-size:15px!important;font-weight:400!important;letter-spacing:0}
.preparation-page>.panel>.desc{line-height:1.55;margin-bottom:22px}
.preparation-summary{gap:10px;margin:0 0 22px}
.preparation-summary .sc,.preparation-mini-summary .sc{padding:16px 15px;min-height:88px}
.preparation-summary .sc{display:grid;grid-template-rows:24px 1fr 22px;align-items:start}
.preparation-summary .sc .k{margin-bottom:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preparation-summary .sc .d{display:flex;align-items:center;gap:4px;min-width:0}
.preparation-summary .d-txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.preparation-mini-summary{margin:18px 0}
.preparation-mini-summary .sc{padding:16px 18px;min-height:86px}
.preparation-mini-summary .sc .k{margin-bottom:10px!important}
.preparation-mini-summary .d{margin-top:7px;color:var(--mut);font-size:12px;line-height:1.4}
.preparation-intro{padding:11px 14px;margin:0 0 24px;border:1px solid #e2e8e5;border-left:3px solid #a9d6c2;border-radius:10px;color:#5f6971;line-height:1.45;background:#fbfdfc;font-size:12px}
.preparation-card-link{display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--acc-d);font-weight:400!important;text-decoration:none;border:0;background:transparent;flex:0 0 auto}
.preparation-card-link:hover{color:var(--acc);background:transparent}
.preparation-card-link:focus-visible{outline:2px solid #9acfb8;outline-offset:2px}
.preparation-toolbar{display:flex;gap:12px;align-items:end;justify-content:space-between;margin:0 0 16px;flex-wrap:wrap}
.preparation-filter{position:relative;flex:1 1 320px;max-width:520px}
.preparation-filter input{width:100%;box-sizing:border-box;padding:9px 12px 9px 42px!important;font-family:inherit;font-size:12px;font-weight:400;color:var(--ink);line-height:1.4}
.preparation-filter input::placeholder{color:#8a939b;opacity:1}
.preparation-filter-help{display:none}
.preparation-filter .filter-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;fill:none;stroke:#565e66;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;z-index:1}
.preparation-filter:has(#mapeoF) .filter-icon{top:calc(50% + 7px)}
#fichaSel{display:block;width:min(100%,520px);height:40px;box-sizing:border-box;margin:8px 0 14px!important;padding:9px 42px 9px 14px!important;border:1px solid #d5dbe0!important;border-radius:9px!important;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%237d858d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:16px 16px!important;appearance:none;-webkit-appearance:none;color:#24282d!important;font-family:inherit!important;font-size:12px!important;font-weight:400!important;line-height:1.4;box-shadow:0 1px 2px rgba(20,30,35,.03)}
#fichaSel:focus{outline:0;border-color:#24282d!important;box-shadow:0 0 0 3px rgba(36,40,45,.08)!important}
.preparation-context{padding:20px 0 22px;border-bottom:1px solid var(--line);margin-bottom:22px}
.preparation-context-title{font-size:14px;color:#24282d;margin:0 0 12px;line-height:1.35}
.preparation-context .desc{box-sizing:border-box;min-height:52px;margin:0;max-width:none;padding:13px 15px;border:1px solid #e2e8e5;border-radius:10px;background:#fbfdfc;color:#5f6971;line-height:1.5}
.preparation-page table{margin-top:10px}
.preparation-page th,.preparation-page td{padding:12px 10px;vertical-align:top}
.preparation-page .btnrow{margin-top:18px;padding-top:4px}
.preparation-empty{padding:18px 12px;border:1px dashed #dfe4e7;border-radius:8px;color:#565e66}
.preparation-row-flash{background:#fff8e9!important;transition:background 1.4s ease}
.preparation-status-note{margin:0 0 14px;padding:11px 14px;border:1px solid #f1dfb8;border-left:3px solid var(--amber);border-radius:8px;background:#fffdf6;color:#8b6517;line-height:1.5;font-size:12px}
.preparation-modal{max-width:720px!important;padding:26px 28px 24px!important}
.preparation-modal h3{margin:0 0 6px!important;font-size:15px!important;font-weight:400!important}
.preparation-modal .modal-intro{font-size:13px;line-height:1.5;color:#68717a;margin-bottom:20px}
.preparation-modal .modal-section{padding:16px 0 4px;border-top:1px solid #edf0f1}
.preparation-modal .modal-section:first-of-type{border-top:0;padding-top:0}
.preparation-modal .modal-section-title{font-weight:400!important;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#68717a;margin-bottom:12px}
.preparation-modal .forml{margin-top:12px}
.preparation-modal input,.preparation-modal select,.preparation-modal textarea{width:100%;box-sizing:border-box;min-height:36px;padding:8px 10px;border:1px solid #dfe4e7;border-radius:8px;background:#fff;color:#24282d;font:inherit;font-size:12px;font-weight:400}
.preparation-modal textarea{min-height:72px;resize:vertical}
.preparation-modal input:focus,.preparation-modal select:focus,.preparation-modal textarea:focus{outline:0;border-color:#9acfb8;box-shadow:0 0 0 3px rgba(24,122,89,.08)}
.preparation-modal .modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.preparation-modal .recipe-row{display:grid;grid-template-columns:minmax(0,1.6fr) .7fr .8fr auto;gap:8px;align-items:end;margin-top:10px;padding:12px;background:#fbfcfd;border:1px solid #e7ebed;border-radius:9px}
.preparation-modal .recipe-row .forml{margin-top:0}
.preparation-modal .recipe-row .btn{min-height:36px}
.preparation-modal .modal-success{color:var(--acc-d);padding:10px 12px;border-left:3px solid var(--acc);background:#f4faf7;font-size:12.5px;line-height:1.5}
.preparation-modal .modal-warning{background:#fff9ed;border:1px solid #f1dfb8;color:#8b6517}
.preparation-modal .modal-error{background:#fff0ee;border:1px solid #f2cbc5;color:#9f4137}
.preparation-modal .modal-warning,.preparation-modal .modal-error{margin:12px 0;padding:10px 12px;border-radius:8px;line-height:1.45;font-size:12px}
.preparation-modal .modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:22px;padding-top:16px;border-top:1px solid #edf0f1}
.preparation-modal .modal-footer .btn:first-child{margin-left:auto}
@media(max-width:700px){.preparation-page>.panel{padding:20px 16px}.preparation-toolbar{display:block}.preparation-count{margin-top:8px}.preparation-modal{padding:22px 18px 20px!important}.preparation-modal .modal-grid,.preparation-modal .recipe-row{grid-template-columns:1fr}.preparation-modal .modal-footer{flex-wrap:wrap}.preparation-modal .modal-footer .btn{flex:1 1 100%}.preparation-modal .modal-footer .btn:first-child{margin-left:0}}
/* --- Ciclo de remediación (plan §6): accesibilidad estructural + responsive 375px --- */
.skip-link{position:absolute;left:-9999px;top:0;background:#187a59;color:#fff;padding:10px 16px;border-radius:0 0 8px 0;z-index:1000;font-size:13px}
.skip-link:focus{left:0;top:0}
#contenido:focus{outline:none}

/* PF-005: tablas encapsuladas — scroll propio del contenedor, nunca del documento */
.panel table,.hallazgo-detail table,.cmp table{display:block;max-width:100%;overflow-x:auto;white-space:normal}
.panel table tr,.cmp table tr{display:table-row;width:auto}
@media (max-width:767px){
  .panel table td,.panel table th{white-space:nowrap}
  .hdr{flex-wrap:wrap}
  .degradaciones-normativas{font-size:12px}
}
.inicio-action a, .dest{text-decoration:underline}

.small a,.small .link-secondary,.small > a{text-decoration:underline}

/* La interfaz se revela únicamente después de validar la sesión cloud. */
body.nivo-loading>*{visibility:hidden}
body.nivo-loading::before{content:"Validando acceso…";position:fixed;inset:0;display:grid;place-items:center;background:#f7f7f8;color:#5f6870;font:14px Inter,system-ui,sans-serif;visibility:visible}
