@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700;9..144,800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-blue-50: #EFF6FF;--color-blue-100: #DBEAFE;--color-blue-200: #BFDBFE;--color-blue-300: #93C5FD;--color-blue-400: #60A5FA;--color-blue-500: #3B82F6;--color-blue-600: #1A56DB;--color-blue-700: #1245B0;--color-blue-800: #0F3787;--color-blue-900: #0A2A66;--color-neutral-0: #FFFFFF;--color-neutral-50: #F9FAFB;--color-neutral-100: #F3F4F6;--color-neutral-200: #E5E7EB;--color-neutral-300: #D1D5DB;--color-neutral-400: #9CA3AF;--color-neutral-500: #6B7280;--color-neutral-600: #4B5563;--color-neutral-700: #374151;--color-neutral-800: #1F2937;--color-neutral-900: #111827;--color-success-bg: #DCFCE7;--color-success-text: #14532D;--color-success-bold: #16A34A;--color-warning-bg: #FEF3C7;--color-warning-text: #78350F;--color-warning-bold: #D97706;--color-danger-bg: #FEE2E2;--color-danger-text: #7F1D1D;--color-danger-bold: #DC2626;--color-info-bg: #DBEAFE;--color-info-text: #1E3A8A;--color-info-bold: #2563EB;--color-primary: var(--color-blue-600);--color-primary-hover: var(--color-blue-700);--color-primary-tint: var(--color-blue-50);--color-primary-on: var(--color-neutral-0);--color-bg-app: var(--color-neutral-50);--color-bg-surface: var(--color-neutral-0);--color-bg-subtle: var(--color-neutral-100);--color-bg-inverse: var(--color-neutral-900);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-300);--color-border-focus: var(--color-blue-500);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-tertiary: var(--color-neutral-400);--color-text-inverse: var(--color-neutral-0);--color-text-link: var(--color-blue-700);--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Fraunces", "Inter", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--text-2xs: 11px;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-md: 18px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 30px;--text-3xl: 36px;--text-4xl: 48px;--text-5xl: 60px;--text-6xl: 76px;--text-7xl: 96px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--leading-tight: 1.1;--leading-snug: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--tracking-tighter: -.03em;--tracking-tight: -.01em;--tracking-normal: 0em;--tracking-wide: .04em;--tracking-widest: .08em;--space-0: 0;--space-px: 1px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-32: 128px;--space-40: 160px;--space-48: 192px;--radius-none: 0;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-3xl: 24px;--radius-pill: 9999px;--shadow-0: none;--shadow-1: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .04);--shadow-2: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);--shadow-3: 0 12px 28px rgba(15, 23, 42, .12), 0 4px 8px rgba(15, 23, 42, .05);--shadow-4: 0 24px 56px rgba(15, 23, 42, .18), 0 8px 16px rgba(15, 23, 42, .06);--shadow-focus: 0 0 0 3px rgba(26, 86, 219, .32);--shadow-focus-danger: 0 0 0 3px rgba(220, 38, 38, .3);--duration-micro: .12s;--duration-base: .2s;--duration-slow: .32s;--duration-cinema-1: .6s;--duration-cinema-2: .9s;--duration-cinema-3: 1.4s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-confident: cubic-bezier(.16, 1, .3, 1);--ease-exit: cubic-bezier(.7, 0, .84, 0);--ease-spring: cubic-bezier(.5, 1.6, .4, 1);--z-base: 0;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 500;--z-modal: 600;--z-toast: 700;--z-tooltip: 800;--container-narrow: 720px;--container-base: 960px;--container-wide: 1200px;--container-prose: 640px;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px}@media (prefers-reduced-motion: reduce){:root{--duration-micro: 0ms;--duration-base: 0ms;--duration-slow: 0ms;--duration-cinema-1: 0ms;--duration-cinema-2: 0ms;--duration-cinema-3: 0ms}}.app-shell,:root.app{--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 28px;--font-display: var(--font-ui);--row-height-sm: 32px;--row-height-md: 40px;--row-height-lg: 48px;--field-height-sm: 32px;--field-height-md: 36px;--field-height-lg: 44px;--sidebar-width: 248px;--sidebar-width-collapsed: 64px;--topbar-height: 56px;--pad-card: var(--space-5);--pad-row: var(--space-3) var(--space-4);--pad-section: var(--space-8) var(--space-6);--duration-cinema-1: var(--duration-base);--duration-cinema-2: var(--duration-slow);--duration-cinema-3: var(--duration-slow);--card-border: 1px solid var(--color-border);--card-shadow: var(--shadow-0);--popover-shadow: var(--shadow-2);--modal-shadow: var(--shadow-4)}.app-shell{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg-app);min-height:100dvh}.app-shell h1{font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.app-shell h2{font-size:var(--text-2xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.app-shell h3{font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.app-shell h4{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.app-shell h5{font-size:var(--text-base);font-weight:var(--weight-semibold)}.app-shell h6{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-secondary)}*,*:before,*:after{box-sizing:border-box}html,body,h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote,dl,dd{margin:0}html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{min-height:100dvh;font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}ul,ol{padding:0;list-style:none}a{color:var(--color-text-link);text-decoration:none}a:hover{text-decoration:underline}h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}h2{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}h3{font-family:var(--font-ui);font-size:var(--text-2xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}h4{font-family:var(--font-ui);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}h5{font-family:var(--font-ui);font-size:var(--text-lg);font-weight:var(--weight-semibold)}h6{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-secondary)}p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-primary);text-wrap:pretty}small,.text-sm{font-size:var(--text-sm);color:var(--color-text-secondary)}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.9em}code{background:var(--color-bg-subtle);border-radius:var(--radius-sm);padding:.1em .4em}pre{background:var(--color-bg-subtle);border-radius:var(--radius-md);padding:var(--space-4);overflow-x:auto;line-height:var(--leading-snug)}hr{border:0;border-top:1px solid var(--color-border);margin-block:var(--space-8)}::selection{background:var(--color-blue-100);color:var(--color-blue-900)}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}label{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-inverse{color:var(--color-text-inverse)}.text-link{color:var(--color-text-link)}.text-success{color:var(--color-success-bold)}.text-warning{color:var(--color-warning-bold)}.text-danger{color:var(--color-danger-bold)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-mono{font-family:var(--font-mono)}.bg-app{background:var(--color-bg-app)}.bg-surface{background:var(--color-bg-surface)}.bg-subtle{background:var(--color-bg-subtle)}.bg-inverse{background:var(--color-bg-inverse);color:var(--color-text-inverse)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--field-height-md, 40px);padding-inline:var(--space-4);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color var(--duration-micro) var(--ease-standard),color var(--duration-micro) var(--ease-standard),border-color var(--duration-micro) var(--ease-standard),transform var(--duration-micro) var(--ease-standard)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.btn:not(:disabled):active{transform:translateY(1px)}.btn__icon{display:inline-flex;width:1em;height:1em}.btn__icon svg{width:100%;height:100%}.btn--sm{height:var(--field-height-sm, 32px);padding-inline:var(--space-3);font-size:var(--text-xs)}.btn--lg{height:var(--field-height-lg, 48px);padding-inline:var(--space-5);font-size:var(--text-base)}.btn--primary{background:var(--color-primary);color:var(--color-primary-on)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-primary-tint);color:var(--color-primary)}.btn--secondary:hover:not(:disabled){background:var(--color-blue-100)}.btn--ghost{background:transparent;color:var(--color-text-primary);border-color:var(--color-border)}.btn--ghost:hover:not(:disabled){background:var(--color-bg-subtle);border-color:var(--color-border-strong)}.btn--danger{background:var(--color-danger-bold);color:var(--color-neutral-0)}.btn--danger:hover:not(:disabled){background:#b91c1c}.btn--link{background:transparent;color:var(--color-text-link);height:auto;padding:0;border:0}.btn--link:hover:not(:disabled){text-decoration:underline}.btn--on-deep{background:var(--color-neutral-0);color:var(--marketing-navy-900, var(--color-neutral-900))}.btn--on-deep.btn--ghost{background:transparent;color:var(--color-neutral-0);border-color:#ffffff2e}.btn--icon{width:var(--field-height-md, 40px);padding:0}.card{background:var(--color-bg-surface);border:var(--card-border, 1px solid var(--color-border));border-radius:var(--radius-xl);box-shadow:var(--card-shadow, var(--shadow-0));padding:var(--pad-card, var(--space-6))}.card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.card__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.card__sub{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.card__footer{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__hint{font-size:var(--text-xs);color:var(--color-text-secondary)}.field__error{font-size:var(--text-xs);color:var(--color-danger-bold)}.input,.textarea,.select{font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 var(--space-3);height:var(--field-height-md, 40px);width:100%;transition:border-color var(--duration-micro) var(--ease-standard),box-shadow var(--duration-micro) var(--ease-standard)}.input::placeholder,.textarea::placeholder{color:var(--color-text-tertiary)}.input:hover,.textarea:hover,.select:hover{border-color:var(--color-border-strong)}.input:focus-visible,.textarea:focus-visible,.select:focus-visible{border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.textarea{height:auto;padding:var(--space-3);resize:vertical;min-height:96px}.input--error,.textarea--error,.select--error{border-color:var(--color-danger-bold)}.input--error:focus-visible,.textarea--error:focus-visible,.select--error:focus-visible{box-shadow:var(--shadow-focus-danger)}.checkbox,.radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:1px solid var(--color-border-strong);background:var(--color-bg-surface);display:inline-grid;place-content:center;cursor:pointer;transition:background-color var(--duration-micro) var(--ease-standard),border-color var(--duration-micro) var(--ease-standard)}.checkbox{border-radius:var(--radius-sm)}.radio{border-radius:var(--radius-pill)}.checkbox:checked,.radio:checked{background:var(--color-primary);border-color:var(--color-primary)}.checkbox:checked:after{content:"";width:10px;height:10px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E") center/contain no-repeat}.radio:checked:after{content:"";width:6px;height:6px;background:var(--color-neutral-0);border-radius:var(--radius-pill)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-subtle);color:var(--color-text-secondary);line-height:1.4}.badge--primary{background:var(--color-primary-tint);color:var(--color-primary)}.badge--success{background:var(--color-success-bg);color:var(--color-success-text)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge--danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.badge--info{background:var(--color-info-bg);color:var(--color-info-text)}.pill{border-radius:var(--radius-pill);padding-inline:var(--space-3)}.status{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.status:before{content:"";width:6px;height:6px;border-radius:var(--radius-pill);background:currentColor;flex-shrink:0}.status--active{color:var(--color-success-bold)}.status--pending{color:var(--color-warning-bold)}.status--paused{color:var(--color-text-tertiary)}.status--danger{color:var(--color-danger-bold)}.alert{display:flex;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:var(--text-sm);color:var(--color-text-primary)}.alert__icon{flex-shrink:0;line-height:1;margin-top:2px}.alert__title{font-weight:var(--weight-semibold);margin-bottom:var(--space-1)}.alert--success{background:var(--color-success-bg);border-color:var(--color-success-bold);color:var(--color-success-text)}.alert--warning{background:var(--color-warning-bg);border-color:var(--color-warning-bold);color:var(--color-warning-text)}.alert--danger{background:var(--color-danger-bg);border-color:var(--color-danger-bold);color:var(--color-danger-text)}.alert--info{background:var(--color-info-bg);border-color:var(--color-info-bold);color:var(--color-info-text)}.list{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.list__header,.list__row{display:grid;align-items:center;padding:var(--pad-row, var(--space-3) var(--space-4));border-bottom:1px solid var(--color-border)}.list__header{background:var(--color-bg-subtle);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-secondary)}.list__row:last-child{border-bottom:0}.list__row:hover{background:var(--color-bg-subtle)}.avatar{width:32px;height:32px;border-radius:var(--radius-md);background:var(--color-bg-subtle);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--weight-semibold);flex-shrink:0}.avatar--primary{background:var(--color-primary-tint);color:var(--color-primary)}.nav{display:flex;align-items:center;gap:var(--space-1)}.nav__item{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background-color var(--duration-micro) var(--ease-standard),color var(--duration-micro) var(--ease-standard)}.nav__item:hover{background:var(--color-bg-subtle);color:var(--color-text-primary);text-decoration:none}.nav__item.is-active{background:var(--color-primary-tint);color:var(--color-primary)}.modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:var(--z-overlay);display:grid;place-items:center;padding:var(--space-4)}.modal{background:var(--color-bg-surface);border-radius:var(--radius-2xl);box-shadow:var(--modal-shadow, var(--shadow-4));width:min(560px,100%);max-height:calc(100dvh - var(--space-8));overflow:auto;z-index:var(--z-modal)}.modal__header,.modal__footer{padding:var(--space-5) var(--space-6)}.modal__header{border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal__body{padding:var(--space-6)}.modal__footer{border-top:1px solid var(--color-border);display:flex;gap:var(--space-2);justify-content:flex-end}.stat{background:var(--color-bg-surface);padding:var(--space-4) var(--space-5)}.stat__label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.stat__value{font-family:var(--font-ui);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:1;letter-spacing:var(--tracking-tight);color:var(--color-text-primary)}.stat__delta{font-size:var(--text-xs);margin-top:var(--space-1);color:var(--color-text-secondary)}.stat__delta--up{color:var(--color-success-bold)}.stat__delta--down{color:var(--color-danger-bold)}:root{--reveal-duration: var(--duration-cinema-1);--reveal-ease: var(--ease-confident);--reveal-distance: 16px;--reveal-stagger: 60ms}.fx-reveal{transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease);will-change:opacity,transform}[data-reveal-pending].fx-reveal{opacity:0;transform:translateY(var(--reveal-distance))}[data-reveal-pending].fx-reveal--up{transform:translateY(var(--reveal-distance))}[data-reveal-pending].fx-reveal--down{transform:translateY(calc(var(--reveal-distance) * -1))}[data-reveal-pending].fx-reveal--left{transform:translate(var(--reveal-distance))}[data-reveal-pending].fx-reveal--right{transform:translate(calc(var(--reveal-distance) * -1))}[data-reveal-pending].fx-reveal--zoom{transform:scale(.94)}[data-reveal-pending].fx-reveal--blur{filter:blur(12px);transition-property:opacity,filter}.fx-reveal.is-in{opacity:1;transform:none;filter:none}.fx-reveal--statement{--reveal-duration: var(--duration-cinema-3);--reveal-distance: 32px}.fx-stagger>.fx-reveal{transition-delay:0ms}.fx-stagger>.fx-reveal:nth-child(1){transition-delay:calc(0 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(2){transition-delay:calc(1 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(3){transition-delay:calc(2 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(4){transition-delay:calc(3 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(5){transition-delay:calc(4 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(6){transition-delay:calc(5 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(7){transition-delay:calc(6 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(8){transition-delay:calc(7 * var(--reveal-stagger))}.fx-stagger>.fx-reveal:nth-child(9){transition-delay:calc(8 * var(--reveal-stagger))}.fx-parallax{transform:translate3d(0,var(--parallax-y, 0px),0);will-change:transform}.fx-progress-bar:after{content:"";position:absolute;inset:auto 0 0 0;height:2px;background:var(--color-primary);transform-origin:left center;transform:scaleX(var(--scroll-progress, 0));transition:transform 50ms linear}.fx-marquee{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.fx-marquee__track{display:flex;gap:var(--space-12);animation:fx-marquee-slide 40s linear infinite;flex-shrink:0;padding-inline:var(--space-6)}@keyframes fx-marquee-slide{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.fx-reveal,[data-reveal-pending].fx-reveal,.fx-reveal.is-in{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.fx-marquee__track{animation:none}.fx-parallax{transform:none}}html,body,#root{height:100dvh}body.app-shell{display:flex;min-height:100dvh}#root{display:flex;flex:1;min-width:0}.layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:100%;height:100%;flex:1;min-width:0;width:100%}@media (max-width: 760px){.layout{grid-template-columns:1fr}.layout>.sidebar-rail{display:none}.main-col{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}.mobile-tabbar{display:none}@media (max-width: 760px){.mobile-tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:var(--z-sticky, 50);background:var(--color-bg-surface);border-top:1px solid var(--color-border);padding:8px 4px calc(8px + env(safe-area-inset-bottom));gap:2px}.mobile-tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;border-radius:var(--radius-md, 8px);color:var(--color-text-tertiary);text-decoration:none;font-size:10px;font-weight:var(--weight-medium, 500);min-height:48px;position:relative}.mobile-tabbar__item.is-active{color:var(--color-primary);background:var(--color-primary-tint, rgba(26, 86, 219, .08))}.mobile-tabbar__item--live{color:var(--color-primary)}.mobile-tabbar__dot{position:absolute;top:8px;right:calc(50% - 16px);width:6px;height:6px;border-radius:50%;background:var(--color-danger, #DC2626);animation:tabbar-pulse 1.6s ease-in-out infinite}@keyframes tabbar-pulse{0%,to{opacity:1}50%{opacity:.4}}}.sidebar-rail{background:var(--color-bg-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;height:100dvh;position:sticky;top:0;overflow:hidden}.sidebar-rail__brand{height:var(--topbar-height);display:flex;align-items:center;padding:0 var(--space-5);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);border-bottom:1px solid var(--color-border);gap:var(--space-2)}.sidebar-rail__brand-mark{width:28px;height:28px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-primary) 0%,#1E40AF 100%);flex-shrink:0;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:var(--weight-bold);letter-spacing:-.02em;box-shadow:0 2px 6px #1a56db40}.sidebar-rail__brand-mark:after{content:"cBC"}.sidebar-rail__nav{padding:var(--space-3);display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.sidebar-rail__group-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-tertiary);padding:var(--space-3) var(--space-3) var(--space-2)}.sidebar-rail .nav__item{width:100%;justify-content:flex-start;text-decoration:none}.sidebar-rail .nav__item:hover{text-decoration:none}.sidebar-rail__footer{padding:var(--space-3);border-top:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary)}.main-col{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{height:var(--topbar-height);border-bottom:1px solid var(--color-border);background:var(--color-bg-surface);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);flex-shrink:0;position:sticky;top:0;z-index:var(--z-sticky)}.topbar__title{font-size:var(--text-md);font-weight:var(--weight-semibold);display:flex;align-items:baseline;gap:var(--space-2)}.topbar__sub{color:var(--color-text-secondary);font-weight:var(--weight-regular);font-size:var(--text-sm)}.topbar__actions{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;justify-content:flex-end}@media (max-width: 480px){.topbar{padding:0 var(--space-3);flex-wrap:wrap;min-height:var(--topbar-height);height:auto}.topbar__title{font-size:var(--text-sm)}.topbar__sub{display:none}}@media (max-width: 600px){.students-list__row{grid-template-columns:1fr!important;gap:var(--space-1);padding:var(--space-3) var(--space-3)}.students-list .list__header{display:none}.students-list__row>*:nth-child(n+2){display:inline-flex;align-items:center;margin-right:var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary)}}@media (max-width: 760px){.btn--sm{min-height:44px;height:auto;padding-block:var(--space-2)}.btn--icon{min-width:44px;min-height:44px}}.content{flex:1;min-height:0;overflow-y:auto;padding:var(--pad-section, var(--space-6) var(--space-6))}.content__inner{max-width:1200px;margin-inline:auto}@media (max-width: 760px){.content{padding:var(--space-4) var(--space-4)}}.sync-pill{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-success-bold);font-weight:var(--weight-medium)}.sync-pill:before{content:"";flex-shrink:0;width:6px;height:6px;border-radius:var(--radius-pill);background:currentColor}@media (max-width: 760px){.sync-pill:not(.sync-pill--offline):not(.sync-pill--error){font-size:0;gap:0}}.sync-pill--offline{color:var(--color-text-tertiary)}.sync-pill--syncing{color:var(--color-warning-bold)}button.sync-pill--error{border:1px solid var(--color-danger);background:var(--color-danger-tint, color-mix(in srgb, var(--color-danger) 10%, transparent));color:var(--color-danger);padding:2px var(--space-2);border-radius:var(--radius-pill);cursor:pointer}button.sync-pill--error:hover{filter:brightness(.95)}button.sync-pill--error:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.compliance-banner{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-bold);background:var(--color-warning-tint, color-mix(in srgb, var(--color-warning-bold) 8%, transparent));border-radius:var(--radius-md);margin-bottom:var(--space-4)}.compliance-banner__icon{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--color-warning-bold);color:var(--color-white, #fff);font-weight:var(--weight-bold);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-sm)}.compliance-banner__body{flex:1;font-size:var(--text-sm)}.compliance-banner__link{font-weight:var(--weight-medium);color:var(--color-warning-bold);text-decoration:underline;white-space:nowrap}.compliance-banner__dismiss{background:transparent;border:0;font-size:18px;line-height:1;cursor:pointer;color:var(--color-text-tertiary);padding:0 var(--space-1)}.compliance-banner__dismiss:hover{color:var(--color-text-primary)}.compliance-banner__dismiss:focus-visible{outline:2px solid var(--color-warning-bold);border-radius:var(--radius-sm)}@media print{.compliance-banner{display:none}}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-6)}@media (max-width: 760px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.schedule-row{display:grid;grid-template-columns:80px 1fr auto;align-items:center;padding:var(--pad-row);gap:var(--space-4);border-bottom:1px solid var(--color-border)}.schedule-row:last-child{border-bottom:0}.schedule-row__body{display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none;cursor:pointer;outline-offset:2px;border-radius:var(--radius-sm);padding:var(--space-1) 0;min-width:0}.schedule-row__body:hover .schedule-row__title{color:var(--color-primary)}.schedule-row__body:focus-visible{outline:2px solid var(--color-primary)}.stat--link{text-decoration:none;color:inherit;cursor:pointer;transition:background .12s ease}.stat--link:hover{background:var(--color-bg-subtle)}.stat--link:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.schedule-row__time{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary)}.schedule-row__time--now{color:var(--color-primary);font-weight:var(--weight-semibold)}.schedule-row__title{font-weight:var(--weight-medium);margin-bottom:2px}.schedule-row__sub{font-size:var(--text-xs);color:var(--color-text-secondary)}.schedule-row__actions{display:flex;gap:var(--space-2);align-items:center}.schedule-row--now{background:var(--color-primary-tint)}@media (max-width: 600px){.schedule-row{grid-template-columns:60px 1fr;grid-template-areas:"time body" "actions actions";row-gap:var(--space-2)}.schedule-row__time{grid-area:time}.schedule-row__body{grid-area:body}.schedule-row__actions{grid-area:actions;flex-wrap:wrap;justify-content:flex-end}.schedule-row__actions .btn--primary.btn--sm{min-height:44px;padding-inline:var(--space-4)}}.col-2{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4);margin-top:var(--space-6)}@media (max-width: 900px){.col-2{grid-template-columns:1fr}}.pretrip-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-3);margin-top:var(--space-4)}.pretrip-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-primary);transition:background-color var(--duration-micro) var(--ease-standard),border-color var(--duration-micro) var(--ease-standard)}.pretrip-card:hover{border-color:var(--color-border-strong)}.pretrip-card__check{width:22px;height:22px;border-radius:50%;border:2px solid var(--color-border-strong);display:grid;place-items:center;flex-shrink:0;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}.pretrip-card__check svg{color:#fff}.pretrip-card--done{background:var(--color-success-bg);border-color:var(--color-success-bold);color:var(--color-success-text)}.pretrip-card--done .pretrip-card__check{background:var(--color-success-bold);border-color:var(--color-success-bold)}.pretrip-card__label{font-weight:var(--weight-medium)}.pretrip-card__sub{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.pretrip-card--done .pretrip-card__sub{color:var(--color-success-text);opacity:.8}.progress-bar{height:6px;background:var(--color-bg-subtle);border-radius:var(--radius-pill);overflow:hidden}.progress-bar__fill{height:100%;background:var(--color-primary);border-radius:var(--radius-pill);transition:width var(--duration-slow) var(--ease-standard)}.search-bar{display:flex;align-items:center;gap:var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 var(--space-3);height:var(--field-height-md);margin-bottom:var(--space-4)}.search-bar input{flex:1;border:0;outline:0;background:transparent;font-size:var(--text-sm);color:var(--color-text-primary);height:100%}.search-bar svg{color:var(--color-text-tertiary)}.readiness-block{display:flex;align-items:center;gap:var(--space-4)}.readiness-gauge--app{width:96px;height:96px;border-radius:50%;background:conic-gradient(var(--color-primary) calc(var(--pct) * 1%),var(--color-bg-subtle) 0);display:grid;place-items:center;position:relative;flex-shrink:0}.readiness-gauge--app:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;background:var(--color-bg-surface);border-radius:50%}.readiness-gauge--app>*{position:relative}.readiness-gauge--app__num{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight)}.skill-row{display:grid;grid-template-columns:1fr 60px;gap:var(--space-3);align-items:center;padding:var(--space-2) 0}.skill-row__bar{grid-column:1 / -1;height:4px;background:var(--color-bg-subtle);border-radius:var(--radius-pill);overflow:hidden}.skill-row__fill{height:100%;background:var(--color-primary);border-radius:var(--radius-pill)}.skill-row__pct{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);text-align:right}.skill-row--button{width:100%;background:none;border:0;text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:var(--radius-sm);padding-left:var(--space-2);padding-right:var(--space-2);margin-left:calc(var(--space-2) * -1);margin-right:calc(var(--space-2) * -1)}.skill-row--button:hover{background:var(--color-bg-subtle)}.skill-row--button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.skill-timeline{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);margin:var(--space-2) 0 var(--space-3);background:var(--color-bg-subtle);border-radius:var(--radius-md);border-left:2px solid var(--color-primary)}.skill-timeline__row{display:grid;grid-template-columns:90px auto 1fr;gap:var(--space-2);align-items:baseline;font-size:var(--text-sm)}.skill-timeline__date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);text-decoration:none;white-space:nowrap}.skill-timeline__date:hover{color:var(--color-primary);text-decoration:underline}.skill-timeline__note{color:var(--color-text-primary);white-space:pre-wrap;line-height:var(--leading-snug)}.report-grid{display:flex;flex-direction:column;gap:var(--space-3)}.report-row-edit{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-row-edit__header{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.report-row-edit__label{font-weight:var(--weight-medium);font-size:var(--text-sm);flex:1 1 auto;min-width:0}.report-row-edit__note{width:100%;font-size:var(--text-xs);height:auto;padding:var(--space-2) var(--space-3);color:var(--color-text-secondary)}.mark-toggle{display:flex;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-subtle)}.mark-toggle button{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-3);border:0;background:transparent;cursor:pointer;color:var(--color-text-secondary)}.mark-toggle button.is-active{color:var(--color-text-primary)}.mark-toggle button[data-mark=good].is-active{background:var(--color-success-bg);color:var(--color-success-text)}.mark-toggle button[data-mark=working].is-active{background:var(--color-warning-bg);color:var(--color-warning-text)}.mark-toggle button[data-mark=needs].is-active{background:var(--color-danger-bg);color:var(--color-danger-text)}.loading-splash{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-6);background:var(--color-bg-app);text-align:center}.loading-splash__mark{width:56px;height:56px;border-radius:var(--radius-2xl);background:linear-gradient(135deg,var(--color-primary) 0%,#1E40AF 100%);display:grid;place-items:center;box-shadow:0 8px 24px #1a56db40;color:#fff;font-weight:var(--weight-semibold);font-size:var(--text-xl);letter-spacing:-.02em}.loading-splash__bar{width:120px;height:3px;background:var(--color-border);border-radius:var(--radius-pill);overflow:hidden}.loading-splash__bar>span{display:block;width:40%;height:100%;background:var(--color-primary);border-radius:var(--radius-pill);animation:loading-splash-slide 1.4s ease-in-out infinite}@keyframes loading-splash-slide{0%{transform:translate(-100%)}50%{transform:translate(200%)}to{transform:translate(200%)}}.loading-splash__label{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.02em}.loading-splash__hint{max-width:320px;font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--leading-snug)}.signin-screen{min-height:100dvh;display:grid;place-items:center;background:var(--color-bg-app);padding:var(--space-6)}.signin-card{width:min(420px,100%);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-8);box-shadow:var(--shadow-2)}.signin-card h1{font-family:var(--font-ui);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-2)}.signin-card .field{margin-top:var(--space-4)}.signin-card .btn{width:100%;margin-top:var(--space-4)}.signin-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0;font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-widest)}.signin-divider:before,.signin-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.btn--xs{height:24px;padding-inline:var(--space-2);font-size:var(--text-2xs, 11px);border-radius:var(--radius-sm)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:grid;place-items:center;z-index:200;padding:var(--space-4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in var(--duration-base) var(--ease-standard)}.modal{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-3, 0 16px 48px rgba(0,0,0,.18));width:min(100%,520px);display:flex;flex-direction:column;max-height:90dvh;overflow:hidden;animation:slide-up var(--duration-base) var(--ease-standard)}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(8px);opacity:0}}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);margin:0}.modal__close{background:transparent;border:0;cursor:pointer;color:var(--color-text-secondary);font-size:var(--text-md);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);line-height:1;font-family:var(--font-ui)}.modal__close:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.modal__body{padding:var(--space-6);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:var(--space-4)}.modal__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-2);flex-shrink:0;background:var(--color-bg-subtle)}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.section-title h2{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.empty-state{text-align:center;padding:var(--space-12);color:var(--color-text-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-surface)}.btn--active{background:var(--color-primary-tint)!important;color:var(--color-primary)!important;border-color:var(--color-primary)!important}.nav__item--live{position:relative}.nav__live-dot{width:7px;height:7px;border-radius:50%;background:var(--color-danger, #e53935);margin-left:auto;flex-shrink:0;animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;min-height:480px}@media (max-width: 900px){.cal-week{grid-template-columns:repeat(4,1fr)}}@media (max-width: 600px){.cal-week{grid-template-columns:repeat(2,1fr)}}.cal-day{background:var(--color-bg-surface);display:flex;flex-direction:column}.cal-day--today{background:var(--color-primary-tint, #eff6ff)}.cal-day--past{opacity:.65}.cal-day__header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}.cal-day__weekday{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--color-text-tertiary)}.cal-day__num{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);line-height:1}.cal-day__num--today{color:var(--color-primary)}.cal-day__body{flex:1;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.cal-event{background:var(--color-primary-tint, #eff6ff);border:none;border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);text-align:left;width:100%;font-family:var(--font-ui);transition:filter var(--duration-micro) var(--ease-standard)}.cal-event:hover:not(:disabled){filter:brightness(.95)}.cal-event--in_progress{background:var(--color-warning-bg);border-color:var(--color-warning-bold)}.cal-event--done{background:var(--color-bg-subtle);border-color:var(--color-border)}.cal-event__time{font-family:var(--font-mono);color:var(--color-text-secondary);font-size:var(--text-2xs);line-height:1.4}.cal-event__name{font-weight:var(--weight-medium);font-size:var(--text-xs);color:var(--color-text-primary)}.cal-event__focus{color:var(--color-text-secondary);font-size:var(--text-2xs);line-height:1.3;margin-top:1px}.cal-event__badge{display:inline-block;background:var(--color-primary);color:#fff;font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:1px var(--space-1);border-radius:var(--radius-pill);margin-top:var(--space-1)}.cal-event__badge--done{background:var(--color-success-bold)}.cal-add-btn{margin-top:auto;border:1px dashed var(--color-primary);background:transparent;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-2);cursor:pointer;color:var(--color-primary);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:1;text-align:center;width:100%;font-family:var(--font-ui);opacity:.7;transition:opacity var(--duration-micro) var(--ease-standard),background var(--duration-micro) var(--ease-standard)}.cal-add-btn:hover,.cal-add-btn:focus-visible{background:var(--color-primary-bg, rgba(26, 86, 219, .08));opacity:1;outline:none}.cal-add-btn{font-size:var(--text-xs)}.modal__body{background-image:linear-gradient(to bottom,var(--color-bg-surface) 30%,transparent),linear-gradient(to bottom,transparent,var(--color-bg-surface) 70%) 0 100%,radial-gradient(farthest-side at 50% 0,rgba(15,23,42,.08),transparent),radial-gradient(farthest-side at 50% 100%,rgba(15,23,42,.08),transparent) 0 100%;background-repeat:no-repeat;background-size:100% 24px,100% 24px,100% 8px,100% 8px;background-attachment:local,local,scroll,scroll}.student-sign-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg-app);z-index:10000;overflow-y:auto;display:flex;flex-direction:column}.student-sign-screen{flex:1;display:flex;flex-direction:column;max-width:720px;margin:0 auto;width:100%;padding:var(--space-6) var(--space-5)}.student-sign-screen__header{text-align:center;padding:var(--space-4) 0 var(--space-6);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6)}.student-sign-screen__pill{display:inline-block;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-primary);background:var(--color-primary-tint, rgba(26, 86, 219, .1));padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);margin-bottom:var(--space-3)}.student-sign-screen__title{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-2)}.student-sign-screen__sub{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:480px;margin:0 auto;line-height:var(--leading-normal)}.student-sign-screen__body{flex:1}.student-sign-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}.student-sign-card__row{display:flex;justify-content:space-between;padding:var(--space-2) 0;font-size:var(--text-sm);border-bottom:1px solid var(--color-border)}.student-sign-card__row:last-child{border-bottom:0}.student-sign-card__lab{color:var(--color-text-secondary)}.student-sign-card__val{font-weight:var(--weight-medium);color:var(--color-text-primary)}.student-sign-screen__footer{display:flex;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--color-border);margin-top:var(--space-6)}@media (max-width: 480px){.student-sign-screen__footer{flex-direction:column-reverse}.student-sign-screen__footer .btn{width:100%}}.signoff-summary__head{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) 0 var(--space-4);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4)}.signoff-summary__check{width:56px;height:56px;border-radius:999px;background:var(--color-success-bg);color:var(--color-success-bold);display:grid;place-items:center;font-size:28px;font-weight:var(--weight-bold);flex-shrink:0}.signoff-summary__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:4px}.signoff-summary__sub{font-size:var(--text-sm);color:var(--color-text-secondary)}.signoff-summary__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-2)}.signoff-summary__stat{background:var(--color-bg-subtle);border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.signoff-summary__stat-val{font-family:var(--font-ui);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);line-height:1}.signoff-summary__stat-lab{font-size:var(--text-2xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-widest);margin-top:4px}.lesson-report-modal{width:min(100%,640px);max-height:92dvh;display:flex;flex-direction:column}.lesson-report-modal__progress{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.lesson-report-modal__progress strong{color:var(--color-primary)}.lesson-report-modal__save-pill{font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-subtle);padding:2px var(--space-2);border-radius:var(--radius-pill)}.lesson-report-modal__save-pill--ok{color:var(--color-success-bold);background:var(--color-success-bg)}.lesson-report-modal__filter{display:flex;gap:var(--space-2);padding:0 var(--space-6) var(--space-3);flex-wrap:wrap;border-bottom:1px solid var(--color-border);padding-top:var(--space-3)}.lesson-report-modal__search{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-bg-surface)}.lesson-report-modal__search input:focus{outline:none}.lesson-report-modal__body{flex:1 1 auto;overflow-y:auto;padding:var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.lesson-report-modal__footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-bg-surface);gap:var(--space-3)}.chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);background:transparent;border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer}.chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.chip:disabled{opacity:.5;cursor:not-allowed}.lesson-actions-pop{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--space-1);z-index:var(--z-popover, 100)}.lesson-actions-pop__item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer}.lesson-actions-pop__item:hover{background:var(--color-bg-subtle)}.lesson-actions-pop__item--danger{color:var(--color-danger)}.lesson-actions-pop__item--danger:hover{background:var(--color-danger-bg)}.lesson-action-cta{width:100%;margin-top:var(--space-4);padding:var(--space-4) var(--space-5);font-size:var(--text-base);font-weight:var(--weight-semibold);min-height:52px}.lesson-details-collapse>summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;list-style:none;padding:0}.lesson-details-collapse>summary::-webkit-details-marker{display:none}.lesson-details-collapse>summary:after{content:"⌄";font-size:var(--text-lg);color:var(--color-text-tertiary);transition:transform .15s ease}.lesson-details-collapse[open]>summary:after{transform:rotate(180deg)}.lesson-timer-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-8) var(--space-6);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);text-align:center}.lesson-timer-card__icon{color:var(--color-primary);margin-bottom:var(--space-3)}.lesson-timer-card__display{font-size:clamp(48px,10vw,80px);font-weight:var(--weight-bold);font-family:var(--font-mono);letter-spacing:var(--tracking-tight);color:var(--color-text-primary);line-height:1;margin-bottom:var(--space-1);font-variant-numeric:tabular-nums}.checkbox-label{display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface);transition:border-color var(--duration-micro) var(--ease-standard)}.checkbox-label:hover{border-color:var(--color-primary)}.checkbox-label input[type=checkbox]{margin-top:2px;flex-shrink:0;accent-color:var(--color-primary);width:16px;height:16px}.user-menu{position:relative}.user-menu__trigger{width:36px;height:36px;min-width:36px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary);font-weight:600;font-size:var(--text-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color var(--duration-micro) var(--ease-standard),background var(--duration-micro) var(--ease-standard)}.user-menu__trigger:hover,.user-menu__trigger:focus-visible{border-color:var(--color-primary);background:var(--color-bg-subtle);outline:none}.user-menu__pop{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:30;min-width:220px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);display:flex;flex-direction:column;gap:1px}.user-menu__header{padding:var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-1)}.user-menu__name{font-size:var(--text-sm);font-weight:600}.user-menu__email{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-primary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;text-decoration:none;width:100%}.user-menu__item:hover,.user-menu__item:focus-visible{background:var(--color-bg-subtle);outline:none}.user-menu__item--danger{color:var(--color-danger)}.user-menu__item--danger:hover,.user-menu__item--danger:focus-visible{background:color-mix(in srgb,var(--color-danger) 10%,transparent)}.end-lesson__sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-1)}@media (max-width: 380px){.end-lesson__sign-grid{grid-template-columns:1fr}}.onboarding-modal{width:min(100%,480px)}.onboarding-dots{display:flex;gap:var(--space-1);align-items:center}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:background var(--duration-base) var(--ease-standard)}.onboarding-dot--filled{background:var(--color-primary)}.onboarding-features{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.onboarding-feature{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-subtle);border-radius:var(--radius-md)}.onboarding-feature__icon{font-size:var(--text-xl);line-height:1;flex-shrink:0;width:28px;text-align:center}.pt-item-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface)}.pt-item-row:hover{border-color:var(--color-border-strong)}.share-menu{position:absolute;right:0;top:calc(100% + var(--space-1));background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;z-index:var(--z-modal);overflow:hidden;animation:slide-up var(--duration-micro) var(--ease-standard)}.share-menu__item{display:block;width:100%;text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-ui);color:var(--color-text-primary);background:transparent;border:none;cursor:pointer;transition:background var(--duration-micro) var(--ease-standard)}.share-menu__item:hover{background:var(--color-bg-subtle)}.share-menu__item--disabled{color:var(--color-text-secondary);cursor:default}.share-menu__item--disabled:hover{background:transparent}.share-menu__divider{height:1px;background:var(--color-border);margin:var(--space-1) 0}.print-report,.print-receipt,.print-mvar-record,.print-dtc205,.print-progress{display:none}@media print{body.app-shell,.layout,.main-col{display:block!important}.sidebar-rail,.mobile-tabbar,.topbar,.no-print,.offline-banner,.content{display:none!important}.print-report{display:block!important;font-family:Georgia,serif;font-size:11pt;line-height:1.5;color:#000;max-width:100%;padding:0}.print-report__header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #000;padding-bottom:8pt;margin-bottom:16pt}.print-report__brand{font-size:16pt;font-weight:700;letter-spacing:-.5pt}.print-report__title{font-size:20pt;font-weight:700;margin-top:2pt}.print-report__meta{font-size:9pt;color:#555;text-align:right}.print-report__section{margin-bottom:16pt}.print-report__section-title{font-size:13pt;font-weight:700;border-bottom:1px solid #ccc;margin-bottom:8pt;padding-bottom:3pt;text-transform:uppercase;letter-spacing:.5pt}.print-table{width:100%;border-collapse:collapse;font-size:10pt}.print-table th{text-align:left;font-weight:700;color:#444;padding:3pt 8pt 3pt 0;width:22%;vertical-align:top}.print-table td{padding:3pt 8pt 3pt 0;vertical-align:top}.print-table--skills thead th{border-bottom:1px solid #ccc;padding-bottom:4pt}.print-table--skills td,.print-table--skills th{padding:4pt 6pt;border-bottom:1px solid #eee}.print-table--skills thead th{width:auto;color:#000}.print-table--skills td:nth-child(1){width:38%}.print-table--skills td:nth-child(2){width:18%}.print-report__signatures{border:2px solid #000;padding:10pt;page-break-inside:avoid}.print-sig-block{border:1px solid #ccc;border-radius:4pt;padding:8pt;margin-bottom:8pt;background:#f9f9f9}.print-sig-block__label{font-size:9pt;text-transform:uppercase;letter-spacing:.5pt;color:#555;margin-bottom:2pt}.print-sig-block__name{font-size:14pt;font-weight:700;margin-bottom:4pt}.print-sig-check{font-size:10pt;margin-bottom:6pt}.print-sig-block__meta{display:flex;flex-direction:column;gap:2pt;font-size:9pt;color:#555;font-family:Courier New,monospace;border-top:1px solid #ddd;padding-top:6pt;margin-top:4pt}.print-report__footer{margin-top:20pt;border-top:1px solid #ccc;padding-top:8pt;font-size:8pt;color:#666}.print-report__footer p{margin:2pt 0}.print-receipt{display:none}body.receipt-mode .print-report{display:none!important}body.receipt-mode .print-receipt{display:block;font-family:Georgia,serif;max-width:320pt;margin:0 auto;padding:24pt;font-size:10pt;color:#000}body.receipt-mode .print-receipt__header{text-align:center;border-bottom:2px solid #000;padding-bottom:12pt;margin-bottom:16pt}body.receipt-mode .print-receipt__brand{font-size:18pt;font-weight:700;letter-spacing:.05em}body.receipt-mode .print-receipt__subtitle{font-size:9pt;color:#555;margin-top:2pt}body.receipt-mode .print-receipt__row{display:flex;justify-content:space-between;padding:4pt 0;border-bottom:.5pt solid #eee;font-size:9pt}body.receipt-mode .print-receipt__row--total{font-weight:700;font-size:11pt;border-top:1.5pt solid #000;border-bottom:none;margin-top:6pt;padding-top:6pt}body.receipt-mode .print-receipt__footer{margin-top:20pt;text-align:center;font-size:8pt;color:#666}.modal-backdrop,.modal,body.mvar-print-mode .print-report,body.mvar-print-mode .print-receipt,body.mvar-print-mode .print-dtc205{display:none!important}body.mvar-print-mode .print-mvar-record{display:block!important;font-family:Georgia,Times New Roman,serif;font-size:9.5pt;line-height:1.4;color:#000}.mvar-doc{padding:0}.mvar-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2pt solid #000;padding-bottom:8pt;margin-bottom:14pt}.mvar-header__brand{font-size:11pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#444}.mvar-header__title{font-size:18pt;font-weight:700;margin-top:2pt}.mvar-header__sub{font-size:9pt;color:#555;margin-top:2pt;font-style:italic}.mvar-header__generated{text-align:right;font-size:8.5pt;line-height:1.4}.mvar-section{margin-bottom:12pt}.mvar-section__title{font-size:11pt;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1pt solid #000;padding-bottom:2pt;margin:0 0 6pt}.mvar-info-table{width:100%;border-collapse:collapse;font-size:9pt}.mvar-info-table th,.mvar-info-table td{border:.5pt solid #777;padding:4pt 6pt;text-align:left;vertical-align:top}.mvar-info-table th{background:#f0f0f0;font-weight:700;width:18%;white-space:nowrap}.mvar-lesson-table{width:100%;border-collapse:collapse;font-size:8.5pt;margin-top:4pt}.mvar-lesson-table th,.mvar-lesson-table td{border:.5pt solid #777;padding:3pt 4pt;text-align:left;vertical-align:top}.mvar-lesson-table th{background:#e8e8e8;font-weight:700;font-size:8pt;text-transform:uppercase;letter-spacing:.03em}.mvar-lesson-table tfoot td{background:#f5f5f5;font-size:8.5pt}.mvar-section--attestation p{font-size:9pt;margin:4pt 0 14pt}.mvar-sig-row{display:flex;gap:24pt;margin-top:12pt}.mvar-sig-block{flex:1}.mvar-sig-line{border-bottom:.75pt solid #000;height:24pt}.mvar-sig-label{font-size:8pt;text-transform:uppercase;letter-spacing:.05em;color:#444;margin-top:2pt}.mvar-footer{border-top:.75pt solid #999;padding-top:8pt;margin-top:18pt;font-size:8pt;color:#333}.mvar-footer p{margin:2pt 0}.mvar-footer__generated{font-style:italic;color:#666}.mvar-lesson-table tr,.mvar-info-table tr{page-break-inside:avoid}body.dtc205-print-mode .print-report,body.dtc205-print-mode .print-receipt,body.dtc205-print-mode .print-mvar-record{display:none!important}body.dtc205-print-mode .print-dtc205{display:block!important;font-family:Arial,Helvetica,sans-serif;font-size:10pt;line-height:1.45;color:#000}.dtc205-doc{padding:0;max-width:6.5in;margin:0 auto}.dtc205-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2pt solid #000;padding-bottom:8pt;margin-bottom:14pt}.dtc205-title{font-size:16pt;font-weight:700}.dtc205-subtitle{font-size:11pt;margin-top:2pt}.dtc205-formnum{text-align:right;font-size:8pt;color:#444;line-height:1.3}.dtc205-intro{font-size:9.5pt;margin:0 0 14pt}.dtc205-authline{display:flex;align-items:baseline;flex-wrap:wrap;font-size:11pt;margin:14pt 0 2pt}.dtc205-field{display:inline-block;min-width:2.5in;border-bottom:.75pt solid #000;padding:0 4pt;font-weight:700;text-align:center}.dtc205-fieldlabels{display:flex;justify-content:space-around;font-size:7.5pt;color:#555;letter-spacing:.04em;margin-bottom:10pt}.dtc205-list,.dtc205-clauses{margin:6pt 0 10pt;padding-left:18pt;font-size:9.5pt}.dtc205-list li{margin-bottom:2pt}.dtc205-clauses li{margin-bottom:6pt}.dtc205-sigarea{margin:20pt 0 14pt}.dtc205-sigrow{display:flex;gap:12pt}.dtc205-sigbox{border-bottom:.75pt solid #000;height:28pt}.dtc205-sigbox--sig{flex:2}.dtc205-sigbox--date{flex:1}.dtc205-siglabels{display:flex;gap:12pt;margin-top:2pt;font-size:8pt;letter-spacing:.05em;color:#444}.dtc205-siglabels span:first-child{flex:2}.dtc205-siglabels span:last-child{flex:1}.dtc205-contact-intro{font-size:9pt;margin:14pt 0 4pt}.dtc205-contact{display:flex;gap:32pt;font-size:9pt;margin-bottom:14pt}.dtc205-prefilled-note{border-top:.5pt solid #aaa;padding-top:6pt;font-size:7.5pt;color:#555;font-style:italic}body.progress-print-mode .print-report,body.progress-print-mode .print-receipt,body.progress-print-mode .print-mvar-record,body.progress-print-mode .print-dtc205{display:none!important}body.progress-print-mode .print-progress{display:block!important;font-family:Arial,Helvetica,sans-serif;font-size:10pt;line-height:1.5;color:#1f2937}.progress-doc{padding:0;max-width:6.8in;margin:0 auto}.progress-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2pt solid #1A56DB;padding-bottom:12pt;margin-bottom:20pt}.progress-header__brand{font-size:10pt;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#1a56db}.progress-header__title{font-size:22pt;font-weight:700;margin-top:4pt;color:#111827}.progress-header__sub{font-size:11pt;color:#4b5563;margin-top:2pt}.progress-header__meta{text-align:right;font-size:8.5pt;color:#6b7280;line-height:1.4}.progress-section{margin-bottom:20pt;page-break-inside:avoid}.progress-section__title{font-size:13pt;font-weight:700;color:#111827;border-bottom:.5pt solid #d1d5db;padding-bottom:4pt;margin:0 0 8pt}.progress-section__intro{font-size:9pt;color:#4b5563;margin:0 0 10pt}.progress-numbers{display:flex;gap:12pt}.progress-numbers__cell{flex:1;background:#f9fafb;border:.5pt solid #d1d5db;border-radius:4pt;padding:10pt;text-align:center}.progress-numbers__val{font-size:20pt;font-weight:700;color:#1a56db;line-height:1}.progress-numbers__lab{font-size:8pt;color:#4b5563;text-transform:uppercase;letter-spacing:.05em;margin-top:4pt}.progress-glp__row{display:flex;align-items:center;gap:10pt;margin-bottom:6pt}.progress-glp__label{width:80pt;font-size:9.5pt;font-weight:500}.progress-glp__bar{flex:1;height:10pt;background:#e5e7eb;border-radius:3pt;overflow:hidden}.progress-glp__fill{height:100%;border-radius:3pt}.progress-glp__num{width:90pt;text-align:right;font-size:9pt;font-variant-numeric:tabular-nums}.progress-glp__breakdown{font-size:8.5pt;color:#6b7280;margin-top:6pt;font-style:italic}.progress-skills{width:100%;border-collapse:collapse}.progress-skills td{padding:4pt 6pt;border-bottom:.5pt dotted #e5e7eb;vertical-align:middle}.progress-skills__name{width:32%;font-size:9.5pt;font-weight:500}.progress-skills__bar-cell{width:38%}.progress-skills__bar{height:8pt;background:#f3f4f6;border-radius:2pt;overflow:hidden}.progress-skills__fill{height:100%;border-radius:2pt}.progress-skills__score{width:8%;text-align:right;font-size:9.5pt;font-variant-numeric:tabular-nums;color:#374151}.progress-skills__label{width:22%;text-align:right;font-size:8.5pt;font-weight:600}.progress-notes__entry{margin-bottom:10pt;padding-bottom:10pt;border-bottom:.5pt dotted #e5e7eb}.progress-notes__entry:last-child{border-bottom:0}.progress-notes__date{font-size:8.5pt;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3pt}.progress-notes__body{font-size:9.5pt;white-space:pre-wrap;line-height:1.5;color:#1f2937}.progress-footer{border-top:.5pt solid #d1d5db;padding-top:10pt;margin-top:24pt;font-size:8pt;color:#6b7280}.progress-footer__generated{margin-top:6pt;font-style:italic}}.offline-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:var(--color-warning-tint, #fff7ed);color:var(--color-warning-bold, #9a3412);border-bottom:1px solid var(--color-warning-bold, #fdba74);font-size:var(--text-sm);font-weight:var(--weight-medium)}.offline-banner__dot{width:8px;height:8px;border-radius:var(--radius-pill, 999px);background:currentColor;animation:offline-pulse 1.6s ease-in-out infinite}@keyframes offline-pulse{0%,to{opacity:1}50%{opacity:.4}}.cmd-palette__list{display:flex;flex-direction:column;max-height:360px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface, #fff)}.cmd-palette__group{padding:var(--space-2) var(--space-3);font-size:var(--text-2xs, 11px);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-semibold, 600);color:var(--color-text-tertiary);background:var(--color-bg, #fafafa);border-bottom:1px solid var(--color-border);position:sticky;top:0}.cmd-palette__item{display:flex;flex-direction:column;align-items:flex-start;width:100%;box-sizing:border-box;gap:2px;padding:var(--space-2) var(--space-3);border:0;background:transparent;text-align:left;cursor:pointer;border-bottom:1px solid var(--color-border)}.cmd-palette__item:last-child{border-bottom:0}.cmd-palette__item.is-selected{background:var(--color-primary-tint, #eff6ff)}.cmd-palette__sub{font-size:var(--text-xs);color:var(--color-text-secondary)}.sidebar-rail__hint{margin-top:auto;padding:var(--space-3);font-size:var(--text-2xs, 11px);color:var(--color-text-tertiary);text-align:center;border-top:1px dashed var(--color-border)}.sidebar-rail__hint kbd{display:inline-block;padding:1px 5px;margin:0 1px;font-family:var(--font-mono);font-size:10px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg, #fafafa);color:var(--color-text-secondary)}.cmd-palette__list kbd{font-family:var(--font-mono);font-size:11px;padding:1px 4px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg, #fafafa)}.road-test-card{border-left-width:4px;border-left-style:solid}.road-test-card--ready{border-left-color:var(--color-success-bold, #16a34a);background:var(--color-success-tint, #f0fdf4)}.road-test-card--blocked{border-left-color:var(--color-warning-bold, #d97706);background:var(--color-warning-tint, #fffbeb)}.road-test-card__icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;font-weight:var(--weight-bold, 700);font-size:18px;flex-shrink:0}.road-test-card--ready .road-test-card__icon{background:var(--color-success-bold, #16a34a);color:#fff}.road-test-card--blocked .road-test-card__icon{background:var(--color-warning-bold, #d97706);color:#fff}.road-test-card__title{font-weight:var(--weight-semibold, 600);font-size:var(--text-sm);margin-bottom:2px}.road-test-card__sub{font-size:var(--text-xs);color:var(--color-text-secondary)}.week-stats{margin-bottom:var(--space-6);padding:var(--space-3) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface, #fff)}.week-stats__title{font-size:var(--text-2xs, 11px);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-semibold, 600);color:var(--color-text-tertiary);margin-bottom:var(--space-2)}.week-stats__row{display:flex;flex-wrap:wrap;gap:var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary)}.week-stats__row strong{color:var(--color-text-primary);font-weight:var(--weight-semibold, 600);font-variant-numeric:tabular-nums}.pwa-install-prompt{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:60;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);width:min(360px,calc(100vw - var(--space-8)));background:var(--color-surface, #fff);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 10px 30px #0000001f;animation:pwa-prompt-in .25s ease-out}.pwa-install-prompt__body{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm);color:var(--color-text-secondary)}.pwa-install-prompt__body strong{color:var(--color-text-primary);font-size:var(--text-base)}.pwa-install-prompt__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}@keyframes pwa-prompt-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hours-tracker__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}@media (max-width: 620px){.hours-tracker__grid{grid-template-columns:1fr}}.hours-tracker__item{display:flex;flex-direction:column;gap:var(--space-2)}.hours-tracker__labels{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.hours-tracker__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.hours-tracker__value{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-primary);white-space:nowrap}.hours-tracker__value--done{color:var(--color-success-bold, #16a34a)}.hours-tracker__target{font-weight:var(--weight-normal);color:var(--color-text-tertiary);font-size:var(--text-xs)}.hours-tracker__bar-track{height:8px;border-radius:var(--radius-pill, 999px);background:var(--color-border);overflow:hidden}.hours-tracker__bar-fill{height:100%;border-radius:var(--radius-pill, 999px);background:var(--color-primary, #1A56DB);transition:width .4s ease}.hours-tracker__bar-fill--night{background:#6366f1}.hours-tracker__bar-fill--done{background:var(--color-success-bold, #16a34a)}.hours-tracker__note{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.hours-tracker__note--done{color:var(--color-success-bold, #16a34a);font-weight:var(--weight-medium)}.voice-note-row{display:flex;align-items:center;gap:var(--space-2)}.voice-note-row .input{flex:1;min-width:0}.voice-note{display:flex;flex-direction:column;gap:var(--space-2)}.voice-note__controls{display:flex;align-items:center;gap:var(--space-2)}.voice-note-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);width:30px;height:30px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s,background .15s}.voice-note-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.voice-note-btn.is-recording{border-color:var(--color-danger);color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 8%,transparent)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.recording-dot{width:7px;height:7px;border-radius:50%;background:var(--color-danger);animation:pulse-dot 1s ease-in-out infinite;flex-shrink:0}.voice-note__elapsed{font-size:var(--text-xs);color:var(--color-danger);font-variant-numeric:tabular-nums;min-width:34px}.voice-note__status{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary)}.voice-note__status--success{color:var(--color-success-bold)}.voice-note__status--error{color:var(--color-danger)}@keyframes spin{to{transform:rotate(360deg)}}.voice-note__spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.voice-note__prompt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:color-mix(in srgb,var(--color-primary) 6%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-secondary)}.btn--xs{padding:0 var(--space-2);height:24px;font-size:var(--text-xs);border-radius:var(--radius-sm);min-height:24px}.lesson-recorder{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.lesson-recorder__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.lesson-recorder__title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.lesson-recorder__elapsed{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-danger);font-variant-numeric:tabular-nums}.lesson-recorder__controls{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.lesson-recorder__main-btn.is-recording{color:var(--color-danger);border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,transparent)}.lesson-recorder__hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;line-height:1.5}.lesson-recorder__clips{display:flex;flex-direction:column;gap:var(--space-1)}.lesson-recorder__clip-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-bg-subtle);border-radius:var(--radius-md);flex-wrap:wrap}.lesson-recorder__clip-label{font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.lesson-recorder__clip-actions{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.night-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--space-2) 0}.night-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.night-toggle__icon{font-size:14px}
