:root{--radius:14px}
:root,[data-theme="dark"]{
  --bg:#0b1220;--panel:#121b2e;--line:#22304d;--text:#e6ecf5;--muted:#93a3bd;
  --accent:#38bdf8;--accent2:#22c55e;--field:#0b1424;--btn-text:#04121f;
  --welcome:linear-gradient(135deg,#0e2a47,#123b2e);--code:#22c55e;
  --ok-bg:#14532d;--ok-fg:#86efac;--off-bg:#3f3f46;--off-fg:#d4d4d8;--bad-bg:#7f1d1d;--bad-fg:#fecaca;
  --shadow:0 8px 24px rgba(0,0,0,.35);color-scheme:dark}
[data-theme="light"]{
  --bg:#f5f7fb;--panel:#ffffff;--line:#d9e1ec;--text:#0f172a;--muted:#55657d;
  --accent:#0369a1;--accent2:#15803d;--field:#f1f5f9;--btn-text:#ffffff;
  --welcome:linear-gradient(135deg,#e0f2fe,#dcfce7);--code:#15803d;
  --ok-bg:#dcfce7;--ok-fg:#166534;--off-bg:#e4e4e7;--off-fg:#3f3f46;--bad-bg:#fee2e2;--bad-fg:#991b1b;
  --shadow:0 8px 24px rgba(15,23,42,.12);color-scheme:light}

*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;padding-bottom:4.5rem;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1rem;background:var(--bg);color:var(--text);line-height:1.6;transition:background-color .2s,color .2s}
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}
a{color:var(--accent)}
.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:#ef4444;min-height:1.2em}
.btn{display:inline-block;background:var(--accent);color:var(--btn-text);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;box-shadow:var(--shadow)}
input,select,textarea{width:100%;background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;font:inherit}
.welcome{margin-top:2rem;background:var(--welcome);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:var(--field);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:var(--field);padding:.2rem .5rem;border-radius:6px;color:var(--code);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:var(--ok-bg);color:var(--ok-fg)}
.badge.expired{background:var(--off-bg);color:var(--off-fg)}
.badge.revoked{background:var(--bad-bg);color:var(--bad-fg)}
.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}

.pf-toolbar{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;align-items:center;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px;box-shadow:var(--shadow)}
.pf-toolbar button{background:transparent;color:var(--text);border:0;border-radius:999px;min-width:38px;height:38px;padding:0 8px;font:600 15px system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
.pf-toolbar button:hover:not(:disabled){background:var(--field)}
.pf-toolbar button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.pf-toolbar button:disabled{opacity:.35;cursor:default}
.pf-toolbar .sep{width:1px;height:22px;background:var(--line);margin:0 4px}
@media print{.pf-toolbar{display:none}}