:root { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color-scheme: light; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; background: #f5f5f4; color: #171717; padding: 24px; }
.card { width: min(100%, 560px); background: #fff; border: 1px solid #e7e5e4; border-radius: 18px; padding: 32px; box-shadow: 0 12px 38px rgba(0,0,0,.06); }
.brand { font-size: .9rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
h1 { margin: 12px 0 16px; font-size: clamp(2rem, 8vw, 3rem); line-height: 1; }
h2 { margin-top: 0; }
p { line-height: 1.55; }
.muted { color: #57534e; }
.status { min-height: 1.5em; font-weight: 600; }
button, .button-link { font: inherit; border-radius: 10px; padding: 12px 18px; border: 1px solid #d6d3d1; cursor: pointer; text-decoration: none; display: inline-block; }
button:disabled { opacity: .55; cursor: wait; }
.primary, .primary-link { background: #171717; color: #fff; border-color: #171717; }
.secondary { background: #fff; color: #171717; }
.admin-body { display: block; }
.admin-shell { width: min(100%, 980px); margin: 0 auto; }
.admin-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.admin-header h1 { font-size: 2rem; margin-bottom: 0; }
.panel { background: #fff; border: 1px solid #e7e5e4; border-radius: 16px; padding: 24px; margin-bottom: 20px; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px 8px; border-bottom: 1px solid #e7e5e4; }
th { font-size: .85rem; color: #57534e; }

/* v0015 admin */
.admin-shell { width: min(100%, 1180px); }
.admin-header h1 { font-size: 1.8rem; }
.compact-panel { padding: 20px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; }
.section-heading h2 { margin-bottom:2px; }
.section-heading p { margin:0; }
.people-layout { display:grid; grid-template-columns:minmax(280px, 0.9fr) minmax(360px, 1.2fr); gap:24px; align-items:start; }
.people-list { border:1px solid #e7e5e4; border-radius:12px; overflow:hidden; }
.person-row { display:flex; justify-content:space-between; gap:12px; padding:12px 14px; color:inherit; text-decoration:none; border-bottom:1px solid #e7e5e4; align-items:center; }
.person-row:last-child { border-bottom:0; }
.person-row:hover, .person-row.selected { background:#f5f5f4; }
.person-row small, .subrow small, .audit-row small { display:block; margin-top:3px; color:#78716c; }
.badges { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.badge { display:inline-block; border:1px solid #d6d3d1; border-radius:999px; padding:3px 7px; font-size:.72rem; white-space:nowrap; background:#fff; }
.badge.ok { background:#f0fdf4; border-color:#bbf7d0; }
.badge.off { background:#fafafa; color:#78716c; }
.person-editor { min-width:0; }
.person-editor h3 { margin:0 0 16px; font-size:1.3rem; }
.person-editor h4 { margin:24px 0 10px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-grid label { font-size:.82rem; font-weight:650; color:#44403c; }
.form-grid input:not([type=checkbox]), .form-grid select { width:100%; margin-top:5px; padding:10px 11px; border:1px solid #d6d3d1; border-radius:9px; background:#fff; font:inherit; color:#171717; }
.form-grid .wide { grid-column:1 / -1; }
.form-grid .check { display:flex; gap:8px; align-items:center; font-weight:500; }
.form-grid .check input { margin:0; }
.actions { display:flex; gap:8px; }
.action-strip { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding-top:16px; border-top:1px solid #e7e5e4; }
.sublist, .audit-list { border:1px solid #e7e5e4; border-radius:10px; overflow:hidden; }
.subrow, .audit-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; border-bottom:1px solid #e7e5e4; }
.subrow:last-child, .audit-row:last-child { border-bottom:0; }
.danger-small { padding:7px 10px; font-size:.82rem; background:#fff; color:#991b1b; border-color:#fecaca; }
.notice { width:min(100%, 1180px); margin:0 auto 16px; padding:12px 14px; border-radius:10px; font-weight:600; }
.notice.success { background:#f0fdf4; border:1px solid #bbf7d0; }
.notice.error { background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
.activation-panel { border-color:#fde68a; background:#fffbeb; }
.activation-url { word-break:break-all; padding:10px 12px; background:#fff; border:1px solid #fde68a; border-radius:8px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.82rem; }
@media (max-width: 820px) {
  .people-layout { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid .wide { grid-column:auto; }
  .person-row { align-items:flex-start; flex-direction:column; }
  .badges { justify-content:flex-start; }
}

/* v0018 employee portal */
.portal-body { background: #f6f7f8; }
.portal-shell { max-width: 860px; margin: 0 auto; padding: 34px 22px 60px; }
.portal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.portal-header h1 { margin: 4px 0 0; }
.welcome-panel { background: #fff; border: 1px solid #e2e5e8; border-radius: 16px; padding: 22px 24px; margin-bottom: 18px; box-shadow: 0 2px 12px rgba(0,0,0,.035); }
.welcome-panel h2 { margin: 4px 0 4px; font-size: 1.45rem; }
.eyebrow { margin: 0; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6d737b; }
.document-empty-state { text-align: center; padding: 54px 28px; }
.document-empty-state h2 { margin: 14px 0 7px; font-size: 1.35rem; }
.empty-icon { width: 58px; height: 58px; margin: 0 auto; border: 1px solid #d8dde2; border-radius: 14px; display: grid; place-items: center; font-size: .78rem; font-weight: 800; letter-spacing: .05em; color: #60666d; background: #fafbfc; }
@media (max-width: 620px) {
  .portal-shell { padding: 24px 16px 42px; }
  .portal-header { align-items: center; }
  .portal-header h1 { font-size: 1.65rem; }
  .document-empty-state { padding: 42px 18px; }
}

/* v0020 documents */
.document-panel { padding: 22px 24px; }
.document-list { margin-top: 14px; border: 1px solid #e2e5e8; border-radius: 12px; overflow: hidden; }
.document-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 16px; border-bottom: 1px solid #e7e9ec; }
.document-row:last-child { border-bottom: 0; }
.document-row small { display: block; color: #6d737b; margin-top: 4px; }
.document-download { white-space: nowrap; padding: 9px 12px; }
.document-upload-form { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 10px; padding: 14px; margin: 10px 0 12px; border: 1px solid #e7e5e4; border-radius: 10px; background: #fafaf9; }
.document-upload-form label { font-size: .82rem; font-weight: 650; color: #44403c; }
.document-upload-form input, .document-upload-form select { width: 100%; margin-top: 5px; padding: 9px 10px; border: 1px solid #d6d3d1; border-radius: 8px; background: #fff; font: inherit; color: #171717; }
.document-upload-form .wide { grid-column: 1 / -1; }
.compact-link { padding: 7px 10px; font-size: .82rem; }
@media (max-width: 720px) {
  .document-row { align-items: flex-start; flex-direction: column; }
  .document-upload-form { grid-template-columns: 1fr; }
  .document-upload-form .wide { grid-column: auto; }
}

/* v0024 audit disclosure */
.audit-details { margin-top:24px; }
.audit-details > summary { cursor:pointer; font-weight:700; font-size:1rem; list-style-position:outside; }
.audit-details[open] > summary { margin-bottom:10px; }
.audit-details .audit-list { margin-top:10px; }
