/* IBCLC Billing — shared base styles + design tokens.
   Light-theme tokens; the screens set the same custom properties inline so they
   stay self-consistent. Override here to retheme in one place. */
:root,
html[data-theme="light"]{
  color-scheme:light;
  --surface:#F5F4F2; --raised:#FFFFFF; --sunken:#EEEDEA; --border:#E5E3DF; --border-strong:#CAC7C1;
  --text:#23211F; --text2:#5B5853; --muted:#928E88;
  --primary:#2F2C28; --primary-soft:#E9E6E1; --on-primary:#FFFFFF;
  --accent:#E07A53; --accent2:#C9663F; --accent-soft:#FBEBE2;
  --success:#2E7D5B; --success-soft:#E6F0EA; --warning:#8F6212; --warning-soft:#F4EEDD;
  --danger:#B5392E; --danger-soft:#F7E9E6; --info:#2C6E9E; --info-soft:#E5EFF6;
  --neutral:#6B6862; --neutral-soft:#ECEAE6;
  --mono:'Geist Mono',ui-monospace,SFMono-Regular,monospace;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --surface:#131211; --raised:#1E1C1A; --sunken:#181716; --border:#2E2C29; --border-strong:#454340;
  --text:#F2F0EC; --text2:#A8A49D; --muted:#7A7670;
  --primary:#F2F0EC; --primary-soft:#2A2825; --on-primary:#131211;
  --accent:#E07A53; --accent2:#D86A45; --accent-soft:#3D2A22;
  --success:#4FA07A; --success-soft:#1E2F26; --warning:#C9922E; --warning-soft:#2F2818;
  --danger:#D85A50; --danger-soft:#301917; --info:#6BA3CC; --info-soft:#1A2630;
  --neutral:#9A968F; --neutral-soft:#252322;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
a{color:inherit;text-decoration:none}
input,select,textarea{font-family:inherit}
input:focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)}
::placeholder{color:var(--muted)}
@keyframes shimmer{0%{opacity:.55}50%{opacity:1}100%{opacity:.55}}
@keyframes pop{from{transform:scale(.98) translateY(6px)}to{transform:none}}
.skel{background:var(--border);border-radius:6px;height:13px;animation:shimmer 1.3s ease-in-out infinite}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:2px solid transparent;background-clip:content-box}
/* wide tables scroll horizontally instead of overflowing on small screens */
.table-wrap{width:100%;overflow-x:auto}

/* Grouped claim / data tables */
.mba-claims-table{background:var(--raised);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.mba-table-head{
  border-bottom:1px solid var(--border);
  background:var(--sunken);
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--muted);
}
.mba-table-group-head{
  display:flex;align-items:center;gap:10px;
  padding:10px 20px;
  background:var(--primary-soft);
  border-bottom:1px solid var(--border-strong);
  font-size:12.5px;font-weight:700;color:var(--text);
}
.mba-table-group-head .mba-table-group-meta{color:var(--muted);font-weight:600}
.mba-table-row{
  border-bottom:1px solid var(--border);
  background:var(--raised);
  transition:background .12s ease;
}
.mba-table-row--stripe{background:var(--surface)}
.mba-table-row:hover{background:var(--sunken)}
.mba-table-row[role="button"]:hover,
.mba-table-row[data-claim-id]:hover,
.mba-table-row[data-claim-row]:hover{cursor:pointer}
html[data-theme="dark"] .mba-table-group-head{background:var(--sunken);border-bottom-color:var(--border)}
html[data-theme="dark"] .mba-table-row--stripe{background:var(--sunken)}
html[data-theme="dark"] .mba-table-row:hover{background:var(--neutral-soft)}

/* Provider upload — dark mode panel hierarchy */
html[data-theme="dark"] body[data-page="provider-upload"] label:has(#inUploadFiles){
  background:var(--sunken);
  border-color:var(--border-strong);
}
html[data-theme="dark"] body[data-page="provider-upload"] input[type="checkbox"]{
  accent-color:var(--accent);
}

/* Provider upload — sidebar pre-billing queue */
.provider-prebill-sidebar{
  flex:1 1 0;
  min-height:0;
  display:flex;
  flex-direction:column;
  margin-top:10px;
  padding-top:14px;
  border-top:1px solid var(--border);
}
.provider-prebill-sidebar-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:0 4px 10px;
  flex:0 0 auto;
}
.provider-prebill-sidebar-title{
  margin:0;
  font-size:13px;
  font-weight:700;
  color:var(--text);
}
.provider-prebill-sidebar-sub{
  margin:3px 0 0;
  font-size:11px;
  line-height:1.35;
  color:var(--muted);
}
.provider-prebill-count{
  flex:0 0 auto;
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  color:var(--text2);
  background:var(--sunken);
  padding:2px 8px;
  border-radius:7px;
  min-width:24px;
  text-align:center;
}
.provider-prebill-list{
  flex:1 1 0;
  min-height:120px;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:2px 2px 8px 0;
  -webkit-overflow-scrolling:touch;
}
.provider-prebill-empty{
  padding:14px 10px;
  font-size:12px;
  line-height:1.45;
  color:var(--muted);
  text-align:center;
}
.provider-prebill-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:11px 12px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.provider-prebill-card-date{
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  color:var(--text2);
}
.provider-prebill-card-name{
  font-size:13px;
  font-weight:700;
  color:var(--text);
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.provider-prebill-card-baby{
  font-size:11.5px;
  color:var(--text2);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.provider-prebill-card-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-top:2px;
}
.provider-prebill-card-files{
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:600;
  color:var(--muted);
}
.provider-prebill-badge{
  display:inline-flex;
  align-items:center;
  font-size:10px;
  font-weight:700;
  padding:2px 7px;
  border-radius:6px;
  white-space:nowrap;
}
.provider-prebill-badge--ok{color:var(--success);background:var(--success-soft)}
.provider-prebill-badge--warn{color:var(--warning);background:var(--warning-soft)}
.provider-prebill-card-status{
  font-size:11px;
  font-weight:600;
  color:var(--text2);
  margin-top:2px;
}
.provider-prebill-card--clickable{
  cursor:pointer;
  transition:border-color .12s ease,background .12s ease;
}
.provider-prebill-card--clickable:hover,
.provider-prebill-card--clickable:focus-visible{
  border-color:var(--accent);
  background:var(--raised);
  outline:none;
}
.provider-prebill-card--editing{
  border-color:var(--accent);
  background:var(--accent-soft);
}
.provider-prebill-card-actions{
  display:flex;
  gap:6px;
  margin-top:6px;
}
.provider-prebill-card-actions button{
  appearance:none;
  border:1px solid var(--border);
  background:var(--raised);
  color:var(--text2);
  border-radius:7px;
  padding:3px 9px;
  font-size:10.5px;
  font-weight:700;
  font-family:inherit;
  cursor:pointer;
}
.provider-prebill-card-actions button:hover{border-color:var(--border-strong);color:var(--text);}
.provider-prebill-card-actions button[data-queue-delete]{color:var(--danger);}
.provider-prebill-card-actions button[data-queue-delete]:hover{border-color:var(--danger);background:var(--danger-soft);}

/* Provider upload — Billing Intake panel */
.billing-intake-panel{scrollbar-width:thin;}

/* Provider upload — Billing Intake form fields */
.bi-field{display:flex;flex-direction:column;gap:5px;min-width:0;}
.bi-field--full{grid-column:1 / -1;}
.bi-label{font-size:10.5px;font-weight:700;text-transform:uppercase;color:var(--muted);}
.bi-label .bi-req{color:var(--danger);}
.bi-field input,.bi-field select,.bi-field textarea{
  border:1px solid var(--border-strong);
  border-radius:9px;
  padding:8px 11px;
  font-size:13px;
  font-family:inherit;
  width:100%;
}
.bi-field textarea{resize:vertical;min-height:64px;}
.bi-subsection{
  grid-column:1 / -1;
  margin-top:2px;
  padding:12px;
  border:1px dashed var(--border-strong);
  border-radius:11px;
  background:var(--surface);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.bi-subsection[hidden]{display:none;}
.bi-subsection-title{
  grid-column:1 / -1;
  margin:0;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  color:var(--text2);
}

/* Provider upload — drag & drop active state */
.upload-dropzone--active{
  border-color:var(--accent) !important;
  background:var(--accent-soft) !important;
}

/* Theme-aware form controls on static shell pages */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="submit"]),
select,
textarea{
  background-color:var(--raised);
  color:var(--text);
}

/* Admin integrations accordion */
.mba-integration-panel{
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--raised);
  overflow:hidden;
}
.mba-integration-panel[open]{border-color:var(--border-strong)}
.mba-integration-panel > summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 18px;
  cursor:pointer;
  font-size:14px;
  font-weight:700;
  color:var(--text);
  user-select:none;
}
.mba-integration-panel > summary::-webkit-details-marker{display:none}
.mba-integration-panel > summary::after{
  content:'';
  margin-left:auto;
  width:8px;height:8px;
  border-right:2px solid var(--muted);
  border-bottom:2px solid var(--muted);
  transform:rotate(45deg);
  transition:transform .15s ease;
  flex:0 0 auto;
}
.mba-integration-panel[open] > summary::after{transform:rotate(-135deg);margin-top:4px}
.mba-integration-summary-meta{
  font-size:12px;
  font-weight:600;
  color:var(--muted);
}
.mba-integration-body{
  padding:0 18px 18px;
  border-top:1px solid var(--border);
}
.mba-integration-status{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px 0 12px;
  flex-wrap:wrap;
}
.mba-integration-badge{
  display:inline-flex;
  align-items:center;
  font-size:11px;
  font-weight:700;
  padding:4px 10px;
  border-radius:999px;
  white-space:nowrap;
}
.mba-integration-badge--ok{color:var(--success);background:var(--success-soft)}
.mba-integration-badge--muted{color:var(--text2);background:var(--neutral-soft)}
.mba-integration-badge--warn{color:var(--warning);background:var(--warning-soft)}
.mba-integration-badge--err{color:var(--danger);background:var(--danger-soft)}
.mba-integration-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mba-integration-chip{
  font-size:10.5px;
  font-weight:600;
  padding:3px 8px;
  border-radius:999px;
  color:var(--text2);
  background:var(--sunken);
}

/* Scrollable in-panel lists (TNT documents, tickets, vault) */
.mba-scroll-panel{
  max-height:min(520px,58vh);
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding-right:4px;
}
/* CMS-1500 box number badges (new-claim form) */
.cms-box-num{
  display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 8px;
  border-radius:7px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.2;
  color:var(--primary);background:var(--primary-soft);border:1px solid var(--border-strong);
  box-shadow:0 1px 0 rgba(0,0,0,.05);flex-shrink:0;
}
html[data-theme="dark"] .cms-box-num{color:var(--text);background:var(--sunken)}
.cms-field-label{display:flex;align-items:center;gap:8px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text2)}
.cms-svc-col{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text2)}
#formNewClaim input.cms-required-empty,
#formNewClaim select.cms-required-empty,
#formNewClaim textarea.cms-required-empty{
  border-color:var(--danger)!important;background:var(--danger-soft)!important;
  box-shadow:0 0 0 3px rgba(181,57,46,.14)!important;
}
#formNewClaim input.cms-required-empty:focus,
#formNewClaim select.cms-required-empty:focus,
#formNewClaim textarea.cms-required-empty:focus{
  border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(181,57,46,.22)!important;
}
