:root{--bg:#f4f6f3;--bg-elevated:#fbfcfa;--surface:#fff;--surface-soft:#f3f7f2;--text:#1b2a22;--text-muted:#5f7267;--border:#d1ddd2;--border-strong:#aec3b3;--brand:#1f5a43;--brand-strong:#174736;--brand-soft:#e7f2eb;--success:#1f7a46;--warning:#946313;--danger:#a83830;--info:#235f94;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:IBM Plex Sans,"Source Sans 3",Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 5% 0,#d9ebe0 0%,#0000 35%),radial-gradient(circle at 95% 3%,#e8efe2 0%,#0000 32%),linear-gradient(#f4f6f3 0%,#edf2ed 100%);margin:0;font-size:15.5px}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;font-family:Space Grotesk,IBM Plex Sans,Segoe UI,sans-serif;font-weight:700;line-height:1.16}a{color:var(--brand)}:root{--surface:#fff;--surface-soft:#f6f8f6;--surface-elevated:#fbfcfb;--ink-900:#19302b;--ink-700:#2e4b45;--ink-500:#54706a;--ink-300:#8ea5a0;--border:#d2ddd9;--accent:#0f7666;--accent-strong:#0a594d;--accent-soft:#e7f7f3;--danger:#b42328;--danger-soft:#ffeaea;--warning:#9a6700;--warning-soft:#fff3da;--success:#1d7a3e;--success-soft:#e6f8eb;--shadow-sm:0 6px 18px #12342e14;--shadow-md:0 14px 32px #12342e24}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-shell{width:min(1180px,100% - 2rem);margin:1.7rem auto 2.2rem}.topbar{background:radial-gradient(circle at 95% -10%,#34887426 0%,#34887400 40%),linear-gradient(138deg,#fdfefd 0%,#edf5f1 100%);border:1px solid #b6cbc4;border-radius:16px;justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:1rem;padding:1.15rem 1.3rem;display:flex;box-shadow:0 10px 24px #0d372f17}.topbar h1{color:var(--ink-900);margin:0;font-size:clamp(1.45rem,2.15vw,1.86rem);line-height:1.12}.topbar-brand-block{flex-direction:column;gap:.22rem;display:flex}.topbar-kicker{color:#2e665a;text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.69rem;font-weight:760}.topbar-title-row{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.topbar-route-subtitle{color:#3f635b;max-width:72ch;margin:0;font-size:.91rem}.topbar-contributor{color:var(--ink-700);max-width:70ch;margin:.24rem 0 0}.topbar-context-row{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.context-chip{color:#23453f;background:#f5fbf8;border:1px solid #97b6ad;border-radius:999px;align-items:center;padding:.24rem .66rem;font-size:.78rem;font-weight:680;display:inline-flex}.context-chip--section{color:#164f42;background:#e1f3ed;border-color:#80b7a7}.context-chip--tenant{color:#224867;background:#edf6ff;border-color:#a8c4dd}.topbar-shortcuts{flex-direction:column;align-items:flex-end;gap:.52rem;display:flex}.topbar-meta-row,.topbar-actions-row{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.page-nav-stack{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f8fcfad1;border:1px solid #b4cbc5bf;border-radius:12px;flex-direction:column;gap:.52rem;margin-bottom:1rem;padding:.65rem;display:flex;position:sticky;top:.5rem}.page-nav-label-row{align-items:center;display:flex}.page-nav-label{letter-spacing:.08em;text-transform:uppercase;color:#45655f;font-size:.72rem;font-weight:760}.page-nav{flex-wrap:wrap;gap:.5rem;display:flex}.page-nav--secondary{border-top:1px dashed var(--border);padding-top:.45rem}.nav-btn{color:var(--ink-700);letter-spacing:0;cursor:pointer;background:#f1f8f5;border:1px solid #b1c4bf;border-radius:999px;padding:.42rem .88rem;font-size:.84rem;font-weight:600;text-decoration:none;transition:all .16s}.nav-btn:hover{background:#e7f5f0;transform:translateY(-1px)}.nav-btn.active{background:var(--accent);border-color:var(--accent);color:#f5fffc;box-shadow:0 6px 16px #0a594d4d}.status-banner{box-shadow:var(--shadow-sm);border:1px solid #0000;border-left-width:4px;border-radius:12px;margin-bottom:1rem;padding:.72rem .98rem}.status-banner.success{color:#0f4a25;background:#e8f7ee;border-color:#a7d9b7}.status-banner.error{color:#741016;background:#ffecee;border-color:#edafb5}.status-banner.warning{color:#684300;background:#fff4df;border-color:#e9cb91}.status-banner.info{color:#0d4f45;background:#e7f8f4;border-color:#a5d8cc}.status-banner__title{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:820}.status-banner__message{margin:.26rem 0 0;font-size:.93rem;font-weight:640}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;padding:1rem;transition:box-shadow .18s,transform .18s;animation:.24s both rise-in}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card h2,.card h3{color:var(--ink-900);letter-spacing:-.01em;margin-top:0;line-height:1.22}.summary-list{color:var(--ink-700);margin:.85rem 0}.hint{color:var(--ink-500)}.form-grid{gap:.68rem;max-width:520px;display:grid}.form-grid--contributors{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:100%}.contributor-field{flex-direction:column;gap:.35rem;display:flex}.contributor-field__label{color:var(--ink-700);font-size:.9rem;font-weight:600}.context-grid{grid-template-columns:1fr 140px;gap:.75rem;display:grid}.context-grid label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);flex-direction:column;gap:.3rem;font-size:.82rem;display:flex}.context-grid input,.form-grid input,.toolbar-row select,.toolbar-row input{color:var(--ink-900);font:inherit;background:#fdfefe;border:1px solid #bfd0cb;border-radius:10px;padding:.56rem .74rem;transition:border-color .15s,box-shadow .15s}.toolbar-row select:focus,.toolbar-row input:focus,.form-grid input:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0f766629}.checkbox-row{flex-wrap:wrap;gap:.7rem;display:flex}.checkbox-row label{align-items:center;gap:.35rem;display:inline-flex}.toolbar-row{flex-wrap:wrap;justify-content:space-between;gap:.65rem;margin-bottom:.8rem;display:flex}.toolbar-row label{color:var(--ink-700);align-items:center;gap:.5rem;font-weight:560;display:flex}.quick-filter-row,.actions{flex-wrap:wrap;gap:.4rem;display:flex}.quick-filter-btn{color:#23453f;background:#ecf7f3;border:1px solid #9ebbb3;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .7rem;font-weight:650;display:inline-flex}.quick-filter-btn.active{background:var(--accent);color:#f4fffb;border-color:var(--accent)}.quick-filter-badge{color:#1e3e38;background:#d5e6e0;border:1px solid #a6c3ba;border-radius:999px;padding:.1rem .45rem;font-size:.76rem}.quick-filter-btn.active .quick-filter-badge{color:#f7fffd;background:#ffffff42;border-color:#ffffff80}.metric-grid,.operations-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.65rem;margin:.8rem 0;display:grid}.metric-card{background:linear-gradient(165deg,#fff 0%,#f0f8f4 100%);border:1px solid #c9d9d4;border-radius:12px;padding:.78rem}.metric-card h3{color:var(--ink-700);margin:0;font-size:.88rem}.metric-card p{color:var(--ink-900);margin:.35rem 0 0;font-size:1.22rem;font-weight:760}.run-meta-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem;margin:.8rem 0;display:grid}.run-meta-grid p{margin:.25rem 0 0}.run-table{margin-top:1rem}.recommendation-panel{background:linear-gradient(175deg,#f8fcfa 0%,#eef7f4 100%);border:1px solid #c9d9d4;border-radius:12px;margin-top:1rem;padding:.8rem}.recommendation-item{background:#fff;border:1px solid #d4e0dd;border-radius:10px;margin-bottom:.55rem;padding:.65rem}.recommendation-item.muted{background:var(--surface-soft)}.recommendation-item p{margin-top:0;margin-bottom:.55rem}.recommendation-head{justify-content:flex-end;margin-bottom:.35rem;display:flex}.priority-tag{border:1px solid #0000;border-radius:999px;padding:.15rem .5rem;font-size:.76rem;font-weight:760}.priority-tag.high{color:#741016;background:#ffdbe0;border-color:#e8a5ae}.priority-tag.medium{color:#6b4500;background:#ffefcf;border-color:#e8c888}.priority-tag.low{color:#0d5346;background:#d9f2ea;border-color:#9dcebf}.nav-btn:focus-visible,.btn:focus-visible,button:focus-visible,.download-link:focus-visible,.quick-filter-btn:focus-visible{outline-offset:2px;outline:3px solid #0c6f6061}button,.download-link{color:var(--ink-800,#21413b);cursor:pointer;background:#f3faf7;border:1px solid #9eb8b1;border-radius:10px;padding:.46rem .74rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-block}button:hover,.download-link:hover{background:#eaf7f2;border-color:#87aaa0;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.62;transform:none}.table-wrap{background:#fff;border:1px solid #d7e3df;border-radius:10px;overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e4ece9;padding:.56rem .52rem}thead th{color:var(--ink-700);letter-spacing:.02em;text-transform:uppercase;z-index:1;background:#f4faf7;font-size:.76rem;font-weight:700;position:sticky;top:0}tbody tr:hover td{background:#f8fdfb}tbody tr:nth-child(2n) td{background:#fcfefd}tbody tr:nth-child(2n):hover td{background:#f0f9f5}.operations-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:.85rem;display:grid}.operations-panel{min-height:360px;margin:0}.operations-panel .table-wrap,.operations-metrics-panel .table-wrap{max-height:420px}.operations-metrics-panel{margin-top:.8rem}.bulk-actions-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.operations-shortcut-hint{font-size:.78rem}.operations-row--active td{background:#e9f7f2}.operations-row--active td:first-child{box-shadow:inset 3px 0 0 var(--accent)}[aria-label="Cola de trabajo con atajos de teclado"]:focus{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.module-layout{flex-direction:column;gap:0;display:flex}.module-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.module-title-block{flex-direction:column;gap:.2rem;display:flex}.module-title{color:var(--ink-900);margin:0;font-size:1.28rem;font-weight:800;line-height:1.2}.module-subtitle{color:var(--ink-500);max-width:72ch;margin:0;font-size:.9rem}.module-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.module-status-row{flex-wrap:wrap;gap:.65rem;margin-bottom:1rem;display:flex}.module-content{flex-direction:column;gap:.85rem;display:flex}.module-status-card{min-width:100px;box-shadow:var(--shadow-sm);border:1px solid #0000;border-radius:11px;padding:.75rem 1rem}.module-status-card--blue{color:#0e5a4c;background:#e6f4f1;border-color:#b8ddd4}.module-status-card--green{background:var(--success-soft);color:#14532d;border-color:#bce3c8}.module-status-card--yellow{color:#6e5400;background:#fff8e7;border-color:#f0d79d}.module-status-card--red{background:var(--danger-soft);color:#7f1d1d;border-color:#f3bcc0}.module-status-card--gray{color:#37504a;background:#f2f6f5;border-color:#cfdad7}.module-status-card__value{margin:0;font-size:1.45rem;font-weight:760;line-height:1.1}.module-status-card__label{opacity:.82;margin:.2rem 0 0;font-size:.79rem;font-weight:600}.run-status-badge{letter-spacing:.01em;text-transform:lowercase;border:1px solid #0000;border-radius:999px;padding:.16rem .58rem;font-size:.74rem;font-weight:760;display:inline-block}.badge--running{color:#0d5649;background:#d1eee7;border-color:#9fd4c8}.badge--pending{color:#6f4900;background:#fff0ce;border-color:#e9c784}.badge--completed{color:#124f2d;background:#d5f0df;border-color:#9ed0af}.badge--failed{color:#7d1620;background:#ffe1e5;border-color:#e7a0a8}.badge--draft{color:#334c46;background:#edf3f2;border-color:#c5d4d0}.badge--generated{color:#0c5648;background:#d9f0ea;border-color:#9ecfc4}.badge--approved{color:#124f2d;background:#d5f0df;border-color:#9ed0af}.badge--rejected{color:#7d1620;background:#ffe1e5;border-color:#e7a0a8}.badge--exported{color:#0d5f52;background:#d4efea;border-color:#9dcdc2}.badge--partial{color:#744d00;background:#fff3da;border-color:#e9cc8f}.badge--matched{color:#124f2d;background:#d5f0df;border-color:#9ed0af}.badge--unmatched{color:#7d1620;background:#ffe1e5;border-color:#e7a0a8}.badge--needs_review{color:#6f4900;background:#fff0ce;border-color:#e9c784}.btn{color:#24423d;cursor:pointer;font:inherit;letter-spacing:.01em;background:#f3faf7;border:1px solid #9eb8b1;border-radius:10px;padding:.48rem .8rem;font-size:.88rem;font-weight:630;text-decoration:none;display:inline-block}.btn--primary{background:var(--accent);color:#f4fffc;border-color:var(--accent)}.btn--primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn--secondary{color:#1f4d45;background:#eef8f4;border-color:#9eb8b1}.btn--danger{color:#8a1d26;background:#fff0f1;border-color:#edb4b8}.btn--xs{padding:.25rem .55rem;font-size:.78rem}.link-button{color:var(--accent-strong);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:650;text-decoration:underline}.link-button:hover{color:var(--accent);background:0 0;border:none;transform:none}.auth-shell{align-items:center;width:min(1120px,100% - 2rem);min-height:100vh;margin:0 auto;display:flex}.auth-layout{grid-template-columns:minmax(260px,.95fr) minmax(360px,1.05fr);align-items:stretch;gap:1rem;width:100%;display:grid}.auth-hero{box-shadow:var(--shadow-sm);background:radial-gradient(circle at -10% 0,#0c766533 0%,#0c766500 38%),linear-gradient(155deg,#eff8f4 0%,#deefe8 100%);border:1px solid #a7c4bb;border-radius:18px;padding:1.2rem 1.1rem}.auth-hero h2{margin:.15rem 0 .7rem;font-size:clamp(1.3rem,2vw,1.75rem)}.auth-hero p{color:#2b544c;margin:0}.auth-benefits--hero{margin-top:1rem}.auth-card{border:1px solid var(--border);width:100%;box-shadow:var(--shadow-md);background:linear-gradient(#fff 0%,#f4faf7 100%);border-radius:18px;padding:1.4rem}.auth-card h1{margin:.1rem 0 .35rem;font-size:clamp(2rem,4vw,2.6rem)}.auth-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-500);margin:0;font-size:.74rem;font-weight:760}.auth-copy{color:var(--ink-700);margin:0 0 1rem}.auth-spotlight{grid-template-columns:minmax(0,1.25fr) minmax(280px,.85fr);gap:.85rem;margin:1rem 0 1.1rem;display:grid}.auth-spotlight__panel{border:1px solid var(--border);border-radius:16px;padding:1rem 1.05rem}.auth-spotlight__panel--primary{box-shadow:var(--shadow-sm);background:linear-gradient(155deg,#f7fcfa 0%,#e8f4ef 100%)}.auth-spotlight__panel--secondary{background:linear-gradient(#fffdf8 0%,#f5f4ed 100%)}.auth-spotlight__panel h2,.auth-spotlight__panel h3{color:var(--ink-900);margin:0 0 .45rem}.auth-spotlight__panel p{color:var(--ink-700);margin:0}.auth-spotlight__note{font-size:.88rem;color:var(--ink-500)!important;margin-top:.75rem!important}.auth-benefits{color:var(--ink-700);margin:.85rem 0 0;padding-left:1.1rem}.auth-benefits li+li{margin-top:.42rem}.auth-form{gap:.9rem;display:grid}.auth-field{gap:.35rem;display:grid}.auth-field span{color:var(--ink-700);font-weight:620}.auth-field textarea{resize:vertical;width:100%;min-height:160px}.auth-error{color:var(--danger);background:var(--danger-soft);border:1px solid #efc1c5;border-radius:10px;margin:0;padding:.55rem .7rem}.auth-actions{flex-wrap:wrap;gap:.5rem;display:flex}.auth-profile{color:var(--ink-700);background:#edf8f3;border:1px solid #bfd7cf;border-radius:12px;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:1rem;padding:.7rem .8rem;display:flex}.dashboard-module-switches{flex-wrap:wrap;gap:.4rem;display:flex}.dashboard-module-toggle{color:#355954;background:#f4faf8;border:1px solid #b2c8c2;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.82rem;display:inline-flex}.context-chip--auth{background:#eaf7f2;border-color:#95bfb2}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=880px){.app-shell{width:min(1180px,100% - 1rem);margin-top:1rem}.topbar{flex-direction:column;align-items:stretch;padding:.95rem 1rem}.topbar-shortcuts,.topbar-meta-row,.topbar-actions-row{justify-content:flex-start;align-items:flex-start}.auth-shell{width:min(1120px,100% - 1rem)}.auth-layout,.context-grid,.operations-grid,.auth-spotlight{grid-template-columns:1fr}.page-nav-stack{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;padding:0;position:static}.toolbar-row{align-items:stretch}.nav-btn,.btn,button,.download-link{min-height:38px}}@media (width<=560px){.app-shell{width:min(1180px,100% - .75rem);margin-top:.8rem}.module-header{margin-bottom:.8rem}.module-actions{width:100%}.topbar-title-row{align-items:flex-start}.topbar-title-row .context-chip{font-size:.72rem}.module-actions .btn{text-align:center;flex:auto}.table-wrap{border-radius:8px}}
