:root{--bg:#080d0b;--panel:#101714;--panel2:#17211d;--line:#293a32;--green:#39ff88;--green2:#10b981;--text:#eef7f2;--muted:#9eb2a8;--danger:#ff8c8c;--shadow:0 24px 80px rgba(0,0,0,.35)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.hidden{display:none!important}.eyebrow{margin:0 0 8px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.14em}.muted{color:var(--muted)}
.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.brand-panel{padding:8vw;display:flex;flex-direction:column;justify-content:center;gap:42px;background:radial-gradient(circle at 22% 18%,rgba(57,255,136,.16),transparent 32%),linear-gradient(140deg,#07100b,#101b16)}.brand-mark,.mini-mark{display:grid;place-items:center;border:1px solid rgba(57,255,136,.5);background:rgba(57,255,136,.08);color:var(--green);box-shadow:0 0 34px rgba(57,255,136,.15)}.brand-mark{width:72px;height:72px;border-radius:22px;font-size:36px;font-weight:900}.brand-panel h1{font-size:clamp(42px,6vw,82px);margin:0;line-height:.95}.tagline{color:var(--muted);font-size:18px}.brand-copy{display:flex;flex-direction:column;gap:8px;max-width:520px}.brand-copy strong{font-size:24px}.brand-copy span{color:var(--muted);line-height:1.6}.login-panel{display:grid;place-items:center;padding:40px;background:#0b110e}.login-card{width:min(420px,100%);display:flex;flex-direction:column;gap:22px;background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:36px;box-shadow:var(--shadow)}h2,h3{margin:0}.login-card label,.modal label{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:13px;font-weight:700}.login-card input,.modal input,.context-select select{border:1px solid var(--line);background:#0a100d;color:var(--text);border-radius:12px;padding:14px;outline:none}.login-card input:focus,.modal input:focus,.context-select select:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(16,185,129,.14)}.primary{border:0;border-radius:12px;background:var(--green);color:#06110a;padding:14px 18px;font-weight:900;cursor:pointer}.primary:disabled{opacity:.55;cursor:not-allowed}.error{padding:12px;border-radius:10px;background:rgba(255,80,80,.12);color:var(--danger);font-size:13px}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;display:flex;flex-direction:column;background:#0b120f;border-right:1px solid var(--line)}.logo-row{display:flex;gap:12px;align-items:center;margin-bottom:34px}.mini-mark{width:40px;height:40px;border-radius:13px;font-weight:900}.logo-row div:last-child{display:flex;flex-direction:column}.logo-row small{color:var(--muted);margin-top:3px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item,.text-button{border:0;background:none;color:var(--muted);cursor:pointer;text-align:left}.nav-item{padding:12px 14px;border-radius:10px;font-weight:700}.nav-item:hover,.nav-item.active{background:rgba(57,255,136,.08);color:var(--green)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:5px;padding:14px}.sidebar-footer small{color:var(--muted)}.text-button{padding:12px 0;color:var(--danger)}.workspace{min-width:0}.topbar{min-height:90px;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(8,13,11,.88);backdrop-filter:blur(12px);position:sticky;top:0;z-index:5}.context-select{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;font-weight:800}.context-select select{min-width:230px;padding:10px}.content{padding:32px;display:flex;flex-direction:column;gap:32px}.hero-card{display:flex;justify-content:space-between;gap:30px;padding:30px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(120deg,rgba(57,255,136,.08),transparent 42%),var(--panel)}.hero-card p{color:var(--muted);max-width:700px}.hero-status{min-width:210px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;padding:18px;border-radius:16px;background:#0b120f}.hero-status small{color:var(--muted)}.pulse{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 18px var(--green)}.section-title{display:flex;justify-content:space-between;margin-bottom:16px}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.module-card{min-height:180px;padding:20px;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:18px;background:var(--panel);cursor:pointer;transition:.18s transform,.18s border-color}.module-card:hover{transform:translateY(-3px);border-color:rgba(57,255,136,.48)}.module-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(57,255,136,.09);color:var(--green);font-weight:900}.module-card p{color:var(--muted);font-size:13px;line-height:1.5;margin:0}.module-meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center}.badge{padding:5px 8px;border-radius:999px;background:#24332c;color:#b8cec2;font-size:10px;font-weight:900}.badge.borrador{background:rgba(57,255,136,.1);color:var(--green)}.badge.planificado{background:rgba(255,190,70,.1);color:#ffd084}.toast{position:fixed;right:24px;bottom:24px;z-index:30;padding:14px 18px;border-radius:12px;background:#173324;color:var(--text);box-shadow:var(--shadow)}.loading{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:rgba(3,7,5,.62)}.spinner{width:42px;height:42px;border:4px solid rgba(57,255,136,.18);border-top-color:var(--green);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;z-index:35;display:grid;place-items:center;background:rgba(0,0,0,.72);padding:20px}.modal{width:min(440px,100%);padding:28px;display:flex;flex-direction:column;gap:18px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow)}
@media(max-width:860px){.login-layout{grid-template-columns:1fr}.brand-panel{display:none}.app{grid-template-columns:1fr}.sidebar{height:auto;position:static;flex-direction:row;align-items:center;gap:16px}.sidebar nav{flex-direction:row}.sidebar-footer{margin:0 0 0 auto}.sidebar-footer span,.sidebar-footer small{display:none}.topbar{position:static;align-items:flex-start;gap:15px}.content{padding:20px}.hero-card{flex-direction:column}.context-select{flex-direction:column;align-items:flex-start}.context-select select{min-width:180px}}@media(max-width:600px){.sidebar{overflow-x:auto}.logo-row div:last-child,.sidebar-footer{display:none}.topbar{flex-direction:column}.context-select,.context-select select{width:100%}.module-grid{grid-template-columns:1fr}}
.backend-note{margin-top:8px;color:var(--muted);font-size:12px}.primary[aria-busy="true"]{opacity:.65;pointer-events:none}

/* Fase 6 — superficies operativas */
.view-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.view-header .muted{max-width:760px;margin-bottom:0}.secondary{border:1px solid var(--line);border-radius:11px;background:#101a15;color:var(--text);padding:11px 15px;font-weight:800;cursor:pointer}.secondary:hover{border-color:rgba(57,255,136,.48);color:var(--green)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;min-width:0}.panel h4{margin:0 0 16px;font-size:16px}.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid h4,.form-grid button,.form-grid .notice{grid-column:1/-1}.form-grid label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:12px;font-weight:800}.form-grid input,.form-grid select,.form-grid textarea,.inline input{border:1px solid var(--line);background:#0a100d;color:var(--text);border-radius:10px;padding:11px;outline:none;width:100%}.form-grid textarea{min-height:90px;resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.inline input:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(16,185,129,.12)}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.kpi-grid.compact{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.kpi{display:flex;flex-direction:column;gap:6px;min-height:120px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.kpi small,.kpi span{color:var(--muted)}.kpi strong{font-size:22px}.alert-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.alert-chip{padding:7px 10px;border-radius:999px;background:rgba(255,190,70,.1);color:#ffd084;font-size:11px}.notice{padding:16px;border:1px solid var(--line);border-radius:14px;background:#0d1712;color:var(--muted)}.notice.warning{border-color:rgba(255,190,70,.3);color:#ffd084}.skeleton-card{padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--muted)}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{position:sticky;top:0;background:#101914;color:#b9cbbf;font-size:10px;text-transform:uppercase;letter-spacing:.05em}td{color:#dde8e1}.empty{padding:22px;text-align:center;color:var(--muted)}.inline{display:flex;gap:10px}.action-row{display:flex;gap:10px;flex-wrap:wrap}.table-link{border:0;background:none;color:var(--green);cursor:pointer;font-weight:800;padding:0}.link{color:var(--green);font-weight:800}.legacy-preview{max-height:300px;overflow:auto;background:#09100d;border-radius:10px;padding:10px;margin-top:10px}.legacy-preview pre{font-size:10px;white-space:pre-wrap}.result-card{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:12px;background:#0b120f;margin-bottom:10px}.result-card small{color:#ffd084}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.panel-grid,.form-grid{grid-template-columns:1fr}.form-grid h4,.form-grid button{grid-column:auto}.kpi-grid{grid-template-columns:1fr 1fr}.view-header{flex-direction:column}.view-header .secondary{width:100%}th,td{padding:9px 8px}.content{gap:22px}}@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}.action-row>*{width:100%}.inline{flex-direction:column}}


/* Fase 6.1 — botones contenidos y listas en modal */
.primary,.secondary,.action-button{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(57,255,136,.42);border-radius:11px;background:#0a100d;color:var(--text);padding:11px 16px;font-weight:850;cursor:pointer;box-shadow:0 0 0 1px rgba(57,255,136,.04),0 0 18px rgba(57,255,136,.08);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease;width:auto;min-height:42px;align-self:start}
.primary::before,.secondary::before,.action-button::before{content:"";position:absolute;inset:-2px;background:conic-gradient(from 0deg,transparent 0 68%,rgba(57,255,136,.9) 76%,transparent 84%);z-index:-2;animation:agoraBorderSpin 5s linear infinite;opacity:.55}
.primary::after,.secondary::after,.action-button::after{content:"";position:absolute;inset:1px;border-radius:9px;background:#0a100d;z-index:-1}
.primary:hover,.secondary:hover,.action-button:hover{transform:translateY(-1px);border-color:rgba(57,255,136,.8);box-shadow:0 0 24px rgba(57,255,136,.16);color:var(--green)}
.primary:disabled,.secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}
@keyframes agoraBorderSpin{to{transform:rotate(360deg)}}
.form-grid button{grid-column:auto}.form-grid .form-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.form-actions .primary,.form-actions .secondary{min-width:150px}
.modal-large{width:min(1180px,96vw);max-height:min(88vh,900px);padding:0;gap:0;overflow:hidden}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line);background:#0c1511}.modal-head h3{margin:0}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#0a100d;color:var(--text);font-size:24px;cursor:pointer}.icon-button:hover{border-color:var(--green);color:var(--green)}
.modal-body{padding:20px 24px;overflow:auto;min-height:100px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--line);background:#0c1511}.modal-body .table-wrap{max-height:62vh;overflow:auto}.modal-body table{min-width:760px}
.list-launchers{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.list-launcher{display:flex;flex-direction:column;gap:5px;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:14px;background:#0b120f;color:var(--text);cursor:pointer;text-align:left}.list-launcher:hover{border-color:rgba(57,255,136,.55)}.list-launcher strong{font-size:14px}.list-launcher small{color:var(--muted)}
.panel-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.mini-stat{padding:7px 10px;border-radius:999px;background:rgba(57,255,136,.08);color:var(--green);font-size:11px;font-weight:800}
.admin-date{border-color:rgba(255,208,132,.34)!important}.admin-hint{color:#ffd084;font-size:11px;grid-column:1/-1}
@media(prefers-reduced-motion:reduce){.primary::before,.secondary::before,.action-button::before{animation:none}}
@media(max-width:780px){.modal-backdrop{padding:0}.modal-large{width:100vw;height:100dvh;max-height:none;border-radius:0}.modal-head{padding:16px}.modal-body{padding:14px 16px}.modal-actions{padding:12px 16px}.modal-body .table-wrap{max-height:calc(100dvh - 165px)}.form-actions .primary,.form-actions .secondary{width:100%}.primary,.secondary,.action-button{max-width:100%}}


/* Fase 6.2 — UX transversal: botones contenidos, reportes y selectores buscables */
.primary,.secondary,.list-launcher{position:relative;overflow:hidden;border:1px solid rgba(57,255,136,.52);background:#09110d;color:var(--text);box-shadow:0 0 12px rgba(57,255,136,.10),inset 0 0 0 1px rgba(57,255,136,.03);transition:.18s transform,.18s box-shadow,.18s border-color}.primary{color:var(--green)}.primary:hover,.secondary:hover,.list-launcher:hover{transform:translateY(-1px);border-color:rgba(57,255,136,.9);box-shadow:0 0 18px rgba(57,255,136,.20),inset 0 0 16px rgba(57,255,136,.03)}.primary::after,.secondary::after,.list-launcher::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from 0deg,transparent 0 72%,rgba(57,255,136,.9) 78%,transparent 84% 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;animation:neonOrbit62 5.5s linear infinite;opacity:.55}@keyframes neonOrbit62{to{transform:rotate(360deg)}}.form-actions .primary,.form-actions .secondary{width:auto;min-width:150px}.panel-actions{display:flex;gap:10px;flex-wrap:wrap}.full-span{grid-column:1/-1}
.report-toolbar{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:12px 0 14px}.report-search{flex:1;display:flex;align-items:center;gap:8px;max-width:620px;border:1px solid var(--line);background:#09100d;border-radius:12px;padding:0 12px}.report-search:focus-within{border-color:var(--green2);box-shadow:0 0 0 3px rgba(16,185,129,.12)}.report-search span{color:var(--green);font-size:20px}.report-search input{width:100%;border:0;background:transparent;color:var(--text);padding:12px 0;outline:none}.report-sort{border:0;background:none;color:inherit;font:inherit;font-weight:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;padding:0;text-align:left}.report-sort:hover{color:var(--green)}
.smart-select{position:relative;width:100%}.smart-select-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.smart-select-input{padding-right:46px!important}.smart-select-button{position:absolute;right:5px;top:5px;width:34px;height:34px;border:1px solid rgba(57,255,136,.35);border-radius:9px;background:#0b1510;color:var(--green);cursor:pointer;z-index:2}.smart-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:22;max-height:260px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:#0a120e;box-shadow:0 18px 50px rgba(0,0,0,.5)}.smart-select-option{display:block;width:100%;border:0;border-radius:8px;background:transparent;color:var(--text);padding:10px 11px;text-align:left;cursor:pointer}.smart-select-option:hover,.smart-select-option.selected{background:rgba(57,255,136,.09);color:var(--green)}.smart-select-empty{padding:12px;color:var(--muted)}
.role-editor{padding:14px;border:1px solid var(--line);border-radius:14px;background:#0b120f}.role-editor-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}.role-editor-head input{max-width:320px}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:280px;overflow:auto}.role-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;padding:9px;border:1px solid var(--line);border-radius:10px;background:#09100d}.role-check input{width:auto!important;margin-top:3px}.role-check span{display:flex;flex-direction:column;gap:3px}.role-check small{color:var(--muted);font-weight:500}
@media(max-width:700px){.form-actions .primary,.form-actions .secondary{width:auto;min-width:0;flex:1 1 145px}.report-toolbar{align-items:stretch;flex-direction:column}.report-search{max-width:none;width:100%}.role-grid{grid-template-columns:1fr}.smart-select-menu{max-height:42vh}.modal-actions{flex-wrap:wrap}.modal-actions .primary,.modal-actions .secondary{flex:1 1 130px}}

/* Fase 7.0 — navegación por contextos de trabajo. */
.context-nav{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:18px;min-height:0;overflow:auto}
.context-nav-group{display:flex;flex-direction:column;gap:5px}.context-nav-group>span{padding:0 12px 5px;color:var(--green);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.context-nav-item{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:9px;text-align:left;cursor:pointer;font-size:12px;font-weight:700}.context-nav-item:hover{background:rgba(57,255,136,.07);color:var(--text)}
.context-module-sections{display:flex;flex-direction:column;gap:30px}.context-section{scroll-margin-top:110px}.context-section .section-title{margin-bottom:14px}
@media(max-width:860px){.context-nav{display:none}}
