*{box-sizing:border-box}
:root{
  --bg:#f4f7f9;
  --surface:#ffffff;
  --surface-soft:#f8fafb;
  --text:#173042;
  --muted:#667987;
  --line:#dbe4ea;
  --line-strong:#cbd8df;
  --brand:#123f57;
  --brand-strong:#0b3048;
  --brand-soft:#e9f3f5;
  --accent:#1599a2;
  --accent-green:#76c043;
  --success:#2f6b52;
  --shadow:0 10px 30px rgba(28,55,70,.07);
  --radius:16px;
  --sidebar:270px;
}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
body{font-size:15px}
a{color:inherit}
button,input,select{font:inherit}
textarea{font:inherit}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(1.7rem,2.4vw,2.3rem);line-height:1.1;margin-bottom:10px}
h2{font-size:1.25rem;margin-bottom:8px}
p{line-height:1.6;color:#395162}
small{color:var(--muted)}
.app-layout{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#0b3048 0%,#123f57 62%,#174b65 100%);color:#f6fbfd;padding:18px 14px;display:flex;flex-direction:column;z-index:50}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:6px 8px 18px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-mark{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#193b4f;font-weight:800;position:relative;overflow:hidden;flex:none}
.brand-mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.brand-copy strong{color:#fff}.brand-copy strong::after{content:"";display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--accent-green);vertical-align:middle}
.brand-copy strong{display:block;font-size:1.04rem}
.brand-copy small{display:block;color:#c4d4dd;font-size:.74rem;line-height:1.25;margin-top:2px}
.sidebar-close{display:none;margin-left:auto;border:0;background:none;color:white;font-size:1.7rem}
.sidebar-nav{padding:18px 0;display:flex;flex-direction:column;gap:4px;overflow:auto}
.nav-link{display:flex;align-items:center;gap:10px;min-height:43px;padding:9px 10px;border-radius:10px;text-decoration:none;color:#dbe8ee;font-weight:600;font-size:.93rem}
.nav-link:hover{background:rgba(255,255,255,.08);color:white}
.nav-link.active{background:#fff;color:#173f56;box-shadow:inset 4px 0 0 var(--accent)}
.nav-icon{width:25px;text-align:center;font-size:1rem}
.nav-badge{margin-left:auto;background:rgba(255,255,255,.12);color:inherit;border-radius:999px;padding:2px 6px;font-size:.62rem}
.nav-link.active .nav-badge{background:var(--brand-soft)}
.sidebar-footer{margin-top:auto;padding:15px 8px 4px;border-top:1px solid rgba(255,255,255,.12)}
.scope-mini span,.scope-mini strong{display:block}
.scope-mini span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#a9bfcb}
.scope-mini strong{font-size:.82rem;margin-top:3px}
.version-mini{font-size:.65rem;color:#90aab8;margin-top:12px}
.app-main{grid-column:2;min-width:0;display:flex;min-height:100vh;flex-direction:column}
.topbar{height:74px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 28px;position:sticky;top:0;z-index:35}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}
.menu-toggle{display:none;border:1px solid var(--line);background:white;border-radius:9px;padding:8px 10px;color:var(--text)}
.context-block small,.context-block strong,.context-block span{display:block}
.context-block small{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.context-block strong{font-size:.94rem}
.context-block span{font-size:.72rem;color:var(--muted);margin-top:1px}
.context-switcher,.user-menu{position:relative}
.context-switcher summary,.user-menu summary{list-style:none;cursor:pointer}
.context-switcher summary::-webkit-details-marker,.user-menu summary::-webkit-details-marker{display:none}
.context-switcher summary{border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:white;font-weight:600;font-size:.82rem}
.context-menu,.user-menu-panel{position:absolute;right:0;top:calc(100% + 10px);min-width:280px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px;z-index:90}
.context-menu a,.user-menu-panel a,.user-menu-panel button{display:block;width:100%;padding:10px;border-radius:8px;text-decoration:none;border:0;background:none;text-align:left;color:var(--text);cursor:pointer}
.context-menu a:hover,.user-menu-panel a:hover,.user-menu-panel button:hover{background:var(--surface-soft)}
.context-menu a strong,.context-menu a small{display:block}
.context-menu a small{margin-top:2px}
.user-menu summary{display:flex;align-items:center;gap:9px}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:white;font-weight:800}
.user-copy strong,.user-copy small{display:block}
.user-copy strong{font-size:.82rem;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-copy small{font-size:.66rem}
.user-menu-panel{min-width:190px}
.user-menu-panel form{margin:0}
.content-area{width:min(1280px,100%);margin:0 auto;padding:28px 30px 42px;flex:1}
.app-footer{padding:16px 30px 24px;text-align:center;color:#7c8d98;font-size:.72rem}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}
.page-head p{margin-bottom:0;max-width:760px}
.eyebrow{display:block;text-transform:uppercase;letter-spacing:.11em;color:#718590;font-size:.68rem;font-weight:800;margin-bottom:7px}
.status-chip{display:inline-flex;align-items:center;border-radius:999px;background:#eef3f6;color:#4d6574;padding:7px 10px;font-size:.72rem;font-weight:800;white-space:nowrap}
.status-chip.success{background:#e8f3ed;color:var(--success)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:20px}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.panel-head p{margin-bottom:0}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}
.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric-card{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 4px 14px rgba(28,55,70,.04)}
.metric-card span,.metric-card strong,.metric-card small{display:block}
.metric-card span{font-size:.74rem;font-weight:800;color:#607684;text-transform:uppercase;letter-spacing:.05em}
.metric-card strong{font-size:2rem;margin:8px 0 2px}
.metric-card .metric-text{font-size:1rem;line-height:1.25}
.tenant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.tenant-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;text-decoration:none;background:white}
.tenant-card:hover{border-color:#9db2bd;background:#fbfcfd}
.tenant-avatar{width:40px;height:40px;border-radius:10px;background:var(--brand-soft);display:grid;place-items:center;font-weight:800;color:var(--brand)}
.tenant-card div:nth-child(2){min-width:0;flex:1}
.tenant-card strong,.tenant-card span{display:block}
.tenant-card span{color:var(--muted);font-size:.75rem;margin-top:2px}
.tenant-arrow{font-size:1rem!important;color:var(--brand)!important}
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.module-card{display:flex;flex-direction:column;gap:7px;padding:16px;border:1px solid var(--line);border-radius:13px;text-decoration:none;background:white;min-height:120px}
.module-card:hover{border-color:#a6bac5;transform:translateY(-1px)}
.module-card.muted{background:#fafbfc}
.module-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}
.module-card strong{font-size:.94rem}
.module-card small{font-size:.72rem}
.table-wrap{overflow:auto}
.data-table{width:100%;border-collapse:collapse}
.data-table th,.data-table td{padding:12px 10px;border-bottom:1px solid #e8eef1;text-align:left;vertical-align:top}
.data-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#6e818d;background:#fafcfd}
.data-table td{font-size:.86rem}
.table-sub{display:block;margin-top:2px}
.code-pill,.role-pill{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.69rem;font-weight:700;background:#eef3f6;color:#4b6473}
.role-pill{background:#edf2f5}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);background:#fff;color:var(--text);border-radius:9px;padding:9px 13px;text-decoration:none;cursor:pointer;font-weight:700;font-size:.84rem}
.btn.primary{background:var(--brand);color:white;border-color:var(--brand);box-shadow:0 3px 8px rgba(11,48,72,.12)}
.btn.primary:hover{background:var(--brand-strong)}
.btn.wide{width:100%}
.form-panel{max-width:900px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-row label{display:block;font-weight:700;margin-bottom:6px;font-size:.82rem}
.form-row input,.form-row select,.login-card input{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:9px;background:white;color:var(--text)}
.form-row textarea{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:9px;background:white;color:var(--text);resize:vertical}
.form-stack{display:grid;gap:16px}.alert-soft{background:#edf7fa;border:1px solid #c6e0e8;border-radius:10px;padding:13px 15px;margin-bottom:18px;color:#244f66}.plan-state-actions{margin:0 0 18px}.plan-state-actions form,.actions form{margin:0}.inline-form{display:inline;margin-left:8px}.area-card h2{margin-top:10px}.action-card{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.action-card h3{font-size:1.05rem}.btn.small{padding:6px 9px;font-size:.74rem}.btn.success{border-color:#8bc2a7;color:#246043;background:#edf8f2}progress{width:110px;height:8px;margin-right:8px}.empty-inline{padding:18px 0;color:var(--muted)}.proposal-select{display:block;font-weight:800;margin-bottom:12px}@media print{.sidebar,.topbar,.app-footer,.actions,.plan-state-actions{display:none!important}.app-layout{display:block}.app-main{display:block}.content-area{width:100%;padding:0}.panel{box-shadow:none;break-inside:avoid}}
.form-row input:focus,.form-row select:focus,.login-card input:focus{outline:2px solid #b8ccd6;outline-offset:1px}
.form-actions{margin-top:20px}
.field-error{color:#a22121;margin-top:5px;font-size:.77rem}
.alert{background:#fff1f1;border:1px solid #efc6c6;color:#8b1f1f;padding:10px 12px;border-radius:9px;margin-bottom:14px}
.flash{background:#edf7f0;border:1px solid #c8e0cf;color:#2c6248;padding:10px 13px;border-radius:9px;margin-bottom:14px}
.empty-state{text-align:center;padding:54px 24px}
.empty-state p{max-width:650px;margin:0 auto 20px}
.empty-icon{width:56px;height:56px;border-radius:16px;background:var(--brand-soft);display:grid;place-items:center;margin:0 auto 16px;font-size:1.35rem;color:var(--brand)}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(150deg,#eef4f7 0%,#f8fafb 55%,#edf2f5 100%)}
.login-shell{width:min(450px,94vw)}
.login-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 24px 60px rgba(25,59,79,.12)}
.login-brand{display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.login-mark{width:50px;height:50px}
.login-brand h1{font-size:1.25rem;margin:0}
.login-brand p{font-size:.76rem;margin:3px 0 0}
.login-heading{padding:24px 0 8px}
.login-heading span{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:#738792}
.login-heading h2{font-size:1.5rem;margin:6px 0}
.login-heading p{font-size:.86rem;margin-bottom:0}
.login-card label{display:block;font-weight:700;font-size:.81rem;margin:14px 0 6px}
.login-note{text-align:center;color:#7a8b95;font-size:.72rem;margin:16px 0 0}
.sidebar-overlay{display:none}
@media(max-width:1050px){
  .app-layout{grid-template-columns:1fr}
  .sidebar{transform:translateX(-100%);transition:transform .2s ease}
  .app-main{grid-column:1}
  .menu-toggle{display:block}
  .sidebar-close{display:block}
  body.sidebar-open .sidebar{transform:translateX(0)}
  body.sidebar-open .sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(15,35,47,.35);z-index:45}
}
@media(max-width:760px){
  .topbar{padding:0 14px;height:68px}
  .context-block span{display:none}
  .user-copy{display:none}
  .context-switcher summary{font-size:0;padding:8px}
  .context-switcher summary:after{content:"Contexto";font-size:.76rem}
  .content-area{padding:22px 14px 34px}
  .page-head{flex-direction:column}
  .metric-grid,.metric-grid.four{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .panel{padding:17px}
}
@media(max-width:480px){
  .metric-grid,.metric-grid.four{grid-template-columns:1fr}
  .module-grid{grid-template-columns:1fr 1fr}
  .context-block strong{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

.launch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}.launch-card{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid #d9e4ea;border-radius:14px;text-decoration:none;color:inherit;background:#fff}.launch-card:hover{box-shadow:0 8px 22px rgba(16,54,74,.08);transform:translateY(-1px)}.launch-card small{color:#60788a}.proposal-card{padding:16px;margin:12px 0;border:1px solid #dce5eb;border-radius:12px;background:#fbfdfe}.confirm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end;margin-top:18px}.confirm-grid label{display:flex;flex-direction:column;gap:6px}.confirm-grid input,.confirm-grid select{padding:10px;border:1px solid #cbd9e1;border-radius:8px}
.memory-cycle form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.memory-cycle select{padding:9px 11px;border:1px solid var(--line-strong);border-radius:8px;background:#fff}.memory-criterion{border:1px solid var(--line);border-radius:12px;margin:12px 0;overflow:hidden}.memory-criterion summary{padding:14px 16px;font-weight:800;background:#f6f9fb;cursor:pointer}.pdca-mini{display:flex;align-items:center;gap:6px}.pdca-mini span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#edf1f4;color:#6b7d88;font-weight:800;font-size:.74rem}.pdca-mini span.done{background:#e8f6ed;color:#1e7547;border:1px solid #b7dec8}.pdca-mini small{margin-left:4px}.memory-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.memory-info-grid p{padding:8px 0;border-bottom:1px solid #e5ecef}.memory-phase{border-left:4px solid #2a69a8}.phase-badge{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#2868a8;color:#fff;margin-right:8px}.strength-card{padding:16px;border:1px solid var(--line);border-radius:11px;margin:12px 0;background:#fff}.strength-links{display:flex;gap:7px;flex-wrap:wrap}.evidence-pill{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.69rem;background:#f1f4f6;color:#526878}.praxis-note{margin-top:12px;padding:11px 13px;border-radius:9px;background:#eef8f3;border:1px solid #c7e3d3}.btn.danger{color:#9a2828;border-color:#e6b7b7;background:#fff5f5}.internal-findings{background:#fffaf0;border-color:#ecd9a8}.official-subcriterion{padding:16px 0;border-top:1px solid var(--line)}.official-subcriterion h4{color:#245f8e;margin-bottom:7px}.check-list ul{list-style:none;padding:0;margin:0}.check-list label{display:flex;gap:8px;padding:6px 0}.caf-summary{padding:10px;background:#f4f8fb;border-radius:8px}.caf-browser-backdrop[hidden]{display:none}.caf-browser-backdrop{position:fixed;inset:0;z-index:1500;background:rgba(20,43,58,.58);display:flex;align-items:center;justify-content:center;padding:24px}.caf-browser{background:#fff;width:min(1000px,95vw);height:min(720px,92vh);border-radius:16px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.caf-browser header{display:flex;justify-content:space-between;padding:20px;border-bottom:1px solid #e1e9ee}.caf-browser header h2,.caf-browser header p{margin:0 0 6px}.caf-browser header button{border:0;background:transparent;font-size:30px}.caf-tools{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 20px;border-bottom:1px solid #e1e9ee}.caf-tools input{padding:11px;border:1px solid #c5d4de;border-radius:8px}.caf-list{overflow:auto;padding:16px 20px}.caf-sub{padding:12px 15px}.caf-example{display:flex;gap:9px;padding:9px 0;line-height:1.4}.caf-browser footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #e1e9ee}.caf-browser footer #caf-clear{margin-right:auto}@media(max-width:760px){.memory-info-grid{grid-template-columns:1fr}.caf-browser-backdrop{padding:0}.caf-browser{width:100vw;height:100vh;border-radius:0}}

/* Aspectos legales */
.auth-page{min-height:100vh;padding:42px max(20px,calc((100vw - 900px)/2));background:#f2f6f8}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 4px 16px rgba(16,54,74,.05)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.card h1,.card h2{margin-top:5px}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#607f91}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:9px;padding:9px 13px;text-decoration:none;cursor:pointer;font-weight:700;font-size:.84rem}.button.secondary{color:var(--brand);background:#fff}.legal-document{max-width:900px;margin:auto}.legal-copy{line-height:1.65;color:#263a46}.legal-copy p{margin:0 0 12px}.back-link{display:inline-block;margin-bottom:14px;color:var(--brand);font-weight:700;text-decoration:none}.legal-acceptance{max-width:820px;margin:auto}.auth-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 16px 45px rgba(16,54,74,.10)}.check-row{display:flex;gap:9px;align-items:flex-start;margin:20px 0;font-weight:700;line-height:1.4}.status-good{color:#246043;font-weight:700}
.mfa-qr-wrap{display:flex;justify-content:center;margin:12px 0 6px}.mfa-qr{width:220px;height:220px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:12px;image-rendering:auto}.mfa-manual{margin:18px 0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fafb}.mfa-manual summary{cursor:pointer;font-weight:700;color:#496676}.mfa-manual code{font-size:.78rem;word-break:break-all}
.mfa-reset{text-align:center;margin:12px 0}.mfa-reset button{border:0;background:transparent;color:var(--brand);font-weight:700;font-size:.78rem;cursor:pointer;text-decoration:underline}
.form-panel{max-width:860px}.form-wide{grid-column:1 / -1}.form-help{display:block;color:#647987;font-size:.76rem;margin-top:5px}
