:root {
  --ink:#262e3a;
  --muted:#6c7c94;
  --green:#294062;
  --light:#e9edf4;
  --line:#dee2e9;
  --paper:#f3f5f7;
  --amber:#946b31;

  /* Elevation */
  --shadow-sm:0 1px 2px rgba(23,32,46,.05);
  --shadow-md:0 4px 14px rgba(23,32,46,.08);
  --shadow-lg:0 12px 30px rgba(23,32,46,.12);

  /* Radii */
  --radius-sm:6px;
  --radius-md:9px;
  --radius-lg:12px;
  --radius-xl:16px;

  /* Motion */
  --ease:cubic-bezier(.2,.8,.2,1);
  --dur-fast:150ms;
  --dur-normal:280ms;

  /* Semantic */
  --green-600:#1c304d;
  --green-050:#f1f4f9;
  --surface:#ffffff;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:13px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a {
  color:var(--green);
  text-decoration:none;
}
a:hover {
  text-decoration:underline;
}
button,input,select,textarea {
  font:inherit;
}
button,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--green);
  border-radius:var(--radius-sm);
  background:var(--green);
  color:#fff;
  padding:9px 14px;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
}
button:hover,.button:hover {
  background:var(--green-600);
  text-decoration:none;
}
.secondary {
  background:var(--surface);
  color:var(--green);
  border-color:#d2d9e3;
}
.secondary:hover {
  background:var(--light);
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid #4e6c98;
  outline-offset:3px;
}
[hidden] {
  display:none !important;
}
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:198px;
  padding:24px 14px 18px;
  background:#17202e;
  color:#b3bbc8;
  display:flex;
  flex-direction:column;
  z-index:5;
}
.brand {
  display:flex;
  align-items:center;
  gap:7px;
  color:#f5f7fa;
  font-size:23px;
  font-weight:750;
  letter-spacing:-1px;
  padding:0 8px;
}
.brand:hover {
  text-decoration:none;
}
.mark {
  display:grid;
  place-items:center;
  width:29px;
  height:32px;
  border-radius:8px 3px 8px 3px;
  background:#b8c6da;
  color:#1a2637;
  font-size:25px;
}
.beta {
  color:#8895a8;
  font-size:8px;
  letter-spacing:1px;
}
.office {
  margin:27px 7px 28px;
  padding:12px 10px;
  font-size:11px;
  color:#acb5c3;
  border:1px solid #3a4350;
  border-radius:7px;
}
.sidebar nav:before {
  content:'WORKSPACE';
  display:block;
  padding:0 12px 12px;
  color:#6f7f97;
  font-size:9px;
  font-weight:600;
  letter-spacing:1.5px;
}
.sidebar nav a {
  display:block;
  color:#b2bbc8;
  font-size:12px;
  padding:10px 12px;
  margin:4px 0;
  border-radius:6px;
}
.sidebar nav a .nav-ico {
  display:inline-grid;
  place-items:center;
  width:20px;
  height:18px;
  margin-right:9px;
  opacity:.8;
  vertical-align:middle;
}
.sidebar nav a .nav-ico svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sidebar nav a[aria-current] .nav-ico {
  opacity:1;
}
.sidebar nav a {
  position:relative;
  transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);
}
.sidebar nav a[aria-current] {
  background:#2a3647;
  color:#e2e9f4;
  box-shadow:inset 3px 0 #aebdd3;
  font-weight:600;
}
.sidebar nav a:hover {
  background:#242e3e;
  text-decoration:none;
}
.sidebar-foot {
  margin-top:auto;
  border-top:1px solid #333d4b;
  padding:17px 9px 0;
  font-size:12px;
}
.sidebar-foot>span:before {
  content:'●';
  color:#a5b3c9;
  margin-right:9px;
}
.sidebar-foot button {
  color:#919daf;
  font-size:11px;
  margin:6px 0 0 18px;
}
.text-button {
  border:0;
  background:none;
  color:var(--green);
  padding:0;
}
.text-button:hover {
  background:none;
  text-decoration:underline;
}
main {
  margin-left:198px;
  min-width:0;
}
.page-content {
  padding:0 28px;
  max-width:1680px;
  margin:auto;
}
.desk-topbar {
  height:57px;
  border-bottom:1px solid var(--line);
  padding:0 28px;
  display:flex;
  align-items:center;
  gap:22px;
  background:#fff;
}
.desk-breadcrumb {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:11px;
  white-space:nowrap;
}
.desk-breadcrumb a {
  color:#6d7d95;
}
.desk-breadcrumb>span:first-of-type {
  color:#c3c9d3;
}
.desk-breadcrumb>span:last-of-type {
  font-weight:600;
}
.desk-search {
  display:flex;
  align-items:center;
  gap:7px;
  margin-left:auto;
  width:235px;
  color:#8290a5;
}
.desk-search>span {
  font-size:21px;
}
.desk-search input {
  border:0 !important;
  background:transparent !important;
  padding:6px 0 !important;
  height:28px;
  font-size:11px !important;
}
.desk-search button {
  padding:0 5px;
  color:#8290a5;
  background:#f7f8f9;
  border:1px solid var(--line);
  font-size:10px;
}
.local-tag {
  font:8px ui-monospace,monospace;
  letter-spacing:.7px;
  color:#6b7b93;
  background:#ecf0f5;
  padding:5px 7px;
  border-radius:4px;
}
header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:0;
  padding:27px 0 24px;
}
h1 {
  font-size:29px;
  line-height:1.2;
  letter-spacing:-1px;
  font-weight:650;
  margin:5px 0 7px;
  overflow-wrap:anywhere;
}
h2 {
  font-size:16px;
  letter-spacing:-.35px;
  font-weight:600;
  margin:0;
}
h3 {
  font-size:14px;
  font-weight:600;
  margin:0 0 7px;
}
p {
  margin:6px 0 12px;
}
header .muted {
  margin:0;
  font-size:12px;
}
.eyebrow {
  margin:0;
  font-size:9px;
  letter-spacing:1.5px;
  font-weight:650;
  color:#718198;
}
.muted {
  color:var(--muted);
}
.small {
  font-size:11px;
}
.stats {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:13px;
  margin:0 0 26px;
}
.stats>div {
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:18px 20px;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}
.stats span {
  color:#74839a;
  font-size:10px;
}
.stats strong {
  display:block;
  font-size:30px;
  font-weight:550;
  line-height:1.4;
  letter-spacing:-1px;
  margin-top:5px;
}
.stats strong small {
  font-size:15px;
  color:#8d9aad;
}
.stats p {
  font-size:12px;
  margin:10px 0 0;
}
.stats .stat-note {
  display:block;
  font-size:9px;
  color:#94a0b1;
  margin-top:5px;
}
.stats .stat-attention {
  background:#fffaf0;
  border-color:#efdfc0;
}
.stats .stat-attention strong {
  color:#916c31;
}
.section-title {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  margin:0 0 12px;
}
.section-title a {
  font-size:11px;
}
.section-title .badge {
  font-size:9px;
}
.case-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:14px;
}
.case-card,.panel {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  min-width:0;
}
.case-card {
  display:block;
  color:var(--ink);
  padding:19px;
}
.case-card:hover {
  text-decoration:none;
  border-color:#a1abbb;
  box-shadow:var(--shadow-md);
}
.case-card h3 {
  margin:16px 0 4px;
  font-size:17px;
  letter-spacing:-.3px;
}
.case-card>p {
  font-size:11px;
  color:var(--muted);
}
.card-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid #eceef1;
  padding-top:12px;
  margin-top:15px;
  font-size:10px;
  color:#697992;
}
.card-bottom span {
  font-size:17px;
}
.row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.badge,.status-chip {
  display:inline-block;
  padding:4px 8px;
  border-radius:var(--radius-sm);
  background:#eef0f4;
  color:#6a7a92;
  font-size:10px;
  font-weight:550;
  white-space:nowrap;
}
.success {
  color:#435878;
}
.badge.success {
  color:#435878;
  background:#e8eef6;
}
.warning {
  color:var(--amber);
}
.two-col {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:22px;
  margin-top:26px;
  align-items:start;
}
.wide-left {
  grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);
}
.list-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid #eceef1;
  padding:16px 18px;
  color:var(--ink);
  min-width:0;
}
.list-row:last-child {
  border-bottom:0;
}
a.list-row:hover {
  text-decoration:none;
  background:#f7f8fa;
}
.list-row strong {
  font-size:12px;
  font-weight:550;
  overflow-wrap:anywhere;
}
.list-row p {
  font-size:10px;
  color:var(--muted);
  margin:3px 0 0;
}
.list-row>div {
  min-width:0;
}
.empty {
  padding:30px 22px;
  color:#8290a4;
  font-size:12px;
  text-align:center;
}
.empty a {
  display:inline-block;
  margin-top:7px;
}
.padded {
  padding:18px;
  margin-bottom:15px;
}
.search {
  display:flex;
  gap:8px;
  margin:0;
  max-width:500px;
  width:100%;
}
.list-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:15px;
}
.list-toolbar>span {
  flex-shrink:0;
  color:#7c8aa0;
  font-size:11px;
}
.table-wrap {
  overflow:auto;
}
table {
  border-collapse:collapse;
  width:100%;
  font-size:12px;
}
th {
  text-align:left;
  font-size:9px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.7px;
  color:#7d8ba1;
  background:#f9fafc;
  padding:12px 18px;
  border-bottom:1px solid var(--line);
}
td {
  padding:16px 18px;
  border-bottom:1px solid #eceef2;
}
tr:last-child td {
  border:0;
}
tbody tr:hover {
  background:#f9fafc;
}
.client-cell {
  display:flex;
  align-items:center;
  gap:11px;
  color:var(--ink);
  font-weight:550;
  min-width:170px;
}
.avatar {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  flex-shrink:0;
  border-radius:9px;
  border:1px solid #dae0ea;
  background:#ecf0f6;
  color:#6d7d95;
  font:16px Georgia,serif;
}
.client-cell small {
  display:block;
  font-size:9px;
  color:#8593a7;
  font-weight:400;
  margin-top:3px;
}
.contact-heading {
  display:flex;
  align-items:center;
  gap:15px;
}
.contact-heading .avatar {
  width:49px;
  height:49px;
  font-size:24px;
}
.record-layout {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);
  gap:22px;
  align-items:start;
}
.record-layout section+section {
  margin-top:23px;
}
.record-layout .section-title {
  margin-top:0;
}
.facts {
  margin:0;
}
.facts>div {
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:10px 0;
  border-bottom:1px solid #eceef1;
}
.facts>div:last-child {
  border:0;
}
.facts dt {
  font-size:10px;
  color:#8290a5;
}
.facts dd {
  margin:0;
  font-size:11px;
  text-align:right;
  overflow-wrap:anywhere;
  min-width:0;
}
.timeline {
  border-left:1px solid #d4dce7;
  padding:0 0 18px 15px;
  margin-left:3px;
  position:relative;
}
.timeline:before {
  content:'';
  position:absolute;
  left:-4px;
  top:5px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#adb6c3;
}
.timeline p {
  font-size:11px;
  margin:0 0 5px;
  overflow-wrap:anywhere;
}
.timeline span {
  font-size:9px;
  color:#8a97aa;
}
.history-panel {
  max-height:480px;
  overflow:auto;
}
.actions {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  font-size:10px;
  margin-top:14px;
}
.form-panel {
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}
.form-panel p {
  margin:0 0 17px;
}
.narrow {
  max-width:650px;
}
.form-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid #eceef1;
  padding-top:16px;
  margin-top:22px;
  color:#8c98ab;
  font-size:10px;
}
.form-layout {
  display:grid;
  grid-template-columns:minmax(0,650px) minmax(200px,1fr);
  gap:30px;
  align-items:start;
}
.form-aside {
  padding:22px 0;
  max-width:260px;
  color:#818fa4;
  font-size:12px;
}
.form-aside .eyebrow {
  margin-bottom:12px;
}
label {
  display:block;
  font-size:11px;
  color:#5c6a7e;
  font-weight:550;
  margin:0 0 5px;
}
input:not([type=checkbox]):not([type=hidden]),select,textarea {
  width:100%;
  border:1px solid #dadfe7;
  border-radius:var(--radius-sm);
  padding:8px 10px;
  font-size:13px;
  color:var(--ink);
  background:#fdfdfe;
  min-width:0;
  transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);
}
input:focus,select:focus,textarea:focus {
  outline:none;
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(41,64,98,.12);
}
input[type=checkbox] {
  width:15px;
  height:15px;
  accent-color:var(--green);
  vertical-align:middle;
}
textarea {
  height:110px;
  resize:vertical;
}
.helptext {
  display:block;
  font-size:10px;
  line-height:1.6;
  color:#8794a8;
  margin:5px 0;
}
.errorlist {
  list-style:none;
  padding:9px 12px;
  color:#a65136;
  background:#fff1e9;
  border-radius:5px;
  font-size:11px;
}
.notice,.message {
  padding:12px 16px;
  background:#fffaf0;
  border:1px solid #eaddc0;
  color:#967a4b;
  border-radius:6px;
  font-size:11px;
  margin:0 0 20px;
}
.message {
  margin-top:15px;
}
.message.success {
  background:#ecf0f6;
  border-color:#d3dbe7;
  color:#566376;
}
.requirement {
  padding:18px 20px;
  border-bottom:1px solid #eceef1;
}
.requirement:last-child {
  border:0;
}
.requirement p {
  font-size:11px;
  color:#7c8aa0;
  line-height:1.7;
}
.requirement .small {
  font-size:10px;
}
.evidence-row {
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-left:2px solid #b0b9c7;
  padding:8px 10px;
  margin:5px 0;
  font-size:11px;
}
.back {
  display:block;
  margin:17px 0;
  font-size:11px;
}
.case-aside .section-title:not(:first-child) {
  margin-top:22px;
}
progress {
  height:4px;
  border:0;
  appearance:none;
  background:#e1e5eb;
  border-radius:5px;
  width:100%;
}
progress::-webkit-progress-bar {
  background:#e1e5eb;
  border-radius:5px;
}
progress::-webkit-progress-value {
  background:#77879e;
  border-radius:5px;
}
pre {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font:11px/1.7 ui-monospace,monospace;
  max-height:600px;
  overflow:auto;
  background:#f5f7f9;
  padding:16px;
  border-radius:5px;
}
details {
  margin:15px 0;
}
summary {
  cursor:pointer;
  color:var(--green);
  font-size:11px;
}
blockquote {
  border-left:2px solid #b1b9c6;
  padding-left:12px;
  margin:12px 0;
}
footer {
  padding:23px 0 18px;
  color:#98a4b5;
  font-size:9px;
}
.login {
  max-width:390px;
  margin:65px auto;
}
.login h1 {
  font-size:30px;
  margin:8px 0 15px;
}
.login .form-panel {
  margin-top:25px;
}
.login button {
  width:100%;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}
@media(max-width:1100px) {
  .sidebar {
    width:174px;
    padding:24px 10px;
  }
  .brand {
    font-size:20px;
  }
  .beta {
    display:none;
  }
  main {
    margin-left:174px;
  }
  .page-content {
    padding:0 18px;
  }
  .desk-topbar {
    padding:0 18px;
  }
  .local-tag {
    display:none;
  }
  .wide-left {
    grid-template-columns:minmax(0,1fr) minmax(270px,.8fr);
  }
}
@media(max-width:850px) {
  .sidebar {
    position:static;
    width:auto;
    height:auto;
    padding:12px 18px;
    flex-direction:row;
    align-items:center;
    gap:20px;
  }
  .office,.sidebar-foot,.sidebar nav:before {
    display:none;
  }
  .sidebar nav {
    display:flex;
    gap:5px;
    margin-left:auto;
  }
  .sidebar nav a {
    margin:0;
    padding:7px 9px;
    font-size:10px;
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
  }
  .sidebar nav a .nav-ico { width:18px; height:16px; margin-right:6px; }
  .sidebar nav a .nav-ico svg { width:15px; height:15px; }
  main {
    margin:0;
  }
  .two-col,.record-layout {
    grid-template-columns:1fr;
  }
  .form-layout {
    grid-template-columns:1fr;
  }
  .form-aside {
    display:none;
  }
}
@media(max-width:600px) {
  .sidebar {
    flex-wrap:wrap;
    gap:8px;
    padding:12px;
  }
  .sidebar nav {
    width:100%;
    margin:5px 0 0;
  }
  .sidebar nav a {
    flex:1;
    text-align:center;
  }
  .desk-topbar {
    height:46px;
    padding:0 16px;
  }
  .desk-search {
    display:none;
  }
  .page-content {
    padding:0 14px;
  }
  header {
    align-items:flex-start;
    flex-wrap:wrap;
    padding:22px 0;
    gap:13px;
  }
  h1 {
    font-size:25px;
  }
  .stats {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
  }
  .stats>div {
    padding:13px;
  }
  .stats strong {
    font-size:26px;
  }
  .case-grid {
    grid-template-columns:1fr;
  }
  .list-toolbar {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
  .row {
    flex-wrap:wrap;
  }
  .form-panel {
    padding:18px;
  }
  .contact-heading .avatar {
    display:none;
  }
  .login {
    margin:35px auto;
  }
  .facts dd {
    max-width:65%;
  }
}
/* Keep off-screen table accessibility labels inside the scrolling container. */
.table-wrap {
  position:relative;
}
@media(max-width:600px) {
  .sidebar nav {
    order:2;
  }
  .sidebar-foot {
    display:flex;
    border:0;
    padding:0;
    margin:0 0 0 auto;
  }
  .sidebar-foot>span {
    display:none;
  }
  .sidebar-foot button {
    margin:0;
    font-size:10px;
  }
}

/* Shared status semantics across lists, evidence, packets and summaries. */
:root {
  --red-text:#a34346; --red-bg:#fff0f0; --red-line:#edb9bb;
  --review-text:#896014; --review-bg:#fff4d9; --review-line:#e8c77c;
  --done-text:#394c69; --done-bg:#e9eef6; --done-line:#acb8cb;
  --blue-text:#3f678f; --blue-bg:#edf3fc; --blue-line:#b5cbe6;
  --neutral-text:#606e84; --neutral-bg:#eef1f2;
}
.badge,.status-chip { background:var(--neutral-bg); color:var(--neutral-text); }
.badge.missing,.badge.attention,.status-chip.attention { background:var(--red-bg); color:var(--red-text); }
.badge.review,.badge.reviewing,.badge.consultation,.badge.unfiled,.status-chip.review,.status-chip.unfiled { background:var(--review-bg); color:var(--review-text); }
.badge.accepted,.badge.filed,.badge.ready,.badge.proceeding,.status-chip.filed,.badge.success { background:var(--done-bg); color:var(--done-text); }
.badge.processing,.badge.collecting,.badge.submitted,.badge.new,.badge.contacted,.status-chip.processing { background:var(--blue-bg); color:var(--blue-text); }
.tone-missing,.tone-attention { --tone-bg:var(--red-bg); --tone-ink:var(--red-text); --tone-line:var(--red-line); }
.tone-review,.tone-reviewing,.tone-consultation,.tone-unfiled { --tone-bg:var(--review-bg); --tone-ink:var(--review-text); --tone-line:var(--review-line); }
.tone-accepted,.tone-filed,.tone-ready,.tone-proceeding { --tone-bg:var(--done-bg); --tone-ink:var(--done-text); --tone-line:var(--done-line); }
.tone-processing,.tone-new,.tone-contacted { --tone-bg:var(--blue-bg); --tone-ink:var(--blue-text); --tone-line:var(--blue-line); }
.tone-lost { --tone-bg:var(--neutral-bg); --tone-ink:var(--neutral-text); --tone-line:#cbd3d5; }
.linked-stats .metric {
  display:block; padding:18px 20px; border:1px solid var(--tone-line,var(--line));
  border-radius:var(--radius-md); background:var(--tone-bg,var(--surface)); color:var(--ink);
}
.metric:hover { text-decoration:none; box-shadow:var(--shadow-md); }
.metric strong { color:var(--tone-ink,var(--ink)); }
.metric span,.stats .metric .stat-note { color:#5d6b80; }
.stage-strip { display:flex; flex-wrap:wrap; gap:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.stage-strip a { display:flex; align-items:center; gap:9px; padding:14px 18px; color:var(--ink); font-size:11px; }
.stage-strip strong { margin-left:7px; }
.stage-strip .strip-link { margin-left:auto; color:var(--green); }
.stage-dot { width:7px; height:7px; border-radius:50%; background:#81a4cc; }
.stage-dot.reviewing { background:#d5a447; }.stage-dot.ready { background:#7083a0; }
.section-caption { color:#6e7e96; font-size:10px; margin:0 0 12px; }
.spaced { margin-top:25px; }
.attention-row { border-left:3px solid var(--tone-line,var(--line)); }
.attention-row small { font-size:9px; }
.attention-row .date-cell { text-align:right; flex-shrink:0; }
.date-cell small { display:block; margin-top:5px; color:#66768e; }
.workspace-note { margin-top:22px; background:#eff2f6; }
.workspace-note h3 { margin-top:10px; }
.quick-links { display:flex; flex-wrap:wrap; gap:12px 20px; font-size:11px; }
.filter-bar { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; background:var(--surface); padding:16px; border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); margin:0 0 18px; }
.filter-bar>div { flex:1 1 125px; min-width:0; }
.filter-bar>.filter-search { flex:2 1 240px; }
.filter-bar>.small { align-self:center; margin-top:18px; }
.filter-bar select,.filter-bar input { font-size:11px !important; height:36px; }
.filter-bar label { font-size:10px; }
.work-table { min-width:820px; table-layout:fixed; }
.work-table td { padding:14px 15px; vertical-align:top; overflow-wrap:anywhere; }
.work-table th { padding:12px 15px; }
.work-table small { display:block; color:#697990; font-size:10px; margin-top:4px; }
.work-table .table-primary { font-weight:600; color:var(--ink); }
.work-table td:first-child { width:21%; }
.work-table .evidence-cell { min-width:150px; font-size:10px; }
.evidence-cell progress { display:block; margin:7px 0; }
.mini-badges { display:flex; gap:4px; flex-wrap:wrap; }
.mini-badges .badge { font-size:9px; padding:3px 5px; }
.table-actions a { display:block; font-size:11px; margin-bottom:6px; }
.past-date,.work-table small.past-date { color:var(--red-text); }
.pagination { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding:16px 0; color:#65758c; font-size:11px; }
.pagination>div { display:flex; gap:14px; align-items:center; }
.pagination .button { font-size:10px; padding:6px 10px; }
.pipeline-strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:10px; }
.pipeline-step { padding:17px; background:var(--tone-bg,var(--surface)); border:1px solid var(--tone-line,var(--line)); border-radius:var(--radius-md); transition:transform var(--dur-normal) var(--ease),box-shadow var(--dur-normal) var(--ease); }
.pipeline-step strong { display:block; font-size:27px; font-weight:550; color:var(--tone-ink,var(--ink)); margin-top:6px; }
.pipeline-step[aria-current] { outline:2px solid var(--tone-ink,var(--green)); outline-offset:2px; }
.pipeline-step:hover { text-decoration:none; }
.source-note { background:#edf3f5; border:1px solid #d9e5e8; color:#617a83; font-size:11px; padding:12px 16px; border-radius:7px; margin:0 0 20px; }
.source-label { display:inline-block; font-size:10px; background:#edf0f5; color:#515d6f; padding:3px 6px; border-radius:4px; }
.deadline-row td:first-child { border-left:3px solid var(--tone-line,var(--line)); }
.checklist-summary { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.checklist-panel { overflow:hidden; }
.requirement { border-left:3px solid var(--tone-line,var(--line)); background:linear-gradient(90deg,var(--tone-bg,#fff),#fff 65%); }
.requirement:last-child { border-left:3px solid var(--tone-line,var(--line)); }
.requirement p { color:#65748b; }
.case-edit { margin:0; }
.case-edit>summary { border:1px solid var(--line); background:#fff; border-radius:7px; padding:13px 16px; font-weight:550; }
.case-edit[open]>summary { margin-bottom:10px; }
@media(max-width:1100px) {
  .filter-bar>div { flex-basis:150px; }
  .pipeline-step { padding:12px; }
  .pipeline-step .badge { padding:3px 5px; font-size:9px; }
}
@media(max-width:850px) {
  .sidebar { flex-wrap:wrap; gap:10px; }
  .sidebar nav { overflow-x:auto; width:100%; margin:0; }
  .sidebar nav a { white-space:nowrap; flex-shrink:0; }
  .sidebar-foot { display:flex; border:0; margin:0 0 0 auto; padding:0; }
  .sidebar-foot>span { display:none; }
  .sidebar-foot button { margin:0; }
  .pipeline-strip { gap:7px; }
}
@media(max-width:600px) {
  .sidebar nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sidebar nav a { padding:8px 4px; font-size:10px; }
  .linked-stats .metric { padding:13px; }
  .stage-strip a { padding:10px 12px; flex:1 1 40%; }
  .stage-strip .strip-link { flex-basis:100%; }
  .filter-bar { padding:12px; gap:10px; }
  .filter-bar>.filter-search { flex-basis:100%; }
  .pipeline-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pipeline-step strong { font-size:24px; }
  .attention-row { padding:13px 12px; }
  .attention-row .badge { font-size:9px; }
  .pagination>div { gap:9px; }
}

.stats>div[class*="tone-"] { background:var(--tone-bg,#fff); border-color:var(--tone-line,var(--line)); }

.location-form textarea { height:57px; min-height:57px; font-size:12px; margin:4px 0 8px; }
.location-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.location-actions small { font-size:9px; color:#67778f; }
.location-actions button { font-size:10px; padding:6px 10px; }
@media(max-width:600px) { .stats>.physical-file-card { grid-column:1 / -1; } }

.upload-location-form { padding:12px 17px; background:#fff; border-bottom:1px solid var(--line); flex-shrink:0; }
.upload-location-form label { font-size:11px; color:#424d5e; }
.upload-location-form textarea { height:47px; min-height:47px; font-size:12px; resize:vertical; }
.upload-location-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:6px; }
.upload-location-actions span { font-size:9px; color:#6a7a92; }
.upload-location-actions button { font-size:10px; padding:6px 10px; }
.upload-location-form [data-location-feedback] { font-size:10px; color:#3a4b65; margin:5px 0 0; }
.upload-location-form [data-location-feedback]:empty { display:none; }
.packet-location { margin-bottom:20px; overflow:hidden; }
.packet-location .upload-location-form { border:0; }
@media(max-width:600px) { .upload-location-actions { flex-wrap:wrap; } }

/* List links cover their row. Tables use row-navigation.js to avoid Safari overlay overlap. */
.record-row:not(tr) { position:relative; isolation:isolate; }
tr.record-row.row-navigation-ready { cursor:pointer; }
.record-row .record-link { position:static; }
.record-row:not(tr) .record-link::after { content:""; position:absolute; inset:0; z-index:1; cursor:pointer; }
.record-row a:not(.record-link),
.record-row button,
.record-row input,
.record-row select,
.record-row textarea,
.record-row label { position:relative; z-index:2; }
.record-row:hover,
.record-row:focus-within,
a.list-row:hover,
a.list-row:focus-visible { background:#ecf0f6; }
.record-row:focus-within { box-shadow:inset 3px 0 var(--green); }
.record-row .record-link:focus-visible::after,
a.list-row:focus-visible,
a.evidence-row:focus-visible { outline:2px solid var(--green); outline-offset:-2px; border-radius:4px; }
a.evidence-row { align-items:center; border-radius:0 5px 5px 0; }
a.evidence-row > :first-child { min-width:0; overflow-wrap:anywhere; }
.evidence-arrow { flex-shrink:0; color:var(--muted); }
a.evidence-row:hover,
a.evidence-row:focus-visible { background:#dbe3ef; border-left-color:var(--green); text-decoration:none; }
a.evidence-row:hover .evidence-arrow,
a.evidence-row:focus-visible .evidence-arrow { color:var(--green); }

.found-information{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid #efd59b;background:#fff8e8;border-radius:10px;padding:18px 22px;margin-bottom:24px}.found-information p{margin:4px 0 0;color:#876929;font-size:12px}.found-detail{background:#fffbef}.found-detail dd .badge{display:block;width:fit-content;margin:5px 0 0 auto}.client-return{font-weight:600}.packet-progress .client-return{font-size:12px}@media(max-width:700px){.found-information{flex-direction:column;align-items:flex-start}}

.client-record-heading{flex-wrap:wrap}.client-record-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.client-record-actions .button{white-space:nowrap}

/* Mobile navigation stays closed until requested, using the same desktop links. */
.sidebar-brand { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mobile-header,.mobile-menu-close { display:none; }
.mobile-menu {
  position:fixed;
  inset:0 auto 0 0;
  margin:0;
  padding:0;
  width:min(340px,calc(100vw - 44px));
  height:100dvh;
  max-width:none;
  max-height:none;
  border:0;
  background:#17202e;
  color:#b3bbc8;
  box-shadow:12px 0 40px #0e152033;
  overflow:auto;
  overscroll-behavior:contain;
}
.mobile-menu::backdrop { background:#131c2980; }
body.menu-open { overflow:hidden; }
.mobile-menu .sidebar {
  position:static;
  width:100%;
  min-height:100%;
  padding:18px 18px max(18px,env(safe-area-inset-bottom));
  flex-direction:column;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:0;
}
.mobile-menu .brand { font-size:23px; padding:0; }
.mobile-menu .beta { display:none; }
.mobile-menu .office { display:block; margin:22px 0; }
.mobile-menu .sidebar nav { display:block; width:auto; margin:0; overflow:visible; order:0; }
.mobile-menu .sidebar nav:before { display:block; }
.mobile-menu .sidebar nav a { font-size:14px; padding:12px; margin:3px 0; text-align:left; white-space:normal; }
.mobile-menu .sidebar nav a .nav-ico { width:26px; margin-right:10px; }
.mobile-menu .sidebar nav a .nav-ico svg { width:20px; height:20px; }
.mobile-menu .sidebar-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:22px 0 0; padding:14px 0 0; border-top:1px solid #3a4350; }
.mobile-menu .sidebar-foot>span { display:block; overflow-wrap:anywhere; }
.mobile-menu .sidebar-foot button { margin:0; min-height:44px; padding:8px; font-size:13px; }
.mobile-menu .mobile-menu-close { display:inline-flex; min-width:44px; height:44px; padding:10px; color:#e1e7f1; border-color:#3a4350; background:transparent; }
@media(max-width:850px) {
  .mobile-navigation-ready .mobile-header {
    position:sticky;
    top:0;
    z-index:20;
    box-shadow:0 1px 8px #131c2918;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:64px;
    padding:10px 16px;
    background:#17202e;
  }
  .mobile-header .brand { font-size:23px; padding:0; }
  .mobile-header .mark { width:29px; height:32px; flex-shrink:0; }
  .mobile-menu-toggle { min-height:44px; padding:9px 12px; border-color:#3a4350; background:transparent; color:#e1e7f1; font-size:13px; }
  .mobile-menu-toggle:hover,.mobile-menu-close:hover { background:#2a3647; }
}


/* Motion follows the menu action; closing keeps the modal active until it ends. */
.mobile-menu[open] { animation:menu-slide-in 240ms cubic-bezier(.2,.8,.2,1) both; }
.mobile-menu[open]::backdrop { animation:menu-backdrop-in 240ms ease-out both; }
.mobile-menu[open].is-closing { animation:menu-slide-out 180ms ease-in both; }
.mobile-menu[open].is-closing::backdrop { animation:menu-backdrop-out 180ms ease-in both; }
@keyframes menu-slide-in { from { transform:translateX(-100%); } to { transform:translateX(0); } }
@keyframes menu-slide-out { from { transform:var(--menu-exit-start,translateX(0)); } to { transform:translateX(-100%); } }
@keyframes menu-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes menu-backdrop-out { from { opacity:1; } to { opacity:0; } }
.mobile-menu-toggle,.mobile-menu-close { transition:background-color 150ms ease,transform 150ms ease; }
.mobile-menu-toggle:active,.mobile-menu-close:active { transform:scale(.96); }
.sidebar nav a { transition:background-color 160ms ease,color 160ms ease,transform 160ms ease; }
@media(hover:hover) and (pointer:fine) {
  .mobile-menu nav a:hover { transform:translateX(3px); }
}
@media(prefers-reduced-motion:reduce) {
  .mobile-menu[open],.mobile-menu[open]::backdrop,
  .mobile-menu[open].is-closing,.mobile-menu[open].is-closing::backdrop { animation:none; }
  .mobile-menu-toggle,.mobile-menu-close,.sidebar nav a { transition:none; }
  .mobile-menu-toggle:active,.mobile-menu-close:active,.mobile-menu nav a:hover { transform:none; }
}

.case-progress-form{margin-bottom:24px}.case-progress-form .field-group{margin-bottom:18px}.case-progress-form .helptext{display:block;color:var(--muted);font-size:12px;margin-top:6px}.case-next-step{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.case-next-step h3{margin:0 0 14px}.case-passport-form{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.case-passport-form button{margin-top:12px}.case-passport-form select{max-width:100%}.passport-expiry{font-size:16px}

.case-stats{align-items:start}@media(max-width:600px){.case-stats{grid-template-columns:1fr}}

@media(max-width:850px){html{scroll-padding-top:80px}}

/* Shared motion language. Hover lifts only on fine pointers; transforms and
   animation are disabled for reduced-motion users. */
.panel,.form-panel{transition:box-shadow var(--dur-normal) var(--ease),border-color var(--dur-fast) var(--ease);}
.card,.metric,.case-card{transition:transform var(--dur-normal) var(--ease),box-shadow var(--dur-normal) var(--ease),border-color var(--dur-fast) var(--ease);}
@media(hover:hover) and (pointer:fine){
  .card:hover,.metric:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
  .case-card:hover{transform:translateY(-2px);}
  .panel:hover{box-shadow:var(--shadow-sm);}
}
button,.button{transition:background-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);}
button:active:not(:disabled),.button:active{transform:scale(.98);}
.page-content>*{animation:content-fade 300ms var(--ease) both;}
.page-content>*:nth-child(2){animation-delay:40ms;}
.page-content>*:nth-child(3){animation-delay:80ms;}
@keyframes content-fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){
  .card,.metric,.case-card,.panel,.form-panel,button,.button,.page-content>*{transition:none;animation:none;}
  .card:hover,.metric:hover,.case-card:hover,.panel:hover{transform:none;}
  button:active:not(:disabled),.button:active{transform:none;}
}
