:root{--bg:#f4f6f8;--panel:#fff;--ink:#17212b;--muted:#697684;--line:#e4e8ec;--accent:#315c4b;--accent2:#e8f0ec;--warn:#a56612;--danger:#a23a3a;--radius:18px;--shadow:0 10px 30px rgba(23,33,43,.06)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}.shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#17251f;color:#edf4f0;padding:26px 18px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px}.brandmark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#d9e9e1;color:#173d2d;font-weight:800}.brand small{display:block;color:#9fb4aa;margin-top:2px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:11px 12px;border-radius:10px;text-decoration:none;color:#cbd8d2}.sidebar nav a:hover{background:#233a30;color:#fff}.sidefoot{margin-top:auto;border-top:1px solid #30453c;padding:16px 8px 0;display:flex;justify-content:space-between;font-size:13px;color:#adc0b7}.main{margin-left:250px;width:calc(100% - 250px);padding:30px 38px 60px}.topbar{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px}.topbar small{color:var(--muted)}h1{font-size:30px;margin:4px 0 0}.pill,.badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--accent2);color:var(--accent);font-size:12px;font-weight:700}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.kpi{grid-column:span 3}.kpi strong{display:block;font-size:30px;margin-top:10px}.kpi span,.muted{color:var(--muted)}.wide{grid-column:span 8}.narrow{grid-column:span 4}.full{grid-column:1/-1}.progress{height:10px;background:#edf0f2;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);border-radius:99px}.list{display:grid;gap:10px;margin-top:14px}.row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.btn{border:0;border-radius:11px;padding:11px 15px;background:var(--accent);color:white;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.btn.secondary{background:#edf1ef;color:#294438}.btn.danger{background:#f6e9e9;color:var(--danger)}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:16px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}.table td{padding:13px 10px;border-bottom:1px solid var(--line);font-size:14px}.status-low{color:var(--accent)}.status-medium{color:var(--warn)}.status-high{color:var(--danger)}label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px}input,select,textarea{width:100%;border:1px solid #d7dde2;border-radius:10px;padding:11px 12px;background:#fff;font:inherit}textarea{min-height:90px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.modal{display:none;position:fixed;inset:0;background:rgba(10,20,16,.38);z-index:10;place-items:center}.modal.open{display:grid}.modalbox{background:#fff;width:min(620px,92vw);max-height:88vh;overflow:auto;border-radius:20px;padding:24px;box-shadow:0 30px 70px rgba(0,0,0,.2)}.toast{position:fixed;right:24px;bottom:24px;background:#17251f;color:white;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:none}.hero{background:linear-gradient(135deg,#173d2d,#315c4b);color:#fff;border-radius:22px;padding:28px}.hero p{color:#cfe0d8;max-width:680px}.actions{display:flex;gap:9px;flex-wrap:wrap}.note{padding:13px 15px;border-radius:12px;background:#f7f2e8;color:#6c4a18;font-size:13px}.login{min-height:100vh;display:grid;place-items:center;background:#eef3f0}.loginbox{width:min(430px,92vw);background:white;padding:32px;border-radius:22px;box-shadow:var(--shadow)}@media(max-width:900px){.sidebar{width:78px}.brand div,.sidebar nav a{font-size:0}.sidebar nav a:before{content:'•';font-size:20px}.sidefoot{display:none}.main{margin-left:78px;width:calc(100% - 78px);padding:24px}.kpi,.wide,.narrow{grid-column:1/-1}}@media(max-width:600px){.sidebar{display:none}.main{margin:0;width:100%;padding:18px}.formgrid{grid-template-columns:1fr}.topbar{align-items:start;gap:12px}.kpi{grid-column:1/-1}}

.alert{padding:12px 14px;margin:12px 0;border-radius:10px;background:#fff3cd;color:#664d03;border:1px solid #ffecb5}

/* AI Governance - Risk assessment component v0.1.3 */
.governance-note{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;border:1px solid #eadfc7;border-radius:14px;background:#fbf7ee;color:#73501d;margin-bottom:20px}.governance-note-icon{width:28px;height:28px;flex:0 0 28px;border-radius:9px;display:grid;place-items:center;background:#f1e5ca;color:#855b1d;font-weight:800;font-family:Georgia,serif}.governance-note strong{display:block;font-size:13px;color:#654514;margin:0 0 2px}.governance-note p{margin:0;font-size:13px;line-height:1.45;color:#7a5b2d}.risk-list{display:grid;gap:20px}.risk-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px 26px;box-shadow:var(--shadow)}.risk-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.risk-card-heading{min-width:0}.risk-context{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:12px}.context-chip{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:750;line-height:1}.context-tool{background:#e7f1ec;color:#275641}.context-department{background:#f0f3f5;color:#52616d}.context-separator{color:#a8b0b6;font-size:12px}.risk-card h2{margin:0;font-size:20px;line-height:1.3;letter-spacing:-.01em}.risk-card-subtitle{margin:5px 0 0;color:var(--muted);font-size:13px}.risk-overall{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex:0 0 auto}.risk-overall-label,.meta-label,.section-eyebrow{font-size:11px;line-height:1.2;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8a949d}.risk-badge,.risk-mini-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;font-weight:800;white-space:nowrap}.risk-badge{padding:9px 13px;font-size:13px}.risk-mini-badge{padding:6px 9px;font-size:12px}.risk-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}.risk-badge-low,.risk-mini-low{background:#e7f1ec;color:#295c45}.risk-badge-medium,.risk-mini-medium{background:#fff2d9;color:#925c0c}.risk-badge-high,.risk-mini-high{background:#fbe8e8;color:#963b3b}.risk-badge-critical,.risk-mini-critical{background:#f5dddd;color:#791f1f}.risk-badge-neutral,.risk-mini-neutral{background:#edf0f2;color:#56636d}.risk-divider{height:1px;background:var(--line);margin:21px 0}.risk-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.risk-dimension{min-width:0;padding:15px 16px;border:1px solid #e8ecef;border-radius:14px;background:#fafbfb}.risk-dimension-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.risk-dimension-label{font-size:13px;font-weight:800;color:#33414b;line-height:1.3}.risk-dimension-help{display:block;margin-top:7px;color:#7a8690;font-size:12px;line-height:1.4}.risk-explanation{margin-top:18px;padding:17px 18px;background:#f7f9f8;border-radius:14px;border-left:3px solid #b7cec2}.risk-explanation p{margin:7px 0 0;color:#52606b;line-height:1.55;font-size:14px;max-width:1100px}.risk-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:19px;padding-top:18px;border-top:1px solid var(--line)}.risk-card-footer>div{display:flex;flex-direction:column;gap:5px}.ruleset-code{font-size:13px;color:#2e3d47;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.assessment-type{font-size:12px;color:#7c8891;background:#f1f3f4;padding:6px 9px;border-radius:8px}.empty-state{text-align:center;padding:46px 28px}.empty-state-icon{width:48px;height:48px;margin:0 auto 14px;border-radius:14px;display:grid;place-items:center;background:var(--accent2);color:var(--accent);font-weight:900}.empty-state h2{font-size:20px;margin:0 0 7px}.empty-state p{color:var(--muted);max-width:520px;margin:0 auto 18px;line-height:1.5}
@media(max-width:900px){.risk-card-header{gap:18px}.risk-dimensions{grid-template-columns:1fr}.risk-overall{align-items:flex-start}.risk-card-header{flex-direction:column}.risk-divider{margin:17px 0}.risk-card-footer{align-items:flex-start}}
@media(max-width:600px){.risk-card{padding:19px}.risk-card h2{font-size:18px}.risk-card-footer{flex-direction:column}.assessment-type{align-self:flex-start}.governance-note{padding:13px}.risk-dimension-top{align-items:flex-start;flex-direction:column;gap:8px}}

/* ===== AI Governance v0.2 design system ===== */
.sidebar nav a.active{background:#233f34;color:#fff;font-weight:700}.navlabel{display:block;margin:18px 12px 6px;color:#71897d;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.section-head{margin-bottom:18px}.section-head.inline{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.section-head h2{font-size:20px;margin:0 0 5px}.section-head h3{margin:0 0 5px}.section-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.badge-light{background:rgba(255,255,255,.9);color:#275641}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:800;white-space:nowrap}.status-badge.success{background:#e7f1ec;color:#285c44}.status-badge.warning{background:#fff2d9;color:#925c0c}.status-badge.danger{background:#fbe8e8;color:#963b3b}.status-badge.neutral{background:#edf0f2;color:#56636d}.btn.ghost{background:transparent;color:#52616d;border:1px solid var(--line)}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal-large{width:min(850px,94vw)}.formgrid.three{grid-template-columns:repeat(3,1fr)}.table-wrap{overflow:auto}.table thead th{background:#fbfcfc}.cell-sub{display:block;color:var(--muted);font-weight:400;margin-top:4px}.entity{display:flex;align-items:center;gap:10px}.entity-icon{width:34px;height:34px;border-radius:10px;background:var(--accent2);display:grid;place-items:center;color:var(--accent);font-size:11px;font-weight:900}.entity small{display:block;color:var(--muted);margin-top:2px}.hero-dashboard{display:flex;align-items:center;justify-content:space-between;gap:30px}.hero-dashboard>div:first-child{max-width:780px}.readiness-ring{--size:118px;width:var(--size);height:var(--size);border-radius:50%;display:grid;place-items:center;background:conic-gradient(#d7e8df calc(var(--value)*1%),rgba(255,255,255,.17) 0);position:relative;flex:0 0 auto}.readiness-ring:after{content:"";position:absolute;inset:9px;border-radius:50%;background:#285747}.readiness-ring>div{z-index:1;display:grid;text-align:center}.readiness-ring strong{font-size:25px}.readiness-ring span{font-size:11px;color:#cfe0d8}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}.metric{padding:19px}.metric span,.metric small{color:var(--muted)}.metric strong{display:block;font-size:30px;margin:7px 0 2px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:18px;margin-top:18px}.stage-list{display:grid}.stage-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,1fr) 48px;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line);text-decoration:none}.stage-row:first-child{border-top:0}.stage-row div:first-child{display:grid;gap:3px}.stage-row span{color:var(--muted);font-size:12px}.stage-progress{height:7px;background:#edf0f2;border-radius:99px;overflow:hidden}.stage-progress i{display:block;height:100%;background:var(--accent);border-radius:99px}.stage-row>b{text-align:right}.action-list{display:grid;gap:9px}.action-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;text-decoration:none;background:#fbfcfc}.action-item strong{font-size:13px;line-height:1.35}.priority{font-size:10px;font-weight:900;text-transform:uppercase;border-radius:999px;padding:5px 7px}.priority-alta{background:#fbe8e8;color:#963b3b}.priority-media{background:#fff2d9;color:#925c0c}.priority-baja{background:#e7f1ec;color:#285c44}.arrow{color:var(--muted)}.controls-block{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.control-list{display:grid;gap:10px}.control-row{display:grid;grid-template-columns:1fr 180px;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fbfcfc}.control-row p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.control-status{margin:0}.policy-layout,.evidence-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:18px}.policy-editor{min-height:500px;line-height:1.75;padding:18px;background:#fcfdfd}.policy-editor[readonly]{background:#f7f9f8}.check-list{display:grid;gap:12px;margin-top:14px}.check-list span{padding-left:24px;position:relative;color:#52616d;font-size:13px;line-height:1.5}.check-list span:before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:900}.people-grid{display:grid;gap:12px}.person-card{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:16px;padding:15px;border:1px solid var(--line);border-radius:14px}.person-avatar{width:42px;height:42px;border-radius:13px;background:var(--accent2);color:var(--accent);display:grid;place-items:center;font-weight:900}.person-main h3{margin:0 0 3px;font-size:15px}.person-main p,.person-main small{margin:0;color:var(--muted);font-size:12px}.person-status{display:grid;justify-items:end;gap:5px}.person-status strong{font-size:18px}.evidence-list{display:grid;gap:10px}.evidence-item{display:flex;gap:13px;padding:14px;border:1px solid var(--line);border-radius:13px}.evidence-icon{width:34px;height:34px;border-radius:10px;background:var(--accent2);color:var(--accent);display:grid;place-items:center;font-weight:900}.evidence-item h3{font-size:14px;margin:7px 0 3px}.evidence-item p{margin:0;color:var(--muted);font-size:12px}.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:14px 1fr;gap:10px;padding:0 0 16px}.timeline-item i{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:5px;box-shadow:0 0 0 4px var(--accent2)}.timeline-item div{display:grid;gap:3px}.timeline-item strong{font-size:13px}.timeline-item span{font-size:11px;color:var(--muted)}.alert-success{background:#e7f1ec!important;color:#285c44!important;border-color:#cfe2d8!important}.alert-danger{background:#fbe8e8!important;color:#963b3b!important;border-color:#f2caca!important}.upgrade-card{max-width:760px;margin:auto}.upgrade-card h2{font-size:26px;margin-bottom:8px}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.policy-layout,.evidence-layout{grid-template-columns:1fr}.person-card{grid-template-columns:auto 1fr auto}.person-action{grid-column:2/-1}.formgrid.three{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.hero-dashboard{align-items:flex-start}.readiness-ring{display:none}.kpi-grid{grid-template-columns:1fr 1fr}.stage-row{grid-template-columns:1fr 42px}.stage-progress{grid-column:1/-1;grid-row:2}.section-head.inline{flex-direction:column}.control-row{grid-template-columns:1fr}.person-card{grid-template-columns:auto 1fr}.person-status,.person-action{grid-column:2;justify-items:start}.formgrid.three{grid-template-columns:1fr}}

/* ===== Professional evidence dossier v0.2.3 ===== */
.print-only{display:none}.report-preview-banner{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:15px;border:1px solid #dfe8e3;background:#f7faf8;border-radius:14px}.report-preview-mark{width:42px;height:42px;border-radius:12px;background:#173d2d;color:#fff;display:grid;place-items:center;font-weight:900}.report-preview-banner div:last-child{display:grid;gap:3px}.report-preview-banner span{font-size:12px;color:var(--muted)}

@media print{
  @page{size:A4 portrait;margin:0}
  html,body{background:#fff!important;color:#152019!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body{font-family:Inter,Arial,sans-serif!important}
  .sidebar,.topbar,.screen-only,.toast{display:none!important}
  .shell,.main{display:block!important;margin:0!important;padding:0!important;width:100%!important;min-height:0!important}
  .print-only{display:block!important}
  .dossier{width:210mm;margin:0 auto;background:#fff}
  .print-page{position:relative;width:210mm;min-height:297mm;padding:17mm 16mm 16mm;background:#fff;page-break-after:always;overflow:hidden}
  .print-page:last-child{page-break-after:auto}
  .certificate-page{padding:15mm 17mm 14mm;background:linear-gradient(180deg,#f5faf7 0,#fff 34%,#fff 100%)}
  .certificate-page:before{content:"";position:absolute;left:0;top:0;width:100%;height:9mm;background:#173d2d}
  .certificate-page:after{content:"";position:absolute;inset:11mm;border:1px solid #cfded6;pointer-events:none}
  .cert-topline{display:flex;justify-content:space-between;margin:1mm 2mm 9mm;font-size:8pt;color:#75827c;text-transform:uppercase;letter-spacing:.08em}
  .cert-brand{display:flex;align-items:center;gap:3mm;margin:0 5mm}.cert-logo{width:13mm;height:13mm;border-radius:4mm;background:#173d2d;color:#fff;display:grid;place-items:center;font-size:15pt;font-weight:900}.cert-brand>div:last-child{display:grid}.cert-brand strong{font-size:13pt}.cert-brand small{font-size:8pt;color:#75827c}
  .cert-body{text-align:center;padding:14mm 10mm 0}.cert-kicker{margin:0 0 4mm;color:#315c4b;font-size:9pt;font-weight:900;letter-spacing:.18em}.cert-body h1{margin:0 auto 6mm;max-width:150mm;font-family:Georgia,'Times New Roman',serif;font-size:28pt;line-height:1.08;color:#153c2c;font-weight:600}.cert-lead{max-width:150mm;margin:0 auto 10mm;color:#5b6962;font-size:10pt;line-height:1.65}.cert-org{display:inline-block;min-width:125mm;padding:5mm 10mm;border-top:1px solid #a9beb3;border-bottom:1px solid #a9beb3;font-family:Georgia,'Times New Roman',serif;font-size:20pt;font-weight:700;color:#17251f}
  .cert-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:4mm;margin:10mm auto 7mm;max-width:150mm;text-align:left}.cert-meta-grid div{padding:4mm;border:1px solid #dde8e2;border-radius:3mm;background:#fbfdfc}.cert-meta-grid span,.cert-issued span{display:block;color:#7c8a83;font-size:7.5pt;text-transform:uppercase;letter-spacing:.06em}.cert-meta-grid strong{display:block;margin-top:1.5mm;font-size:10pt}
  .cert-status-panel{display:grid;grid-template-columns:repeat(4,1fr);gap:2.5mm;max-width:165mm;margin:0 auto 9mm}.cert-status-panel div{padding:4mm 2mm;background:#173d2d;color:#fff;border-radius:3mm}.cert-status-panel span{display:block;min-height:8mm;color:#cedbd4;font-size:7pt;line-height:1.3}.cert-status-panel strong{display:block;margin-top:1.5mm;font-size:15pt}
  .cert-seal-row{display:flex;align-items:center;justify-content:center;gap:11mm;margin-top:6mm}.cert-seal{width:31mm;height:31mm;border:2px solid #315c4b;border-radius:50%;display:grid;place-items:center;align-content:center;color:#315c4b;box-shadow:inset 0 0 0 2mm #fff,inset 0 0 0 2.5mm #b9cfc4}.cert-seal span{font-size:16pt;font-weight:900;line-height:1}.cert-seal small{font-size:6.5pt;font-weight:900;letter-spacing:.08em;line-height:1.3;margin-top:1mm}.cert-issued{text-align:left;display:grid;grid-template-columns:38mm 1fr;gap:1.5mm 4mm;align-items:baseline}.cert-issued span{display:block}.cert-issued strong{font-size:9pt;font-weight:700}.mono{font-family:'Courier New',monospace!important}.cert-footer{position:absolute;left:23mm;right:23mm;bottom:18mm;border-top:1px solid #dbe4df;padding-top:4mm;display:grid;grid-template-columns:1fr auto;gap:5mm;align-items:end;color:#78847e;font-size:7pt;text-align:left}.cert-footer p{margin:0;line-height:1.45}.cert-footer span{white-space:nowrap;color:#315c4b;font-weight:700}

  .report-page{padding:15mm 16mm 16mm}.report-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:5mm;border-bottom:1px solid #dce5e0}.report-brand-mini{display:flex;align-items:center;gap:3mm}.report-brand-mini>span{width:9mm;height:9mm;border-radius:2.5mm;background:#173d2d;color:#fff;display:grid;place-items:center;font-size:8pt;font-weight:900}.report-brand-mini>div{display:grid}.report-brand-mini strong{font-size:9.5pt}.report-brand-mini small{font-size:6.8pt;color:#7d8983}.report-ref{text-align:right}.report-ref span{display:block;color:#87928d;font-size:6.5pt;text-transform:uppercase;letter-spacing:.08em}.report-ref strong{font-family:'Courier New',monospace;font-size:7.5pt;color:#315c4b}
  .report-title-block{padding:8mm 0 5mm}.report-title-block p{margin:0 0 1mm;color:#315c4b;font-size:7pt;font-weight:900;letter-spacing:.14em}.report-title-block h2{margin:0 0 1.5mm;font-family:Georgia,'Times New Roman',serif;color:#173d2d;font-size:19pt}.report-title-block span{font-size:8pt;color:#7b8781}
  .report-section{margin-top:7mm;break-inside:auto}.report-section h3{margin:0 0 3.5mm;padding-bottom:2.2mm;border-bottom:1.5px solid #315c4b;font-size:11pt;color:#173d2d}.report-section h4{font-size:9pt;margin:4mm 0 2mm}.report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5mm}.report-kpis div{padding:3.5mm;border:1px solid #dce6e1;border-radius:2mm;background:#f8fbf9}.report-kpis span{display:block;font-size:6.8pt;color:#74817b}.report-kpis strong{display:block;margin-top:1mm;font-size:13pt;color:#173d2d}
  .report-table{width:100%;border-collapse:collapse;font-size:7.3pt;line-height:1.35}.report-table th{padding:2.3mm 2mm;text-align:left;background:#edf4f0;color:#315c4b;border-bottom:1px solid #c8d8d0;font-size:6.5pt;text-transform:uppercase;letter-spacing:.045em}.report-table td{padding:2.5mm 2mm;border-bottom:1px solid #e5ebe8;vertical-align:top}.report-table tr{break-inside:avoid}.report-table small{font-size:6.4pt;color:#76837c}.report-table .small{font-size:6.4pt}.key-table th{width:22%;background:#f6f9f7;color:#6e7b75}.key-table td{width:28%}.report-empty{font-size:8pt;color:#7d8883;font-style:italic}.report-notes{display:grid;gap:2mm;margin-top:3mm}.report-notes div{padding:2.5mm 3mm;background:#f7f9f8;border-left:1mm solid #bdd0c6;border-radius:1.5mm;break-inside:avoid}.report-notes strong{font-size:7.4pt}.report-notes p{margin:1mm 0 0;font-size:6.8pt;color:#607069;line-height:1.4}
  .policy-report-card{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm;margin-bottom:3mm}.policy-report-card div{background:#f6f9f7;padding:2.8mm;border-radius:1.5mm}.policy-report-card span{display:block;font-size:6.5pt;color:#7c8982}.policy-report-card strong{font-size:8pt}.policy-excerpt{font-size:7pt;line-height:1.55;color:#4f5c56;padding:3mm;border:1px solid #e0e7e3;border-radius:1.5mm;max-height:65mm;overflow:hidden}
  .report-timeline{display:grid;grid-template-columns:1fr 1fr;gap:1.5mm 4mm}.report-timeline div{display:grid;grid-template-columns:28mm 1fr;gap:2mm;padding:1.7mm 0;border-bottom:1px solid #ebefed;break-inside:avoid}.report-timeline span{font-size:6.2pt;color:#7e8a84}.report-timeline strong{font-size:6.9pt}.methodology p{font-size:7pt;line-height:1.55;color:#59665f}.method-box{display:grid;grid-template-columns:37mm 1fr;gap:1.2mm 3mm;margin-top:3mm;padding:3mm;background:#f6f9f7;border-radius:1.5mm}.method-box span{font-size:6.5pt;color:#77847e}.method-box strong{font-size:7pt}.report-final{margin-top:9mm;border-top:1px solid #cfdad4;padding-top:4mm;display:grid;grid-template-columns:auto 1fr;gap:1mm 5mm;color:#75827c}.report-final strong{font-size:8pt;color:#315c4b}.report-final span{font-size:7pt;text-align:right}.report-final p{grid-column:1/-1;margin:1.5mm 0 0;font-size:6.5pt;line-height:1.45}
  /* v0.2.4: paginacion profesional del expediente */
  @page{size:A4;margin:0}
  .report-page{overflow:visible!important;min-height:297mm;page-break-after:always;break-after:page}
  .report-page:last-child{page-break-after:auto;break-after:auto}
  .report-section{break-inside:auto;page-break-inside:auto}
  .report-section>h3{break-after:avoid-page;page-break-after:avoid}
  .report-table{break-inside:auto;page-break-inside:auto}
  .report-table thead{display:table-header-group}
  .report-table tfoot{display:table-footer-group}
  .report-table tr,.report-notes>div,.policy-report-card,.method-box,.report-final{break-inside:avoid;page-break-inside:avoid}
  .print-break-before{break-before:page!important;page-break-before:always!important;padding-top:15mm}
  .report-section-policy{margin-top:0}
  .report-section-policy h4,.policy-excerpt{break-inside:avoid;page-break-inside:avoid}
  .report-section-training,.report-section-evidence,.report-section-methodology{break-inside:avoid-page;page-break-inside:avoid}
  .report-section-trace{break-inside:auto;page-break-inside:auto}
  .report-timeline>div{break-inside:avoid;page-break-inside:avoid}
  .report-section-controls .report-table td,.report-section-controls .report-table th{padding-top:2mm;padding-bottom:2mm}
  .report-section-controls .report-table small{line-height:1.25}

}


/* ===== AI Governance v0.2.5 - paginacion A4 profesional ===== */
@media print {
  /*
   * IMPORTANTE:
   * El margen pertenece a @page, no al contenedor.
   * Chrome lo aplica a CADA hoja generada, incluidas las continuaciones
   * automáticas de tablas.
   */
  @page {
    size: A4 portrait;
    margin: 18mm 14mm 17mm 14mm;
  }

  html, body {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .dossier {
    width: auto !important;
    margin: 0 !important;
  }

  /*
   * Las páginas dejan de simular un A4 de 210x297 dentro de un @page sin
   * márgenes. Ahora el navegador pagina el flujo dentro del área imprimible.
   */
  .print-page {
    position: relative !important;
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  .print-page + .print-page {
    break-before: page !important;
    page-break-before: always !important;
  }

  .print-page {
    break-after: auto !important;
    page-break-after: auto !important;
  }

  /* Portada/certificado: una hoja propia. */
  .certificate-page {
    min-height: 261mm !important; /* 297 - 18 - 17 mm, con pequeño margen de seguridad */
    padding: 0 3mm !important;
    background: linear-gradient(180deg,#f5faf7 0,#fff 34%,#fff 100%) !important;
    break-after: page !important;
    page-break-after: always !important;
  }

  .certificate-page:before {
    top: -18mm !important;
    left: -14mm !important;
    width: calc(100% + 28mm) !important;
  }

  .certificate-page:after {
    inset: -5mm -2mm 4mm !important;
  }

  .cert-footer {
    left: 6mm !important;
    right: 6mm !important;
    bottom: 4mm !important;
  }

  /*
   * Cabecera del bloque de informe. En cada bloque PHP explícito aparece
   * al principio de su página. En continuaciones automáticas, @page conserva
   * siempre los 18 mm superiores para que el contenido nunca quede pegado
   * al borde.
   */
  .report-header {
    margin: 0 0 6mm !important;
    padding: 0 0 4mm !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .report-title-block {
    padding: 2mm 0 5mm !important;
  }

  .report-section {
    margin-top: 6mm !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .report-section > h3 {
    break-after: avoid-page !important;
    page-break-after: avoid !important;
  }

  /*
   * Tablas multipágina:
   * - thead se repite
   * - una fila nunca se corta
   * - la tabla sí puede continuar en la hoja siguiente
   */
  .report-table {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .report-table thead {
    display: table-header-group !important;
  }

  .report-table tfoot {
    display: table-footer-group !important;
  }

  .report-table tr,
  .report-table td,
  .report-table th {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .report-table thead th {
    padding-top: 2.4mm !important;
    padding-bottom: 2.4mm !important;
  }

  /* Elementos que deben viajar completos a la siguiente hoja. */
  .report-notes > div,
  .policy-report-card,
  .method-box,
  .report-final,
  .report-timeline > div {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /*
   * No forzamos bloques completos de formación/evidencias/metodología:
   * si crecen, pueden paginar sin crear grandes huecos en blanco.
   */
  .report-section-training,
  .report-section-evidence,
  .report-section-methodology,
  .report-section-trace {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  /*
   * El salto explícito de Política ya no necesita padding artificial.
   * El espacio superior lo proporciona @page en todas las hojas.
   */
  .print-break-before {
    break-before: page !important;
    page-break-before: always !important;
    padding-top: 0 !important;
  }

  .report-section-policy {
    margin-top: 0 !important;
  }

  /* Evita títulos huérfanos. */
  h2, h3, h4 {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  /* Chrome: evita cabeceras/pies automáticos interfiriendo visualmente
     con el expediente cuando el usuario los desactiva en el diálogo. */
}
/* v0.3 auth */
.registerbox{width:min(720px,94vw)}.auth-switch{text-align:center;margin:18px 0 0;color:var(--muted);font-size:13px}.auth-switch a{color:var(--accent);font-weight:800}.otp-input{text-align:center;font-size:28px;font-weight:800;letter-spacing:.3em}.resend-btn{width:100%;margin-top:10px}.btn.ghost{background:#fff;color:var(--accent);border:1px solid var(--line)}

/* ===== AI Governance v0.4 ===== */
.page-container{max-width:1500px;margin:0 auto}.main{background:#f3f6f5}.topbar{padding:4px 2px 0}.app-footer{display:flex;justify-content:space-between;align-items:center;margin-top:34px;padding:20px 4px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.app-footer nav{display:flex;gap:18px}.app-footer a{text-decoration:none}.app-footer a:hover{color:var(--accent)}
.hero-v4{padding:30px 32px;box-shadow:0 16px 38px rgba(23,61,45,.12)}.hero-v4 h2{max-width:760px;margin:15px 0 8px;font-size:26px;letter-spacing:-.02em}.hero-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.hero-meta span{padding:8px 11px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#d7e5de;font-size:12px}.hero-meta strong{color:#fff;margin-left:4px}.metric{border-color:#e1e7e4}.metric strong{font-size:28px}.dashboard-grid>.card{min-height:100%}
.auth-card{width:min(460px,92vw);padding:34px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.auth-brand>div{display:grid}.auth-brand small{color:#8b9b93;margin-top:2px}.auth-heading{margin-bottom:22px}.auth-heading h2{font-size:28px;margin:6px 0 8px}.auth-heading p{color:var(--muted);line-height:1.5;margin:0}.auth-eyebrow{font-size:10px;letter-spacing:.12em;font-weight:900;color:var(--accent)}.auth-primary{width:100%;margin-top:20px;padding:13px}.public-legal-links{display:flex;justify-content:center;gap:14px;margin-top:20px;font-size:11px;color:#7a8982}.public-legal-links a{text-decoration:none}.register-bg{padding:34px 0}.registerbox{width:min(860px,94vw);padding:36px 40px}.registration-section{padding:20px 0;border-top:1px solid var(--line)}.registration-section:first-of-type{border-top:0}.registration-section h3{margin:0 0 12px;font-size:15px}.address-grid{display:grid;grid-template-columns:2fr .55fr .7fr 1.2fr 1.2fr 1fr;gap:12px}.address-grid>div{min-width:0}.address-street{grid-column:span 2}.field-help{display:block;margin-top:5px;color:var(--muted);font-size:11px}.legal-consent{padding:15px 16px;background:#f6f9f7;border:1px solid #dfe8e3;border-radius:13px}.legal-consent>small{display:block;margin:8px 0 0 29px;color:var(--muted);font-size:11px;line-height:1.4}.checkbox-row{display:flex;gap:10px;align-items:flex-start;margin:0!important;font-weight:500!important;line-height:1.5}.checkbox-row input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto}.checkbox-row span{font-size:12px}.checkbox-row a{color:var(--accent);font-weight:800}
.maintenance-bg{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,#eef5f1,#e5ede9);padding:24px}.maintenance-card{width:min(650px,94vw);padding:48px;background:#fff;border:1px solid #dce6e1;border-radius:28px;box-shadow:0 24px 70px rgba(23,61,45,.12);text-align:center}.maintenance-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:18px;display:grid;place-items:center;background:#173d2d;color:#fff;font-size:20px;font-weight:900}.maintenance-card h1{font-size:38px;margin:8px 0 12px}.maintenance-card p{color:var(--muted);font-size:16px;line-height:1.6}.maintenance-status{display:flex;justify-content:center;align-items:center;gap:8px;margin:24px 0}.maintenance-status i{width:9px;height:9px;background:#d59a35;border-radius:50%}
.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.admin-grid{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(320px,.8fr);gap:18px;margin-top:18px}.admin-table td{vertical-align:middle}.admin-status{font-size:20px!important}.admin-status.is-online{color:#285c44}.admin-status.is-maintenance{color:#925c0c}.mini-progress{display:inline-block;width:90px;height:6px;background:#edf1ef;border-radius:999px;overflow:hidden;vertical-align:middle;margin-right:8px}.mini-progress i{display:block;height:100%;background:var(--accent)}.admin-actions{display:flex;gap:6px;justify-content:flex-end}.admin-actions form{margin:0}.smallbtn{padding:7px 9px;font-size:11px}.maintenance-panel textarea{min-height:120px}.switch-row{display:flex;gap:12px;align-items:flex-start;padding:14px;background:#f7faf8;border:1px solid #e0e8e4;border-radius:13px;margin:0 0 18px!important}.switch-row input{width:20px;height:20px;flex:0 0 auto}.switch-row span{display:grid;gap:3px}.switch-row small{color:var(--muted);font-weight:400;line-height:1.4}.back-link{display:inline-block;margin-bottom:14px;color:var(--accent);font-weight:800;text-decoration:none}.org-detail-hero{display:flex;justify-content:space-between;align-items:center}.org-detail-hero h2{font-size:26px;margin:8px 0 4px}.org-detail-hero p{margin:0;color:var(--muted)}.org-progress{display:grid;text-align:right}.org-progress strong{font-size:32px;color:var(--accent)}.org-progress span{font-size:11px;color:var(--muted)}.admin-users-card{margin-top:18px}
.legal-bg{background:#f3f6f5;padding:40px 18px;min-height:100vh}.legal-doc{max-width:900px;margin:auto;background:#fff;border:1px solid #dfe6e2;border-radius:24px;padding:44px 54px;box-shadow:0 18px 50px rgba(23,33,43,.06);line-height:1.7}.legal-brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-bottom:28px}.legal-version{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf3f0;color:var(--accent);font-size:10px;font-weight:800}.legal-doc h1{font-size:34px;letter-spacing:-.025em;margin:8px 0}.legal-doc h2{font-size:18px;margin:30px 0 8px;color:#173d2d}.legal-doc p,.legal-doc li{color:#506058}.legal-lead{font-size:17px}.legal-doc a{color:var(--accent)}.legal-footer{display:flex;gap:18px;margin-top:38px;padding-top:18px;border-top:1px solid var(--line);font-size:12px}.legal-table{display:grid;gap:12px}.legal-table>div{padding:15px;border:1px solid var(--line);border-radius:13px}.legal-table>div>span{float:right;padding:4px 8px;border-radius:999px;background:#e7f1ec;color:#285c44;font-size:10px;font-weight:800}.legal-table p{margin-bottom:0}
@media(max-width:1100px){.address-grid{grid-template-columns:1.4fr .5fr .7fr 1fr}.address-street{grid-column:span 2}.admin-kpis{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}}
@media(max-width:700px){.registerbox{padding:28px 22px}.address-grid{grid-template-columns:1fr 1fr}.address-street{grid-column:1/-1}.admin-kpis{grid-template-columns:1fr 1fr}.org-detail-hero{align-items:flex-start;gap:20px}.legal-doc{padding:30px 24px}.legal-doc h1{font-size:28px}.app-footer{align-items:flex-start;gap:12px;flex-direction:column}}
