/* Client-facing refinements; all font files are bundled locally. */
@font-face {
  font-family: "Nunito";
  src: url("fonts/nunito.ttf") format("truetype");
  font-weight: 200 1000;
  font-style: normal;
  font-display: swap;
}

html[data-theme] body.cp-shell,
html[data-theme] .cp-shell :is(button, input, select, textarea, h1, h2, h3, h4, p, summary, label, legend) {
  font-family: "Nunito", "Nunito Sans", system-ui, sans-serif !important;
  font-optical-sizing: auto;
}
.cp-shell { --nd-font: "Nunito", "Nunito Sans", system-ui, sans-serif; }
.cp-shell .cp-sidebar button {
  min-height: 54px;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.45;
  gap: 12px;
  padding: 13px 10px;
}
.cp-shell .cp-sidebar button > span:first-child:not(.ft-nav-alert) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 26px;
  font-size: 24px;
  flex: none;
}
.cp-shell .cp-sidebar .review-family-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cp-shell .cp-sidebar .ft-nav-alert { font-size: 10px; width: auto; }
.cp-shell .review-welcome h1 { font-weight: 750; letter-spacing: -.025em; line-height: 1.25; }
.cp-shell .cp-card :is(h1, h2) { font-weight: 700; letter-spacing: -.02em; }
.cp-shell .cp-card p { font-size: 14px; line-height: 1.65; }
.cp-shell .cp-card .cp-empty { font-size: 12px; }
.cp-shell .review-welcome p:not(.review-eyebrow) { font-size: 15px; }
.cp-shell .cp-shared-document h3 { letter-spacing: 0; }
.cp-shell .cp-shared-document p { font-size: 12px; }
.cp-shell .cp-card .review-eyebrow { font-size: 10px; }

/* Case progress retains its exact value and equal milestone weighting. */
.cp-shell #cp-case-progress {
  height: 14px;
  border-radius: 999px;
  background: #e7e1d5;
  box-shadow: inset 0 1px 3px #6b5c3e12;
}
.cp-shell #cp-case-progress::-webkit-progress-bar { background: #e7e1d5; border-radius: 999px; }
.cp-shell #cp-case-progress::-webkit-progress-value { background: linear-gradient(90deg, #81704e, #8b7856); border-radius: 999px; }
.cp-shell #cp-case-progress::-moz-progress-bar { background: linear-gradient(90deg, #81704e, #8b7856); border-radius: 999px; }
html[data-theme=night] .cp-shell #cp-case-progress { background: #34454b; }
html[data-theme=night] .cp-shell #cp-case-progress::-webkit-progress-bar { background: #34454b; }
html[data-theme=night] .cp-shell #cp-case-progress::-webkit-progress-value { background: linear-gradient(90deg, #b7a17a, #c4ad82); }
html[data-theme=night] .cp-shell #cp-case-progress::-moz-progress-bar { background: linear-gradient(90deg, #b7a17a, #c4ad82); }
html[data-theme=night] .cp-shell :is(button, a, input, select, textarea, summary):focus-visible { outline-color: #bfdae9; }

@media (max-width: 1250px) {
  .cp-shell .cp-sidebar button { font-size: 14px; gap: 10px; padding-inline: 8px; }
}
@media (max-width: 760px) {
  .cp-shell .cp-sidebar button { font-size: 13px; gap: 8px; padding-inline: 5px; }
}
@media (max-width: 580px) {
  .cp-shell .cp-sidebar button { position: relative; font-size: 12px; line-height: 1.4; min-height: 52px; flex-direction: column; gap: 5px; padding: 8px 4px; text-align: center; }
  .cp-shell .cp-sidebar button > span:first-child:not(.ft-nav-alert) { width: 22px; height: 22px; font-size: 22px; }
  .cp-shell .cp-sidebar .review-family-icon svg { width: 22px; height: 22px; }
  .cp-shell .cp-sidebar .ft-nav-alert { position: absolute; top: 4px; right: 10px; }
  .cp-shell .cp-card p { font-size: 13px; }
  .cp-shell .review-welcome p:not(.review-eyebrow) { font-size: 14px; }
  .cp-shell .cp-card .review-eyebrow { font-size: 10px; }
}
