/* Standard buttons */

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);

  min-height: 38px;
  padding: 0 var(--space-4);

  border: 1px solid transparent;
  border-radius: var(--radius-small);

  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.025em;

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    transform 150ms ease,
    box-shadow 150ms ease;
}

.button:hover {
  transform: translateY(-1px);
}

.button:active {
  transform: translateY(0);
}

.button-primary {
  background: var(--color-primary);
  color: var(--color-text-dark);
  box-shadow: 0 5px 14px rgba(215, 168, 75, 0.16);
}

.button-primary:hover {
  background: var(--color-primary-hover);
  box-shadow: 0 7px 18px rgba(215, 168, 75, 0.22);
}

.button-secondary {
  background: var(--color-surface-raised);
  border-color: var(--color-border-light);
  color: var(--color-text-secondary);
}

.button-secondary:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-border-strong);
  color: var(--color-text);
}
/* Private Beta feedback */

.beta-feedback-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;

  min-height: 30px;
  padding: 0 11px;

  background: rgba(215, 168, 75, 0.1);
  border: 1px solid rgba(215, 168, 75, 0.42);
  border-radius: var(--radius-small);

  color: var(--color-primary);
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  white-space: nowrap;

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    transform 150ms ease;
}

.beta-feedback-button:hover {
  background: rgba(215, 168, 75, 0.18);
  border-color: rgba(215, 168, 75, 0.7);
  color: var(--color-text);
  transform: translateY(-1px);
}

.beta-feedback-button[hidden] {
  display: none;
}

.beta-feedback-form {
  display: grid;
  gap: var(--space-4);
}

.beta-feedback-guidance,
.beta-feedback-context-note {
  margin: 0;
  padding: var(--space-3);

  border-radius: var(--radius-small);

  color: var(--color-text-secondary);
  font-size: 0.75rem;
  line-height: 1.45;
}

.beta-feedback-guidance {
  background: rgba(215, 168, 75, 0.07);
  border: 1px solid rgba(215, 168, 75, 0.22);
}

.beta-feedback-context-note {
  background: rgba(114, 150, 199, 0.06);
  border: 1px solid rgba(114, 150, 199, 0.18);
}

.beta-feedback-guidance strong,
.beta-feedback-context-note strong {
  color: var(--color-primary);
}

.beta-feedback-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
}

.beta-feedback-status {
  min-height: 20px;
  margin: 0;

  color: var(--color-text-secondary);
  font-size: 0.75rem;
}

.beta-feedback-status.is-success {
  color: var(--color-success);
}

.beta-feedback-status.is-error {
  color: var(--color-danger);
}

@media (max-width: 760px) {
  .beta-feedback-button {
    padding-inline: 8px;
    font-size: 0.61rem;
  }
}

/* Header icon button */

.icon-button {
  display: grid;
  place-items: center;
  flex: 0 0 auto;

  width: 38px;
  height: 38px;

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  color: var(--color-text-secondary);
  font-size: 1rem;

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    transform 150ms ease;
}

.icon-button:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-border-light);
  color: var(--color-primary);
  transform: rotate(8deg);
}

.icon-button:active {
  transform: rotate(0deg) scale(0.96);
}

/* Status badges */

.status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 26px;
  padding: 0 var(--space-3);

  background: var(--color-secondary-muted);
  border: 1px solid rgba(114, 150, 199, 0.28);
  border-radius: var(--radius-pill);

  color: var(--color-secondary);
  font-size: 0.65rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Quick action buttons */

.quick-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);

  width: 100%;
  min-height: 48px;
  padding: 0 var(--space-4);

  background:
    linear-gradient(
      90deg,
      rgba(215, 168, 75, 0.035),
      transparent 50%
    ),
    var(--color-surface-raised);

  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);

  color: var(--color-text-secondary);
  text-align: left;

  font-size: 0.78rem;
  font-weight: 650;

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    transform 150ms ease;
}

.quick-action span:last-child {
  color: var(--color-primary);
  font-size: 1rem;
  transition: transform 150ms ease;
}

.quick-action:hover {
  background:
    linear-gradient(
      90deg,
      rgba(215, 168, 75, 0.08),
      transparent 60%
    ),
    var(--color-surface-hover);

  border-color: var(--color-border-light);
  color: var(--color-text);
  transform: translateX(2px);
}

.quick-action:hover span:last-child {
  transform: translateX(3px);
}

/* Form foundations for later modules */

.form-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.form-label {
  color: var(--color-text-secondary);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.form-control {
  width: 100%;
  min-height: 40px;
  padding: 0 var(--space-3);

  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  color: var(--color-text);
  font-size: 0.8rem;

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease;
}

textarea.form-control {
  min-height: 100px;
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
  resize: vertical;
}

.form-control:hover {
  border-color: var(--color-border-light);
}

.form-control:focus {
  background: var(--color-surface-raised);
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(215, 168, 75, 0.1);
}

.form-control::placeholder {
  color: var(--color-text-muted);
}

/* Utility states */

.is-hidden {
  display: none !important;
}

.is-disabled {
  pointer-events: none;
  opacity: 0.55;
}

/* Scrollbar styling for future internal panels */

* {
  scrollbar-width: thin;
  scrollbar-color:
    var(--color-border-light)
    var(--color-surface);
}

*::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

*::-webkit-scrollbar-track {
  background: var(--color-surface);
}

*::-webkit-scrollbar-thumb {
  background: var(--color-border-light);
  border: 2px solid var(--color-surface);
  border-radius: var(--radius-pill);
}

*::-webkit-scrollbar-thumb:hover {
  background: var(--color-border-strong);
}

/* Reduced-motion accessibility */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
/* Active case summary */

.case-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);

  width: min(100%, 720px);
  margin-top: var(--space-5);
}

.case-summary-item {
  display: flex;
  flex-direction: column;
  gap: 5px;

  min-width: 0;
  padding: var(--space-4);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);

  text-align: left;
}

.case-summary-item span {
  color: var(--color-text-muted);
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.case-summary-item strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.82rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 850px) {
  .case-summary {
    grid-template-columns: 1fr;
  }
}
/* Sprint 2: Case Workspace editor */

.case-workspace-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);

  width: 100%;
}

.case-form-grid {
  display: grid;
  grid-template-columns:
    minmax(220px, 1.4fr)
    minmax(150px, 0.8fr)
    minmax(200px, 1fr);
  gap: var(--space-3);

  width: 100%;
}

.case-form-grid .form-field-wide {
  grid-column: span 2;
}

.case-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
}

.case-form-status {
  display: flex;
  align-items: center;
  gap: var(--space-2);

  color: var(--color-text-muted);
  font-size: 0.7rem;
  font-weight: 650;
}

.case-form-status::before {
  content: "";

  width: 7px;
  height: 7px;

  background: var(--color-secondary);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(114, 150, 199, 0.45);
}

.case-form-buttons {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.case-notes-control {
  min-height: 84px;
}

.form-control:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

@media (max-width: 1050px) {
  .case-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-form-grid .form-field-wide {
    grid-column: span 2;
  }
}

@media (max-width: 760px) {
  .speedy-trial-side-timer-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .speedy-trial-speaker-control {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .case-form-grid {
    grid-template-columns: 1fr;
  }

  .case-form-grid .form-field-wide {
    grid-column: auto;
  }

  .case-form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .case-form-buttons {
    width: 100%;
  }

  .case-form-buttons .button {
    flex: 1;
  }
}
.empty-state.has-active-case {
  display: block;

  width: 100%;
  min-height: 0;
  padding: var(--space-3) 0 0;
  overflow: hidden;

  text-align: left;
}

.empty-state.has-active-case .case-workspace-form {
  align-items: stretch;
}
/* Sprint 2: Participants and Authority */

.participants-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);

  width: 100%;
}

.participants-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

.participants-span-2 {
  grid-column: span 2;
}

.authority-checkbox {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  min-height: 40px;
  padding: var(--space-2) var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  cursor: pointer;
}

.authority-checkbox:hover {
  border-color: var(--color-border-light);
}

.authority-checkbox input {
  flex: 0 0 auto;

  width: 17px;
  height: 17px;
  margin: 0;

  accent-color: var(--color-primary);
}

.authority-checkbox-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;

  min-width: 0;
}

.authority-checkbox-copy strong {
  color: var(--color-text);
  font-size: 0.72rem;
  font-weight: 700;
}

.authority-checkbox-copy small {
  color: var(--color-text-muted);
  font-size: 0.62rem;
  line-height: 1.25;
}

.participants-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
}

.participants-note {
  margin: 0;

  color: var(--color-text-muted);
  font-size: 0.68rem;
}

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

@media (max-width: 700px) {
  .participants-grid {
    grid-template-columns: 1fr;
  }

  .participants-span-2 {
    grid-column: auto;
  }

  .participants-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
/* Sprint 2: Timer panel placeholder */

.timer-placeholder-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.timer-placeholder {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);

  min-height: 64px;
  padding: var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
}

.timer-placeholder > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.timer-placeholder span {
  color: var(--color-text);
  font-size: 0.75rem;
  font-weight: 700;
}

.timer-placeholder small {
  color: var(--color-text-muted);
  font-size: 0.62rem;
}

.timer-placeholder strong {
  flex: 0 0 auto;

  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 1.2rem;
  font-weight: 750;
  letter-spacing: 0.04em;
}
/* Sprint 2: Compact desktop workspace */

.case-workspace-form {
  gap: var(--space-3);
}

.case-form-grid {
  gap: var(--space-2) var(--space-3);
}

.case-form-actions {
  padding-top: var(--space-2);
}

.case-notes-control {
  min-height: 68px;
}

.participants-form {
  gap: var(--space-2);
}

.participants-grid {
  gap: var(--space-2) var(--space-3);
}

.participants-actions {
  padding-top: var(--space-2);
}

#participants-panel-body {
  overflow: hidden;
}
/* Sprint 2: Compact empty Charges panel */

#charges-panel-body {
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  overflow: hidden;
}

#charges-panel-body .empty-state {
  width: 100%;
  padding: var(--space-3);
}

#charges-panel-body .empty-state-icon {
  width: 46px;
  height: 46px;
  margin-bottom: var(--space-3);
  font-size: 1.3rem;
}

#charges-panel-body .empty-state h4 {
  margin-bottom: var(--space-1);
}

#charges-panel-body .empty-state p {
  max-width: 520px;
  font-size: 0.76rem;
  line-height: 1.35;
}
/* Sprint 2: Original Charges editor */

.charges-workspace {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);

  width: 100%;
  height: 100%;
  min-height: 0;
}

.charge-entry-form {
  display: grid;
  grid-template-columns:
    minmax(74px, 0.65fr)
    minmax(180px, 1.7fr)
    minmax(90px, 0.8fr)
    minmax(58px, 0.45fr)
    minmax(70px, 0.55fr)
    minmax(80px, 0.65fr)
    auto;
  align-items: end;
  gap: var(--space-2);

  flex: 0 0 auto;
}

.charge-entry-form .form-control {
  min-height: 34px;
}

.charge-add-button {
  min-height: 34px;
  padding-right: var(--space-3);
  padding-left: var(--space-3);
}

.charge-list {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: var(--space-2);

  min-height: 0;
  overflow-y: auto;
}

.charge-list-empty {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;

  min-height: 46px;
  padding: var(--space-3);

  border: 1px dashed var(--color-border);
  border-radius: var(--radius-medium);

  color: var(--color-text-muted);
  font-size: 0.72rem;
  text-align: center;
}

.charge-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  flex: 0 0 auto;
  min-height: 48px;
  padding: var(--space-2) var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
}

.charge-list-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.charge-list-title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.charge-list-title strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.76rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.charge-code,
.charge-count {
  flex: 0 0 auto;

  padding: 2px 6px;

  background: var(--color-primary-muted);
  border-radius: var(--radius-pill);

  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.58rem;
  font-weight: 750;
}

.charge-list-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);

  color: var(--color-text-muted);
  font-size: 0.62rem;
}

.charge-remove-button {
  display: grid;
  place-items: center;
  flex: 0 0 auto;

  width: 28px;
  height: 28px;

  background: transparent;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  color: var(--color-text-muted);
  font-size: 1rem;
}

.charge-remove-button:hover {
  background: rgba(229, 91, 91, 0.09);
  border-color: var(--color-danger);
  color: var(--color-danger);
}

@media (max-width: 1050px) {
  .charge-entry-form {
    grid-template-columns:
      minmax(70px, 0.65fr)
      minmax(160px, 1.5fr)
      minmax(90px, 0.8fr)
      repeat(3, minmax(62px, 0.55fr))
      auto;
  }
}
/* Sprint 2: Negotiation Intelligence */

.negotiation-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);

  width: 100%;
  height: 100%;
  min-height: 0;
}

.negotiation-values-grid {
  display: grid;
  grid-template-columns:
    minmax(0, 1.2fr)
    repeat(3, minmax(0, 0.8fr));
  gap: var(--space-2);
}

.negotiation-values-grid .form-control {
  min-height: 34px;
}

.negotiation-position {
  min-height: 56px !important;
  resize: none !important;
}

.negotiation-ratings {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2);
}

.negotiation-rating {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: center;
  gap: var(--space-2);
}

.negotiation-rating > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);

  color: var(--color-text-secondary);
  font-size: 0.64rem;
  font-weight: 700;
}

.negotiation-rating strong {
  color: var(--color-primary);
  font-family: var(--font-mono);
}

.negotiation-rating input[type="range"] {
  width: 100%;
  accent-color: var(--color-primary);
}

.negotiation-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  margin-top: auto;
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border);
}

.negotiation-help {
  color: var(--color-text-muted);
  font-size: 0.62rem;
}

@media (max-width: 1050px) {
  .negotiation-values-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* Sprint 2: Negotiation rating explanations */

.negotiation-rating-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.negotiation-rating-label > span {
  display: flex;
  align-items: center;
  gap: 5px;
}

.rating-help {
  position: relative;

  display: inline-grid;
  place-items: center;

  width: 16px;
  height: 16px;
  padding: 0;

  background: var(--color-secondary-muted);
  border: 1px solid rgba(114, 150, 199, 0.32);
  border-radius: 50%;

  color: var(--color-secondary);
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1;

  cursor: help;
}

.rating-help::after {
  content: attr(data-tooltip);

  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  z-index: 20;

  width: 260px;
  padding: var(--space-3);

  background: var(--color-surface-hover);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-medium);
  box-shadow: var(--shadow-medium);

  color: var(--color-text-secondary);
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.45;
  text-align: left;

  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);

  transition:
    opacity 150ms ease,
    transform 150ms ease;
}

.rating-help:hover::after,
.rating-help:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.rating-slider-wrap {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
}

.rating-slider-wrap > span {
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: 0.56rem;
}

.rating-slider-wrap input[type="range"] {
  width: 100%;
}
/* Sprint 2: Allow negotiation tooltips outside panel */

#negotiation-panel {
  position: relative;
  z-index: 5;
  overflow: visible;
}

#negotiation-panel-body {
  overflow: visible;
}

.negotiation-form,
.negotiation-ratings,
.negotiation-rating {
  overflow: visible;
}

.rating-help:hover,
.rating-help:focus-visible {
  z-index: 50;
}

.rating-help::after {
  z-index: 60;
}
/* Sprint 2: Shared dialog foundation */

.app-dialog {
  display: flex;
  flex-direction: column;

  width: min(760px, 100%);
  max-height: min(82vh, 760px);
  overflow: hidden;

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.025),
      transparent 42%
    ),
    var(--color-surface);

  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow-large);
}

.dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);

  flex: 0 0 auto;
  padding: var(--space-5);

  border-bottom: 1px solid var(--color-border);
}

.dialog-header h2 {
  margin: 0;

  color: var(--color-text);
  font-size: 1.15rem;
  font-weight: 700;
}

.dialog-close-button {
  display: grid;
  place-items: center;
  flex: 0 0 auto;

  width: 34px;
  height: 34px;
  padding: 0;

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  color: var(--color-text-secondary);
  font-size: 1.2rem;
  line-height: 1;
}

.dialog-close-button:hover {
  background: rgba(229, 91, 91, 0.09);
  border-color: var(--color-danger);
  color: var(--color-danger);
}

.dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: var(--space-5);
  overflow-y: auto;

  color: var(--color-text-secondary);
}

.dialog-body > :last-child {
  margin-bottom: 0;
}

.dialog-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);

  flex: 0 0 auto;
  padding: var(--space-4) var(--space-5);

  border-top: 1px solid var(--color-border);
}
/* Sprint 2: Case Report editor */

.case-report-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.report-case-reference {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);

  padding: var(--space-3) var(--space-4);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
}

.report-case-reference span {
  color: var(--color-text-muted);
  font-size: 0.64rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.report-case-reference strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.8rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.report-textarea {
  min-height: 190px !important;
  line-height: 1.55;
  resize: vertical;
}
/* Sprint 2: Charges list controls */

.charge-list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  flex: 0 0 auto;
}

.charge-list-heading > span {
  color: var(--color-text-muted);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.charge-clear-button {
  padding: 0;

  background: transparent;
  border: 0;

  color: var(--color-text-muted);
  font-size: 0.62rem;
  font-weight: 700;
}

.charge-clear-button:not(:disabled):hover {
  color: var(--color-danger);
}

.charge-clear-button:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}
/* Sprint 2: Collapsible Participants panel */

.panel-header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.panel-collapse-button {
  min-height: 26px;
  padding: 0 var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);

  color: var(--color-text-secondary);
  font-size: 0.62rem;
  font-weight: 700;
}

.panel-collapse-button:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

#participants-panel.is-collapsed {
  min-height: 0;
}

#participants-panel.is-collapsed .panel-header {
  padding-bottom: 0;
  border-bottom: 0;
}
/* Tac 11 violation warning state */

.authority-checkbox:has(
  input[name="tac11Violation"]:checked
) {
  background:
    linear-gradient(
      90deg,
      rgba(229, 91, 91, 0.16),
      rgba(229, 91, 91, 0.07)
    ),
    var(--color-surface-raised);

  border-color: rgba(229, 91, 91, 0.68);

  box-shadow:
    inset 3px 0 0 var(--color-danger),
    0 0 14px rgba(229, 91, 91, 0.1);
}

.authority-checkbox:has(
  input[name="tac11Violation"]:checked
) .authority-checkbox-copy strong {
  color: var(--color-danger);
}

.authority-checkbox:has(
  input[name="tac11Violation"]:checked
) .authority-checkbox-copy small {
  color: var(--color-text-secondary);
}
/* Sprint 2: Stoplight status badges */

.status-badge.is-complete,
.status-badge.is-progress,
.status-badge.is-required,
.status-badge.is-neutral {
  gap: 6px;
}

.status-badge.is-complete::before,
.status-badge.is-progress::before,
.status-badge.is-required::before,
.status-badge.is-neutral::before {
  content: "";

  width: 6px;
  height: 6px;

  border-radius: 50%;
}

/* Green: complete, configured, or ready */

.status-badge.is-complete {
  background: rgba(99, 197, 141, 0.12);
  border-color: rgba(99, 197, 141, 0.48);
  color: var(--color-success);

  box-shadow:
    inset 0 0 10px rgba(99, 197, 141, 0.04),
    0 0 10px rgba(99, 197, 141, 0.06);
}

.status-badge.is-complete::before {
  background: var(--color-success);
  box-shadow: 0 0 7px rgba(99, 197, 141, 0.7);
}

/* Yellow: active, running, or in progress */

.status-badge.is-progress {
  background: rgba(215, 168, 75, 0.13);
  border-color: rgba(215, 168, 75, 0.52);
  color: var(--color-primary);

  box-shadow:
    inset 0 0 10px rgba(215, 168, 75, 0.04),
    0 0 10px rgba(215, 168, 75, 0.06);
}

.status-badge.is-progress::before {
  background: var(--color-primary);
  box-shadow: 0 0 7px rgba(215, 168, 75, 0.7);
}

/* Red: required information or attention needed */

.status-badge.is-required {
  background: rgba(229, 91, 91, 0.13);
  border-color: rgba(229, 91, 91, 0.56);
  color: var(--color-danger);

  box-shadow:
    inset 0 0 10px rgba(229, 91, 91, 0.04),
    0 0 10px rgba(229, 91, 91, 0.07);
}

.status-badge.is-required::before {
  background: var(--color-danger);
  box-shadow: 0 0 7px rgba(229, 91, 91, 0.72);
}

/* Blue: neutral or informational */

.status-badge.is-neutral {
  background: var(--color-secondary-muted);
  border-color: rgba(114, 150, 199, 0.32);
  color: var(--color-secondary);
}

.status-badge.is-neutral::before {
  background: var(--color-secondary);
  box-shadow: 0 0 7px rgba(114, 150, 199, 0.58);
}
/* Negotiation completion control */

.negotiation-complete-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  padding: var(--space-2) var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  cursor: pointer;
}

.negotiation-complete-toggle:hover {
  border-color: var(--color-border-light);
}

.negotiation-complete-toggle:has(input:checked) {
  background: rgba(99, 197, 141, 0.1);
  border-color: rgba(99, 197, 141, 0.5);

  box-shadow:
    inset 3px 0 0 var(--color-success);
}

.negotiation-complete-toggle input {
  width: 17px;
  height: 17px;
  margin: 0;

  accent-color: var(--color-success);
}

.negotiation-complete-toggle > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.negotiation-complete-toggle strong {
  color: var(--color-text);
  font-size: 0.7rem;
}

.negotiation-complete-toggle small {
  color: var(--color-text-muted);
  font-size: 0.6rem;
}
/* Negotiation completion row refinement */

.negotiation-completion-row {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    auto;
  align-items: stretch;
  gap: var(--space-2);

  margin-top: auto;
}

.negotiation-completion-row .negotiation-complete-toggle {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.negotiation-save-button {
  align-self: stretch;
  min-width: 145px;
  min-height: 100%;
  white-space: nowrap;
}

.negotiation-help-row {
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border);
}

.negotiation-help-row .negotiation-help {
  display: block;
}

/* Retire the older footer layout */

.negotiation-actions {
  display: none;
}

@media (max-width: 1050px) {
  .negotiation-completion-row {
    grid-template-columns:
      minmax(0, 1fr)
      auto;
  }

  .negotiation-save-button {
    min-width: 132px;
    padding-right: var(--space-3);
    padding-left: var(--space-3);
  }
}

@media (max-width: 700px) {
  .negotiation-completion-row {
    grid-template-columns: 1fr;
  }

  .negotiation-save-button {
    width: 100%;
  }
}
/* Simplified Case Personnel layout */

#participants-panel .participants-grid {
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
}

#participants-panel .participants-span-2 {
  grid-column: span 2;
}

@media (max-width: 700px) {
  #participants-panel .participants-grid {
    grid-template-columns: 1fr;
  }

  #participants-panel .participants-span-2 {
    grid-column: auto;
  }
}
/* Case Personnel: Tac 11 reporting */

.tac11-report-block {
  grid-column: span 2;

  display: grid;
  grid-template-columns:
    minmax(260px, 0.9fr)
    minmax(0, 1.1fr);
  align-items: stretch;
  gap: var(--space-3);

  padding: var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease;
}

.tac11-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  min-width: 0;
  cursor: pointer;
}

.tac11-toggle input {
  flex: 0 0 auto;

  width: 18px;
  height: 18px;
  margin: 0;

  accent-color: var(--color-danger);
}

.tac11-toggle > span {
  display: flex;
  flex-direction: column;
  gap: 2px;

  min-width: 0;
}

.tac11-toggle strong {
  color: var(--color-text);
  font-size: 0.72rem;
}

.tac11-toggle small {
  color: var(--color-text-muted);
  font-size: 0.62rem;
}

.tac11-officer-fields {
  display: grid;
  grid-template-columns:
    minmax(0, 1.4fr)
    minmax(110px, 0.6fr);
  gap: var(--space-2);
}

.tac11-officer-fields .form-control {
  min-height: 36px;
}

.tac11-report-block.is-violated {
  background:
    linear-gradient(
      90deg,
      rgba(229, 91, 91, 0.16),
      rgba(229, 91, 91, 0.06)
    ),
    var(--color-surface-raised);

  border-color: rgba(229, 91, 91, 0.68);

  box-shadow:
    inset 3px 0 0 var(--color-danger),
    0 0 14px rgba(229, 91, 91, 0.1);
}

.tac11-report-block.is-violated
.tac11-toggle strong {
  color: var(--color-danger);
}

@media (max-width: 900px) {
  .tac11-report-block {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .tac11-report-block {
    grid-column: auto;
  }

  .tac11-officer-fields {
    grid-template-columns: 1fr;
  }
}
/* Officer report access warning */

.report-access-warning {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);

  padding: var(--space-3) var(--space-4);

  background:
    linear-gradient(
      90deg,
      rgba(215, 168, 75, 0.14),
      rgba(215, 168, 75, 0.05)
    ),
    var(--color-surface-raised);

  border: 1px solid rgba(215, 168, 75, 0.48);
  border-radius: var(--radius-medium);

  box-shadow:
    inset 3px 0 0 var(--color-primary);
}

.report-access-warning-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;

  width: 24px;
  height: 24px;

  background: var(--color-primary-muted);
  border: 1px solid rgba(215, 168, 75, 0.42);
  border-radius: 50%;

  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 850;
}

.report-access-warning > div:last-child {
  min-width: 0;
}

.report-access-warning strong {
  display: block;
  margin-bottom: 4px;

  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 750;
}

.report-access-warning p {
  margin: 0;

  color: var(--color-text-secondary);
  font-size: 0.68rem;
  line-height: 1.5;
}
/* Compact Officer + Client Accounts dialog */

.app-dialog:has(.case-report-form) {
  width: min(900px, 100%);
  max-height: min(92vh, 820px);
}

.app-dialog:has(.case-report-form) .dialog-header {
  padding: var(--space-4) var(--space-5);
}

.app-dialog:has(.case-report-form) .dialog-body {
  padding: var(--space-4) var(--space-5);
  overflow: hidden;
}

.app-dialog:has(.case-report-form) .dialog-footer {
  padding: var(--space-3) var(--space-5);
}

.case-report-form {
  gap: var(--space-3);
}

.case-report-form .report-case-reference {
  padding: var(--space-2) var(--space-3);
}

.case-report-form .report-access-warning {
  padding: var(--space-2) var(--space-3);
}

.case-report-form .report-access-warning p {
  font-size: 0.64rem;
  line-height: 1.35;
}

.case-report-form .report-textarea {
  height: 125px;
  min-height: 125px !important;
  resize: none;
}

/* Scrolling remains available only on genuinely short screens */

@media (max-height: 700px) {
  .app-dialog:has(.case-report-form) .dialog-body {
    overflow-y: auto;
  }

  .case-report-form .report-textarea {
    height: 105px;
    min-height: 105px !important;
  }
}
/* Accounts dialog: matter reference + client name */

.report-account-header {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(260px, 0.8fr);
  align-items: end;
  gap: var(--space-3);
}

.report-account-header .report-case-reference {
  height: 100%;
  margin: 0;
}

.report-client-field {
  margin: 0;
}

@media (max-width: 700px) {
  .report-account-header {
    grid-template-columns: 1fr;
  }
}
/* Cell Call timer dashboard */

.timers-dashboard {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.timer-auto-advance {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  padding: var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);

  cursor: pointer;
}

.timer-auto-advance input {
  flex: 0 0 auto;

  width: 18px;
  height: 18px;
  margin: 0;

  accent-color: var(--color-primary);
}

.timer-auto-advance > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.timer-auto-advance strong {
  color: var(--color-text);
  font-size: 0.72rem;
}

.timer-auto-advance small {
  color: var(--color-text-muted);
  font-size: 0.62rem;
  line-height: 1.35;
}

.timer-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.timer-group-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.timer-group-heading > div {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.timer-group-heading strong {
  color: var(--color-text);
  font-size: 0.72rem;
}

.timer-group-heading small {
  color: var(--color-text-muted);
  font-size: 0.6rem;
}

.timer-card-grid {
  display: grid;
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(180px, 1fr)
    );
  gap: var(--space-2);
}

.timer-card-grid-discussion {
  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );
}

.timer-card-grid .proceeding-timer {
  min-width: 0;
  margin: 0;
}

.proceeding-timer.is-independent {
  border-style: dashed;
}

@media (max-width: 750px) {
  .timer-card-grid-discussion {
    grid-template-columns: 1fr;
  }
}
/* Polished Cell Call timer dashboard */

.cell-call-timer-dashboard {
  display: grid;
  gap: var(--space-3);
}

.timer-section-card {
  padding: var(--space-3);

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.025),
      transparent
    ),
    var(--color-surface-raised);

  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
}

.timer-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  margin-bottom: var(--space-3);
}

.timer-section-header > div {
  min-width: 0;
}

.timer-section-kicker {
  display: block;
  margin-bottom: 2px;

  color: var(--color-primary);
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.timer-section-header h4 {
  margin: 0;

  color: var(--color-text);
  font-size: 0.82rem;
}

.timer-section-header p {
  margin: 2px 0 0;

  color: var(--color-text-muted);
  font-size: 0.61rem;
  line-height: 1.35;
}

/* Auto-advance toggle */

.timer-auto-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 0 0 auto;

  padding: 7px 10px;

  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  cursor: pointer;
}

.timer-auto-toggle input {
  width: 17px;
  height: 17px;
  margin: 0;

  accent-color: var(--color-primary);
}

.timer-auto-toggle > span {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.timer-auto-toggle strong {
  color: var(--color-text);
  font-size: 0.62rem;
}

.timer-auto-toggle small {
  color: var(--color-text-muted);
  font-size: 0.53rem;
}

/* Workflow stages */

.workflow-timer-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
}

.workflow-timer-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);

  min-width: 0;
  padding: var(--space-3);

  background: rgba(0, 0, 0, 0.12);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  transition:
    border-color 150ms ease,
    box-shadow 150ms ease,
    transform 150ms ease;
}

.workflow-timer-card.is-running {
  border-color: rgba(215, 168, 75, 0.72);

  box-shadow:
    inset 0 0 0 1px rgba(215, 168, 75, 0.14),
    0 0 16px rgba(215, 168, 75, 0.08);

  transform: translateY(-1px);
}

.workflow-timer-card.is-overtime {
  border-color: rgba(229, 91, 91, 0.78);

  box-shadow:
    inset 3px 0 0 var(--color-danger),
    0 0 16px rgba(229, 91, 91, 0.12);
}

.workflow-timer-top {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.workflow-stage-number {
  display: grid;
  place-items: center;
  flex: 0 0 auto;

  width: 22px;
  height: 22px;

  background: rgba(215, 168, 75, 0.12);
  border: 1px solid rgba(215, 168, 75, 0.3);
  border-radius: 50%;

  color: var(--color-primary);
  font-size: 0.58rem;
  font-weight: 850;
}

.workflow-timer-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.workflow-timer-copy strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.67rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workflow-timer-copy small {
  overflow: hidden;

  color: var(--color-text-muted);
  font-size: 0.54rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workflow-timer-display {
  display: block;

  color: var(--color-text);
  font-size: clamp(1.3rem, 2vw, 1.8rem);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
  line-height: 1;
  text-align: center;
}

.workflow-timer-card.is-running
.workflow-timer-display {
  color: var(--color-primary);
}

.workflow-timer-card.is-overtime
.workflow-timer-display {
  color: var(--color-danger);
}

.workflow-timer-actions {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr) auto;
  gap: var(--space-2);
}

.workflow-timer-actions .button {
  min-height: 30px;
  padding: 5px 9px;

  font-size: 0.59rem;
}

/* Discussion tracker */

.discussion-tracker {
  position: relative;
  overflow: hidden;
}

.discussion-mode-badge {
  flex: 0 0 auto;

  padding: 5px 9px;

  background: rgba(215, 168, 75, 0.1);
  border: 1px solid rgba(215, 168, 75, 0.3);
  border-radius: 999px;

  color: var(--color-primary);
  font-size: 0.57rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.discussion-time-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.discussion-time-card {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr) auto;
  grid-template-areas:
    "heading time"
    "caption time";
  align-items: center;
  gap: 2px var(--space-3);

  min-width: 0;
  padding: var(--space-3);

  background: rgba(0, 0, 0, 0.12);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  transition:
    border-color 150ms ease,
    box-shadow 150ms ease;
}

.discussion-time-card.is-running {
  border-color: rgba(215, 168, 75, 0.72);

  box-shadow:
    inset 3px 0 0 var(--color-primary),
    0 0 14px rgba(215, 168, 75, 0.08);
}

.discussion-time-heading {
  grid-area: heading;

  display: flex;
  align-items: center;
  gap: 6px;

  min-width: 0;

  color: var(--color-text);
  font-size: 0.68rem;
  font-weight: 750;
}

.discussion-party-dot {
  flex: 0 0 auto;

  width: 7px;
  height: 7px;

  background: var(--color-text-muted);
  border-radius: 50%;
}

.discussion-time-card.is-running
.discussion-party-dot {
  background: var(--color-primary);

  box-shadow:
    0 0 8px rgba(215, 168, 75, 0.65);
}

.discussion-time-card > strong {
  grid-area: time;

  color: var(--color-text);
  font-size: 1.45rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
}

.discussion-time-card.is-running > strong {
  color: var(--color-primary);
}

.discussion-time-card > small {
  grid-area: caption;

  overflow: hidden;

  color: var(--color-text-muted);
  font-size: 0.54rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Balance visualization */

.discussion-balance {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  margin-top: var(--space-2);
}

.discussion-balance-track {
  display: flex;
  flex: 1 1 auto;
  overflow: hidden;

  height: 7px;

  background: rgba(255, 255, 255, 0.05);
  border-radius: 999px;
}

.discussion-balance-client,
.discussion-balance-state {
  display: block;
  height: 100%;

  transition: width 250ms ease;
}

.discussion-balance-client {
  background: var(--color-primary);
}

.discussion-balance-state {
  background: rgba(229, 91, 91, 0.75);
}

.discussion-balance > small {
  flex: 0 0 auto;

  color: var(--color-text-muted);
  font-size: 0.55rem;
  font-variant-numeric: tabular-nums;
}

/* Shared discussion controls */

.discussion-control-grid {
  display: grid;
  grid-template-columns:
    repeat(5, minmax(0, 1fr));
  gap: var(--space-2);

  margin-top: var(--space-3);
}

.discussion-control-grid .button {
  min-height: 34px;
  padding: 6px 8px;

  background: rgba(255, 255, 255, 0.025);
  border-color: var(--color-border);

  color: var(--color-text-secondary);
  font-size: 0.61rem;
}

.discussion-mode-button.is-active,
.discussion-pause-button.is-active {
  background: rgba(215, 168, 75, 0.14);
  border-color: rgba(215, 168, 75, 0.65);

  color: var(--color-primary);

  box-shadow:
    inset 0 0 0 1px rgba(215, 168, 75, 0.1);
}

.discussion-reset-button {
  color: var(--color-text-muted) !important;
}

.discussion-reset-button:hover {
  border-color:
    rgba(229, 91, 91, 0.65) !important;

  color: var(--color-danger) !important;
}

.discussion-control-help {
  margin: var(--space-2) 0 0;

  color: var(--color-text-muted);
  font-size: 0.54rem;
  line-height: 1.35;
  text-align: center;
}

@media (max-width: 900px) {
  .workflow-timer-grid {
    grid-template-columns: 1fr;
  }

  .discussion-control-grid {
    grid-template-columns:
      repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 650px) {
  .timer-section-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .discussion-time-grid {
    grid-template-columns: 1fr;
  }

  .discussion-balance {
    align-items: stretch;
    flex-direction: column;
    gap: 5px;
  }

  .discussion-control-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}
/* Compact timer cards with hover descriptions */

.workflow-timer-copy {
  justify-content: center;
}

.discussion-time-card {
  grid-template-areas: "heading time";
  grid-template-rows: auto;
  gap: var(--space-3);
}

.workflow-timer-card,
.discussion-time-card {
  cursor: help;
}
/* Sprint 3: Penal-code charge picker */

.charge-picker {
  display: grid;
  grid-template-columns:
    minmax(240px, 1fr)
    auto;
  align-items: end;
  gap: var(--space-2);

  flex: 0 0 auto;
}

.charge-search-field {
  position: relative;
  min-width: 0;
}

.charge-search-input-wrap {
  position: relative;
}

.charge-search-input {
  padding-right: 42px;
}

.charge-search-clear {
  position: absolute;
  top: 50%;
  right: 7px;

  display: grid;
  place-items: center;

  width: 26px;
  height: 26px;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: var(--radius-small);

  color: var(--color-text-muted);
  font-size: 1rem;
  line-height: 1;

  transform: translateY(-50%);
}

.charge-search-clear:hover {
  background: var(--color-surface-hover);
  color: var(--color-text);
}

.charge-picker-status {
  display: flex;
  align-items: center;

  min-height: 34px;
  padding: 0 var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);

  color: var(--color-text-muted);
  font-size: 0.65rem;
  font-weight: 700;
  white-space: nowrap;
}

.charge-picker-status.is-ready {
  border-color: rgba(99, 197, 141, 0.4);
  color: var(--color-success);
}

.charge-picker-status.is-error {
  border-color: rgba(229, 91, 91, 0.5);
  color: var(--color-danger);
}

.charge-severity-legend {
  grid-column: 1 / -1;

  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);

  min-width: 0;
  padding: 0 2px;

  color: var(--color-text-muted);
  font-size: 0.56rem;
  font-weight: 700;
}

.charge-severity-key {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.charge-severity-key > span {
  width: 8px;
  height: 8px;

  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.05);
}

.charge-severity-key.is-yellow > span {
  background: #e7c64e;
}

.charge-severity-key.is-orange > span {
  background: #f59e42;
}

.charge-severity-key.is-red > span {
  background: #e45b5b;
}

.charge-search-results {
  grid-column: 1 / -1;

  display: flex;
  flex-direction: column;
  gap: 4px;

  max-height: 190px;
  padding: 6px;
  overflow-y: auto;

  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-medium);
  box-shadow: var(--shadow-medium);
}

.charge-search-results[hidden] {
  display: none;
}

.charge-search-result {
  display: grid;
  grid-template-columns:
    auto
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);

  width: 100%;
  min-height: 44px;
  padding: var(--space-2) var(--space-3);

  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-small);

  color: var(--color-text);
  text-align: left;
}

.charge-search-result:hover,
.charge-search-result:focus-visible {
  background: var(--color-surface-hover);
  border-color: var(--color-border-light);
  outline: none;
}

.charge-search-result.is-yellow,
.charge-search-result.is-orange,
.charge-search-result.is-red {
  border-left-width: 4px;
}

.charge-search-result.is-yellow {
  background: rgba(231, 198, 78, 0.07);
  border-left-color: #e7c64e;
}

.charge-search-result.is-orange {
  background: rgba(245, 158, 66, 0.08);
  border-left-color: #f59e42;
}

.charge-search-result.is-red {
  background: rgba(228, 91, 91, 0.08);
  border-left-color: #e45b5b;
}

.charge-search-result.is-yellow:hover,
.charge-search-result.is-yellow:focus-visible {
  background: rgba(231, 198, 78, 0.13);
  border-left-color: #e7c64e;
}

.charge-search-result.is-orange:hover,
.charge-search-result.is-orange:focus-visible {
  background: rgba(245, 158, 66, 0.14);
  border-left-color: #f59e42;
}

.charge-search-result.is-red:hover,
.charge-search-result.is-red:focus-visible {
  background: rgba(228, 91, 91, 0.14);
  border-left-color: #e45b5b;
}

.charge-search-result.is-yellow
  .charge-search-result-code {
  background: rgba(231, 198, 78, 0.14);
  color: #f2d86f;
}

.charge-search-result.is-orange
  .charge-search-result-code {
  background: rgba(245, 158, 66, 0.15);
  color: #ffb866;
}

.charge-search-result.is-red
  .charge-search-result-code {
  background: rgba(228, 91, 91, 0.15);
  color: #ff8585;
}

.charge-search-result-code {
  padding: 3px 7px;

  background: var(--color-primary-muted);
  border-radius: var(--radius-pill);

  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.58rem;
  font-weight: 800;
  white-space: nowrap;
}

.charge-search-result-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.charge-search-result-copy strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.72rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.charge-search-result-copy small {
  overflow: hidden;

  color: var(--color-text-muted);
  font-size: 0.59rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.charge-search-result-sentence {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;

  color: var(--color-text-secondary);
  font-size: 0.6rem;
  white-space: nowrap;
}

.charge-search-message {
  padding: var(--space-3);

  color: var(--color-text-muted);
  font-size: 0.68rem;
  line-height: 1.4;
  text-align: center;
}

.charge-entry-divider {
  display: flex;
  align-items: center;
  gap: var(--space-3);

  color: var(--color-text-muted);
  font-size: 0.58rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.charge-entry-divider::before,
.charge-entry-divider::after {
  content: "";

  flex: 1 1 auto;
  height: 1px;

  background: var(--color-border);
}

@media (max-width: 700px) {
  .charge-picker {
    grid-template-columns: 1fr;
  }

  .charge-search-results {
    grid-column: auto;
  }

  .charge-picker-status {
    justify-content: center;
  }

  .charge-search-result {
    grid-template-columns:
      auto
      minmax(0, 1fr);
  }

  .charge-search-result-sentence {
    grid-column: 2;
    align-items: flex-start;
    flex-direction: row;
  }
}
/* Sprint 3: Final compact Personnel flags */

/*
 * Use a 12-column grid so the standard personnel
 * fields remain half-width while the two flag cards
 * use a 4/8 split.
 */

#participants-panel .participants-grid {
  grid-template-columns:
    repeat(12, minmax(0, 1fr));
}

#participants-panel
.participants-grid
> .form-field {
  grid-column: span 6;
}

/* Firearm license: compact one-third row */

#participants-panel
.firearm-license-card {
  grid-column: span 4;

  display: flex;
  align-items: center;

  min-width: 0;
  min-height: 52px;
  padding: 7px var(--space-3);
}

#participants-panel
.firearm-license-card
.tac11-toggle {
  min-width: 0;
  min-height: 34px;
}

#participants-panel
.firearm-license-card
.tac11-toggle input {
  accent-color: var(--color-secondary);
}

#participants-panel
.firearm-license-card:has(
  input[name="hasFirearmLicense"]:checked
) {
  background:
    linear-gradient(
      90deg,
      rgba(114, 150, 199, 0.13),
      rgba(114, 150, 199, 0.045)
    ),
    var(--color-surface-raised);

  border-color:
    rgba(114, 150, 199, 0.48);

  box-shadow:
    inset 3px 0 0
      var(--color-secondary),
    0 0 12px
      rgba(114, 150, 199, 0.08);
}

#participants-panel
.firearm-license-card:has(
  input[name="hasFirearmLicense"]:checked
)
.tac11-toggle strong {
  color: var(--color-secondary);
}

/* Tac 11: compact two-thirds row */

#participants-panel
.tac11-violation-card {
  grid-column: span 8;

  display: grid;
  grid-template-columns:
  minmax(190px, 0.65fr)
  minmax(0, 1.35fr);
  align-items: center;
  gap: var(--space-2);

  min-width: 0;
  min-height: 52px;
  padding: 7px var(--space-3);
}

/* When unchecked, only the toggle is visible */

#participants-panel
.tac11-violation-card:not(
  .is-violated
) {
  grid-template-columns: 1fr;
}

/* Tac 11 toggle stays compact */

#participants-panel
.tac11-violation-card
.tac11-toggle {
  min-width: 0;
  min-height: 34px;
}

#participants-panel
.tac11-violation-card
.tac11-toggle small,
#participants-panel
.firearm-license-card
.tac11-toggle small {
  line-height: 1.15;
}

/* Officer details remain on the same line */

#participants-panel
.tac11-violation-card
.tac11-officer-fields {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;

  width: 100%;
  min-width: 0;
}

/* Officer name: intentionally short */

#participants-panel
.tac11-violation-card
.tac11-officer-fields
.form-field:first-child {
  display: grid;
  grid-template-columns:
    auto
    minmax(240px, 1fr);
  align-items: center;
  gap: 6px;

  flex: 1 1 auto;
  min-width: 0;
}

/* Badge: intentionally very short */

#participants-panel
.tac11-violation-card
.tac11-officer-fields
.form-field:last-child {
  display: grid;
  grid-template-columns:
    auto
    92px;
  align-items: center;
  gap: 6px;
}

/* Tiny inline labels */

#participants-panel
.tac11-violation-card
.tac11-officer-fields
.form-label {
  font-size: 0.52rem;
  letter-spacing: 0.025em;
  white-space: nowrap;
}

/* Compact inputs */

#participants-panel
.tac11-violation-card
.tac11-officer-fields
.form-control {
  min-height: 30px;
  padding-right: 8px;
  padding-left: 8px;

  font-size: 0.68rem;
}

/* Red warning appearance stays on Tac 11 only */

#participants-panel
.tac11-violation-card.is-violated {
  background:
    linear-gradient(
      90deg,
      rgba(229, 91, 91, 0.16),
      rgba(229, 91, 91, 0.06)
    ),
    var(--color-surface-raised);

  border-color:
    rgba(229, 91, 91, 0.68);

  box-shadow:
    inset 3px 0 0
      var(--color-danger),
    0 0 14px
      rgba(229, 91, 91, 0.1);
}

#participants-panel
.tac11-violation-card.is-violated
.tac11-toggle strong {
  color: var(--color-danger);
}

/* Smaller desktop and tablet fallback */

@media (max-width: 1150px) {
  #participants-panel
  .firearm-license-card,
  #participants-panel
  .tac11-violation-card {
    grid-column: span 12;
  }
}

@media (max-width: 700px) {
  #participants-panel
  .participants-grid
  > .form-field {
    grid-column: span 12;
  }

  #participants-panel
  .tac11-violation-card {
    grid-template-columns: 1fr;
  }

  #participants-panel
  .tac11-violation-card
  .tac11-officer-fields {
    align-items: stretch;
    flex-direction: column;
  }

  #participants-panel
  .tac11-violation-card
  .tac11-officer-fields
  .form-field:first-child,
  #participants-panel
  .tac11-violation-card
  .tac11-officer-fields
  .form-field:last-child {
    grid-template-columns: 1fr;
  }
}
/* Sprint 3: Collapsible main workspace panels */

#case-overview-panel.is-collapsed,
#charges-panel.is-collapsed {
  min-height: 0;
}

#case-overview-panel.is-collapsed
.panel-header,
#charges-panel.is-collapsed
.panel-header {
  padding-bottom: 0;
  border-bottom: 0;
}
/* Sprint 3: Enforce collapsed workspace panels */

#case-overview-panel.is-collapsed
> .empty-state,

#charges-panel.is-collapsed
> #charges-panel-body {
  display: none !important;
}

#case-overview-panel.is-collapsed,
#charges-panel.is-collapsed {
  flex: 0 0 auto;
  height: auto !important;
  min-height: 0 !important;
}

#case-overview-panel.is-collapsed
.panel-header,

#charges-panel.is-collapsed
.panel-header {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
/* Sprint 3: Keep negotiation tooltips inside the right column */

#negotiation-panel .rating-help::after {
  right: auto;
  left: 0;

  width: min(
    260px,
    calc(100vw - 48px)
  );
}
/* Sprint 3: Compact timer workspace mode */

#timers-panel.is-compact
.cell-call-timer-dashboard {
  gap: var(--space-2);
}

#timers-panel.is-compact
.timer-section-card {
  padding: 8px 10px;
}

/* Hide workflow explanation and auto-advance */

#timers-panel.is-compact
.timer-section-card:first-child
.timer-section-header {
  display: none;
}

/* Keep only the Cell Call workflow timer */

#timers-panel.is-compact
.workflow-timer-grid {
  grid-template-columns: 1fr;
}

#timers-panel.is-compact
.workflow-timer-card:not(
  [data-timer-card="cellCall"]
) {
  display: none;
}

/* Cell Call becomes one compact horizontal row */

#timers-panel.is-compact
.workflow-timer-card[
  data-timer-card="cellCall"
] {
  display: grid;
  grid-template-columns:
    minmax(76px, auto)
    minmax(100px, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);

  padding: 8px 10px;
}

#timers-panel.is-compact
.workflow-stage-number {
  display: none;
}

#timers-panel.is-compact
.workflow-timer-copy strong {
  font-size: 0.72rem;
}

#timers-panel.is-compact
.workflow-timer-display {
  font-size: 1.55rem;
  text-align: center;
}

#timers-panel.is-compact
.workflow-timer-actions {
  grid-template-columns:
    repeat(2, auto);
}

#timers-panel.is-compact
.workflow-timer-actions
.button {
  min-height: 28px;
  padding: 4px 8px;
}

/* Condense Discussion Tracking */

#timers-panel.is-compact
.discussion-tracker
.timer-section-header {
  margin-bottom: var(--space-2);
}

#timers-panel.is-compact
.discussion-tracker
.timer-section-kicker,

#timers-panel.is-compact
.discussion-tracker
.timer-section-header p {
  display: none;
}

#timers-panel.is-compact
.discussion-tracker
.timer-section-header h4 {
  font-size: 0.74rem;
}

#timers-panel.is-compact
.discussion-time-card {
  padding: 8px 10px;
}

#timers-panel.is-compact
.discussion-time-card > strong {
  font-size: 1.2rem;
}

#timers-panel.is-compact
.discussion-balance,

#timers-panel.is-compact
.discussion-control-help {
  display: none;
}

#timers-panel.is-compact
.discussion-control-grid {
  margin-top: var(--space-2);
}

#timers-panel.is-compact
.discussion-control-grid
.button {
  min-height: 28px;
  padding: 4px 6px;
}
/* Sprint 3: Negotiation position score */

.negotiation-position-card {
  display: grid;
  grid-template-columns:
    62px
    minmax(0, 1fr);
  align-items: center;
  gap: var(--space-3);

  padding: 10px 12px;

  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.025),
      transparent 55%
    ),
    var(--color-surface-raised);

  border: 1px solid
    var(--color-border);

  border-radius:
    var(--radius-medium);
}

.negotiation-position-score {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;

  min-height: 52px;
  padding: 8px 5px;

  background:
    rgba(0, 0, 0, 0.14);

  border: 1px solid
    var(--color-border);

  border-radius:
    var(--radius-small);

  font-family:
    var(--font-mono);
}

.negotiation-position-score strong {
  color: var(--color-text);
  font-size: 1.35rem;
  line-height: 1;
}

.negotiation-position-score span {
  color: var(--color-text-muted);
  font-size: 0.55rem;
}

.negotiation-position-content {
  display: flex;
  flex-direction: column;
  gap: 5px;

  min-width: 0;
}

.negotiation-position-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.negotiation-position-heading span {
  color: var(--color-text-muted);
  font-size: 0.57rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.negotiation-position-heading strong {
  color: var(--color-text);
  font-size: 0.76rem;
}

.negotiation-position-insights {
  display: flex;
  flex-direction: column;
  gap: 2px;

  color: var(--color-text-muted);
  font-size: 0.59rem;
  line-height: 1.35;
}

.negotiation-position-insights strong {
  color: var(--color-text-secondary);
  font-weight: 750;
}

.negotiation-position-priority {
  align-self: flex-start;

  padding: 3px 7px;

  background:
    var(--color-secondary-muted);

  border: 1px solid
    rgba(114, 150, 199, 0.3);

  border-radius:
    var(--radius-pill);

  color: var(--color-secondary);

  font-size: 0.55rem;
  font-weight: 750;
}

.negotiation-position-priority.is-critical {
  background:
    rgba(229, 91, 91, 0.12);

  border-color:
    rgba(229, 91, 91, 0.5);

  color: var(--color-danger);
}

.negotiation-position-priority.is-warning {
  background:
    rgba(215, 168, 75, 0.12);

  border-color:
    rgba(215, 168, 75, 0.5);

  color: var(--color-primary);
}

.negotiation-position-priority.is-positive {
  background:
    rgba(99, 197, 141, 0.1);

  border-color:
    rgba(99, 197, 141, 0.45);

  color: var(--color-success);
}

/* Position severity colors */

.negotiation-position-card.is-strong,
.negotiation-position-card.is-favorable {
  border-color:
    rgba(99, 197, 141, 0.45);

  box-shadow:
    inset 3px 0 0
      var(--color-success);
}

.negotiation-position-card.is-balanced {
  border-color:
    rgba(114, 150, 199, 0.42);

  box-shadow:
    inset 3px 0 0
      var(--color-secondary);
}

.negotiation-position-card.is-difficult {
  border-color:
    rgba(215, 168, 75, 0.5);

  box-shadow:
    inset 3px 0 0
      var(--color-primary);
}

.negotiation-position-card.is-weak {
  border-color:
    rgba(229, 91, 91, 0.52);

  box-shadow:
    inset 3px 0 0
      var(--color-danger);
}

.negotiation-position-card.is-strong
.negotiation-position-score strong,

.negotiation-position-card.is-favorable
.negotiation-position-score strong {
  color: var(--color-success);
}

.negotiation-position-card.is-balanced
.negotiation-position-score strong {
  color: var(--color-secondary);
}

.negotiation-position-card.is-difficult
.negotiation-position-score strong {
  color: var(--color-primary);
}

.negotiation-position-card.is-weak
.negotiation-position-score strong {
  color: var(--color-danger);
}

@media (max-width: 700px) {
  .negotiation-position-card {
    grid-template-columns: 1fr;
  }

  .negotiation-position-score {
    justify-content: flex-start;
    min-height: 0;
  }
}
/* Sprint 3: Full-screen vertical fit refinement */

@media (
  min-width: 1100px
) and (
  min-height: 850px
) {
  /* Compact timers: shave a little extra height */

  #timers-panel.is-compact
  .cell-call-timer-dashboard {
    gap: 8px;
  }

  #timers-panel.is-compact
  .timer-section-card {
    padding-top: 7px;
    padding-bottom: 7px;
  }

  #timers-panel.is-compact
  .discussion-control-grid {
    margin-top: 7px;
  }

  /* Negotiation: tighten spacing without shrinking controls */

  #negotiation-panel
  .negotiation-form {
    gap: 8px;
  }

  #negotiation-panel
  .charge-list-item {
    padding-top: 7px;
    padding-bottom: 7px;
  }

  #negotiation-panel
  .negotiation-position-card {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  #negotiation-panel
  .negotiation-position {
    min-height: 50px !important;
  }

  #negotiation-panel
  .negotiation-ratings {
    gap: 6px;
  }

  #negotiation-panel
  .negotiation-completion-row {
    margin-top: 0;
  }

  #negotiation-panel
  .negotiation-help-row {
    padding-top: 6px;
  }
}
/* Sprint 3: Compact Deal Quality intelligence strip */

.deal-quality-strip {
  grid-column: 1 / -1;

  display: grid;
  grid-template-columns:
    minmax(155px, auto)
    minmax(0, 1fr);
  align-items: center;
  gap: var(--space-3);

  min-width: 0;
  padding-top: 7px;

  border-top:
    1px solid var(--color-border);
}

.deal-quality-heading {
  display: flex;
  align-items: center;
  gap: 6px;

  min-width: 0;
  white-space: nowrap;
}

.deal-quality-heading > span {
  color: var(--color-text-muted);
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.deal-quality-heading > strong {
  color: var(--color-text);
  font-size: 0.66rem;
}

.deal-quality-provisional {
  padding: 2px 6px;

  background:
    rgba(215, 168, 75, 0.12);

  border:
    1px solid rgba(
      215,
      168,
      75,
      0.42
    );

  border-radius:
    var(--radius-pill);

  color: var(--color-primary);
  font-size: 0.5rem;
  font-weight: 750;
  white-space: nowrap;
}

.deal-quality-insights {
  display: flex;
  flex-direction: column;
  gap: 1px;

  min-width: 0;

  color: var(--color-text-muted);
  font-size: 0.54rem;
  line-height: 1.3;
}

.deal-quality-insights span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.deal-quality-insights strong {
  color: var(--color-text-secondary);
  font-weight: 750;
}

/* Deal severity colors */

.deal-quality-strip.is-exceptional
.deal-quality-heading > strong,

.deal-quality-strip.is-strong
.deal-quality-heading > strong {
  color: var(--color-success);
}

.deal-quality-strip.is-favorable
.deal-quality-heading > strong {
  color: var(--color-secondary);
}

.deal-quality-strip.is-limited
.deal-quality-heading > strong {
  color: var(--color-primary);
}

.deal-quality-strip.is-poor
.deal-quality-heading > strong,

.deal-quality-strip.is-harmful
.deal-quality-heading > strong {
  color: var(--color-danger);
}

@media (max-width: 700px) {
  .deal-quality-strip {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .deal-quality-insights span {
    white-space: normal;
  }
}
/* Sprint 3: Final full-screen negotiation fit */

@media (
  min-width: 1100px
) and (
  min-height: 850px
) {
  /* Redundant once the sliders visibly show 1–10 */

  #negotiation-panel
  .negotiation-help-row {
    display: none;
  }

  /* Reclaim a few additional pixels from intelligence cards */

  #negotiation-panel
  .negotiation-position-card {
    padding-top: 7px;
    padding-bottom: 7px;
    row-gap: 6px;
  }

  #negotiation-panel
  .deal-quality-strip {
    padding-top: 5px;
  }

  #negotiation-panel
  .negotiation-position {
    min-height: 46px !important;
  }
}
/* =========================================================
   Sprint 5 — Saved Case Browser
   ========================================================= */

#saved-cases-placeholder {
  display: block;
  min-height: 0;
  padding: 18px;
  text-align: left;
  overflow: auto;
}

#saved-cases-placeholder > .eyebrow {
  margin: 0 0 12px;
}

.saved-case-list {
  display: grid;
  grid-template-columns:
    repeat(
      auto-fill,
      minmax(300px, 1fr)
    );
  gap: 12px;
  align-items: stretch;
}

.saved-case-card {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  padding: 16px;
  background:
    linear-gradient(
      145deg,
      rgba(23, 31, 43, 0.96),
      rgba(13, 19, 28, 0.96)
    );
  border: 1px solid
    rgba(111, 133, 163, 0.35);
  border-left: 4px solid
    var(--accent, #d8b650);
  border-radius: 10px;
  box-shadow:
    0 8px 20px
    rgba(0, 0, 0, 0.2);
}

.saved-case-card__title {
  margin: 0;
  color: var(--text-primary, #ffffff);
  font-size: 17px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.saved-case-card__details,
.saved-case-card__status,
.saved-case-card__updated {
  margin: 0;
  color: var(--text-secondary, #9cacbf);
  font-size: 12px;
  line-height: 1.4;
}

.saved-case-card__status {
  color: #79dca3;
  font-weight: 800;
}

.saved-case-card__updated {
  margin-top: auto;
  padding-top: 5px;
  border-top: 1px solid
    rgba(111, 133, 163, 0.2);
  font-size: 11px;
}

@media (max-width: 900px) {
  .saved-case-list {
    grid-template-columns:
      repeat(
        auto-fill,
        minmax(250px, 1fr)
      );
  }
}

@media (max-width: 620px) {
  #saved-cases-placeholder {
    padding: 12px;
  }

  .saved-case-list {
    grid-template-columns: 1fr;
  }

  .saved-case-card {
    min-height: 120px;
    padding: 14px;
  }
}
/* =========================================================
   Sprint 5 — Saved Case Toolbar
   ========================================================= */

.saved-case-toolbar {
  display: grid;
  grid-template-columns:
    minmax(280px, 1fr)
    minmax(170px, 220px);
  gap: 12px;
  align-items: end;
  margin: 0 0 12px;
  padding: 14px 16px;
  background:
    rgba(15, 22, 32, 0.92);
  border: 1px solid
    rgba(111, 133, 163, 0.3);
  border-radius: 10px;
}

.saved-case-toolbar label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.saved-case-toolbar label > span {
  color:
    var(
      --text-secondary,
      #9cacbf
    );
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.saved-case-toolbar input,
.saved-case-toolbar select {
  width: 100%;
  min-height: 38px;
  padding: 0 11px;
  color:
    var(
      --text-primary,
      #ffffff
    );
  background:
    rgba(8, 13, 20, 0.95);
  border: 1px solid
    rgba(111, 133, 163, 0.45);
  border-radius: 7px;
  font: inherit;
  font-size: 13px;
  outline: none;
}

.saved-case-toolbar input::placeholder {
  color:
    rgba(156, 172, 191, 0.65);
}

.saved-case-toolbar input:hover,
.saved-case-toolbar select:hover {
  border-color:
    rgba(216, 182, 80, 0.65);
}

.saved-case-toolbar input:focus,
.saved-case-toolbar select:focus {
  border-color:
    var(
      --accent,
      #d8b650
    );
  box-shadow:
    0 0 0 2px
    rgba(216, 182, 80, 0.14);
}

.saved-case-toolbar select {
  cursor: pointer;
}

@media (max-width: 700px) {
  .saved-case-toolbar {
    grid-template-columns: 1fr;
    padding: 12px;
  }

  .saved-case-toolbar input,
  .saved-case-toolbar select {
    min-height: 42px;
  }
}
/*
 * Sprint 5 — Filtering visibility
 *
 * The saved-case card's display:flex rule can
 * override the browser's default [hidden] rule.
 */
.saved-case-card[hidden],
.saved-case-no-results[hidden] {
  display: none !important;
}
/* =========================================================
   Sprint 5 — Saved Case Actions
   ========================================================= */

.saved-case-card__actions {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 4px;
}

.saved-case-card__action {
  min-width: 0;
  min-height: 34px;
  padding: 6px 9px;
  color: var(--text-primary, #ffffff);
  background: rgba(27, 39, 56, 0.95);
  border: 1px solid
    rgba(111, 133, 163, 0.55);
  border-radius: 7px;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  transition:
    border-color 120ms ease,
    background 120ms ease,
    transform 120ms ease;
}

.saved-case-card__action:hover {
  background: rgba(38, 53, 74, 0.98);
  border-color: rgba(216, 182, 80, 0.8);
  transform: translateY(-1px);
}

.saved-case-card__action:focus-visible {
  outline: 2px solid
    var(--accent, #d8b650);
  outline-offset: 2px;
}

.saved-case-card__action--open {
  grid-column: 1 / -1;
  background: rgba(38, 57, 82, 0.98);
  border-color: rgba(99, 142, 195, 0.7);
}

.saved-case-card__action--complete,
.saved-case-card__action--reopen,
.saved-case-card__action--restore {
  border-color: rgba(87, 177, 126, 0.65);
}

.saved-case-card__action--complete:hover,
.saved-case-card__action--reopen:hover,
.saved-case-card__action--restore:hover {
  background: rgba(31, 73, 51, 0.95);
  border-color: rgba(121, 220, 163, 0.9);
}

.saved-case-card__action--archive {
  border-color: rgba(193, 151, 69, 0.65);
}

.saved-case-card__action--archive:hover {
  background: rgba(78, 60, 27, 0.95);
  border-color: rgba(226, 185, 92, 0.9);
}

.saved-case-card__action--restore {
  grid-column: 1 / -1;
}
/* Sprint 5 — Permanent Delete Action */

.saved-case-card__action--delete {
  grid-column: 1 / -1;
  width: 100%;
  color: #ffdede;
  background: rgba(91, 28, 35, 0.95);
  border-color: rgba(207, 76, 88, 0.8);
}

.saved-case-card__action--delete:hover {
  color: #ffffff;
  background: rgba(132, 35, 45, 0.98);
  border-color: rgba(255, 105, 115, 0.95);
}

.saved-case-card__action--delete:focus-visible {
  outline-color: #ff6973;
}
/* =========================================================
   Sprint 5 — Active Saved Case
   ========================================================= */

.saved-case-card--active {
  border-color: rgba(86, 174, 218, 0.75);
  border-left-color: #62bde7;
  box-shadow:
    0 0 0 1px rgba(98, 189, 231, 0.12),
    0 10px 24px rgba(0, 0, 0, 0.24);
}

.saved-case-card__active-badge {
  align-self: flex-start;
  margin-bottom: 1px;
  padding: 4px 7px;
  color: #dff6ff;
  background: rgba(35, 108, 143, 0.35);
  border: 1px solid rgba(98, 189, 231, 0.65);
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.saved-case-card__active-badge[hidden] {
  display: none !important;
}
/* Sprint 5 — Currently Open Case Action */

.saved-case-card__action--open:disabled {
  color: #9fc7da;
  background: rgba(29, 65, 83, 0.55);
  border-color: rgba(98, 189, 231, 0.42);
  cursor: default;
  opacity: 0.8;
  transform: none;
}

.saved-case-card__action--open:disabled:hover {
  color: #9fc7da;
  background: rgba(29, 65, 83, 0.55);
  border-color: rgba(98, 189, 231, 0.42);
  transform: none;
}

/* Sprint 6 Step 3A: Filed charge severity colors */

.charge-list-item.is-yellow,
.charge-list-item.is-orange,
.charge-list-item.is-red {
  border-left-width: 4px;
}

.charge-list-item.is-yellow {
  background: rgba(231, 198, 78, 0.07);
  border-left-color: #e7c64e;
}

.charge-list-item.is-orange {
  background: rgba(245, 158, 66, 0.08);
  border-left-color: #f59e42;
}

.charge-list-item.is-red {
  background: rgba(228, 91, 91, 0.08);
  border-left-color: #e45b5b;
}

.charge-list-item.is-yellow .charge-code,
.charge-list-item.is-yellow .charge-count {
  background: rgba(231, 198, 78, 0.14);
  color: #f2d86f;
}

.charge-list-item.is-orange .charge-code,
.charge-list-item.is-orange .charge-count {
  background: rgba(245, 158, 66, 0.15);
  color: #ffb866;
}

.charge-list-item.is-red .charge-code,
.charge-list-item.is-red .charge-count {
  background: rgba(228, 91, 91, 0.15);
  color: #ff8585;
}

/* Sprint 6 Step 7: Penal-code picker filters */

.charge-picker-filters {
  grid-column: 1 / -1;

  display: grid;
  grid-template-columns:
    minmax(140px, 0.8fr)
    minmax(170px, 1fr)
    minmax(190px, 1.15fr)
    auto;
  align-items: end;
  gap: var(--space-2);

  min-width: 0;
}

.charge-picker-filter {
  display: flex;
  flex-direction: column;
  gap: 4px;

  min-width: 0;

  color: var(--color-text-muted);
  font-size: 0.55rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.charge-picker-filter-select {
  min-height: 32px;
  height: 32px;
  padding-top: 0;
  padding-bottom: 0;

  font-size: 0.66rem;
}

.charge-filter-clear {
  min-height: 32px;
  height: 32px;
  padding: 0 var(--space-3);

  font-size: 0.62rem;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .charge-picker-filters {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .charge-filter-clear {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .charge-picker-filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .charge-filter-clear {
    grid-column: auto;
  }
}

/* Sprint 6 Step 9: Penal-code validation health */

.charge-library-health {
  grid-column: 1 / -1;

  display: inline-flex;
  align-items: center;
  gap: 6px;

  width: fit-content;
  max-width: 100%;
  min-height: 24px;
  padding: 3px 9px;

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: 999px;

  color: var(--color-text-muted);
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.charge-library-health__icon {
  display: grid;
  place-items: center;

  width: 15px;
  height: 15px;

  border-radius: 50%;

  font-size: 0.62rem;
  font-weight: 950;
  line-height: 1;
}

.charge-library-health.is-valid {
  background: rgba(99, 197, 141, 0.07);
  border-color: rgba(99, 197, 141, 0.4);
  color: var(--color-success);
}

.charge-library-health.is-valid
.charge-library-health__icon {
  background: rgba(99, 197, 141, 0.16);
}

.charge-library-health.is-warning {
  background: rgba(231, 198, 78, 0.07);
  border-color: rgba(231, 198, 78, 0.48);
  color: #f2d86f;
}

.charge-library-health.is-warning
.charge-library-health__icon {
  background: rgba(231, 198, 78, 0.16);
}

.charge-library-health.is-error {
  background: rgba(229, 91, 91, 0.08);
  border-color: rgba(229, 91, 91, 0.5);
  color: var(--color-danger);
}

.charge-library-health.is-error
.charge-library-health__icon {
  background: rgba(229, 91, 91, 0.17);
}

/* Sprint 6 Step 11: Proposed resolution severity colors */

.charge-resolution-summary {
  display: inline-flex;
  align-items: center;

  min-height: 22px;
  padding: 2px 8px;

  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--color-border);
  border-radius: 999px;

  color: var(--color-text-muted);
  font-weight: 800;
  line-height: 1.2;
}

.charge-resolution-summary.is-yellow {
  background: rgba(231, 198, 78, 0.11);
  border-color: rgba(231, 198, 78, 0.48);
  color: #f2d86f;
}

.charge-resolution-summary.is-orange {
  background: rgba(245, 158, 66, 0.12);
  border-color: rgba(245, 158, 66, 0.5);
  color: #ffb866;
}

.charge-resolution-summary.is-red {
  background: rgba(228, 91, 91, 0.12);
  border-color: rgba(228, 91, 91, 0.5);
  color: #ff8585;
}

/* Sprint 6 Step 12: Negotiation summary severity colors */

.negotiation-resolution-value {
  display: inline-flex;
  align-items: center;

  min-height: 22px;
  padding: 2px 8px;

  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--color-border);
  border-radius: 999px;

  color: var(--color-text-muted);
  font-weight: 800;
  line-height: 1.2;
}

.negotiation-resolution-value.is-yellow {
  background: rgba(231, 198, 78, 0.11);
  border-color: rgba(231, 198, 78, 0.48);
  color: #f2d86f;
}

.negotiation-resolution-value.is-orange {
  background: rgba(245, 158, 66, 0.12);
  border-color: rgba(245, 158, 66, 0.5);
  color: #ffb866;
}

.negotiation-resolution-value.is-red {
  background: rgba(228, 91, 91, 0.12);
  border-color: rgba(228, 91, 91, 0.5);
  color: #ff8585;
}

/* Sprint 8: Dry-Run Mode */

.dry-run-entry-button {
  min-height: 34px;
  padding-inline: var(--space-3);
  white-space: nowrap;
}

.dry-run-indicator {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.dry-run-indicator[hidden] {
  display: none;
}

.dry-run-mode-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 30px;
  padding: 0 var(--space-3);

  background:
    linear-gradient(
      135deg,
      rgba(161, 98, 255, 0.24),
      rgba(215, 168, 75, 0.2)
    );

  border: 1px solid
    rgba(204, 160, 255, 0.66);

  border-radius: var(--radius-pill);

  color: #e7c9ff;

  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;

  box-shadow:
    0 0 18px
      rgba(161, 98, 255, 0.18);
}

.dry-run-return-button {
  min-height: 34px;
  padding-inline: var(--space-3);

  background:
    rgba(161, 98, 255, 0.13);

  border: 1px solid
    rgba(204, 160, 255, 0.4);

  color: #e7c9ff;
  white-space: nowrap;
}

.dry-run-return-button:hover {
  background:
    rgba(161, 98, 255, 0.22);

  border-color:
    rgba(215, 168, 75, 0.72);

  color: #ffffff;
}

body.is-dry-run .app-shell {
  box-shadow:
    inset 0 0 0 2px
      rgba(161, 98, 255, 0.72),
    inset 0 0 32px
      rgba(161, 98, 255, 0.06);
}

body.is-dry-run .app-header {
  background:
    linear-gradient(
      90deg,
      rgba(161, 98, 255, 0.15),
      rgba(10, 15, 23, 0.97) 35%,
      rgba(10, 15, 23, 0.97) 65%,
      rgba(215, 168, 75, 0.12)
    );

  border-bottom-color:
    rgba(204, 160, 255, 0.55);
}

body.is-dry-run .brand-mark {
  border-color:
    rgba(204, 160, 255, 0.78);

  color: #e7c9ff;

  box-shadow:
    inset 0 0 18px
      rgba(161, 98, 255, 0.12),
    0 0 24px
      rgba(161, 98, 255, 0.16);
}

body.is-dry-run .case-indicator {
  padding: 6px 12px;

  background:
    rgba(161, 98, 255, 0.08);

  border: 1px solid
    rgba(204, 160, 255, 0.23);

  border-radius: var(--radius-small);
}
/* Sprint 8: Dry-run saved-case identity */

.saved-case-card__test-badge {
  align-self: flex-start;

  margin-bottom: 1px;
  padding: 4px 8px;

  color: #f0d9ff;

  background:
    linear-gradient(
      135deg,
      rgba(145, 82, 215, 0.34),
      rgba(183, 133, 48, 0.24)
    );

  border: 1px solid
    rgba(204, 160, 255, 0.68);

  border-radius: 999px;

  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.09em;
  line-height: 1;
  text-transform: uppercase;

  box-shadow:
    0 0 14px
      rgba(161, 98, 255, 0.13);
}

.saved-case-card__test-badge[hidden] {
  display: none !important;
}

body.is-dry-run
.saved-case-card {
  border-color:
    rgba(177, 121, 226, 0.48);

  border-left-color:
    #b77be2;
}

body.is-dry-run
.saved-case-card--active {
  border-color:
    rgba(204, 160, 255, 0.78);

  border-left-color:
    #d1a4f1;
}
/* Sprint 8: Training Mode header cleanup */

.dry-run-entry-button[hidden] {
  display: none !important;
}

.dry-run-indicator {
  padding: 3px;

  background:
    rgba(111, 65, 154, 0.12);

  border: 1px solid
    rgba(204, 160, 255, 0.24);

  border-radius: 999px;
}

.dry-run-mode-badge {
  min-height: 28px;
  padding-inline: 11px;

  border: 0;
  box-shadow: none;
}

.dry-run-return-button {
  min-height: 28px;
  padding-inline: 11px;

  border-radius: 999px;

  font-size: 0.69rem;
}
/* Sprint 8: Training Scenario Library */

.training-scenarios-button {
  min-height: 28px;
  padding-inline: 11px;

  background:
    rgba(215, 168, 75, 0.12);

  border: 1px solid
    rgba(215, 168, 75, 0.38);

  border-radius: 999px;

  color: #f4d99a;
  font-size: 0.69rem;
  white-space: nowrap;
}

.training-scenarios-button:hover {
  background:
    rgba(215, 168, 75, 0.2);

  border-color:
    rgba(215, 168, 75, 0.72);

  color: #ffffff;
}

.training-scenario-intro {
  display: grid;
  gap: 6px;

  margin-bottom: var(--space-4);
  padding: var(--space-3);

  background:
    rgba(161, 98, 255, 0.07);

  border: 1px solid
    rgba(204, 160, 255, 0.2);

  border-radius:
    var(--radius-medium);
}

.training-scenario-intro p {
  margin: 0;
}

.training-scenario-list {
  display: grid;
  gap: var(--space-3);
}

.training-scenario-card {
  display: flex;
  align-items: center;
  justify-content:
    space-between;
  gap: var(--space-4);

  padding: var(--space-4);

  background:
    rgba(255, 255, 255, 0.025);

  border: 1px solid
    var(--color-border);

  border-left: 3px solid
    #b77be2;

  border-radius:
    var(--radius-medium);
}

.training-scenario-card__content {
  min-width: 0;
}

.training-scenario-card__eyebrow {
  margin: 0 0 5px;

  color: #d1a4f1;

  font-size: 0.62rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.training-scenario-card h3 {
  margin: 0 0 6px;

  color: var(--color-text);
  font-size: 0.98rem;
}

.training-scenario-card p {
  margin: 0;

  color:
    var(--color-text-secondary);
}

.training-scenario-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;

  margin-top: 10px;
}

.training-scenario-card__meta span {
  padding: 4px 7px;

  background:
    rgba(255, 255, 255, 0.035);

  border: 1px solid
    var(--color-border);

  border-radius: 999px;

  color:
    var(--color-text-muted);

  font-size: 0.64rem;
  font-weight: 700;
}

@media
  (max-width: 720px) {
  .training-scenario-card {
    align-items: stretch;
    flex-direction: column;
  }

  .training-scenario-card
  > .button {
    width: 100%;
  }
}
/* Sprint 8: Restart Training Scenario */

.training-reset-button {
  min-height: 28px;
  padding-inline: 11px;

  background:
    rgba(255, 255, 255, 0.035);

  border: 1px solid
    rgba(204, 160, 255, 0.32);

  border-radius: 999px;

  color: #d9c9e8;
  font-size: 0.69rem;
  white-space: nowrap;
}

.training-reset-button:hover:not(:disabled) {
  background:
    rgba(161, 98, 255, 0.16);

  border-color:
    rgba(204, 160, 255, 0.68);

  color: #ffffff;
}

.training-reset-button:disabled {
  cursor: not-allowed;
  opacity: 0.42;
}
/* Sprint 8: Training header refinement */

.dry-run-indicator {
  gap: 6px;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
}

.dry-run-mode-badge,
.training-scenarios-button,
.training-reset-button,
.dry-run-return-button {
  min-height: 30px;
}

.dry-run-mode-badge {
  padding-inline: 12px;
}

.training-scenarios-button,
.training-reset-button,
.dry-run-return-button {
  padding-inline: 10px;
  border-radius: 6px;
}

.training-reset-button:disabled {
  background:
    rgba(255, 255, 255, 0.018);

  border-color:
    rgba(255, 255, 255, 0.1);

  color:
    var(--color-text-muted);

  opacity: 0.48;
}
/* Sprint 8: Duplicate Training Case */

.training-duplicate-button {
  min-height: 30px;
  padding-inline: 10px;

  background:
    rgba(74, 142, 178, 0.1);

  border: 1px solid
    rgba(94, 175, 216, 0.35);

  border-radius: 6px;

  color: #b9dff2;
  font-size: 0.69rem;
  white-space: nowrap;
}

.training-duplicate-button:hover:not(:disabled) {
  background:
    rgba(74, 142, 178, 0.2);

  border-color:
    rgba(113, 199, 241, 0.7);

  color: #ffffff;
}

.training-duplicate-button:disabled {
  cursor: not-allowed;

  background:
    rgba(255, 255, 255, 0.018);

  border-color:
    rgba(255, 255, 255, 0.1);

  color:
    var(--color-text-muted);

  opacity: 0.48;
}
/* Sprint 8: Dedicated Training Toolbar */

.training-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  min-height: 0;
  padding: 0 var(--space-4);

  background:
    rgba(10, 15, 23, 0.98);

  border-bottom: 0 solid transparent;

  transition:
    min-height 160ms ease,
    padding 160ms ease,
    border-color 160ms ease;
}

.training-toolbar:has(
  .dry-run-entry-button:not([hidden])
) {
  min-height: 0;
  padding-block: 0;
}

.training-toolbar
.dry-run-entry-button {
  display: none;
}

body:not(.is-dry-run)
.training-toolbar {
  position: absolute;
  top: 14px;
  right: 185px;

  z-index: 5;

  width: auto;
  min-height: 0;
  padding: 0;

  background: transparent;
  border: 0;
}

body:not(.is-dry-run)
.training-toolbar
.dry-run-entry-button {
  display: inline-flex;
}

body.is-dry-run
.training-toolbar {
  min-height: 42px;
  padding-block: 5px;

  background:
    linear-gradient(
      90deg,
      rgba(105, 57, 145, 0.18),
      rgba(14, 18, 28, 0.98) 35%,
      rgba(14, 18, 28, 0.98) 70%,
      rgba(165, 119, 35, 0.12)
    );

  border-bottom-width: 1px;
  border-bottom-color:
    rgba(195, 144, 235, 0.32);
}

.dry-run-indicator {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);

  width: 100%;
  padding: 0;

  background: transparent;
  border: 0;
}

.dry-run-indicator[hidden] {
  display: none !important;
}

.training-toolbar__actions {
  display: flex;
  align-items: center;
  gap: 7px;
}

.dry-run-mode-badge {
  min-height: 29px;
  padding-inline: 12px;
}

.training-toolbar
.training-scenarios-button,
.training-toolbar
.training-reset-button,
.training-toolbar
.training-duplicate-button,
.training-toolbar
.dry-run-return-button {
  min-height: 29px;
  padding-inline: 11px;

  border-radius: 6px;
}

@media (max-width: 1050px) {
  body:not(.is-dry-run)
  .training-toolbar {
    right: 150px;
  }

  body.is-dry-run
  .dry-run-indicator {
    align-items: stretch;
    flex-direction: column;
    gap: 6px;

    padding-block: 4px;
  }

  body.is-dry-run
  .training-toolbar__actions {
    flex-wrap: wrap;
  }
}
/* Sprint 8: Training toolbar grid track */

body.is-dry-run .app-shell {
  grid-template-rows:
    var(--header-height)
    auto
    var(--navigation-height)
    minmax(0, 1fr)
    var(--footer-height);
}
/* Sprint 8: Normal-mode Training entry placement */

body:not(.is-dry-run)
.training-toolbar {
  position: absolute;
  top: var(--header-height);
  right: var(--space-4);
  z-index: 10;

  display: flex;
  align-items: center;

  width: auto;
  height: var(--navigation-height);
  min-height: 0;
  padding: 0;

  background: transparent;
  border: 0;

  pointer-events: none;
}

body:not(.is-dry-run)
.training-toolbar
.dry-run-entry-button {
  display: inline-flex;

  min-height: 30px;
  padding-inline: 12px;

  pointer-events: auto;
}
/* Sprint 8: Compact workspace navigation actions */

/*
 * Keep absolutely positioned header controls anchored
 * to the application shell—not the browser window.
 */

.app-shell {
  position: relative;
}

/*
 * Remove the redundant page title from the visible layout
 * while preserving the existing action buttons and handlers.
 */

#view-workspace > .view-heading {
  position: absolute;
  top: var(--header-height);
  right: calc(var(--space-4) + 118px);
  z-index: 30;

  display: flex;
  align-items: center;

  width: auto;
  height: var(--navigation-height);
  min-height: var(--navigation-height);
  margin: 0;

  pointer-events: none;
}

#view-workspace
> .view-heading
> div:first-child {
  display: none;
}

/*
 * Resume and New Cell Call now occupy the right side
 * of the navigation row.
 */

#view-workspace
> .view-heading
.view-actions {
  display: flex;
  align-items: center;
  gap: 8px;

  pointer-events: auto;
}

#view-workspace
> .view-heading
.view-actions
.button {
  min-height: 30px;
  padding-inline: 12px;

  font-size: 0.68rem;
}

/*
 * Start Training occupies the final position in the
 * normal navigation row.
 */

body:not(.is-dry-run)
.training-toolbar {
  top: var(--header-height);
  right: var(--space-4);

  width: auto;
  height: var(--navigation-height);
}

/*
 * Training Mode has its own ribbon, so the workspace
 * actions align to the right edge of the navigation row.
 */

body.is-dry-run
#view-workspace
> .view-heading {
  top:
    calc(
      var(--header-height) +
      42px
    );

  right: var(--space-4);
}

/*
 * With the redundant heading removed from normal flow,
 * allow the workspace grid to consume the recovered space.
 */

#view-workspace
> .workspace-grid {
  flex: 1 1 auto;
  min-height: 0;
}
/* Sprint 8: Purple Start Training button */

body:not(.is-dry-run)
.dry-run-entry-button {
  background:
    linear-gradient(
      135deg,
      rgba(161, 98, 255, 0.24),
      rgba(111, 65, 154, 0.22)
    );

  border-color:
    rgba(204, 160, 255, 0.66);

  color: #f0d9ff;

  box-shadow:
    inset 0 0 12px
      rgba(161, 98, 255, 0.08),
    0 0 12px
      rgba(161, 98, 255, 0.1);
}

body:not(.is-dry-run)
.dry-run-entry-button:hover {
  background:
    linear-gradient(
      135deg,
      rgba(161, 98, 255, 0.38),
      rgba(111, 65, 154, 0.3)
    );

  border-color:
    rgba(215, 181, 255, 0.9);

  color: #ffffff;

  box-shadow:
    inset 0 0 14px
      rgba(161, 98, 255, 0.12),
    0 0 16px
      rgba(161, 98, 255, 0.2);
}
/* Sprint 8: Delete Training Case control */

.training-delete-button {
  min-height: 29px;
  padding-inline: 11px;

  background:
    rgba(229, 91, 91, 0.08);

  border-color:
    rgba(229, 91, 91, 0.42);

  color:
    #ff9b9b;
}

.training-delete-button:not(:disabled):hover {
  background:
    rgba(229, 91, 91, 0.17);

  border-color:
    rgba(229, 91, 91, 0.72);

  color:
    #ffd0d0;
}

.training-delete-button:disabled {
  cursor: not-allowed;
  opacity: 0.38;
}
/* Sprint 8: Clear all Training Cases control */

.training-clear-button {
  min-height: 29px;
  padding-inline: 11px;

  background:
    rgba(229, 91, 91, 0.12);

  border-color:
    rgba(229, 91, 91, 0.58);

  color:
    #ffc0c0;
}

.training-clear-button:not(:disabled):hover {
  background:
    rgba(229, 91, 91, 0.24);

  border-color:
    rgba(255, 130, 130, 0.9);

  color:
    #ffffff;

  box-shadow:
    0 0 14px
      rgba(229, 91, 91, 0.16);
}

.training-clear-button:disabled {
  cursor: not-allowed;
  opacity: 0.35;
}
/* Sprint 9: Responsive training controls and timer actions */

body:not(.is-dry-run) .training-toolbar {
  display: none !important;
  position: static;
  width: auto;
  height: auto;
  padding: 0;
}

body.is-dry-run .training-toolbar {
  position: static;
  display: flex;
  width: auto;
  min-height: 42px;
  padding: 5px var(--space-4);
}

body.is-dry-run .dry-run-indicator {
  align-items: center;
  flex-direction: row;
  gap: 10px;
}

body.is-dry-run .training-toolbar__actions {
  flex-wrap: nowrap;
  min-width: 0;
}

.training-toolbar .button {
  min-height: 29px;
  padding-inline: 9px;
  white-space: nowrap;
  font-size: 0.64rem;
}

#view-workspace > .view-heading {
  display: none !important;
  position: static;
  width: auto;
  height: auto;
  min-height: 0;
  margin: 0;
}

.timer-action-icon {
  display: none;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1;
}

.timer-action-label {
  display: inline;
}

@media (min-width: 901px) and (max-width: 1100px) {
  .workflow-timer-card {
    padding: 8px 6px;
  }

  .workflow-timer-top {
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    text-align: center;
  }

  .workflow-timer-copy strong {
    font-size: 0.56rem;
  }

  .workflow-timer-actions {
    grid-template-columns: repeat(2, minmax(28px, 1fr));
    gap: 4px;
  }

  .workflow-timer-actions .button {
    min-width: 0;
    min-height: 28px;
    padding: 4px;
  }

  .timer-action-button .timer-action-icon,
  .discussion-pause-button .timer-action-icon,
  .discussion-reset-button .timer-action-icon {
    display: inline;
  }

  .timer-action-button .timer-action-label,
  .discussion-pause-button .timer-action-label,
  .discussion-reset-button .timer-action-label {
    display: none;
  }
}

@media (max-width: 1050px) {
  body.is-dry-run .dry-run-indicator {
    align-items: center;
    flex-direction: row;
    gap: 8px;
    padding-block: 0;
  }

  body.is-dry-run .training-toolbar__actions {
    flex-wrap: nowrap;
    gap: 5px;
  }

  .training-toolbar .button,
  .dry-run-mode-badge {
    min-height: 28px;
    padding-inline: 8px;
    font-size: 0.61rem;
  }
}

@media (max-width: 900px) {
  body.is-dry-run .training-toolbar {
    padding: 5px 10px;
  }

  body.is-dry-run .dry-run-indicator {
    align-items: stretch;
    flex-direction: column;
    gap: 5px;
  }

  body.is-dry-run .dry-run-mode-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
  }

  body.is-dry-run .training-toolbar__actions {
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
    scrollbar-width: thin;
  }

  .workflow-timer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .discussion-control-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .workflow-timer-grid {
    grid-template-columns: 1fr;
  }

  .discussion-control-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Sprint 9: Narrow landscape timer readability */

@media (min-width: 901px) and (max-width: 1100px) {
  .discussion-time-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "heading"
      "time";
    justify-items: center;
    gap: 4px;

    padding: 8px 6px;
    text-align: center;
  }

  .discussion-time-heading {
    justify-content: center;
    max-width: 100%;
    font-size: 0.58rem;
  }

  .discussion-time-card > strong {
    max-width: 100%;
    font-size: 1.22rem;
    line-height: 1;
  }

  .discussion-balance {
    gap: 6px;
  }

  .discussion-balance > small {
    font-size: 0.5rem;
  }
}

/* Sprint 9: Final tablet track and low-height workspace fixes */

@media (max-width: 900px) {
  /*
   * components.css loads after layout.css. Reassert the responsive shell
   * tracks here so the two-row navigation receives its full natural height
   * instead of overflowing the original 52px Sprint 8 navigation track.
   */
  body:not(.is-dry-run) .app-shell {
    grid-template-rows:
      var(--header-height)
      auto
      minmax(0, 1fr)
      var(--footer-height);
  }

  body.is-dry-run .app-shell {
    grid-template-rows:
      var(--header-height)
      auto
      auto
      minmax(0, 1fr)
      var(--footer-height);
  }

  .primary-navigation {
    height: auto;
    min-height: 86px;
  }
}

@media (min-width: 901px) and (max-height: 820px) {
  /*
   * A short landscape viewport cannot display two expanded information
   * panels plus Charges at once. Let the left workspace column scroll rather
   * than shrinking and clipping the expanded Overview/Personnel content.
   */
  .workspace-main-column {
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    padding-right: 2px;
  }

  .workspace-main-column > .panel {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
  }

  .workspace-main-column > #charges-panel {
    min-height: 300px;
  }

  .workspace-main-column .panel-body,
  .workspace-main-column .empty-state.has-active-case,
  #participants-panel-body {
    overflow: visible;
  }
}
/* Sprint 10: Penal Code browser search foundation */

.penal-code-search-field {
  width: min(620px, 100%);
  margin-top: var(--space-6);
  text-align: left;
}

.penal-code-search-status {
  margin-top: var(--space-3) !important;
  color: var(--color-text-secondary) !important;
  font-family: var(--font-mono);
  font-size: 0.72rem !important;
  font-weight: 650;
}
/* Sprint 10: Penal Code browser results */

.penal-code-results {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);

  width: min(940px, 100%);
  max-height: 430px;
  margin-top: var(--space-4);
  padding: 4px;
  overflow-y: auto;

  text-align: left;
}

.penal-code-result {
  display: grid;
  grid-template-columns:
    auto
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);

  width: 100%;
  min-width: 0;
  padding: var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border-light);
  border-left-width: 4px;
  border-radius: var(--radius-medium);
}

.penal-code-result.is-yellow {
  background: rgba(231, 198, 78, 0.07);
  border-left-color: #e7c64e;
}

.penal-code-result.is-orange {
  background: rgba(245, 158, 66, 0.08);
  border-left-color: #f59e42;
}

.penal-code-result.is-red {
  background: rgba(228, 91, 91, 0.08);
  border-left-color: #e45b5b;
}

.penal-code-result.is-neutral {
  border-left-color: var(--color-border);
}

.penal-code-result-code {
  padding: 4px 8px;

  background: var(--color-primary-muted);
  border-radius: var(--radius-pill);

  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 800;
  white-space: nowrap;
}

.penal-code-result.is-yellow
  .penal-code-result-code {
  background: rgba(231, 198, 78, 0.14);
  color: #f2d86f;
}

.penal-code-result.is-orange
  .penal-code-result-code {
  background: rgba(245, 158, 66, 0.15);
  color: #ffb866;
}

.penal-code-result.is-red
  .penal-code-result-code {
  background: rgba(228, 91, 91, 0.15);
  color: #ff8585;
}

.penal-code-result-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.penal-code-result-copy strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.76rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.penal-code-result-copy span {
  overflow: hidden;

  color: var(--color-text-muted);
  font-size: 0.62rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.penal-code-result-penalty {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;

  color: var(--color-text-secondary);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 700;
  white-space: nowrap;
}

.penal-code-results-empty {
  padding: var(--space-6);

  background: var(--color-surface-raised);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-medium);

  color: var(--color-text-muted);
  font-size: 0.72rem;
  text-align: center;
}

@media (max-width: 700px) {
  .penal-code-result {
    grid-template-columns:
      auto
      minmax(0, 1fr);
  }

  .penal-code-result-penalty {
    grid-column: 1 / -1;

    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
  }
}
/* Sprint 10: Penal Code two-pane browser */

.penal-code-view-heading {
  margin-bottom: var(--space-4);
}

.penal-code-publication-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);

  width: 100%;
  margin-bottom: var(--space-4);
  padding: var(--space-4) var(--space-5);

  background:
    linear-gradient(
      135deg,
      rgba(214, 173, 75, 0.08),
      transparent 42%
    ),
    var(--color-surface-raised);

  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-large);
}

.penal-code-publication-copy {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  min-width: 0;
}

.penal-code-publication-version {
  flex: 0 0 auto;

  padding: 8px 10px;

  background: rgba(214, 173, 75, 0.12);
  border: 1px solid rgba(214, 173, 75, 0.3);
  border-radius: var(--radius-medium);

  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.penal-code-publication-copy h3 {
  margin: 0;

  color: var(--color-text);
  font-size: 0.94rem;
}

.penal-code-publication-copy p {
  margin: 4px 0 0;

  color: var(--color-text-muted);
  font-size: 0.68rem;
}

.penal-code-publication-health {
  display: flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;

  color: var(--color-text-secondary);
  font-size: 0.65rem;
  font-weight: 700;
  white-space: nowrap;
}

.penal-code-browser-grid {
  display: grid;
  grid-template-columns:
    minmax(520px, 1.25fr)
    minmax(350px, 0.75fr);
  gap: var(--space-4);

  width: 100%;
  min-width: 0;
}

.penal-code-browser-panel {
  min-width: 0;
  overflow: hidden;

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-large);
}

.penal-code-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  min-height: 68px;
  padding: var(--space-4) var(--space-5);

  background: rgba(255, 255, 255, 0.015);
  border-bottom: 1px solid var(--color-border-light);
}

.penal-code-panel-header h3 {
  margin: 2px 0 0;

  color: var(--color-text);
  font-size: 0.9rem;
}

.penal-code-search-area {
  padding:
    var(--space-4)
    var(--space-5)
    var(--space-3);
}

.penal-code-search-field {
  width: 100%;
  margin-top: 0;
}

.penal-code-search-status {
  margin: var(--space-3) 0 0 !important;
}

.penal-code-results {
  width: 100%;
  max-height: clamp(
    390px,
    calc(100vh - 455px),
    620px
  );
  margin-top: 0;
  padding:
    0
    var(--space-5)
    var(--space-5);
}

.penal-code-detail-panel {
  display: flex;
  flex-direction: column;
  min-height: 520px;
}

.penal-code-detail-empty {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);

  min-height: 400px;
  padding: var(--space-8);

  color: var(--color-text-muted);
  text-align: center;
}

.penal-code-detail-empty-icon {
  display: grid;
  place-items: center;

  width: 58px;
  height: 58px;

  background: rgba(214, 173, 75, 0.08);
  border: 1px solid rgba(214, 173, 75, 0.3);
  border-radius: 50%;

  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 900;
}

.penal-code-detail-empty strong {
  color: var(--color-text);
  font-size: 0.86rem;
}

.penal-code-detail-empty p {
  max-width: 340px;
  margin: 0;

  font-size: 0.69rem;
  line-height: 1.55;
}

@media (max-width: 1100px) {
  .penal-code-browser-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .penal-code-detail-panel {
    min-height: 360px;
  }

  .penal-code-detail-empty {
    min-height: 280px;
  }

  .penal-code-results {
    max-height: 470px;
  }
}

@media (max-width: 700px) {
  .penal-code-publication-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .penal-code-publication-copy {
    align-items: flex-start;
    flex-direction: column;
  }

  .penal-code-panel-header,
  .penal-code-search-area {
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }

  .penal-code-results {
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }
}
/* Sprint 10: Penal Code offense selection and details */

.penal-code-result {
  appearance: none;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.penal-code-result:hover {
  border-color: var(--color-border);
  transform: translateY(-1px);
}

.penal-code-result:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.penal-code-result.is-selected {
  border-color: var(--color-primary);
  box-shadow:
    0 0 0 1px
    rgba(214, 173, 75, 0.28);
}

.penal-code-detail-content {
  flex: 1;
  min-height: 0;
  padding: var(--space-5);
  overflow-y: auto;
}

.penal-code-detail-content.is-yellow {
  border-top: 3px solid #e7c64e;
}

.penal-code-detail-content.is-orange {
  border-top: 3px solid #f59e42;
}

.penal-code-detail-content.is-red {
  border-top: 3px solid #e45b5b;
}

.penal-code-detail-content.is-neutral {
  border-top: 3px solid
    var(--color-border);
}

.penal-code-detail-title {
  margin-bottom: var(--space-4);
}

.penal-code-detail-code {
  display: inline-flex;
  padding: 5px 8px;

  background: rgba(214, 173, 75, 0.1);
  border: 1px solid
    rgba(214, 173, 75, 0.25);
  border-radius: var(--radius-pill);

  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.64rem;
  font-weight: 850;
}

.penal-code-detail-title h4 {
  margin:
    var(--space-3)
    0
    4px;

  color: var(--color-text);
  font-size: 1.12rem;
  line-height: 1.25;
}

.penal-code-detail-title p {
  margin: 0;

  color: var(--color-text-muted);
  font-size: 0.68rem;
}

.penal-code-detail-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);

  margin-bottom: var(--space-4);
}

.penal-code-detail-badges span {
  display: inline-flex;
  padding: 5px 8px;

  background: var(--color-surface);
  border: 1px solid
    var(--color-border-light);
  border-radius: var(--radius-pill);

  color: var(--color-text-secondary);
  font-size: 0.62rem;
  font-weight: 750;
}

.penal-code-detail-badges
  span.is-yellow {
  background:
    rgba(231, 198, 78, 0.1);
  color: #f2d86f;
}

.penal-code-detail-badges
  span.is-orange {
  background:
    rgba(245, 158, 66, 0.11);
  color: #ffb866;
}

.penal-code-detail-badges
  span.is-red {
  background:
    rgba(228, 91, 91, 0.11);
  color: #ff8585;
}

.penal-code-penalty-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: var(--space-3);

  margin-bottom: var(--space-5);
}

.penal-code-penalty-grid > div {
  display: flex;
  flex-direction: column;
  gap: 5px;

  padding: var(--space-3);

  background: var(--color-surface);
  border: 1px solid
    var(--color-border-light);
  border-radius: var(--radius-medium);
}

.penal-code-penalty-grid span {
  color: var(--color-text-muted);
  font-size: 0.61rem;
  font-weight: 750;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.penal-code-penalty-grid strong {
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 0.86rem;
}

.penal-code-detail-section {
  margin-top: var(--space-5);
}

.penal-code-detail-section h4 {
  margin:
    0
    0
    var(--space-2);

  color: var(--color-text-secondary);
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.penal-code-detail-section > p {
  margin: 0;

  color: var(--color-text-secondary);
  font-size: 0.72rem;
  line-height: 1.65;
}

.penal-code-notices {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.penal-code-notice {
  display: flex;
  flex-direction: column;
  gap: 4px;

  padding: var(--space-3);

  background: var(--color-surface);
  border: 1px solid
    var(--color-border-light);
  border-left: 3px solid
    var(--color-primary);
  border-radius: var(--radius-medium);
}

.penal-code-notice.is-warning {
  border-left-color: #f59e42;
}

.penal-code-notice.is-danger {
  border-left-color: #e45b5b;
}

.penal-code-notice strong {
  color: var(--color-text);
  font-size: 0.66rem;
}

.penal-code-notice span {
  color: var(--color-text-muted);
  font-size: 0.67rem;
  line-height: 1.5;
}

.penal-code-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.penal-code-keywords span {
  padding: 5px 8px;

  background: var(--color-surface);
  border: 1px solid
    var(--color-border-light);
  border-radius: var(--radius-pill);

  color: var(--color-text-muted);
  font-size: 0.6rem;
}

.penal-code-detail-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-2);

  margin-top: var(--space-6);
  padding-top: var(--space-3);

  border-top: 1px solid
    var(--color-border-light);

  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: 0.58rem;
}

@media (max-width: 500px) {
  .penal-code-penalty-grid {
    grid-template-columns:
      minmax(0, 1fr);
  }
}
/* Sprint 10: Penal Code browser filters */

.penal-code-filter-row {
  display: grid;
  grid-template-columns:
    minmax(0, 1.3fr)
    minmax(0, 0.8fr)
    auto;
  align-items: end;
  gap: var(--space-3);

  margin-top: var(--space-3);
}

.penal-code-filter-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.penal-code-filter-field > span {
  color: var(--color-text-secondary);
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.penal-code-filter-field select {
  width: 100%;
  min-width: 0;
}

.penal-code-clear-filters {
  min-height: 36px;
  padding: 0 var(--space-3);

  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);

  color: var(--color-text-secondary);
  font-size: 0.65rem;
  font-weight: 750;
  white-space: nowrap;

  cursor: pointer;
}

.penal-code-clear-filters:hover:not(:disabled) {
  background: var(--color-surface-hover);
  border-color: var(--color-primary);
  color: var(--color-text);
}

.penal-code-clear-filters:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.penal-code-clear-filters:disabled {
  cursor: default;
  opacity: 0.45;
}

@media (max-width: 700px) {
  .penal-code-filter-row {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .penal-code-clear-filters {
    grid-column: 1 / -1;
  }
}

@media (max-width: 480px) {
  .penal-code-filter-row {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .penal-code-clear-filters {
    grid-column: auto;
  }
}
/* Sprint 10: Penal Code copy actions */

.penal-code-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);

  margin-bottom: var(--space-4);
}

.penal-code-copy-button {
  flex: 1 1 150px;
  min-height: 34px;
  padding-inline: var(--space-3);

  font-size: 0.65rem;
}

.penal-code-copy-button:disabled {
  cursor: default;
  opacity: 0.75;
  transform: none;
}

@media (max-width: 480px) {
  .penal-code-copy-button {
    flex-basis: 100%;
  }
}
/* Sprint 10: Add Penal Code offense to active Cell Call */

.penal-code-active-case-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);

  margin-bottom: var(--space-4);
  padding: var(--space-3);

  background:
    rgba(214, 173, 75, 0.055);
  border: 1px solid
    rgba(214, 173, 75, 0.2);
  border-radius: var(--radius-medium);
}

.penal-code-active-case-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.penal-code-active-case-copy > span {
  color: var(--color-primary);
  font-size: 0.58rem;
  font-weight: 850;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}

.penal-code-active-case-copy strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.penal-code-active-case-copy p {
  margin: 0;

  color: var(--color-text-muted);
  font-size: 0.62rem;
  line-height: 1.45;
}

.penal-code-active-case-action
  > button {
  flex: 0 0 auto;
  min-height: 35px;
  white-space: nowrap;
}

.penal-code-active-case-action
  > button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

@media (max-width: 560px) {
  .penal-code-active-case-action {
    align-items: stretch;
    flex-direction: column;
  }

  .penal-code-active-case-action
    > button {
    width: 100%;
  }
}
/* Sprint 10: Penal Code publication metadata */

.penal-code-publication-meta {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(105px, auto));
  gap: var(--space-3);
  flex: 0 0 auto;
}

.penal-code-publication-meta > div {
  display: flex;
  flex-direction: column;
  gap: 4px;

  min-width: 0;
  padding-left: var(--space-3);

  border-left: 1px solid
    var(--color-border-light);
}

.penal-code-publication-meta
  > div
  > span {
  color: var(--color-text-muted);
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.penal-code-publication-meta
  > div
  > strong {
  overflow: hidden;

  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 0.65rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.penal-code-publication-health
  > strong {
  display: flex;
  align-items: center;
  gap: 6px;
}

.penal-code-publication-health
  .status-dot.is-warning {
  background: #f59e42;
  box-shadow:
    0 0 0 3px
    rgba(245, 158, 66, 0.12);
}

.penal-code-publication-health
  .status-dot.is-error {
  background: #e45b5b;
  box-shadow:
    0 0 0 3px
    rgba(228, 91, 91, 0.12);
}

@media (max-width: 1250px) {
  .penal-code-publication-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .penal-code-publication-meta {
    width: 100%;
    grid-template-columns:
      repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .penal-code-publication-meta {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .penal-code-publication-meta
    > div:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }
}

@media (max-width: 420px) {
  .penal-code-publication-meta {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .penal-code-publication-meta
    > div {
    padding-left: 0;
    padding-bottom: var(--space-2);

    border-left: 0;
    border-bottom: 1px solid
      var(--color-border-light);
  }
}
/* Sprint 10: Unified Speedy Trial workspace */

#view-speedy-trial.is-active {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 2px;
  scrollbar-gutter: stable;
}

.speedy-trial-view-heading {
  gap: var(--space-4);
  margin-bottom: var(--space-3);
}

.speedy-trial-heading-title {
  flex: 0 0 auto;
  min-width: max-content;
}

.speedy-trial-foundation-panel {
  display: flex;
  flex: 1 1 520px;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);

  min-width: 0;
  max-width: 760px;
  padding: 8px 12px;

  background:
    linear-gradient(
      90deg,
      rgba(214, 173, 75, 0.07),
      rgba(17, 24, 35, 0.94)
    );

  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);

  text-align: left;
}

.speedy-trial-foundation-panel[hidden] {
  display: none !important;
}

.speedy-trial-foundation-panel
  .placeholder-number {
  flex: 0 0 auto;

  margin: 0;
  padding-right: var(--space-3);

  border-right: 1px solid
    var(--color-border-light);

  font-size: 0.62rem;
}

.speedy-trial-foundation-copy {
  min-width: 0;
}

.speedy-trial-foundation-copy h3 {
  margin: 0;

  color: var(--color-text);
  font-size: 0.76rem;
  line-height: 1.25;
}

.speedy-trial-foundation-copy p {
  overflow: hidden;

  margin: 2px 0 0;

  color: var(--color-text-muted);
  font-size: 0.59rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-foundation-meta {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;

  margin: 0;

  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: 0.56rem;
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .speedy-trial-view-heading {
    flex-wrap: wrap;
  }

  .speedy-trial-foundation-panel {
    order: 3;
    flex-basis: 100%;

    max-width: none;
  }
}

@media (max-width: 620px) {
  .speedy-trial-foundation-meta {
    display: none;
  }

  .speedy-trial-foundation-copy p {
    white-space: normal;
  }
}

.speedy-trial-active-workspace {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: var(--space-3);

  min-width: 0;
  min-height: 0;
  padding-bottom: var(--space-3);
}

.speedy-trial-active-workspace[hidden] {
  display: none !important;
}

/* Compact hearing and side timers */

.speedy-trial-timer-panel {
  flex: 0 0 auto;
  min-width: 0;
}

.speedy-trial-timer-stack {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.speedy-trial-overall-timer {
  display: grid;
  grid-template-columns:
    minmax(260px, 1fr)
    auto
    auto;
  align-items: center;
  gap: var(--space-4);

  min-width: 0;
  padding: 10px 12px;

  background:
    linear-gradient(
      90deg,
      rgba(214, 173, 75, 0.075),
      rgba(17, 24, 35, 0.98) 36%
    );

  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow-small);
}

.speedy-trial-overall-timer.is-running {
  border-color: rgba(214, 173, 75, 0.52);
  box-shadow:
    var(--shadow-small),
    0 0 0 1px rgba(214, 173, 75, 0.12);
}

.speedy-trial-overall-timer.is-overtime {
  background:
    linear-gradient(
      90deg,
      rgba(228, 91, 91, 0.14),
      rgba(31, 18, 23, 0.98) 42%
    );
  border-color: rgba(228, 91, 91, 0.7);
  border-left-color: #e45b5b;
}

.speedy-trial-timer-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.speedy-trial-timer-copy > span,
.speedy-trial-side-heading > div > span {
  color: var(--color-primary);
  font-size: 0.55rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.speedy-trial-timer-copy strong,
.speedy-trial-side-heading > div > strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-timer-copy p {
  overflow: hidden;
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.6rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-timer-readout {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
}

.speedy-trial-timer-display {
  min-width: 92px;
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 1.7rem;
  line-height: 1;
  text-align: right;
}

.speedy-trial-overall-timer.is-overtime
.speedy-trial-timer-display {
  color: #ff8585;
}

.speedy-trial-timer-actions {
  display: flex;
  gap: var(--space-2);
}

.speedy-trial-timer-actions .button {
  min-width: 70px;
  min-height: 32px;
  padding-inline: 10px;
  font-size: 0.64rem;
}

.speedy-trial-side-timer-row {
  display: grid;
  grid-template-columns:
    minmax(300px, 1.25fr)
    minmax(190px, 0.7fr)
    minmax(190px, 0.7fr);
  gap: var(--space-2);
  min-width: 0;
}

.speedy-trial-speaker-control,
.speedy-trial-side-timer {
  min-width: 0;
  padding: 9px 10px;

  background: rgba(17, 24, 35, 0.94);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
}

.speedy-trial-speaker-control {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.speedy-trial-speaker-control > p {
  overflow: hidden;
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.56rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-side-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.speedy-trial-side-heading > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.speedy-trial-speaker-buttons {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.speedy-trial-speaker-button {
  min-width: 0;
  min-height: 30px;
  padding-inline: 8px;
  font-size: 0.6rem;
}

.speedy-trial-speaker-button.is-active {
  color: var(--color-background);
  background: var(--color-primary);
  border-color: var(--color-primary);
  box-shadow: 0 0 0 1px rgba(214, 173, 75, 0.18);
}

.speedy-trial-side-timer {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-2);
  border-left: 3px solid var(--color-border-light);
}

.speedy-trial-side-timer.is-running {
  background: rgba(214, 173, 75, 0.06);
  border-color: rgba(214, 173, 75, 0.46);
  border-left-color: var(--color-primary);
  box-shadow: 0 0 0 1px rgba(214, 173, 75, 0.1);
}

.speedy-trial-side-timer.is-overtime {
  background: rgba(228, 91, 91, 0.1);
  border-color: rgba(228, 91, 91, 0.66);
  border-left-color: #e45b5b;
}

.speedy-trial-side-readout {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-2);
}

.speedy-trial-side-display {
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 1.48rem;
  line-height: 1;
}

.speedy-trial-side-timer.is-overtime
.speedy-trial-side-display {
  color: #ff8585;
}

.speedy-trial-side-readout .button {
  min-width: 62px;
  min-height: 29px;
  padding-inline: 8px;
  font-size: 0.58rem;
}

/* Shared collapsible panels */

#view-speedy-trial .speedy-trial-panel {
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: var(--space-4);
  overflow: hidden;
}

#view-speedy-trial .speedy-trial-panel > .panel-header {
  align-items: center;
  padding-bottom: var(--space-3);
}

#view-speedy-trial .speedy-trial-panel > .panel-body {
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  padding-top: var(--space-3);
  overflow: visible;
}

#view-speedy-trial .speedy-trial-panel.is-collapsed {
  min-height: 0;
}

#view-speedy-trial
.speedy-trial-panel.is-collapsed
> .panel-header {
  padding-bottom: 0;
  border-bottom: 0;
}

#view-speedy-trial
.speedy-trial-panel.is-collapsed
> .panel-body {
  display: none !important;
}

#view-speedy-trial .speedy-trial-panel.is-complete {
  border-color: rgba(69, 193, 122, 0.42);
  box-shadow:
    var(--shadow-small),
    inset 3px 0 0 rgba(69, 193, 122, 0.72);
}

#view-speedy-trial .panel-header-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

#view-speedy-trial .panel-collapse-button {
  min-width: 72px;
  min-height: 26px;
  padding-inline: 10px;
  white-space: nowrap;
}

/* Matter information */

.speedy-trial-case-grid {
  display: grid;
  grid-template-columns:
    minmax(220px, 1.5fr)
    minmax(150px, 0.9fr)
    minmax(210px, 1.35fr)
    minmax(120px, 0.7fr)
    minmax(150px, 0.9fr);
  gap: var(--space-3);
  align-items: end;
}

.speedy-trial-save-line {
  display: flex;
  align-items: center;
  gap: 7px;

  margin-top: var(--space-3);
  padding-top: var(--space-2);

  border-top: 1px solid var(--color-border-light);

  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: 0.59rem;
}

/* Courtroom opening and oaths */

.speedy-trial-opening-checks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.speedy-trial-check {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  min-width: 0;
  color: var(--color-text-secondary);
  font-size: 0.66rem;
  font-weight: 700;
  cursor: pointer;
}

.speedy-trial-check input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--color-primary);
}

.speedy-trial-oath-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  align-items: stretch;
}

.speedy-trial-oath-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-medium);
}

.speedy-trial-oath-card-header,
.speedy-trial-hearing-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.speedy-trial-oath-card-header > div,
.speedy-trial-hearing-card-header > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.speedy-trial-oath-card-header > div > span {
  color: var(--color-text-muted);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.speedy-trial-oath-card-header strong,
.speedy-trial-hearing-card-header strong {
  color: var(--color-text);
  font-size: 0.78rem;
}

.speedy-trial-oath-card blockquote {
  margin: var(--space-3) 0;
  padding: 9px 10px;

  background: rgba(214, 173, 75, 0.055);
  border-left: 3px solid var(--color-primary);
  border-radius: var(--radius-small);

  color: var(--color-text-secondary);
  font-size: 0.66rem;
  line-height: 1.5;
}

.speedy-trial-oath-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-top: auto;
}

.speedy-trial-oath-actions .button {
  min-height: 32px;
  padding-inline: 10px;
  font-size: 0.62rem;
}

/* Testimony and evidence */

.speedy-trial-hearing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.speedy-trial-hearing-card {
  min-width: 0;
  padding: var(--space-3);

  background: var(--color-surface-raised);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-medium);
}

.speedy-trial-hearing-card-header {
  margin-bottom: var(--space-2);
}

.speedy-trial-hearing-card-header > div > span {
  color: var(--color-primary);
  font-size: 0.54rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.speedy-trial-hearing-notes {
  min-height: 118px;
  resize: vertical;
  line-height: 1.5;
}

/* Responsive Speedy Trial layout */

@media (max-width: 1320px) {
  .speedy-trial-case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .speedy-trial-case-grid .form-field:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  #view-speedy-trial.is-active {
    overflow: visible;
    padding-right: 0;
  }

  .speedy-trial-overall-timer {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .speedy-trial-timer-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }

  .speedy-trial-side-timer-row {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(180px, 0.55fr)
      minmax(180px, 0.55fr);
  }

  .speedy-trial-speaker-control > p {
    white-space: normal;
  }

  .speedy-trial-oath-grid,
  .speedy-trial-hearing-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .speedy-trial-case-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .speedy-trial-case-grid .form-field:last-child {
    grid-column: auto;
  }

  #view-speedy-trial .speedy-trial-panel {
    padding: var(--space-3);
  }

  #view-speedy-trial .speedy-trial-panel > .panel-header {
    align-items: flex-start;
  }
}

@media (max-width: 560px) {
  .speedy-trial-overall-timer {
    grid-template-columns: minmax(0, 1fr);
  }

  .speedy-trial-timer-copy p {
    white-space: normal;
  }

  .speedy-trial-timer-readout {
    justify-content: space-between;
  }

  .speedy-trial-timer-display {
    text-align: left;
  }

  .speedy-trial-timer-actions {
    grid-column: auto;
    justify-content: stretch;
  }

  .speedy-trial-timer-actions .button {
    flex: 1;
  }

  .speedy-trial-side-timer-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .speedy-trial-speaker-control {
    grid-column: auto;
  }

  .speedy-trial-speaker-buttons {
    grid-template-columns: minmax(0, 1fr);
  }

  .speedy-trial-side-heading {
    align-items: center;
  }

  #view-speedy-trial .panel-header-actions {
    width: 100%;
    justify-content: space-between;
  }

  .speedy-trial-oath-card-header,
  .speedy-trial-hearing-card-header {
    flex-direction: column;
  }
}
/* Sprint 10: Compact courtroom script drawer */

.speedy-trial-script-drawer {
  display: grid;
  grid-template-columns:
    minmax(180px, 230px)
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);

  margin-bottom: var(--space-3);
  padding: var(--space-3);

  background:
    rgba(214, 173, 75, 0.045);

  border: 1px solid
    var(--color-border-light);
  border-radius:
    var(--radius-medium);
}

.speedy-trial-script-step {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.speedy-trial-script-back {
  align-self: flex-start;
  margin-bottom: 5px;
}

.speedy-trial-script-step strong {
  color: var(--color-primary);
  font-size: 0.9rem;
}

.speedy-trial-script-text {
  min-width: 0;
  margin: 0;
  padding: 16px 18px;

  color: var(--color-text);
  background:
    var(--color-surface);
  border-left: 3px solid
    var(--color-primary);
  border-radius:
    var(--radius-small);

  font-size: 1rem;
  line-height: 1.65;
}

.speedy-trial-script-drawer
  .button {
  min-width: 92px;
}

@media (max-width: 900px) {
  .speedy-trial-script-drawer {
    grid-template-columns:
      minmax(180px, 230px)
      minmax(0, 1fr);
  }

  .speedy-trial-script-drawer
    .button {
    grid-column: 2;
    justify-self: end;
  }
}

@media (max-width: 620px) {
  .speedy-trial-script-drawer {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .speedy-trial-script-drawer
    .button {
    grid-column: auto;
    justify-self: stretch;
  }
}

/* Sprint 10: Collapsible Speedy Trial timer panel */

.speedy-trial-timer-panel {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow-small);
  overflow: hidden;
}

.speedy-trial-timer-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);

  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-border-light);
}

.speedy-trial-timer-panel-header h3 {
  margin: 0;
  color: var(--color-text);
  font-size: 0.82rem;
}

.speedy-trial-timer-panel-header .panel-kicker {
  margin-bottom: 2px;
}

.speedy-trial-timer-panel .speedy-trial-timer-stack {
  padding: var(--space-3);
}

.speedy-trial-timer-panel.is-collapsed
.speedy-trial-timer-panel-header {
  border-bottom: 0;
}

.speedy-trial-timer-stack[hidden] {
  display: none !important;
}

@media (max-width: 520px) {
  .speedy-trial-timer-panel-header {
    align-items: flex-start;
  }
}
/* Sprint 10: Dense Speedy Trial timer control bar */

#view-speedy-trial
  .speedy-trial-timer-panel-header {
  padding: 7px 12px;
}

#view-speedy-trial
  .speedy-trial-timer-panel-header
  > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 9px;
}

#view-speedy-trial
  .speedy-trial-timer-panel-header
  .panel-kicker {
  margin: 0;
}

#view-speedy-trial
  .speedy-trial-timer-panel
  .speedy-trial-timer-stack {
  gap: 6px;
  padding: 7px;
}

/* Overall timer: one tight horizontal strip */

#view-speedy-trial
  .speedy-trial-overall-timer {
  grid-template-columns:
    minmax(220px, 1fr)
    auto
    auto;

  min-height: 46px;
  gap: 10px;
  padding: 6px 9px;

  border-radius: var(--radius-medium);
}

#view-speedy-trial
  .speedy-trial-timer-copy {
  flex-direction: row;
  align-items: baseline;
  gap: 8px;
}

#view-speedy-trial
  .speedy-trial-timer-copy p {
  display: none;
}

#view-speedy-trial
  .speedy-trial-timer-display {
  min-width: 80px;
  font-size: 1.48rem;
}

#view-speedy-trial
  .speedy-trial-timer-actions
  .button {
  min-width: 62px;
  min-height: 28px;
}

/* Side timer row */

#view-speedy-trial
  .speedy-trial-side-timer-row {
  grid-template-columns:
    minmax(360px, 1.25fr)
    minmax(250px, 0.75fr)
    minmax(250px, 0.75fr);

  gap: 6px;
}

/* Active-speaker controls: everything on one line */

#view-speedy-trial
  .speedy-trial-speaker-control {
  display: grid;
  grid-template-columns:
    minmax(145px, auto)
    minmax(240px, 1fr)
    auto;
  align-items: center;
  gap: 8px;

  padding: 6px 8px;
}

#view-speedy-trial
  .speedy-trial-speaker-control
  > .speedy-trial-side-heading {
  display: contents;
}

#view-speedy-trial
  .speedy-trial-speaker-control
  .speedy-trial-side-heading
  > div {
  grid-column: 1;
  grid-row: 1;
}

#view-speedy-trial
  #speedy-trial-speaker-status {
  grid-column: 3;
  grid-row: 1;
}

#view-speedy-trial
  .speedy-trial-speaker-buttons {
  grid-column: 2;
  grid-row: 1;

  gap: 5px;
}

#view-speedy-trial
  .speedy-trial-speaker-button {
  min-height: 27px;
}

#view-speedy-trial
  .speedy-trial-speaker-control
  > p {
  display: none;
}

/* Officer and accused clocks: one horizontal row each */

#view-speedy-trial
  .speedy-trial-side-timer {
  display: grid;
  grid-template-columns:
    minmax(105px, 1fr)
    auto
    auto
    auto;
  align-items: center;
  justify-content: initial;
  gap: 7px;

  padding: 6px 8px;
}

#view-speedy-trial
  .speedy-trial-side-timer
  > .speedy-trial-side-heading,
#view-speedy-trial
  .speedy-trial-side-timer
  > .speedy-trial-side-readout {
  display: contents;
}

#view-speedy-trial
  .speedy-trial-side-timer
  .speedy-trial-side-heading
  > div {
  grid-column: 1;
  grid-row: 1;
}

#view-speedy-trial
  .speedy-trial-side-timer
  .status-badge {
  grid-column: 3;
  grid-row: 1;
}

#view-speedy-trial
  .speedy-trial-side-display {
  grid-column: 2;
  grid-row: 1;

  font-size: 1.22rem;
}

#view-speedy-trial
  .speedy-trial-side-readout
  .button {
  grid-column: 4;
  grid-row: 1;

  min-width: 52px;
  min-height: 26px;
}

/* Tablet layout */

@media (max-width: 1050px) {
  #view-speedy-trial
    .speedy-trial-side-timer-row {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  #view-speedy-trial
    .speedy-trial-speaker-control {
    grid-column: 1 / -1;
  }
}

/* Narrow layout */

@media (max-width: 620px) {
  #view-speedy-trial
    .speedy-trial-timer-copy {
    flex-direction: column;
    gap: 2px;
  }

  #view-speedy-trial
    .speedy-trial-side-timer-row {
    grid-template-columns:
      minmax(0, 1fr);
  }

  #view-speedy-trial
    .speedy-trial-speaker-control {
    grid-column: auto;
    grid-template-columns:
      minmax(0, 1fr)
      auto;
  }

  #view-speedy-trial
    .speedy-trial-speaker-buttons {
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns:
      repeat(3, minmax(0, 1fr));
  }

  #view-speedy-trial
    #speedy-trial-speaker-status {
    grid-column: 2;
  }
}
/* Sprint 10: Collapsed Speedy Trial matter summary */

#speedy-trial-case-panel
  > .panel-header {
  display: grid;
  grid-template-columns:
    auto
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);
}

#speedy-trial-case-panel
  > .panel-header
  > div:first-child {
  grid-column: 1;
}

#speedy-trial-case-panel
  > .panel-header
  > .panel-header-actions {
  grid-column: 3;
}

.speedy-trial-case-summary {
  display: none;
  grid-column: 2;
  align-items: center;
  gap: 7px;

  min-width: 0;
  overflow: hidden;
}

#speedy-trial-case-panel.is-collapsed
  .speedy-trial-case-summary {
  display: flex;
}

.speedy-trial-case-summary-item {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;

  min-width: 0;
  max-width: 240px;
  padding: 4px 8px;

  background:
    rgba(114, 150, 199, 0.065);

  border: 1px solid
    rgba(114, 150, 199, 0.2);
  border-radius: var(--radius-small);
}

.speedy-trial-case-summary-item
  > span {
  flex: 0 0 auto;

  color: var(--color-text-muted);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.speedy-trial-case-summary-item
  > strong {
  min-width: 0;
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.65rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-case-summary-empty {
  color: var(--color-text-muted);
  font-size: 0.64rem;
  font-style: italic;
}

.speedy-trial-case-summary
  [hidden] {
  display: none !important;
}

@media (max-width: 1100px) {
  #speedy-trial-case-panel
    > .panel-header {
    grid-template-columns:
      minmax(0, 1fr)
      auto;
  }

  #speedy-trial-case-panel
    > .panel-header
    > div:first-child {
    grid-column: 1;
  }

  #speedy-trial-case-panel
    > .panel-header
    > .panel-header-actions {
    grid-column: 2;
  }

  #speedy-trial-case-panel.is-collapsed
    .speedy-trial-case-summary {
    grid-column: 1 / -1;
    grid-row: 2;

    flex-wrap: wrap;
    padding-top: 4px;
  }
}

@media (max-width: 620px) {
  .speedy-trial-case-summary-item {
    flex: 1 1 180px;
    max-width: none;
  }
}
/* Sprint 10: Expanded collapsed matter reference */

#speedy-trial-case-panel.is-collapsed
  .speedy-trial-case-summary {
  width: 100%;
  gap: 10px;
}

#speedy-trial-case-panel.is-collapsed
  .speedy-trial-case-summary-item {
  max-width: none;
  min-height: 32px;
  padding: 6px 10px;

  border-radius: 7px;
}

#speedy-trial-case-panel.is-collapsed
  .speedy-trial-case-summary-item
  > span {
  font-size: 0.58rem;
}

#speedy-trial-case-panel.is-collapsed
  .speedy-trial-case-summary-item
  > strong {
  font-size: 0.72rem;
}

/* Give names the most room */

#speedy-trial-case-summary-defendant-item {
  flex: 1.35 1 230px;
}

#speedy-trial-case-summary-number-item {
  flex: 0.7 1 125px;
}

#speedy-trial-case-summary-officer-item {
  flex: 1.55 1 280px;
}

#speedy-trial-case-summary-department-item {
  flex: 0.8 1 145px;
}

/* Preserve the full row where space permits */

@media (min-width: 1101px) {
  #speedy-trial-case-panel.is-collapsed
    .speedy-trial-case-summary {
    flex-wrap: nowrap;
  }
}

/* Wrap cleanly instead of crushing longer names */

@media (max-width: 1100px) {
  #speedy-trial-case-panel.is-collapsed
    .speedy-trial-case-summary-item {
    min-width: 180px;
  }

  #speedy-trial-case-summary-defendant-item,
  #speedy-trial-case-summary-officer-item {
    flex-basis: 260px;
  }
}

@media (max-width: 700px) {
  #speedy-trial-case-panel.is-collapsed
    .speedy-trial-case-summary-item {
    flex: 1 1 100%;
    max-width: none;
  }
}
/* Sprint 10: Speedy Trial decision preparation */

.speedy-trial-decision-grid {
  display: grid;
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(280px, 1fr)
    );
  gap: var(--space-3);
}

.speedy-trial-decision-notes {
  min-height: 125px;
  resize: vertical;
  line-height: 1.5;
}

#speedy-trial-decision-panel.is-complete {
  border-color:
    rgba(61, 191, 127, 0.48);
  box-shadow:
    inset 3px 0 0
    rgba(61, 191, 127, 0.62);
}

@media (max-width: 620px) {
  .speedy-trial-decision-grid {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .speedy-trial-decision-notes {
    min-height: 110px;
  }
}

/* Sprint 10: Speedy Trial filed charges */

#speedy-trial-charges-panel
  > .panel-header {
  display: grid;
  grid-template-columns:
    auto
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);
}

.speedy-trial-charges-summary {
  display: none;
  min-width: 0;
  overflow: hidden;

  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#speedy-trial-charges-panel.is-collapsed
  .speedy-trial-charges-summary {
  display: block;
}

.speedy-trial-charges-body {
  display: grid;
  gap: var(--space-3);
}

.speedy-trial-charge-picker {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    auto;
  align-items: end;
  gap: var(--space-3);
}

.speedy-trial-charge-search-field {
  margin: 0;
}

.speedy-trial-charge-library-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;

  padding-bottom: 5px;

  color: var(--color-text-muted);
  font-size: 0.55rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  white-space: nowrap;
}

.speedy-trial-charge-library-meta
  strong {
  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0;
  text-transform: none;
}

.speedy-trial-charge-search-results {
  display: grid;
  gap: 5px;

  max-height: 280px;
  padding: 6px;
  overflow-y: auto;

  background: rgba(7, 13, 22, 0.72);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
}

.speedy-trial-charge-search-results[hidden] {
  display: none !important;
}

.speedy-trial-charge-result {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);

  min-width: 0;
  width: 100%;
  padding: 8px 9px;

  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-small);
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, transform 120ms ease;
}

.speedy-trial-charge-result:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-primary);
  transform: translateY(-1px);
}

.speedy-trial-charge-result:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.speedy-trial-charge-result-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.speedy-trial-charge-result-copy
  strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.7rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-charge-result-copy
  span {
  color: var(--color-text-muted);
  font-size: 0.59rem;
}

.speedy-trial-charge-result-action {
  color: var(--color-primary);
  font-size: 0.66rem;
  font-weight: 750;
  white-space: nowrap;
}

.speedy-trial-charge-search-message {
  margin: 0;
  padding: 12px;

  color: var(--color-text-muted);
  font-size: 0.65rem;
  text-align: center;
}

.speedy-trial-filed-charges-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-3);

  padding-top: 2px;
  border-bottom: 1px solid
    var(--color-border-light);
  padding-bottom: 7px;
}

.speedy-trial-filed-charges-heading
  > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.speedy-trial-filed-charges-heading
  span {
  color: var(--color-primary);
  font-size: 0.55rem;
  font-weight: 850;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}

.speedy-trial-filed-charges-heading
  strong {
  color: var(--color-text);
  font-size: 0.76rem;
}

.speedy-trial-filed-charges-heading
  p {
  max-width: 680px;
  margin: 0;

  color: var(--color-text-muted);
  font-size: 0.59rem;
  line-height: 1.4;
  text-align: right;
}

.speedy-trial-filed-charge-list {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.speedy-trial-filed-charge-card {
  display: grid;
  gap: 9px;

  min-width: 0;
  padding: 11px;

  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-left: 4px solid
    rgba(114, 150, 199, 0.48);
  border-radius: var(--radius-medium);
}

.speedy-trial-filed-charge-card.is-yellow {
  background: rgba(231, 198, 78, 0.055);
  border-left-color: #e7c64e;
}

.speedy-trial-filed-charge-card.is-orange {
  background: rgba(245, 158, 66, 0.06);
  border-left-color: #f59e42;
}

.speedy-trial-filed-charge-card.is-red {
  background: rgba(228, 91, 91, 0.06);
  border-left-color: #e45b5b;
}

.speedy-trial-filed-charge-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.speedy-trial-filed-charge-header
  > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.speedy-trial-filed-charge-header
  strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-filed-charge-count {
  color: var(--color-primary);
  font-size: 0.54rem;
  font-weight: 900;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.speedy-trial-filed-charge-classification {
  flex: 0 0 auto;
  padding: 4px 7px;

  color: var(--color-text-muted);
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--color-border);
  border-radius: 999px;

  font-size: 0.55rem;
  font-weight: 850;
  white-space: nowrap;
}

.speedy-trial-filed-charge-meta {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.speedy-trial-filed-charge-meta
  > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  padding: 6px 7px;

  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-small);
}

.speedy-trial-filed-charge-meta
  small {
  color: var(--color-text-muted);
  font-size: 0.49rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.speedy-trial-filed-charge-meta
  strong {
  overflow: hidden;

  color: var(--color-text);
  font-size: 0.62rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.speedy-trial-filed-charge-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.speedy-trial-filed-charge-footer
  p {
  min-width: 0;
  margin: 0;

  color: var(--color-text-muted);
  font-size: 0.56rem;
  line-height: 1.35;
}

.speedy-trial-charge-remove-button {
  flex: 0 0 auto;
  min-width: 70px;
  min-height: 28px;
}

.speedy-trial-filed-charge-empty {
  display: grid;
  place-items: center;
  gap: 5px;

  min-height: 100px;
  padding: var(--space-4);

  color: var(--color-text-muted);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-medium);
  text-align: center;
}

.speedy-trial-filed-charge-empty[hidden] {
  display: none !important;
}

.speedy-trial-filed-charge-empty
  strong {
  color: var(--color-text);
  font-size: 0.74rem;
}

.speedy-trial-filed-charge-empty
  p {
  max-width: 520px;
  margin: 0;
  font-size: 0.62rem;
  line-height: 1.45;
}

@media (max-width: 1050px) {
  #speedy-trial-charges-panel
    > .panel-header {
    grid-template-columns:
      minmax(0, 1fr)
      auto;
  }

  #speedy-trial-charges-panel.is-collapsed
    .speedy-trial-charges-summary {
    grid-column: 1 / -1;
    grid-row: 2;
    display: block;
  }

  .speedy-trial-filed-charge-list {
    grid-template-columns:
      minmax(0, 1fr);
  }
}

@media (max-width: 720px) {
  .speedy-trial-charge-picker {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .speedy-trial-charge-library-meta {
    align-items: flex-start;
    padding-bottom: 0;
  }

  .speedy-trial-filed-charges-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .speedy-trial-filed-charges-heading
    p {
    text-align: left;
  }

  .speedy-trial-filed-charge-meta {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .speedy-trial-charge-result {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .speedy-trial-charge-result-action {
    justify-self: start;
  }

  .speedy-trial-filed-charge-header,
  .speedy-trial-filed-charge-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .speedy-trial-charge-remove-button {
    align-self: stretch;
  }
}

/* Sprint 10: Shared Speedy Trial verdict builder */

.speedy-trial-filed-charge-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
  min-width: 0;
}

.speedy-trial-filed-charge-heading-actions p {
  max-width: 620px;
}

.speedy-trial-filed-charge-heading-actions .button {
  flex: 0 0 auto;
  min-height: 29px;
  white-space: nowrap;
}

.speedy-trial-filed-charge-badges {
  display: flex !important;
  flex: 0 0 auto;
  flex-direction: row !important;
  align-items: center;
  justify-content: flex-end;
  gap: 5px !important;
}

.verdict-builder-view-heading {
  margin-bottom: var(--space-3);
}

.verdict-builder-empty[hidden],
.verdict-builder-workspace[hidden] {
  display: none !important;
}

.verdict-builder-workspace {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.verdict-builder-summary-panel,
.verdict-builder-totals-panel,
.verdict-builder-charge-card {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

.verdict-builder-summary-panel .panel-body,
.verdict-builder-totals-panel .panel-body,
.verdict-builder-charge-card .panel-body {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

.verdict-builder-matter-summary,
.verdict-builder-total-grid,
.verdict-builder-filed-snapshot {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.verdict-builder-matter-summary > span,
.verdict-builder-total-grid > span,
.verdict-builder-filed-snapshot > span {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 8px 9px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-small);
}

.verdict-builder-matter-summary small,
.verdict-builder-total-grid small,
.verdict-builder-filed-snapshot small {
  color: var(--color-text-muted);
  font-size: 0.51rem;
  font-weight: 850;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.verdict-builder-matter-summary strong,
.verdict-builder-total-grid strong,
.verdict-builder-filed-snapshot strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.69rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-total-grid strong {
  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.78rem;
}

.verdict-builder-finalize-check {
  padding: 5px 8px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);
}

.verdict-builder-charge-list {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.verdict-builder-charge-card {
  border-left: 4px solid rgba(214, 173, 75, 0.62);
}

.verdict-builder-charge-header {
  align-items: center;
}

.verdict-builder-charge-header h3 {
  max-width: 760px;
  overflow: hidden;
  font-size: 0.84rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-charge-header-actions {
  flex-wrap: wrap;
}

.verdict-builder-charge-body {
  display: grid;
  grid-template-columns:
    minmax(190px, 0.72fr)
    minmax(0, 1.28fr);
  gap: var(--space-3);
  align-items: start;
}

.verdict-builder-filed-snapshot {
  grid-column: 1 / -1;
}

.verdict-builder-outcome-field {
  grid-column: 1;
  margin: 0;
}

.verdict-builder-reasoning-field {
  grid-column: 2;
  grid-row: 2 / span 2;
  margin: 0;
}

.verdict-builder-reasoning {
  min-height: 122px;
  resize: vertical;
  line-height: 1.5;
}

.verdict-builder-modified-editor {
  grid-column: 1;
  display: grid;
  gap: 7px;
  padding: 9px;
  background: rgba(214, 173, 75, 0.045);
  border: 1px solid rgba(214, 173, 75, 0.25);
  border-radius: var(--radius-medium);
}

.verdict-builder-modified-heading > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.verdict-builder-modified-heading span {
  color: var(--color-primary);
  font-size: 0.53rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.verdict-builder-modified-heading strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-modified-results {
  display: grid;
  gap: 4px;
  max-height: 196px;
  overflow-y: auto;
}

.verdict-builder-modified-result {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  padding: 7px 8px;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-small);
  cursor: pointer;
  text-align: left;
}

.verdict-builder-modified-result:hover,
.verdict-builder-modified-result:focus-visible {
  border-color: rgba(214, 173, 75, 0.55);
  outline: none;
}

.verdict-builder-modified-result strong {
  font-size: 0.64rem;
}

.verdict-builder-modified-result span,
.verdict-builder-result-message {
  color: var(--color-text-muted);
  font-size: 0.56rem;
}

.verdict-builder-result-message {
  margin: 0;
  padding: 7px;
  text-align: center;
}

.verdict-builder-penalty-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns:
    minmax(130px, 0.7fr)
    minmax(150px, 0.8fr)
    minmax(210px, 1.1fr)
    auto;
  align-items: end;
  gap: var(--space-3);
  padding-top: 2px;
}

.verdict-builder-penalty-grid .form-field {
  margin: 0;
}

.verdict-builder-life-check {
  min-height: 34px;
  padding: 7px 9px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-small);
}

.verdict-builder-ruling-footer {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: 7px;
  border-top: 1px solid var(--color-border-light);
}

.verdict-builder-ruling-footer p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.58rem;
  line-height: 1.4;
}

.verdict-builder-ruling-footer .button {
  flex: 0 0 auto;
  min-height: 28px;
}

@media (max-width: 1050px) {
  .speedy-trial-filed-charges-heading {
    align-items: flex-start;
  }

  .speedy-trial-filed-charge-heading-actions {
    flex-direction: column;
    align-items: flex-end;
  }

  .verdict-builder-charge-body {
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-outcome-field,
  .verdict-builder-reasoning-field,
  .verdict-builder-modified-editor {
    grid-column: 1;
    grid-row: auto;
  }

  .verdict-builder-penalty-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .verdict-builder-matter-summary,
  .verdict-builder-total-grid,
  .verdict-builder-filed-snapshot {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .verdict-builder-charge-header {
    align-items: flex-start;
  }

  .verdict-builder-charge-header-actions {
    justify-content: flex-start;
  }

  .speedy-trial-filed-charge-heading-actions {
    align-items: stretch;
  }
}

@media (max-width: 520px) {
  .verdict-builder-matter-summary,
  .verdict-builder-total-grid,
  .verdict-builder-filed-snapshot,
  .verdict-builder-penalty-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-ruling-footer,
  .speedy-trial-filed-charges-heading,
  .speedy-trial-filed-charge-heading-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .verdict-builder-ruling-footer .button,
  .speedy-trial-filed-charge-heading-actions .button {
    width: 100%;
  }
}
/* Sprint 10: Verdict Builder full-height scrolling */

#view-verdict-builder.is-active {
  min-width: 0;
  min-height: 0;

  overflow-x: hidden;
  overflow-y: auto;

  padding-right: 2px;

  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}

#view-verdict-builder.is-active
  > .verdict-builder-workspace,
#view-verdict-builder.is-active
  > .verdict-builder-empty {
  flex: 0 0 auto;
  width: 100%;
}

#view-verdict-builder
  .verdict-builder-charge-list {
  padding-bottom: var(--space-6);
}

/*
 * Private Beta uses a grid row inside the fixed application shell.
 * Keep the Verdict Builder constrained to that row so it scrolls
 * internally instead of growing underneath the footer.
 */
@media (min-width: 821px) {
  html[data-environment="private-beta"]
    .app-workspace
    > #view-verdict-builder.is-active {
    height: 100%;
    max-height: 100%;
  }
}

/* Narrow layouts use normal document scrolling. */

@media (max-width: 820px) {
  #view-verdict-builder.is-active {
    height: auto;
    max-height: none;

    overflow: visible;
    padding-right: 0;

    scrollbar-gutter: auto;
  }
}
/* Sprint 10: Automatic felony firearm-license consequence */

.verdict-builder-firearm-readonly {
  display: flex;
  align-items: center;

  min-height: 38px;

  color: var(--color-text-muted);
  cursor: default;
}

.verdict-builder-firearm-readonly.is-revoked {
  color: #f2c75c;
  background:
    rgba(214, 173, 75, 0.075);

  border-color:
    rgba(214, 173, 75, 0.4);
  box-shadow:
    inset 3px 0 0
    rgba(214, 173, 75, 0.72);
}

/* Sprint 10: Reasoning presets and blanket sentencing */

.verdict-builder-reasoning-field {
  grid-column: 2;
  grid-row: 2 / span 2;
  display: grid;
  gap: 8px;
  min-width: 0;
}

.verdict-builder-reasoning-field
  .form-field {
  margin: 0;
}

.verdict-builder-burden {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-medium);
}
.verdict-builder-charge-body > .verdict-builder-reasoning-field { grid-row: auto; }
.verdict-builder-quick-decision { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; background: rgba(215, 168, 75, .045); border: 1px solid rgba(215, 168, 75, .28); border-radius: var(--radius-medium); }
.verdict-builder-quick-decision > div:first-child { display: flex; flex-direction: column; gap: 2px; }
.verdict-builder-quick-decision > div:first-child span { color: var(--color-primary); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.verdict-builder-quick-decision > div:first-child strong { font-size: .76rem; }
.verdict-builder-quick-actions { display: flex; gap: 7px; }
.verdict-builder-quick-actions button { min-height: 38px; padding: 8px 16px; color: var(--color-text-secondary); background: var(--color-surface); border: 1px solid var(--color-border-light); border-radius: var(--radius-small); font-size: .72rem; font-weight: 800; }
.verdict-builder-quick-actions button.is-selected.is-guilty { color: var(--color-success); border-color: var(--color-success); background: rgba(99, 197, 141, .1); }
.verdict-builder-quick-actions button.is-selected.is-not-guilty { color: var(--color-info); border-color: var(--color-info); background: rgba(111, 167, 223, .1); }
.verdict-builder-quick-actions button.is-selected.is-modified { color: var(--color-warning); border-color: var(--color-warning); background: rgba(227, 173, 82, .1); }
.verdict-builder-burden-details { grid-column: 1 / -1; border: 1px solid var(--color-border); border-radius: var(--radius-medium); }
.verdict-builder-burden-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; color: var(--color-text-secondary); cursor: pointer; }
.verdict-builder-burden-details > summary strong { color: var(--color-text); font-size: .74rem; }
.verdict-builder-burden-details > summary span { font-size: .65rem; }
.verdict-builder-burden-details > summary::after { content: "Expand"; flex: 0 0 auto; padding: 4px 9px; color: var(--color-text-secondary); border: 1px solid var(--color-border-light); border-radius: var(--radius-pill); font-size: .6rem; }
.verdict-builder-burden-details[open] > summary::after { content: "Collapse"; }
.verdict-builder-burden-details > .verdict-builder-burden { border: 0; border-top: 1px solid var(--color-border); border-radius: 0 0 var(--radius-medium) var(--radius-medium); }
.verdict-builder-proof-collapse-row { display: flex; justify-content: flex-end; padding-top: 9px; border-top: 1px solid var(--color-border); }
.verdict-builder-burden.is-met { border-color: rgba(99, 197, 141, 0.55); background: rgba(99, 197, 141, 0.055); }
.verdict-builder-burden.is-not-met { border-color: rgba(226, 109, 115, 0.58); background: rgba(226, 109, 115, 0.055); }
.verdict-builder-burden-header,
.verdict-builder-burden-row,
.verdict-builder-burden-options { display: flex; align-items: center; }
.verdict-builder-burden-header { justify-content: space-between; gap: 12px; }
.verdict-builder-burden-header > div { display: flex; flex-direction: column; gap: 2px; }
.verdict-builder-burden-header > div span { color: var(--color-primary); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.verdict-builder-burden-header > div strong { font-size: .78rem; }
.verdict-builder-burden-row { justify-content: space-between; gap: 12px; padding-top: 8px; border-top: 1px solid var(--color-border); }
.verdict-builder-burden-definition { padding: 10px 12px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.verdict-builder-burden-definition > span { color: var(--color-primary); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.verdict-builder-burden-definition p { margin: 5px 0 0; color: var(--color-text-secondary); font-size: .72rem; line-height: 1.5; }
.verdict-builder-rp-standard { margin: 0; padding: 9px 11px; color: var(--color-text-secondary); background: rgba(111, 167, 223, .06); border-left: 3px solid var(--color-info); border-radius: var(--radius-small); font-size: .68rem; line-height: 1.45; }
.verdict-builder-burden-question { display: flex; flex: 1 1 420px; flex-direction: column; gap: 3px; }
.verdict-builder-burden-question strong { font-size: .74rem; }
.verdict-builder-burden-question span { color: var(--color-text-secondary); font-size: .66rem; line-height: 1.4; }
.verdict-builder-burden-options { gap: 5px; }
.verdict-builder-burden-options button { min-height: 30px; padding: 5px 10px; color: var(--color-text-secondary); background: var(--color-surface); border: 1px solid var(--color-border-light); border-radius: var(--radius-small); font-size: .65rem; }
.verdict-builder-burden-options button.is-selected.is-met { color: var(--color-success); border-color: var(--color-success); background: rgba(99, 197, 141, .1); }
.verdict-builder-burden-options button.is-selected.is-not-met { color: var(--color-danger); border-color: var(--color-danger); background: rgba(226, 109, 115, .1); }
.verdict-builder-burden-options button.is-selected.is-not-disputed { color: var(--color-info); border-color: var(--color-info); background: rgba(111, 167, 223, .1); }
.verdict-builder-burden-options button.is-selected.is-not-applicable { color: var(--color-text-muted); border-color: var(--color-border-strong); background: var(--color-surface-active); }
.verdict-builder-custom-proof,
.verdict-builder-city-mechanics { margin: 0; }
.verdict-builder-city-mechanics textarea { min-height: 72px; resize: vertical; }
.verdict-builder-burden-overall { display: flex; justify-content: flex-end; gap: 7px; padding-top: 9px; border-top: 1px solid var(--color-border); }
.verdict-builder-burden-overall button { min-height: 36px; padding: 7px 13px; color: var(--color-text-secondary); background: var(--color-surface); border: 1px solid var(--color-border-light); border-radius: var(--radius-small); font-size: .7rem; font-weight: 750; }
.verdict-builder-burden-overall button.is-selected.is-met { color: var(--color-success); border-color: var(--color-success); background: rgba(99, 197, 141, .1); }
.verdict-builder-burden-overall button.is-selected.is-not-met { color: var(--color-danger); border-color: var(--color-danger); background: rgba(226, 109, 115, .1); }
.verdict-builder-burden-overall button.is-selected.is-modify { color: var(--color-warning); border-color: var(--color-warning); background: rgba(227, 173, 82, .1); }

@media (max-width: 720px) {
  .verdict-builder-quick-decision { align-items: stretch; flex-direction: column; }
  .verdict-builder-quick-actions { flex-wrap: wrap; }
  .verdict-builder-burden-row { align-items: flex-start; flex-direction: column; }
  .verdict-builder-burden-options { width: 100%; flex-wrap: wrap; }
}

.verdict-builder-count-consequence {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 7px;
  padding-top: 2px;
}

.verdict-builder-count-consequence
  > span {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 8px 9px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-small);
}

.verdict-builder-count-consequence
  small {
  color: var(--color-text-muted);
  font-size: 0.51rem;
  font-weight: 850;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.verdict-builder-count-consequence
  strong {
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.69rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-count-consequence
  > .is-revoked {
  background: rgba(214, 173, 75, 0.075);
  border-color: rgba(214, 173, 75, 0.4);
  box-shadow:
    inset 3px 0 0
    rgba(214, 173, 75, 0.72);
}

.verdict-builder-count-consequence
  > .is-revoked
  strong {
  color: #f2c75c;
}

.verdict-builder-sentencing-panel,
.verdict-builder-sentencing-panel
  .panel-body {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

.verdict-builder-sentencing-body {
  display: grid;
  gap: var(--space-3);
}

.verdict-builder-sentencing-grid {
  display: grid;
  grid-template-columns:
    repeat(6, minmax(0, 1fr));
  gap: 7px;
}

.verdict-builder-sentencing-grid
  > span {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 9px 10px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-small);
}

.verdict-builder-sentencing-grid
  small {
  color: var(--color-text-muted);
  font-size: 0.51rem;
  font-weight: 850;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.verdict-builder-sentencing-grid
  strong {
  overflow: hidden;
  color: var(--color-primary);
  font-family: var(--font-mono);
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-sentencing-controls {
  display: grid;
  grid-template-columns:
    minmax(170px, 0.55fr)
    minmax(360px, 1fr)
    minmax(300px, 1.25fr);
  align-items: end;
  gap: var(--space-3);
}

.verdict-builder-sentencing-controls
  .form-field {
  margin: 0;
}

.verdict-builder-reduction-presets {
  display: grid;
  grid-template-columns:
    repeat(5, minmax(0, 1fr));
  gap: 5px;
}

.verdict-builder-reduction-presets
  .button {
  min-height: 34px;
  padding-inline: 8px;
}

.verdict-builder-reduction-presets
  .button.is-selected {
  color: #15120a;
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.verdict-builder-adjustment-note-field
  textarea {
  min-height: 72px;
  resize: vertical;
  line-height: 1.45;
}

.verdict-builder-sentencing-hint {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.58rem;
  line-height: 1.45;
}

@media (max-width: 1180px) {
  .verdict-builder-sentencing-grid {
    grid-template-columns:
      repeat(3, minmax(0, 1fr));
  }

  .verdict-builder-sentencing-controls {
    grid-template-columns:
      minmax(150px, 0.5fr)
      minmax(0, 1.5fr);
  }

  .verdict-builder-adjustment-note-field {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1050px) {
  .verdict-builder-reasoning-field {
    grid-column: 1;
    grid-row: auto;
  }
}

@media (max-width: 760px) {
  .verdict-builder-count-consequence,
  .verdict-builder-sentencing-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .verdict-builder-sentencing-controls {
    grid-template-columns:
      minmax(0, 1fr);
  }

  .verdict-builder-adjustment-note-field {
    grid-column: auto;
  }
}

@media (max-width: 560px) {
  .verdict-builder-count-consequence,
  .verdict-builder-sentencing-grid,
  .verdict-builder-reduction-presets {
    grid-template-columns:
      minmax(0, 1fr);
  }
}

#view-verdict-builder
  .verdict-builder-charge-list {
  padding-bottom: 0;
}

/* Sprint 10: Final Verdict Builder sentencing workflow */

.verdict-builder-charge-header {
  display: grid;
  grid-template-columns:
    minmax(260px, auto)
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: var(--space-3);
}

.verdict-builder-charge-title {
  min-width: 0;
}

.verdict-builder-charge-title h3 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-charge-collapse-summary {
  display: none;
  align-items: center;
  gap: 7px;
  min-width: 0;
  overflow: hidden;
}

.verdict-builder-charge-card.is-collapsed
  .verdict-builder-charge-collapse-summary {
  display: flex;
}

.verdict-builder-charge-summary-item {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  min-width: 0;
  max-width: 190px;
  padding: 5px 8px;
  background: rgba(114, 150, 199, 0.065);
  border: 1px solid rgba(114, 150, 199, 0.2);
  border-radius: var(--radius-small);
}

.verdict-builder-charge-summary-item.is-wide {
  flex: 1 1 230px;
  max-width: 300px;
}

.verdict-builder-charge-summary-item.is-reason {
  flex: 1 1 300px;
  max-width: none;
}

.verdict-builder-charge-summary-item.is-revoked {
  color: #f2c75c;
  background: rgba(214, 173, 75, 0.075);
  border-color: rgba(214, 173, 75, 0.34);
}

.verdict-builder-charge-summary-item small {
  flex: 0 0 auto;
  color: var(--color-text-muted);
  font-size: 0.52rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.verdict-builder-charge-summary-item strong {
  min-width: 0;
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.64rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-charge-card.is-collapsed {
  border-color: rgba(114, 150, 199, 0.28);
}

.verdict-builder-charge-card.is-collapsed.is-complete {
  border-color: rgba(61, 191, 127, 0.44);
  box-shadow: inset 3px 0 0 rgba(61, 191, 127, 0.58);
}

.verdict-builder-charge-card.is-collapsed
  .verdict-builder-charge-header {
  min-height: 54px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.verdict-builder-charge-body[hidden] {
  display: none !important;
}

.verdict-builder-total-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.verdict-builder-sentencing-body {
  display: grid;
  gap: var(--space-4);
}

.verdict-builder-sentencing-grid {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

.verdict-builder-adjustment-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.verdict-builder-adjustment-card,
.verdict-builder-time-served-card,
.verdict-builder-direction-card {
  min-width: 0;
  padding: var(--space-4);
  background: rgba(17, 24, 35, 0.72);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-medium);
}

.verdict-builder-adjustment-heading,
.verdict-builder-direction-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.verdict-builder-adjustment-heading > div,
.verdict-builder-direction-header > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.verdict-builder-adjustment-heading span,
.verdict-builder-direction-header span {
  color: var(--color-primary);
  font-size: 0.56rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.verdict-builder-adjustment-heading strong,
.verdict-builder-direction-header strong {
  color: var(--color-text);
  font-size: 0.83rem;
}

.verdict-builder-adjustment-heading p {
  max-width: 300px;
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.61rem;
  line-height: 1.45;
  text-align: right;
}

.verdict-builder-adjustment-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.verdict-builder-adjustment-helper {
  margin: var(--space-2) 0 0;
  color: var(--color-text-muted);
  font-size: 0.59rem;
  line-height: 1.4;
}

.verdict-builder-time-served-controls {
  display: grid;
  grid-template-columns:
    minmax(220px, 1fr)
    minmax(160px, 0.65fr)
    minmax(180px, 0.65fr);
  align-items: end;
  gap: var(--space-3);
}

.verdict-builder-time-served-result {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-height: 38px;
  padding: 8px 11px;
  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-small);
}

.verdict-builder-time-served-result span {
  color: var(--color-text-muted);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.verdict-builder-time-served-result strong {
  color: var(--color-text);
  font-size: 0.75rem;
}

.verdict-builder-adjustment-note-field {
  margin: 0;
}

.verdict-builder-adjustment-note-field textarea {
  min-height: 90px;
}

.verdict-builder-direction-card {
  background:
    linear-gradient(
      135deg,
      rgba(214, 173, 75, 0.075),
      rgba(17, 24, 35, 0.82)
    );
  border-color: rgba(214, 173, 75, 0.28);
}

.verdict-builder-direction-header {
  align-items: center;
}

.verdict-builder-courtroom-direction {
  margin: 0;
  padding: 13px 15px;
  color: var(--color-text);
  background: rgba(7, 12, 19, 0.68);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius-small);
  font-size: 0.76rem;
  line-height: 1.65;
  white-space: pre-line;
}

#verdict-builder-time-served-credit-field[hidden] {
  display: none !important;
}

.verdict-builder-reduction-presets {
  margin-top: var(--space-3);
}

@media (max-width: 1320px) {
  .verdict-builder-charge-header {
    grid-template-columns: minmax(230px, 0.8fr) minmax(0, 1.5fr) auto;
  }

  .verdict-builder-sentencing-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (max-width: 1080px) {
  .verdict-builder-charge-header {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .verdict-builder-charge-collapse-summary {
    grid-column: 1 / -1;
    grid-row: 2;
    flex-wrap: wrap;
  }

  .verdict-builder-adjustment-columns {
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-total-grid,
  .verdict-builder-sentencing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .verdict-builder-charge-header {
    align-items: flex-start;
  }

  .verdict-builder-charge-header-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .verdict-builder-charge-summary-item,
  .verdict-builder-charge-summary-item.is-wide,
  .verdict-builder-charge-summary-item.is-reason {
    flex: 1 1 220px;
    max-width: none;
  }

  .verdict-builder-time-served-controls {
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-adjustment-heading {
    flex-direction: column;
  }

  .verdict-builder-adjustment-heading p {
    max-width: none;
    text-align: left;
  }

  .verdict-builder-total-grid,
  .verdict-builder-sentencing-grid,
  .verdict-builder-adjustment-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .verdict-builder-charge-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-charge-header-actions,
  .verdict-builder-charge-collapse-summary {
    grid-column: 1;
    grid-row: auto;
    justify-content: flex-start;
  }

  .verdict-builder-total-grid,
  .verdict-builder-sentencing-grid,
  .verdict-builder-adjustment-fields,
  .verdict-builder-reduction-presets {
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-direction-header {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Sprint 10: Editable filed verdict and PDF record */

.verdict-builder-document-panel {
  margin-bottom: var(--space-6);
}

.verdict-builder-document-body {
  display: grid;
  gap: var(--space-3);
}

.verdict-builder-document-notice {
  padding: 9px 12px;
  color: var(--color-text-muted);
  background: rgba(114, 150, 199, 0.055);
  border: 1px solid rgba(114, 150, 199, 0.22);
  border-left: 4px solid rgba(114, 150, 199, 0.58);
  border-radius: var(--radius-medium);
  font-size: 0.66rem;
  line-height: 1.45;
}

.verdict-builder-document-notice.is-progress {
  color: #e8c76f;
  background: rgba(214, 173, 75, 0.065);
  border-color: rgba(214, 173, 75, 0.28);
  border-left-color: rgba(214, 173, 75, 0.74);
}

.verdict-builder-document-notice.is-complete {
  color: #74dca7;
  background: rgba(61, 191, 127, 0.065);
  border-color: rgba(61, 191, 127, 0.28);
  border-left-color: rgba(61, 191, 127, 0.74);
}

.verdict-builder-document-toolbar,
.verdict-builder-file-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.verdict-builder-narrative-field {
  margin: 0;
}

.verdict-builder-narrative-input {
  min-height: 360px;
  padding: 16px;
  resize: vertical;
  color: var(--color-text);
  background:
    linear-gradient(
      rgba(7, 18, 30, 0.92),
      rgba(7, 18, 30, 0.92)
    ),
    repeating-linear-gradient(
      transparent,
      transparent 27px,
      rgba(114, 150, 199, 0.075) 28px
    );
  border-left: 4px solid rgba(214, 173, 75, 0.65);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.78rem;
  line-height: 1.72;
}

.verdict-builder-narrative-input:disabled {
  opacity: 0.62;
  cursor: not-allowed;
}

.verdict-builder-document-helper {
  margin: -4px 0 0;
  color: var(--color-text-muted);
  font-size: 0.6rem;
  line-height: 1.45;
}

.verdict-builder-file-actions {
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border-light);
}

.verdict-builder-filed-record {
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(0, 2fr);
  gap: var(--space-3);
  padding: var(--space-3);
  background:
    linear-gradient(
      90deg,
      rgba(214, 173, 75, 0.08),
      rgba(17, 24, 35, 0.72)
    );
  border: 1px solid rgba(214, 173, 75, 0.34);
  border-radius: var(--radius-medium);
}

.verdict-builder-filed-record[hidden] {
  display: none !important;
}

.verdict-builder-filed-record > div:first-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  min-width: 0;
}

.verdict-builder-filed-record > div:first-child > span {
  color: var(--color-primary);
  font-size: 0.56rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.verdict-builder-filed-record > div:first-child > strong {
  overflow: hidden;
  color: var(--color-text);
  font-family: var(--font-mono);
  font-size: 0.73rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.verdict-builder-filed-record dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
}

.verdict-builder-filed-record dl > div {
  min-width: 0;
  padding: 7px 8px;
  background: rgba(7, 18, 30, 0.48);
  border: 1px solid rgba(114, 150, 199, 0.16);
  border-radius: var(--radius-small);
}

.verdict-builder-filed-record dt {
  margin-bottom: 3px;
  color: var(--color-text-muted);
  font-size: 0.5rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.verdict-builder-filed-record dd {
  overflow: hidden;
  margin: 0;
  color: var(--color-text);
  font-size: 0.64rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1000px) {
  .verdict-builder-filed-record {
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-filed-record dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .verdict-builder-document-toolbar,
  .verdict-builder-file-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .verdict-builder-document-toolbar .button,
  .verdict-builder-file-actions .button {
    width: 100%;
  }

  .verdict-builder-narrative-input {
    min-height: 300px;
  }

  .verdict-builder-filed-record dl {
    grid-template-columns: minmax(0, 1fr);
  }
}
