:root{
  --bg:#f4f7fb;--panel:#fff;--ink:#172033;--muted:#667085;--line:#dfe5ee;
  --brand:#155eef;--brand-dark:#0b2d58;--brand2:#0e9384;--danger:#d92d20;--warn:#dc6803;--ok:#079455;
  --shadow:0 2px 8px rgba(16,24,40,.04);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink)}
a{color:var(--brand);text-decoration:none;font-weight:650} a:hover{text-decoration:underline}
.topbar{background:linear-gradient(120deg,var(--brand-dark),var(--brand));color:white;padding:26px 32px 24px;display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.brand-title{font-size:27px;font-weight:800;margin:0 0 6px}.brand-subtitle{opacity:.88;margin:0;font-size:14px}.version{font-size:12px;background:rgba(255,255,255,.15);padding:5px 9px;border-radius:999px;margin-left:8px}.userbox{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.user-pill{background:rgba(255,255,255,.16);padding:9px 12px;border-radius:10px;font-weight:700}.user-role{display:block;font-size:12px;opacity:.85;font-weight:500}.logout-form{margin:0}.logout-form button{background:white;color:#344054;border-color:white}
.navbar{position:sticky;top:0;z-index:10;background:white;border-bottom:1px solid var(--line);padding:10px 24px;display:flex;gap:8px;flex-wrap:wrap;box-shadow:0 1px 0 rgba(16,24,40,.02)}
.navbar a,.navbar button,.btn,.btnlink,button{border:1px solid var(--line);background:white;padding:9px 13px;border-radius:9px;cursor:pointer;font-weight:700;color:#344054;text-decoration:none;font:inherit;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.navbar a.active,.btn.primary,.primary{background:var(--brand);border-color:var(--brand);color:white}.btn.success{background:var(--ok);border-color:var(--ok);color:white}.btn.warn{background:var(--warn);border-color:var(--warn);color:white}.btn.danger{background:white;border-color:var(--danger);color:var(--danger)}button:hover,.btn:hover,.btnlink:hover,.navbar a:hover{text-decoration:none;filter:brightness(.98)}
.container{max-width:1500px;margin:auto;padding:24px}.view-title{margin:4px 0 16px;font-size:28px}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:1.25fr .75fr}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.smallgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);margin-bottom:14px}.card.compact{padding:14px}.kpi strong{display:block;font-size:30px;margin-top:4px}.kpi .small,.small,.muted,small{font-size:13px;color:var(--muted)}h1,h2,h3{margin-top:0}h2{font-size:23px}.meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.meta>div{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px}.notice{border-left:4px solid var(--warn);background:#fff8eb;padding:12px 14px;border-radius:8px;margin:14px 0}.doc-note{background:#f0f9ff;border-left:4px solid #1570ef;padding:12px 14px;border-radius:8px;margin:14px 0}
.tablewrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;font-size:13px}th{position:sticky;top:0;background:#eef4ff;text-align:left;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap;color:#172033}td{padding:10px;border-bottom:1px solid #edf0f5;vertical-align:top;min-width:90px}tr:hover td{background:#fafcff}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}input,select,textarea{padding:9px 11px;border:1px solid #cfd7e3;border-radius:8px;background:white;min-width:150px;font:inherit;width:100%;box-sizing:border-box;margin:6px 0 12px}textarea{resize:vertical}.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-form select,.inline-form input{margin:0}.inline-form button{white-space:nowrap}.actions,.actions-row,.footer-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;align-items:center}.actions form,.actions-row form{margin:0}.actions input{min-width:240px;margin:0}
.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.alta{background:#fee4e2;color:#b42318}.media{background:#fef0c7;color:#b54708}.baja{background:#e0f2fe;color:#026aa2}.pendiente,.cambios-solicitados{background:#fee4e2;color:#b42318}.en-adaptación,.en-revisión{background:#fef0c7;color:#b54708}.cumple,.aprobado-y-vigente,.revisado-conforme{background:#dcfae6;color:#067647}.histórico{background:#eef1f5;color:#4b5563}.por-determinar,.cambios-aplicados{background:#e9d7fe;color:#6941c6}.borrador{background:#fff4cc;color:#b54708}.no-aplica{background:#eaecf0;color:#344054}.progress{height:10px;background:#eaecf0;border-radius:999px;overflow:hidden}.progress.large{height:14px}.progress span{display:block;height:100%;background:var(--brand2)}
.doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.doc-card{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.doc-card h3{margin:8px 0}.doc-meta{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.doc-code{font-size:18px;color:var(--brand);font-weight:850}.scope li{margin:7px 0}.section-head,.doc-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.chapter-nav,.chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.chapter-nav a,.chips a{display:inline-block;padding:7px 10px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--brand);background:white}.doc-shell{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:14px}.doc-main,.doc-side{min-width:0}.doc-header-status{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#eef4ff;padding:3px 7px;border-radius:6px}.doc-content,pre{background:#f8fafc;border:1px solid var(--line);padding:14px;border-radius:10px;white-space:pre-wrap;overflow:auto;line-height:1.55}.doc-editor{min-height:620px}.change-box{border:1px solid var(--line);border-radius:12px;padding:14px;margin:12px 0;background:white}.comment,.log,.change-mini{border:1px solid var(--line);border-left:4px solid #b2ccff;border-radius:10px;padding:12px;margin:10px 0;background:#f8fafc}.approval-stamp{border:2px solid var(--ok);background:#ecfdf3;color:#067647;border-radius:12px;padding:14px;margin:14px 0}.subtle-panel{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:14px}.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(120deg,var(--brand-dark),var(--brand))}.login-card{background:white;width:390px;border-radius:18px;padding:28px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.alert{background:#fee4e2;color:#b42318;padding:10px;border-radius:8px;margin-bottom:12px}.empty{color:var(--muted);font-style:italic}.searchbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.searchbar input{max-width:360px;margin:0}.document-order-form{gap:7px}.document-order-form label{white-space:nowrap}.document-order-form select{width:auto;min-width:245px}.document-order-help{margin:8px 0 16px}.print-only{display:none}.char-meta{grid-template-columns:repeat(4,minmax(0,1fr))}.element-card{border:1px solid var(--line);border-radius:12px;padding:14px;margin:12px 0;background:#fbfcfe}.element-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}.element-number{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:50%;background:#eef4ff;color:var(--brand);font-weight:850}.element-form{display:grid;grid-template-columns:180px 180px minmax(260px,1fr) auto;gap:12px;align-items:end}.element-form label{font-size:13px;font-weight:750;color:#344054}.element-form select,.element-form textarea{margin:5px 0 0}.element-form button{margin-bottom:0;min-height:42px}.element-evidence{min-width:0}
@media(max-width:1050px){.grid.two,.grid.three,.grid.four,.doc-shell{grid-template-columns:1fr}.doc-grid{grid-template-columns:1fr 1fr}.topbar{flex-direction:column}.userbox{justify-content:flex-start}.meta,.char-meta{grid-template-columns:1fr 1fr}.element-form{grid-template-columns:1fr 1fr}.element-evidence{grid-column:1/-1}}
@media(max-width:650px){.container{padding:14px}.doc-grid{grid-template-columns:1fr}.navbar{padding:8px}.topbar{padding:22px 18px}.grid.four,.meta,.char-meta,.element-form{grid-template-columns:1fr}.element-evidence{grid-column:auto}}
@media print{.topbar,.navbar,.actions,.footer-actions,.no-print,.doc-side{display:none!important}.container{max-width:none;padding:0}.card{box-shadow:none;border:none}.doc-shell{display:block}.doc-content,pre{border:none;background:white}.print-only{display:block}body{background:white}}

/* v5: document view aligned with the original v19 panel: compact controls + formatted document paper */
.btn-small, .navbar a.btn-small, button.btn-small{padding:7px 10px;border-radius:8px;font-size:13px;line-height:1.15;min-height:34px}
.doc-compact-head{padding:14px 20px;margin-bottom:12px}
.doc-head-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}
.doc-title-zone h1{font-size:30px;line-height:1.12;margin:8px 0 8px;max-width:980px}
.compact-status{margin:0;gap:8px;font-size:14px}.compact-status .code{font-size:14px}
.compact-actions{margin-top:0;justify-content:flex-end;max-width:640px}.compact-actions form{margin:0}.compact-actions input{height:34px;min-width:220px;padding:6px 9px;margin:0}.approve-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.approval-stamp.slim{padding:8px 10px;margin:10px 0 0;border-width:1px;font-size:12px;word-break:break-word}.characteristic-compact{padding:10px 16px;margin-bottom:12px}.characteristic-compact summary{cursor:pointer}.characteristic-body{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.characteristic-body p{margin:7px 0}
.approval-blockers{margin:0 0 16px;padding:14px 18px;border:1px solid #f0c36d;border-left:5px solid #d97706;border-radius:12px;background:#fff8e8;color:#713f12}.approval-blockers ul{margin:8px 0 0 20px}
.doc-shell{grid-template-columns:minmax(0,1fr) 330px;align-items:start}.doc-side .card{margin-bottom:10px}.side-compact{padding:13px}.side-compact h2{font-size:18px;margin-bottom:10px}.side-compact summary{cursor:pointer}.side-compact input,.side-compact select,.side-compact textarea{font-size:13px;padding:7px 9px;margin:4px 0 9px}.status-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.status-list>div{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:9px}
.document-paper{padding:0;overflow:hidden}.paper-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 18px;background:#f8fafc;border-bottom:1px solid var(--line)}.doc-rendered{background:white;padding:28px 34px;line-height:1.58;font-size:15px;color:#172033}.doc-rendered h1{font-size:25px;line-height:1.22;margin:0 0 18px;text-transform:none;color:#172033;border-bottom:2px solid #dfe5ee;padding-bottom:10px}.doc-rendered h2{font-size:19px;line-height:1.25;margin:26px 0 10px;color:#172033}.doc-rendered h3{font-size:16px;margin:20px 0 8px;color:#172033}.doc-rendered p{margin:8px 0 12px}.doc-rendered ul,.doc-rendered ol{margin:8px 0 14px 24px;padding:0}.doc-rendered li{margin:5px 0}.doc-rendered hr{border:none;border-top:1px solid var(--line);margin:20px 0}.doc-tablewrap{margin:12px 0 18px;border-radius:10px}.doc-table th{background:#eef4ff;color:#172033;font-weight:800}.doc-table td,.doc-table th{padding:9px 10px;vertical-align:top}.doc-table tr:hover td{background:inherit}.edit-panel summary{cursor:pointer}.edit-panel{padding:14px 18px}.doc-editor{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.45;background:#fffdf2}.change-box pre{font-size:13px;background:#f8fafc}
@media(max-width:1050px){.doc-head-compact{grid-template-columns:1fr}.compact-actions{justify-content:flex-start}.doc-shell{grid-template-columns:1fr}.doc-title-zone h1{font-size:26px}.doc-rendered{padding:22px 20px}.status-list{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.doc-title-zone h1{font-size:23px}.doc-rendered{font-size:14px;padding:18px 16px}.doc-rendered h1{font-size:21px}.doc-rendered h2{font-size:17px}.status-list{grid-template-columns:1fr}}
@media print{.doc-compact-head{display:block!important;border:none!important}.doc-title-zone h1{font-size:24px}.doc-rendered{padding:0;font-size:12.5px}.document-paper{border:none!important}.paper-toolbar{display:none}.doc-rendered h1{font-size:19px}.doc-rendered h2{font-size:15.5px}.doc-rendered h3{font-size:13.5px}.doc-table th,.doc-table td{padding:5px 6px;font-size:11.5px}.doc-tablewrap{border:1px solid #999}}

.gantt-table td{min-width:110px}.gantt-cell{min-width:240px!important;width:24%}.gantt-track{height:16px;background:#eef2f6;border-radius:999px;position:relative;min-width:220px}.gantt-bar{position:absolute;top:0;height:100%;border-radius:999px;background:#98a2b3;min-width:6px}.gantt-bar.no-iniciado{background:#98a2b3}.gantt-bar.en-preparación,.gantt-bar.en-revisión-de-la-asesora{background:#f79009}.gantt-bar.cambios-solicitados,.gantt-bar.bloqueado{background:#d92d20}.gantt-bar.aprobado,.gantt-bar.cerrado-con-evidencia{background:#12b76a}.plan-form{min-width:240px;padding:10px;background:#f8fafc;border:1px solid var(--line);border-radius:10px}.plan-form input,.plan-form select,.plan-form textarea{font-size:12px;margin:4px 0 8px;padding:7px}.plan-form button{width:100%;font-size:12px}
