:root { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #e8eefb; background: #070b14; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 70% -10%, #192c57 0, transparent 35%), #070b14; }
button, a { font: inherit; } svg { width: 20px; height: 20px; }
.shell { min-height: 100vh; display: grid; grid-template-columns: 270px 1fr; }
.sidebar { border-right: 1px solid rgba(255,255,255,.07); padding: 28px 20px; display: flex; flex-direction: column; background: rgba(8,13,24,.86); backdrop-filter: blur(18px); }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 30px; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; color: #8ef0d0; background: linear-gradient(145deg,#173957,#102238); box-shadow: inset 0 0 0 1px rgba(142,240,208,.2); }
.brand strong { display: block; font-size: 17px; }.brand span { display: block; color: #71809a; font-size: 11px; margin-top: 2px; }
nav { display: grid; gap: 7px; } nav a { color: #8e9ab1; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; cursor: default; } nav a.active { color: white; background: linear-gradient(90deg,rgba(60,118,255,.22),rgba(41,232,186,.08)); box-shadow: inset 3px 0 #5a8cff; }
.trust-card { margin-top: auto; display: flex; gap: 10px; padding: 15px; border-radius: 15px; color: #8ef0d0; background: rgba(24,55,65,.45); border: 1px solid rgba(142,240,208,.12); }.small-icon{display:grid;place-items:center}.trust-card strong,.trust-card span{display:block}.trust-card strong{font-size:13px}.trust-card span{color:#718b8d;font-size:11px;margin-top:3px}
main { padding: 34px 44px 50px; max-width: 1600px; width: 100%; margin: 0 auto; } header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
h1,h2,h3 { margin: 0; font-weight: 750; letter-spacing: -.02em; } h1{font-size:30px} h2{font-size:clamp(28px,4vw,48px);max-width:720px;line-height:1.08}.eyebrow{color:#7391c7;font-weight:700;letter-spacing:.13em;font-size:11px;text-transform:uppercase;margin:0 0 8px}
.secure-pill{display:flex;align-items:center;gap:8px;color:#9da9bd;font-size:12px;padding:9px 12px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.03)}.secure-pill span,.status span{width:7px;height:7px;border-radius:50%;background:#5ee0b5;box-shadow:0 0 12px #5ee0b5}
.hero-card{border:1px solid rgba(113,150,255,.18);border-radius:26px;padding:42px;background:linear-gradient(135deg,rgba(24,43,80,.88),rgba(10,20,37,.9) 58%,rgba(17,61,57,.62));box-shadow:0 26px 80px rgba(0,0,0,.25);overflow:hidden;position:relative}.hero-card::after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(99,239,202,.12);border-radius:50%;right:-90px;top:-170px;box-shadow:0 0 0 42px rgba(99,239,202,.025),0 0 0 88px rgba(99,239,202,.018)}.hero-card>div{position:relative;z-index:1}.hero-card p:not(.eyebrow){color:#9eacc4;line-height:1.7;max-width:780px}
.flow{display:flex;align-items:center;gap:10px;margin-top:30px;flex-wrap:wrap}.flow-item{display:flex;align-items:center;gap:8px;color:#b9c5d9;font-size:12px}.flow-item span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:#07110f;font-weight:800;background:#80e7c3}.flow-item:not(:last-child)::after{content:"→";color:#52647f;margin-left:3px}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}.metrics article{border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:21px;display:grid;grid-template-columns:auto 1fr;column-gap:13px;background:rgba(13,20,35,.78)}.metrics .icon{grid-row:1/5;width:42px;height:42px;display:grid;place-items:center;color:#78a0ff;background:rgba(73,118,230,.1);border-radius:12px}.metrics span,.metrics strong,.metrics small{grid-column:2}.metrics span{color:#78869d;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.metrics strong{font-size:17px;margin-top:3px}.metrics small{color:#65738b;margin-top:4px}
.content-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr);gap:18px}.panel{border:1px solid rgba(255,255,255,.07);border-radius:20px;background:rgba(12,18,31,.82);padding:24px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.panel h3{font-size:18px}.panel button{display:flex;align-items:center;gap:5px;border:0;color:#83a8ff;background:transparent}
.project-list{display:grid}.project-row{display:grid;grid-template-columns:44px 1fr auto auto;gap:13px;align-items:center;padding:15px 0;border-top:1px solid rgba(255,255,255,.055)}.project-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#253e67,#18263e);color:#a9c1f5;font-weight:800;font-size:11px}.project-main strong,.project-main span{display:block}.project-main span,.project-version{color:#6f7d94;font-size:12px;margin-top:3px}.status{display:flex;align-items:center;gap:7px;color:#8be1c4;font-size:12px}.status span{width:6px;height:6px}
.architecture-stack{display:grid;gap:10px}.architecture-stack>div{display:flex;gap:13px;align-items:center;padding:13px;border-radius:13px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.04)}.architecture-stack>div>span{color:#566985;font-weight:700;font-size:11px}.architecture-stack p,.architecture-stack strong,.architecture-stack small{margin:0;display:block}.architecture-stack strong{font-size:13px}.architecture-stack small{font-size:11px;color:#69778c;margin-top:3px}.architecture-stack .agent{border-color:rgba(94,224,181,.2);background:rgba(31,72,64,.22)}
@media(max-width:1050px){.shell{grid-template-columns:1fr}.sidebar{display:none}.content-grid{grid-template-columns:1fr}}@media(max-width:720px){main{padding:24px 16px}header{align-items:flex-start;gap:15px;flex-direction:column}.hero-card{padding:28px 22px}.metrics{grid-template-columns:1fr}.project-row{grid-template-columns:42px 1fr auto}.project-version{display:none}.flow-item:not(:last-child)::after{display:none}}
.compact-hero{padding:34px 38px}.compact-hero h2{font-size:clamp(27px,3.4vw,42px)}.release-grid{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)}.phase-chip{font-size:11px;color:#8be1c4;border:1px solid rgba(94,224,181,.18);padding:7px 10px;border-radius:999px;background:rgba(94,224,181,.06)}form{display:grid;gap:15px}label{display:grid;gap:7px;color:#8290a6;font-size:12px;font-weight:650}input,select{width:100%;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#0a1120;color:#e8eefb;padding:13px 14px;outline:none}input:focus,select:focus{border-color:#5a8cff;box-shadow:0 0 0 3px rgba(90,140,255,.12)}.file-field{position:relative}.file-field input{position:absolute;opacity:0;pointer-events:none}.file-field span{border:1px dashed rgba(117,155,245,.35);border-radius:14px;padding:24px;text-align:center;color:#9bb5eb;background:rgba(75,118,218,.055);cursor:pointer}.guardrail{display:grid;gap:5px;padding:13px 15px;border-radius:13px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.05)}.guardrail strong{font-size:12px}.guardrail span{font-size:11px;color:#718099;line-height:1.5}.primary{border:0!important;border-radius:12px!important;background:linear-gradient(110deg,#4f7df0,#45c9aa)!important;color:white!important;padding:13px 16px!important;justify-content:center!important;font-weight:750!important;cursor:pointer}.form-status{min-height:18px;margin:0;color:#8090a9;font-size:12px}.form-status.success{color:#73dcb8}.form-status.error{color:#ff8895}.job-list{display:grid}.job-row{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:14px 0;border-top:1px solid rgba(255,255,255,.055)}.job-dot{width:8px;height:8px;border-radius:50%;background:#71809a}.job-dot.queued{background:#eabf68}.job-dot.running,.job-dot.claimed{background:#6d9cff;box-shadow:0 0 12px #6d9cff}.job-dot.succeeded{background:#5ee0b5}.job-dot.failed{background:#ff7887}.job-row strong,.job-row small{display:block}.job-row strong{font-size:13px}.job-row small{font-size:10px;color:#65738b;margin-top:4px}.job-row em{font-style:normal;color:#8190a7;font-size:11px;text-transform:uppercase}.empty-state{padding:30px 10px;text-align:center;color:#65738b;font-size:12px}.safeguards-panel{margin-top:18px}.safeguards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.safeguards>div{display:flex;gap:10px;padding:14px;border-radius:12px;background:rgba(255,255,255,.025)}.safeguards strong{color:#5f82c6;font-size:11px}.safeguards span{color:#8b99ad;font-size:11px;line-height:1.45}.safeguards code{color:#b7c9ec}@media(max-width:1050px){.release-grid{grid-template-columns:1fr}.safeguards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.safeguards{grid-template-columns:1fr}.compact-hero{padding:26px 21px}}
.observability-panel{margin:18px 0}.observability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.observability-grid article{display:grid;gap:5px;padding:17px;border-radius:14px;background:linear-gradient(145deg,rgba(38,61,101,.32),rgba(15,27,45,.5));border:1px solid rgba(113,150,255,.1)}.observability-grid span{color:#7889a5;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.observability-grid strong{font-size:16px}.observability-grid small{color:#6e7d94;font-size:11px}@media(max-width:900px){.observability-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.observability-grid{grid-template-columns:1fr}}
.metrics{grid-template-columns:repeat(4,1fr)}
.operations-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.span-two{grid-column:1/-1}.compact-list{display:grid}.compact-row{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:13px 0;border-top:1px solid rgba(255,255,255,.055)}.compact-row strong,.compact-row small{display:block}.compact-row strong{font-size:13px}.compact-row small{font-size:11px;color:#708098;margin-top:4px}.compact-row em{font-size:10px;color:#77869c;font-style:normal}.severity{width:8px;height:8px;border-radius:50%;background:#ff7f8c}.severity.warning{background:#edbc64}.severity.ok,.severity.info{background:#5ee0b5}.severity.critical{background:#ff6678;box-shadow:0 0 12px rgba(255,102,120,.5)}.log-console{max-height:330px;overflow:auto;border:1px solid rgba(255,255,255,.05);border-radius:14px;background:#070c15;padding:8px}.log-console>div:not(.empty-state){display:grid;grid-template-columns:180px 1fr;gap:12px;padding:9px;border-bottom:1px solid rgba(255,255,255,.035)}.log-console span{color:#7496d4;font-size:10px}.log-console code{color:#aebad0;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.muted{color:#75849c;font-size:12px;line-height:1.6}.operations-grid .primary{width:100%;margin-top:16px}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.operations-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.metrics{grid-template-columns:1fr}.log-console>div:not(.empty-state){grid-template-columns:1fr}}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%);padding:34px;border:1px solid rgba(255,255,255,.08);border-radius:24px;background:rgba(12,18,31,.96);box-shadow:0 30px 90px rgba(0,0,0,.45)}.auth-card h1{margin-bottom:12px}.secondary{border:1px solid rgba(255,255,255,.12);border-radius:11px;background:rgba(255,255,255,.04);color:#b7c4d9;padding:10px 14px;cursor:pointer}.header-actions{display:flex;align-items:center;gap:10px}@media(max-width:720px){.header-actions{width:100%;justify-content:space-between}}

/* WP-P2A — navegación real, registro de proyectos y seguridad de acceso */
nav .nav-link{width:100%;border:0;color:#8e9ab1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:transparent;text-align:left;cursor:pointer}
nav .nav-link:hover:not(:disabled){color:#dbe6fa;background:rgba(255,255,255,.035)}
nav .nav-link.active{color:white;background:linear-gradient(90deg,rgba(60,118,255,.22),rgba(41,232,186,.08));box-shadow:inset 3px 0 #5a8cff}
nav .nav-link:disabled{cursor:not-allowed;opacity:.48}
nav .nav-link em{font-size:9px;font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:#63738c}
.button-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.runtime-health{min-width:170px;padding:15px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:rgba(7,13,24,.42)}
.runtime-health strong,.runtime-health span{display:block}.runtime-health strong{font-size:14px}.runtime-health span{margin-top:5px;color:#7c8ba2;font-size:11px}
.runtime-health.ready{border-color:rgba(94,224,181,.22);background:rgba(36,101,80,.16)}.runtime-health.ready strong{color:#75e3bd}
.runtime-health.blocked{border-color:rgba(255,102,120,.2);background:rgba(111,35,48,.16)}.runtime-health.blocked strong{color:#ff8996}
.runtime-health.pending strong{color:#e4bd70}
.field-hint{color:#65758f;font-size:11px;line-height:1.45;margin-top:-7px}
textarea{width:100%;resize:vertical;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:#070d18;color:#c7d4e9;padding:15px;outline:none;font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;tab-size:2}
textarea:focus{border-color:#5a8cff;box-shadow:0 0 0 3px rgba(90,140,255,.12)}
.project-registry-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:18px;margin-bottom:18px}
.registry-list{display:grid;gap:8px}.registry-row{width:100%;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;border:1px solid rgba(255,255,255,.055);border-radius:14px;background:rgba(255,255,255,.018);padding:13px;text-align:left;color:#dce7f8;cursor:pointer}.registry-row:hover,.registry-row.selected{border-color:rgba(96,139,255,.32);background:rgba(70,108,193,.11)}
.registry-row strong,.registry-row span{display:block}.registry-row strong{font-size:13px}.registry-row span{font-size:10px;color:#6f8099;margin-top:4px}.registry-row em{font-style:normal;color:#77d7b7;font-size:10px;text-transform:uppercase}
.project-avatar.large{width:54px;height:54px;border-radius:17px;font-size:15px}.project-detail-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.project-detail-head h3{margin:2px 0 4px}.project-detail-head p{margin:0;color:#718099;font-size:12px;line-height:1.5}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}.detail-grid>div{padding:13px;border:1px solid rgba(255,255,255,.055);border-radius:12px;background:rgba(255,255,255,.018)}.detail-grid span,.detail-grid strong,.detail-grid code{display:block}.detail-grid span{color:#6e7e96;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.detail-grid strong,.detail-grid code{margin-top:6px;color:#c8d5e8;font-size:11px;overflow-wrap:anywhere}
.detail-section{margin-top:18px}.detail-section h4{margin:0 0 10px;font-size:12px;color:#98a7bc}.domain-chip{display:inline-flex;margin:0 7px 7px 0;padding:7px 10px;border-radius:999px;background:rgba(63,113,220,.1);border:1px solid rgba(93,137,234,.16);color:#9bb8f0;font-size:10px}.contract-row{display:grid;gap:4px;padding:10px 0;border-top:1px solid rgba(255,255,255,.045)}.contract-row strong{font-size:11px}.contract-row span{font-size:10px;color:#6f7f97;overflow-wrap:anywhere}.action-cloud{display:flex;flex-wrap:wrap;gap:7px}.action-cloud code{padding:6px 8px;border-radius:8px;background:#080e19;color:#8aa4d5;font-size:9px}
.registry-form-panel{margin-bottom:24px}.registry-form{margin-top:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .span-two{grid-column:1/-1}.secure-form-row{align-items:end}.secure-form-row .guardrail{min-height:76px;align-content:center}.registry-form .primary{width:auto;margin:0}
@media(max-width:1050px){.project-registry-grid{grid-template-columns:1fr}.runtime-health{min-width:0}.compact-hero{display:grid;gap:18px}}
@media(max-width:720px){.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .span-two{grid-column:auto}.project-detail-head{grid-template-columns:auto 1fr}.project-detail-head .phase-chip{grid-column:1/-1;width:max-content}.button-row{width:100%}.button-row>*{flex:1}}

/* WP-P2B — gestor de artefactos ZIP con cuarentena, progreso y cancelación */
.artifact-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(340px,.9fr) minmax(360px,1.18fr);gap:18px;margin-bottom:18px;align-items:start}
.artifact-upload-panel,.artifact-releases-panel,.artifact-inspection-panel{min-width:0}.artifact-inspection-panel{position:sticky;top:18px}
.upload-progress-card{display:grid;gap:9px;padding:14px;border-radius:14px;background:rgba(35,68,121,.18);border:1px solid rgba(90,140,255,.18)}
.upload-progress-card[hidden]{display:none}.upload-progress-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.upload-progress-head strong{font-size:12px}.upload-progress-head span{font-size:11px;color:#9cb6e9}
.progress-track{height:8px;border-radius:999px;background:#080e18;overflow:hidden;border:1px solid rgba(255,255,255,.05)}.progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4f7df0,#45c9aa);transition:width .18s ease}.upload-progress-card small{color:#71839f;font-size:10px}
.artifact-release-list{display:grid;gap:8px}.artifact-release-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;width:100%;padding:13px;border:1px solid rgba(255,255,255,.055);border-radius:14px;background:rgba(255,255,255,.018);color:#dce7f8;text-align:left;cursor:pointer}.artifact-release-row:hover,.artifact-release-row.selected{border-color:rgba(96,139,255,.32);background:rgba(70,108,193,.11)}.artifact-release-row strong,.artifact-release-row span{display:block}.artifact-release-row strong{font-size:13px}.artifact-release-row span{font-size:10px;color:#718099;margin-top:5px;overflow-wrap:anywhere}
.release-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;font-size:9px;font-style:normal;text-transform:uppercase;letter-spacing:.07em;border:1px solid rgba(255,255,255,.08);white-space:nowrap}.release-badge.success{color:#72deb9;background:rgba(44,138,106,.14);border-color:rgba(94,224,181,.18)}.release-badge.pending{color:#e6bf72;background:rgba(150,105,32,.13);border-color:rgba(234,191,104,.18)}.release-badge.running{color:#9cbaff;background:rgba(67,108,201,.18);border-color:rgba(109,156,255,.22)}.release-badge.danger{color:#ff8996;background:rgba(145,46,61,.15);border-color:rgba(255,120,135,.2)}.release-badge.muted{color:#8190a7;background:rgba(255,255,255,.025)}
.artifact-detail-grid .span-two{grid-column:1/-1}.inspection-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.inspection-summary>div{display:grid;gap:5px;padding:12px;border-radius:12px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05)}.inspection-summary span{font-size:9px;color:#6f7e95;text-transform:uppercase;letter-spacing:.08em}.inspection-summary strong{font-size:12px}.inspection-message{padding:10px 12px;border-radius:10px;font-size:11px;line-height:1.5;margin-top:7px}.inspection-message.danger{color:#ff9aa5;background:rgba(128,37,50,.15);border:1px solid rgba(255,120,135,.15)}.inspection-message.warning{color:#e6c581;background:rgba(132,92,28,.12);border:1px solid rgba(234,191,104,.13)}.ok-text{color:#70dab7!important}.danger-text{color:#ff8795!important}
@media(max-width:1280px){.artifact-layout{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr)}.artifact-inspection-panel{grid-column:1/-1;position:static}}
@media(max-width:800px){.artifact-layout{grid-template-columns:1fr}.artifact-inspection-panel{grid-column:auto}.inspection-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.inspection-summary{grid-template-columns:1fr}.artifact-release-row{grid-template-columns:1fr}.release-badge{width:max-content}}
