/* StudioFlow Harmony Design System 4.0
   One official palette for the full product.
   Warm ivory + deep charcoal + restrained aubergine + performance gold. */
:root{
  --sf-brand-ink:#171824;
  --sf-brand-ink-soft:#2f2a39;
  --sf-brand-muted:#6f6874;
  --sf-brand-ivory:#fbf8f1;
  --sf-brand-ivory-2:#f5efe5;
  --sf-brand-card:#fffdf9;
  --sf-brand-line:#e8dfd1;
  --sf-brand-line-strong:#d9ccb8;
  --sf-brand-gold:#c78a24;
  --sf-brand-gold-deep:#9b6517;
  --sf-brand-gold-soft:#f7e7c3;
  --sf-brand-aubergine:#4a2876;
  --sf-brand-aubergine-deep:#352052;
  --sf-brand-aubergine-soft:#eee7f5;
  --sf-brand-sidebar:#101522;
  --sf-brand-sidebar-2:#171c2a;
  --sf-brand-success:#2f7b48;
  --sf-brand-warning:#c87810;
  --sf-brand-danger:#bd4658;
  --sf-brand-info:#316fa9;
  --sf-brand-radius:18px;
  --sf-brand-radius-sm:13px;
  --sf-brand-shadow:0 12px 38px rgba(73,52,30,.07),0 1px 0 rgba(255,255,255,.82) inset;

  /* Compatibility aliases used across old and new StudioFlow pages. */
  --sf-id-ink:var(--sf-brand-ink);
  --sf-id-ink-soft:var(--sf-brand-ink-soft);
  --sf-id-muted:var(--sf-brand-muted);
  --sf-id-ivory:var(--sf-brand-ivory);
  --sf-id-ivory-2:var(--sf-brand-ivory-2);
  --sf-id-card:var(--sf-brand-card);
  --sf-id-line:var(--sf-brand-line);
  --sf-id-line-strong:var(--sf-brand-line-strong);
  --sf-id-gold:var(--sf-brand-gold);
  --sf-id-gold-deep:var(--sf-brand-gold-deep);
  --sf-id-gold-soft:var(--sf-brand-gold-soft);
  --sf-id-aubergine:var(--sf-brand-aubergine);
  --sf-id-aubergine-2:#68409a;
  --sf-id-aubergine-soft:var(--sf-brand-aubergine-soft);
  --sf-id-success:var(--sf-brand-success);
  --sf-id-warning:var(--sf-brand-warning);
  --sf-id-danger:var(--sf-brand-danger);
  --sf-id-radius:var(--sf-brand-radius);
  --sf-id-radius-sm:var(--sf-brand-radius-sm);
  --sf-id-shadow:var(--sf-brand-shadow);

  --sf-shell-accent:var(--sf-brand-gold);
  --sf-shell-accent-2:#efbd5e;
  --sf-shell-bg:var(--sf-brand-sidebar);
  --sf-shell-bg2:var(--sf-brand-sidebar-2);
  --sf-shell-text:#fffaf0;
  --sf-shell-muted:#b9b4aa;
}

html[data-theme="light"],html[data-sf-theme="sunlit"]{
  color-scheme:light;
  --bg:var(--sf-brand-ivory);
  --panel:var(--sf-brand-card);
  --surface:#f7f2e9;
  --line:var(--sf-brand-line);
  --text:var(--sf-brand-ink);
  --muted:var(--sf-brand-muted);
  --accent:var(--sf-brand-aubergine);
  --sf-bg:var(--sf-brand-ivory);
  --sf-bg-elevated:var(--sf-brand-ivory-2);
  --sf-bg-soft:var(--sf-brand-ivory-2);
  --sf-panel:var(--sf-brand-card);
  --sf-panel-2:#f8f3ea;
  --sf-surface:var(--sf-brand-card);
  --sf-surface-2:#faf6ef;
  --sf-surface-3:#f3ecdf;
  --sf-line:var(--sf-brand-line);
  --sf-line-strong:var(--sf-brand-line-strong);
  --sf-text:var(--sf-brand-ink);
  --sf-text-2:#514b58;
  --sf-text-3:var(--sf-brand-muted);
  --sf-muted:var(--sf-brand-muted);
  --sf-muted-2:#514b58;
  --sf-brand:var(--sf-brand-aubergine);
  --sf-brand-strong:var(--sf-brand-aubergine-deep);
  --sf-brand-soft:var(--sf-brand-aubergine-soft);
  --sf-accent:var(--sf-brand-aubergine);
  --sf-accent-2:var(--sf-brand-gold);
  --sf-gold:var(--sf-brand-gold);
  --sf-success:var(--sf-brand-success);
  --sf-warning:var(--sf-brand-warning);
  --sf-danger:var(--sf-brand-danger);
  --sf-info:var(--sf-brand-info);
  --sf-shadow:var(--sf-brand-shadow);
}

html[data-theme="dark"],html[data-theme="midnight"],html[data-sf-theme="dark"]{
  color-scheme:dark;
  --bg:#111522;
  --panel:#191e2c;
  --surface:#202637;
  --line:#343a4b;
  --text:#fffaf0;
  --muted:#b6b1a8;
  --accent:#e1ab4a;
  --sf-bg:#111522;
  --sf-bg-elevated:#161b28;
  --sf-bg-soft:#161b28;
  --sf-panel:#191e2c;
  --sf-panel-2:#202637;
  --sf-surface:#191e2c;
  --sf-surface-2:#202637;
  --sf-surface-3:#272e40;
  --sf-line:#343a4b;
  --sf-line-strong:#464d61;
  --sf-text:#fffaf0;
  --sf-text-2:#ddd6c8;
  --sf-text-3:#b6b1a8;
  --sf-muted:#b6b1a8;
  --sf-muted-2:#ddd6c8;
  --sf-brand:#e1ab4a;
  --sf-brand-strong:#f0c267;
  --sf-brand-soft:rgba(225,171,74,.14);
  --sf-accent:#e1ab4a;
  --sf-accent-2:#a77ae3;
  --sf-gold:#e1ab4a;
  --sf-success:#74c58c;
  --sf-warning:#efad4f;
  --sf-danger:#e67b8a;
  --sf-info:#70a6d8;
  --sf-shadow:0 18px 50px rgba(0,0,0,.25);
}

body[data-page^="sf-"],body.sf-shell-ready,body[data-page="sf-settings-admin"],body[data-page$="-admin"]{
  color:var(--sf-text,var(--text,var(--sf-brand-ink)));
  background:
    radial-gradient(900px 430px at 14% -8%,rgba(199,138,36,.08),transparent 57%),
    radial-gradient(780px 420px at 100% 0,rgba(74,40,118,.045),transparent 58%),
    var(--sf-bg,var(--bg,var(--sf-brand-ivory))) !important;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

/* Shared application shell */
#sfGlobalSidebar{
  background:linear-gradient(180deg,var(--sf-brand-sidebar) 0%,var(--sf-brand-sidebar-2) 62%,var(--sf-brand-sidebar) 100%)!important;
  border-right:1px solid rgba(240,194,103,.12)!important;
  box-shadow:18px 0 48px rgba(11,13,22,.15)!important;
}
.sf-shell-logo{
  background:linear-gradient(145deg,#f0c267,#b97619)!important;
  color:#15131b!important;
  box-shadow:0 10px 28px rgba(199,138,36,.25)!important;
}
.sf-shell-brand-copy strong{color:#fffaf0!important}
.sf-shell-group-title{color:#9f998e!important}
.sf-shell-link{color:#bdb7ac!important}
.sf-shell-link:hover{background:rgba(255,255,255,.055)!important;color:#fffaf0!important}
.sf-shell-link.is-active{
  color:#fffaf0!important;
  background:linear-gradient(90deg,rgba(199,138,36,.18),rgba(74,40,118,.13))!important;
  box-shadow:inset 3px 0 0 #e8b758!important;
}
.sf-shell-link.is-active .sf-shell-icon{background:rgba(232,183,88,.16)!important;color:#f7cc79!important}
#sfGlobalTopbar{
  background:color-mix(in srgb,var(--sf-panel,var(--panel,#fff)) 92%,transparent)!important;
  border-bottom:1px solid var(--sf-line,var(--line,var(--sf-brand-line)))!important;
  backdrop-filter:blur(16px);
}
.sf-shell-toggle,.sf-shell-search,.sf-layout-button{
  border-color:var(--sf-line,var(--line,var(--sf-brand-line)))!important;
  background:var(--sf-panel,var(--panel,var(--sf-brand-card)))!important;
  color:var(--sf-text,var(--text,var(--sf-brand-ink)))!important;
}
.sf-shell-search{box-shadow:0 3px 14px rgba(73,52,30,.035)}
.sf-shell-search:focus-within,.sf-shell-toggle:focus-visible,.sf-layout-button:focus-visible{
  outline:none!important;
  border-color:color-mix(in srgb,var(--sf-brand-gold) 64%,var(--sf-brand-line))!important;
  box-shadow:0 0 0 3px rgba(199,138,36,.13)!important;
}

/* Shared surfaces */
body[data-page^="sf-"] .card,body[data-page^="sf-"] .panel,
body[data-page$="-admin"] .card,body[data-page$="-admin"] .panel,
.sf-card,.sf-panel,.workspace-card,.settings-card{
  background:linear-gradient(165deg,var(--sf-panel,var(--panel,var(--sf-brand-card))) 0%,color-mix(in srgb,var(--sf-panel,var(--panel,var(--sf-brand-card))) 95%,var(--sf-brand-gold-soft)) 100%)!important;
  border-color:var(--sf-line,var(--line,var(--sf-brand-line)))!important;
  border-radius:var(--sf-brand-radius)!important;
  box-shadow:var(--sf-shadow,var(--sf-brand-shadow))!important;
}
body[data-page^="sf-"] h1,body[data-page^="sf-"] h2,body[data-page^="sf-"] h3,
body[data-page$="-admin"] h1,body[data-page$="-admin"] h2,body[data-page$="-admin"] h3{
  color:var(--sf-text,var(--text,var(--sf-brand-ink)))!important;
  letter-spacing:-.025em;
}
body[data-page^="sf-"] p,body[data-page^="sf-"] .meta,
body[data-page$="-admin"] p,body[data-page$="-admin"] .meta{
  color:var(--sf-muted,var(--muted,var(--sf-brand-muted)));
}
.eyebrow,.section-kicker,.sf-kicker,.sf-overline{
  color:var(--sf-brand-gold-deep)!important;
  letter-spacing:.12em!important;
}

/* Inputs and buttons */
body[data-page^="sf-"] input,body[data-page^="sf-"] select,body[data-page^="sf-"] textarea,
body[data-page$="-admin"] input,body[data-page$="-admin"] select,body[data-page$="-admin"] textarea{
  background:var(--sf-panel,var(--panel,var(--sf-brand-card)))!important;
  border-color:var(--sf-line-strong,var(--line,var(--sf-brand-line-strong)))!important;
  color:var(--sf-text,var(--text,var(--sf-brand-ink)))!important;
  border-radius:var(--sf-brand-radius-sm)!important;
}
body[data-page^="sf-"] input:focus,body[data-page^="sf-"] select:focus,body[data-page^="sf-"] textarea:focus,
body[data-page$="-admin"] input:focus,body[data-page$="-admin"] select:focus,body[data-page$="-admin"] textarea:focus{
  outline:none!important;
  border-color:rgba(199,138,36,.7)!important;
  box-shadow:0 0 0 3px rgba(199,138,36,.14)!important;
}
.btn-primary,.sf-btn-primary,button.primary,.primary-button,[data-variant="primary"],.sfcc3-btn--primary{
  background:linear-gradient(135deg,var(--sf-brand-aubergine),var(--sf-brand-aubergine-deep))!important;
  border-color:transparent!important;
  color:#fff!important;
  box-shadow:0 8px 22px rgba(74,40,118,.18)!important;
}
.btn-primary:hover,.sf-btn-primary:hover,button.primary:hover,.primary-button:hover,[data-variant="primary"]:hover,.sfcc3-btn--primary:hover{
  filter:brightness(1.07);transform:translateY(-1px)
}
.btn-secondary,.sf-btn-secondary,button.secondary,.secondary-button,.sfcc3-btn--ghost{
  background:var(--sf-panel,var(--panel,var(--sf-brand-card)))!important;
  border-color:var(--sf-line,var(--line,var(--sf-brand-line)))!important;
  color:var(--sf-text,var(--text,var(--sf-brand-ink)))!important;
}

/* Status vocabulary */
.badge.success,.status-ready,.is-ready,[data-status="ready"]{color:var(--sf-brand-success)!important;background:rgba(47,123,72,.09)!important}
.badge.warning,.status-warning,.needs-setup,[data-status="warning"]{color:var(--sf-brand-warning)!important;background:rgba(200,120,16,.10)!important}
.badge.danger,.status-danger,[data-status="danger"]{color:var(--sf-brand-danger)!important;background:rgba(189,70,88,.09)!important}

/* Tables and lists */
body[data-page^="sf-"] table,body[data-page$="-admin"] table{border-color:var(--sf-line,var(--line,var(--sf-brand-line)))!important}
body[data-page^="sf-"] th,body[data-page$="-admin"] th{
  color:var(--sf-muted,var(--muted,var(--sf-brand-muted)))!important;
  background:color-mix(in srgb,var(--sf-panel,var(--panel,var(--sf-brand-card))) 90%,var(--sf-brand-gold-soft))!important;
}
body[data-page^="sf-"] td,body[data-page$="-admin"] td{border-color:var(--sf-line,var(--line,var(--sf-brand-line)))!important}

/* Command Center: warm charcoal pulse with guaranteed readable inverse text. */
.sfcc3-pulse{
  background:linear-gradient(118deg,#242033 0%,#222535 54%,#1c2534 100%)!important;
  border:1px solid rgba(240,194,103,.11)!important;
  box-shadow:0 18px 42px rgba(31,28,45,.14)!important;
}
.sfcc3-pulse,.sfcc3-pulse h1,.sfcc3-pulse h2,.sfcc3-pulse h3,.sfcc3-pulse strong{color:#fffaf0!important}
.sfcc3-pulse p,.sfcc3-pulse span,.sfcc3-pulse .sfcc3-label{color:#c9c3b8!important}
.sfcc3-pulse-icon{
  color:#f0c267!important;
  background:rgba(199,138,36,.13)!important;
  box-shadow:inset 0 0 0 1px rgba(240,194,103,.22)!important;
}
.sfcc3-card,.sfcc3-actions a{
  background:var(--sf-panel,var(--sf-brand-card))!important;
  border-color:var(--sf-line,var(--sf-brand-line))!important;
  box-shadow:var(--sf-shadow,var(--sf-brand-shadow))!important;
}
.sfcc3-card-head a{color:var(--sf-brand-aubergine)!important}
.sfcc3-next-item{
  background:linear-gradient(90deg,#fbf7ef,#fffdf9)!important;
  border-color:var(--sf-brand-line)!important;
}
.sfcc3-next-badge{
  color:var(--sf-brand-aubergine)!important;
  border-color:#ded2e9!important;
  background:#fffdf9!important;
}
.sfcc3-attention-icon,.sfcc3-actions span{
  background:var(--sf-brand-aubergine-soft)!important;
  color:var(--sf-brand-aubergine)!important;
}
.sfcc3-activity-dot{background:var(--sf-brand-gold)!important}
.sfcc3-empty{background:#faf6ef!important;color:var(--sf-brand-muted)!important}

/* Active controls across workspaces. */
body[data-sf-screen="schedule-admin"] .view-toggle button.is-active,
body[data-page="sf-pricing-admin"] .is-active,
body[data-page="sf-instructors-admin"] .is-active,
body[data-page="sf-settings-admin"] .is-active{
  background:linear-gradient(135deg,var(--sf-brand-aubergine),var(--sf-brand-aubergine-deep))!important;
  color:#fff!important;
}
body[data-sf-screen="schedule-admin"] .schedule-section,
body[data-sf-screen="students-admin"] .schedule-section{
  background:color-mix(in srgb,var(--sf-panel,var(--panel,var(--sf-brand-card))) 94%,var(--sf-brand-gold-soft))!important;
}

a{accent-color:var(--sf-brand-gold)}
::selection{background:rgba(199,138,36,.22);color:var(--sf-brand-ink)}

@media(max-width:900px){
  :root{--sf-brand-radius:16px;--sf-id-radius:16px}
  body.sf-shell-ready{background:var(--sf-bg,var(--bg,var(--sf-brand-ivory)))!important}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
