:root { --ink:#172033; --muted:#687386; --line:#e7eaf0; --blue:#2457d6; --nav:#111a2e; --surface:#f6f8fb; }
* { box-sizing:border-box; }
html { font-size:16px; }
body { margin:0; color:var(--ink); background:var(--surface); font-family:Inter,Segoe UI,Arial,sans-serif; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:268px 1fr; }
.sidebar { position:sticky; top:0; height:100vh; padding:24px 18px; background:var(--nav); color:white; display:flex; flex-direction:column; }
.brand { display:flex; gap:12px; align-items:center; color:white; text-decoration:none; padding:4px 8px 28px; }
.brand-mark { width:42px; height:42px; border-radius:12px; background:linear-gradient(145deg,#3771ff,#78a2ff); display:grid; place-items:center; font-size:1.35rem; font-weight:800; }
.brand strong,.brand small { display:block; }
.brand strong { font-size:1.25rem; letter-spacing:.08em; }
.brand small { color:#9ca8bf; font-size:.68rem; }
.nav-heading { color:#70809e; text-transform:uppercase; font-size:.66rem; letter-spacing:.14em; margin:26px 12px 10px; }
.nav-entry { min-height:44px; display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:10px; color:#c9d2e3; text-decoration:none; margin:4px 0; font-size:.9rem; }
.nav-entry.active { background:#23304c; color:white; }
.nav-entry small { margin-left:auto; font-size:.62rem; color:#71809c; }
.nav-entry.disabled { cursor:not-allowed; opacity:.75; }
.sidebar-footer { margin-top:auto; color:#76849e; font-size:.75rem; padding:12px; }
.main-panel { min-width:0; display:flex; min-height:100vh; flex-direction:column; }
.topbar { height:76px; padding:0 42px; display:flex; align-items:center; gap:16px; background:white; border-bottom:1px solid var(--line); }
.topbar div { display:flex; flex-direction:column; }
.topbar .phase-badge { margin-left:auto; }
.eyebrow { color:var(--blue); font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; font-weight:800; }
.phase-badge { background:#edf2ff; color:#2854bd; padding:7px 11px; border-radius:999px; font-size:.75rem; font-weight:700; }
.menu-button { display:none; border:0; background:transparent; font-size:1.4rem; }
.content { width:min(1180px,100%); margin:0 auto; padding:52px 42px; flex:1; }
.hero { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; padding-bottom:48px; border-bottom:1px solid var(--line); }
.hero h1 { font-size:clamp(3.4rem,8vw,6.8rem); letter-spacing:-.07em; line-height:.9; margin:18px 0; }
.hero p { max-width:690px; font-size:1.12rem; color:var(--muted); line-height:1.7; }
.status-card { min-width:245px; display:flex; gap:12px; align-items:center; background:white; padding:16px 18px; border:1px solid var(--line); border-radius:14px; box-shadow:0 8px 28px rgba(23,32,51,.06); }
.status-card small,.status-card strong { display:block; }
.status-card small { color:var(--muted); }
.status-dot { width:10px; height:10px; border-radius:50%; background:#d04444; box-shadow:0 0 0 5px #fbeaea; }
.status-card.online .status-dot { background:#21a36a; box-shadow:0 0 0 5px #e2f6ed; }
.section-heading { display:flex; justify-content:space-between; align-items:end; padding:42px 0 20px; }
h2 { font-size:1.65rem; margin:8px 0 0; }
.foundation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.foundation-grid article { background:white; border:1px solid var(--line); padding:25px; border-radius:16px; }
.foundation-grid article>span { color:#9ba5b5; font-size:.75rem; font-weight:800; }
h3 { margin:18px 0 8px; font-size:1.05rem; }
article p { color:var(--muted); line-height:1.6; margin:0; }
.notice { display:flex; gap:18px; align-items:center; background:#fff9e8; border:1px solid #f3e6bb; color:#6a5520; margin-top:20px; padding:16px 20px; border-radius:12px; font-size:.86rem; }
footer { padding:20px 42px; color:#8b94a4; font-size:.78rem; }
@media (max-width:850px) { .app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:10;transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.menu-button{display:block}.topbar,.content{padding-left:24px;padding-right:24px}.hero{align-items:flex-start;flex-direction:column}.foundation-grid{grid-template-columns:1fr}.status-card{width:100%}.notice{align-items:flex-start;flex-direction:column} }
.page-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:28px; }
.page-heading h1 { margin:8px 0; font-size:2.2rem; }
.page-heading p,.section-title p { margin:0; color:var(--muted); }
.page-heading.compact { align-items:center; }
.data-card,.form-card { background:white; border:1px solid var(--line); border-radius:16px; box-shadow:0 8px 28px rgba(23,32,51,.04); }
.data-card { overflow:hidden; }
.data-card th { padding:15px 20px; color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; background:#f9fafc; }
.data-card td { padding:17px 20px; }
.cell-description { display:block; color:var(--muted); margin-top:3px; }
.system-tag,.state-tag { display:inline-block; border-radius:999px; padding:4px 8px; font-size:.68rem; font-weight:700; }
.system-tag { margin-left:8px; background:#edf2ff; color:#2854bd; }
.state-tag.active { background:#e2f6ed; color:#15734a; }
.state-tag.inactive { background:#f0f1f3; color:#687386; }
.admin-form { display:grid; gap:18px; }
.form-card { padding:26px; }
.form-card h2 { font-size:1.1rem; margin:0 0 20px; }
.section-title { display:flex; justify-content:space-between; align-items:start; gap:20px; }
.permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px; }
.permission-option { display:flex; gap:12px; padding:15px; border:1px solid var(--line); border-radius:12px; cursor:pointer; }
.permission-option input { margin-top:4px; }
.permission-option strong,.permission-option small,.permission-option code { display:block; }
.permission-option small { color:var(--muted); margin:3px 0; }
.permission-option code { color:#65708a; font-size:.68rem; }
.form-actions { display:flex; justify-content:flex-end; gap:10px; }
@media (max-width:700px) { .page-heading{align-items:flex-start;flex-direction:column}.permission-grid{grid-template-columns:1fr} }
.filter-bar { display:grid; grid-template-columns:minmax(220px,2fr) 1fr 1fr auto; gap:10px; margin-bottom:18px; }
.choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.form-hint { color:var(--muted); margin-top:-10px; }
.pager { display:flex; justify-content:space-between; align-items:center; margin-top:18px; color:var(--muted); font-size:.85rem; }
.pager div { display:flex; gap:8px; }
@media (max-width:850px) { .filter-bar{grid-template-columns:1fr 1fr}.choice-grid{grid-template-columns:1fr 1fr} }
@media (max-width:560px) { .filter-bar,.choice-grid{grid-template-columns:1fr}.pager{align-items:flex-start;flex-direction:column;gap:10px} }
.auth-page{min-height:100vh;display:grid;place-items:center;background:#eef2f8;padding:20px}.auth-card{width:min(430px,100%);background:white;padding:36px;border-radius:18px;box-shadow:0 20px 60px rgba(20,30,55,.12)}.auth-card h1{margin:20px 0 5px}.auth-card p{color:var(--muted)}

/* Fase 6C: cronograma y Gantt básico */
.gantt-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px rgba(23,32,51,.04);overflow:hidden}.gantt-scroll{overflow:auto}.gantt-board{min-width:calc(390px + var(--timeline-width))}.gantt-row{display:grid;grid-template-columns:390px var(--timeline-width);min-height:62px;border-bottom:1px solid var(--line)}.gantt-row:last-child{border-bottom:0}.gantt-info{position:sticky;left:0;z-index:2;background:#fff;padding:12px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:4px}.gantt-info>div{display:flex;align-items:center;gap:8px}.gantt-info>span,.gantt-header .gantt-info span{font-size:.75rem;color:var(--muted)}.gantt-header{min-height:70px;position:sticky;top:0;z-index:4}.gantt-header .gantt-info{background:#f9fafc}.gantt-kind{font-size:.58rem;font-weight:800;letter-spacing:.08em;border-radius:999px;padding:3px 6px;background:#eef2f7;color:#64718a}.gantt-kind.fase{background:#e9efff;color:#2457d6}.gantt-kind.tarea{background:#e5f6ef;color:#18734d}.gantt-kind.hito{background:#fff1d6;color:#91610a}.gantt-scale,.gantt-track{position:relative;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--week-width) - 1px),#eef0f4 calc(var(--week-width) - 1px),#eef0f4 var(--week-width))}.gantt-scale{background-color:#f9fafc;min-height:70px}.gantt-scale span{position:absolute;top:12px;font-size:.72rem;font-weight:700;color:#526078;border-left:1px solid #b9c1cf;padding-left:6px}.gantt-scale small{position:absolute;bottom:8px;left:8px;color:var(--muted)}.gantt-scale small.end{left:auto;right:8px}.gantt-track{min-height:61px}.gantt-bar{position:absolute;top:18px;height:26px;min-width:4px;border-radius:7px;background:#b8c9f7;overflow:hidden;box-shadow:0 2px 6px rgba(23,32,51,.12)}.gantt-bar>span{display:block;height:100%;background:#3569e8}.gantt-bar b{position:absolute;left:7px;top:4px;font-size:.67rem;color:#10224e}.gantt-bar.tarea{background:#bce6d4}.gantt-bar.tarea>span{background:#27a56d}.gantt-bar.hito{width:14px!important;min-width:14px;transform:rotate(45deg);border-radius:3px;background:#e8aa37}.gantt-bar.hito>span,.gantt-bar.hito b{display:none}.gantt-bar.blocked{background:#f2c6c6}.gantt-bar.blocked>span{background:#c84c4c}.gantt-no-date{position:absolute;top:22px;left:12px;color:#9aa3b2;font-size:.72rem}.gantt-info details{font-size:.72rem}.gantt-info summary{color:var(--blue);cursor:pointer}.gantt-date-form{display:flex;gap:5px;flex-wrap:wrap;padding-top:6px}.gantt-date-form input{max-width:125px;border:1px solid var(--line);border-radius:5px;padding:3px;font-size:.7rem}@media(max-width:700px){.gantt-board{min-width:calc(300px + var(--timeline-width))}.gantt-row{grid-template-columns:300px var(--timeline-width)}}
/* Fase 6D: calendario unificado */
.calendar-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:20px;box-shadow:0 8px 28px rgba(23,32,51,.04)}.calendar-filters label{display:block;color:var(--muted);font-size:.72rem;font-weight:700;margin-bottom:5px}.calendar-filter-action{display:flex;align-items:end;gap:8px}.calendar-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:auto;box-shadow:0 8px 28px rgba(23,32,51,.04)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));min-width:945px}.calendar-weekdays strong{padding:12px;text-align:center;background:#f8f9fc;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;border-right:1px solid var(--line)}.calendar-day{min-height:145px;padding:9px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff}.calendar-day.outside{background:#fafbfc;color:#a2a9b5}.calendar-day.today{box-shadow:inset 0 0 0 2px #4c77e6}.calendar-day header{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.calendar-day header span{font-weight:800}.calendar-day header small{color:var(--muted);text-transform:uppercase}.calendar-chip{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px 0;padding:5px 7px;border-left:3px solid #5275cc;border-radius:5px;background:#edf2ff;color:#253c72;text-decoration:none;font-size:.68rem}.calendar-chip time{font-weight:800;margin-right:5px}.source-hito,.source-cotizacion_vigencia{border-color:#d49a2c;background:#fff7e5;color:#70500f}.source-tarea_inicio,.source-tarea_vencimiento{border-color:#28a46c;background:#e9f8f1;color:#165f42}.source-recordatorio_crm,.source-recordatorio_proyecto{border-color:#ca4f59;background:#fff0f1;color:#7b2930}.source-seguimiento_crm,.source-actividad_proyecto{border-color:#7956c7;background:#f3efff;color:#4c3387}.calendar-more{display:block;color:var(--muted);margin:5px}.calendar-agenda{margin-top:28px}.agenda-day{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;overflow:hidden}.agenda-day>header{display:flex;justify-content:space-between;padding:13px 18px;background:#f8f9fc;border-bottom:1px solid var(--line);text-transform:capitalize}.agenda-day>header span{color:var(--muted);font-size:.78rem}.agenda-day article{display:grid;grid-template-columns:105px 1fr;gap:18px;padding:16px 18px;border-bottom:1px solid var(--line)}.agenda-day article:last-child{border-bottom:0}.agenda-time{font-size:.78rem;font-weight:800;color:var(--blue)}.agenda-day h3{margin:6px 0 4px}.agenda-day h3 a{color:var(--ink);text-decoration:none}.agenda-day p{margin:0 0 4px;color:var(--muted)}.agenda-day small{color:var(--muted)}@media(max-width:900px){.calendar-filters{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.calendar-filters{grid-template-columns:1fr}.agenda-day article{grid-template-columns:1fr;gap:5px}}
/* Fase 7A */
.finance-filter{grid-template-columns:minmax(230px,2fr) repeat(3,minmax(150px,1fr)) repeat(2,minmax(140px,1fr)) auto}.finance-total{font-weight:800;background:#f4f7ff;color:#234fae}.form-text{display:block;margin-top:5px}@media(max-width:1050px){.finance-filter{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.finance-filter{grid-template-columns:1fr}}

/* Navegación lateral larga y contraíble */
.app-shell{transition:grid-template-columns .2s ease}.sidebar{min-width:0;transition:padding .2s ease}.sidebar nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:#465572 transparent}.sidebar nav::-webkit-scrollbar{width:7px}.sidebar nav::-webkit-scrollbar-thumb{background:#465572;border-radius:10px}.sidebar nav::-webkit-scrollbar-track{background:transparent}.sidebar .brand,.sidebar-footer{flex-shrink:0}.menu-button{display:block}.app-shell.sidebar-collapsed{grid-template-columns:78px 1fr}.app-shell.sidebar-collapsed .sidebar{padding-left:10px;padding-right:10px}.app-shell.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.app-shell.sidebar-collapsed .brand>span:last-child,.app-shell.sidebar-collapsed .nav-heading{display:none}.app-shell.sidebar-collapsed .nav-entry{justify-content:center;gap:0;padding-left:8px;padding-right:8px;font-size:0}.app-shell.sidebar-collapsed .nav-entry>span{font-size:1.05rem}.app-shell.sidebar-collapsed .sidebar-footer{font-size:0;text-align:center;padding:8px}.app-shell.sidebar-collapsed .sidebar-footer::after{content:"BOS";font-size:.68rem}@media(max-width:850px){.app-shell.sidebar-collapsed{grid-template-columns:1fr}.app-shell.sidebar-collapsed .sidebar{padding:24px 18px}.app-shell.sidebar-collapsed .brand{justify-content:flex-start}.app-shell.sidebar-collapsed .brand>span:last-child,.app-shell.sidebar-collapsed .nav-heading{display:block}.app-shell.sidebar-collapsed .nav-entry{justify-content:flex-start;gap:11px;padding:10px 12px;font-size:.9rem}.app-shell.sidebar-collapsed .sidebar-footer{font-size:.75rem;text-align:left;padding:12px}.app-shell.sidebar-collapsed .sidebar-footer::after{content:""}}
/* Fase 9A1: dashboard operativo */
.dashboard-heading{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:24px}.dashboard-heading h1{font-size:clamp(2.4rem,5vw,4.4rem);letter-spacing:-.045em;margin:8px 0}.dashboard-heading p{color:var(--muted);font-size:1.05rem;margin:0}.dashboard-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:14px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:0 8px 28px rgba(23,32,51,.04);margin-bottom:22px}.dashboard-filters label{display:block;color:var(--muted);font-size:.72rem;font-weight:700;margin-bottom:5px}.dashboard-filter-actions{display:flex;gap:6px;align-items:center}.dashboard-validation{grid-column:1/-1;margin:0}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px}.dashboard-metrics article,.dashboard-source-error{min-height:142px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 8px 28px rgba(23,32,51,.04);display:flex;flex-direction:column}.dashboard-metrics article>span{color:var(--muted);font-size:.78rem;font-weight:700}.dashboard-metrics article>strong{font-size:2.2rem;line-height:1;margin:17px 0 9px}.dashboard-metrics article>small{color:var(--muted);line-height:1.35}.dashboard-metrics .metric-danger{border-top:3px solid #d75a61}.dashboard-metrics .metric-warning{border-top:3px solid #d49a2c}.dashboard-source-error{border-style:dashed;justify-content:center}.dashboard-source-error span{color:var(--muted);font-size:.8rem;margin-top:5px}.dashboard-empty{background:#fff;border:1px dashed #cbd2de;border-radius:16px;padding:28px;text-align:center;color:var(--muted)}.dashboard-empty strong{display:block;color:var(--ink);margin-bottom:5px}.dashboard-empty p{margin:0}.dashboard-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.dashboard-panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 28px rgba(23,32,51,.04)}.dashboard-panel>header{display:flex;justify-content:space-between;align-items:end;gap:15px;padding:20px;border-bottom:1px solid var(--line)}.dashboard-panel h2{font-size:1.2rem;margin:5px 0 0}.dashboard-panel>header>a{font-size:.78rem;text-decoration:none}.dashboard-list>a{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.dashboard-list>a:last-child{border-bottom:0}.dashboard-list>a:hover{background:#f9fbff}.dashboard-list strong,.dashboard-list small{display:block}.dashboard-list small{color:var(--muted);margin-top:3px}.dashboard-list time{color:var(--muted);font-size:.72rem;text-align:right}.dashboard-item-icon{width:9px;height:9px;border-radius:50%;background:#4b75db}.dashboard-item-icon.alert-bloqueado,.dashboard-item-icon.reminder{background:#c94e58}.dashboard-item-icon.alert-retrasado{background:#d97652}.dashboard-item-icon.alert-proximo,.dashboard-item-icon.milestone{background:#d6a033}.dashboard-item-icon.task{background:#2aa270}.dashboard-item-icon.action{background:#5275cc}.dashboard-item-icon.activity,.dashboard-item-icon.crm{background:#7956c7}.dashboard-list-empty{padding:24px 20px;color:var(--muted);margin:0}@media(max-width:1100px){.dashboard-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.dashboard-heading{align-items:flex-start;flex-direction:column}.dashboard-filters{grid-template-columns:repeat(2,1fr)}.dashboard-filter-actions{align-self:end}.dashboard-metrics{grid-template-columns:repeat(2,1fr)}.dashboard-lists{grid-template-columns:1fr}}@media(max-width:560px){.dashboard-filters,.dashboard-metrics{grid-template-columns:1fr}.dashboard-filter-actions{align-self:auto}.dashboard-list>a{grid-template-columns:10px minmax(0,1fr)}.dashboard-list time{grid-column:2;text-align:left}}
/* Fase 9A2: dashboard comercial y financiero */
.dashboard-metrics-secondary{margin-top:1rem}.dashboard-commercial-financial{margin-top:1rem}.dashboard-currency-strip{display:flex;gap:.75rem;flex-wrap:wrap;padding:.85rem 1rem;border-bottom:1px solid #e7ebf2;background:#f8faff}.dashboard-currency-strip span{display:flex;flex-direction:column;min-width:9rem}.dashboard-currency-strip small,.dashboard-finance-summary small,.dashboard-flow-grid small{color:#66738a;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.dashboard-currency-strip strong{font-size:.95rem;color:#17233b}.dashboard-finance-summary{display:grid;gap:.5rem;padding:.85rem 1rem;border-bottom:1px solid #e7ebf2}.dashboard-finance-summary>div{display:grid;grid-template-columns:minmax(4rem,.55fr) repeat(3,minmax(7rem,1fr));align-items:center;gap:.75rem}.dashboard-finance-summary span{display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.dashboard-flow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;padding:1rem;border-bottom:1px solid #e7ebf2}.dashboard-flow-grid article{display:grid;grid-template-columns:1fr auto;gap:.25rem .75rem;border:1px solid #e1e6ef;border-radius:.75rem;padding:.8rem;background:#fafbfe}.dashboard-flow-grid article>span{grid-column:1/-1;color:#1755d1;font-weight:700}.dashboard-flow-grid article strong{text-align:right;font-variant-numeric:tabular-nums}.dashboard-panel-wide{grid-column:1/-1}.dashboard-item-icon.finance{background:#e7f7ef;border-color:#b8e7ce}.dashboard-item-icon.finance:after{content:'$';color:#147a4b;font-weight:700}@media(max-width:700px){.dashboard-finance-summary>div{grid-template-columns:1fr 1fr}.dashboard-finance-summary>div>strong{grid-column:1/-1}.dashboard-flow-grid{grid-template-columns:1fr}}
/* Fase 9B1: destinos consultivos */
.detail-grid{margin-bottom:0}.detail-grid dt{color:#66738a;font-weight:600;padding-top:.45rem}.detail-grid dd{padding-top:.45rem;overflow-wrap:anywhere}.preserve-lines{white-space:pre-line}.detail-stat-list{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.detail-stat-list span{display:flex;flex-direction:column;border:1px solid #e4e9f1;border-radius:.7rem;padding:.8rem;background:#fafbfe}.detail-stat-list strong{font-size:1.35rem;color:#17233b}.detail-stat-list small{color:#66738a}.detail-links{display:grid;grid-template-columns:minmax(6rem,.7fr) 1fr;gap:.6rem;margin:0}.detail-links dt{color:#66738a}.detail-links dd{margin:0;overflow-wrap:anywhere}@media(max-width:576px){.detail-stat-list{grid-template-columns:1fr}.detail-links{grid-template-columns:1fr}.detail-links dd{margin-bottom:.45rem}}
/* Fase 9B2: búsqueda relacional autorizada */
.topbar-search{margin-left:auto;display:flex;align-items:center;width:min(340px,32vw);border:1px solid var(--line);border-radius:999px;background:#f8faff;overflow:hidden}.topbar-search input{width:100%;min-width:0;border:0;background:transparent;padding:.55rem .2rem .55rem .9rem;outline:0;font-size:.82rem;color:var(--ink)}.topbar-search input::placeholder{color:#7d899d}.topbar-search button{border:0;background:transparent;color:#2854bd;font-size:1.15rem;padding:.35rem .75rem}.search-heading{margin-bottom:20px}.search-page-form{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 8px 28px rgba(23,32,51,.04);margin-bottom:20px}.search-page-form>label{display:block;color:var(--muted);font-size:.72rem;font-weight:700;margin-bottom:6px}.search-page-form>div:first-of-type{display:grid;grid-template-columns:1fr auto;gap:8px}.search-page-form .alert{margin:12px 0 0}.search-summary{color:var(--muted);font-size:.84rem;margin:8px 2px 16px}.search-summary strong{color:var(--ink)}.search-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.search-section{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 28px rgba(23,32,51,.04)}.search-section>header{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;background:#f9fafc;border-bottom:1px solid var(--line)}.search-section h2{font-size:1.05rem;margin:0}.search-section>header span{color:var(--muted);font-size:.72rem}.search-results>a{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.search-results>a:last-child{border-bottom:0}.search-results>a:hover{background:#f9fbff}.search-results strong,.search-results small{display:block}.search-results small{color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.search-result-mark{width:9px;height:9px;border-radius:50%;background:#4b75db}.search-section-state,.search-empty{color:var(--muted);margin:0;padding:24px 20px}.search-empty{background:#fff;border:1px dashed #cbd2de;border-radius:16px;text-align:center}.search-empty strong{display:block;color:var(--ink);margin-bottom:5px}.search-empty p{margin:0}@media(max-width:900px){.topbar-search{width:min(260px,30vw)}.search-sections{grid-template-columns:1fr}}@media(max-width:650px){.topbar-search{display:none}.search-page-form>div:first-of-type{grid-template-columns:1fr}.search-page-form button{width:100%}}
/* Fase 10B1B: errores operativos */
.error-page{min-height:100vh;margin:0;background:radial-gradient(circle at top right,#e8efff 0,transparent 36%),var(--surface);display:grid;place-items:center;padding:28px}.error-shell{width:min(680px,100%)}.error-brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;margin:0 0 22px 8px}.error-brand strong,.error-brand small{display:block}.error-brand strong{font-size:1.15rem;letter-spacing:.08em}.error-brand small{color:var(--muted);font-size:.68rem}.error-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(30px,7vw,58px);box-shadow:0 24px 70px rgba(23,32,51,.12)}.error-code{position:absolute;right:24px;top:10px;color:#edf1f8;font-size:clamp(5.5rem,18vw,9rem);font-weight:900;line-height:1;letter-spacing:-.08em;user-select:none}.error-card .eyebrow,.error-card h1,.error-message,.error-reference,.error-actions{position:relative}.error-card h1{max-width:500px;margin:14px 0 16px;font-size:clamp(2rem,6vw,3.5rem);letter-spacing:-.04em}.error-message{max-width:520px;color:var(--muted);font-size:1.05rem;line-height:1.65}.error-reference{margin:24px 0 0;color:var(--muted);font-size:.78rem}.error-reference code{overflow-wrap:anywhere;color:#526078}.error-actions{display:flex;gap:10px;margin-top:30px}@media(max-width:520px){.error-page{padding:18px}.error-brand{margin-left:2px}.error-card{padding:30px 24px}.error-code{right:18px;font-size:5.2rem}.error-message{font-size:.96rem}}