:root { --ink:#183b3b; --muted:#627878; --teal:#087f75; --line:#dce7e5; --surface:#fff; }
html { font-size:14px; min-height:100%; }
body { margin:0; color:var(--ink); background:#f4f7f6; font-family:Inter,"Segoe UI",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:var(--teal); }
.app-header { background:#fff; border-bottom:1px solid var(--line); }
.app-header-inner { max-width:1480px; margin:auto; min-height:88px; padding:18px 40px; display:flex; align-items:center; gap:28px; }
.app-brand img { display:block; width:190px; height:auto; }
.header-divider { height:28px; width:1px; background:var(--line); }
.workspace-label { color:var(--muted); font-size:13px; }
.app-nav { margin-left:auto; }
.app-nav a { text-decoration:none; font-weight:600; display:flex; gap:28px; align-items:center; padding:10px 16px; border-radius:8px; background:#edf7f4; }
.app-container { max-width:1480px; padding:42px 40px 64px; margin:auto; min-height:calc(100vh - 155px); }
.app-footer { border-top:1px solid var(--line); padding:22px 40px; display:flex; justify-content:space-between; color:var(--muted); font-size:12px; }
.skip-link { position:absolute; top:-100px; left:20px; z-index:2000; background:white; padding:12px; }
.skip-link:focus { top:10px; }
.eyebrow { color:var(--teal); font-size:11px; letter-spacing:.16em; font-weight:700; margin-bottom:12px; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:30px; }
.page-heading h1 { font-size:36px; font-weight:650; letter-spacing:-1.3px; margin:0 0 10px; }
.page-heading p:last-child { color:var(--muted); margin:0; font-size:15px; }
.archive-badge { background:#e5efeb; color:#39645b; padding:9px 14px; border:1px solid #d3e4dc; border-radius:30px; font-size:12px; white-space:nowrap; }
.claim-filters.card, .results-panel { border:1px solid var(--line)!important; border-radius:14px!important; background:white; box-shadow:0 5px 22px #183b3b04!important; overflow:hidden; }
.claim-filters .card-header { background:white!important; color:var(--ink)!important; padding:20px 24px!important; border-bottom:1px solid #edf1ef; font-size:15px; }
.claim-filters .card-header i { color:var(--teal); }
.claim-filters .card-body { padding:24px; }
.claim-filters .row { gap:18px 0; }
.claim-filters .col { min-width:150px; }
.claim-filters .form-label { font-size:12px; color:#486361; margin-bottom:9px; }
.form-control,.form-select { border-color:#d4dfdd; border-radius:8px; min-height:43px; font-size:13px; color:var(--ink); }
.form-control::placeholder { color:#859492; }
.form-control:focus,.form-select:focus { border-color:var(--teal); box-shadow:0 0 0 3px #087f751c; }
.btn { border-radius:8px; font-size:13px; font-weight:600; padding:11px 18px; transition:background-color .15s,box-shadow .15s; }
.btn-primary,.btn-success { background:var(--teal); border-color:var(--teal); }
.btn-primary:hover,.btn-success:hover { background:#06685f; border-color:#06685f; }
.btn-outline-success { color:var(--teal); border-color:#b3cec6; }
.btn-outline-success:hover { background:var(--teal); border-color:var(--teal); }
.btn-outline-secondary { color:#536b67; border-color:#d4dfdd; }
:focus-visible { outline:3px solid #319d92; outline-offset:3px; }
.results-header { padding:21px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); }
.results-header h2 { font-size:16px; font-weight:650; margin:0; }
.results-header span { color:var(--muted); font-size:12px; }
.results-scroll { overflow-x:auto; }
.results-panel .table { margin:0; color:var(--ink); font-size:13px; border-color:#e7eeeb; }
.results-panel .table > :not(caption) > * > * { padding:15px 20px; border-left:0; border-right:0; }
.results-panel .table thead { --bs-table-bg:#f5f8f7; --bs-table-color:#526e68; }
.results-panel th { font-size:11px; font-weight:650; white-space:nowrap; }
.results-panel tbody tr:hover { background:#f4faf7; }
.results-panel tbody td { vertical-align:middle; }
.results-panel .btn { padding:6px 11px; }
.archive-empty { padding:64px 24px 70px; text-align:center; }
.empty-symbol { display:grid; place-items:center; width:60px; height:60px; margin:0 auto 20px; border-radius:18px; background:#edf6f2; color:var(--teal); font-size:24px; }
.archive-empty h3 { font-size:19px; font-weight:600; margin-bottom:10px; }
.archive-empty p { max-width:360px; margin:auto; color:var(--muted); line-height:1.8; }
.modal-content { border:0; border-radius:14px; overflow:hidden; box-shadow:0 24px 80px #163b3b30; }
.modal-header,.modal-footer { padding:18px 24px; border-color:var(--line); }
.modal-title { font-size:18px; }
.modal .btn-close { padding:10px; }
.alert { border-radius:10px; }
.welcome-layout { min-height:100vh; display:grid; grid-template-columns:1.05fr 1fr; }
.welcome-story { padding:50px 9%; background:#e8f1ed; display:flex; flex-direction:column; position:relative; overflow:hidden; }
.welcome-story:after { content:""; position:absolute; width:550px; height:550px; border:1px solid #cbded5; border-radius:50%; bottom:-420px; left:-100px; box-shadow:0 0 0 65px #dce9e280,0 0 0 130px #dce9e250; pointer-events:none; }
.welcome-logo { width:210px; height:auto; }
.welcome-copy { margin:auto 0; padding:80px 0; position:relative; z-index:1; }
.welcome-copy h1 { font-size:clamp(36px,4.1vw,62px); line-height:1.13; letter-spacing:-2px; font-weight:600; margin:24px 0; }
.welcome-copy > p:last-of-type { color:#59716a; max-width:390px; font-size:16px; line-height:1.85; }
.document-types { display:flex; gap:30px; margin-top:44px; }
.document-types > span { font-weight:650; font-size:14px; }
.document-types small { display:block; font-size:11px; font-weight:400; color:#637c73; margin-top:6px; }
.welcome-copyright { color:#637c73; font-size:12px; }
.welcome-entry { display:grid; place-items:center; padding:50px; background:#fafcfb; }
.entry-card { max-width:400px; width:100%; }
.entry-symbol { display:grid; place-items:center; width:54px; height:54px; border:1px solid #d5e6de; border-radius:15px; background:#edf5f1; color:var(--teal); font-size:28px; margin-bottom:34px; }
.entry-card h2 { font-size:30px; letter-spacing:-.9px; font-weight:650; margin-bottom:15px; }
.entry-card > p:not(.eyebrow) { color:var(--muted); line-height:1.7; }
.entry-features { padding:18px 0 32px; }
.entry-features > div { display:flex; align-items:center; gap:16px; padding:12px 0; font-size:14px; }
.entry-features span { color:#6c8b80; font-size:11px; font-weight:600; }
.entry-button { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; }
.entry-note { text-align:center; font-size:12px; margin-top:20px; }
@media(min-width:1200px) { .claim-filters .col-auto { flex-basis:100%; margin-top:5px; padding-top:18px; border-top:1px solid #edf1ef; } }
@media(max-width:767px) { .app-header-inner { padding:18px 20px; gap:12px; } .app-brand img { width:145px; } .workspace-label,.header-divider { display:none; } .app-nav a { font-size:12px; gap:10px; } .app-container { padding:28px 16px 40px; } .page-heading h1 { font-size:30px; } .archive-badge { display:none; } .claim-filters .col { flex:1 0 50%; min-width:0; } .claim-filters .col-auto { flex-wrap:wrap; gap:8px; } .claim-filters .btn { padding:10px 14px!important; margin:0!important; } .results-header { align-items:start; flex-direction:column; gap:5px; } .app-footer { padding:20px 16px; gap:15px; } .welcome-layout { grid-template-columns:1fr; } .welcome-story { padding:28px; } .welcome-copy { padding:42px 0; } .welcome-copy h1 { font-size:40px; } .welcome-copyright { display:none; } .welcome-entry { padding:45px 28px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; } }
.login-page { min-height:100vh; display:grid; place-items:center; padding:24px 16px; background:radial-gradient(ellipse at top left,#e0f0e9,transparent 65%),#f4f7f6; }
.login-card { width:100%; max-width:380px; padding:32px; background:var(--surface); border:1px solid var(--line); border-radius:20px; box-shadow:0 16px 60px #183b3b0a; }
.login-logo { display:block; width:160px; max-width:100%; height:auto; margin:0 auto 28px; }
.login-card h1 { font-size:24px; font-weight:650; letter-spacing:-.6px; margin:0 0 8px; text-align:center; }
.login-subtitle { color:var(--muted); text-align:center; margin-bottom:24px; font-size:13px; }
.login-card .form-label { font-size:12px; font-weight:600; margin-bottom:6px; }
.login-card .form-control,.login-card .btn { min-height:40px; }
.login-copyright { margin:24px 0 0; text-align:center; color:var(--muted); font-size:11px; }
/* Compact workspace: keep readable type while giving claims more room. */
@media screen {
  .app-header-inner { min-height:64px; padding:12px 28px; gap:20px; }
  .app-brand img { width:154px; }
  .app-nav a { gap:16px; padding:8px 12px; }
  .app-nav a:hover { background:#dff0e8; }
  .app-container { padding:24px 28px 36px; min-height:calc(100vh - 111px); }
  .app-footer { padding:14px 28px; }
  .eyebrow { margin-bottom:7px; }
  .page-heading { gap:16px; margin-bottom:20px; }
  .page-heading h1 { font-size:26px; letter-spacing:-.7px; margin-bottom:6px; }
  .page-heading p:last-child { font-size:13px; }
  .archive-badge { padding:6px 11px; }
  .claim-filters.card { margin-bottom:16px!important; }
  .claim-filters .card-header { padding:12px 16px!important; font-size:13px; }
  .claim-filters .card-body { padding:16px; }
  .claim-filters .row { gap:12px 0; }
  .claim-filters .col { min-width:120px; }
  .claim-filters .form-label { margin-bottom:6px; }
  .form-control,.form-select { min-height:36px; }
  .btn { padding:7px 12px; }
  .claim-filters .col-auto { flex-basis:auto; margin-top:0; padding-top:0; border-top:0; gap:6px; flex-wrap:wrap; }
  .claim-filters .btn { padding:7px 12px!important; margin:0!important; }
  .results-header { padding:13px 16px; }
  .results-header h2 { font-size:14px; }
  .results-panel .table > :not(caption) > * > * { padding:10px 14px; }
  .results-panel tbody tr:hover { --bs-table-bg:#f0f8f4; }
  .archive-empty { padding:32px 20px 36px; }
  .empty-symbol { width:44px; height:44px; margin-bottom:12px; border-radius:14px; font-size:19px; }
  .archive-empty h3 { font-size:16px; margin-bottom:6px; }
  .archive-empty p { line-height:1.6; }
  .modal-header,.modal-footer { padding:12px 16px; }
  .modal-title { font-size:16px; }
  .welcome-page { min-height:100vh; display:grid; place-items:center; padding:32px 20px; background:radial-gradient(ellipse at top left,#e0f0e9,transparent 65%),#f4f7f6; }
  .welcome-layout { width:100%; max-width:940px; min-height:0; grid-template-columns:1fr 1fr; border:1px solid var(--line); border-radius:24px; overflow:hidden; box-shadow:0 16px 60px #183b3b0a; }
  .welcome-story { padding:32px; }
  .welcome-logo { width:164px; }
  .welcome-copy { padding:48px 0; }
  .welcome-copy h1 { font-size:clamp(28px,3vw,38px); letter-spacing:-1px; margin:16px 0; }
  .welcome-copy > p:last-of-type { font-size:14px; line-height:1.7; }
  .document-types { gap:24px; margin-top:28px; }
  .welcome-entry { padding:32px; }
  .entry-symbol { width:42px; height:42px; font-size:22px; margin-bottom:20px; }
  .entry-card h2 { font-size:24px; letter-spacing:-.6px; }
  .entry-features { padding:12px 0 22px; }
  .entry-features > div { padding:8px 0; font-size:13px; }
  .entry-button { padding:11px 14px; }
  .entry-note { margin-top:14px; }
}
@media screen and (max-width:767px) {
  .app-header-inner { padding:12px 16px; gap:12px; }
  .app-brand img { width:135px; }
  .app-nav a { gap:8px; }
  .app-container { padding:20px 16px 28px; }
  .page-heading h1 { font-size:24px; }
  .claim-filters .col { min-width:0; }
  .claim-filters .col-auto { flex-basis:100%; }
  .app-footer { padding:14px 16px; }
  .welcome-page { padding:16px; }
  .welcome-layout { grid-template-columns:1fr; }
  .welcome-story,.welcome-entry { padding:28px; }
  .welcome-copy { padding:28px 0 8px; }
  .welcome-copy h1 { font-size:30px; }
}
@media screen and (pointer:coarse) {
  .btn,.form-control,.form-select,.app-nav a { min-height:44px; }
}
@media print { .app-header,.app-footer,.skip-link { display:none; } .app-container { padding:0; } body { background:white; } }
