.header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#09090bb8;border-bottom:1px solid var(--color-border);color:var(--color-text);justify-content:space-between;padding:10px 20px;z-index:10}.header,.header-left{align-items:center;display:flex}.header-left{gap:12px}.hamburger{align-items:center;background:none;border:none;border-radius:6px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;padding:6px}.hamburger:hover{background:var(--color-sidebar-hover);color:var(--color-text)}.header-logo{color:var(--color-primary);display:inline-flex}.wordmark{font-weight:700;letter-spacing:-.03em}.wordmark-dot{color:var(--color-primary)}.header-title{line-height:1.1}.header-subtitle{color:var(--color-text-faint);font-size:11px}.header-right{align-items:center;display:flex;gap:16px}.header-user{text-align:right}.header-user-name{font-size:13px;font-weight:600}.header-user-roles{color:var(--color-text-faint);font-size:10.5px}.logout-btn{align-items:center;background:#0000;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;padding:6px 14px;transition:background .15s,color .15s}.logout-btn:hover{background:var(--color-sidebar-hover);color:var(--color-text)}.sidebar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#09090bb8;border-right:1px solid var(--color-border);color:var(--color-text-muted);flex-shrink:0;overflow-y:auto;padding:16px 12px;transition:width .2s;width:232px}.sidebar.collapsed{padding:16px 8px;width:60px}.module-item,.nav-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;font-size:13.5px;gap:10px;margin-bottom:4px;padding:9px 12px;transition:background .12s,color .12s}.module-item:hover,.nav-item:hover{background:var(--color-sidebar-hover);color:var(--color-text)}.module-item.active,.nav-item.active{background:var(--color-primary-dim);color:#34d399}.module-icon,.nav-icon{flex-shrink:0}.modules-section h3{color:var(--color-text-faint);font-size:10.5px;font-weight:500;letter-spacing:.09em;margin:20px 8px 8px;text-transform:uppercase}.module-name{font-size:13px;font-weight:600}.module-desc{color:var(--color-text-faint);font-size:11px}.module-item.active .module-desc{color:#34d399b3}.collapsed-item{justify-content:center;margin-top:12px}.no-modules{color:var(--color-text-faint);font-size:12px;padding:16px 8px;text-align:center}.no-modules-icon{margin-bottom:6px}.no-modules .hint{font-style:italic}.dashboard{margin:0 auto;max-width:1120px}.bento{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-areas:"hero jobs" "projects jobs";grid-template-columns:2fr 1fr}.bento-hero{grid-area:hero;margin-bottom:0}.bento-jobs{grid-area:jobs;margin-bottom:0}.bento-projects{grid-area:projects;margin-bottom:0}@media (max-width:900px){.bento{grid-template-areas:"hero" "projects" "jobs";grid-template-columns:1fr}}.bento-hero h2{font-size:22px;margin:0 0 6px}.bento-hero p{color:var(--color-text-muted);font-size:13.5px;line-height:1.55;max-width:56ch}.flow{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.flow-step{background:var(--color-primary-dim);border:1px solid #10b98140;border-radius:999px;color:#34d399;font-size:13px;font-weight:500;gap:7px;padding:7px 14px}.flow-arrow,.flow-step{align-items:center;display:inline-flex}.flow-arrow{color:var(--color-text-faint);gap:3px}.bento-projects-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.bento-jobs h3,.bento-projects-head h3{align-items:center;color:var(--color-text);display:inline-flex;font-size:14px;gap:8px;margin:0}.bento-jobs h3{margin-bottom:12px}.bento-project-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.bento-project{border:1px solid var(--color-border);border-radius:10px;cursor:pointer;padding:16px;transition:border-color .15s,background .15s}.bento-project:hover{background:var(--color-surface-2);border-color:var(--color-primary)}.bento-project-icon{color:var(--color-primary)}.bento-project-name{font-size:14px;font-weight:600;letter-spacing:-.01em;margin-top:10px}.bento-project-meta{color:var(--color-text-faint);font-size:11px;margin-top:2px}.jobs-feed{list-style:none;margin:0;padding:0}.jobs-feed li{border-bottom:1px solid var(--color-border);padding:10px 2px}.jobs-feed li:last-child{border-bottom:none}.jobs-feed-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.jobs-feed-tipo{font-size:13px;font-weight:500}.jobs-feed-meta{color:var(--color-text-faint);font-size:11px;margin-top:3px}.projects{margin:0 auto;max-width:1080px}.projects-top{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin:12px 0}.projects-top h2{font-size:20px;margin:0}.proyecto-titulo{align-items:center;display:inline-flex;gap:10px}.projects-actions{align-items:center;display:flex;gap:14px}.project-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.project-card{cursor:pointer;margin-bottom:0;transition:border-color .15s,background .15s}.project-card:hover{background:var(--color-surface-2);border-color:var(--color-primary)}.project-card.inactivo{opacity:.55}.project-card-head{align-items:center;display:flex;gap:10px}.project-card-head h3{flex:1 1;font-size:15px;margin:0}.project-icon{color:var(--color-primary);flex-shrink:0}.project-card-foot{font-size:11px;margin-top:10px}.project-dash{padding-bottom:16px}.dash-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:16px}.dash-stat{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 14px;text-align:center}.dash-stat.ok{background:#10b9810f;border-color:#10b98140}.dash-stat.warn{background:#f59e0b0f;border-color:#f59e0b40}.dash-num{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.dash-label{color:var(--color-text-muted);font-size:11.5px;margin-top:2px}.dash-bar{background:var(--color-border);border-radius:999px;display:flex;height:12px;margin-bottom:12px;overflow:hidden}.dash-bar-seg{height:100%;min-width:6px;transition:width .4s ease}.dash-leyenda{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.dash-chip{align-items:center;background:#0000;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;padding:4px 12px;transition:border-color .12s,background .12s}.dash-chip strong{color:var(--color-text)}.dash-chip:hover:not(:disabled){background:var(--color-surface-2);border-color:#3f3f46}.dash-chip.activo{background:var(--color-primary-dim);border-color:var(--color-primary);color:#34d399}.dash-chip.activo strong{color:#34d399}.dash-chip.vacio{cursor:default;opacity:.4}.dash-dot{border-radius:50%;flex-shrink:0;height:9px;width:9px}.story-title{color:var(--color-text);cursor:pointer;font-weight:600;letter-spacing:-.01em}.story-title:hover{color:#34d399}.story-actions{display:flex;gap:6px;white-space:nowrap}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-backdrop{align-items:center;animation:modal-backdrop-in .2s ease-out;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#000000a6;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal{animation:modal-in .2s ease-out;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;max-height:88vh;max-width:92vw;overflow-y:auto;padding:24px 28px;width:480px}.modal.modal-ancho{width:680px}.modal h3{margin-top:0}.modal-label{color:var(--color-text-muted);display:block;font-size:12px;font-weight:500;margin:14px 0 5px}.modal-spacer{flex:1 1}.adjuntos-lista{list-style:none;margin:8px 0 0;padding:0}.adjuntos-lista li{align-items:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);display:flex;font-size:13px;gap:10px;justify-content:space-between;margin-bottom:6px;padding:7px 10px}.adjunto-nombre{align-items:center;display:inline-flex;gap:7px;word-break:break-all}.acciones{flex-wrap:wrap;gap:12px;margin-top:16px}.acciones,.check-line{align-items:center;display:flex}.check-line{color:var(--color-text-muted);cursor:pointer;font-size:13px;gap:6px}.check-line input{accent-color:var(--color-primary)}.btn-xs{font-size:12px;padding:4px 10px}.btn-xs svg{height:13px;width:13px}.spin{animation:spin 1s linear infinite}.pipeline{margin:0 auto;max-width:1080px}.pipeline-top{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin:12px 0 4px}.pipeline-top h2{font-size:19px;margin:0}.stepper{margin:16px 0 4px}.stepper,.stepper-step{align-items:center;display:flex;gap:8px}.stepper-step{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-muted);cursor:pointer;font-size:13px;font-weight:500;padding:7px 18px 7px 9px;transition:border-color .15s,color .15s}.stepper-step:disabled{cursor:not-allowed;opacity:.45}.stepper-step.active{border-color:var(--color-primary);color:var(--color-text)}.stepper-step.done{color:#34d399}.stepper-dot{align-items:center;background:var(--color-sidebar-hover);border-radius:50%;display:inline-flex;font-family:var(--font-mono);font-size:12px;height:24px;justify-content:center;width:24px}.stepper-step.active .stepper-dot{background:var(--color-primary);color:#052e22}.stepper-step.done .stepper-dot{background:var(--color-primary-dim);color:#34d399}.stepper-line{background:var(--color-border);flex:0 0 26px;height:1px}.checkpoint-hint{display:flex;font-size:12.5px;margin:6px 0 16px}.checkpoint-hint,.ok-line{align-items:center;gap:7px}.ok-line{color:#34d399;display:inline-flex}.result-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.result-header h3{font-size:16px;margin:0}.meta-line{align-items:center;color:var(--color-text-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:10px;margin:10px 0 14px}.narrativa{background:var(--color-primary-dim);border-left:2px solid var(--color-primary);border-radius:0 var(--radius) var(--radius) 0;color:var(--color-text);font-size:13.5px;line-height:1.55;margin:12px 0;padding:10px 16px}.muted{color:var(--color-text-muted)}.pequeno{font-size:12px}.bloque-details{margin:12px 0}.bloque-details summary{color:var(--color-text-muted);cursor:pointer;font-size:13.5px;font-weight:500}.bloque-details summary:hover{color:var(--color-text)}.bloque-details ul{font-size:13px;line-height:1.5}.preguntas-bloque h4{margin-bottom:4px}.pregunta-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);margin:10px 0;padding:12px 16px}.pregunta-card p{font-size:13.5px;margin:6px 0}.pregunta-head{align-items:center;display:flex;font-size:12px;gap:10px}.input-text.full{width:100%}textarea.input-area.corta{min-height:80px}.adjuntos-chips{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.run-status{margin-top:14px}.run-status-row{align-items:center;display:flex;font-size:13.5px;gap:10px}.loading-spinner.small{border-width:2px;flex-shrink:0;height:16px;width:16px}.progress-bar{background:var(--color-border);border-radius:999px;height:5px;margin-top:10px;overflow:hidden}.progress-bar div{background:var(--color-primary);border-radius:999px;height:100%;transition:width 1s linear}.caso-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);margin:8px 0;padding:10px 16px}.caso-card summary{align-items:center;cursor:pointer;display:flex;flex-wrap:wrap;font-size:13.5px;font-weight:500;gap:10px}.caso-card summary code{color:var(--color-primary)}.caso-card pre{margin:10px 0}.caso-card p{font-size:13.5px}.file-browser{grid-gap:14px;display:grid;gap:14px;grid-template-columns:280px 1fr;margin-top:14px}.file-list{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;list-style:none;margin:0;max-height:480px;overflow-y:auto;padding:0}.file-list li{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;padding:7px 12px;word-break:break-all}.file-list li:last-child{border-bottom:none}.file-list li:hover{background:var(--color-surface-2);color:var(--color-text)}.file-list li.active{background:var(--color-primary-dim);color:#34d399}.file-preview{margin:0}.vacio{padding:40px;text-align:center}.vacio-icon{color:var(--color-text-faint);margin-bottom:8px}@media (max-width:800px){.file-browser{grid-template-columns:1fr}}.admin{margin:0 auto;max-width:1080px}.admin h2{margin-top:0}.admin-titulo{align-items:center;display:inline-flex;gap:10px}.admin-titulo svg{color:var(--color-primary)}.stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:14px 0}.stat-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:14px;text-align:center}.stat-card.ok{background:#10b9810f;border-color:#10b98140}.stat-card.error{background:#ef44440f;border-color:#ef444440}.stat-num{font-size:26px;font-weight:700;letter-spacing:-.02em}.stat-label{color:var(--color-text-muted);font-size:11.5px}.audit-filtros{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.audit-filtros .input-text{flex:1 1;min-width:180px}.audit-scroll{max-height:420px;overflow-y:auto}.app{display:flex;flex-direction:column;height:100vh}.app-body{display:flex;flex:1 1;overflow:hidden}.main-content{flex:1 1;overflow-y:auto;padding:28px 36px}.no-access{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);margin:60px auto;max-width:420px;padding:32px;text-align:center}.login-screen{align-items:center;background:radial-gradient(600px 300px at 70% 20%,#10b98112,#0000),var(--color-bg);display:flex;height:100vh;justify-content:center}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;max-width:440px;padding:48px 56px;text-align:center}.login-logo{display:flex;justify-content:center;margin-bottom:18px}.login-card h1{font-size:26px;letter-spacing:-.03em;margin:0 0 8px}.login-card p{color:var(--color-text-muted);font-size:14px;line-height:1.5;margin:0 0 28px}.login-btn{background:var(--color-primary);border:none;border-radius:var(--radius);color:#052e22;cursor:pointer;font-size:14px;font-weight:600;padding:11px 28px;transition:background .15s}.login-btn:hover{background:var(--color-primary-dark);color:#fff}.loading-screen{align-items:center;background:var(--color-bg);color:var(--color-text-muted);display:flex;flex-direction:column;gap:16px;height:100vh;justify-content:center}.loading-spinner{animation:spin .8s linear infinite;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:38px;width:38px}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;margin-bottom:16px;padding:20px 24px}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-size:13.5px;font-weight:500;gap:7px;padding:8px 16px;transition:background .15s,border-color .15s,color .15s}.btn:disabled{cursor:not-allowed;opacity:.45}.btn svg{flex-shrink:0;height:15px;width:15px}.btn-primary{background:var(--color-primary);color:#052e22;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);color:#fff}.btn-secondary{background:#0000;border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:#3f3f46}.btn-success{background:var(--color-primary);color:#052e22;font-weight:600}.btn-success:hover:not(:disabled){background:var(--color-primary-dark);color:#fff}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;letter-spacing:0;padding:3px 10px;white-space:nowrap}.badge:before{animation:pulse-dot 2s ease-in-out infinite;background:currentColor;border-radius:50%;content:"";flex-shrink:0;height:6px;width:6px}.badge-ok{background:#10b9811a;color:#34d399}.badge-warn{background:#f59e0b1a;color:#fbbf24}.badge-error{background:#ef44441a;color:#f87171}.badge-info{background:#3b82f61a;color:#60a5fa}.alert{border:1px solid;border-radius:var(--radius);font-size:13.5px;margin:12px 0;padding:12px 16px}.alert-error{background:#ef444414;border-color:#ef444440;color:#fca5a5}.alert-info{background:#3b82f614;border-color:#3b82f640;color:#93c5fd}textarea.input-area{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-family:var(--font-mono);font-size:12.5px;line-height:1.55;min-height:180px;padding:12px;resize:vertical;width:100%}input.input-text:focus,select.input-select:focus,textarea.input-area:focus{border-color:var(--color-primary);outline:1px solid var(--color-primary)}input.input-text,select.input-select{background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:13.5px;padding:8px 12px}input.input-text,pre.code-block,select.input-select{border:1px solid var(--color-border);border-radius:var(--radius)}pre.code-block{background:#0c0c0e;color:#d4d4d8;font-family:var(--font-mono);max-height:480px;overflow-x:auto;padding:16px;white-space:pre-wrap;word-break:break-word}table.data-table{border-collapse:collapse;font-size:13px;width:100%}.data-table th{color:var(--color-text-faint);font-size:11.5px;font-weight:500;letter-spacing:.04em;padding:8px 10px;text-align:left;text-transform:uppercase;white-space:nowrap}.data-table td,.data-table th{border-bottom:1px solid var(--color-border)}.data-table td{padding:9px 10px;vertical-align:top}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--color-surface-2)}.data-table code{color:var(--color-text-muted)}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100 900;src:url(/static/media/inter-latin.4f2981d82860061bca3e.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100 900;src:url(/static/media/inter-latin-ext.8bff79fbfaa8b8167a0b.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:100 800;src:url(/static/media/jbmono-latin.46a60ae0a9bc7ea5c49d.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:100 800;src:url(/static/media/jbmono-latin-ext.cc283ca583f19d366ec6.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}:root{--color-bg:#09090b;--color-surface:#18181b;--color-surface-2:#1f1f23;--color-sidebar:#09090bb8;--color-sidebar-hover:#27272a;--color-primary:#10b981;--color-primary-dark:#059669;--color-primary-dim:#10b9811a;--color-text:#fafafa;--color-text-muted:#a1a1aa;--color-text-faint:#71717a;--color-border:#27272a;--color-ok:#10b981;--color-warn:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--radius:8px;--shadow:0 1px 2px #0006;--font-sans:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}*{box-sizing:border-box}html{color-scheme:dark}body{-webkit-font-smoothing:antialiased;background:#09090b;background:var(--color-bg);color:#fafafa;color:var(--color-text);font-family:Inter,system-ui,sans-serif;font-family:var(--font-sans);margin:0;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em}.mono,code,pre{font-family:JetBrains Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:12.5px}button{font-family:inherit}::selection{background:#10b9814d}*{scrollbar-color:#3f3f46 #0000;scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:#3f3f46;border-radius:4px}::-webkit-scrollbar-track{background:#0000}
/*# sourceMappingURL=main.f399b2d9.css.map*/