:root{
  /* Colors */
  --bg:#0b1730;
  --panel:#102245;
  --panel2:#0e1d3c;
  --text:#eaf0ff;
  --muted:#b9c7ea;
  --outline:rgba(255,255,255,.10);
  --outline2:rgba(255,255,255,.16);

  /* Typography */
  --font-family-base: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  --font-size-base: 16px;
  --font-size-xs: 12px;
  --font-size-sm: 13px;
  --font-size-md: 14px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-xxl: 26px;
  --font-sub: 26px;

  /* Radii */
  --radius-panel:22px;
  --radius-pill:999px;
  --radius-sm:12px;
  --radius-md:14px;
  --radius-lg:16px;

  /* Spacing */
  --gap:18px;
  --nav-gap:10px;
  --base-content-pad:16px;
  --nav-to-card-gap:28px;
  --topbar-pad-y:14px;
  --topbar-pad-x:16px;
  --panel-pad:18px;
  --panel-pad-compact:12px;

  /* Pills & buttons */
  --pill-height:44px;
  --pill-pad-x:18px;
  --pill-height-sm:32px;
  --pill-pad-x-sm:12px;
  --pill-font-sm:13px;
  --pill-wide-min:170px;

  --icon-btn-size:44px;
  --icon-size:20px;

  /* Dashboard layout */
  --dashboard-height-offset:110px;
  --dashboard-gap:28px;
  --dashboard-top-pad-y:10px;
  --dashboard-top-pad-x:12px;
  --dashboard-top-min-h:120px;
  --dashboard-h2-size:18px;
  --dashboard-pill-height:30px;
  --dashboard-pill-pad-x:10px;
  --dashboard-pill-font:12px;
  --dashboard-item-pad:6px;
  --dashboard-appt-side-width:10.5ch;
  --dashboard-appointment-pill-height:34px;
  --dashboard-appointment-pill-font:12px;
  --appointments-classwork-bg:rgba(170, 226, 186, 0.9);
  --appointments-classwork-text:#113620;
  --appointments-grade-color:#8fd7a8;
  --appointments-birthday-bg:rgba(247, 231, 170, 0.92);
  --appointments-birthday-text:#5b4a10;

  /* Landing */
  --landing-title-size:clamp(28px, 3vw, 40px);
  --landing-eyebrow-size:12px;
  --landing-card-title-size:20px;
  --landing-gap:12px;
  --landing-actions-gap:10px;

  /* Schedule/Duties */
  --schedule-row-gap:12px;
  --schedule-row-time-width:130px;
  --schedule-label-size:20px;
  --duty-service-size:14px;
  --duty-name-size:13px;
  --duty-label-size:13px;
  --duty-value-size:20px;
  --schedule-gap:10px;
  --duty-list-gap:10px;
  --duty-list-column-gap:26px;
  --duty-label-width:200px;
  --duty-pill-wide-min:200px;
  --duty-name-gap:8px;
  --duty-row-gap:6px;
  --duty-person-gap:16px;
  --duty-name-pill-min:120px;
  --duty-rotate-size:26px;
  --duty-rotate-font:14px;
  --duty-divider-height:32px;
  --duty-divider-font:12px;
  --duty-subtitle-size:18px;
  --duty-dashboard-name-width:16ch;
  --duty-dashboard-name-font:11px;
  --duty-dashboard-name-pad-x:6px;
  --duty-dashboard-name-gap:6px;
  --duty-dashboard-label-width:18ch;
  --duty-dashboard-column-gap:4px;

  /* Birthdays */
  --birthdays-table-gap:12px;
  --birthdays-panel-pad:10px;
  --birthdays-h2-size:15px;
  --birthdays-pill-height:28px;
  --birthdays-pill-font:11px;
  --birthdays-pill-pad-x:8px;
  --birthdays-appt-pad-y:4px;
  --birthdays-appt-pad-x:6px;
  --birthdays-height-offset:110px;

  /* Flex cards */
  --flex-badge-height:36px;
  --flex-badge-pad-x:14px;
  --flex-count-size:18px;

  /* Appointments & schedule */
  --appointments-list-gap:10px;
  --appointments-toolbar-gap:10px;
  --appointments-toolbar-group-gap:8px;
  --appointments-panel-pill-width:15ch;
  --appointments-panel-pill-gap:10px;
  --appointments-panel-pill-height:44px;
  --appointments-panel-pill-pad-y:6px;
  --appointments-panel-pill-pad-x:10px;
  --appointments-panel-pill-font-long:12px;
  --appointments-panel-pill-font-very-long:11px;
  --appointments-panel-date-font:13px;
  --appointment-date-pad-x:16px;
  --dashboard-appt-list-gap:6px;
  --dashboard-appt-list-margin-top:4px;
  --dashboard-schedule-gap:10px;
  --dashboard-schedule-item-gap:8px;
  --dashboard-schedule-item-col1:34px;
  --dashboard-schedule-item-col2:96px;
  --dashboard-schedule-pill-height:32px;
  --dashboard-schedule-pill-pad-x:8px;
  --dashboard-schedule-pill-font:12px;
  --appointment-row-date-width:120px;
  --appointment-row-gap:12px;
  --appointment-title-size:18px;

  /* Forms */
  --input-height:44px;
  --input-radius:14px;
  --input-pad-x:12px;
  --input-mini-height:38px;
  --input-mini-radius:12px;
  --input-mini-pad-x:10px;

  --timetable-gap:16px;
  --timetable-col-gap:10px;
  --timetable-head-gap:10px;
  --timetable-list-gap:8px;
  --timetable-list-pad:10px;
  --timetable-list-radius:16px;
  --timetable-row-gap:8px;
  --timetable-index-min:38px;
  --timetable-time-width:92px;
  --timetable-actions-gap:12px;

  --subject-list-gap:8px;
  --subject-list-pad:10px;
  --subject-list-radius:16px;
  --subject-row-gap:8px;
  --subject-actions-gap:10px;

  /* Buttons */
  --btn-height:44px;
  --btn-pad-x:18px;
  --btn-radius:14px;
  --btn-font:16px;

  /* Admin layout */
  --admin-header-pad-y:12px;
  --admin-header-pad-x:16px;
  --admin-header-gap:10px;
  --admin-nav-gap:8px;
  --admin-nav-pill-height:36px;
  --admin-nav-pill-pad-x:14px;
  --admin-nav-pill-font:14px;
  --admin-actions-gap:10px;
  --admin-side-width:240px;
  --admin-side-pad:12px;
  --admin-side-radius:22px;
  --admin-side-top-gap:12px;
  --admin-side-shadow:0 10px 30px rgba(0,0,0,.25);
  --settings-side-w: var(--admin-side-width);
  --settings-side-gap:16px;
  --settings-edge:16px;
  --settings-header-h:56px;
  --admin-nav-group-gap:8px;
  --admin-nav-group-pad:6px;
  --admin-nav-group-radius:22px;
  --admin-nav-btn-height:32px;
  --admin-nav-btn-pad-x:12px;
  --admin-nav-btn-font:12px;
  --admin-subnav-gap:6px;
  --admin-subnav-pad-x:6px;
  --admin-subnav-btn-height:28px;
  --admin-subnav-btn-pad-x:10px;
  --admin-subnav-btn-font:11px;
  --admin-main-pad:14px;
  --admin-group-pad:14px;
  --admin-group-gap:16px;
  --admin-mt-sm:8px;
  --admin-mt-md:12px;
  --admin-mt-lg:14px;

  /* Admin mobile */
  --admin-mobile-header-gap:12px;
  --admin-mobile-header-pad-y:10px;
  --admin-mobile-header-pad-x:16px;
  --admin-mobile-actions-pill-height:36px;
  --admin-mobile-actions-pill-pad-x:14px;
  --admin-mobile-actions-pill-font:14px;
  --admin-mobile-save-height:32px;
  --admin-mobile-save-pad-x:10px;
  --admin-mobile-save-font:12px;
  --admin-mobile-panel-pad:12px;
  --admin-mobile-schedule-col1:110px;
  --admin-mobile-schedule-min:120px;
  --admin-mobile-intro-margin:12px;

  /* Admin console (mobile) */
  --console-font-family:"Manrope", "Rubik", "Segoe UI", sans-serif;
  --console-header-h:80px;
  --console-content-pad-x:16px;
  --console-content-pad-bottom:96px;
  --console-header-pad-top:16px;
  --console-header-pad-x:16px;
  --console-header-pad-bottom:12px;
  --console-header-gap:12px;
  --console-title-size:18px;
  --console-sub-size:12px;
  --console-section-gap:16px;
  --console-grid-gap:16px;
  --console-card-radius:20px;
  --console-card-pad:16px;

  /* Patch helpers */
  --age-pill-height:40px;
  --age-pill-min-w:56px;
  --age-pill-pad-x:10px;
  --chip-height:30px;
  --chip-pad-x:10px;
  --chip-font-size:13px;
  --combo-radius:14px;
  --combo-shadow:0 10px 30px rgba(0,0,0,.35);
  --combo-item-pad-y:10px;
  --combo-item-pad-x:12px;
  --combo-item-font:14px;
  --combo-search-font:12px;
}

body[data-settings]{
  --app-header-h: var(--console-header-h);
}
