:root {
  --app-primary: #3759c8;
  --app-primary-rgb: 55, 89, 200;
  --app-heading: #172033;
  --app-muted: #667085;
  --app-border: #e4e7ec;
  --app-surface: #fff;
  --app-background: #f6f7fb;
}

/* Read-only lawyer portal */
.client-readonly-banner{align-items:center}
.client-portal-tabs{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden}
.client-portal-tabs a{display:flex;align-items:center;justify-content:center;gap:.55rem;padding:1rem;color:var(--app-muted);text-decoration:none;border-right:1px solid var(--app-border);font-weight:600}
.client-portal-tabs a:last-child{border-right:0}.client-portal-tabs a:hover{color:var(--app-primary);background:rgba(var(--app-primary-rgb),.035)}
.client-portal-tabs a.active{color:var(--app-primary);background:rgba(var(--app-primary-rgb),.085);box-shadow:inset 0 -3px var(--app-primary)}
.client-readonly-card{overflow:hidden}.client-readonly-table thead th{white-space:nowrap;color:#6d6b77;background:#f7f7fa;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.client-readonly-table td{vertical-align:middle}
.client-page-count{display:inline-grid;min-width:42px;place-items:center;padding:.35rem .55rem;border-radius:.45rem;background:#eef2ff;color:#3d55b4;font-weight:700}
.client-filter-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.8rem;align-items:end}.client-mail-filter{display:grid;grid-template-columns:minmax(160px,240px) minmax(160px,240px) auto;gap:.8rem;align-items:end}
.client-results-summary{padding:.7rem 1rem;border-bottom:1px solid var(--app-border);color:var(--app-muted);font-size:.8rem}.client-results-summary strong{color:var(--app-heading)}
@media(max-width:767.98px){.client-readonly-banner{align-items:flex-start;flex-direction:column}.client-portal-tabs{grid-template-columns:1fr}.client-portal-tabs a{justify-content:flex-start;border-right:0;border-bottom:1px solid var(--app-border)}.client-filter-grid,.client-mail-filter{grid-template-columns:1fr}}

/* Driver correspondence search */
.driver-search-card {
  border: 1px solid rgba(var(--bs-primary-rgb), .12);
  border-radius: 1.15rem;
  overflow: hidden;
  box-shadow: 0 16px 42px rgba(31, 45, 78, .09);
}
.driver-search-header {
  padding: 1.35rem 1.5rem;
  border-bottom: 1px solid rgba(var(--bs-primary-rgb), .12);
  background:
    radial-gradient(circle at 88% 18%, rgba(var(--bs-primary-rgb), .15), transparent 26%),
    linear-gradient(135deg, rgba(var(--bs-primary-rgb), .09), rgba(111, 66, 193, .045) 52%, rgba(255,255,255,.72));
}
.driver-search-heading {
  display: flex;
  align-items: center;
  gap: .9rem;
}
.driver-search-icon {
  display: inline-grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  flex: 0 0 3.25rem;
  border-radius: 1rem;
  color: #fff;
  font-size: 1.45rem;
  background: linear-gradient(145deg, var(--bs-primary), #7259dc);
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), .25);
}
.driver-search-kicker {
  display: block;
  margin-bottom: .15rem;
  color: var(--bs-primary);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.driver-search-header .card-title { font-size: 1.2rem; }
.driver-search-header small { color: var(--bs-secondary-color); }
.driver-search-status {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .55rem;
}
.driver-filter-badge,
.driver-match-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 2.15rem;
  padding: .38rem .7rem;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 700;
}
.driver-filter-badge {
  color: var(--bs-primary);
  border: 1px solid rgba(var(--bs-primary-rgb), .18);
  background: rgba(var(--bs-primary-rgb), .09);
}
.driver-match-badge {
  color: #087a55;
  border: 1px solid rgba(40, 199, 111, .22);
  background: rgba(40, 199, 111, .1);
}
.driver-match-badge strong { font-size: .95rem; }
.driver-search-body {
  padding: 1.35rem 1.5rem 1.5rem;
  background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), .018), transparent 9rem);
}
.driver-filter-zone {
  position: relative;
  padding: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(var(--bs-primary-rgb), .11);
  border-radius: 1rem;
  background: var(--bs-body-bg);
  box-shadow: 0 8px 24px rgba(31, 45, 78, .045);
}
.driver-filter-zone::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: .25rem;
  content: "";
  background: linear-gradient(180deg, var(--bs-primary), #28c76f);
}
.driver-filter-step-header,
.driver-filter-step-divider {
  display: flex;
  align-items: center;
  gap: .7rem;
}
.driver-filter-step-header {
  margin-bottom: 1rem;
  padding-bottom: .8rem;
  border-bottom: 1px dashed rgba(var(--bs-primary-rgb), .15);
}
.driver-filter-step-header > i {
  color: rgba(var(--bs-primary-rgb), .55);
  font-size: 1.35rem;
}
.driver-filter-step-header strong,
.driver-filter-step-divider strong {
  display: block;
  color: var(--bs-heading-color);
  font-size: .83rem;
}
.driver-filter-step-header small,
.driver-filter-step-divider small {
  display: block;
  color: var(--bs-secondary-color);
  font-size: .72rem;
}
.driver-filter-step-divider {
  margin: .35rem 0 -.1rem;
}
.driver-filter-step-divider::after {
  height: 1px;
  flex: 1;
  content: "";
  background: linear-gradient(90deg, rgba(var(--bs-primary-rgb), .16), transparent);
}
.driver-filter-step-number {
  display: inline-grid;
  place-items: center;
  width: 1.85rem;
  height: 1.85rem;
  flex: 0 0 1.85rem;
  border-radius: .6rem;
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  background: var(--bs-primary);
  box-shadow: 0 5px 12px rgba(var(--bs-primary-rgb), .2);
}
#letter-filter-form .form-label {
  margin-bottom: .4rem;
  color: var(--bs-heading-color);
  font-size: .76rem;
  font-weight: 700;
}
#letter-filter-form .form-control,
#letter-filter-form .form-select,
#letter-filter-form .input-group-text {
  min-height: 2.75rem;
  border-color: rgba(90, 103, 124, .18);
}
#letter-filter-form .form-control,
#letter-filter-form .form-select {
  background-color: rgba(var(--bs-body-bg-rgb), .94);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
#letter-filter-form .form-control:hover,
#letter-filter-form .form-select:hover { border-color: rgba(var(--bs-primary-rgb), .35); }
#letter-filter-form .form-control:focus,
#letter-filter-form .form-select:focus {
  border-color: rgba(var(--bs-primary-rgb), .62);
  box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .1);
}
#letter-filter-form textarea.form-control { min-height: 4.75rem; }
.driver-filter-field {
  padding-top: .55rem;
  padding-bottom: .55rem;
}
.driver-filter-actions {
  padding-top: .35rem;
  padding-bottom: .35rem;
}
.driver-filter-actions-panel {
  display: grid;
  gap: .55rem;
  height: 100%;
  padding: .9rem 1rem;
  border: 1px solid rgba(var(--bs-primary-rgb), .13);
  border-radius: .9rem;
  background: linear-gradient(145deg, rgba(var(--bs-primary-rgb), .055), rgba(111, 66, 193, .035));
}
.driver-filter-actions-panel .form-check {
  padding: .35rem .4rem .35rem 2rem;
  border-radius: .55rem;
}
.driver-filter-submit {
  min-height: 2.9rem;
  border: 0;
  background: linear-gradient(135deg, var(--bs-primary), #7259dc);
  box-shadow: 0 8px 18px rgba(var(--bs-primary-rgb), .22);
  transition: transform .18s ease, box-shadow .18s ease;
}
.driver-filter-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 11px 22px rgba(var(--bs-primary-rgb), .28);
}
@media (max-width: 991.98px) {
  .driver-search-status { width: 100%; justify-content: flex-start; }
  .driver-filter-step-divider { margin-top: .15rem; }
}
@media (max-width: 575.98px) {
  .driver-search-header, .driver-search-body { padding: 1rem; }
  .driver-search-heading { align-items: flex-start; }
  .driver-search-icon { width: 2.75rem; height: 2.75rem; flex-basis: 2.75rem; }
  .driver-search-status > * { flex: 1 1 auto; justify-content: center; }
  .driver-filter-zone { padding: .95rem; }
}

/* City weekly request workspace */
.weekly-page-heading { margin-bottom: 1.25rem; }

.weekly-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.weekly-status-card {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1rem 1.1rem;
  border: 1px solid #e6e9f2;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(23, 32, 51, .04);
}

.weekly-status-card > div { min-width: 0; }
.weekly-status-card small,
.weekly-status-card span { display: block; color: #7a849b; font-size: .75rem; }
.weekly-status-card strong { display: block; margin: .1rem 0; color: #20273a; font-size: .98rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.weekly-status-icon,
.weekly-title-icon {
  width: 2.65rem;
  height: 2.65rem;
  flex: 0 0 2.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  font-size: 1.25rem;
}

.weekly-status-icon.is-primary,
.weekly-title-icon { color: #5268df; background: #eef0ff; }
.weekly-status-icon.is-success { color: #168763; background: #e8f8f1; }
.weekly-status-icon.is-info { color: #167aa6; background: #e8f7fc; }
.weekly-status-icon.is-warning { color: #a96812; background: #fff3df; }
.weekly-status-icon.is-muted { color: #7a849b; background: #f0f2f6; }

.weekly-action-card { overflow: hidden; border-color: #dde2fa; }
.weekly-action-card::before { content: ""; display: block; height: 4px; background: linear-gradient(90deg, #5268df, #7757d8, #2db4c8); }
.weekly-card-title { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem; }
.weekly-card-title h2 { margin: .1rem 0 .15rem; color: #20273a; font-size: 1.2rem; }
.weekly-card-title p { margin: 0; color: #7a849b; font-size: .84rem; }

.weekly-send-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .8rem 1rem;
  border: 1px solid #e3e7f7;
  border-radius: 10px;
  color: #59637a;
  background: #f8f9fe;
}
.weekly-send-summary > div { display: flex; align-items: center; gap: .5rem; font-size: .8rem; }
.weekly-send-summary strong { color: #3849ad; font-size: .86rem; white-space: nowrap; }
.weekly-inline-warning { display: flex; align-items: center; gap: .45rem; padding: .65rem .8rem; border-radius: 8px; color: #85570d; background: #fff7e9; font-size: .8rem; }

.weekly-section-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.weekly-recipient-list { max-height: 365px; overflow-y: auto; }
.weekly-recipient-row {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: .65rem;
  padding: .75rem 1rem;
  border-bottom: 1px solid #edf0f5;
}
.weekly-recipient-row:last-child { border-bottom: 0; }
.weekly-recipient-row.is-inactive { opacity: .64; background: #fafbfc; }
.weekly-recipient-row > div { min-width: 0; }
.weekly-recipient-row strong,
.weekly-recipient-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-recipient-row strong { color: #2d3549; font-size: .84rem; }
.weekly-recipient-row small { color: #7a849b; font-size: .74rem; }
.weekly-city-avatar { width: 2.25rem; height: 2.25rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; color: #5268df; background: #eef0ff; font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.weekly-list-more { padding: .7rem 1rem; color: #7a849b; background: #fafbfe; font-size: .75rem; text-align: center; }
.empty-state.compact { min-height: 180px; }

.weekly-config-card { overflow: hidden; }
.weekly-config-section { padding: 1.15rem 0 1.35rem; border-bottom: 1px solid #edf0f5; }
.weekly-config-section:first-child { padding-top: 0; }
.weekly-config-section:last-child { padding-bottom: 0; border-bottom: 0; }
.weekly-config-heading { display: flex; align-items: flex-start; gap: .75rem; margin-bottom: 1rem; }
.weekly-config-heading > span { width: 1.75rem; height: 1.75rem; flex: 0 0 1.75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; color: #5268df; background: #eef0ff; font-size: .78rem; font-weight: 700; }
.weekly-config-heading h3 { margin: 0; color: #252d40; font-size: .98rem; }
.weekly-config-heading p { margin: .15rem 0 0; color: #7a849b; font-size: .78rem; }

.weekly-toggle-card { width: 100%; min-height: 2.55rem; display: flex; align-items: center; gap: .65rem; padding: .55rem .7rem; border: 1px solid #dfe4ef; border-radius: 8px; cursor: pointer; }
.weekly-toggle-card strong,
.weekly-toggle-card small { display: block; line-height: 1.2; }
.weekly-toggle-card strong { color: #30384d; font-size: .78rem; }
.weekly-toggle-card small { margin-top: .1rem; color: #8b94a8; font-size: .68rem; }
.weekly-token-list { display: flex; flex-wrap: wrap; gap: .4rem; }
.weekly-token-list code { padding: .28rem .5rem; border: 1px solid #dee3f2; border-radius: 6px; color: #5268df; background: #f7f8fe; font-size: .72rem; }
.weekly-token-list small { display: inline-flex; align-items: center; margin-left: .2rem; color: #8790a4; font-size: .7rem; }

.weekly-upload-box { display: flex; align-items: center; gap: .7rem; padding: .8rem; border: 1px dashed #bfc8ea; border-radius: 10px; background: #fafbff; }
.weekly-upload-box > i { color: #5268df; font-size: 1.5rem; }
.weekly-upload-box > div { min-width: 0; flex: 1; }
.weekly-upload-box strong,
.weekly-upload-box small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-upload-box strong { color: #30384d; font-size: .82rem; }
.weekly-upload-box small { color: #7a849b; font-size: .72rem; }
.weekly-field-title { display: flex; align-items: center; gap: .45rem; margin: 0; color: #30384d; font-size: .82rem; }
.weekly-field-title small { margin-left: .2rem; color: #8b94a8; font-weight: 400; }
.weekly-field-dot { width: .65rem; height: .65rem; display: inline-block; border-radius: 3px; }
.weekly-field-dot.is-date { background: #5268df; }
.weekly-field-dot.is-period { background: #18a77b; }

.weekly-pdf-map { padding: .8rem; border: 1px solid #e0e5f0; border-radius: 12px; background: #f5f6fa; }
.weekly-pdf-map-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 0 .15rem .65rem; color: #59637a; font-size: .78rem; }
.weekly-live-preview { margin: 0 0 1.1rem; border-color: #ccd5f3; background: #f4f6fb; }
.weekly-pdf-map-toolbar > span { display: inline-flex; align-items: center; font-weight: 600; }
.weekly-pdf-map-toolbar > span i { color: #d94b58; font-size: 1.05rem; }
.weekly-pdf-map-toolbar > small { color: #7f899f; }
.weekly-pdf-map-toolbar > small.is-loading { color: #5268df; }
.weekly-pdf-map-toolbar > small.is-ready { color: #14815f; }
.weekly-pdf-map-toolbar > small.is-error { color: #c43d4b; }
.weekly-pdf-preview-stage { position: relative; aspect-ratio: 8.5 / 11; overflow: hidden; border: 1px solid #cfd5e2; border-radius: 5px; background: #fff; box-shadow: 0 8px 22px rgba(23, 32, 51, .09); }
.weekly-pdf-preview-stage canvas { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; display: block; }
.weekly-pdf-preview-stage canvas[hidden] { display: none; }
.weekly-pdf-preview-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .35rem; padding: 1.5rem; color: #8490a7; text-align: center; background: linear-gradient(145deg,#fff,#f7f8fc); }
.weekly-pdf-preview-placeholder[hidden] { display: none; }
.weekly-pdf-preview-placeholder i { margin-bottom: .25rem; color: #6d7fe0; font-size: 2rem; }
.weekly-pdf-preview-placeholder strong { color: #46516a; font-size: .86rem; }
.weekly-pdf-preview-placeholder span { font-size: .72rem; }
.weekly-pdf-preview-placeholder.is-error i { color: #cf4654; }
.weekly-pdf-marker { position: absolute; z-index: 2; min-width: 3.5rem; min-height: 1rem; display: flex; align-items: center; padding: 0 .3rem; border: 1px solid currentColor; border-radius: 3px; box-sizing: border-box; font-size: clamp(.43rem, 1vw, .62rem); font-weight: 700; line-height: 1; white-space: nowrap; overflow: hidden; cursor: grab; touch-action: none; user-select: none; box-shadow: 0 2px 6px rgba(27, 35, 57, .16); transition: left .1s ease, top .1s ease, width .1s ease; }
.weekly-pdf-marker[hidden] { display: none; }
.weekly-pdf-marker:focus-visible { outline: 2px solid #fff; outline-offset: 1px; box-shadow: 0 0 0 4px rgba(82,104,223,.55); }
.weekly-pdf-marker.is-dragging { cursor: grabbing; transition: none; }
.weekly-pdf-marker.is-date { color: #334bc2; background: rgba(239, 242, 255, .94); }
.weekly-pdf-marker.is-period { color: #087957; background: rgba(233, 250, 244, .94); }
.weekly-pdf-map p { margin: .7rem .1rem 0; color: #7a849b; font-size: .72rem; line-height: 1.45; }
.weekly-city-editor-card { overflow: hidden; border-color: #dfe4f3; }
.weekly-city-table { display: inline-flex; align-items: center; gap: .6rem; min-width: 0; }
.weekly-city-table strong { white-space: nowrap; }
.weekly-pdf-link { max-width: 12rem; display: inline-flex; align-items: center; gap: .35rem; color: #5268df; text-decoration: none; }
.weekly-pdf-link i { flex: 0 0 auto; color: #d94b58; font-size: 1.1rem; }
.weekly-pdf-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-city-upload { margin-top: .15rem; }
.weekly-placement-details { margin-top: 1rem; border: 1px solid #e2e6f0; border-radius: 12px; background: #fbfcff; }
.weekly-placement-details > summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem 1rem; color: #31394d; cursor: pointer; list-style: none; }
.weekly-placement-details > summary::-webkit-details-marker { display: none; }
.weekly-placement-details > summary > span { display: flex; align-items: center; gap: .5rem; font-size: .84rem; font-weight: 600; }
.weekly-placement-details > summary > span i { color: #5268df; font-size: 1.1rem; }
.weekly-placement-details > summary > small { color: #8790a4; font-size: .72rem; }
.weekly-placement-details[open] > summary { border-bottom: 1px solid #e7eaf2; background: #f6f7fc; }
.weekly-placement-body { padding: 1rem; }
.weekly-default-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: -.15rem 0 1rem; padding: .7rem .75rem; border: 1px solid #e2e6f5; border-radius: 9px; background: #f6f8ff; }
.weekly-default-toolbar > div { min-width: 0; }
.weekly-default-toolbar strong,
.weekly-default-toolbar small { display: block; }
.weekly-default-toolbar strong { color: #35405a; font-size: .78rem; }
.weekly-default-toolbar small { margin-top: .1rem; color: #7f899f; font-size: .69rem; }
.weekly-default-toolbar .btn { flex: 0 0 auto; }
.weekly-save-default { display: flex; align-items: flex-start; gap: .6rem; padding: .7rem .8rem; border: 1px solid #cfd8fb; border-radius: 9px; background: #f7f8ff; cursor: pointer; }
.weekly-save-default .form-check-input { flex: 0 0 auto; margin: .12rem 0 0; }
.weekly-save-default strong,
.weekly-save-default small { display: block; }
.weekly-save-default strong { color: #35405a; font-size: .79rem; }
.weekly-save-default small { margin-top: .1rem; color: #7f899f; font-size: .7rem; line-height: 1.35; }
.weekly-error-cell { max-width: 380px; color: #6b7488; font-size: .78rem; white-space: normal; }

@media (max-width: 1399.98px) {
  .weekly-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  .weekly-status-grid { grid-template-columns: 1fr; gap: .7rem; }
  .weekly-status-card { padding: .8rem; }
  .weekly-send-summary { align-items: flex-start; flex-direction: column; }
  .weekly-send-summary strong { white-space: normal; }
  .weekly-section-header { align-items: flex-start; flex-direction: column; }
  .weekly-recipient-row { grid-template-columns: 2.4rem minmax(0, 1fr) auto auto; }
  .weekly-recipient-row > .badge { display: none; }
  .weekly-upload-box { align-items: flex-start; flex-wrap: wrap; }
  .weekly-upload-box > div { flex-basis: calc(100% - 2.3rem); }
  .weekly-config-heading p { display: none; }
  .weekly-city-table strong { white-space: normal; }
  .weekly-pdf-link { max-width: 9rem; }
  .weekly-default-toolbar { align-items: flex-start; flex-direction: column; }
}

html { min-height: 100%; }

body {
  min-height: 100vh;
  margin: 0;
  background: var(--app-background);
  color: var(--app-heading);
  font-family: "Public Sans", sans-serif;
}

.portal-shell { min-height: 100vh; display: flex; }
.portal-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 1040; width: 264px; display: flex; flex-direction: column; padding: 1.25rem 1rem; color: #d7def3; background: #131c34; transition: transform .25s ease; }
.portal-brand { display: flex; align-items: center; gap: .8rem; padding: 0 .55rem 1.35rem; color: #fff; text-decoration: none; }
.portal-brand:hover { color: #fff; }
.portal-brand > span:last-child { display: grid; line-height: 1.15; }
.portal-brand strong { font-size: 1.05rem; letter-spacing: -.02em; }
.portal-brand small { margin-top: .25rem; color: #8793b5; font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .08em; }
.portal-brand .brand-mark { width: 40px; height: 40px; background: linear-gradient(135deg,#5678e6,#3856b7); box-shadow: none; }
.portal-nav { display: grid; gap: .18rem; overflow-y: auto; padding-right: .15rem; }
.portal-nav .nav-section { margin: 1.15rem .7rem .35rem; color: #687595; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.portal-nav a, .sidebar-footer a { display: flex; align-items: center; gap: .7rem; padding: .7rem .75rem; border-radius: .55rem; color: #aeb8d2; text-decoration: none; font-size: .9rem; font-weight: 500; }
.portal-nav a i, .sidebar-footer a i { font-size: 1.15rem; }
.portal-nav a:hover, .sidebar-footer a:hover { color: #fff; background: rgba(255,255,255,.06); }
.portal-nav a.active { color: #fff; background: #3859c7; box-shadow: 0 .35rem 1rem rgba(0,0,0,.18); }
.sidebar-footer { margin-top: auto; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-footer .system-status { display: flex; margin: .85rem .7rem 0; color: #7f8bab; font-size: .72rem; }
.sidebar-signout{width:100%;display:flex;align-items:center;gap:.7rem;padding:.7rem .75rem;border:0;border-radius:.55rem;color:#aeb8d2;background:transparent;font-size:.9rem;font-weight:500;text-align:left}.sidebar-signout:hover{color:#fff;background:rgba(255,255,255,.06)}
.portal-main { min-width: 0; min-height: 100vh; flex: 1; margin-left: 264px; display: flex; flex-direction: column; }
.portal-topbar { position: relative; z-index: 1030; height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 clamp(1rem,3vw,2.25rem); overflow: visible; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--app-border); backdrop-filter: blur(12px); }
.topbar-context { display: grid; }
.topbar-context small { color: var(--app-muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.topbar-context strong { color: var(--app-heading); font-size: 1rem; }
.topbar-actions, .user-chip { display: flex; align-items: center; gap: .75rem; }
.user-chip { padding-left: .25rem; }
.user-chip > span:nth-child(2) { display: grid; line-height: 1.2; }
.user-chip strong { font-size: .82rem; }
.user-chip small { color: var(--app-muted); font-size: .7rem; }
.user-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #3759c8; font-size: .75rem; font-weight: 700; }
.notification-dot { position: absolute; width: 7px; height: 7px; right: 8px; top: 7px; border-radius: 50%; background: #e5484d; box-shadow: 0 0 0 2px #fff; }
.notification-count { position:absolute;min-width:18px;height:18px;right:-6px;top:-7px;display:grid;place-items:center;padding:0 4px;border:2px solid #fff;border-radius:10px;color:#fff;background:#e5484d;font-size:.58rem;font-weight:800;line-height:1; }
.notification-menu { z-index:1080;width:min(390px,calc(100vw - 1.5rem));padding:0;overflow:hidden;border:1px solid var(--app-border);border-radius:.8rem;box-shadow:0 1rem 2.5rem rgba(16,24,40,.16); }
.notification-header { display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.05rem;border-bottom:1px solid var(--app-border);background:#fbfcfe; }.notification-header>div { display:grid; }.notification-header strong { font-size:.9rem; }.notification-header small { margin-top:.15rem;color:var(--app-muted);font-size:.66rem; }.notification-header .btn { padding:.25rem;color:var(--app-primary);font-size:.68rem;text-decoration:none; }
.notification-list { max-height:430px;overflow-y:auto; }
.notification-item { display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;padding:.85rem 1rem;color:inherit;text-decoration:none;border-bottom:1px solid #eef0f4;background:#fff;transition:background .15s ease; }.notification-item:hover { color:inherit;background:#f7f9ff; }.notification-item.unread { background:#f8faff; }.notification-item:last-child { border-bottom:0; }
.notification-icon { width:36px;height:36px;display:grid;place-items:center;border-radius:.6rem;color:#3759c8;background:#eaf0ff;font-size:1rem; }.notification-icon.security { color:#7952b3;background:#f2ebfc; }.notification-icon.request { color:#b76d0a;background:#fff3dd; }.notification-icon.correspondence { color:#16835c;background:#e7f7f0; }.notification-icon.client { color:#087a78;background:#e3f7f5; }.notification-icon.system { color:#52637b;background:#edf1f6; }
.notification-copy { min-width:0;display:grid;align-content:center; }.notification-copy strong { overflow:hidden;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap; }.notification-copy small { display:-webkit-box;overflow:hidden;margin-top:.18rem;color:var(--app-muted);font-size:.66rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2; }
.notification-meta { display:grid;justify-items:end;align-content:start;gap:.4rem;color:#98a2b3;font-size:.58rem;white-space:nowrap; }.notification-unread { width:7px;height:7px;border-radius:50%;background:#4666ce; }
.notification-empty { display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:150px;padding:1.25rem;color:var(--app-muted);font-size:.75rem;text-align:center; }
.portal-content { position:relative;z-index:1;width: 100%; max-width: 1600px; flex: 1; align-self: center; padding: 2rem clamp(1rem,3vw,2.25rem) 2.75rem; }
.app-footer { display: flex; justify-content: space-between; padding: 1rem clamp(1rem,3vw,2.25rem); }
.sidebar-backdrop { display: none; }

.app-navbar {
  min-height: 72px;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(75,70,92,.08);
  box-shadow: 0 .25rem 1.125rem rgba(75,70,92,.08);
  backdrop-filter: blur(10px);
}

.app-brand-link { display: inline-flex; align-items: center; gap: .75rem; color: var(--app-heading); }
.app-brand-link:hover { color: var(--app-heading); }
.brand-mark {
  width: 38px; height: 38px; display: grid; place-items: center; border-radius: .65rem;
  color: #fff; background: linear-gradient(135deg, #7367f0, #9e95f5);
  box-shadow: 0 .4rem 1rem rgba(var(--app-primary-rgb),.3); font-size: 1.35rem;
}
.app-brand-text { font-size: 1.2rem; font-weight: 700; letter-spacing: -.02em; }
.app-navbar .nav-link { display: flex; align-items: center; gap: .45rem; padding: .6rem .85rem; border-radius: .45rem; font-weight: 500; color: #5d596c; }
.app-navbar .nav-link:hover { color: var(--app-primary); background: rgba(var(--app-primary-rgb),.08); }
.app-navbar .nav-link.active { color: #fff; background: linear-gradient(118deg,#7367f0,rgba(115,103,240,.7)); box-shadow: 0 .2rem .6rem rgba(var(--app-primary-rgb),.3); }
.system-status { align-items: center; gap: .55rem; color: var(--app-muted); font-size: .875rem; }
.status-dot { width: .55rem; height: .55rem; border-radius: 50%; background: #28c76f; box-shadow: 0 0 0 .22rem rgba(40,199,111,.14); }

.app-footer { padding: 1.2rem 0; color: var(--app-muted); font-size: .875rem; border-top: 1px solid rgba(75,70,92,.08); background: #fff; }
.page-heading { margin-bottom: 1.5rem; }
.page-heading h1 { font-size: 1.65rem; font-weight: 600; letter-spacing: -.025em; margin-bottom: .35rem; }
.page-heading p { color: var(--app-muted); margin-bottom: 0; }
.page-kicker { display: block; margin-bottom: .35rem; color: var(--app-primary); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.demo-banner { display: flex; align-items: center; gap: .65rem; padding: .8rem 1rem; color: #3a4a68; background: #eef3ff; border: 1px solid #dbe5ff; border-radius: .65rem; font-size: .84rem; }
.demo-banner a { color: var(--app-primary); font-weight: 600; }
.metric-card { border: 1px solid var(--app-border); box-shadow: 0 .25rem .9rem rgba(16,24,40,.04); }
.dashboard-metric-link { height:100%;display:block;color:inherit;text-decoration:none;border-radius:var(--bs-card-border-radius,.75rem); }
.dashboard-metric-link .metric-card { transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease; }
.dashboard-metric-link:hover .metric-card { transform:translateY(-3px);border-color:rgba(75,110,219,.35);box-shadow:0 .75rem 1.6rem rgba(32,52,111,.12); }
.dashboard-metric-link:focus-visible { outline:3px solid rgba(75,110,219,.28);outline-offset:3px; }
.metric-card-arrow { position:absolute;top:1.25rem;right:1.25rem;display:grid;place-items:center;width:28px;height:28px;color:#7d8aa7;background:#f3f5f9;border-radius:50%;transition:color .25s ease,background .25s ease,transform .25s ease; }
.dashboard-metric-link:hover .metric-card-arrow { color:#3759c8;background:#eaf0ff;transform:translate(2px,-2px); }
.analytics-dashboard .analytics-reveal { opacity: 0; transform: translateY(14px); }
.analytics-dashboard.analytics-ready .analytics-reveal { animation: analyticsReveal .55s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms) both; }
.analytics-dashboard .metric-icon { transition: transform .35s ease,box-shadow .35s ease; }
.analytics-dashboard.analytics-ready .metric-card:hover .metric-icon { transform: translateY(-2px) scale(1.06); box-shadow: 0 .45rem 1rem rgba(55,89,200,.14); }
@keyframes analyticsReveal { to { opacity:1; transform:translateY(0); } }
.metric-card .card-body { position: relative; }
.metric-icon { width: 42px; height: 42px; display: inline-grid; place-items: center; border-radius: .65rem; font-size: 1.2rem; }
.metric-icon.blue { color: #3759c8; background: #eaf0ff; }.metric-icon.green { color: #16835c; background: #e7f7f0; }.metric-icon.amber { color: #b76d0a; background: #fff3dd; }.metric-icon.violet { color: #7952b3; background: #f2ebfc; }
.metric-trend { position: absolute; right: 1.35rem; top: 1.35rem; padding: .2rem .45rem; color: var(--app-muted); background: #f2f4f7; border-radius: 2rem; font-size: .7rem; font-weight: 600; }.metric-trend.positive { color: #16835c; background: #e8f7f1; }
.metric-value { margin-top: 1.15rem; color: var(--app-heading); font-size: 1.75rem; font-weight: 700; letter-spacing: -.04em; }
.metric-label { margin-top: .1rem; color: #344054; font-size: .86rem; font-weight: 600; }.metric-card small { color: var(--app-muted); font-size: .72rem; }
.dashboard-period { cursor: default; }
.upload-analytics-card { overflow: hidden; border: 1px solid #dfe4ee; box-shadow: 0 .45rem 1.5rem rgba(16,24,40,.055); }
.analytics-panel { overflow:hidden;border:1px solid #e2e5ed;box-shadow:0 .45rem 1.5rem rgba(16,24,40,.055); }
.analytics-panel .upload-analytics-header { min-height:82px; }
.weekly-activity-card .upload-chart-pane { height:100%;display:flex;flex-direction:column; }
.weekly-activity-card .upload-chart-shell { order:1; }
.weekly-activity-card .upload-chart-legend { order:2; }
.weekly-activity-card .upload-summary-strip { order:3;margin:1rem 0 0;padding-top:1rem;border-top:1px solid var(--app-border); }
.weekly-activity-card .upload-summary-strip > div { background:#fff; }
.analytics-icon.tracker { color:#685bd8;background:#efedff; }
.processing-tracker-card .upload-insights-pane { height:calc(100% - 82px);padding:1.35rem 1.5rem;border-left:0;background:#fff; }
.processing-tracker-card .processing-health { grid-template-columns:1fr;text-align:center; }
.processing-tracker-card .processing-health > div:last-child { order:-1; }
.processing-tracker-card .processing-health .page-kicker { display:none; }
.processing-tracker-card .processing-health h3 { font-size:1.15rem; }
.processing-tracker-card .processing-health p { font-size:.78rem; }
.processing-tracker-card .health-ring { width:210px;height:210px;margin:.5rem auto 0;flex-basis:210px;background:repeating-conic-gradient(from -120deg,#7267e8 0 4deg,transparent 4deg 8deg); }
.processing-tracker-card .health-ring::before { content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from -120deg,transparent 0 var(--health-progress),rgba(232,231,248,.96) var(--health-progress) 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 25px),#000 calc(100% - 24px));mask:radial-gradient(farthest-side,transparent calc(100% - 25px),#000 calc(100% - 24px)); }
.processing-tracker-card .health-ring::after { inset:31px;background:#fff; }
.processing-tracker-card .health-ring strong { font-size:2.2rem;font-weight:600; }
.processing-tracker-card .health-ring small { margin-top:.25rem;font-size:.7rem; }
.processing-tracker-card .status-breakdown { grid-template-columns:repeat(3,1fr);gap:.65rem;padding:1rem 0; }
.processing-tracker-card .status-breakdown > div { display:grid;justify-items:center;gap:.25rem;padding:.75rem .4rem;border:1px solid #ececf4;border-radius:.65rem;background:#fbfbfe;text-align:center; }
.processing-tracker-card .status-breakdown span { display:grid;justify-items:center;gap:.35rem; }
.processing-tracker-card .status-breakdown strong { font-size:1.05rem; }
.upload-analytics-header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.2rem 1.4rem; border-bottom: 1px solid var(--app-border); background: linear-gradient(100deg,#fff 0%,#fafbff 100%); }
.analytics-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: .5rem; color: #3759c8; background: #e9efff; }
.upload-analytics-grid { display: grid; grid-template-columns: minmax(0,2.15fr) minmax(290px,.85fr); }
.upload-chart-pane { min-width: 0; padding: 1.35rem 1.4rem 1.15rem; }
.upload-summary-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; margin-bottom: 1.2rem; }
.upload-summary-strip > div { min-width: 0; display: flex; align-items: center; gap: .65rem; padding: .7rem .8rem; border: 1px solid #e9ecf2; border-radius: .7rem; background: #fbfcfe; }
.upload-summary-strip > div > span:last-child { min-width: 0; display: grid; }
.upload-summary-strip small { color: var(--app-muted); font-size: .66rem; text-transform: uppercase; letter-spacing: .045em; }
.upload-summary-strip strong { overflow: hidden; color: var(--app-heading); font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.summary-dot { width: 9px; height: 32px; flex: 0 0 9px; border-radius: 1rem; }.summary-dot.blue { background: #4b6edb; }.summary-dot.violet { background: #8867c8; }.summary-dot.green { background: #20a674; }
.upload-chart-shell { position: relative; min-height: 265px; padding-left: 2.25rem; overflow: hidden; }
.chart-scale { position: absolute; inset: .65rem auto 2.9rem 0; display: flex; flex-direction: column; justify-content: space-between; color: #98a2b3; font-size: .62rem; }
.upload-activity-chart { height: 265px; display: grid; grid-template-columns: repeat(7,minmax(38px,1fr)); align-items: stretch; gap: clamp(.4rem,2vw,1.15rem); padding: .6rem .55rem 0; border-bottom: 1px solid #dfe4ec; background: repeating-linear-gradient(to bottom,transparent 0,transparent 52px,#edf0f5 53px); }
.upload-chart-day { min-width: 0; height: 100%; display: grid; grid-template-rows: 20px 1fr 38px; align-items: end; justify-items: center; gap: .25rem; }
.upload-bar-value { color: #697386; font-size: .68rem; font-weight: 700; opacity: .7; transition: opacity .2s,color .2s; }
.upload-chart-day:hover .upload-bar-value,.upload-chart-day.today .upload-bar-value { color: #2f50bc; opacity: 1; }
.upload-column { width: min(42px,72%); height: var(--column-height); min-height: 3px; display: flex; flex-direction: column-reverse; align-self: end; overflow: hidden; border-radius: .48rem .48rem .16rem .16rem; background: #edf0f5; box-shadow: 0 4px 12px rgba(55,89,200,.1); transition: height .85s cubic-bezier(.2,.75,.25,1),transform .2s ease; }
.analytics-dashboard:not(.analytics-ready) .upload-column { height:3px; }
.upload-chart-day:hover .upload-column { transform: translateY(-3px); }
.upload-segment { min-height: 4px; display: block; }.upload-segment.completed { background: linear-gradient(180deg,#6384e8,#3f62cf); }.upload-segment.active { background: #f5b84b; }.upload-segment.failed { background: #e85b63; }.upload-segment.empty { height: 100%; background: #e7eaf0; }
.upload-chart-day.today .upload-column { outline: 3px solid rgba(75,110,219,.12); outline-offset: 3px; }
.upload-day-label { display: grid; justify-items: center; align-self: center; line-height: 1.15; }.upload-day-label strong { color: #475467; font-size: .7rem; }.upload-day-label small { margin-top: .2rem; color: #98a2b3; font-size: .6rem; }
.upload-chart-day.today .upload-day-label strong { color: #3759c8; }.upload-chart-day.today .upload-day-label::after { content:"Today"; margin-top:.2rem; color:#3759c8; font-size:.55rem; font-weight:700; text-transform:uppercase;letter-spacing:.04em; }
.upload-chart-legend { display: flex; flex-wrap: wrap; gap: 1rem; padding: .8rem .55rem 0 2.8rem; color: var(--app-muted); font-size: .68rem; }
.upload-chart-legend span { display: flex; align-items: center; gap: .35rem; }.upload-chart-legend i,.status-breakdown i { width: 8px; height: 8px; display: inline-block; border-radius: 50%; }.upload-chart-legend i.completed,.status-breakdown i.completed { background:#4b6edb; }.upload-chart-legend i.active,.status-breakdown i.active { background:#f5b84b; }.upload-chart-legend i.failed,.status-breakdown i.failed { background:#e85b63; }
.upload-insights-pane { display: flex; flex-direction: column; gap: 1.1rem; padding: 1.4rem; background: #fafbfe; border-left: 1px solid var(--app-border); }
.processing-health { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .9rem; }
.health-ring { --health-progress:0%; width: 92px; height: 92px; display: grid; place-items: center; flex: 0 0 92px; border-radius: 50%; position: relative; background:conic-gradient(#20a674 0 var(--health-progress),#e9edf5 var(--health-progress) 100%); }.health-ring::after { content:""; position:absolute; inset:9px; border-radius:50%; background:#fafbfe; }.health-ring span { z-index:1; display:grid; justify-items:center; line-height:1.1; }.health-ring strong { font-size:1.25rem; }.health-ring small { color:var(--app-muted);font-size:.6rem; }
.processing-health .page-kicker { margin-bottom: .2rem; font-size: .62rem; }.processing-health h3 { margin: 0; font-size: 1rem; }.processing-health p { margin: .25rem 0 0; color: var(--app-muted); font-size: .7rem; }
.status-breakdown { display: grid; gap: .45rem; padding: .85rem 0; border-top: 1px solid var(--app-border); border-bottom: 1px solid var(--app-border); }
.status-breakdown > div { display: flex; align-items: center; justify-content: space-between; color: #475467; font-size: .73rem; }.status-breakdown span { display: flex; align-items: center; gap: .45rem; }.status-breakdown strong { color:var(--app-heading); }
.destination-breakdown { display: grid; gap: .7rem; }.insight-heading { display:flex;justify-content:space-between;gap:.5rem; }.insight-heading span { font-size:.78rem;font-weight:700; }.insight-heading small { color:var(--app-muted);font-size:.65rem; }
.destination-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .35rem .75rem; }.destination-row > div:first-child { min-width:0;display:flex;justify-content:space-between;gap:.35rem; }.destination-row strong { overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap; }.destination-row small,.destination-row > span { color:var(--app-muted);font-size:.62rem;white-space:nowrap; }.destination-track { grid-column:1/-1;height:5px;overflow:hidden;border-radius:1rem;background:#e8ebf2; }.destination-track i { height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#526fcd,#8ba0e7); }
.destination-cell { display:inline-flex;align-items:center;gap:.35rem;color:#475467;font-size:.78rem; }.destination-cell i { color:#7c8cb8; }
.destination-track i { width:var(--bar-width);transition:width .85s cubic-bezier(.2,.75,.25,1) .18s; }
.analytics-dashboard:not(.analytics-ready) .destination-track i { width:0; }
.upload-status { display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .55rem;border-radius:2rem;font-size:.66rem;font-weight:700; }.upload-status i { width:6px;height:6px;border-radius:50%; }.upload-status.completed { color:#147653;background:#e7f7f0; }.upload-status.completed i { background:#20a674; }.upload-status.processing { color:#94600c;background:#fff3d8; }.upload-status.processing i { background:#e7a932; }.upload-status.pending { color:#52637b;background:#edf1f6; }.upload-status.pending i { background:#8391a6; }.upload-status.failed { color:#b43d45;background:#fdebed; }.upload-status.failed i { background:#df4d56; }
.lawyer-stat { display: grid; grid-template-columns: auto 1fr; gap: .55rem .75rem; align-items: center; margin-bottom: 1.15rem; }.lawyer-stat > div:nth-child(2) { display: grid; }.lawyer-stat strong { font-size: .82rem; }.lawyer-stat small { color: var(--app-muted); font-size: .7rem; }
.avatar-soft,.client-avatar { width: 38px; height: 38px; display: grid; place-items: center; grid-row: span 2; border-radius: 50%; color: #3759c8; background: #eaf0ff; font-size: .72rem; font-weight: 700; }.avatar-soft.teal,.client-avatar.teal,.user-row span.teal { color:#087a78;background:#e3f7f5}.avatar-soft.amber,.client-avatar.amber,.user-row span.amber{color:#a46006;background:#fff1d9}.avatar-soft.rose{color:#b43d63;background:#fdebf1}
.mini-progress { grid-column: 2; height: 5px; border-radius: 1rem; background: #eef0f4; overflow: hidden; }.mini-progress i { width:var(--bar-width);height: 100%; display: block; border-radius: inherit; background: #4666ce;transition:width .8s cubic-bezier(.2,.75,.25,1) .25s; }.analytics-dashboard:not(.analytics-ready) .mini-progress i { width:0; }
.file-cell,.user-row { display: flex; align-items: center; gap: .7rem; }.file-cell > span,.user-row > span { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 36px; border-radius: .55rem; color: #e5484d; background: #fff0f0; }.file-cell > div,.user-row > div { display: grid; }.file-cell small,.user-row small { color: var(--app-muted); font-size: .7rem; }
.quick-actions { padding-top: .75rem; padding-bottom: .75rem; }.quick-actions a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: .75rem 0; color: inherit; text-decoration: none; border-bottom: 1px solid var(--app-border); }.quick-actions a:last-child { border: 0; }.quick-actions a > div { display: grid; }.quick-actions strong { font-size: .82rem; }.quick-actions small { color: var(--app-muted); font-size: .7rem; }

@media (prefers-reduced-motion: reduce) {
  .analytics-dashboard .analytics-reveal { opacity:1;transform:none; }
  .analytics-dashboard.analytics-ready .analytics-reveal { animation:none; }
  .analytics-dashboard .upload-column,.analytics-dashboard .destination-track i,.analytics-dashboard .mini-progress i { transition:none; }
}
.template-list article,.client-list article { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 1rem; padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--app-border); }.template-list article:last-child,.client-list article:last-child { border: 0; }.template-icon { width: 44px; height: 52px; display: grid; place-items: center; border-radius: .45rem; color: #3759c8; background: #edf2ff; font-size: 1.25rem; }.template-list article > div:nth-child(2),.client-list article > div:nth-child(2) { display: grid; }.template-list p { margin: .2rem 0; color: var(--app-muted); font-size: .8rem; }.template-list small,.client-list small { color: var(--app-muted); font-size: .7rem; }

.a4-template-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;align-items:end;padding:1rem;border:1px solid var(--app-border);border-radius:.85rem;background:#f8faff}
.a4-template-pages,.a4-review-pages{display:grid;gap:1.25rem}
.a4-template-sheet,.a4-review-sheet{overflow:hidden;width:min(100%,794px);margin-inline:auto;border:1px solid #d9dfec;border-radius:.6rem;background:#fff;box-shadow:0 .65rem 1.8rem rgba(31,50,99,.1)}
.a4-template-sheet>header,.a4-review-sheet>header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .8rem;border-bottom:1px solid #e5e9f2;background:#f7f9fd}
.rich-text-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid #e5e9f2;background:#fbfcff}
.rich-text-toolbar .rich-text-control{width:82px;margin:0}.rich-text-toolbar .rich-text-family-control{width:150px}.rich-text-toolbar .form-select{min-height:31px;padding-top:.2rem;padding-bottom:.2rem}
.rich-text-color{display:inline-flex;align-items:center;gap:.35rem;height:31px;padding:0 .45rem;margin:0;border:1px solid #dbdade;border-radius:.375rem;background:#fff;color:#6f6b7d;cursor:pointer}
.rich-text-color input{width:26px;height:22px;padding:0;border:0;background:transparent;cursor:pointer}
.rich-table-controls{display:inline-flex;align-items:center;gap:.45rem;padding-left:.5rem;border-left:1px solid #e1e5ee}.rich-table-controls .form-select{width:72px}.rich-table-controls .form-check{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.rich-table-controls .form-check-input{margin:0}
.rich-text-surface{display:block;width:100%;min-height:930px;margin:0;padding:56px;border:0;border-radius:0;background:#fff;color:#202938;font-family:Arial,sans-serif;font-size:11pt;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.rich-text-surface:focus{outline:3px solid rgba(105,92,254,.15);outline-offset:-3px}
.rich-text-surface[contenteditable="false"]{cursor:default}.rich-text-surface img{display:inline-block;max-width:100%;height:auto;margin:.35rem 0}
.rich-editor-table{width:100%;margin:.65rem 0;border-collapse:collapse;table-layout:fixed}.rich-editor-table td{min-width:48px;height:34px;padding:.4rem .5rem;border:1px solid #7b8495;vertical-align:top;white-space:pre-wrap}.rich-editor-table.borderless td{border-color:transparent}.rich-editor-table td:focus{outline:2px solid rgba(105,92,254,.22);outline-offset:-2px}
.a4-review-sheet header>div{display:grid}.a4-review-sheet header small{color:var(--app-muted)}
.assigned-template-card{display:flex;align-items:center;gap:.75rem;padding:.9rem;border:1px solid #cfd8f8;border-radius:.75rem;background:#f4f6ff}
.assigned-template-card>span{display:grid;place-items:center;width:40px;height:40px;border-radius:.65rem;background:#e4e9ff;color:#4b5dcc;font-size:1.2rem}
.assigned-template-card>div{display:grid;min-width:0}.assigned-template-card small{color:var(--app-muted)}

@media(max-width:767.98px){
  .a4-template-toolbar{grid-template-columns:1fr}
  .rich-text-surface{min-height:720px;padding:32px 24px}
}
.letter-paper,.request-document { padding: 1.75rem; color: #3b4354; background: #fff; border: 1px solid #e5e7eb; box-shadow: 0 .4rem 1.2rem rgba(16,24,40,.08); font-family: Georgia,serif; font-size: .73rem; line-height: 1.6; }.letter-logo { margin-bottom: 1.4rem; color: #233d91; font-family: Arial,sans-serif; font-size: .7rem; font-weight: 800; letter-spacing: .13em; }.letter-paper p { margin-top: 1rem; }
.selection-pill { display: flex; align-items: center; gap: .45rem; padding: .55rem .8rem; color: #3759c8; background: #eaf0ff; border-radius: .55rem; font-size: .82rem; }.batch-summary { display: grid; gap: .6rem; padding: 1rem 0; margin-bottom: 1rem; border-top: 1px solid var(--app-border); border-bottom: 1px solid var(--app-border); }.batch-summary div { display: flex; justify-content: space-between; color: var(--app-muted); font-size: .8rem; }.batch-summary strong { color: var(--app-heading); }.integration-note { display: flex; gap: .65rem; padding: .75rem; color: #3759c8; background: #f0f4ff; border-radius: .55rem; }.integration-note span { display: grid; }.integration-note small { color: var(--app-muted); font-size: .68rem; }
.client-list article { grid-template-columns: auto minmax(140px,1fr) minmax(140px,1fr) auto auto; }.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }.check-grid label { display: flex; align-items: center; gap: .5rem; font-size: .8rem; }
.request-heading { display: flex; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }.request-heading > div:last-child { display: grid; text-align: right; font-family: Arial,sans-serif; }.request-heading .letter-logo { margin: 0; }.request-rows { margin: 1.5rem 0; border-top: 1px solid #d8dce5; }.request-rows div { display: grid; grid-template-columns: 1fr 1fr 1.3fr; padding: .55rem 0; border-bottom: 1px solid #e4e7ec; }
.permission-list label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--app-border); }.permission-list label > span { display: grid; }.permission-list strong { font-size: .8rem; }.permission-list small { color: var(--app-muted); font-size: .68rem; }
.client-portal-banner { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin: -2rem calc(clamp(1rem,3vw,2.25rem) * -1) 1.5rem; padding: 2.5rem clamp(1rem,3vw,2.25rem); color: #fff; background: linear-gradient(120deg,#1b2d63,#3859c7); }.client-portal-banner h1 { color: #fff; margin: 0 0 .35rem; }.client-portal-banner p { margin: 0; color: #dce4ff; }.donut-wrap { display: grid; justify-items: center; gap: 1.5rem; }.donut { width: 150px; height: 150px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(#4666ce 0 64%,#8867c8 64% 100%); position: relative; }.donut::after { content:""; position:absolute; inset:20px; border-radius:50%; background:#fff; }.donut span { z-index:1; display:grid; text-align:center; font-size:1.45rem;font-weight:700 }.donut small{font-size:.65rem;color:var(--app-muted);font-weight:500}.donut-legend{width:100%;display:grid;gap:.6rem}.donut-legend span{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;font-size:.78rem}.donut-legend i{width:8px;height:8px;border-radius:50%;background:#4666ce}.donut-legend i.violet{background:#8867c8}
.login-stage { min-height: calc(100vh - 200px); display: grid; grid-template-columns: minmax(320px,480px) minmax(320px,1fr); align-items: stretch; max-width: 1000px; margin: 1.5rem auto; overflow: hidden; background: #fff; border: 1px solid var(--app-border); border-radius: 1rem; box-shadow: 0 1rem 3rem rgba(16,24,40,.09); }.login-card { padding: clamp(2rem,5vw,3.75rem); }.login-brand { display: flex; align-items: center; gap: .7rem; margin-bottom: 3rem; }.login-brand > span:last-child { display:grid; }.login-brand small { color:var(--app-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em }.login-card h1{font-size:2rem;margin-bottom:.4rem}.login-card p{color:var(--app-muted)}.login-security{display:flex;gap:.65rem;margin-top:1.5rem;padding: .8rem;color:#3759c8;background:#f0f4ff;border-radius:.6rem}.login-security span{display:grid}.login-security small{color:var(--app-muted);font-size:.68rem}.login-aside{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,5vw,4rem);color:#dfe7ff;background:linear-gradient(145deg,#17264f,#395bc9)}.login-aside h2{max-width:420px;margin:1.5rem 0 .75rem;color:#fff;font-size:2rem}.login-aside p{max-width:450px;margin-bottom:2rem;color:#c4d0f1}.login-aside>div{display:flex;align-items:center;gap:.75rem;margin:.45rem 0}.login-aside>div span{width:36px;height:36px;display:grid;place-items:center;border-radius:.5rem;background:rgba(255,255,255,.1)}
.letters-print-stack{display:grid;gap:2rem}.print-letter{min-height:900px;padding:4rem 4.5rem;background:#fff;border:1px solid var(--app-border);box-shadow:0 .5rem 1.5rem rgba(16,24,40,.08);font-family:Georgia,serif;font-size:1rem;line-height:1.7}.print-letter header{display:grid;margin-bottom:4rem;color:#233d91}.print-letter header span{color:#667085;font-family:Arial,sans-serif;font-size:.75rem}.letter-body{margin-top:2rem}
@media print{.portal-sidebar,.portal-topbar,.app-footer,.print-toolbar,.sidebar-backdrop{display:none!important}.portal-main{margin:0}.portal-content{padding:0;max-width:none}.print-letter{min-height:auto;box-shadow:none;border:0;padding:.65in;page-break-after:always}.print-letter:last-child{page-break-after:auto}.letters-print-stack{display:block}}
.card-header .card-title { font-size: 1.05rem; font-weight: 600; line-height: 1.35; }

.hero-panel {
  position: relative; overflow: hidden; padding: 2.25rem; border: 0;
  background: linear-gradient(120deg,#302d54 0%,#5a50c7 55%,#8d83f4 100%); color: #fff;
}
.hero-panel::after { content: ""; position: absolute; width: 260px; height: 260px; right: -70px; top: -105px; border: 45px solid rgba(255,255,255,.08); border-radius: 50%; }
.hero-panel > * { position: relative; z-index: 1; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .7rem; border-radius: 2rem; background: rgba(255,255,255,.14); font-size: .8rem; font-weight: 600; }
.hero-title { max-width: 650px; margin: 1rem 0 .7rem; color: #fff; font-size: clamp(1.8rem,4vw,2.65rem); font-weight: 700; line-height: 1.15; letter-spacing: -.04em; }
.hero-copy { max-width: 650px; color: rgba(255,255,255,.78); font-size: 1.02rem; }

.workflow-card { height: 100%; border: 0; transition: transform .2s ease, box-shadow .2s ease; }
.workflow-card:hover { transform: translateY(-4px); box-shadow: 0 .75rem 1.5rem rgba(75,70,92,.14); }
.feature-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: .75rem; font-size: 1.5rem; }
.feature-icon.primary { color: #7367f0; background: rgba(115,103,240,.12); }
.feature-icon.success { color: #28c76f; background: rgba(40,199,111,.12); }
.pdf-list-icon { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: .6rem; color: #ea5455; background: rgba(234,84,85,.1); font-size: 1.35rem; }
.library-search { width: min(100%, 330px); }
.library-actions, .detail-actions { align-items: center; }
.driver-card { padding: 1.15rem; border: 1px solid var(--app-border); border-radius: .65rem; background: #fcfbfd; }
.driver-avatar { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 50%; color: #7367f0; background: rgba(115,103,240,.12); font-size: 1.3rem; }
.driver-avatar.secondary { color: #00bad1; background: rgba(0,186,209,.12); }
.driver-details > div { display: grid; grid-template-columns: 105px 1fr; gap: .75rem; padding: .55rem 0; border-top: 1px solid var(--app-border); }
.driver-details dt { color: var(--app-muted); font-weight: 500; }
.driver-details dd { margin: 0; color: var(--app-heading); overflow-wrap: anywhere; }
.detail-label { margin-bottom: .25rem; color: var(--app-muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .025em; }
.report-progress { width: 150px; height: 4px; }
.extraction-status-card { border-left: 4px solid var(--app-primary); }
.table-pager { background: var(--app-surface); }
.table-pager .form-select { width: 72px; }
.table-pager .page-link { min-width: 32px; text-align: center; }

.upload-zone { position: relative; padding: 2rem; text-align: center; border: 2px dashed #d4d0e8; border-radius: .75rem; background: #faf9ff; transition: .2s ease; }
.upload-zone:hover, .upload-zone:focus-within { border-color: var(--app-primary); background: rgba(var(--app-primary-rgb),.04); }
.upload-zone .upload-icon { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 1rem; border-radius: 50%; color: var(--app-primary); background: rgba(var(--app-primary-rgb),.12); font-size: 1.9rem; }
.upload-zone .form-control { width: 100%; max-width: 540px; margin: 1rem auto 0; text-align: left; background: #fff; }
.rule-card { padding: 1rem; border: 1px solid var(--app-border); border-radius: .6rem; background: #fff; }
.rule-number { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: .5rem; font-weight: 700; }

.note-strip { background: rgba(var(--app-primary-rgb),.055); border: 1px solid rgba(var(--app-primary-rgb),.15); border-radius: .5rem; }
.result-table thead th { white-space: nowrap; font-size: .78rem; text-transform: uppercase; letter-spacing: .025em; color: #6d6b77; background: #f3f2f5; border-bottom: 1px solid var(--app-border); }
.result-table td { min-width: 120px; vertical-align: middle; }
.result-table tbody tr:hover { background: rgba(var(--app-primary-rgb),.025); }
#report-library-table { font-size: .78rem; }
#report-library-table thead th { padding: .65rem .55rem; font-size: .68rem; }
#report-library-table td { min-width: auto; padding: .6rem .55rem; }
#report-library-table td:first-child { min-width: 260px; }
#report-library-table td small { font-size: .66rem; }
#report-library-table .pdf-list-icon { width: 34px; height: 34px; flex-basis: 34px; font-size: 1.05rem; }
#report-library-table .btn { --bs-btn-padding-y: .25rem; --bs-btn-padding-x: .4rem; }
.detail-table th { width: 34%; color: #5d596c; font-weight: 500; }
.detail-table .section-row th { width: auto; padding-top: .9rem; padding-bottom: .9rem; color: var(--app-primary); background: rgba(var(--app-primary-rgb),.07); font-weight: 600; }
.empty-state-icon, .error-state-icon { width: 76px; height: 76px; display: grid; place-items: center; margin: 0 auto 1.25rem; border-radius: 50%; font-size: 2.2rem; }
.empty-state-icon { color: #ff9f43; background: rgba(255,159,67,.13); }
.error-state-icon { color: #ea5455; background: rgba(234,84,85,.12); }
.spinner-border-sm { margin-right: .4rem; }

@media (max-width: 991.98px) {
  .client-list article { grid-template-columns: auto 1fr auto; }.client-list article > div:nth-child(3) { grid-column: 2; }.client-list article > span:nth-last-child(2) { display:none; }
  .login-stage { grid-template-columns:1fr;max-width:600px }.login-aside{display:none}
  .upload-analytics-grid { grid-template-columns: 1fr; }
  .upload-insights-pane { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--app-border); border-left: 0; }
  .destination-breakdown { grid-column: 1 / -1; }
}

@media (max-width: 1199.98px) {
  .portal-sidebar { transform: translateX(-100%); box-shadow: 1rem 0 2rem rgba(9,16,35,.25); }.portal-sidebar.open { transform: translateX(0); }.portal-main { margin-left: 0; }.sidebar-backdrop { position: fixed; inset: 0; z-index: 1035; border: 0; background: rgba(15,23,42,.45); }.portal-sidebar.open ~ .portal-main + .sidebar-backdrop { display: block; }
}

@media (max-width: 575.98px) {
  .portal-content { padding-top: 1.25rem; }
  .hero-panel { padding: 1.5rem; }
  .upload-zone { padding: 1.25rem; }
  .upload-zone .form-control { font-size: .8rem; }
  .page-heading h1 { font-size: 1.4rem; }
  .page-heading .btn { width: 100%; }
  .library-actions, .detail-actions { width: 100%; }
  .library-actions .btn, .detail-actions .btn { flex: 1 1 100%; }
  .library-search { width: 100%; }
  .driver-details > div { grid-template-columns: 1fr; gap: .2rem; }
  .card-header { padding: 1rem 1.1rem; }
  .card-body { padding-left: 1.1rem; padding-right: 1.1rem; }
  .note-strip { display: grid !important; gap: .65rem !important; }
  .app-footer { justify-content: center; flex-wrap: wrap; text-align: center; }
  .table-pager { align-items: stretch !important; }
  .table-page-nav { max-width: 100%; overflow-x: auto; }
  .demo-banner,.client-portal-banner { align-items: flex-start; flex-direction: column; }.demo-banner .ms-auto { margin-left: 0 !important; }.template-list article { grid-template-columns: auto 1fr auto; }.template-list article > .badge { grid-column: 2; width: max-content; }.template-list article > .dropdown,.template-list article > button { grid-column: 3; grid-row: 1; }.client-list article { grid-template-columns: auto 1fr auto; }.request-document { padding:1rem; }.request-heading { flex-direction:column; }.request-heading > div:last-child { text-align:left; }.request-rows div { grid-template-columns:1fr; gap:.2rem; }
  .upload-analytics-header { align-items:flex-start;flex-direction:column; }
  .upload-analytics-header .btn { width:100%; }
  .upload-chart-pane { padding:1rem .85rem; }
  .upload-summary-strip { grid-template-columns:1fr; }
  .upload-chart-shell { overflow-x:auto; }
  .upload-activity-chart { min-width:500px;gap:.45rem; }
  .upload-chart-legend { padding-left:.5rem; }
  .upload-insights-pane { grid-template-columns:1fr;padding:1rem; }
  .destination-breakdown { grid-column:auto; }
}

.template-bulk-card {
  overflow: hidden;
  border: 1px solid rgba(var(--bs-primary-rgb),.18);
  box-shadow: 0 .55rem 1.65rem rgba(26,44,94,.07);
}
.template-bulk-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.35rem;
  border-bottom: 1px solid var(--app-border);
  background: linear-gradient(115deg,rgba(var(--bs-primary-rgb),.08),rgba(111,66,193,.035) 55%,#fff);
}
.template-bulk-title {
  display: flex;
  align-items: center;
  gap: .85rem;
}
.template-bulk-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  flex: 0 0 46px;
  border-radius: .75rem;
  color: #fff;
  background: linear-gradient(135deg,var(--bs-primary),#7259dc);
  box-shadow: 0 .45rem 1rem rgba(var(--bs-primary-rgb),.2);
  font-size: 1.3rem;
}
.template-bulk-count {
  display: inline-flex;
  align-items: center;
  padding: .42rem .72rem;
  border: 1px solid rgba(var(--bs-primary-rgb),.16);
  border-radius: 2rem;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb),.07);
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}
.template-bulk-body { padding: 1.25rem 1.35rem; }
.template-bulk-grid {
  display: grid;
  grid-template-columns: minmax(230px,.72fr) minmax(0,1.7fr);
  gap: 1rem;
  align-items: stretch;
}
.template-bulk-drop {
  min-height: 245px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .55rem;
  padding: 1.4rem;
  margin: 0;
  border: 2px dashed #cbd4eb;
  border-radius: .9rem;
  color: inherit;
  background: linear-gradient(145deg,#f8faff,#f3f6ff);
  text-align: center;
  cursor: pointer;
  transition: border-color .18s ease,background .18s ease,transform .18s ease;
}
.template-bulk-drop:hover,.template-bulk-drop:focus-within {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb),.055);
  transform: translateY(-1px);
}
.template-bulk-drop-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  margin-bottom: .2rem;
  border-radius: 50%;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb),.11);
  font-size: 1.65rem;
}
.template-bulk-drop strong { font-size: .92rem; }
.template-bulk-drop small { max-width: 280px;color: var(--app-muted);font-size: .72rem;line-height: 1.45; }
.template-bulk-drop .btn { margin-top: .35rem;pointer-events: none; }
.template-bulk-drop input[type=file] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}
.template-bulk-workspace {
  min-width: 0;
  min-height: 245px;
  overflow: hidden;
  border: 1px solid var(--app-border);
  border-radius: .9rem;
  background: #fbfcfe;
}
.template-bulk-workspace-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--app-border);
  background: #fff;
}
.template-bulk-workspace-heading > div { display: grid; }
.template-bulk-workspace-heading strong { font-size: .8rem; }
.template-bulk-workspace-heading small { color: var(--app-muted);font-size: .67rem; }
.template-bulk-empty {
  min-height: 185px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  padding: 1.5rem;
  color: #8b96ab;
  text-align: left;
}
.template-bulk-empty > i { font-size: 2rem; }
.template-bulk-empty > span { display: grid; }
.template-bulk-empty strong { color: #667085;font-size: .82rem; }
.template-bulk-empty small { margin-top: .15rem;font-size: .7rem; }
.bulk-template-rows {
  max-height: 430px;
  overflow-y: auto;
}
.bulk-template-row {
  display: grid;
  grid-template-columns: auto minmax(125px,.7fr) minmax(180px,1fr) minmax(210px,1fr);
  align-items: end;
  gap: .75rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid #e9ecf2;
  background: #fff;
}
.bulk-template-row:last-child { border-bottom: 0; }
.bulk-template-file-icon {
  width: 40px;
  height: 44px;
  display: grid;
  place-items: center;
  align-self: center;
  border-radius: .6rem;
  color: #52637b;
  background: #edf1f6;
  font-size: 1.2rem;
}
.bulk-template-file-icon.pdf { color: #c53f49;background: #fdebed; }
.bulk-template-file-icon.word { color: #3561bd;background: #e9f0ff; }
.bulk-template-file {
  min-width: 0;
  display: grid;
  align-self: center;
}
.bulk-template-file strong {
  overflow: hidden;
  font-size: .74rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bulk-template-file small { margin-top: .18rem;color: var(--app-muted);font-size: .64rem; }
.bulk-template-row .form-label { margin-bottom: .3rem;font-size: .66rem; }
.bulk-template-row .form-control,.bulk-template-row .form-select { min-height: 38px;font-size: .74rem; }
.template-bulk-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1rem;
}
.template-bulk-footer > span {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--app-muted);
  font-size: .7rem;
}
.template-bulk-footer > span i { color: #16835c; }
.template-owner-pill {
  width: max-content;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin: .15rem 0 .3rem;
  padding: .25rem .5rem;
  border-radius: 2rem;
  font-size: .65rem;
  font-weight: 700;
}
.template-owner-pill.assigned { color: #3759c8;background: #eaf0ff; }
.template-owner-pill.global { color: #087a78;background: #e3f7f5; }

@media (max-width: 1199.98px) {
  .template-bulk-grid { grid-template-columns: minmax(210px,.62fr) minmax(0,1.38fr); }
  .bulk-template-row { grid-template-columns: auto minmax(0,1fr) minmax(160px,1fr); }
  .bulk-template-row > div:last-child { grid-column: 2 / -1; }
}
@media (max-width: 767.98px) {
  .template-bulk-header,.template-bulk-footer,.template-bulk-workspace-heading { align-items: flex-start;flex-direction: column; }
  .template-bulk-grid { grid-template-columns: 1fr; }
  .template-bulk-drop { min-height: 205px; }
  .template-bulk-footer .btn { width: 100%; }
  .bulk-template-row { grid-template-columns: auto minmax(0,1fr);align-items: start; }
  .bulk-template-row > div:nth-child(n+2) { grid-column: 2; }
}
@media (max-width: 575.98px) {
  .template-bulk-header,.template-bulk-body { padding: 1rem; }
  .template-bulk-title { align-items: flex-start; }
  .template-bulk-count { margin-left: 3.8rem; }
  .template-bulk-workspace-heading .badge { white-space: normal; }
  .bulk-template-row { padding: .8rem; }
}

/* Global searchable Select2 controls */
.select2-container {
  min-width: 0;
  font-size: .875rem;
}
.caseflow-select2 .select2-selection--single {
  height: 2.875rem;
  border: 1px solid rgba(90,103,124,.24);
  border-radius: .5rem;
  background: var(--bs-body-bg);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.caseflow-select2 .select2-selection--single .select2-selection__rendered {
  padding: 0 2.35rem 0 .875rem;
  color: var(--bs-body-color);
  line-height: calc(2.875rem - 2px);
}
.caseflow-select2 .select2-selection--single .select2-selection__placeholder { color: #98a2b3; }
.caseflow-select2 .select2-selection--single .select2-selection__arrow {
  top: 0;
  right: .55rem;
  width: 1.5rem;
  height: calc(2.875rem - 2px);
}
.caseflow-select2 .select2-selection--single .select2-selection__arrow b {
  border-color: #667085 transparent transparent;
  border-width: 5px 4px 0;
}
.select2-container--open.caseflow-select2 .select2-selection--single,
.select2-container--focus.caseflow-select2 .select2-selection--single {
  border-color: rgba(var(--bs-primary-rgb),.68);
  box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb),.1);
}
.select2-container--open.caseflow-select2 .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent #667085;
  border-width: 0 4px 5px;
}
.caseflow-select2.select2-container--disabled .select2-selection--single {
  color: #98a2b3;
  background: #f2f4f7;
  border-color: #e4e7ec;
  cursor: not-allowed;
}
.caseflow-select2 .select2-selection--multiple {
  min-height: 2.875rem;
  border: 1px solid rgba(90,103,124,.24);
  border-radius: .5rem;
  background: var(--bs-body-bg);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.caseflow-select2 .select2-selection--multiple .select2-selection__rendered {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  padding: .38rem .5rem;
}
.caseflow-select2 .select2-selection--multiple .select2-selection__choice {
  margin: 0;
  padding: .2rem .55rem .2rem 1.3rem;
  border: 0;
  border-radius: 999px;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb),.1);
}
.caseflow-select2 .select2-selection--multiple .select2-selection__choice__remove {
  height: 100%;
  border: 0;
  color: inherit;
}
.caseflow-select2 .select2-selection--multiple .select2-search--inline .select2-search__field {
  min-height: 1.65rem;
  margin: 0;
  font-family: inherit;
}
.select2-container--open.caseflow-select2 .select2-selection--multiple,
.select2-container--focus.caseflow-select2 .select2-selection--multiple {
  border-color: rgba(var(--bs-primary-rgb),.68);
  box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb),.1);
}
.caseflow-select2-sm .select2-selection--single { height: 2.35rem; }
.caseflow-select2-sm .select2-selection--single .select2-selection__rendered { line-height: calc(2.35rem - 2px); }
.caseflow-select2-sm .select2-selection--single .select2-selection__arrow { height: calc(2.35rem - 2px); }
.select2-dropdown {
  z-index: 1090;
  overflow: hidden;
  border: 1px solid rgba(90,103,124,.2);
  border-radius: .65rem;
  background: var(--bs-body-bg);
  box-shadow: 0 .75rem 2rem rgba(31,45,78,.16);
}
.select2-container--open .select2-dropdown--below,
.select2-container--open .select2-dropdown--above { border-radius: .65rem; }
.select2-search--dropdown { padding: .65rem; background: #f8f9fc; }
.select2-search--dropdown .select2-search__field {
  min-height: 2.35rem;
  padding: .45rem .7rem;
  border: 1px solid #d6dae3;
  border-radius: .45rem;
  outline: 0;
}
.select2-search--dropdown .select2-search__field:focus {
  border-color: rgba(var(--bs-primary-rgb),.65);
  box-shadow: 0 0 0 .18rem rgba(var(--bs-primary-rgb),.1);
}
.select2-results__options { padding: .3rem; }
.select2-results__option {
  margin: .08rem 0;
  padding: .55rem .7rem;
  border-radius: .42rem;
  color: var(--bs-body-color);
  font-size: .82rem;
}
.select2-results__option[aria-selected=true] {
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb),.1);
  font-weight: 650;
}
.select2-results__option--highlighted[aria-selected] {
  color: #fff;
  background: var(--bs-primary);
}
.was-validated .form-select:invalid + .select2-container .select2-selection--single,
.form-select.is-invalid + .select2-container .select2-selection--single {
  border-color: var(--bs-form-invalid-border-color);
}
.was-validated .form-select:valid + .select2-container .select2-selection--single,
.form-select.is-valid + .select2-container .select2-selection--single {
  border-color: var(--bs-form-valid-border-color);
}
.table-pager .caseflow-select2 { width: 5rem !important; }
.table-pager .caseflow-select2 .select2-selection--single { height: 2.25rem; }
.table-pager .caseflow-select2 .select2-selection__rendered { padding-left: .65rem; line-height: calc(2.25rem - 2px); }
.table-pager .caseflow-select2 .select2-selection__arrow { height: calc(2.25rem - 2px); }

/* Compact driver filtering */
.driver-search-card {
  border-radius: .85rem;
  box-shadow: 0 .55rem 1.5rem rgba(31,45,78,.07);
}
.driver-search-header {
  min-height: 0;
  padding: .8rem 1rem;
  background: linear-gradient(110deg,rgba(var(--bs-primary-rgb),.06),rgba(255,255,255,.94));
}
.driver-search-heading { gap: 0; }
.driver-search-heading .card-title { font-size: 1.05rem; }
.driver-search-heading small { font-size: .7rem; }
.driver-search-body {
  padding: 1rem;
  background: var(--bs-body-bg);
}
#letter-filter-form .form-label {
  margin-bottom: .25rem;
  font-size: .7rem;
}
#letter-filter-form .form-control,
#letter-filter-form .form-select,
#letter-filter-form .input-group-text,
#letter-filter-form .input-group .btn {
  min-height: 2.5rem;
}
#letter-filter-form .caseflow-select2 .select2-selection--single { height: 2.5rem; }
#letter-filter-form .caseflow-select2 .select2-selection__rendered { line-height: calc(2.5rem - 2px); }
#letter-filter-form .caseflow-select2 .select2-selection__arrow { height: calc(2.5rem - 2px); }
.driver-filter-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .85rem;
  margin-top: .85rem;
  padding-top: .8rem;
  border-top: 1px solid var(--app-border);
}
.driver-history-inline,
.driver-filter-buttons {
  display: flex;
  align-items: center;
  gap: .65rem;
}
.driver-history-inline { min-width: 0; }
.driver-history-inline .form-check {
  flex: 0 0 auto;
  margin: 0;
  padding: .35rem .35rem .35rem 1.85rem;
}
.driver-history-inline .caseflow-select2 {
  width: min(360px,34vw) !important;
  min-width: 220px;
}
.driver-filter-buttons { flex: 0 0 auto; }
.driver-filter-buttons .btn {
  min-height: 2.5rem;
  padding-inline: 1rem;
}
.driver-filter-submit {
  min-height: 2.5rem;
  box-shadow: 0 .35rem .8rem rgba(var(--bs-primary-rgb),.18);
}

@media (max-width: 767.98px) {
  .driver-filter-footer,
  .driver-history-inline {
    align-items: stretch;
    flex-direction: column;
  }
  .driver-filter-footer { gap: .75rem; }
  .driver-history-inline .form-check { align-self: flex-start; }
  .driver-history-inline .caseflow-select2 { width: 100% !important; min-width: 0; }
  .driver-filter-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
}

/* Roadway Direct identity: a light brand panel preserves navy contrast in the sidebar. */
.roadway-wordmark { white-space: nowrap; font-weight: 800; letter-spacing: -.035em; line-height: 1.2; }
.roadway-wordmark-name { color: #132b50; }
.roadway-wordmark-direct { color: #e66b16; }
.portal-brand { gap: .6rem; margin-bottom: 1.35rem; padding: .8rem .65rem; background: #fff; border-radius: .75rem; }
.portal-brand strong { font-size: 1.05rem; }
.portal-brand small { color: #667085; font-size: .62rem; }
.portal-brand .brand-mark, .login-brand .brand-mark { flex: 0 0 36px; width: 36px; height: 36px; background: transparent; box-shadow: none; }
.portal-brand .brand-mark img, .login-brand .brand-mark img { display: block; width: 100%; height: 100%; }
.login-brand .roadway-wordmark { font-size: 1.25rem; }
