:root{font-family:system-ui,sans-serif;color:#e5e7eb;background:#111827}*{box-sizing:border-box}body{margin:0;min-width:320px}main{width:min(1100px,calc(100% - 2rem));margin:2rem auto}.centered{min-height:100vh;display:grid;place-items:center;margin-block:0}form{display:grid;gap:1rem;width:min(420px,100%)}label{display:grid;gap:.4rem}label.inline{display:flex;align-items:center}input,button{font:inherit;padding:.7rem}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}.error{color:#fca5a5}.app-header{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid #374151}.app-header span{margin-left:auto}.page-title{display:flex;align-items:center;justify-content:space-between;gap:1rem}.page-title h1,.page-title p{margin-block:.25rem}.page-actions{display:flex;gap:.6rem}button.primary{border-color:#2563eb;background:#2563eb;color:#fff}.link-button{padding:0;border:0;background:transparent;color:#93c5fd}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:2rem}.metrics article,.connection-card{padding:1rem;border:1px solid #374151;border-radius:.5rem;background:#1f2937}.metrics span,.metrics strong{display:block}.metrics span{color:#9ca3af;font-size:.9rem}.metrics strong{margin-top:.5rem;font-size:1.5rem}.connection-card{margin-top:1rem}dl{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1rem}dt{color:#9ca3af}dd{margin:0;overflow-wrap:anywhere}.metrics small{display:block;margin-top:.35rem;color:#9ca3af}.metric-highlight{border-color:#2563eb!important}.measured-at{color:#9ca3af}.stats-section{margin-top:1.5rem;padding:1rem;border:1px solid #374151;border-radius:.5rem;background:#1f2937}.stats-section h2{margin-top:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}.stats-grid div{padding:.8rem;border-radius:.4rem;background:#111827}.stats-grid span,.stats-grid strong{display:block}.stats-grid span{color:#9ca3af;font-size:.85rem}.stats-grid strong{margin-top:.35rem;font-size:1.15rem}.notice-error{padding:1rem;border:1px solid #7f1d1d;border-radius:.5rem;background:#450a0a}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:2rem}.menu-card{display:grid;gap:.6rem;min-height:140px;padding:1.3rem;border:1px solid #374151;border-radius:.6rem;background:#1f2937;color:inherit;text-align:left}.menu-card strong{font-size:1.25rem}.menu-card span{color:#9ca3af}.create-form{grid-template-columns:minmax(180px,280px) auto;align-items:end;margin-top:1.5rem}.progress-card{max-width:650px;margin-top:1.5rem;padding:1rem;border:1px solid #2563eb;border-radius:.5rem;background:#1f2937}.progress-card>div{display:flex;justify-content:space-between}.progress-card progress{width:100%;margin-top:.8rem}.progress-card p{margin-bottom:.25rem}.person-list{display:grid;gap:.5rem;margin-top:1rem}.person-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(100px,1fr) minmax(180px,1fr);align-items:center;gap:1rem;width:100%;border:1px solid #374151;border-radius:.45rem;background:#1f2937;color:inherit;text-align:left}.person-row span,.person-row strong,.person-row small{display:block}.person-row small{color:#9ca3af}.person-profile{display:grid;grid-template-columns:220px repeat(2,minmax(220px,1fr));gap:1.5rem;margin-top:1.5rem;padding:1rem;border:1px solid #374151;border-radius:.6rem;background:#1f2937}.portrait{display:grid;min-height:220px;place-items:center;overflow:hidden;border-radius:.5rem;background:#111827;color:#9ca3af}.portrait img{width:100%;height:100%;object-fit:cover}.detail-section{margin-top:1.5rem;padding:1rem;border:1px solid #374151;border-radius:.6rem;background:#1f2937}.detail-section>h2{margin-top:0}.skill-table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:.65rem;border-bottom:1px solid #374151;text-align:right;white-space:nowrap}th:first-child{position:sticky;left:0;background:#1f2937;text-align:left}.skill-value{color:#93c5fd;font-size:1rem;font-weight:700}.soft-skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem}.soft-skills div{display:grid;grid-template-columns:1fr auto;gap:.35rem;padding:.7rem;border-radius:.4rem;background:#111827}.soft-skills progress{grid-column:1 / -1;width:100%}.record-list{display:grid;gap:.5rem}.record-list article{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:.7rem;border-radius:.4rem;background:#111827}.contract-card{margin-top:.7rem;padding:.8rem;border-radius:.4rem;background:#111827}.contract-card header{display:flex;justify-content:space-between;gap:1rem}.training-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1rem}.training-grid div{padding:.7rem;border-radius:.4rem;background:#111827}.training-grid span,.training-grid strong,.training-grid small{display:block}.training-grid span,.training-grid small{color:#9ca3af}.training-grid strong{margin:.25rem 0;font-size:1.3rem}.code-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem}.code-card{display:grid;gap:.35rem;border:1px solid #374151;border-radius:.45rem;background:#111827;color:inherit;text-align:left}.code-card code,.copy-code code{color:#bfdbfe;font-size:1.05rem;font-weight:700;letter-spacing:.06em}.code-card small,.access-code-row small{color:#9ca3af}.access-code-list{display:grid;gap:.8rem;margin-top:1.5rem}.access-code-row{display:grid;grid-template-columns:minmax(190px,auto) auto minmax(400px,1fr);align-items:start;gap:1rem;padding:1rem;border:1px solid #374151;border-radius:.55rem;background:#1f2937}.access-code-row>div small{display:block;margin-top:.3rem}.access-code-row dl{margin:0}.copy-code{padding:0;border:0;background:transparent}.status-badge{padding:.3rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700}.status-badge.valid{background:#14532d;color:#bbf7d0}.status-badge.used{background:#1e3a8a;color:#bfdbfe}.status-badge.revoked,.status-badge.invalid{background:#7f1d1d;color:#fecaca}@media(max-width:600px){.page-title{align-items:stretch;flex-direction:column}.page-actions{flex-direction:column}.app-header{flex-wrap:wrap}.app-header span{margin-left:0}.create-form,.person-row,.person-profile,.record-list article,.training-grid{grid-template-columns:1fr}.access-code-row,.access-code-row dl{grid-template-columns:1fr}}
