:root {
  --ssc-control-gap: 0.8rem;
  --ssc-action-gap: 0.55rem;
  --ssc-radius: 0.45rem;
  --ssc-primary: #1d5f86;
  --ssc-primary-hover: #154a69;
  --ssc-secondary: #eef4f7;
  --ssc-secondary-hover: #dceaf1;
  --ssc-border: #aebdc6;
  --ssc-focus: #f2b134;
}

.ssc-controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  gap: var(--ssc-control-gap);
  align-items: end;
}

.ssc-controls label,
.ssc-control-label {
  display: block;
  margin-bottom: 0.3rem;
  font-weight: 700;
}

.ssc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ssc-action-gap);
  align-items: center;
}

.ssc-button,
button.ssc-button,
a.ssc-button {
  box-sizing: border-box;
  display: inline-flex;
  min-height: 2.55rem;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.58rem 0.9rem;
  border: 1px solid var(--ssc-primary);
  border-radius: var(--ssc-radius);
  background: var(--ssc-primary);
  color: #fff;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.ssc-button:hover,
.ssc-button:focus-visible {
  background: var(--ssc-primary-hover);
  color: #fff;
}

.ssc-button--secondary,
button.ssc-button--secondary,
a.ssc-button--secondary {
  border-color: var(--ssc-border);
  background: var(--ssc-secondary);
  color: #17384b;
}

.ssc-button--secondary:hover,
.ssc-button--secondary:focus-visible {
  background: var(--ssc-secondary-hover);
  color: #17384b;
}

.ssc-button--download::before {
  content: "\2193";
  font-size: 1.1em;
}

.ssc-button--cancel,
button.ssc-button--cancel {
  border-color: #a6382f;
  background: #fff5f3;
  color: #7d241e;
}

.ssc-button--cancel:hover,
.ssc-button--cancel:focus-visible {
  background: #f7ded9;
  color: #651b16;
}

.ssc-button:focus-visible {
  outline: 3px solid var(--ssc-focus);
  outline-offset: 2px;
}

.ssc-button:disabled,
.ssc-button[aria-disabled="true"] {
  opacity: 0.55;
  cursor: not-allowed;
}

@media (max-width: 42rem) {
  .ssc-controls { grid-template-columns: 1fr; }
  .ssc-actions { align-items: stretch; }
  .ssc-actions .ssc-button { flex: 1 1 100%; }
}
