:root {
  --brand-50: #f8f6fc; --brand-100: #eee9f7; --brand-300: #c8b8e2;
  --brand-500: #7652a8; --brand-700: #533779; --brand-900: #2e2141;
  --accent-100: #fff4cf; --accent-500: #e8b63f; --accent-700: #805b09;
  --slate-50: #f8fafc; --slate-100: #f1f5f9; --slate-200: #e2e8f0;
  --slate-500: #64748b; --slate-700: #334155; --slate-900: #0f172a;
  --success-bg: #ecfdf3; --success: #166534; --warning-bg: #fffbeb; --warning: #92400e;
  --danger-bg: #fef2f2; --danger: #b42318; --info-bg: #eff6ff; --info: #1d4ed8;
  --radius-sm: 10px; --radius-md: 16px; --radius-lg: 22px;
  --shadow-card: 0 1px 2px rgba(15,23,42,.04), 0 12px 28px rgba(46,33,65,.07);
}
* { box-sizing: border-box; }
html { color: var(--slate-900); background: var(--slate-50); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
body { margin: 0; min-height: 100vh; }
a { color: inherit; }
button, input { font: inherit; }
:focus-visible { outline: 3px solid var(--accent-500); outline-offset: 3px; }
.skip-link { position: absolute; left: -999px; top: 8px; z-index: 50; background: white; padding: 10px 14px; }
.skip-link:focus { left: 8px; }
.public-header { display: flex; align-items: center; justify-content: space-between; max-width: 1180px; margin: auto; padding: 20px 24px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; text-decoration: none; color: var(--brand-900); letter-spacing: -.02em; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: white; background: var(--brand-700); box-shadow: inset 0 -2px 0 rgba(0,0,0,.16); }
.btn { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: var(--radius-sm); padding: 10px 16px; font-weight: 750; text-decoration: none; cursor: pointer; }
.btn-primary { background: var(--brand-700); color: white; box-shadow: 0 6px 16px rgba(83,55,121,.18); }
.btn-primary:hover { background: var(--brand-900); }
.btn-secondary { background: white; color: var(--brand-900); border-color: var(--slate-200); }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0,1fr); }
.sidebar { background: var(--brand-900); color: white; padding: 26px 18px; display: flex; flex-direction: column; }
.sidebar .brand { color: white; padding: 0 10px 28px; }
.nav-label { margin: 18px 12px 8px; color: var(--brand-300); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.nav-link { display: flex; align-items: center; gap: 11px; min-height: 44px; border-radius: 10px; padding: 10px 12px; color: #e9e2f3; text-decoration: none; font-weight: 650; }
.nav-link:hover, .nav-link[aria-current="page"] { color: white; background: rgba(255,255,255,.11); }
.sidebar-footer { margin-top: auto; padding-top: 24px; }
.sidebar-footer button { width: 100%; background: transparent; border-color: rgba(255,255,255,.22); color: white; }
.main { min-width: 0; }
.topbar { display: flex; min-height: 72px; align-items: center; justify-content: flex-end; border-bottom: 1px solid var(--slate-200); padding: 12px clamp(20px,4vw,48px); background: rgba(255,255,255,.9); }
.user-chip { display: flex; align-items: center; gap: 10px; }
.avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: var(--brand-900); background: var(--accent-100); font-weight: 850; }
.page { max-width: 1180px; margin: auto; padding: 38px clamp(20px,4vw,48px) 64px; }
.page-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.eyebrow { margin: 0 0 6px; color: var(--brand-700); font-size: 13px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3 { margin-top: 0; color: var(--brand-900); letter-spacing: -.03em; }
h1 { margin-bottom: 8px; font-size: clamp(30px,4vw,42px); line-height: 1.12; }
h2 { font-size: 22px; }
h3 { font-size: 17px; }
.muted { color: var(--slate-500); }
.grid { display: grid; gap: 20px; }
.grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.card { border: 1px solid var(--slate-200); border-radius: var(--radius-md); padding: 22px; background: white; box-shadow: var(--shadow-card); }
.action-card { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 24px; margin-bottom: 24px; padding: clamp(24px,5vw,38px); border: 0; border-radius: var(--radius-lg); color: white; background: linear-gradient(125deg,var(--brand-900),var(--brand-700)); box-shadow: 0 18px 45px rgba(46,33,65,.2); }
.action-card h2 { color: white; font-size: clamp(24px,3vw,32px); margin-bottom: 8px; }
.action-card p { color: #e9e2f3; margin: 0; }
.action-card .btn { background: var(--accent-500); color: #2b2109; }
.section { margin-top: 30px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.section-heading h2 { margin: 0; }
.badge { display: inline-flex; align-items: center; gap: 6px; width: fit-content; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 850; }
.badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.badge-success { color: var(--success); background: var(--success-bg); }
.badge-warning { color: var(--warning); background: var(--warning-bg); }
.badge-danger { color: var(--danger); background: var(--danger-bg); }
.badge-info { color: var(--info); background: var(--info-bg); }
.metric { font-size: 30px; font-weight: 850; color: var(--brand-900); letter-spacing: -.04em; }
.metric-label { margin-top: 4px; color: var(--slate-500); font-size: 14px; }
.position-row { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0; }
.position-row + .position-row { border-top: 1px solid var(--slate-200); }
.position-label { color: var(--slate-500); font-size: 13px; font-weight: 750; }
.position-value { margin-top: 4px; font-weight: 800; color: var(--brand-900); }
.task { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: center; }
.task + .task { border-top: 1px solid var(--slate-200); margin-top: 16px; padding-top: 16px; }
.task h3 { margin-bottom: 4px; }
.task p { margin: 0; font-size: 14px; color: var(--slate-500); }
.login-layout { min-height: calc(100vh - 80px); display: grid; grid-template-columns: 1.1fr .9fr; max-width: 1180px; margin: auto; padding: 42px 24px 70px; align-items: center; gap: clamp(40px,8vw,100px); }
.login-story { padding: 40px; border-radius: 28px; background: var(--brand-900); color: white; }
.login-story h1 { color: white; font-size: clamp(38px,6vw,62px); }
.login-story p { color: #dcd3e8; font-size: 18px; line-height: 1.7; }
.login-card { padding: 34px; border: 1px solid var(--slate-200); border-radius: var(--radius-lg); background: white; box-shadow: var(--shadow-card); }
.login-card input { width: 100%; min-height: 46px; border: 1px solid #cbd5e1; border-radius: 10px; padding: 10px 12px; }
.login-card .btn { width: 100%; margin-top: 8px; }
.mobile-nav { display: none; }
@media (max-width: 860px) {
  .app-shell { display: block; padding-bottom: 70px; }
  .sidebar { display: none; }
  .topbar { justify-content: space-between; }
  .topbar::before { content: "Robyn Academy"; color: var(--brand-900); font-weight: 850; }
  .mobile-nav { position: fixed; z-index: 20; display: grid; grid-template-columns: repeat(4,1fr); left: 0; right: 0; bottom: 0; border-top: 1px solid var(--slate-200); background: white; }
  .mobile-nav a { min-height: 62px; display: grid; place-items: center; color: var(--slate-500); font-size: 12px; font-weight: 750; text-decoration: none; }
  .grid-3 { grid-template-columns: 1fr; }
  .login-layout { grid-template-columns: 1fr; }
  .login-story { padding: 28px; }
}
@media (max-width: 620px) {
  .grid-2 { grid-template-columns: 1fr; }
  .page-header, .action-card { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
  .action-card .btn { width: 100%; }
  .user-chip span:not(.avatar) { display: none; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
