:root{--serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;--sans: "Inter", system-ui, -apple-system, sans-serif;--paper: #FAF8F4;--surface: #FFFDFA;--surface-2: #F3EEE6;--surface-3: #EFE8DC;--lilac-50: #EAF3F1;--lilac-100: #DDE9E7;--lilac-200: #C4DAD6;--lilac-300: #9CC0BB;--violet-400: #4E8A85;--violet-500: #2C6E69;--violet-600: #1F5F5B;--violet-700: #174A47;--on-accent: #FFFFFF;--ink: #1E2430;--ink-2: #5A6170;--ink-3: #8A909B;--ink-4: #B2B7C0;--hair: #E8E4DB;--hair-v: #DCE4E1;--track-on-glass: rgba(255, 253, 250, .6);--ok: #5E7360;--ok-bg: #EEF3ED;--prog: #1F5F5B;--prog-bg: #DDE9E7;--warn: #9A7328;--warn-bg: #F1E4C7;--err: #A05A44;--err-bg: #F0E2D8;--lock: #8A8378;--lock-bg: #EAE5DC;--dbg: #201E1B;--dsurface: #2A2723;--dsurface-2: #332F2A;--dink: #F0ECE4;--dink-2: #BDB6AA;--dviolet: #6FA39D;--dhair: #4A443C80;--color-bg-primary: var(--paper);--color-bg-secondary: var(--surface-2);--color-bg-tertiary: var(--surface-3);--color-bg-card: var(--surface);--color-bg-card-hover: #FFFFFF;--color-primary: var(--violet-600);--color-primary-light: var(--violet-400);--color-primary-dark: var(--violet-700);--color-secondary: var(--violet-500);--color-accent: var(--lilac-300);--color-purple-gradient-start: var(--violet-500);--color-purple-gradient-end: var(--violet-600);--color-glass-purple: var(--violet-400);--color-glass-lavender: var(--lilac-300);--color-glass-mint: var(--ok);--color-glass-emerald: #4D6B56;--color-glass-blue: var(--prog);--color-glass-sky: #8A8EB8;--color-glass-amber: var(--warn);--color-glass-rose: var(--err);--color-success: var(--ok);--color-success-light: var(--ok-bg);--color-warning: var(--warn);--color-warning-light: var(--warn-bg);--color-error: var(--err);--color-error-light: var(--err-bg);--color-info: var(--prog);--color-info-light: var(--prog-bg);--color-text-primary: var(--ink);--color-text-secondary: var(--ink-2);--color-text-tertiary: var(--ink-3);--color-text-muted: var(--ink-4);--color-text-purple: var(--violet-600);--color-border: var(--hair);--color-border-hover: var(--lilac-300);--color-border-strong: var(--hair-v);--color-divider: #ECE6DC;--glass-bg-white: linear-gradient(160deg, #FFFDFA 0%, #F3EEE6 100%);--glass-bg-tinted: var(--surface);--glass-bg-purple: var(--lilac-100);--glass-bg-lavender: var(--lilac-50);--glass-bg-mint: var(--ok-bg);--glass-bg-blue: var(--prog-bg);--glass-border: var(--hair);--glass-border-light: var(--hair);--glass-border-thick: 1px solid var(--hair);--glass-border-accent: 1px solid var(--lilac-200);--glass-blur: blur(0);--glass-blur-heavy: blur(0);--glass-blur-subtle: blur(0);--shadow-xs: 0 1px 1px rgba(61, 56, 51, .03);--shadow-sm: 0 1px 1px rgba(61, 56, 51, .03), 0 2px 4px rgba(61, 56, 51, .04);--shadow-md: 0 1px 1px rgba(61, 56, 51, .03), 0 4px 8px rgba(61, 56, 51, .04), 0 16px 32px rgba(61, 56, 51, .06);--shadow-lg: 0 2px 2px rgba(61, 56, 51, .03), 0 8px 16px rgba(61, 56, 51, .05), 0 32px 64px rgba(61, 56, 51, .09);--shadow-xl: 0 2px 2px rgba(61, 56, 51, .03), 0 12px 24px rgba(61, 56, 51, .06), 0 40px 80px rgba(61, 56, 51, .1);--shadow-glass: var(--shadow-md);--shadow-glass-hover: var(--shadow-lg);--glow-primary: none;--glow-success: none;--glow-purple: none;--glow-mint: none;--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-xs: 5px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 14px;--radius-full: 9999px;--font-primary: var(--sans);--font-display: var(--serif);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .4s cubic-bezier(.34, 1.56, .64, 1);--accent-wisteria: var(--violet-600);--accent-harbour: #3F6E6A;--accent-juniper: #3F7069;--accent-fern: #66753F;--accent-clay: #96604B;--accent-mulberry: #97566A;--accent-slate: #6E675A;--accent-heather: #8A6B42;--ok-ink: #41604C;--prog-ink: #1B5450;--warn-ink: #77602F;--lock-ink: #6A6459;--dur-celebrate: .6s;--dur-breath: 2.5s;--ease-settle: cubic-bezier(.22, 1, .36, 1);--string-ahead-opacity: .35}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.6;min-height:100vh;overflow-x:hidden}h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;color:var(--ink)}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--lilac-300)}.serif{font-family:var(--serif)}.label{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.glass-card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.glass-card:hover{border-color:var(--hair-v);box-shadow:var(--shadow-glass-hover)}.glass-card-purple{background:var(--lilac-50);border:1px solid var(--hair-v)}.glass-card-tinted{background:var(--surface-2)}.glass{position:relative;background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-2xl);box-shadow:var(--shadow-md);overflow:hidden}.glassbg{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--surface-2) 0%,var(--surface-3) 100%)}.blob{display:none}.grain:after{content:none}.glass-border-purple{border-left:3px solid var(--violet-400)}.glass-border-mint{border-left:3px solid var(--ok)}.glass-border-blue{border-left:3px solid var(--prog)}.glass-border-amber{border-left:3px solid var(--warn)}.numbered-circle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--violet-500);color:var(--on-accent);font-weight:var(--font-semibold);font-size:var(--text-sm);flex-shrink:0}.numbered-circle-lg{width:48px;height:48px;font-size:var(--text-lg)}.numbered-circle-mint{background:var(--ok)}.numbered-circle-blue{background:var(--prog)}.stat-display{text-align:center}.stat-number{font-family:var(--serif);font-size:var(--text-4xl);font-weight:500;color:var(--ink);line-height:1.1;margin-bottom:var(--spacing-xs);font-variant-numeric:tabular-nums}.stat-number-xl{font-size:4rem;font-weight:400}.stat-label{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.14em}.section-header{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.14em;margin-bottom:var(--spacing-md)}.section-title{font-family:var(--serif);font-size:var(--text-3xl);font-weight:400;letter-spacing:-.01em;color:var(--ink);margin-bottom:var(--spacing-lg);line-height:1.3}.section-title-xl{font-size:var(--text-4xl)}.icon-circle{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--lilac-100);color:var(--violet-600);flex-shrink:0}.icon-circle-mint{background:var(--ok-bg);color:var(--ok)}.icon-circle-blue{background:var(--prog-bg);color:var(--prog)}.badge-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.01em;line-height:1.4;transition:all var(--transition-fast)}.badge-pill-purple{background:var(--prog-bg);color:var(--prog)}.badge-pill-mint{background:var(--ok-bg);color:var(--ok)}.badge-pill-blue{background:var(--prog-bg);color:var(--prog)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.01em;padding:4px 10px;border-radius:999px;line-height:1}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.p-ok{background:var(--ok-bg);color:var(--ok)}.p-prog{background:var(--prog-bg);color:var(--prog)}.p-warn{background:var(--warn-bg);color:var(--warn)}.p-err{background:var(--err-bg);color:var(--err)}.p-lock{background:var(--lock-bg);color:var(--lock)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:10px 18px;border-radius:var(--radius-sm);font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.01em;transition:all var(--transition-fast);cursor:pointer;border:1px solid transparent;outline:none;text-decoration:none}.btn-primary{background:var(--violet-600);color:var(--on-accent)}.btn-primary:hover{background:var(--violet-700)}.btn-outline,.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--hair-v)}.btn-outline:hover,.btn-secondary:hover{background:var(--lilac-50)}.btn-ghost{background:transparent;color:var(--violet-600);border-color:transparent}.btn-ghost:hover{background:var(--lilac-50)}.btn-sm{padding:7px 13px;font-size:13px}.progress-bar-wrapper{width:100%;height:6px;background:var(--lilac-100);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--violet-500);border-radius:var(--radius-full);transition:width var(--transition-slow);position:relative}.progress-bar-purple .progress-bar-fill{background:var(--violet-500)}.progress-bar-blue .progress-bar-fill{background:var(--prog)}.track{height:6px;border-radius:999px;background:var(--lilac-100);overflow:hidden}.track .fill{height:100%;border-radius:999px;background:var(--violet-500)}.divider{height:1px;background:var(--hair);margin:var(--spacing-xl) 0}.divider-strong{background:var(--hair-v)}.softdiv{height:1px;background:var(--hair)}.container-max{max-width:1400px;margin:0 auto;padding:0 var(--spacing-xl)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg)}@media(max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.kpi-num{font-family:var(--serif);font-weight:500;font-size:34px;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}.kpi-num small{font-size:18px;color:var(--ink-3);font-weight:400}.skeleton{background:var(--surface-2);border-radius:var(--radius-sm);animation:kk-skeleton-pulse 1.6s ease-in-out infinite}@keyframes kk-skeleton-pulse{0%,to{opacity:1}50%{opacity:.6}}.date-num{font-family:var(--serif);font-size:22px;color:var(--violet-700);line-height:1;font-variant-numeric:tabular-nums}.sidebar{width:260px;background:var(--paper);border-right:1px solid var(--hair);padding:var(--spacing-2xl) 0;position:fixed;left:0;top:0;bottom:0;z-index:100;display:flex;flex-direction:column}.sidebar-header{padding:0 var(--spacing-md);margin-bottom:var(--spacing-xl)}.sidebar-top{display:flex;align-items:center;justify-content:space-between;position:relative}.logo{text-decoration:none;display:flex;align-items:center;gap:var(--spacing-sm);transition:all var(--transition-base);padding:var(--spacing-xs) 0;flex:1;overflow:hidden}.logo:hover{transform:translate(2px)}.logo:hover .logo-icon{filter:drop-shadow(0 2px 8px rgba(106,95,144,.2))}.logo-icon{width:48px;height:48px;flex-shrink:0;transition:all var(--transition-base);object-fit:contain}.logo-text-wrapper{display:flex;flex-direction:column;justify-content:center;white-space:nowrap;opacity:1;transition:opacity var(--transition-base)}.logo-text{font-family:"Source Serif 4",Georgia,serif;font-size:18px;font-weight:700;color:var(--color-primary-dark);letter-spacing:-.02em;line-height:1.1}.logo-subtext{font-family:var(--font-display);font-size:11px;font-weight:500;color:var(--color-secondary);letter-spacing:.15em;line-height:1.2;text-transform:uppercase}.collapse-toggle{position:absolute;right:-12px;background:#fff;border:1px solid var(--glass-border);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-tertiary);box-shadow:var(--shadow-sm);transition:all var(--transition-base);z-index:10;opacity:0}.sidebar:hover .collapse-toggle{opacity:1}.collapse-toggle:hover{background:var(--color-primary-light);color:#fff;transform:scale(1.1)}.sidebar.collapsed{width:80px}.sidebar.collapsed .sidebar-header{padding:0;display:flex;justify-content:center}.sidebar.collapsed .sidebar-top{justify-content:center;width:100%}.sidebar.collapsed .logo{justify-content:center;padding:var(--spacing-xs) 0}.sidebar.collapsed .nav-item{justify-content:center;padding:var(--spacing-md)}.sidebar.collapsed .nav-icon{margin:0}.sidebar.collapsed .user-profile{justify-content:center;padding:var(--spacing-sm)}.sidebar.collapsed .nav-section{margin-bottom:var(--spacing-xl)}.sidebar.collapsed .nav-menu{padding:0 var(--spacing-xs)}.nav-menu{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 var(--spacing-md)}.nav-section{margin-bottom:var(--spacing-2xl)}.nav-section-title{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:1px;color:var(--color-text-tertiary);padding:0 var(--spacing-md);margin-bottom:var(--spacing-md);white-space:nowrap}.nav-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);color:var(--color-text-secondary);text-decoration:none;font-weight:var(--font-medium);transition:all var(--transition-base);cursor:pointer;border:1px solid transparent;background:transparent;width:100%;text-align:left;font-size:var(--text-sm);position:relative;white-space:nowrap}.nav-item:hover{background:var(--lilac-50);color:var(--color-text-primary)}.nav-item.active{background:var(--lilac-100);color:var(--violet-700);font-weight:var(--font-semibold)}.nav-icon{font-size:1.25rem;flex-shrink:0}.nav-item.locked{opacity:.5;cursor:not-allowed;background:transparent!important;filter:grayscale(.8)}.nav-item.locked:hover{transform:none;color:var(--color-text-secondary);border-color:transparent}.lock-icon{color:var(--color-text-tertiary);opacity:.7;margin-left:auto}.sidebar-footer{padding:var(--spacing-xl);border-top:1px solid var(--color-divider);margin-top:auto;transition:padding var(--transition-base)}.sidebar.collapsed .sidebar-footer{padding:var(--spacing-md)}.user-profile{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--hair-v);transition:all var(--transition-base);cursor:pointer;overflow:hidden}.user-profile:hover{border-color:var(--lilac-300);background:var(--lilac-50)}.sidebar.collapsed .user-profile:hover{transform:none}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--violet-500);display:flex;align-items:center;justify-content:center;font-weight:var(--font-semibold);font-size:var(--text-base);color:#fff;flex-shrink:0}.user-info{flex:1;min-width:0;transition:opacity var(--transition-base)}.user-name{font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:var(--font-medium);white-space:nowrap}.nav-menu::-webkit-scrollbar{width:4px}.nav-menu::-webkit-scrollbar-track{background:transparent}.nav-menu::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.nav-menu::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.pc-section{margin-bottom:var(--spacing-2xl)}.pc-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.pc-section-label{margin-bottom:0}.pc-sort{position:relative}.pc-sort-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;min-height:44px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--violet-600);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer}.pc-sort-btn:hover{background:var(--lilac-50)}.pc-sort-menu{right:0;min-width:180px}.pc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}@media(min-width:640px){.pc-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}}@media(min-width:1024px){.pc-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1536px){.pc-grid{grid-template-columns:repeat(4,minmax(0,420px))}}.pc-grid-item{position:relative;container-type:inline-size}.pc-grid-item:has(.pc-popover){z-index:4}.pc-drop-before:before,.pc-drop-after:after{content:"";position:absolute;background:var(--violet-400);border-radius:var(--radius-full);z-index:2;top:0;bottom:0;width:2px}.pc-drop-before:before{left:calc(-1 * var(--spacing-sm))}.pc-drop-after:after{right:calc(-1 * var(--spacing-sm))}@media(max-width:639px){.pc-drop-before:before,.pc-drop-after:after{top:auto;width:auto;height:2px;left:0;right:0}.pc-drop-before:before{top:calc(-1 * var(--spacing-xs))}.pc-drop-after:after{bottom:calc(-1 * var(--spacing-xs))}}.pc-grid-movemode .pc{pointer-events:none}.pc{position:relative;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:3 / 2;height:auto;background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-2xl);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}@media(min-resolution:2dppx){.pc{border-width:.5px}}@container (max-width: 400px){.pc{padding:var(--spacing-md)}}.pc:hover,.pc:focus-within{background:var(--color-bg-card-hover);border-color:var(--hair-v);box-shadow:var(--shadow-glass-hover)}@supports selector(:has(*)){.pc:has(.pc-action:focus-visible){outline:2px solid var(--violet-500);outline-offset:2px}.pc:has(.pc-action:focus-visible) .pc-action:focus-visible{outline:none}}.pc-action:focus-visible,.pc-icon-btn:focus-visible,.pc-more-chip:focus-visible,.pc-sort-btn:focus-visible,.pc-menu-item:focus-visible,.pc-swatch-hit:focus-visible,.pc-rename-input:focus-visible,.pc-rename-save:focus-visible,.pc-empty-action:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.pc-moving{outline:2px solid var(--violet-500);outline-offset:2px;box-shadow:var(--shadow-lg)}.pc-dragging{transform:scale(1.02);opacity:.9;box-shadow:var(--shadow-lg)}@media(prefers-reduced-motion:reduce){.pc-dragging{transform:none;opacity:1;outline:2px solid var(--violet-500);outline-offset:2px}}.pc-head{order:1}.pc-badges{order:2}.pc-rail-band{order:3}.pc-foot{order:4}.pc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-xs)}.pc-head-text{min-width:0}.pc-title{font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.pc-nickname{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.pc-chrome{position:relative;display:flex;align-items:center;flex-shrink:0;z-index:1}.pc-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-10px -6px -10px 0;padding:0;background:transparent;border:none;border-radius:var(--radius-full);color:var(--ink-3);cursor:pointer;transition:color var(--transition-fast),opacity var(--transition-fast)}.pc-star{color:var(--ink-4);opacity:0}.pc:hover .pc-star,.pc:focus-within .pc-star,.pc-star-on{opacity:1}@media(hover:none){.pc-star{opacity:1}}.pc-star-on{color:var(--warn)}.pc-icon-btn:hover{color:var(--ink-2);background:var(--lilac-50)}.pc-popover{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:6;min-width:168px;padding:4px}.pc-menu-item{display:block;width:100%;text-align:left;padding:10px 12px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--violet-700);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer}.pc-menu-item:hover,.pc-menu-item:focus-visible{background:var(--lilac-50)}.pc-menu-item[aria-disabled=true]{color:var(--ink-4);cursor:default}.pc-menu-item[aria-disabled=true]:hover{background:transparent}.pc-menu-hint{display:block;font-size:11px;font-weight:500;color:var(--ink-2);margin-top:2px}.pc-menu-item[aria-checked=true]{background:var(--lilac-50);font-weight:600}.pc-picker{display:grid;grid-template-columns:repeat(4,44px)}.pc-swatch-hit{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;padding:0;cursor:pointer}.pc-swatch{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);color:var(--on-accent)}.pc-swatch-selected .pc-swatch{outline:2px solid var(--ink);outline-offset:2px}.pc-badge-popover{min-width:200px;padding:var(--spacing-xs)}.pc-badge-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pc-badges{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:22px;z-index:1}.pc-pill-new_level_unlocked{background:var(--ok-bg);color:var(--ok-ink)}.pc-pill-new_level_unlocked .dot{background:var(--ok)}.pc-pill-quiz_ready{background:var(--prog-bg);color:var(--prog-ink)}.pc-pill-quiz_ready .dot{background:var(--prog)}.pc-pill-tutor_note{background:var(--lilac-100);color:var(--violet-700)}.pc-pill-tutor_note .dot{background:var(--violet-500)}.pc-pill-review_assigned{background:var(--warn-bg);color:var(--warn-ink)}.pc-pill-review_assigned .dot{background:var(--warn)}.pc-pill-lock{background:var(--lock-bg);color:var(--lock-ink)}.pc-pill-lock .dot{background:var(--lock)}.pc-badge-more{position:relative;display:inline-flex}.pc-more-chip{position:relative;z-index:0;display:inline-flex;align-items:center;font-family:var(--sans);font-size:12px;font-weight:600;padding:4px 10px;margin:-10px 0;min-height:44px;border-radius:var(--radius-full);background:transparent;border:none;cursor:pointer;color:var(--ink-2)}.pc-more-chip:before{content:"";position:absolute;left:0;right:0;top:50%;height:22px;transform:translateY(-50%);background:var(--surface-2);border-radius:var(--radius-full);z-index:-1}.pc-rail-band{padding:var(--spacing-xs) 0}.pc-rail{display:block;width:100%;height:44px}.pc-string{fill:none;stroke:var(--card-accent, var(--accent-wisteria));stroke-width:1.5;stroke-linecap:round}.pc-string-ahead{stroke-opacity:var(--string-ahead-opacity)}.pc-knot-mastered{fill:var(--ok)}.pc-knot-flourish{fill:none;stroke:var(--ok);stroke-width:1.5}.pc-knot-placed{fill:var(--surface);stroke:var(--ok);stroke-width:1.5}.pc-knot-current{fill:var(--violet-500);animation:pc-breath var(--dur-breath) ease-in-out infinite}.pc-knot-halo{fill:none;stroke:var(--violet-500);stroke-opacity:.35;stroke-width:1.5;display:none}.pc-knot-locked{fill:none;stroke:var(--lock);stroke-width:1;stroke-opacity:.8}@keyframes pc-breath{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.pc-knot-current{animation:none}.pc-knot-halo{display:block}}.pc-rail-celebrating .pc-rail-string{transform-box:fill-box;transform-origin:center;animation:pc-taut .16s cubic-bezier(.4,0,.2,1)}@keyframes pc-taut{0%{transform:scaleY(1)}50%{transform:scaleY(.94)}to{transform:scaleY(1)}}.pc-knot-tie{transform-box:fill-box;transform-origin:center;animation:pc-tie .26s var(--ease-settle) .12s both}@keyframes pc-tie{0%{transform:scale(0)}76%{transform:scale(1.06)}to{transform:scale(1)}}.pc-flourish-tie{transform-box:fill-box;transform-origin:center;animation:pc-flourish .18s var(--ease-settle) .24s both}@keyframes pc-flourish{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.pc-string-prove-in{animation:pc-prove .2s linear .16s both}@keyframes pc-prove{0%{opacity:0}to{opacity:1}}.pc-bloom{fill:var(--ok);transform-box:fill-box;transform-origin:center;animation:pc-bloom .24s var(--ease-settle) .32s both}@keyframes pc-bloom{0%{opacity:.4;transform:scale(.4)}to{opacity:0;transform:scale(2.2)}}@media(prefers-reduced-motion:reduce){.pc-rail-celebrating .pc-rail-string,.pc-knot-tie,.pc-flourish-tie,.pc-string-prove-in,.pc-bloom{animation:none}.pc-bloom{opacity:0}}.pc-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--spacing-md)}.pc-mastery{display:flex;flex-direction:column;gap:2px;min-width:3ch}.pc-mastery-num{font-family:var(--serif);font-size:28px;font-weight:500;color:var(--ink);line-height:1}.pc-mastery-pct{font-size:16px;color:var(--ink-3)}.pc-action{position:static;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);min-height:44px;padding:10px 18px;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.01em;color:var(--on-accent);background:var(--card-accent, var(--accent-wisteria));border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.pc-action:after{content:"";position:absolute;inset:0;border-radius:var(--radius-2xl)}@supports (background: color-mix(in srgb,red 50%,blue)){.pc-action:not(.pc-action-outline):hover{background:color-mix(in srgb,var(--card-accent, var(--accent-wisteria)) 86%,var(--ink))}}@supports not (background: color-mix(in srgb,red 50%,blue)){.pc-action:not(.pc-action-outline):hover{box-shadow:var(--shadow-sm)}}.pc-action-outline{background:var(--surface);color:var(--ink);border-color:var(--hair-v)}.pc-action-outline:hover{background:var(--lilac-50)}.pc-head{z-index:2}.pc-rename{position:relative;display:flex;flex-direction:column;gap:4px;margin-top:4px;z-index:1}.pc-rename-input{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink);background:var(--surface);border:1px solid var(--hair-v);border-radius:var(--radius-sm);padding:8px 10px;width:100%}.pc-rename-count{font-family:var(--sans);font-size:11px;color:var(--ink-2);min-height:14px}.pc-rename-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.pc-rename-save{display:inline-flex;align-items:center;justify-content:center;padding:7px 13px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--on-accent);background:var(--card-accent, var(--accent-wisteria));border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer}.pc-locked{background:var(--paper);border:1px solid var(--hair-v);box-shadow:none;justify-content:center;gap:var(--spacing-md)}.pc-locked:hover,.pc-locked:focus-within{background:var(--paper);border-color:var(--hair-v);box-shadow:none}.pc-title-locked{color:var(--ink-2)}.pc-locked .pc-string{stroke:var(--lilac-200);stroke-opacity:1}.pc-unlock-line{display:flex;align-items:center;gap:var(--spacing-xs);font-family:var(--sans);font-size:13px;color:var(--ink-2)}.pc-unlock-line svg{color:var(--violet-400);flex-shrink:0}.pc-unavailable .pc-rail{opacity:.4}.pc-unavailable-line{font-family:var(--sans);font-size:13px;color:var(--ink-2);text-align:right;max-width:60%}.pc-skeleton-card{justify-content:space-between}.pc-sk-title{width:60%;height:20px}.pc-sk-badge{width:72px;height:20px;border-radius:var(--radius-full)}.pc-sk-rail{width:100%;height:6px;margin:19px 0}.pc-sk-foot{display:flex;align-items:flex-end;justify-content:space-between}.pc-sk-num{width:48px;height:28px}.pc-sk-btn{width:112px;height:40px;border-radius:var(--radius-sm)}.pc-empty{max-width:420px;margin:0 auto;padding:var(--spacing-xl);background:var(--surface);border:1px dashed var(--hair-v);border-radius:var(--radius-2xl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);text-align:center}.pc-empty .pc-rail{max-width:220px}.pc-empty-title{font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}.pc-empty-body{font-family:var(--sans);font-size:14px;color:var(--ink-2)}.pc-empty-action{background:var(--accent-wisteria)}.pc-error-panel{display:flex;gap:var(--spacing-md);align-items:flex-start;background:var(--err-bg);border-left:3px solid var(--err);border-radius:var(--radius-xl);padding:var(--spacing-lg)}.pc-error-icon{color:var(--err);flex-shrink:0;margin-top:2px}.pc-error-title{font-family:var(--sans);font-size:16px;font-weight:600;color:var(--ink);margin-bottom:4px}.pc-error-body{font-family:var(--sans);font-size:14px;color:var(--ink-2);margin-bottom:var(--spacing-sm)}.pc-toast{position:fixed;left:50%;bottom:var(--spacing-lg);transform:translate(-50%);display:flex;align-items:center;gap:var(--spacing-xs);background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--sans);font-size:13px;color:var(--ink-2);z-index:20;max-width:min(92vw,480px)}.pc-toast-icon{color:var(--err);flex-shrink:0}.pc-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.pc-tutor{aspect-ratio:auto;min-height:116px;justify-content:flex-start;gap:4px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.pc-tutor:hover,.pc-tutor:focus-within{box-shadow:var(--shadow-md);border-color:var(--hair-v)}.pc-t-stalled{padding-inline-start:calc(var(--spacing-md) + 4px)}.pc-t-stalled:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:var(--radius-full);background:repeating-linear-gradient(to bottom,var(--warn) 0 6px,transparent 6px 10px)}.pc-t-open{position:absolute;inset:0;padding:0;margin:0;border:none;background:none;border-radius:var(--radius-xl);cursor:pointer}.pc-t-open:focus-visible{outline:none}@supports selector(:has(*)){.pc-tutor:has(.pc-t-open:focus-visible){outline:2px solid var(--violet-500);outline-offset:2px}}@supports not selector(:has(*)){.pc-t-open:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}}.pc-t-row{display:flex;align-items:center;gap:8px;min-width:0}.pc-t-context,.pc-t-rail-row,.pc-t-foot{padding-left:36px}.pc-t-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;border-radius:var(--radius-full);background:var(--lilac-100);color:var(--violet-700);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.02em}.pc-t-name{flex:1 1 auto;min-width:14ch;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-t-signals{display:inline-flex;align-items:center;gap:6px;flex:none}.pc-t-score{font-size:14px;font-weight:600;color:var(--ink);min-width:3ch;text-align:right}.pc-t-score-none{color:var(--ink-4)}.pc-t-trend{flex:none}.pc-t-trend-up{color:var(--ok-ink)}.pc-t-trend-flat{color:var(--lock-ink)}.pc-t-trend-down{color:var(--warn-ink)}.pc-t-sep{color:var(--ink-4)}.pc-t-inactive{font-size:12px;font-weight:600;color:var(--ink-2)}.pc-t-topic{flex:1 1 auto;min-width:0;font-size:13px;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-t-pill{flex:none;padding-block:3px}.pc-t-stallwrap{position:relative;z-index:3;display:inline-flex;flex:none}.pc-pill-stall{position:relative;background:var(--warn-bg);color:var(--warn-ink);border:none;cursor:pointer;font-family:var(--sans)}.pc-pill-stall .dot{background:var(--warn)}.pc-pill-stall:before{content:"";position:absolute;inset:-11px}.pc-pill-stall:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.pc-t-why{top:calc(100% + 8px);right:0;min-width:230px;max-width:280px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;z-index:7}.pc-t-why-head,.pc-t-note-head{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.pc-t-why-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pc-t-why-list li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.pc-t-why-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--warn);flex:none}.pc-tutor .pc-rail{height:24px;flex:1 1 auto;min-width:0}.pc-t-mastery{flex:none;min-width:4ch;text-align:right;font-size:13px;font-weight:600;color:var(--ink)}.pc-t-mastery-pct{color:var(--ink-2)}.pc-rail-mini .pc-string{stroke:var(--violet-600);stroke-width:2.5}.pc-rail-mini .pc-knot-placed{stroke-width:2.5}.pc-rail-mini .pc-knot-current{animation:none}.pc-rail-mini .pc-knot-halo{display:block;stroke-width:2}.pc-rail-mini .pc-knot-locked{stroke-width:1.75}.pc-t-focus{flex:1 1 auto;min-width:0;font-size:12px;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-t-focus-label{font-weight:600}.pc-t-focus-none{font-style:italic}.pc-t-actions{position:relative;z-index:2;display:inline-flex;align-items:center;gap:2px;flex:none}.pc-t-quick{opacity:0;margin:-12px 0}.pc-tutor:hover .pc-t-quick,.pc-tutor:focus-within .pc-t-quick{opacity:1}@media(hover:none){.pc-t-quick{opacity:1}}.pc-t-inactive-narrow{display:none}@container (max-width: 300px){.pc-t-signals .pc-t-sep,.pc-t-signals .pc-t-inactive{display:none}.pc-t-inactive-narrow{display:inline;flex:none}}.pc-t-note{top:calc(100% + 4px);right:0;width:min(300px,86vw);padding:var(--spacing-sm);display:flex;flex-direction:column;gap:6px;z-index:7}.pc-t-note-label{margin:0;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ink-2)}.pc-t-note-legend{margin:0;padding:0;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.pc-t-note-text{width:100%;resize:vertical;font-family:var(--sans);font-size:13px;color:var(--ink);padding:8px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-sm)}.pc-t-note-text:focus-visible{outline:2px solid var(--violet-500);outline-offset:1px}.pc-t-note-count{min-height:14px;font-size:11px;color:var(--ink-2)}.pc-t-note-vis{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.pc-t-radio{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;color:var(--ink);cursor:pointer}.pc-t-radio input{width:16px;height:16px;accent-color:var(--violet-600)}.pc-t-radio input:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.pc-t-note-help{font-size:12px;color:var(--ink-2)}.pc-t-note-error{font-size:13px;color:var(--warn-ink);background:var(--warn-bg);padding:6px 8px;border-radius:var(--radius-sm)}.pc-t-note-actions{display:flex;align-items:center;gap:8px}.pc-t-note-save{min-height:44px;padding:10px 16px;background:var(--violet-600);color:var(--on-accent);border:none;border-radius:var(--radius-sm);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer}.pc-t-note-save:disabled{opacity:.6;cursor:default}.pc-t-note-save:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.pc-t-why,.pc-t-note{animation:pc-t-pop .12s ease-out}@keyframes pc-t-pop{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.pc-t-why,.pc-t-note{animation:none}}.cg{display:flex;flex-direction:column;gap:var(--spacing-md)}.cg-tagline{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--violet-600)}.cg-head{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.cg-summary{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.cg-dot{width:6px;height:6px;border-radius:var(--radius-full);flex:none}.cg-dot-ok{background:var(--ok)}.cg-dot-warn{background:var(--warn)}.cg-dot-prog{background:var(--prog)}.cg-sort{display:inline-flex;margin-left:auto;border:1px solid var(--hair-v);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.cg-sort-seg{min-height:44px;padding:0 14px;background:transparent;border:none;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer}.cg-sort-seg+.cg-sort-seg{border-left:1px solid var(--hair-v)}.cg-sort-seg[aria-checked=true]{background:var(--lilac-100);color:var(--violet-700)}.cg-sort-seg:focus-visible{outline:2px solid var(--violet-500);outline-offset:-3px}.cg-group-head{display:flex;align-items:center;gap:10px;margin:0}.cg-group-label{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}.cg-group-count{font-size:11px;font-weight:600;color:var(--ink-2);word-spacing:3px}.cg-group-rule{flex:1;height:1px;background:var(--hair)}.cg-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.cg-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--spacing-sm)}@media(min-width:768px){.cg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.cg-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1600px){.cg-grid{grid-template-columns:repeat(4,minmax(0,420px))}}.cg-grid>li{min-width:0;position:relative;container-type:inline-size}.cg-grid>li:has(.pc-popover){z-index:5}.cg-student-head{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 2px;background:transparent;border:none;border-bottom:1px solid var(--hair);text-align:left;cursor:pointer}.cg-student-name{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink)}.cg-student-sum{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}.cg-student-chevron{margin-left:auto;color:var(--ink-3);flex:none;transition:transform var(--transition-fast)}.cg-student-head[aria-expanded=true] .cg-student-chevron{transform:rotate(180deg)}.cg-student-head:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}@media(prefers-reduced-motion:reduce){.cg-student-chevron{transition:none}}.cg-sk-header{width:120px;height:12px}.pc-t-skeleton{justify-content:flex-start;gap:4px}.pc-t-sk-row{display:flex;align-items:center;gap:8px}.pc-t-sk-ava{width:28px;height:28px;border-radius:var(--radius-full);flex:none}.pc-t-sk-name{width:40%;height:14px}.pc-t-sk-context{width:30%;height:12px;margin-left:36px;margin-block:5px}.pc-t-sk-rail{width:calc(100% - 36px);height:5px;margin-left:36px;margin-block:10px}.pc-t-sk-focus{width:70%;height:11px;margin-left:36px;margin-block:4px}.cg-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);max-width:420px;margin:var(--spacing-xl) auto;padding:var(--spacing-xl);border:1px dashed var(--hair-v);border-radius:var(--radius-2xl);text-align:center}.cg-empty-icon{color:var(--violet-400)}.cg-empty-title{margin:0;font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink)}.cg-empty-body{margin:0;font-size:14px;color:var(--ink-2)}.pc-admin{aspect-ratio:auto;min-height:168px;justify-content:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.pc-admin:hover,.pc-admin:focus-within{background:var(--surface);border-color:var(--hair-v);box-shadow:var(--shadow-md)}.pc-a-archived,.pc-a-archived:hover,.pc-a-archived:focus-within{background:var(--paper);border-color:var(--hair-v);box-shadow:none}.pc-a-archived .pc-a-name{color:var(--ink-2)}.pc-a-open{position:absolute;inset:0;padding:0;margin:0;border:none;background:none;border-radius:var(--radius-xl);cursor:pointer}.pc-a-open:focus-visible{outline:none}@supports selector(:has(*)){.pc-admin:has(.pc-a-open:focus-visible){outline:2px solid var(--violet-500);outline-offset:2px}}@supports not selector(:has(*)){.pc-a-open:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}}.pc-a-band{position:relative;z-index:1}.pc-a-identity{order:-1;display:flex;align-items:flex-start;gap:8px;z-index:2}.pc-a-titles{flex:1 1 auto;min-width:0}.pc-a-name{margin:0;font-family:var(--serif);font-size:18px;font-weight:500;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-a-strand{display:block;margin-top:2px}.pc-a-chip{flex:none;margin-top:2px;pointer-events:auto;cursor:default}.pc-a-menuwrap{position:relative;flex:none}.pc-a-menu-btn{width:44px;height:44px;margin:-10px -10px 0 0;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3)}.pc-a-menu-btn:hover,.pc-a-menu-btn:focus-visible{color:var(--violet-700)}.pc-a-menu{top:calc(100% - 6px);min-width:200px;animation:pc-t-pop .12s ease-out}@media(prefers-reduced-motion:reduce){.pc-a-menu{animation:none}}.pc-a-meter{display:flex;gap:4px}.pc-a-seg{flex:1 1 0;min-width:0;background:none;border:none;padding:18px 0;margin:-15px 0;cursor:pointer;border-radius:var(--radius-full)}.pc-a-seg:focus-visible{outline:2px solid var(--violet-500);outline-offset:-12px}.pc-a-seg-bar{display:block;width:100%;height:8px;border-radius:var(--radius-full)}.pc-a-seg-absent .pc-a-seg-bar{background:transparent;border:1px dashed var(--hair-v)}.pc-a-seg-warn .pc-a-seg-bar{background:var(--warn-bg);box-shadow:inset 0 0 0 1px var(--warn)}.pc-a-seg-ready .pc-a-seg-bar{background:var(--prog)}.pc-a-seg-live .pc-a-seg-bar{background:var(--ok)}.pc-a-seg-degraded .pc-a-seg-bar{background:var(--ok);box-shadow:inset 0 0 0 1px var(--warn)}.pc-a-seg-archived .pc-a-seg-bar{background:var(--lock)}.pc-a-meter-labels{display:flex;gap:4px;margin-top:4px}.pc-a-meter-label{flex:1 1 0;text-align:center;font-size:10px;font-weight:600;color:var(--ink-2)}.pc-a-dist{height:28px}.pc-a-dist-svg{display:block}.pc-a-dist-bar{fill:var(--violet-500)}.pc-a-dist-base{fill:var(--hair)}.pc-a-dist-empty{display:flex;align-items:flex-end;border-bottom:1px solid var(--hair)}.pc-a-dist-none{font-size:12px;font-style:italic;color:var(--ink-2);padding-bottom:2px}.pc-a-meta{display:flex;align-items:center;gap:6px;margin-top:auto}.pc-a-pathways-num{font-size:13px;font-weight:600;color:var(--ink)}.pc-a-pathways-label,.pc-a-meta-sep,.pc-a-noflags{font-size:12px;color:var(--ink-2)}.pc-a-flags{background:var(--warn-bg);color:var(--warn-ink)}.pc-a-flags .dot{background:var(--warn)}.pc-a-loudness{position:relative;z-index:1;display:flex;align-items:baseline;gap:6px;margin:0;font-size:13px;color:var(--warn-ink)}.pc-a-loudness-dot{flex:none;width:6px;height:6px;border-radius:var(--radius-full);background:var(--warn);transform:translateY(-1px)}.dashboard{animation:fadeIn .6s cubic-bezier(.4,0,.2,1);position:relative;min-height:100vh}.page-header{margin-bottom:var(--spacing-2xl)}.page-title{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-light);color:var(--color-text-primary);margin-bottom:var(--spacing-xs);line-height:1.2}.page-subtitle{font-size:var(--text-base);color:var(--color-text-tertiary);font-weight:var(--font-normal)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-grid{grid-template-columns:1fr}}.stat-card{background:#ffffffb3;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-xl);padding:var(--spacing-xl);display:flex;flex-direction:column;align-items:center;text-align:center;transition:all var(--transition-base);box-shadow:0 8px 32px #6a5f901a;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--color-glass-purple),transparent);opacity:0;transition:opacity var(--transition-base)}.stat-card:hover:after{opacity:1}.stat-card:hover{border-color:var(--color-border-hover);transform:translateY(-4px);box-shadow:var(--shadow-md)}.stat-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin-bottom:var(--spacing-md);flex-shrink:0}.stat-content{width:100%}.stat-value{font-family:var(--font-display);font-size:2.5rem;font-weight:var(--font-light);color:var(--color-text-primary);line-height:1;margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.5px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-2xl)}@media(max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-column{display:flex;flex-direction:column;gap:var(--spacing-xl)}.card{background:#ffffff80;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:0 8px 32px #6a5f901a;transition:all var(--transition-base)}.card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-divider)}.card-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-medium);color:var(--color-text-primary)}.btn-text{background:none;border:none;color:var(--color-primary);font-weight:var(--font-medium);font-size:var(--text-sm);cursor:pointer;transition:color var(--transition-fast)}.btn-text:hover{color:var(--color-primary-light)}.sessions-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.session-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:#ffffffb3;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1.5px solid rgba(147,197,253,.25);border-radius:var(--radius-lg);transition:all var(--transition-base);border-left:3px solid var(--color-glass-blue)}.session-item:hover{border-color:var(--color-border-hover);border-left-color:var(--color-glass-blue);box-shadow:var(--shadow-md)}.session-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.session-info{flex:1}.session-subject{font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:.25rem;font-size:var(--text-base)}.session-tutor{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:.25rem}.session-time{font-size:var(--text-sm);color:var(--color-text-tertiary)}.session-type-badge{padding:var(--spacing-xs) var(--spacing-md);background:#9a8fbe1f;color:var(--color-primary);border:1px solid rgba(154,143,190,.2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.assignments-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.assignment-item{padding:var(--spacing-md);background:#ffffffb3;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1.5px solid rgba(134,239,172,.25);border-radius:var(--radius-lg);transition:all var(--transition-base);border-left:3px solid var(--color-glass-mint)}.assignment-item:hover{border-color:var(--color-border-hover);border-left-color:var(--color-glass-mint);box-shadow:var(--shadow-md)}.assignment-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.assignment-subject-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:.25rem var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.assignment-due{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-tertiary)}.assignment-due.urgent{color:var(--color-error)}.assignment-title{font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);font-size:var(--text-base)}.assignment-status-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:.25rem var(--spacing-sm);background:var(--color-info-light);color:var(--color-glass-blue);border:1px solid rgba(110,114,162,.2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.quick-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);background:#ffffffb3;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1.5px solid rgba(154,143,190,.2);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base)}.quick-action-btn:hover{border-color:var(--color-border-hover);background:var(--color-bg-card);transform:translateY(-4px);box-shadow:var(--shadow-md)}.quick-action-icon{font-size:2rem}.quick-action-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);text-align:center}.empty-state-small{text-align:center;padding:var(--spacing-2xl) var(--spacing-md);color:var(--color-text-tertiary);font-size:var(--text-sm)}.subjects-page{animation:fadeIn .6s cubic-bezier(.4,0,.2,1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--spacing-2xl);margin-top:var(--spacing-2xl)}@media(max-width:480px){.subjects-grid{grid-template-columns:1fr}}.subject-card{background:var(--color-bg-card);border:1.5px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--spacing-2xl);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.subject-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-glass-purple),var(--color-glass-lavender),var(--color-glass-mint));opacity:0;transition:opacity var(--transition-base)}.subject-card:hover:before{opacity:1}.subject-card:hover{border-color:var(--color-border-hover);transform:translateY(-6px);box-shadow:var(--shadow-lg)}.subject-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.subject-card-icon{font-size:3.5rem;filter:drop-shadow(0 2px 8px rgba(106,95,144,.15))}.confidence-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.5px}.confidence-high{background:var(--color-success-light);color:var(--color-glass-emerald);border:1.5px solid var(--color-glass-mint)}.confidence-medium{background:var(--color-warning-light);color:#8a6f3e;border:1.5px solid var(--color-glass-amber)}.confidence-low{background:var(--color-info-light);color:var(--color-glass-blue);border:1.5px solid var(--color-glass-sky)}.subject-card-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-medium);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);line-height:1.2}.subject-card-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);line-height:1.6;font-size:var(--text-sm)}.subject-card-current{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#9a8fbe14,#c0b5d70d);border:1px solid rgba(154,143,190,.15);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);border-left:3px solid var(--color-glass-purple)}.current-label{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary)}.current-value{font-weight:var(--font-semibold);color:var(--color-primary);font-size:var(--text-sm)}.subject-card-progress{margin-bottom:var(--spacing-xl)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.progress-label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-medium)}.progress-percentage{font-weight:var(--font-bold);color:var(--color-primary);font-size:var(--text-lg);font-family:var(--font-display)}.progress-bar{width:100%;height:10px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden;position:relative;box-shadow:inset 0 1px 3px #6a5f901a}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-glass-purple),var(--color-glass-lavender));border-radius:var(--radius-full);transition:width .5s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 0 10px #9a8fbe4d}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.subject-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-item{text-align:center;padding:var(--spacing-md);background:linear-gradient(135deg,#ffffff80,#f8f7fc99);border-radius:var(--radius-md);border:1px solid var(--glass-border-light);transition:all var(--transition-fast)}.stat-item:hover{background:var(--color-bg-card);border-color:var(--color-border-hover);transform:translateY(-2px)}.stat-value{display:block;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-light);color:var(--color-text-primary);margin-bottom:var(--spacing-xs);line-height:1}.stat-label{display:block;font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.5px}.subject-card-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-purple-gradient-start),var(--color-purple-gradient-end));border:none;border-radius:var(--radius-full);color:#fff;font-weight:var(--font-semibold);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.subject-card-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md),var(--glow-purple)}.subject-card-btn:active{transform:translateY(0)}.courses-page{animation:courseFadeIn .6s cubic-bezier(.4,0,.2,1)}@keyframes courseFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.courses-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2.5rem}.courses-title{font-family:var(--font-display, "Source Serif 4", Georgia, serif);font-size:2rem;font-weight:600;color:var(--color-text-primary, #25232E);margin-bottom:.35rem;letter-spacing:-.01em}.courses-subtitle{color:var(--color-text-tertiary, #857F8E);font-size:1rem;line-height:1.5}.courses-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#9a8fbe1f;color:var(--color-primary, #6A5F90);border:1px solid rgba(154,143,190,.2);white-space:nowrap}.courses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}@media(max-width:1100px){.courses-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.courses-grid{grid-template-columns:1fr}.courses-header{flex-direction:column;align-items:flex-start;gap:1rem}}.course-card{position:relative;background:var(--color-bg-card, #ffffff);border:1.5px solid rgba(106,95,144,.1);border-radius:20px;padding:2rem;cursor:pointer;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1),border-color .28s ease;box-shadow:0 2px 8px #6a5f900f;overflow:hidden;display:flex;flex-direction:column}.course-card:hover{transform:translateY(-6px);box-shadow:0 12px 36px #6a5f901f,0 4px 12px #6a5f900f;border-color:#6a5f9033}.course-card-accent{position:absolute;top:0;left:0;right:0;height:4px;border-radius:20px 20px 0 0;opacity:0;transition:opacity .28s ease}.course-card:hover .course-card-accent{opacity:1}.course-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem}.course-card-icon-wrap{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;transition:transform .28s ease}.course-card:hover .course-card-icon-wrap{transform:scale(1.08)}.course-card-status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.course-card-title{font-family:var(--font-display, "Source Serif 4", Georgia, serif);font-size:1.4rem;font-weight:600;color:var(--color-text-primary, #25232E);margin-bottom:.3rem;letter-spacing:-.01em}.course-card-subtitle{color:var(--color-text-tertiary, #857F8E);font-size:.85rem;line-height:1.5;margin-bottom:0}.course-card-focus{display:flex;flex-direction:column;gap:.3rem;padding:.85rem 1rem;background:linear-gradient(135deg,#9a8fbe0f,#c0b5d708);border:1px solid rgba(154,143,190,.1);border-left:3px solid var(--color-glass-purple, #9A8FBE);border-radius:10px;margin-top:1.25rem;margin-bottom:1.25rem}.course-card-focus-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary, #857F8E)}.course-card-focus-value{font-size:.875rem;font-weight:600;color:var(--color-primary, #6A5F90)}.course-card-progress{margin-bottom:1.25rem}.course-card-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.course-card-progress-label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary, #56525F)}.course-card-progress-value{font-size:1rem;font-weight:800;font-family:var(--font-display, "Source Serif 4", Georgia, serif)}.course-card-bar-track{width:100%;height:8px;background:#6a5f9014;border-radius:999px;overflow:hidden}.course-card-bar-fill{height:100%;border-radius:999px;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative}.course-card-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:barShimmer 2.5s infinite}@keyframes barShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.course-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;border-top:1px solid rgba(106,95,144,.06);padding-top:1.25rem;margin-top:auto}.course-card-stat{text-align:center}.course-card-stat-value{display:block;font-family:var(--font-display, "Source Serif 4", Georgia, serif);font-size:1.15rem;font-weight:700;color:var(--color-text-primary, #25232E);margin-bottom:.15rem}.course-card-stat-label{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #AEA9B6)}.courses-skeleton{background:var(--surface-2);border-radius:6px;animation:courses-pulse 1.4s ease-in-out infinite}@keyframes courses-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.courses-skeleton{animation:none}}.courses-skeleton-title{width:200px;height:2rem}.courses-skeleton-sub{width:320px;height:1rem;margin-top:.5rem}.courses-skeleton-card{display:flex;flex-direction:column;gap:.9rem;pointer-events:none}.courses-skeleton-icon{width:48px;height:48px;border-radius:12px}.courses-skeleton-line{height:1.1rem}.courses-skeleton-block{height:5.5rem;border-radius:10px}.courses-empty{border:1px dashed var(--hair-v);border-radius:12px;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;color:var(--violet-500)}.courses-empty h2{font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--ink);margin:.25rem 0 0}.courses-empty p{color:var(--ink-3);font-size:.9rem;max-width:42ch;margin:0}.courses-error{display:flex;align-items:center;gap:.75rem;background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:10px;padding:1rem 1.25rem;margin-top:1rem}.courses-error p{margin:0;flex:1;font-size:.9rem}.courses-retry-btn{padding:.45rem .9rem;min-height:36px;font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--err);background:var(--surface);border:1px solid var(--err);border-radius:8px;cursor:pointer}.courses-page button:focus-visible,.courses-page .course-card:focus-visible{outline:2px solid var(--violet-400);outline-offset:2px}.course-detail-page{animation:cdFadeIn .5s cubic-bezier(.4,0,.2,1);max-width:960px}@keyframes cdFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.course-detail-empty{text-align:center;padding:4rem 2rem;color:var(--color-text-tertiary);font-size:1.1rem}.course-detail-breadcrumb{display:flex;align-items:center;gap:.4rem;margin-bottom:1.5rem;font-size:.85rem;color:var(--color-text-tertiary)}.course-detail-breadcrumb button{background:none;border:none;color:var(--color-primary, #6A5F90);font-weight:600;cursor:pointer;padding:0;font-size:inherit}.course-detail-breadcrumb button:hover{text-decoration:underline}.course-detail-breadcrumb span{font-weight:600;color:var(--color-text-primary)}.course-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.course-detail-header-left{display:flex;align-items:center;gap:1rem}.course-detail-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center}.course-detail-title{font-family:var(--font-display, "Source Serif 4", Georgia, serif);font-size:1.8rem;font-weight:600;color:var(--color-text-primary);letter-spacing:-.01em;margin-bottom:.15rem}.course-detail-subtitle{font-size:.9rem;color:var(--color-text-tertiary)}.course-detail-tutor-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border-radius:999px;background:#fbbf241a;color:#8a6f3e;border:1px solid rgba(251,191,36,.3);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.course-detail-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid rgba(106,95,144,.08);padding-bottom:0}.course-detail-tab{position:relative;background:none;border:none;border-bottom:3px solid transparent;padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;color:var(--color-text-tertiary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.4rem;white-space:nowrap}.course-detail-tab:hover:not(:disabled){color:var(--color-text-primary);background:#6a5f900a}.course-detail-tab.active{font-weight:700;border-bottom-width:3px}.course-detail-tab.locked{opacity:.5;cursor:not-allowed}.tab-lock-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;opacity:.7}.course-detail-lessons{display:flex;flex-direction:column;gap:.75rem}.lesson-accordion{background:var(--color-bg-card, #fff);border:1.5px solid rgba(106,95,144,.1);border-radius:14px;overflow:hidden;transition:all .25s ease}.lesson-accordion.expanded{border-color:#6a5f9033;box-shadow:0 4px 16px #6a5f9014}.lesson-accordion.locked{opacity:.55}.lesson-accordion-header{width:100%;background:none;border:none;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;transition:background .15s ease;text-align:left}.lesson-accordion-header:hover:not(:disabled){background:#6a5f9008}.lesson-accordion-header:disabled{cursor:not-allowed}.lesson-accordion-left{display:flex;align-items:center;gap:.85rem}.lesson-number{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.lesson-accordion-title{font-weight:600;color:var(--color-text-primary);font-size:.95rem;margin-bottom:.15rem}.lesson-accordion-meta{display:flex;gap:.75rem;color:var(--color-text-muted);font-size:.72rem;font-weight:500}.lesson-accordion-meta span{display:inline-flex;align-items:center;gap:.25rem}.lesson-accordion-right{display:flex;align-items:center;gap:.75rem}.access-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:8px;border:1px solid rgba(159,107,107,.3);background:#9f6b6b0f;color:#8f5d5d;font-size:.7rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.03em}.access-toggle.granted{border-color:#5e82684d;background:#5e82680f;color:#4d6b56}.access-toggle:hover{transform:scale(1.05)}.lesson-locked-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.68rem;font-weight:700;color:#aea9b6;background:#94a3b81a;border-radius:6px;text-transform:uppercase}.lesson-done-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.68rem;font-weight:700;color:#4d6b56;background:#05966914;border-radius:6px;text-transform:uppercase}.lesson-progress-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.68rem;font-weight:700;color:var(--prog);background:var(--prog-bg);border-radius:6px;text-transform:uppercase}.lesson-notstarted-badge{display:inline-flex;align-items:center;padding:.25rem .6rem;font-size:.68rem;font-weight:700;color:var(--ink-4);border:1px solid var(--hair);border-radius:6px;text-transform:uppercase}.accordion-chevron{color:var(--color-text-muted);transition:transform .25s ease;flex-shrink:0}.accordion-chevron.rotated{transform:rotate(180deg)}.lesson-accordion-body{border-top:1px solid rgba(106,95,144,.08);animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.lesson-section-tabs{display:flex;gap:0;border-bottom:2px solid rgba(106,95,144,.06);padding:0 1.25rem}.section-tab{display:flex;align-items:center;gap:.35rem;background:none;border:none;border-bottom:2px solid transparent;padding:.75rem 1rem;font-size:.8rem;font-weight:600;color:var(--color-text-tertiary);cursor:pointer;transition:all .2s ease;margin-bottom:-2px}.section-tab:hover{color:var(--color-text-primary);background:#6a5f9008}.section-tab.active{font-weight:700}.lesson-content-section{padding:1.5rem 1.25rem}.lesson-notes{line-height:1.7}.notes-heading{font-family:var(--font-display, "Source Serif 4", Georgia, serif);font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:1rem}.notes-placeholder{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1.25rem}.notes-objectives{padding:1rem;background:linear-gradient(135deg,#9a8fbe0f,#c0b5d708);border:1px solid rgba(154,143,190,.12);border-left:3px solid var(--color-glass-purple, #9A8FBE);border-radius:10px}.notes-objectives h4{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary, #6A5F90);margin-bottom:.6rem}.notes-objectives ul{padding-left:1.25rem;color:var(--color-text-secondary);font-size:.85rem;display:flex;flex-direction:column;gap:.35rem}.homework-section{display:flex;flex-direction:column;gap:1.25rem}.homework-notice{display:flex;align-items:flex-start;gap:.6rem;padding:.85rem 1rem;background:#fbbf240f;border:1px solid rgba(251,191,36,.2);border-radius:10px;color:#8a6f3e;font-size:.85rem;line-height:1.5}.homework-notice svg{flex-shrink:0;margin-top:.1rem}.homework-questions h4{font-size:.85rem;font-weight:700;color:var(--color-text-primary);margin-bottom:.6rem}.homework-questions ol{padding-left:1.25rem;color:var(--color-text-secondary);font-size:.85rem;line-height:1.7;display:flex;flex-direction:column;gap:.4rem}.homework-checkbox{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:10px;border:1.5px solid rgba(106,95,144,.15);background:none;color:var(--color-text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;align-self:flex-start}.homework-checkbox:hover{border-color:var(--color-primary, #6A5F90)}.homework-checkbox.checked{background:#5e826814;border-color:#5e82684d;color:#4d6b56}.quiz-section{display:flex;flex-direction:column;gap:1.25rem}.quiz-tutor-controls{padding:1.25rem;background:#fbbf240a;border:1px solid rgba(251,191,36,.15);border-radius:12px}.quiz-tutor-controls h4{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:700;color:#8a6f3e;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.03em}.quiz-settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}.quiz-setting label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);margin-bottom:.35rem}.quiz-setting input{width:100%;padding:.5rem .75rem;border:1.5px solid rgba(106,95,144,.15);border-radius:8px;font-size:.8rem;font-family:inherit;color:var(--color-text-primary);background:#fff;transition:border-color .2s ease}.quiz-setting input:focus{outline:none;border-color:var(--color-primary, #6A5F90);box-shadow:0 0 0 3px #6a5f9014}.quiz-setting-static{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border:1.5px solid rgba(106,95,144,.1);border-radius:8px;font-size:.8rem;color:var(--color-text-secondary);background:#6a5f9008}.quiz-save-btn{display:inline-flex;padding:.55rem 1.5rem;border-radius:10px;border:none;color:#fff;font-weight:700;font-size:.8rem;cursor:pointer;transition:all .2s ease;margin-bottom:.5rem}.quiz-save-btn:hover{opacity:.9;transform:translateY(-1px)}.quiz-status-indicator{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-text-tertiary)}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.active{background:#5e8268;box-shadow:0 0 6px #5e826866}.status-dot.inactive{background:#9f6b6b;box-shadow:0 0 6px #9f6b6b66}.quiz-student-view{display:flex;flex-direction:column;gap:1.25rem}.quiz-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.quiz-info-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#6a5f900a;border-radius:10px;border:1px solid rgba(106,95,144,.08)}.quiz-info-item svg{color:var(--color-primary, #6A5F90);flex-shrink:0}.qi-label{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.1rem}.qi-value{display:block;font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.quiz-start-btn{padding:.75rem 2rem;border-radius:12px;border:none;color:#fff;font-weight:700;font-size:.95rem;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 16px #0000001f;align-self:flex-start}.quiz-start-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0000002e}.quiz-locked-msg,.quiz-closed-msg{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;font-size:.85rem;font-weight:600}.quiz-locked-msg{background:#94a3b814;color:#857f8e;border:1px solid rgba(148,163,184,.2)}.quiz-closed-msg{background:#9f6b6b0f;color:#8f5d5d;border:1px solid rgba(159,107,107,.15)}.quiz-completed-msg{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;font-size:.85rem;font-weight:600;background:#5e826814;color:#4d6b56;border:1px solid rgba(94,130,104,.2)}@media(max-width:680px){.course-detail-header{flex-direction:column;align-items:flex-start;gap:1rem}.course-detail-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.quiz-settings-grid,.quiz-info-grid{grid-template-columns:1fr}.lesson-accordion-right{flex-direction:column;align-items:flex-end;gap:.35rem}}.lesson-rich-content{font-size:.9rem;line-height:1.75;color:var(--color-text-secondary, #56525F)}.lesson-rich-content h2{font-family:var(--font-display, "Source Serif 4", Georgia, serif);font-size:1.15rem;font-weight:700;color:var(--color-text-primary, #1C1A23);margin:1.75rem 0 .75rem;padding-bottom:.35rem;border-bottom:2px solid rgba(106,95,144,.1)}.lesson-rich-content h2:first-child{margin-top:0}.lesson-rich-content h3{font-size:.95rem;font-weight:700;color:var(--color-text-primary, #2C2A35);margin:1.25rem 0 .5rem}.lesson-rich-content h4{font-size:.88rem;font-weight:700;color:var(--color-text-primary, #2C2A35);margin:.75rem 0 .4rem}.lesson-rich-content p{margin:0 0 .75rem}.lesson-rich-content ul,.lesson-rich-content ol{padding-left:1.5rem;margin:.5rem 0}.lesson-rich-content li{margin-bottom:.35rem}.lesson-rich-content hr{border:none;border-top:1.5px solid rgba(106,95,144,.08);margin:1.5rem 0}.lesson-rich-content code{background:#6a5f9014;padding:.15rem .45rem;border-radius:5px;font-size:.82rem;font-family:SFMono-Regular,Consolas,monospace;color:#6a5f90}.lesson-rich-content em{color:#56525f}.lesson-rich-content strong{color:var(--color-text-primary, #1C1A23)}.info-box{padding:1rem 1.25rem;border-radius:10px;margin:.75rem 0;border:1px solid rgba(0,0,0,.06)}.info-box h4{margin-top:0!important;margin-bottom:.35rem!important}.info-box-blue{background:#2563eb0d;border-color:#2563eb1f}.info-box-amber{background:#a8884f0d;border-color:#a8884f1f}.key-principle,.selective-insight{padding:.85rem 1rem;border-radius:10px;margin:.75rem 0;font-size:.88rem;line-height:1.6}.key-principle{background:linear-gradient(135deg,#5e82680f,#05966908);border-left:3px solid #5E8268}.selective-insight{background:linear-gradient(135deg,#6a5f900f,#8b5cf608);border-left:3px solid #6A5F90}.structure-card{background:var(--color-bg-card, #fff);border:1px solid rgba(106,95,144,.1);border-radius:12px;padding:1rem 1.25rem;margin:.5rem 0;transition:box-shadow .2s ease}.structure-card:hover{box-shadow:0 2px 10px #6a5f9014}.structure-card h4{margin-top:0!important;color:#6a5f90!important}.info-table{width:100%;border-collapse:separate;border-spacing:0;margin:.75rem 0;font-size:.85rem;border-radius:10px;overflow:hidden;border:1px solid rgba(106,95,144,.1)}.info-table th{background:#6a5f900f;padding:.65rem 1rem;text-align:left;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#6a5f90;border-bottom:1px solid rgba(106,95,144,.1)}.info-table td{padding:.6rem 1rem;border-bottom:1px solid rgba(106,95,144,.06);color:var(--color-text-secondary, #56525F)}.info-table tr:last-child td{border-bottom:none}.homework-rich-content{font-size:.9rem;line-height:1.7;color:var(--color-text-secondary, #56525F)}.homework-task{background:var(--color-bg-card, #fff);border:1px solid rgba(106,95,144,.1);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1rem}.homework-task h3{font-size:1rem;font-weight:700;color:var(--color-text-primary, #1C1A23);margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.time-badge{font-size:.7rem;font-weight:700;padding:.2rem .6rem;border-radius:6px;background:#6a5f9014;color:#6a5f90}.homework-task ol{padding-left:1.5rem;margin:.5rem 0}.homework-task li{margin-bottom:.5rem}.marks{font-size:.75rem;font-weight:700;color:#6a5f90;opacity:.8}.passage{background:#f5f5f5cc;border-left:3px solid #6A5F90;padding:1rem 1.25rem;margin:.75rem 0;border-radius:0 10px 10px 0;font-style:italic;color:#56525f;line-height:1.75;font-size:.88rem}.topic-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.topic-chips span{display:inline-block;padding:.35rem .85rem;border-radius:8px;background:#6a5f900f;border:1px solid rgba(106,95,144,.12);font-size:.82rem;font-weight:600;color:#6a5f90}.frac{display:inline-block;font-weight:600;text-align:center;vertical-align:middle;font-size:1em;letter-spacing:-.5px}.frac sup,.frac sub{font-size:.88em;font-weight:700;color:#6a5f90}.frac sup{vertical-align:super}.frac sub{vertical-align:sub}.math-display{display:block;text-align:center;font-size:1.1rem;padding:.85rem 1rem;margin:.75rem 0;background:#6a5f900a;border-radius:10px;border:1px solid rgba(106,95,144,.08);font-weight:600;color:#1c1a23;line-height:2}.cd-skeleton{background:var(--surface-2);border-radius:6px;animation:cd-pulse 1.4s ease-in-out infinite}@keyframes cd-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.cd-skeleton{animation:none}}.cd-skeleton-breadcrumb{width:220px;height:.9rem;margin-bottom:1.25rem}.cd-skeleton-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.cd-skeleton-icon{width:56px;height:56px;border-radius:14px;flex-shrink:0}.cd-skeleton-title{width:40%;height:1.6rem}.cd-skeleton-sub{width:25%;height:.9rem;margin-top:.5rem}.cd-skeleton-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem}.cd-skeleton-tab{width:110px;height:2.2rem;border-radius:8px}.cd-skeleton-lesson{height:4rem;border-radius:10px;margin-bottom:.6rem}.course-detail-page button:focus-visible{outline:2px solid var(--violet-400);outline-offset:2px}.quiz-page{min-height:100vh;background:#fbfaf7;font-family:Inter,-apple-system,sans-serif}.quiz-page-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#857f8e}.quiz-start-screen{max-width:600px;margin:0 auto;padding:80px 24px;text-align:center}.quiz-start-icon{width:80px;height:80px;border-radius:20px;background:linear-gradient(135deg,#6a5f90,#564d75);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:#fff}.quiz-start-screen h1{font-size:1.75rem;font-weight:700;color:#1c1a23;margin:0 0 8px}.quiz-start-lesson{color:#857f8e;font-size:.95rem;margin:0 0 32px}.quiz-start-info{display:flex;gap:16px;justify-content:center;margin-bottom:32px;flex-wrap:wrap}.quiz-info-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #E6E1D8;border-radius:12px;padding:14px 20px;min-width:160px}.quiz-info-card svg{color:#6a5f90;flex-shrink:0}.quiz-info-card div{display:flex;flex-direction:column;text-align:left}.info-label{font-size:.75rem;color:#aea9b6;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:.95rem;font-weight:600;color:#1c1a23}.quiz-start-instructions{color:#56525f;font-size:.9rem;background:#f4f1f9;border:1px solid #D9D1E8;border-radius:10px;padding:14px 20px;margin-bottom:32px;line-height:1.5}.quiz-start-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.quiz-start-btn-main{background:linear-gradient(135deg,#6a5f90,#564d75);color:#fff;border:none;border-radius:12px;padding:14px 48px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s}.quiz-start-btn-main:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6a5f9059}.quiz-start-btn-back,.quiz-back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:#857f8e;font-size:.9rem;cursor:pointer;padding:8px 16px;border-radius:8px}.quiz-start-btn-back:hover,.quiz-back-btn:hover{background:#f4f1ec;color:#2c2a35}.quiz-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #E6E1D8;padding:12px 24px;box-shadow:0 1px 4px #0000000a}.quiz-topbar-left{display:flex;align-items:center;gap:10px;color:#6a5f90}.quiz-topbar-title{font-weight:600;font-size:.95rem;color:#1c1a23}.quiz-topbar-timer{display:flex;align-items:center;gap:6px;font-weight:700;font-size:1.1rem;font-variant-numeric:tabular-nums;color:#1c1a23;background:#f4f1ec;padding:8px 16px;border-radius:10px}.quiz-topbar-timer.warning{color:#a8884f;background:#f1e9d9}.quiz-topbar-timer.critical{color:#9f6b6b;background:#efe3e3;animation:pulse-timer 1s infinite}@keyframes pulse-timer{0%,to{opacity:1}50%{opacity:.6}}.quiz-layout{display:flex;min-height:calc(100vh - 57px)}.quiz-nav{width:220px;background:#fff;border-right:1px solid #E6E1D8;padding:20px 16px;flex-shrink:0;display:flex;flex-direction:column}.quiz-nav h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:#aea9b6;margin:0 0 16px}.quiz-nav-section{margin-bottom:16px}.quiz-nav-section-title{font-size:.75rem;font-weight:600;color:#857f8e;display:block;margin-bottom:8px}.quiz-nav-dots{display:flex;flex-wrap:wrap;gap:6px}.quiz-nav-dot{width:32px;height:32px;border-radius:8px;border:1.5px solid #E6E1D8;background:#fff;font-size:.8rem;font-weight:600;color:#aea9b6;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.quiz-nav-dot:hover{border-color:#6a5f90;color:#6a5f90}.quiz-nav-dot.active{background:#6a5f90;border-color:#6a5f90;color:#fff}.quiz-nav-dot.answered{background:#f4f1f9;border-color:#c0b5d7;color:#6a5f90}.quiz-nav-dot.active.answered{background:#6a5f90;color:#fff}.quiz-submit-btn{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#6a5f90,#564d75);color:#fff;border:none;border-radius:10px;padding:12px 16px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s}.quiz-submit-btn:hover{box-shadow:0 4px 12px #6a5f904d}.quiz-main{flex:1;padding:32px 40px;max-width:800px}.quiz-section-header{margin-bottom:24px}.section-badge{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#6a5f90;background:#f4f1f9;padding:4px 10px;border-radius:6px;margin-bottom:8px}.quiz-section-header h2{font-size:1.3rem;font-weight:700;color:#1c1a23;margin:0 0 4px}.section-instructions{color:#857f8e;font-size:.9rem;font-style:italic}.quiz-question-card{background:#fff;border:1px solid #E6E1D8;border-radius:16px;padding:32px;box-shadow:0 2px 8px #0000000a}.quiz-question-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.q-number{font-weight:700;font-size:1rem;color:#1c1a23}.q-marks{font-size:.85rem;color:#6a5f90;font-weight:600;display:flex;align-items:center;gap:6px}.bonus-tag{font-size:.65rem;background:linear-gradient(135deg,#a8884f,#8a6f3e);color:#fff;padding:2px 8px;border-radius:6px;font-weight:700;letter-spacing:.5px}.quiz-passage{background:#f4f1f9;border:1px solid #D9D1E8;border-radius:12px;padding:20px 24px;margin-bottom:20px;font-size:.92rem;line-height:1.7;color:#2c2a35}.quiz-passage h4{font-size:1.05rem;font-weight:700;margin:0 0 12px;color:#1c1a23}.quiz-passage p{margin:0 0 12px}.quiz-passage p:last-child{margin-bottom:0}.quiz-question-text{font-size:.95rem;line-height:1.65;color:#2c2a35;margin-bottom:20px}.quiz-question-text blockquote{background:#fbfaf7;border-left:3px solid #6A5F90;padding:14px 18px;margin:12px 0;border-radius:0 8px 8px 0;font-style:italic;color:#56525f;line-height:1.7}.quiz-question-text ul,.quiz-question-text ol{padding-left:24px;margin:8px 0}.quiz-question-text li{margin-bottom:4px}.quiz-mc-options{display:flex;flex-direction:column;gap:10px}.quiz-mc-option{display:flex;align-items:flex-start;gap:14px;background:#fff;border:2px solid #E6E1D8;border-radius:12px;padding:14px 18px;text-align:left;cursor:pointer;transition:all .15s;font-size:.92rem;line-height:1.5;color:#2c2a35}.quiz-mc-option:hover{border-color:#c0b5d7;background:#fbfaf7}.quiz-mc-option.selected{border-color:#6a5f90;background:#f4f1f9}.mc-letter{flex-shrink:0;width:28px;height:28px;border-radius:8px;background:#f4f1ec;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:#857f8e;transition:all .15s}.quiz-mc-option.selected .mc-letter{background:#6a5f90;color:#fff}.mc-text{padding-top:3px}.quiz-textarea{width:100%;border:2px solid #E6E1D8;border-radius:12px;padding:14px 16px;font-family:Inter,-apple-system,sans-serif;font-size:.92rem;line-height:1.6;resize:vertical;transition:border-color .2s;background:#fff;color:#2c2a35}.quiz-textarea:focus{outline:none;border-color:#6a5f90;box-shadow:0 0 0 3px #6a5f901a}.quiz-textarea::placeholder{color:#bbb}.quiz-sub-questions{display:flex;flex-direction:column;gap:24px}.quiz-sub-question{border-top:1px solid #EDE9E1;padding-top:20px}.sub-q-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.sub-q-label{font-weight:700;font-size:.95rem;color:#6a5f90}.sub-q-title{font-weight:600;font-size:.95rem;color:#1c1a23}.sub-q-marks{font-size:.8rem;color:#aea9b6;margin-left:auto}.sub-q-text{font-size:.9rem;color:#56525f;margin-bottom:12px;line-height:1.5}.quiz-question-nav{display:flex;align-items:center;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid #EDE9E1}.q-nav-btn{display:flex;align-items:center;gap:6px;background:#f4f1ec;border:none;border-radius:10px;padding:10px 20px;font-weight:600;font-size:.9rem;cursor:pointer;color:#56525f;transition:all .15s}.q-nav-btn:hover{background:#e6e1d8}.q-nav-btn.primary{background:#6a5f90;color:#fff}.q-nav-btn.primary:hover{background:#564d75}.q-nav-btn.submit{background:linear-gradient(135deg,#5e8268,#4d6b56);color:#fff}.q-nav-btn.submit:hover{box-shadow:0 4px 12px #5e82684d}.quiz-results{max-width:700px;margin:0 auto;padding:60px 24px;text-align:center}.quiz-results-badge{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.quiz-results-badge.excellent{background:#e7ede7;color:#4d6b56}.quiz-results-badge.good{background:#f1e9d9;color:#8a6f3e}.quiz-results-badge.needs-work{background:#efe3e3;color:#8f5d5d}.quiz-results h1{font-size:1.75rem;font-weight:700;color:#1c1a23;margin:0 0 6px}.quiz-results-subtitle{color:#857f8e;font-size:.9rem;margin:0 0 32px}.quiz-results-score{margin-bottom:40px}.score-circle{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-bottom:8px}.score-number{font-size:3rem;font-weight:800;color:#6a5f90}.score-divider{font-size:2rem;color:#d8d2c6}.score-total{font-size:1.5rem;font-weight:600;color:#aea9b6}.score-pct{font-size:1.1rem;font-weight:600;color:#2c2a35;margin:0 0 6px}.score-note{font-size:.85rem;color:#aea9b6}.quiz-results-review{text-align:left;margin-top:40px}.quiz-results-review h3{font-size:1.1rem;font-weight:700;color:#1c1a23;margin:0 0 16px}.review-item{background:#fff;border:1px solid #E6E1D8;border-radius:12px;padding:16px 20px;margin-bottom:12px}.review-item.correct{border-color:#cfe0d3}.review-item.incorrect{border-color:#e3c7c7}.review-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.review-num{font-weight:700;font-size:.9rem;color:#1c1a23}.review-question{font-size:.88rem;color:#56525f;margin:0 0 10px;line-height:1.5}.review-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:.85rem;color:#56525f;margin-bottom:4px}.review-option .opt-letter{width:22px;height:22px;border-radius:6px;background:#f4f1ec;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.7rem;flex-shrink:0}.review-option.is-correct{background:#e7ede7;color:#4d6b56;font-weight:600}.review-option.is-correct .opt-letter{background:#5e8268;color:#fff}.review-option.is-wrong{background:#efe3e3;color:#8f5d5d}.review-option.is-wrong .opt-letter{background:#9f6b6b;color:#fff}.quiz-results-actions{margin-top:32px;text-align:center}@media(max-width:768px){.quiz-nav{display:none}.quiz-main{padding:20px 16px}.quiz-question-card{padding:20px}.quiz-start-info{flex-direction:column}}.quiz-question-text .frac,.quiz-passage .frac,.quiz-mc-option .frac,.sub-q-text .frac{display:inline-block;font-weight:600;vertical-align:middle;letter-spacing:-.5px}.quiz-question-text .frac sup,.quiz-question-text .frac sub,.quiz-passage .frac sup,.quiz-passage .frac sub,.sub-q-text .frac sup,.sub-q-text .frac sub{font-size:.88em;font-weight:700;color:#6a5f90}.quiz-question-text .math-display,.quiz-passage .math-display,.sub-q-text .math-display{display:block;text-align:center;font-size:1.1rem;padding:.75rem 1rem;margin:.75rem 0;background:#6a5f900a;border-radius:10px;border:1px solid rgba(106,95,144,.08);font-weight:600;color:#1c1a23;line-height:2}.qv-skeleton{background:var(--surface-2);border-radius:6px;animation:qv-pulse 1.4s ease-in-out infinite}@keyframes qv-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.qv-skeleton{animation:none}}.qv-skeleton-icon{width:72px;height:72px;border-radius:18px;margin:0 auto}.qv-skeleton-title{width:60%;height:1.8rem;margin:1rem auto 0}.qv-skeleton-sub{width:40%;height:1rem;margin:.6rem auto 1.25rem}.qv-skeleton-card{width:160px;height:4rem;border-radius:10px}.qv-skeleton-btn{width:180px;height:2.8rem;border-radius:10px;margin:1.5rem auto 0}.quiz-page button:focus-visible{outline:2px solid var(--violet-400);outline-offset:2px}.quiz-page button:disabled{opacity:.6;cursor:not-allowed}.quiz-submit-error{display:flex;align-items:center;gap:.6rem;margin:.75rem 0;padding:.75rem 1rem;background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:8px;font-size:.9rem}.quiz-submit-error-msg{flex:1}.quiz-submit-error-retry{padding:.4rem .9rem;min-height:36px;border-radius:6px;cursor:pointer;border:1px solid var(--err);background:var(--surface);color:var(--err);font-family:var(--sans);font-weight:600}.tgv-page{display:flex;flex-direction:column;gap:1.25rem}.tgv-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.tgv-title{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:2rem;color:var(--ink);margin:0}.tgv-tagline{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--violet-500);margin:.25rem 0 0;font-size:1rem}.tgv-header-count{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0}.tgv-count-num{font-family:var(--serif);font-size:1.75rem;line-height:1.1;color:var(--ink)}.tgv-queue-card{background:var(--surface);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow-md);overflow:hidden}.tgv-queue-head,.tgv-queue-row{display:grid;grid-template-columns:44px minmax(220px,1fr) 110px 130px 90px 84px;align-items:center;gap:.75rem;padding:.6rem 1rem}.tgv-queue-head{background:var(--surface-2);border-bottom:1px solid var(--hair)}.tgv-queue-head .tgv-num{text-align:right}.tgv-queue-list{list-style:none;margin:0;padding:0}.tgv-queue-row{border-bottom:1px solid var(--hair);animation:tgv-enter .2s ease-out both}.tgv-queue-row:last-child{border-bottom:none}@keyframes tgv-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.tgv-queue-row{animation:none}}.tgv-avatar{width:32px;height:32px;border-radius:50%;background:var(--violet-500);color:var(--on-accent);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.tgv-avatar.av-2{background:var(--violet-400)}.tgv-avatar.av-3{background:var(--violet-600)}.tgv-avatar-lg{width:40px;height:40px;font-size:13px}.tgv-queue-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}.tgv-queue-title{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tgv-queue-meta{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tgv-queue-dot{color:var(--ink-4)}.tgv-queue-course-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.tgv-queue-date{font-size:.85rem;color:var(--ink-3);white-space:nowrap}.tgv-queue-mark{text-align:right;color:var(--ink);white-space:nowrap}.tgv-gradebar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tgv-gradebar-count{font-size:.85rem;font-weight:600;color:var(--ink-3)}.tgv-grading-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;align-items:start}@media(max-width:960px){.tgv-grading-layout{grid-template-columns:1fr}}.tgv-reading{background:var(--surface);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow-md);padding:1.75rem 2rem 2rem;animation:tgv-enter .2s ease-out both}@media(prefers-reduced-motion:reduce){.tgv-reading{animation:none}}.tgv-student-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.tgv-student-name{display:block;font-weight:600;color:var(--ink)}.tgv-student-sub{display:block;font-size:.8rem;color:var(--ink-3)}.tgv-kicker{display:block;color:var(--violet-600);margin-bottom:.5rem}.tgv-work-title{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:1.75rem;line-height:1.25;color:var(--ink);margin:0 0 1.5rem}.tgv-reading-essay>*{max-width:620px;margin-left:auto;margin-right:auto}.tgv-essay{font-family:var(--serif);font-size:17px;line-height:1.8;color:var(--ink);white-space:pre-wrap;max-width:62ch}.tgv-essay-link a{color:var(--violet-600);word-break:break-all}.tgv-section{margin-bottom:1.75rem}.tgv-section-label{display:block;padding-bottom:.5rem;border-bottom:1px solid var(--hair);margin-bottom:1rem}.tgv-question{padding:1rem 0 1.25rem;border-bottom:1px solid var(--hair)}.tgv-question:last-child{border-bottom:none}.tgv-q-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.5rem}.tgv-q-num{font-weight:700;color:var(--violet-600);font-size:.85rem}.tgv-q-marks{margin-left:auto;font-size:.8rem;color:var(--ink-3);white-space:nowrap}.tgv-passage{font-family:var(--serif);font-size:15px;line-height:1.7;color:var(--ink-2);background:var(--paper);border-left:3px solid var(--lilac-200);border-radius:0 8px 8px 0;padding:.75rem 1rem;margin-bottom:.75rem}.tgv-q-text{color:var(--ink);font-size:.95rem;line-height:1.6;margin-bottom:.6rem}.tgv-mc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.tgv-mc-opt{display:flex;align-items:baseline;gap:.6rem;font-size:.9rem;color:var(--ink-2);border:1px solid var(--hair);border-radius:8px;padding:.45rem .75rem}.tgv-mc-opt.is-key{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.tgv-mc-opt.is-wrong-pick{background:var(--err-bg);border-color:var(--err);color:var(--err)}.tgv-mc-letter{font-weight:700;flex-shrink:0}.tgv-mc-text{flex:1}.tgv-mc-tag{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.tgv-answer{font-family:var(--serif);font-size:16px;line-height:1.8;color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:8px;padding:.85rem 1rem;white-space:pre-wrap}.tgv-no-answer{color:var(--ink-4);font-family:var(--sans);font-size:.9rem}.tgv-subq{margin-top:.9rem;padding-left:.9rem;border-left:2px solid var(--hair-v)}.tgv-subq-head{display:flex;gap:.5rem;align-items:baseline;font-weight:600;color:var(--ink);margin-bottom:.35rem}.tgv-subq-title{font-size:.9rem}.tgv-mark-row{display:flex;align-items:center;gap:.5rem;margin-top:.6rem}.tgv-mark-row label{font-size:.8rem;font-weight:600;color:var(--ink-3)}.tgv-mark-input{width:74px;min-height:36px;padding:.35rem .6rem;font-family:var(--sans);font-size:.9rem;text-align:right;color:var(--ink);background:var(--surface);border:1px solid var(--hair-v);border-radius:8px;transition:border-color .15s ease-out}.tgv-mark-input:focus{outline:none;border-color:var(--violet-400)}.tgv-mark-max{color:var(--ink-3);font-size:.85rem}.tgv-mark-readonly{margin:.5rem 0 0;font-size:.85rem;font-weight:600;color:var(--ink-2)}.tgv-rail{position:sticky;top:1.5rem;background:var(--paper);border:1px solid var(--hair);border-radius:12px;padding:1.25rem 1.25rem 1.5rem;display:flex;flex-direction:column;gap:.9rem}.tgv-rubric{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.tgv-rubric-row .track{margin-top:.4rem}.tgv-rubric-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.85rem;color:var(--ink-2)}.tgv-rubric-head .mono{font-size:.8rem;color:var(--ink-2)}.tgv-rubric-name{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tgv-rail-mark-row{margin-top:.7rem}.tgv-rail-divider{height:1px;background:var(--hair)}.tgv-total-row{display:flex;align-items:baseline;justify-content:space-between}.tgv-total{font-family:var(--serif);font-size:2rem;font-weight:500;line-height:1.1;color:var(--ink)}.tgv-total-max{font-size:1rem;font-weight:400;color:var(--ink-3)}.tgv-feedback-label{margin-bottom:-.4rem}.tgv-feedback{width:100%;font-family:var(--sans);font-size:.9rem;line-height:1.55;color:var(--ink);background:var(--surface);border:1px solid var(--hair-v);border-radius:8px;padding:.6rem .75rem;resize:vertical;transition:border-color .15s ease-out}.tgv-feedback:focus{outline:none;border-color:var(--violet-400)}.tgv-feedback:disabled{background:var(--surface-2);color:var(--ink-2)}.tgv-save-error{margin:0;font-size:.85rem;color:var(--err)}.tgv-returned{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:40px;border-radius:8px;background:var(--ok-bg);color:var(--ok);font-weight:600;font-size:.9rem}.tgv-back-btn{display:inline-flex;align-items:center;gap:.35rem;min-height:36px;padding:.3rem .5rem .3rem 0;font-family:var(--sans);font-size:.85rem;font-weight:600;color:var(--ink-3);background:none;border:none;cursor:pointer;transition:color .15s ease-out}.tgv-back-btn:hover{color:var(--violet-600)}.tgv-primary-btn{min-height:40px;padding:.55rem 1.1rem;font-family:var(--sans);font-weight:600;font-size:.9rem;color:var(--on-accent);background:var(--violet-600);border:none;border-radius:8px;cursor:pointer;transition:background .15s ease-out}.tgv-primary-btn:hover:not(:disabled){background:var(--violet-700)}.tgv-primary-btn:disabled{opacity:.6;cursor:default}.tgv-secondary-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:36px;padding:.45rem .95rem;font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--violet-600);background:var(--surface);border:1px solid var(--hair-v);border-radius:8px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.tgv-secondary-btn:hover:not(:disabled){background:var(--lilac-50);border-color:var(--violet-400)}.tgv-secondary-btn:disabled{color:var(--ink-4);cursor:default}.tgv-ghost-btn{min-height:36px;padding:.4rem .85rem;font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--violet-600);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:background .15s ease-out}.tgv-ghost-btn:hover:not(:disabled){background:var(--lilac-50)}.tgv-ghost-btn:disabled{color:var(--ink-4);cursor:default}.tgv-draft-btn{width:100%;margin-top:-.4rem}.tgv-empty{border:1px dashed var(--hair-v);border-radius:12px;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;color:var(--violet-500)}.tgv-empty h2{font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--ink);margin:.25rem 0 0}.tgv-empty p{color:var(--ink-3);font-size:.9rem;max-width:44ch;margin:0}.tgv-error{background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:10px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.tgv-error p{margin:0;font-size:.9rem}.tgv-retry-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;min-height:36px;font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--err);background:var(--surface);border:1px solid var(--err);border-radius:8px;cursor:pointer}.tgv-skeleton{background:var(--surface-2);border-radius:6px;animation:tgv-pulse 1.4s ease-in-out infinite}@keyframes tgv-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.tgv-skeleton{animation:none}}.tgv-skeleton-row{height:3.2rem;margin:.75rem 1rem}.tgv-skeleton-title{height:2rem;width:60%;margin-bottom:1rem}.tgv-skeleton-block{height:9rem;margin-bottom:1rem}.tgv-skeleton-rail{height:22rem}.tgv-page button:focus-visible,.tgv-page input:focus-visible,.tgv-page textarea:focus-visible,.tgv-page a:focus-visible{outline:2px solid var(--violet-400);outline-offset:2px}.grades-page{display:flex;flex-direction:column;gap:1.25rem}.grades-header{margin-bottom:.25rem}.grades-title{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:2rem;color:var(--ink);margin:0}.grades-tagline{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--violet-500);margin:.25rem 0 0;font-size:1rem}.grades-course-card{background:var(--surface);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow-md);padding:1.25rem 1.5rem;animation:grades-enter .2s ease-out both}@keyframes grades-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.grades-course-card{animation:none}}.grades-course-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.grades-course-name-wrap{display:flex;align-items:center;gap:.6rem;min-width:0}.grades-course-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.grades-course-name{font-family:var(--serif);font-weight:500;font-size:1.2rem;letter-spacing:-.01em;color:var(--ink);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grades-course-average{display:flex;align-items:baseline;gap:.6rem;flex-shrink:0}.grades-overall{font-family:var(--serif);font-size:1.35rem;color:var(--ink);padding:.1rem .5rem;border-radius:6px}.grades-table-wrap{overflow-x:auto;border:1px solid var(--hair);border-radius:8px}.grades-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.875rem;color:var(--ink-2)}.grades-table thead th{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);text-align:left;background:var(--surface-2);padding:.6rem .9rem;border-bottom:1px solid var(--hair);white-space:nowrap}.grades-table tbody td{padding:.65rem .9rem;border-bottom:1px solid var(--hair);vertical-align:baseline}.grades-table tbody tr:last-child td{border-bottom:none}.grades-table .num{text-align:right;white-space:nowrap}.grades-cell-title{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.grades-cell-type{color:var(--ink-3);white-space:nowrap}.grades-status{font-size:.8rem;font-weight:600}.grades-status.is-graded{color:var(--ok)}.grades-status.is-pending{color:var(--ink-3)}.tint-ok{background:var(--ok-bg);color:var(--ink);border-radius:6px}.tint-prog{background:var(--prog-bg);color:var(--ink);border-radius:6px}.tint-warn{background:var(--warn-bg);color:var(--warn);border-radius:6px}.grades-course-empty{color:var(--ink-3);font-size:.9rem;margin:0}.grades-empty{border:1px dashed var(--hair-v);border-radius:12px;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;color:var(--violet-500)}.grades-empty h2{font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--ink);margin:.25rem 0 0}.grades-empty p{color:var(--ink-3);font-size:.9rem;max-width:40ch;margin:0}.grades-secondary-btn{margin-top:.75rem;padding:.5rem 1.1rem;font-family:var(--sans);font-weight:600;font-size:.875rem;color:var(--violet-600);background:var(--surface);border:1px solid var(--hair-v);border-radius:8px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.grades-secondary-btn:hover{background:var(--lilac-50);border-color:var(--violet-400)}.grades-error{background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:10px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.grades-error p{margin:0;font-size:.9rem}.grades-retry-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;min-height:36px;font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--err);background:var(--surface);border:1px solid var(--err);border-radius:8px;cursor:pointer}.skeleton{background:var(--surface-2);border-radius:6px;animation:grades-pulse 1.4s ease-in-out infinite}@keyframes grades-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.skeleton-title{width:160px;height:2rem}.skeleton-sub{width:240px;height:1rem;margin-top:.5rem}.skeleton-course-name{width:220px;height:1.4rem}.skeleton-overall{width:90px;height:1.4rem}.skeleton-row{height:2.4rem;margin-top:.6rem}.grades-page button:focus-visible{outline:2px solid var(--violet-400);outline-offset:2px}.gb-page{display:flex;flex-direction:column;gap:1.25rem}.gb-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.gb-title{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:2rem;color:var(--ink);margin:0}.gb-tagline{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--violet-500);margin:.25rem 0 0;font-size:1rem}.gb-header-actions{display:flex;gap:.5rem;flex-shrink:0}.gb-course-tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--hair);padding-bottom:0}.gb-course-tab{font-family:var(--sans);font-size:.875rem;font-weight:600;color:var(--ink-3);background:none;border:none;border-bottom:2px solid transparent;padding:.5rem .9rem;min-height:36px;cursor:pointer;transition:color .15s ease-out,border-color .15s ease-out}.gb-course-tab:hover{color:var(--ink)}.gb-course-tab.active{color:var(--violet-600);border-bottom-color:var(--violet-600)}.gb-card{background:var(--surface);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow-md);overflow:hidden;animation:gb-enter .2s ease-out both}@keyframes gb-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.gb-table-wrap{overflow-x:auto}.gb-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.875rem;color:var(--ink-2)}.gb-table thead th{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-align:left;background:var(--surface-2);padding:.7rem .9rem;border-bottom:1px solid var(--hair);white-space:nowrap;vertical-align:bottom}.gb-col-assessment{min-width:108px;text-align:center}.gb-col-title{display:block;max-width:150px;margin:0 auto;overflow:hidden;text-overflow:ellipsis}.gb-col-sub{display:block;letter-spacing:.04em;text-transform:none;font-weight:500;color:var(--ink-4);margin-top:2px}.gb-col-avg{text-align:center;color:var(--violet-600)}.gb-table tbody tr{animation:gb-enter .2s ease-out both}@media(prefers-reduced-motion:reduce){.gb-card,.gb-table tbody tr{animation:none}}.gb-table tbody td,.gb-table tbody th,.gb-table tfoot td,.gb-table tfoot th{padding:.85rem .75rem;border-bottom:1px solid var(--hair)}.gb-table tfoot td,.gb-table tfoot th{border-bottom:none;background:var(--paper)}.gb-cell-student{display:flex;align-items:center;gap:.7rem;font-weight:600;color:var(--ink);text-align:left;min-width:190px}.gb-avatar{width:28px;height:28px;border-radius:50%;background:var(--violet-500);color:var(--on-accent);font-size:11px;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.gb-avatar.av-2{background:var(--violet-400)}.gb-avatar.av-3{background:var(--violet-600)}.gb-student-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gb-cell{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);text-align:center;white-space:nowrap;border-left:1px solid var(--hair)}.gb-cell-avg{font-weight:700;background:var(--paper)}.gb-avg-low{color:var(--warn)}.gb-cell-dash{font-weight:400;color:var(--ink-4)}.gb-cell-pending{color:var(--violet-400);font-weight:700;letter-spacing:.1em;cursor:default}.gb-foot{font-weight:600;color:var(--ink-2)}.gb-foot.gb-cell-avg{color:var(--violet-700)}.gb-foot-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.gb-tint-ok{background:var(--ok-bg)}.gb-tint-lilac{background:var(--lilac-50)}.gb-tint-warn{background:var(--warn-bg);color:var(--warn)}.gb-legend{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;font-size:.78rem;color:var(--ink-3)}.gb-legend-item{display:inline-flex;align-items:center;gap:.4rem}.gb-legend-item:last-child{margin-left:auto}.gb-swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.gb-legend-mark{color:var(--ink-4);font-weight:700}.gb-secondary-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;min-height:36px;font-family:var(--sans);font-weight:600;font-size:.875rem;color:var(--ink);background:var(--surface);border:1px solid var(--hair-v);border-radius:8px;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.gb-secondary-btn:hover{background:var(--lilac-50);border-color:var(--violet-400)}.gb-empty{border:1px dashed var(--hair-v);border-radius:12px;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;color:var(--violet-500)}.gb-empty h2{font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--ink);margin:.25rem 0 0}.gb-empty p{color:var(--ink-3);font-size:.9rem;max-width:44ch;margin:0}.gb-empty .gb-secondary-btn{margin-top:.75rem}.gb-error{background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:10px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.gb-error p{margin:0;font-size:.9rem}.gb-retry-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;min-height:36px;font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--err);background:var(--surface);border:1px solid var(--err);border-radius:8px;cursor:pointer}.gb-skeleton{background:var(--surface-2);border-radius:6px;animation:gb-pulse 1.4s ease-in-out infinite}@keyframes gb-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.gb-skeleton{animation:none}}.gb-skeleton-tabs{height:2.2rem;width:320px}.gb-skeleton-row{height:2.6rem;margin:.75rem 1rem}.gb-page button:focus-visible{outline:2px solid var(--violet-400);outline-offset:2px}.sess-page{display:flex;flex-direction:column;gap:1.25rem}.sess-header{margin-bottom:.25rem}.sess-title{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:2rem;color:var(--ink);margin:0}.sess-tagline{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--violet-500);margin:.25rem 0 0;font-size:1rem}.sess-course-tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--hair)}.sess-course-tab{font-family:var(--sans);font-size:.875rem;font-weight:600;color:var(--ink-3);background:none;border:none;border-bottom:2px solid transparent;padding:.5rem .9rem;min-height:36px;cursor:pointer;transition:color .15s ease-out,border-color .15s ease-out}.sess-course-tab:hover{color:var(--ink)}.sess-course-tab.active{color:var(--violet-600);border-bottom-color:var(--violet-600)}.sess-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;align-items:start}@media(max-width:960px){.sess-layout{grid-template-columns:1fr}}.sess-form-card{background:var(--surface);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow-md);padding:1.5rem 1.75rem 1.75rem;display:flex;flex-direction:column;gap:1.1rem;animation:sess-enter .2s ease-out both}@keyframes sess-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.sess-form-card,.sess-recent-card{animation:none}}.sess-card-title{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:1.25rem;color:var(--ink);margin:0}.sess-field{display:flex;flex-direction:column;gap:.45rem}.sess-field-row{display:flex;gap:1rem;flex-wrap:wrap}.sess-field-row .sess-field{flex:1;min-width:120px}.sess-input{min-height:40px;padding:.5rem .75rem;font-family:var(--sans);font-size:.9rem;color:var(--ink);background:var(--surface);border:1px solid var(--hair-v);border-radius:8px;transition:border-color .15s ease-out}.sess-input:focus{outline:none;border-color:var(--violet-400)}.sess-roster{list-style:none;margin:0;padding:0;border:1px solid var(--hair);border-radius:10px;overflow:hidden}.sess-roster-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;border-bottom:1px solid var(--hair)}.sess-roster-row:last-child{border-bottom:none}.sess-att-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.sess-att-summary{font-size:.78rem;color:var(--ink-3);white-space:nowrap}.sess-avatar{width:30px;height:30px;border-radius:50%;background:var(--violet-500);color:var(--on-accent);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sess-avatar.av-2{background:var(--violet-400)}.sess-avatar.av-3{background:var(--violet-600)}.sess-roster-name{flex:1;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sess-segmented{display:inline-flex;border:1px solid var(--hair-v);border-radius:8px;overflow:hidden;flex-shrink:0}.sess-seg-btn{min-height:36px;padding:.35rem .8rem;font-family:var(--sans);font-size:.8rem;font-weight:600;color:var(--ink-3);background:var(--surface);border:none;border-right:1px solid var(--hair-v);cursor:pointer;transition:background .15s ease-out,color .15s ease-out}.sess-seg-btn:last-child{border-right:none}.sess-seg-btn:hover:not(.active){background:var(--lilac-50)}.sess-seg-btn.active.is-present{background:var(--ok);color:var(--on-accent)}.sess-seg-btn.active.is-late{background:var(--warn);color:var(--on-accent)}.sess-seg-btn.active.is-absent{background:var(--err);color:var(--on-accent)}.sess-notes{width:100%;font-family:var(--sans);font-size:.9rem;line-height:1.55;color:var(--ink);background:var(--paper);border:1px solid var(--hair-v);border-radius:8px;padding:.6rem .75rem;resize:vertical;transition:border-color .15s ease-out}.sess-notes:focus{outline:none;border-color:var(--violet-400)}.sess-save-error{margin:0;font-size:.85rem;color:var(--err)}.sess-primary-btn{align-self:flex-start;min-height:40px;padding:.55rem 1.2rem;font-family:var(--sans);font-weight:600;font-size:.9rem;color:var(--on-accent);background:var(--violet-600);border:none;border-radius:8px;cursor:pointer;transition:background .15s ease-out}.sess-primary-btn:hover:not(:disabled){background:var(--violet-700)}.sess-primary-btn:disabled{opacity:.6;cursor:default}.sess-side{display:flex;flex-direction:column;gap:1.25rem}.sess-attendance-card{background:var(--lilac-50);border:1px solid var(--hair-v);border-radius:10px;padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.1rem}.sess-attendance-label{color:var(--violet-700)}.sess-attendance-num{font-family:var(--serif);font-size:1.875rem;font-weight:500;line-height:1.15;color:var(--ink);margin-top:.35rem}.sess-attendance-unit{font-size:1rem;font-weight:400;color:var(--ink-3)}.sess-attendance-sub{font-size:.75rem;color:var(--ink-3)}.sess-recent-label{display:block;margin-bottom:.6rem}.sess-recent-empty{color:var(--ink-3);font-size:.9rem;margin:0}.sess-recent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.sess-recent-card{background:var(--surface);border:1px solid var(--hair);border-radius:10px;box-shadow:var(--shadow-sm);padding:.85rem 1rem;animation:sess-enter .2s ease-out both;transition:opacity .15s ease-out}.sess-recent-card.is-unlogged{opacity:.65}.sess-recent-card.is-unlogged:hover,.sess-recent-card.is-unlogged:focus-within{opacity:1}.sess-recent-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.sess-recent-top .pill{flex-shrink:0}.sess-recent-title{font-family:var(--sans);font-weight:600;font-size:.875rem;color:var(--ink);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sess-recent-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.15rem}.sess-recent-meta{font-size:.78rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sess-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:-8px -8px -8px 0;color:var(--ink-4);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:color .15s ease-out,background .15s ease-out}.sess-delete-btn:hover:not(:disabled){color:var(--err);background:var(--err-bg)}.sess-delete-btn:disabled{cursor:default;opacity:.5}.sess-empty{border:1px dashed var(--hair-v);border-radius:12px;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;color:var(--violet-500)}.sess-empty-inline{padding:2rem 1.5rem}.sess-empty h2{font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--ink);margin:.25rem 0 0}.sess-empty p{color:var(--ink-3);font-size:.9rem;max-width:44ch;margin:0}.sess-error{background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:10px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.sess-error p{margin:0;font-size:.9rem}.sess-retry-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;min-height:36px;font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--err);background:var(--surface);border:1px solid var(--err);border-radius:8px;cursor:pointer}.sess-skeleton{background:var(--surface-2);border-radius:6px;animation:sess-pulse 1.4s ease-in-out infinite}@keyframes sess-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.sess-skeleton{animation:none}}.sess-skeleton-tabs{height:2.2rem;width:280px}.sess-skeleton-form{height:26rem}.sess-skeleton-card{height:7rem;margin-bottom:.75rem}.sess-page button:focus-visible,.sess-page input:focus-visible,.sess-page textarea:focus-visible{outline:2px solid var(--violet-400);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pd-root{display:flex;flex-direction:column;width:100%}.pd-root .btn:focus-visible,.pd-region-error .btn:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.pd-topbar{display:flex;align-items:center;gap:16px;height:62px;padding:0 4px;border-bottom:1px solid var(--hair);margin-bottom:28px}.pd-wordmark{font-size:19px;color:var(--violet-700)}.pd-divider-v{width:1px;height:22px;background:var(--hair-v)}.pd-spacer{flex:1}.pd-selector{position:relative}.pd-selector-field{display:flex;align-items:center;gap:8px;background:var(--surface-2);border-radius:var(--radius-sm);padding:7px 12px;border:1px solid transparent}.pd-selector-btn{cursor:pointer;min-height:36px;transition:background var(--transition-base)}.pd-selector-btn:hover{background:var(--surface-3)}.pd-selector-btn:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.pd-selector-label{color:var(--ink-3)}.pd-selector-name{font-size:13.5px;font-weight:600;color:var(--ink)}.pd-chevron{color:var(--ink-3);transition:transform .15s ease}.pd-chevron-open{transform:rotate(180deg)}.pd-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-md);box-shadow:var(--shadow-glass);padding:4px;z-index:20;list-style:none;margin:0}.pd-menu-item{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:0 10px;border-radius:var(--radius-sm);font-size:13.5px;color:var(--ink);cursor:pointer}.pd-menu-item:hover{background:var(--lilac-50)}.pd-menu-item:focus-visible{outline:2px solid var(--violet-500);outline-offset:-2px}.pd-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--on-accent);font-weight:600;flex-shrink:0}.pd-avatar-parent{width:34px;height:34px;background:var(--violet-600);font-size:13px}.pd-avatar-child{width:52px;height:52px;background:var(--violet-500);font-size:20px}.pd-hero{border-radius:var(--radius-2xl);padding:34px 44px 30px;margin-bottom:28px}.pd-hero-content{position:relative;z-index:1}.pd-hero-label{color:var(--violet-700);display:block;margin-bottom:8px}.pd-hero-row{display:flex;align-items:center;gap:14px}.pd-hero-names{min-width:0}.pd-child-name{font-size:32px;font-weight:400;line-height:1.1;color:var(--ink);margin:0}.pd-sub-line{font-size:14px;color:var(--ink-2);margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pd-summary{font-style:italic;font-weight:300;font-size:17px;color:var(--violet-700);max-width:640px;margin:18px 0 0;line-height:1.4}.pd-kpis{margin-bottom:24px}.pd-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0}.pd-kpi{border-radius:var(--radius-xl);padding:20px}.pd-kpi-label{display:block}.pd-kpi-body{margin:0}.pd-kpi-body .kpi-num{display:block;margin-top:10px}.pd-kpi-body .kpi-num.pd-kpi-empty{color:var(--ink-4)}.pd-kpi-foot{font-size:12.5px;color:var(--ink-3);margin:6px 0 0}.pd-kpi-foot-up{color:var(--ok)}.pd-kpi-foot-down{color:var(--warn)}.pd-sk-num{width:72px;height:34px;margin-top:10px}.pd-sk-foot{width:110px;height:12px;margin-top:8px}.pd-band{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;margin-bottom:24px}.pd-panel{border:1px solid var(--hair);border-radius:var(--radius-xl);background:var(--surface);padding:22px 24px}.pd-panel-head{display:flex;align-items:baseline;justify-content:space-between}.pd-panel-title{font-size:19px;font-weight:500;color:var(--ink);margin:0}.pd-panel-meta{font-size:12.5px;color:var(--ink-3)}.pd-chart-svg{width:100%;height:180px;overflow:visible;margin-top:14px}.pd-chart-skeleton{width:100%;height:180px;margin-top:14px}.pd-chart-dates{display:flex;justify-content:space-between;margin-top:8px}.pd-chart-date{font-size:11.5px;color:var(--ink-3)}.pd-chart-empty{position:relative;margin-top:14px}.pd-chart-svg-empty{opacity:.5}.pd-chart-empty-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:15px;color:var(--ink-2);padding:0 24px}.pd-sessions{list-style:none;margin:14px 0 0;padding:0}.pd-session-row{display:flex;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--hair)}.pd-session-row:last-child{border-bottom:none}.pd-session-date{width:46px;display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}.pd-session-month{font-size:10px;color:var(--ink-3)}.pd-session-body{min-width:0}.pd-session-title{font-size:14px;font-weight:600;color:var(--ink);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pd-session-meta{font-size:12.5px;color:var(--ink-3);margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pd-sk-date{width:46px;height:34px}.pd-sk-line{height:12px;margin:3px 0}.pd-mindprint{border-radius:var(--radius-2xl);padding:26px 30px;display:flex;gap:34px;align-items:center;margin-bottom:24px}.pd-mp-left{flex-shrink:0;max-width:320px;position:relative;z-index:1}.pd-mp-label{color:var(--violet-700)}.pd-mp-archetype{font-size:26px;font-weight:500;color:var(--ink);margin:6px 0 0}.pd-mp-desc{font-size:13.5px;color:var(--ink-2);line-height:1.6;max-width:300px;margin:8px 0 0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.pd-mp-btn{margin-top:16px;min-height:36px}.pd-mp-bars{flex:1;position:relative;z-index:1;display:flex;flex-direction:column;gap:11px}.pd-mp-bar-row{display:flex;align-items:center;gap:12px}.pd-mp-bar-label{width:140px;flex-shrink:0;font-size:12.5px;color:var(--ink-2)}.pd-mp-track{flex:1;background:var(--track-on-glass)}.pd-mp-track .fill{transition:width .35s ease-out}.pd-mp-score{font-size:13px;color:var(--ink-2);width:34px;text-align:right}.pd-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:32px 20px;border:1px dashed var(--hair-v);border-radius:var(--radius-xl)}.pd-empty-page{margin-top:40px}.pd-empty-title{font-size:18px;color:var(--ink);margin:4px 0 0}.pd-empty-sub{font-size:13.5px;color:var(--ink-3);margin:0;max-width:380px}.pd-region-error{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--err);background:var(--err-bg);border-radius:var(--radius-md);padding:12px 16px}.pd-region-error-sm{margin-top:10px;padding:10px 12px}.pd-region-error .btn-ghost{display:inline-flex;align-items:center;gap:4px}.pd-bottom-space{height:50px}.pd-fade-in{animation:pd-enter .2s ease-out both}@keyframes pd-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pd-kpi-grid .pd-kpi{animation:pd-enter .2s ease-out both}.pd-kpi-grid .pd-kpi:nth-child(1){animation-delay:40ms}.pd-kpi-grid .pd-kpi:nth-child(2){animation-delay:80ms}.pd-kpi-grid .pd-kpi:nth-child(3){animation-delay:.12s}.pd-kpi-grid .pd-kpi:nth-child(4){animation-delay:.16s}@media(prefers-reduced-motion:reduce){.pd-fade-in,.pd-kpi-grid .pd-kpi{animation:none}.pd-mp-track .fill,.pd-chevron{transition:none}}@media(max-width:1024px){.pd-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.pd-kpi-grid,.pd-band{grid-template-columns:1fr}.pd-hero{padding:24px}.pd-mindprint{flex-direction:column;align-items:stretch}.pd-mp-left{max-width:none}}.mp-page{--mp-deep-lavender: #56525F;--mp-soft-lilac: #D9D1E8;--mp-mist-white: #F4F1EC;--mp-emerald: #5E8268;--mp-emerald-bg: #E7EDE7;--mp-amber: #A8884F;--mp-amber-bg: #F1E9D9;--mp-rose: #B08080;--mp-rose-bg: #EFE3E3;--mp-slate: #56525F;--mp-text-primary: #25232E;font-family:var(--font-primary);color:var(--color-text-primary);min-height:100vh;animation:mp-fadeIn .6s cubic-bezier(.4,0,.2,1)}@keyframes mp-fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.mp-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);padding-bottom:var(--spacing-xl);margin-bottom:var(--spacing-xl);border-bottom:1px solid rgba(106,95,144,.08)}.mp-header-left{display:flex;align-items:center;gap:var(--spacing-md)}.mp-header-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:#56525f0f;display:flex;align-items:center;justify-content:center;color:var(--mp-deep-lavender)}.mp-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-light);color:var(--color-text-primary);margin:0;line-height:1.2}.mp-subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:0}.mp-nav{display:flex;background:#ffffff73;padding:4px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow-xs)}.mp-nav-btn{padding:8px 20px;border-radius:var(--radius-full);font-family:var(--font-primary);font-size:12px;font-weight:var(--font-semibold);letter-spacing:.04em;color:var(--color-text-tertiary);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;gap:6px}.mp-nav-btn:hover{color:var(--color-text-primary);background:#ffffff80}.mp-nav-btn.active{background:var(--mp-deep-lavender);color:#fff;border-color:var(--mp-deep-lavender);box-shadow:0 4px 12px #56525f40}.mp-glass{background:#fff9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-2xl);box-shadow:0 4px 6px -1px #56525f0f,0 2px 4px -1px #56525f08,inset 0 1px #ffffffb3;transition:all var(--transition-base)}.mp-glass:hover{transform:translateY(-2px);box-shadow:0 12px 24px -4px #56525f1f,0 4px 8px -2px #56525f0d;border-color:#9a8fbe33}.mp-top-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media(min-width:900px){.mp-top-grid{grid-template-columns:3fr 2fr}}.mp-section-label{font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--spacing-lg)}.mp-composites-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}@media(min-width:640px){.mp-composites-grid{grid-template-columns:1fr 1fr}}.mp-composite-card{padding:var(--spacing-xl)}.mp-composite-card .mp-score-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .4s ease}.mp-composite-card:hover .mp-score-icon{transform:rotate(12deg)}.mp-composite-card .mp-score-value{font-family:var(--font-display);font-size:2.75rem;font-weight:var(--font-light);color:var(--color-text-primary);line-height:1}.mp-composite-card .mp-score-denom{font-size:var(--text-lg);color:var(--color-text-muted);font-weight:var(--font-light)}.mp-composite-card .mp-score-label{font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);margin-top:2px}.mp-composite-card .mp-progress-track{height:6px;width:100%;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.mp-composite-card .mp-progress-fill{height:100%;border-radius:var(--radius-full);transition:width 1s cubic-bezier(.4,0,.2,1) .3s}.mp-composite-card .mp-trend-badge{font-size:11px;font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);display:flex;align-items:center;gap:6px}.mp-accordion-item{margin-bottom:var(--spacing-md);border-radius:var(--radius-xl);overflow:hidden}.mp-accordion-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);min-height:68px;cursor:pointer;transition:background .2s ease}.mp-accordion-header:hover{background:#ffffff4d}.mp-accordion-icon-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mp-status-pill{display:inline-block;padding:3px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.05em}.mp-accordion-body{padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl);background:#f9fafb66;border-top:1px solid var(--color-divider)}.mp-river-chart-container{background:#ffffff80;border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--spacing-lg);height:160px;display:flex;align-items:flex-end;position:relative}.mp-protocol-box{background:#5e82680a;border:1px solid rgba(94,130,104,.1);border-radius:var(--radius-lg);padding:var(--spacing-xl);display:flex;flex-direction:column;height:100%}.mp-bullet-list{list-style:none;padding:0;margin:0}.mp-bullet-list li{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:15px;color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--spacing-sm)}.mp-bullet-list li:before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:var(--color-primary-light);margin-top:9px;flex-shrink:0}.mp-archetype{display:flex;flex-direction:column;height:100%}.mp-archetype-eyebrow{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:var(--spacing-xs)}.mp-archetype-name{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--font-light);color:var(--color-text-primary);line-height:1.2;margin-bottom:var(--spacing-lg)}.mp-archetype-fit-track{height:4px;width:100%;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--spacing-xs)}.mp-archetype-fit-fill{height:100%;background:linear-gradient(90deg,var(--color-glass-purple),var(--color-glass-mint));border-radius:var(--radius-full);transition:width 1s ease}.mp-metaphor-visual{border-radius:var(--radius-xl);background:var(--color-bg-secondary);border:1px solid var(--color-divider);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;height:160px;margin-bottom:var(--spacing-xl)}.mp-metaphor-visual .mp-dot-pattern{position:absolute;inset:0;opacity:.3;background-image:radial-gradient(var(--color-primary-light) 1px,transparent 1px);background-size:18px 18px}.mp-metaphor-visual .mp-brain-circle{position:relative;z-index:1;width:80px;height:80px;border-radius:50%;background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 2px 4px #0000000a;border:1px solid rgba(255,255,255,.5)}.mp-capabilities{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.mp-capability-box{padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid}.mp-capability-box.strengths{background:#5e82680a;border-color:#5e82681a}.mp-capability-box.edges{background:#b080800a;border-color:#b080801a}.mp-capability-label{font-size:10px;font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:6px;margin-bottom:var(--spacing-md)}.mp-capability-list{list-style:none;padding:0;margin:0}.mp-capability-list li{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6;display:flex;align-items:flex-start;gap:8px;margin-bottom:6px}.mp-capability-list li:before{content:"";display:block;width:5px;height:5px;border-radius:50%;margin-top:7px;flex-shrink:0}.mp-capability-box.strengths .mp-capability-list li:before{background:#5e826866}.mp-capability-box.edges .mp-capability-list li:before{background:#b0808066}.mp-radar-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);position:relative;overflow:hidden;min-height:500px}.mp-radar-card .mp-radar-bg{position:absolute;inset:0;opacity:.03;background-image:radial-gradient(var(--mp-deep-lavender) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.mp-radar-card .mp-radar-label{position:absolute;top:var(--spacing-xl);left:var(--spacing-xl);z-index:2}.mp-radar-card .mp-radar-label h3{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:1px;color:var(--color-text-tertiary);margin-bottom:2px}.mp-radar-card .mp-radar-label p{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary)}.mp-loading{display:flex;align-items:center;justify-content:center;min-height:60vh}.mp-loading-inner{text-align:center}.mp-loading-icon{width:56px;height:56px;background:var(--color-bg-card);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg);box-shadow:var(--shadow-lg);animation:mp-loadBounce 1.5s ease-in-out infinite}@keyframes mp-loadBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.mp-loading p{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-light);color:var(--color-text-tertiary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tt{--tt-gutter: 60px;--tt-row: 60px;--string: var(--violet-400)}.tt{--cal-hue-0: #6A5F90;--cal-hue-1: #5E8268;--cal-hue-2: #A8884F;--cal-hue-3: #6E72A2;--cal-hue-4: #8A6E88;--cal-hue-5: #4D7B84;--cal-hue-6: #9F6B6B;--cal-hue-7: #7A8055}.hue-0{--string: var(--cal-hue-0)}.hue-1{--string: var(--cal-hue-1)}.hue-2{--string: var(--cal-hue-2)}.hue-3{--string: var(--cal-hue-3)}.hue-4{--string: var(--cal-hue-4)}.hue-5{--string: var(--cal-hue-5)}.hue-6{--string: var(--cal-hue-6)}.hue-7{--string: var(--cal-hue-7)}.tt-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}.tt-toolbar .tt-spacer{flex:1}.tt-nav-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--hair);background:var(--surface);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.tt-nav-btn:hover{background:var(--surface-2);border-color:var(--hair-v)}.tt-range{font-family:var(--sans);font-weight:600;font-size:.95rem;color:var(--ink);min-width:190px;text-align:center;font-variant-numeric:tabular-nums}.tt-chip{padding:.4rem .85rem;border-radius:999px;border:1px solid var(--hair);background:var(--surface);font-family:var(--sans);font-size:.8rem;font-weight:600;color:var(--ink-2);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.tt-chip:hover{background:var(--surface-2)}.tt-chip[aria-pressed=true],.tt-chip.is-active{background:var(--lilac-50);border-color:var(--lilac-300);color:var(--violet-700)}.tt-seg{display:inline-flex;border:1px solid var(--hair);border-radius:10px;overflow:hidden;background:var(--surface)}.tt-seg button{padding:.4rem .85rem;border:none;background:transparent;font-family:var(--sans);font-size:.8rem;font-weight:600;color:var(--ink-3);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.tt-seg button+button{border-left:1px solid var(--hair)}.tt-seg button.is-active{background:var(--lilac-50);color:var(--violet-700)}.tt-select{padding:.4rem .7rem;border-radius:9px;border:1px solid var(--hair);background:var(--surface);font-family:var(--sans);font-size:.8rem;font-weight:600;color:var(--ink-2);cursor:pointer}.tt-cal{display:grid;grid-template-columns:var(--tt-gutter) repeat(var(--tt-cols, 7),minmax(0,1fr));border:1px solid var(--hair);border-radius:var(--radius-2xl);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-md)}.tt-gutter{display:flex;flex-direction:column}.tt-col{position:relative;border-left:1px solid var(--hair);min-width:0}.tt-col.is-today{background:var(--lilac-50)}.tt-col.is-dragover{background:var(--surface-2)}.tt-head{height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-bottom:1px solid var(--hair);background:var(--surface-2)}.tt-head .dow{font-family:var(--sans);font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.tt-head .dom{font-family:var(--sans);font-size:1rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}.tt-head.is-today .dom{background:var(--violet-600);color:#fff;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}.tt-time-label{height:var(--tt-row);display:flex;align-items:flex-start;justify-content:flex-end;padding:2px 8px 0 0;font-family:var(--sans);font-size:.62rem;font-weight:500;color:var(--ink-4);font-variant-numeric:tabular-nums}.tt-time-label:first-child{height:52px}.tt-body{position:relative;height:var(--tt-h, 720px)}.tt-hourline{position:absolute;left:0;right:0;height:1px;background:var(--hair);opacity:.6;pointer-events:none}.tt-halfline{position:absolute;left:0;right:0;height:1px;background:var(--hair);opacity:.25;pointer-events:none}.tt-nowline{position:absolute;left:0;right:0;height:1.5px;background:var(--err);z-index:5;pointer-events:none}.tt-nowline:before{content:"";position:absolute;left:-3px;top:-2.5px;width:6px;height:6px;border-radius:50%;background:var(--err)}.tt-block{position:absolute;left:4px;right:4px;border-radius:8px;padding:5px 8px 5px 11px;background:var(--surface);border:1px solid var(--hair);box-shadow:inset 3px 0 0 0 var(--string);overflow:hidden;cursor:grab;z-index:2;transition:box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.tt-block:hover{box-shadow:inset 3px 0 0 0 var(--string),var(--shadow-lg);z-index:4}.tt-block:focus-visible{outline:2px solid var(--violet-600);outline-offset:2px}.tt-block.is-dragging{opacity:.5;cursor:grabbing}.tt-block .subj{font-family:var(--sans);font-weight:700;font-size:.72rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-block .who{font-family:var(--sans);font-size:.66rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-block .when{font-family:var(--sans);font-size:.6rem;color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:1px}.tt-ghost{position:absolute;left:4px;right:4px;border-radius:8px;border:1.5px dashed var(--ok);background:var(--ok-bg);z-index:6;pointer-events:none;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:.62rem;font-weight:600;color:var(--ok);font-variant-numeric:tabular-nums}.tt-ghost.is-invalid{border-color:var(--err);background:var(--err-bg);color:var(--err)}.tt-slot{position:absolute;left:3px;right:3px;border-radius:7px;background:var(--lilac-50);border:1px solid var(--lilac-300);box-shadow:inset 3px 0 0 0 var(--violet-400);z-index:2;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;padding:4px 6px;transition:background var(--transition-fast)}.tt-slot:hover{background:var(--lilac-100)}.tt-slot:focus-visible{outline:2px solid var(--violet-600);outline-offset:2px}.tt-slot.is-off{background:var(--surface-2);border-style:dashed;border-color:var(--hair-v);box-shadow:inset 3px 0 0 0 var(--lock)}.tt-slot .lbl{font-family:var(--sans);font-size:.62rem;font-weight:600;color:var(--violet-700);font-variant-numeric:tabular-nums}.tt-slot.is-off .lbl{color:var(--ink-3)}.tt-slot .rm{align-self:flex-end;border:none;background:transparent;color:var(--ink-4);cursor:pointer;padding:0;display:inline-flex;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast)}.tt-slot:hover .rm,.tt-slot:focus-within .rm{opacity:1}.tt-slot .rm:hover{color:var(--err)}.tt-slot .resize{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize}.tt-col.is-paintable .tt-body{cursor:crosshair}.tt-paint-preview{position:absolute;left:3px;right:3px;border-radius:7px;background:var(--lilac-100);border:1.5px dashed var(--violet-400);z-index:3;pointer-events:none}.tt-legend{display:flex;flex-wrap:wrap;gap:1rem 1.25rem;margin-top:1rem;font-family:var(--sans);font-size:.75rem;color:var(--ink-3)}.tt-legend .item{display:inline-flex;align-items:center;gap:.4rem}.tt-legend .dot{width:10px;height:10px;border-radius:3px;background:var(--string)}.tt-empty{border:1.5px dashed var(--hair-v);border-radius:14px;background:var(--surface);padding:2.5rem 2rem;text-align:center;max-width:460px;margin:1rem auto}.tt-empty .ico{color:var(--violet-400);display:inline-flex;margin-bottom:.75rem}.tt-empty h3{font-family:var(--serif);font-weight:500;font-size:1.25rem;color:var(--ink);letter-spacing:-.01em;margin:0 0 .4rem}.tt-empty p{font-family:var(--sans);font-size:.88rem;color:var(--ink-3);line-height:1.5;margin:0 auto 1.25rem;max-width:340px}.tt-skel{background:var(--surface-2);border-radius:8px;position:absolute;left:4px;right:4px}@keyframes tt-pulse{0%,to{opacity:1}50%{opacity:.55}}.tt-skel{animation:tt-pulse 1.4s ease-in-out infinite}.tt-banner{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:11px;font-family:var(--sans);font-size:.85rem;font-weight:500;margin-bottom:1rem}.tt-banner.is-err{background:var(--err-bg);color:var(--err)}.tt-banner.is-warn{background:var(--warn-bg);color:var(--warn)}.tt-banner.is-ok{background:var(--ok-bg);color:var(--ok)}.tt-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tt-prefs{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem;padding:.9rem 1.1rem;border:1px solid var(--hair);border-radius:12px;background:var(--surface);margin-bottom:1.25rem}.tt-prefs .field{display:inline-flex;flex-direction:column;gap:.2rem}.tt-prefs .field label{font-family:var(--sans);font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.tt-prefs .field input,.tt-prefs .field select{width:92px;padding:.4rem .55rem;border:1px solid var(--hair);border-radius:8px;background:var(--paper);font-family:var(--sans);font-size:.85rem;color:var(--ink);font-variant-numeric:tabular-nums}.tt-prefs .field input:focus,.tt-prefs .field select:focus{outline:none;border-color:var(--violet-400);box-shadow:0 0 0 3px var(--lilac-100)}.tt-save{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.15rem;border-radius:10px;border:none;background:var(--violet-600);color:#fff;font-family:var(--sans);font-size:.85rem;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.tt-save:hover{background:var(--violet-700)}.tt-save:disabled{opacity:.55;cursor:default}.tt-save.is-ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--hair)}.tt-save.is-ghost:hover{background:var(--surface-2)}.tt-tabs{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:11px;background:var(--surface-2);margin-bottom:1.25rem}.tt-tabs button{padding:.45rem 1rem;border:none;border-radius:8px;background:transparent;font-family:var(--sans);font-size:.85rem;font-weight:600;color:var(--ink-3);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.tt-tabs button.is-active{background:var(--surface);color:var(--violet-700);box-shadow:var(--shadow-sm)}@media(prefers-reduced-motion:reduce){.tt-block,.tt-nav-btn,.tt-chip,.tt-slot,.tt-save,.tt-skel{transition:none;animation:none}}@media(max-width:768px){.tt{--tt-gutter: 42px}.tt-block .when{display:none}.tt-range{min-width:130px;font-size:.85rem}}.auth-page{--role-accent: var(--violet-600);--role-strong: var(--violet-700);--role-tint: rgba(31, 95, 91, .1);--blob-a: #8FC9C2;--blob-b: #CFE0D3;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--surface-2) 0%,var(--surface-3) 100%);padding:2rem;color:var(--color-text-primary);position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 40%,rgba(255,253,250,.65),transparent 62%);z-index:1;pointer-events:none}.auth-blob{position:absolute;border-radius:50%;filter:blur(72px);opacity:.5;z-index:0;pointer-events:none;transition:background .5s ease,opacity .5s ease}.auth-blob-a{width:460px;height:460px;top:-140px;left:-90px;background:var(--blob-a)}.auth-blob-b{width:400px;height:400px;bottom:-160px;right:-70px;background:var(--blob-b)}@media(prefers-reduced-motion:reduce){.auth-blob{transition:none}}.auth-logo-wrapper{margin-bottom:2rem;z-index:10}.auth-logo{height:60px;width:auto}.auth-container{position:relative;width:100%;max-width:450px;background:var(--surface);border-radius:16px;padding:2.75rem 3rem 3rem;box-shadow:var(--shadow-lg);border:1px solid var(--hair);z-index:5;text-align:center;overflow:hidden;transition:max-width .4s cubic-bezier(.4,0,.2,1)}.auth-accent-bar{position:absolute;top:0;left:0;right:0;height:3px;background:var(--role-accent);transition:background .4s ease}.role-switch{display:flex;gap:4px;padding:4px;margin-bottom:1.75rem;background:var(--surface-2);border:1px solid var(--hair);border-radius:12px}.role-switch-item{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:.6rem .5rem;border:none;border-radius:9px;background:transparent;color:var(--ink-3);font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.role-switch-item svg{stroke-width:1.7}.role-switch-item:hover{color:var(--ink-2)}.role-switch-item.active{background:var(--surface);color:var(--role-accent);box-shadow:var(--shadow-sm)}.role-switch-item:focus-visible{outline:2px solid var(--role-accent);outline-offset:2px}.auth-container.wide{max-width:1000px}.auth-badge{display:inline-block;padding:.5rem 1.25rem;background:transparent;border:none;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--role-accent);margin-bottom:1.5rem}.auth-title{font-family:"Source Serif 4",Georgia,serif;font-size:2.5rem;font-weight:400;margin-bottom:1rem;color:var(--color-text-primary);letter-spacing:-.01em;line-height:1.1}.auth-title i{font-family:"Source Serif 4",Georgia,serif;font-style:italic;font-weight:300;display:block;font-size:2.25rem;margin-top:.25rem}.auth-subtitle{font-size:1rem;color:var(--color-text-tertiary);margin-bottom:2.5rem;line-height:1.6}.auth-error{background:var(--err-bg);border:1px solid var(--err);border-radius:12px;padding:.75rem 1rem;color:var(--err);font-size:.9rem;font-weight:500;margin-bottom:1.5rem;text-align:center}.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:2rem;text-align:left}.role-card{background:#fff;border:1px solid var(--hair);border-radius:12px;padding:2rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;position:relative;overflow:hidden}.role-card:hover{border-color:var(--role-color);box-shadow:var(--shadow-lg)}.role-icon-wrapper{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;background:rgba(var(--role-color-rgb, 31, 95, 91),.08);color:var(--role-color)}.role-card h3{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text-primary)}.role-card p{font-size:.9rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:2rem}.role-card-action{margin-top:auto;display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;color:var(--role-color);text-transform:uppercase;letter-spacing:.5px}.form-title{font-family:"Source Serif 4",Georgia,serif;font-size:2rem;font-weight:400;margin-bottom:.5rem;color:var(--color-text-primary)}.form-subtitle{font-size:.95rem;color:var(--color-text-tertiary);margin-bottom:2rem}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:.5rem;margin-left:.25rem}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:1rem;color:var(--color-text-muted)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.8rem .9rem;border:1px solid var(--hair-v);border-radius:8px;font-size:.95rem;font-family:var(--sans);transition:all .25s;background:var(--paper);color:var(--color-text-primary)}.form-group input.with-icon{padding-left:2.75rem}.form-group select{padding-left:1rem;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke=%231F5F5B stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.25rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--role-accent);box-shadow:0 0 0 4px var(--role-tint)}.submit-button{width:100%;padding:.85rem;background:var(--role-accent);color:#fff;border:none;border-radius:6px;font-size:.95rem;font-family:var(--sans);font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .3s ease;display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem}.submit-button:hover{background:var(--role-strong)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.back-button{display:flex;align-items:center;gap:.5rem;color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;font-weight:600;margin-bottom:2rem;transition:all .2s}.back-button:hover{color:var(--color-primary)}.auth-footer{margin-top:2rem;color:var(--color-text-tertiary);font-size:.95rem;z-index:10}.auth-link-button{color:var(--role-accent);font-weight:700;background:none;border:none;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;margin-left:.25rem}.auth-link-button:hover{text-decoration:underline}@media(max-width:768px){.auth-container{padding:2rem 1.5rem;border-radius:12px}.auth-title{font-size:2rem}.auth-title i{font-size:1.75rem}.role-grid{grid-template-columns:1fr}}.zen-circle{position:absolute;z-index:0;border-radius:50%;border:1px solid rgba(31,95,91,.05);pointer-events:none;background:radial-gradient(circle,rgba(31,95,91,.03) 0%,transparent 70%)}.sl{display:flex;flex-direction:column;gap:var(--spacing-md)}.sl-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;padding:8px var(--spacing-md);background:var(--lilac-100);border-bottom:1px solid var(--hair-v);border-radius:var(--radius-md)}.sl-bar-icon{flex:none;color:var(--violet-700)}.sl-bar-text{flex:1 1 200px;min-width:0;font-size:13px;font-weight:600;color:var(--violet-700)}.sl-exit{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px}.sl-exit:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.sl-frame{position:relative;border:1px solid var(--hair-v);border-radius:var(--radius-2xl);padding:var(--spacing-md);margin:0 var(--spacing-md)}.sl-caption{position:absolute;top:8px;right:var(--spacing-md);z-index:5}.sl-frame :is(button,a,input,textarea,select,[role=button],[role=menuitem],[role=radio],label){cursor:default}@media(max-width:639px){.sl-frame{margin:0;padding:var(--spacing-sm)}.sl-bar{flex-wrap:wrap}.sl-exit{margin-left:auto}}.admin-panel{animation:fadeIn .6s cubic-bezier(.4,0,.2,1)}.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid rgba(0,0,0,.05)}.admin-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;color:#857f8e;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s;margin-bottom:-2px}.admin-tab:hover{color:var(--color-primary);background:#9a8fbe0d}.admin-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.admin-content{animation:fadeIn .4s}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:2rem}.admin-card{padding:2rem}.admin-card-title{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;color:#1c1a23;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(0,0,0,.05)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:600;color:#2c2a35;margin-bottom:.5rem;font-size:.9rem}.admin-select{width:100%;padding:.75rem 1rem;border:2px solid #E6E1D8;border-radius:8px;font-size:.95rem;background:#fff;cursor:pointer;transition:all .2s}.admin-select:hover{border-color:#d8d2c6}.admin-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #9a8fbe1a}.course-checkboxes{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:#00000005;border-radius:8px;max-height:300px;overflow-y:auto}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background .2s}.checkbox-label:hover{background:#9a8fbe0d}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.checkbox-label span{font-size:.9rem;color:#2c2a35}.btn-primary{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s}.btn-primary:hover:not(:disabled){background:#9a8fbe;transform:translateY(-1px);box-shadow:0 4px 12px #9a8fbe4d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.access-list{display:flex;flex-direction:column;gap:1rem;max-height:500px;overflow-y:auto}.access-item{padding:1rem;background:#00000005;border-radius:8px;border-left:3px solid var(--color-primary)}.access-user{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.user-avatar-small{width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.access-user-name{font-weight:600;color:#1c1a23;font-size:.95rem}.access-user-role{font-size:.8rem;color:#857f8e;text-transform:capitalize}.access-courses{display:flex;flex-wrap:wrap;gap:.5rem}.course-badge{display:inline-block;padding:.25rem .75rem;background:#9a8fbe1a;color:var(--color-primary);border-radius:999px;font-size:.8rem;font-weight:600}.pairings-list{display:flex;flex-direction:column;gap:1rem;max-height:500px;overflow-y:auto}.pairing-item{padding:1rem;background:#00000005;border-radius:8px;border-left:3px solid #8A8EB8}.pairing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.pairing-users{display:flex;align-items:center;gap:.75rem;font-size:.95rem}.pairing-tutor{font-weight:600;color:#8a8eb8}.pairing-arrow{color:#aea9b6}.pairing-student{font-weight:600;color:#1c1a23}.btn-icon-danger{padding:.5rem;background:none;border:none;color:#9f6b6b;cursor:pointer;border-radius:6px;transition:all .2s}.btn-icon-danger:hover{background:#9f6b6b1a}.pairing-courses{display:flex;flex-wrap:wrap;gap:.5rem}.no-courses{font-size:.85rem;color:#aea9b6;font-style:italic}.empty-state{text-align:center;padding:2rem;color:#aea9b6;font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.admin-grid{grid-template-columns:1fr}}.asl{margin-bottom:var(--spacing-lg)}.asl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.asl-row{display:flex;align-items:center;gap:var(--spacing-sm);min-height:48px;border-top:1px solid var(--hair)}.asl-row:first-child{border-top:none}.asl-name{flex:1 1 auto;min-width:0;font-size:14px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asl-inactive{font-weight:400;color:var(--ink-2)}.asl-year{flex:none;font-size:12px;color:var(--ink-2)}.asl-lens-btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--violet-700)}.asl button:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.asl-empty{margin:0;font-size:13px;color:var(--ink-2)}.asl-error{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.asl-error svg{color:var(--err);flex:none}.asl-sk-name{width:40%;height:14px}.asl-sk-btn{width:128px;height:28px;margin-left:auto}.wm-shell{display:flex;flex-direction:column;gap:16px}.wm-glass{background:#ffffffb8;border:1px solid rgba(255,255,255,.8);border-radius:22px;padding:18px;box-shadow:0 10px 30px #4d435f14}.wm-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.wm-breadcrumb{color:#857f8e;font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.wm-sub{color:#56525f;font-size:14px;margin-top:8px}.wm-student-selector{display:flex;flex-direction:column;gap:8px}.wm-student-selector input{padding:8px 12px;border-radius:12px;border:1px solid rgba(86,82,95,.2)}.wm-tabs{display:flex;flex-wrap:wrap;gap:8px}.wm-tabs button{border:1px solid rgba(86,82,95,.14);background:#fff;color:#56525f;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.wm-tabs button:hover{transform:translateY(-1px);box-shadow:0 6px 16px #56525f1a}.wm-tabs button.active{background:#56525f;color:#fff}.wm-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:980px){.wm-grid{grid-template-columns:1.3fr 1fr}}.wm-score-card{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.wm-score-wrap{position:relative;width:154px;height:210px}.wm-score-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:translateY(-18px)}.wm-score-value{font-size:32px;font-weight:300;color:#2c2a35}.wm-score-label{font-size:11px;color:#56525f}.wm-score-meta{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:8px}.wm-band-chip,.wm-trend-chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 10px;font-size:11px;border:1px solid rgba(86,82,95,.2);background:#fff}.wm-focus-card{max-width:520px}.wm-focus-card h4{font-size:16px;margin-bottom:8px}.wm-next{margin-top:10px;font-size:13px;color:#56525f;font-weight:600}.wm-overview-right{display:flex;flex-direction:column;gap:10px}.wm-stat-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(86,82,95,.08);padding-bottom:8px;color:#56525f}.wm-stat-row span{display:inline-flex;gap:6px;align-items:center}.wm-primary,.wm-secondary,.wm-task-card button{border:none;border-radius:999px;padding:10px 14px;font-size:13px;font-weight:600;cursor:pointer}.wm-primary{background:#56525f;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px}.wm-primary:disabled{background:#aea9b6;cursor:not-allowed}.wm-secondary{background:#e9e4f2;color:#56525f}.wm-muted{color:#857f8e;font-size:12px;display:inline-flex;align-items:center;gap:6px}.wm-stack{display:flex;flex-direction:column;gap:12px}.wm-accordion{border:1px solid rgba(86,82,95,.1);border-radius:18px;background:#ffffffb8}.wm-accordion-head{width:100%;border:none;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;text-align:left;cursor:pointer}.wm-accordion-head h4{margin:0}.wm-accordion-head p{margin:4px 0 0;font-size:12px;color:#56525f}.wm-accordion-body{border-top:1px solid rgba(86,82,95,.08);padding:14px 16px}.wm-callout{background:#fbfaf7;border-radius:14px;padding:12px;margin-top:10px}.wm-callout-head{display:flex;align-items:center;gap:6px;color:#56525f}.wm-callout ul{margin:8px 0 0;padding-left:18px;color:#56525f}.wm-training-card{display:flex;gap:12px;background:#ffffffbf;border:1px solid rgba(86,82,95,.1);border-radius:16px;padding:12px}.wm-training-toggle{border:none;background:transparent;align-self:flex-start;cursor:pointer}.wm-training-top{display:flex;justify-content:space-between;gap:12px}.wm-training-rule{font-weight:600;color:#56525f}.wm-timeline-wrap{margin-top:10px}.wm-timeline-labels{display:flex;justify-content:space-between;font-size:11px;color:#56525f}.wm-task-card{display:flex;flex-direction:column;gap:10px}.wm-sequence{letter-spacing:.35em;background:#fbfaf7;border:1px solid rgba(86,82,95,.12);border-radius:12px;padding:12px;text-align:center;font-size:18px}.wm-task-card input{border:1px solid rgba(86,82,95,.2);border-radius:12px;padding:10px}.wm-step-list{display:flex;flex-direction:column;gap:8px;padding-left:18px}.wm-step-list li{display:flex;flex-direction:column;gap:6px}.wm-wizard-head{display:flex;justify-content:space-between;align-items:center}.wm-progress{margin:10px 0 16px;height:6px;border-radius:999px;background:#56525f1f;overflow:hidden}.wm-progress>div{height:100%;background:linear-gradient(90deg,#c0b5d7,#56525f);transition:width .25s ease}.wm-error{color:#9f2b43;background:#efe3e3;border:1px solid #EFE3E3;border-radius:12px;padding:10px 12px}.cp{display:flex;flex-direction:column;gap:var(--spacing-lg)}.cp-header{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.cp-preview-chip{background:var(--lock-bg);color:var(--lock-ink)}.cp-preview-chip .dot{background:var(--lock)}.cp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-md);max-width:880px}.cp-topic{background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-xl);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.cp-topic-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cp-topic-name{margin:0;font-family:var(--serif);font-size:18px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}.cp-topic-strand{font-size:12px;font-weight:500;color:var(--ink-2)}.cp-pill-draft{background:var(--prog-bg);color:var(--prog-ink)}.cp-pill-draft .dot{background:var(--prog)}.cp-pill-published{background:var(--ok-bg);color:var(--ok-ink)}.cp-pill-published .dot{background:var(--ok)}.cp-pill-archived{background:var(--lock-bg);color:var(--lock-ink)}.cp-pill-archived .dot{background:var(--lock)}.cp-levels{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.cp-level{display:grid;grid-template-columns:3ch minmax(7.25rem,max-content) max-content;align-items:center;column-gap:10px;min-height:32px}.cp-level-no{font-size:12px;font-weight:600;color:var(--ink-2)}.cp-level-none{grid-column:2 / -1;font-size:12px;font-style:italic;color:var(--ink-2)}.cp-segments{display:inline-flex;align-items:center;gap:3px}.cp-seg{width:18px;height:6px;border-radius:var(--radius-full);background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--lock)}.cp-seg-on{background:var(--ok);box-shadow:none}.cp-seg-criteria{width:10px}.cp-sk-name{width:200px;height:16px}.cp-sk-levels{width:100%;height:192px}@media(max-width:480px){.cp-segments{gap:2px}.cp-seg{width:12px}}.ca{display:flex;flex-direction:column;gap:var(--spacing-md)}.ca-summary{margin:0;font-size:13px;color:var(--ink-2)}.ca-summary .mono{font-weight:600;color:var(--ink)}.ca-summary-item{white-space:nowrap}.ca-summary-dot{display:inline-block;width:6px;height:6px;border-radius:var(--radius-full);margin-right:5px;transform:translateY(-1px)}.ca-dot-published{background:var(--ok)}.ca-dot-draft{background:var(--prog)}.ca-dot-archived{background:var(--lock)}.ca-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.ca-grid>li{min-width:0;display:flex;flex-direction:column}.ca-grid>li:has(.pc-popover){z-index:4}.ca-grid>li>.pc{flex:1 1 auto}@media(min-width:768px){.ca-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.ca-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1600px){.ca-grid{grid-template-columns:repeat(4,minmax(0,440px))}}.ca-sk-summary{display:inline-block;width:220px;height:13px}.ca-skeleton{gap:var(--spacing-sm)}.ca-sk-title{width:50%;height:18px}.ca-sk-chip{width:72px;height:20px;border-radius:var(--radius-full)}.ca-sk-meter{width:100%;height:8px;border-radius:var(--radius-full)}.ca-sk-dist{width:100%;height:28px}.ca-sk-meta{width:60%;height:12px}.ca-dialog{background:var(--surface);color:var(--ink);border:1px solid var(--hair);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);padding:var(--spacing-lg);width:min(560px,calc(100vw - 2 * var(--spacing-md)));max-height:min(85vh,720px);overflow-y:auto;margin:auto}.ca-dialog::backdrop{background:color-mix(in srgb,var(--ink) 32%,transparent)}@media(max-width:639px){.ca-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:none;border-radius:0;border:none;margin:0}}.ca-dialog[open]{animation:ca-dialog-in .15s ease-out}@keyframes ca-dialog-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ca-dialog[open]{animation:none}}.ca-dialog-head{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.ca-dialog-title{margin:0;font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink)}.ca-dialog-body{margin:var(--spacing-sm) 0 0;font-size:13px;color:var(--ink-2)}.ca-dialog-quiet{margin:var(--spacing-xs) 0 0;font-size:13px;color:var(--ink-2)}.ca-dialog-list{margin:var(--spacing-md) 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}.ca-dialog-foot{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.ca-dialog .btn:focus-visible,.ca-ack input:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px}.ca-dialog .btn:disabled{opacity:.55;cursor:default}.ca-dialog .btn-primary:disabled:hover{background:var(--violet-600)}.ca-dialog .btn-outline:disabled:hover{background:var(--surface)}.ca-spin{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:ca-spin .7s linear infinite}@keyframes ca-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ca-spin{display:none}}.ca-dialog-error{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding:10px 12px;background:var(--err-bg);border-radius:var(--radius-md)}.ca-dialog-error p{margin:0;font-size:13px;color:var(--ink-2)}.ca-kpis{display:flex;gap:var(--spacing-xl);margin-top:var(--spacing-md);flex-wrap:wrap}@media(max-width:479px){.ca-kpis{gap:var(--spacing-lg)}.ca-kpi{min-width:0;flex:1 1 0}}.ca-kpi{display:flex;flex-direction:column;gap:4px;min-width:96px}.ca-kpi-skeleton{display:inline-block;width:56px;height:34px}.ca-quiz-warn{margin:var(--spacing-md) 0 0;padding:10px 12px;background:var(--warn-bg);border-left:3px solid var(--warn);border-radius:var(--radius-sm);font-size:13px;color:var(--warn-ink)}.ca-ack{display:flex;align-items:flex-start;gap:10px;margin-top:var(--spacing-md);border-top:1px solid var(--hair);padding:var(--spacing-sm) 0 10px;min-height:44px;font-size:13px;color:var(--ink);cursor:pointer}.ca-ack input{flex:none;width:18px;height:18px;margin-top:1px;accent-color:var(--violet-600)}.ca-insp-levels{list-style:none;margin:var(--spacing-md) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.ca-insp-level{border-top:1px solid var(--hair);padding-top:var(--spacing-sm)}.ca-insp-level-head{margin:0;display:flex;align-items:center;gap:10px;font-size:13px;min-height:32px}.ca-insp-level-head:focus-visible{outline:2px solid var(--violet-500);outline-offset:2px;border-radius:var(--radius-sm)}.ca-insp-level-no{font-size:13px;font-weight:600;color:var(--ink);width:3ch}.ca-insp-publish{margin-left:auto;min-height:44px}.ca-insp-checklist{list-style:none;margin:6px 0 0;padding:0 0 0 calc(3ch + 10px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;font-size:13px;color:var(--ink-2)}@media(max-width:479px){.ca-insp-checklist{grid-template-columns:1fr}}.ca-missing-list{grid-template-columns:1fr;padding-left:0}.ca-insp-item{display:flex;align-items:center;gap:6px;min-width:0}.ca-insp-check{flex:none;color:var(--ok)}.ca-insp-missing{color:var(--warn-ink)}.ca-insp-absent{margin:6px 0 0;padding-left:calc(3ch + 10px);font-size:13px;font-style:italic;color:var(--ink-2)}.cad{display:flex;flex-direction:column;gap:var(--spacing-lg)}.cad-header{display:flex;align-items:baseline;gap:var(--spacing-md);flex-wrap:wrap}.cad-tagline{margin:0;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ink-2)}
