/* File: public/css/app.css */
:root { color-scheme:light dark; --ink:#17212d; --muted:#465568; --line:#d1d8e0; --line-dark:#9eabb9; --canvas:#f4f6f8; --panel:#fff; --nav:#182433; --nav-light:#233448; --blue:#205d99; --blue-dark:#174b7d; --blue-pale:#eaf2fa; --green:#267454; --amber:#785400; --red:#932f27; --sidebar-width:218px; --shadow:0 1px 3px rgb(18 32 47/.05); font-family:Arial,Helvetica,sans-serif; color:var(--ink); background:var(--canvas); }
* { box-sizing:border-box } html { min-width:320px } body { margin:0; background:var(--canvas); font-size:16px; line-height:1.55 } a { color:var(--blue-dark) } button,input,select { font:inherit }
.visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap }.skip-link { position:fixed; top:-50px; left:16px; z-index:100; padding:9px 14px; background:var(--panel) }.skip-link:focus { top:10px }
.utility-bar { color:#fff; background:var(--nav); border-bottom:1px solid #0d1621 }.utility-bar__inner { max-width:1680px; min-height:58px; margin:auto; padding:0 28px; display:grid; grid-template-columns:auto 230px minmax(280px,1fr) auto; align-items:center; gap:18px }.sidebar-toggle { width:32px; height:32px; border:1px solid #60758b; color:#fff; background:var(--nav-light); cursor:pointer }
.system-brand,.account { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none }.system-brand__mark,.account__initials { display:grid; place-items:center; width:31px; height:31px; border:1px solid #8495a9; background:#365572; font-size:10px; font-weight:700 }.system-brand strong,.system-brand small,.account strong,.account small { display:block }.system-brand strong { font-size:13px }.system-brand small,.account small { color:#aebdce; font-size:9px; text-transform:uppercase; letter-spacing:.08em }.account strong { font-size:10px }
.global-search { height:34px; display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; max-width:680px; justify-self:center; width:100%; background:#f7f9fb; border:1px solid #0c151f }.global-search>span { color:#5d6978; text-align:center }.global-search input { height:32px; min-width:0; padding:0 6px; border:0; outline:0; background:transparent; color:#17212d; font-size:12px }.global-search button { height:26px; margin-right:3px; padding:0 12px; border:0; color:#fff; background:var(--blue); font-size:10px; font-weight:700 }.utility-actions { display:flex; align-items:center; gap:12px }.icon-action { color:#d7e0ea; text-decoration:none; font-size:10px; font-weight:700 }
.app-shell { min-height:calc(100vh - 58px); display:grid; grid-template-columns:var(--sidebar-width) minmax(0,1fr) }.sidebar { display:flex; flex-direction:column; overflow:hidden; background:var(--nav); color:#d7e0ea; border-top:1px solid #34475c }.sidebar-heading { padding:18px 18px 8px; color:#8fa2b7; font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase }.navigation-list { list-style:none; margin:0; padding:0 10px; display:grid; gap:3px }.navigation-link { display:block; padding:10px 12px; border-left:3px solid transparent; color:#c8d3df; text-decoration:none; font-size:11px; font-weight:700; white-space:nowrap }.navigation-link:hover { background:var(--nav-light); color:#fff }.navigation-link.is-active { border-left-color:#68a4dd; background:#263a50; color:#fff }.sidebar-footer { margin-top:auto; padding:13px 18px; border-top:1px solid #34475c; color:#9fb0c2; font-size:9px; white-space:nowrap }.system-indicator { display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:50%; background:#4ea77e }
.workspace-region { min-width:0 }.workspace { max-width:1680px; margin:auto; padding:20px 28px 38px }.breadcrumbs ol { list-style:none; display:flex; gap:5px; margin:0 0 11px; padding:0; color:var(--muted); font-size:9px }.breadcrumbs li:not(:last-child)::after { content:'›'; margin-left:5px }.breadcrumbs a { text-decoration:none }.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; margin-bottom:19px }.eyebrow { margin:0 0 2px; color:var(--blue-dark); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase }.page-heading h1 { margin:0; font-size:23px }.page-description { margin:4px 0 0; color:var(--muted); font-size:12px }.workspace-status { display:grid; grid-template-columns:8px auto; column-gap:7px; align-items:center; padding-left:18px; border-left:1px solid var(--line) }.workspace-status>span { width:8px; height:8px; border-radius:50%; background:#3d966f }.workspace-status strong { font-size:10px }.workspace-status small { grid-column:2; color:var(--muted); font-size:9px }
.panel,.card { background:var(--panel); border:1px solid var(--line); box-shadow:var(--shadow) }.panel-heading,.results-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:13px 17px; border-bottom:1px solid var(--line) }.panel-heading h2,.results-bar h2 { margin:0; font-size:14px }.panel-heading p,.results-bar p { margin:2px 0 0; color:var(--muted); font-size:10px }.panel-heading>a { font-size:10px; font-weight:700; text-decoration:none }
.metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; max-width:870px; margin-bottom:15px }.metrics article { min-height:77px; display:flex; align-items:center; gap:12px; padding:11px 15px; background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--blue); box-shadow:var(--shadow) }.metric-icon { display:grid; place-items:center; flex:0 0 32px; height:32px; border:1px solid #b8cee4; background:var(--blue-pale); color:var(--blue-dark); font-size:11px; font-weight:700 }.metrics small,.metrics strong,.metrics div span { display:block }.metrics small { color:var(--muted); font-size:9px; font-weight:700; text-transform:uppercase }.metrics strong { margin:1px 0; font-size:19px }.metrics div span { color:var(--muted); font-size:9px }
.record-filter-panel { margin-bottom:15px }.record-filters { display:grid; grid-template-columns:minmax(220px,1.65fr) repeat(3,minmax(125px,1fr)) auto auto; gap:10px; align-items:end; padding:14px 17px 16px }.record-filters label,.results-bar label { display:grid; gap:4px; color:#485566; font-size:9px; font-weight:700 }.record-filters input,.record-filters select,.results-bar select { width:100%; height:34px; padding:0 9px; border:1px solid var(--line-dark); border-radius:0; color:#17212d; background:#fff; outline:0; font-size:10px }.record-filters button { height:34px; padding:0 13px; border:1px solid var(--blue-dark); color:#fff; background:var(--blue); cursor:pointer; font-size:10px; font-weight:700 }.record-filters .secondary-button { border-color:var(--line-dark); color:#465365; background:#fff }
.alert { max-width:680px; margin:0 0 15px; padding:9px 12px; border:1px solid var(--line); border-left:3px solid var(--blue); background:var(--panel); font-size:10px }.alert--success { border-left-color:var(--green) }.alert--warning { border-left-color:var(--amber) }.alert--error { border-left-color:var(--red) }.results-bar label { min-width:190px }
.table-scroll { overflow-x:auto } table { width:100%; border-collapse:collapse; white-space:nowrap }.records-table { min-width:1160px } th { padding:9px 11px; border-bottom:1px solid var(--line); color:#657182; background:#f7f9fb; text-align:left; font-size:8px; letter-spacing:.055em; text-transform:uppercase } td { padding:11px; border-bottom:1px solid #e3e7ec; color:#4d5969; font-size:10px; vertical-align:middle } td strong,td small { display:block } td strong { color:var(--ink) } td small { margin-top:2px; color:#778292; font-size:8px } tbody tr:hover { background:#f8fafc }
.status { display:inline-block; padding:2px 6px; border:1px solid; font-size:8px; font-weight:700; text-transform:uppercase }.status-active { color:#226546; border-color:#9fceb8; background:#eff8f3 }.status-linked { color:#245d91; border-color:#afc9e2; background:#eef5fb }.status-review { color:#795800; border-color:#d8c27b; background:#fff9e8 }.table-action-button { display:inline-block; min-width:78px; padding:6px 8px; border:1px solid #9eb9d3; color:var(--blue-dark); background:#f4f8fc; text-align:center; text-decoration:none; font-size:9px; font-weight:700 }
.table-footer { min-height:43px; padding:8px 12px; display:flex; align-items:center; justify-content:space-between; color:var(--muted); font-size:9px; border-top:1px solid var(--line) }.pagination { display:flex; gap:3px }.pagination__link { min-height:26px; padding:4px 9px; border:1px solid var(--line-dark); background:var(--panel); color:#465365; text-decoration:none }.pagination__link.is-current { color:#fff; background:var(--blue) }.pagination__link.is-disabled { opacity:.55 }
.card__header,.card__body { padding:13px 17px }.card__header { border-bottom:1px solid var(--line) }.card__header h2 { margin:0; font-size:14px }.field { display:grid; gap:4px }.field label { color:var(--muted); font-size:9px; font-weight:700 }.field input { height:34px; padding:0 9px; border:1px solid var(--line-dark); background:var(--panel); color:var(--ink) }.field-error { color:var(--red); font-size:9px }.field-help { color:var(--muted); font-size:9px }.button { display:inline-block; padding:7px 11px; border:1px solid var(--blue-dark); background:var(--blue); color:#fff; text-decoration:none; font-size:10px; font-weight:700 }
.is-sidebar-collapsed { grid-template-columns:0 minmax(0,1fr) }.is-sidebar-collapsed .sidebar { visibility:hidden }:focus-visible { outline:2px solid #79a8d6; outline-offset:2px }
@media (max-width:980px) { .utility-bar__inner { grid-template-columns:auto 1fr auto; padding-block:9px }.global-search { grid-column:1/-1; grid-row:2; max-width:none }.app-shell { grid-template-columns:190px minmax(0,1fr) }.record-filters { grid-template-columns:repeat(2,minmax(130px,1fr)) }.filter-search { grid-column:span 2 } }
@media (max-width:700px) { .utility-bar__inner,.workspace { padding-left:15px; padding-right:15px }.utility-actions .icon-action { display:none }.app-shell { grid-template-columns:1fr }.sidebar { border-bottom:1px solid #34475c }.is-sidebar-collapsed .sidebar { display:none }.workspace-status { display:none }.metrics { grid-template-columns:1fr; max-width:none }.results-bar { align-items:flex-start; flex-direction:column }.results-bar label { width:100% } }
@media (max-width:470px) { .account small { display:none }.record-filters { grid-template-columns:1fr }.filter-search { grid-column:auto } }

/* Shared authentication and account surfaces. */
.ui-icon { width:20px; height:20px; flex:none; vertical-align:middle }
.brand-emblem { display:block; width:auto; height:30px; object-fit:contain }
.brand-text { font-size:23px; font-weight:750; letter-spacing:.08em }
.utility-bar__inner { grid-template-columns:auto 1fr auto; min-height:72px }
.header-link { display:inline-flex; align-items:center; gap:8px; color:#f1f5f9; text-decoration:none; font-size:15px; padding:10px 4px }
.navigation-link { display:flex; align-items:center; gap:11px; font-size:15px; padding:14px 12px }
.app-shell { min-height:calc(100vh - 72px) }
.workspace { padding:32px 40px; max-width:1400px }
.breadcrumbs ol { font-size:13px; gap:8px; margin-bottom:24px }
.page-heading h1 { font-size:30px; letter-spacing:-.025em }
.page-description { font-size:16px; margin-top:8px }
.eyebrow { font-size:12px; margin-bottom:10px }
.activity-empty { padding:72px 24px; margin-top:32px; border:1px solid var(--line); border-radius:12px; text-align:center; background:var(--panel) }
.activity-empty h2 { font-size:21px; margin:20px 0 8px }
.activity-empty p { color:var(--muted); max-width:430px; margin:0 auto }
.empty-icon { display:inline-grid; place-items:center; width:56px; height:56px; border-radius:14px; color:var(--blue-dark); background:var(--blue-pale) }
.empty-icon .ui-icon { width:27px; height:27px }
.access-layout { min-height:100vh; display:grid; grid-template-columns:minmax(320px,42%) 1fr }
.access-brand { background:#182b40; color:#fff; padding:54px clamp(28px,4%,54px); display:flex; align-items:center; justify-content:center }
.access-logo-link { display:block; width:min(100%,780px) }
.access-logo { display:block; width:100%; height:auto; max-height:680px; object-fit:contain }
.access-panel { display:flex; align-items:center; justify-content:center; padding:56px 32px; background:var(--panel) }
.access-card { width:100%; max-width:420px }
.access-card h2 { margin:0 0 12px; font-size:32px; letter-spacing:-.03em; line-height:1.2 }
.access-intro { color:var(--muted); margin:0 0 32px; font-size:16px; line-height:1.7 }
.access-form { display:grid; gap:26px; max-width:480px; margin:28px 0 }
.access-form .field { display:grid; gap:10px; position:relative; margin:0 }
.access-form label { color:var(--ink); font-size:15px; font-weight:700 }
.access-form input { border:1px solid var(--line-dark); border-radius:6px; width:100%; padding:14px 15px; min-height:52px; color:var(--ink); background:var(--panel); font-size:16px }
.access-form input::placeholder { color:#657386; opacity:1 }
.access-form input[name="token"] { font-family:monospace; font-size:15px }
.access-form input[name="verificationCode"] { font-family:monospace; font-size:22px; font-weight:700; letter-spacing:.18em }
.access-form .password-toggle { justify-self:end; color:var(--blue-dark); background:none; border:0; padding:4px 0; font-size:14px; cursor:pointer }
.submit-button { border:0; background:#205d99; color:#fff; border-radius:6px; padding:14px 20px; font-size:16px; font-weight:700; cursor:pointer; min-height:52px }
.submit-button:hover { background:#1f5489 }
.access-links { display:flex; flex-direction:column; gap:24px; font-size:15px; color:var(--muted); margin-top:24px }
.access-links a { font-weight:600 }
.field-help { color:var(--muted); font-size:14px; line-height:1.6 }
.field-error { color:var(--red); margin:0; font-size:14px }
.account-navigation { margin:24px 0; border-bottom:1px solid var(--line); overflow-x:auto }
.account-navigation .navigation-list { display:flex; gap:4px; padding:0 }
.account-navigation .navigation-link { color:var(--muted); border-left:0; border-bottom:3px solid transparent; padding:13px 14px }
.account-navigation .navigation-link.is-active { color:var(--blue-dark); border-bottom-color:var(--blue); background:var(--blue-pale) }
.account-navigation .navigation-link:hover { background:var(--blue-pale); color:var(--blue-dark) }
.card { background:var(--panel); border:1px solid var(--line); border-radius:10px; margin:20px 0; max-width:900px; overflow:hidden }
.card__header { padding:20px 26px; border-bottom:1px solid var(--line) }
.card__header h2 { font-size:18px; margin:0 }
.card__body { padding:24px 26px }
.sidebar-heading { color:#b4c2d1; font-size:12px }
.sidebar-footer { color:#c0ccda; font-size:12px }
.alert { padding:12px 15px; font-size:15px; line-height:1.5 }
.field { gap:8px }
.field label { color:var(--ink); font-size:14px }
.field input { min-height:46px; padding:10px 12px; font-size:16px }
.button { padding:10px 14px; font-size:15px }
.record-filters { gap:16px; padding-block:18px 20px }
.record-filters label,.results-bar label { gap:7px; color:var(--ink); font-size:14px }
.record-filters input,.record-filters select,.results-bar select { height:46px; padding:0 12px; font-size:15px }
.record-filters button { height:46px; padding:0 16px; font-size:15px }
.panel-heading h2,.results-bar h2 { font-size:18px }
.panel-heading p,.results-bar p { font-size:14px }
.panel-heading>a { font-size:14px }
caption { padding:14px; color:var(--ink); font-size:16px; font-weight:700; text-align:left }
th { padding:13px 14px; color:var(--muted); font-size:14px; line-height:1.4; letter-spacing:.04em }
td { padding:16px 14px; color:var(--ink); font-size:16px; line-height:1.5 }
td small { color:var(--muted); font-size:13px }
.field-value-table td:first-child { color:var(--muted); font-size:15px; font-weight:600 }
.field-value-table td:last-child { color:var(--ink); font-size:16px; font-weight:500 }
.card__body>.field-help:last-child { margin:20px 0 0; color:var(--muted); font-size:15px }
.table-footer { min-height:50px; font-size:13px }
.pagination__link { min-height:34px; padding:6px 11px }
:is(a,button,input):focus-visible { outline:3px solid #6ca7df; outline-offset:3px }
@media (max-width:800px) {
    .access-layout { grid-template-columns:1fr }
    .access-brand { padding:24px 28px }
    .access-logo-link { width:min(78vw,320px) }
    .access-panel { padding:44px 24px; align-items:flex-start }
    .utility-bar__inner { padding:12px 16px; gap:12px; grid-template-columns:auto 1fr }
    .utility-actions { grid-column:1/-1; justify-content:space-between; gap:8px }
    .header-link { font-size:12px }
    .workspace { padding:24px 18px }
    .page-heading h1 { font-size:26px }
    .activity-empty { padding:48px 20px }
}
@media (prefers-color-scheme:dark) { :root { --ink:#edf2f7; --muted:#bdc8d3; --line:#3a4653; --line-dark:#607082; --canvas:#111820; --panel:#1b2530; --nav:#101923; --nav-light:#223448; --blue:#69a5df; --blue-dark:#9ac5ec; --blue-pale:#263b50; --green:#6ab18e; --amber:#d2aa50; --red:#e08a82; --shadow:0 1px 3px rgb(0 0 0/.25) } th,tbody tr:hover { background:#202c38 }.record-filters label,.results-bar label { color:var(--muted) }.record-filters input,.record-filters select,.results-bar select,.global-search { background:#edf1f4; color:#17212d }.status-active { color:#8ed2ae; border-color:#47775f; background:#193529 }.status-linked { color:#9ac4ec; border-color:#456684; background:#1c3042 }.status-review { color:#e0c36e; border-color:#746631; background:#393319 } }
