*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--cc-surface-canvas);
  color: var(--cc-text-primary);
  font-family: var(--cc-font-sans);
  font-size: var(--cc-type-body-size);
  line-height: var(--cc-type-body-line);
  -webkit-font-smoothing: antialiased;
}

button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }

:focus-visible {
  outline: 3px solid var(--cc-focus-ring);
  outline-offset: 2px;
}

.cc-page-title { margin: 0; font-size: var(--cc-type-display-size); line-height: var(--cc-type-display-line); font-weight: var(--cc-weight-bold); }
.cc-entity-title { margin: 0; font-size: var(--cc-type-entity-size); line-height: var(--cc-type-entity-line); font-weight: var(--cc-weight-bold); }
.cc-section-title { margin: 0; font-size: var(--cc-type-section-size); line-height: var(--cc-type-section-line); font-weight: var(--cc-weight-bold); }
.cc-card-title { margin: 0; font-size: var(--cc-type-card-size); line-height: var(--cc-type-card-line); font-weight: var(--cc-weight-semibold); }
.cc-text { margin: 0; font-size: var(--cc-type-body-size); line-height: var(--cc-type-body-line); }
.cc-text-compact { margin: 0; font-size: var(--cc-type-compact-size); line-height: var(--cc-type-compact-line); }
.cc-label { font-size: var(--cc-type-label-size); line-height: var(--cc-type-label-line); font-weight: var(--cc-weight-semibold); }
.cc-meta { color: var(--cc-text-secondary); font-size: var(--cc-type-label-size); line-height: var(--cc-type-label-line); }
.cc-meta--secondary { font-size: var(--cc-type-meta-size); line-height: var(--cc-type-meta-line); }
.cc-number { font-variant-numeric: tabular-nums; }

.cc-app-shell { min-height: 100vh; padding-left: var(--cc-sidebar-width); }
.cc-main { min-width: 0; }
.cc-page { width: 100%; min-width: 0; padding: var(--cc-page-padding-desktop); }
.cc-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--cc-space-4); margin-bottom: var(--cc-space-5); }
.cc-section { margin-top: var(--cc-space-4); }
.cc-stack { display: grid; gap: var(--cc-space-3); }
.cc-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cc-space-2); }
.cc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--cc-grid-gap); }
.cc-split { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: var(--cc-space-3); }
.cc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 1279px) {
  .cc-split { grid-template-columns: 1fr; }
}

@media (max-width: 1023px) {
  .cc-app-shell { padding-left: 0; }
  .cc-page { padding: var(--cc-page-padding-tablet); }
  .cc-page-header { align-items: flex-start; flex-direction: column; }
}

@media (min-width: 1440px) {
  .cc-page { padding-inline: var(--cc-page-padding-wide); }
}

@media (max-width: 767px) {
  .cc-page { padding: var(--cc-page-padding-mobile); }
}
