:root{--bg:#0b1220;--panel:#121b2e;--line:#22304d;--text:#e6ecf5;--muted:#93a3bd;--accent:#38bdf8;--accent2:#22c55e;--radius:14px}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
main,section,header,footer{max-width:1100px;margin:0 auto;padding:2rem 1.25rem}
h1{font-size:clamp(2rem,5vw,3.2rem);margin:.2em 0}
h2{font-size:1.6rem;margin:0 0 1rem}
h3{margin:.2rem 0}
h4{margin:0 0 .3rem;color:var(--accent);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}
.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;margin:0}
.headline{font-size:1.2rem;margin:0}
.muted{color:var(--muted)}.small{font-size:.85rem}
.error{color:#f87171;min-height:1.2em}
.btn{display:inline-block;background:var(--accent);color:#04121f;border:0;border-radius:999px;padding:.7rem 1.3rem;font-weight:600;text-decoration:none;cursor:pointer;font-size:1rem}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.landing,.gate{min-height:100vh;display:grid;place-items:center}
.landing-card{max-width:520px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:2.5rem;display:grid;gap:.8rem}
input,select,textarea{width:100%;background:#0b1424;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;font:inherit}
.welcome{margin-top:2rem;background:linear-gradient(135deg,#0e2a47,#123b2e);border-radius:var(--radius);border:1px solid var(--line)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem;text-align:center}
.num{display:block;font-size:2.4rem;font-weight:700;color:var(--accent)}
.label{color:var(--muted);font-size:.9rem}
.pipeline{display:flex;align-items:stretch;gap:.5rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory}
.stage{min-width:260px;max-width:300px;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent2);border-radius:var(--radius);padding:1.2rem;scroll-snap-align:start}
.company{color:var(--muted);margin:0 0 .5rem}
.arrow{align-self:center;color:var(--accent2);font-size:1.6rem}
.project{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}
.pbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;margin:1rem 0}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.chip{background:#0b1424;border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;font-size:.82rem}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1rem}
.gallery img{width:100%;border-radius:10px;border:1px solid var(--line);cursor:zoom-in;aspect-ratio:16/10;object-fit:cover}
figure{margin:0}figcaption{font-size:.82rem;color:var(--muted);margin-top:.3rem}
.skill-group{margin-bottom:1rem}
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);max-width:min(1100px,95vw);padding:1.5rem}
dialog::backdrop{background:rgba(0,0,0,.7)}
dialog img{max-width:100%;max-height:75vh;display:block;margin:0 auto}
.admin .panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.grid label{display:grid;gap:.3rem;font-size:.9rem;color:var(--muted)}
.full{grid-column:1/-1}
.created{margin-top:1.2rem;display:grid;gap:.6rem}
code{background:#0b1424;padding:.2rem .5rem;border-radius:6px;color:var(--accent2);font-size:1.1rem}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:.6rem;border-bottom:1px solid var(--line);vertical-align:top}
.badge{padding:.15rem .6rem;border-radius:999px;font-size:.78rem}
.badge.active{background:#14532d;color:#86efac}
.badge.expired{background:#3f3f46;color:#d4d4d8}
.badge.revoked{background:#7f1d1d;color:#fecaca}
.row-actions{white-space:nowrap}
.row-actions button{background:transparent;color:var(--accent);border:1px solid var(--line);border-radius:8px;padding:.3rem .6rem;cursor:pointer;margin:.1rem}