@font-face{font-family:Manrope;font-style:normal;font-weight:600 800;font-display:swap;src:url(/assets/manrope-cyrillic-Dvxsihut.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600 800;font-display:swap;src:url(/assets/manrope-latin-ext-Ch3YOpNY.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600 800;font-display:swap;src:url(/assets/manrope-latin-DHIcAJRg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/roboto-cyrillic-fOt7epNf.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/roboto-latin-ext-DYIxWhlt.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/roboto-latin-ccAYIvAh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--color-purple-100: #ece5ff;--color-purple-300: #9747ff;--color-purple-400: #792aff;--color-purple-500: #6d39e9;--color-neutral-0: #ffffff;--color-neutral-50: #f6f4f9;--color-neutral-100: #f5f3f7;--color-neutral-150: #f1eef5;--color-neutral-200: #e6e6e6;--color-neutral-300: #dbd9dd;--color-neutral-400: #b5b4b7;--color-neutral-500: #7b7a7d;--color-neutral-600: #4b4b4d;--color-neutral-900: #111111;--color-neutral-950: #000000;--color-yellow-400: #ffe603;--color-yellow-600: #f7c000;--color-green-500: #04c800;--color-teal-500: #00c7a3;--color-red-500: #fc2d00;--color-orange-500: #ff6a00;--color-pink-500: #ff3e9a;--color-legacy-lime-01: #bbff2c;--tone-success-fg: #048700;--tone-warning-fg: #8a6700;--tone-error: #e51a1a;--tone-on-lime: #1b2407;--nav-text-active: #6c39e6;--text-muted: var(--color-neutral-600);--ease-out: cubic-bezier(.23, 1, .32, 1);--duration-fast: .15s;--duration-base: .2s;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-none: 0;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 999px;--radius-toast: 14px;--radius-dialog: 20px;--border-width-none: 0;--border-width-default: 1px;--button-height-sm: 33px;--button-height-md: 42px;--button-height-lg: 52px;--button-height-xl: 58px;--icon-button-size-sm: 40px;--icon-button-size-md: 56px;--control-height-field: 60px;--control-height-field-compact: 44px;--control-size-selection: 22px;--navigation-item-height: 34px;--badge-height-default: 32px;--badge-height-numeric: 18px;--tabs-item-height: 41px;--segmented-height: 44px;--segmented-item-height: 36px;--progress-height: 8px;--indicator-size-status: 8px;--icon-size-sm: 14px;--icon-size-md: 16px;--icon-size-lg: 22px;--background-page: var(--color-neutral-0);--background-surface: var(--color-neutral-100);--background-subtle: var(--color-neutral-150);--background-overlay: var(--color-neutral-900);--text-primary: var(--color-neutral-900);--text-secondary: var(--color-neutral-500);--text-body: var(--color-neutral-600);--text-disabled: var(--color-neutral-400);--text-link: var(--color-purple-500);--text-inverse: var(--color-neutral-0);--border-default: var(--color-neutral-200);--border-strong: var(--color-neutral-300);--border-focus: var(--color-purple-500);--action-primary-default: var(--color-purple-500);--action-primary-hover: var(--color-purple-400);--action-secondary-default: var(--color-neutral-100);--status-success: var(--color-green-500);--status-warning: var(--color-yellow-600);--status-error: var(--color-red-500);--status-info: var(--color-teal-500);--button-on-success: var(--color-neutral-900);--button-on-destructive: var(--color-neutral-900);--ring-control-default-strong: inset 0 0 0 3px var(--color-purple-100);--ring-control-default-thin: inset 0 0 0 2px var(--color-purple-100);--ring-control-selected-thin: inset 0 0 0 2px var(--color-purple-500);--ring-input-success: inset 0 0 0 3px var(--status-success);--ring-input-error: inset 0 0 0 3px var(--tone-error);--ring-input-disabled: inset 0 0 0 3px var(--color-neutral-200);--ring-on-dark: inset 0 0 0 2px rgba(255, 255, 255, .4);--ring-focus: inset 0 0 0 3px var(--border-focus);--shadow-dialog: 0 16px 40px rgba(79, 21, 184, .14);--shadow-toast: 0 8px 24px rgba(0, 0, 0, .2);--shadow-selected: 0 1px 2px rgba(79, 21, 184, .05);--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Manrope", "Roboto", -apple-system, BlinkMacSystemFont, sans-serif;--typography-heading-dialog: 700 22px/33px var(--font-heading);--typography-heading-compact: 700 18px/27px var(--font-heading);--typography-heading-card: 600 16px/20.8px var(--font-body);--typography-heading-notification: 700 16px/19.2px var(--font-body);--typography-body-large: 400 18px/27px var(--font-body);--typography-body-medium: 400 16px/24px var(--font-body);--typography-body-input: 400 16px/19.2px var(--font-body);--typography-body-small: 400 14px/21px var(--font-body);--typography-body-compact: 400 13px/19.5px var(--font-body);--typography-label-medium: 500 14px/21px var(--font-body);--typography-label-small: 500 13px/19.5px var(--font-body);--typography-label-badge: 600 11px/11px var(--font-body);--typography-label-table-header: 500 11px/16.5px var(--font-body);--typography-label-button-xs: 500 13px/13px var(--font-body);--typography-label-button-small: 500 14px/14px var(--font-body);--typography-label-button-medium: 500 16px/16px var(--font-body);--typography-label-button-large: 500 18px/18px var(--font-body);--typography-caption: 400 12px/16.8px var(--font-body);--typography-caption-relaxed: 400 12px/18px var(--font-body)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{min-height:100vh;font:var(--typography-body-small);background:var(--background-surface);color:var(--text-primary);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-heading);color:var(--text-primary);text-wrap:balance}p{text-wrap:pretty}h3{font:var(--typography-heading-card);margin:var(--space-6) 0 var(--space-3)}p+p{margin-top:var(--space-2)}a{color:var(--text-link);text-underline-offset:2px}strong{font-weight:500}::selection{background:var(--color-purple-100)}:where(a,button,select,input,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.container{max-width:1120px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-8)}.container:focus{outline:none}.skip-link{position:absolute;left:var(--space-4);top:var(--space-2);z-index:3000;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--action-primary-default);color:var(--text-inverse);font:var(--typography-label-button-xs);line-height:19.5px;text-decoration:none;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}header{background:var(--background-page);color:var(--text-primary);padding:var(--space-3) var(--space-6);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-6);flex-wrap:wrap;border-bottom:var(--border-width-default) solid var(--border-default)}.brand{display:flex;align-items:center;gap:var(--space-3);min-width:0}.brand-mark{flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--action-primary-default);color:var(--text-inverse);display:inline-flex;align-items:center;justify-content:center;font:800 18px/27px var(--font-heading);letter-spacing:-.36px}header h1{font:700 16px/19.2px var(--font-heading);letter-spacing:-.16px;white-space:nowrap}header .user-info{display:flex;gap:var(--space-3);align-items:center;font:var(--typography-body-compact);color:var(--text-muted);margin-left:auto}header .user-info>span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header .user-info button{height:var(--button-height-sm);padding:0 var(--space-4);border:none;border-radius:var(--radius-full);background:var(--action-secondary-default);color:var(--action-primary-default);cursor:pointer;font:var(--typography-label-button-xs);white-space:nowrap}header .user-info button:hover{background:var(--background-subtle)}header .user-info button.header-action{background:var(--action-primary-default);color:var(--text-inverse)}header .user-info button.header-action:hover{background:var(--action-primary-hover)}.main-nav{display:flex;align-items:center;gap:var(--space-0);margin-right:auto}.main-nav a{display:inline-flex;align-items:center;min-height:var(--navigation-item-height);padding:7px 10px;border-radius:var(--radius-sm);text-decoration:none;color:var(--color-neutral-600);font:var(--typography-body-compact);white-space:nowrap}.main-nav a{transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.main-nav a:hover{color:var(--text-primary);background:var(--color-neutral-50)}.main-nav a.active{background:var(--color-purple-100);color:var(--nav-text-active)}.card{background:var(--background-page);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-4);border:var(--border-width-default) solid var(--border-default)}.card h2{font:var(--typography-heading-compact);margin-bottom:var(--space-3)}.card>h3:first-child{margin-top:0}.card-nested{margin:var(--space-4) 0 0;background:var(--color-neutral-50);border-color:transparent}.card-stack{display:grid;gap:var(--space-4);align-content:start}.card-stack>.card{margin-bottom:0}.page-section{margin-top:var(--space-8)}.page-section-head{margin:0 0 var(--space-4);max-width:72ch}.page-section-head h2{font:var(--typography-heading-dialog);letter-spacing:-.22px;margin-bottom:var(--space-1)}.page-section-head .muted{margin-bottom:0}.inline-edit{margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--border-width-default) solid var(--border-default)}.inline-edit>h3:first-child{margin-top:0}.card li+li{margin-top:var(--space-1)}.form-group{margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.form-group label,.form-group legend{display:block;font:var(--typography-label-small);color:var(--color-neutral-600)}.form-group legend{margin-bottom:var(--space-2)}.field-required{color:var(--tone-error)}.fieldset-plain{border:0;padding:0;margin:0 0 var(--space-4);min-width:0}.input-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-3)}@media(max-width:480px){.field-row{grid-template-columns:minmax(0,1fr)}}.form-group input,.form-group select,.form-group textarea{width:100%;height:var(--field-height, var(--control-height-field));padding:0 var(--field-padding-x, var(--space-6));border:none;border-radius:var(--radius-full);box-shadow:var(--ring-control-default-strong);font:var(--typography-body-input);background-color:var(--background-page);color:var(--text-primary);transition:box-shadow var(--duration-fast) ease}.inline-form,.filter-bar,.lesson-link-form{--field-height: var(--control-height-field-compact);--field-padding-x: var(--space-5)}.inline-form .form-group :is(input,select),.filter-bar .form-group :is(input,select),.lesson-link-form .form-group :is(input,select){font-size:14px}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:58px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%236d39e9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-6) center;cursor:pointer}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--action-primary-default);opacity:.5}.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible{outline:none;box-shadow:var(--ring-focus)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--color-neutral-100);color:var(--color-neutral-500);box-shadow:var(--ring-input-disabled);cursor:not-allowed}.form-group select:disabled{background-image:none;padding-right:var(--field-padding-x, var(--space-6))}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{box-shadow:var(--ring-input-error)}.form-group textarea{height:auto;min-height:108px;padding:var(--space-5) var(--space-6);border-radius:var(--radius-dialog);font:var(--typography-body-medium);resize:vertical}.field-error{color:var(--tone-error);font:var(--typography-caption-relaxed)}.field-hint{color:var(--text-muted);font:var(--typography-caption-relaxed)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);height:var(--button-height-md);padding:0 var(--space-6);border:none;border-radius:var(--radius-full);cursor:pointer;font:var(--typography-label-button-small);white-space:nowrap;text-decoration:none;transition:background-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,transform .12s var(--ease-out)}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--action-primary-default);color:var(--text-inverse)}.btn-primary:hover{background:var(--action-primary-hover)}.btn-secondary{background:var(--action-secondary-default);color:var(--action-primary-default)}.btn-secondary:hover{background:var(--background-subtle)}.btn-outline{background:var(--background-page);color:var(--action-primary-default);box-shadow:var(--ring-control-default-strong)}.btn-outline:hover{background:var(--color-neutral-50)}.btn-tertiary{background:transparent;color:var(--action-primary-default)}.btn-tertiary:hover{background:var(--color-neutral-50)}.btn-tertiary-danger{color:var(--tone-error)}.btn-tertiary-danger:hover{background:#e51a1a14}.btn-success{background:var(--status-success);color:var(--button-on-success)}.btn-danger{background:var(--status-error);color:var(--button-on-destructive)}.btn-success:hover,.btn-danger:hover{filter:brightness(.94)}.btn-sm{height:var(--button-height-sm);padding:0 var(--space-4);font:var(--typography-label-button-xs)}.btn-lg{height:var(--button-height-lg);padding:0 var(--space-8);font:var(--typography-label-button-medium)}.btn:disabled,.btn:disabled:hover{opacity:.4;cursor:not-allowed;filter:none}table{width:100%;border-collapse:collapse;font:var(--typography-body-small);font-variant-numeric:tabular-nums}th,td{text-align:left;padding:var(--space-3);border-bottom:var(--border-width-default) solid var(--border-default);vertical-align:middle}th{font:var(--typography-label-table-header);letter-spacing:.66px;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}tbody tr:last-child td{border-bottom:none}tfoot th,tfoot td{font:var(--typography-label-medium);letter-spacing:0;text-transform:none;color:var(--text-primary);border-top:var(--border-width-default) solid var(--border-strong);border-bottom:none}tfoot th:first-child{font:var(--typography-label-table-header);letter-spacing:.66px;text-transform:uppercase;color:var(--text-muted)}.cell-badge,.cell-action{margin-left:var(--space-2)}.cell-indent{padding-left:var(--space-8)}.cell-break{word-break:break-all}.cell-meta{margin-top:2px;font:var(--typography-caption);color:var(--text-muted)}tbody tr:hover{background:var(--color-neutral-50)}.badge{display:inline-flex;align-items:center;gap:6px;height:var(--badge-height-default);padding:0 var(--space-3);border-radius:var(--radius-full);font:var(--typography-label-small);white-space:nowrap;vertical-align:middle}.badge-green{background:#04c8001f;color:var(--tone-success-fg)}.badge-red{background:#e51a1a1a;color:var(--tone-error)}.badge-yellow{background:#f7c0002e;color:var(--tone-warning-fg)}.badge-green:before,.badge-red:before{content:"";width:var(--indicator-size-status);height:var(--indicator-size-status);border-radius:var(--radius-full);background:currentColor}.badge-gray{background:var(--background-page);color:var(--text-primary);box-shadow:inset 0 0 0 1.5px var(--color-neutral-300)}.badge-new{height:var(--badge-height-numeric);min-width:var(--badge-height-numeric);padding:0 6px;margin-left:var(--space-2);background:var(--color-legacy-lime-01);color:var(--tone-on-lime);font:var(--typography-label-badge)}.training-viewer{width:90vw;height:90vh}.training-list-modal{width:min(560px,100%);margin-bottom:0;max-height:90vh;overflow:auto}.training-cards{display:grid;gap:var(--space-2)}.training-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);width:100%;text-align:left;background:var(--background-page);border:none;box-shadow:var(--ring-control-default-strong);border-radius:var(--radius-md);padding:14px var(--space-4);cursor:pointer;font:inherit;color:inherit}.training-card:hover{background:var(--color-neutral-50)}.training-card-title{font:var(--typography-label-medium);color:var(--action-primary-default)}.alert{position:relative;padding:var(--space-4) var(--space-5) var(--space-4) 62px;border-radius:var(--radius-toast);margin-bottom:var(--space-4);background:var(--background-page);box-shadow:var(--shadow-toast);color:var(--color-neutral-600);font:var(--typography-body-compact)}.alert:before{content:"";position:absolute;left:12px;top:12px;bottom:12px;width:6px;border-radius:4px;background:var(--status-info)}.alert-success:before{background:var(--color-legacy-lime-01)}.alert-danger:before{background:var(--tone-error)}.alert-warning:before{background:var(--status-warning)}.alert:after{content:"";position:absolute;left:var(--space-5);top:50%;width:28px;height:28px;margin-top:-14px;border-radius:var(--radius-full);background:var(--status-info) no-repeat center / var(--icon-size-md);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6.25'/%3E%3Cpath d='M8 7.5v3.25M8 5.25v.01'/%3E%3C/svg%3E")}.alert-success:after{background-color:var(--color-legacy-lime-01);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%231b2407' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-6.5'/%3E%3C/svg%3E")}.alert-danger:after{background-color:var(--tone-error);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 5l6 6M11 5l-6 6'/%3E%3C/svg%3E")}.alert-warning:after{background-color:var(--status-warning);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M8 4v5M8 11.75v.01'/%3E%3C/svg%3E")}.alert .btn{height:var(--button-height-sm);padding:0 var(--space-4);margin:-6px 0 -6px var(--space-2);font:var(--typography-label-button-xs);vertical-align:middle}.card .alert{box-shadow:inset 0 0 0 1px var(--border-default)}.join-card{max-width:560px;margin-inline:auto}.alert-with-action{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.alert-with-action>span{flex:1 1 240px}.alert-with-action .btn{margin:-6px 0}@media(max-width:600px){.alert .btn{display:flex;margin:var(--space-2) 0 0}}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:var(--space-8) var(--space-4);background:var(--background-surface)}.login-box{background:var(--background-page);padding:var(--space-8);border-radius:var(--radius-dialog);width:420px;max-width:100%;box-shadow:var(--shadow-dialog)}.login-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.login-box h1{font:var(--typography-heading-dialog);letter-spacing:-.22px}.login-box .btn-primary{width:100%;height:var(--button-height-lg);margin-top:var(--space-2);font:var(--typography-label-button-medium)}.error-msg{color:var(--tone-error);font:var(--typography-body-compact);margin-bottom:var(--space-3)}.tabs{display:flex;gap:2px;padding:var(--space-1);margin-bottom:var(--space-5);background:var(--color-neutral-100);border-radius:var(--radius-full);overflow-x:auto;scrollbar-width:none}.tabs button{flex:0 0 auto;min-height:var(--tabs-item-height);padding:10px 18px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-muted);cursor:pointer;font:var(--typography-label-medium);white-space:nowrap;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.tabs button:hover{color:var(--text-primary)}.tabs button.active{background:var(--color-neutral-0);color:var(--action-primary-default);box-shadow:var(--shadow-selected)}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-4);align-items:start}.grid-2>.card{margin-bottom:0}.grid-2+*{margin-top:var(--space-4)}@media(max-width:768px){.grid-2{grid-template-columns:minmax(0,1fr)}}.inline-form{display:flex;gap:var(--space-2);align-items:flex-end;flex-wrap:wrap}.inline-form .form-group{flex:1 1 140px;min-width:0;margin-bottom:0}.inline-form .form-group-action{flex:0 0 auto}.inline-form .form-group-action .btn,.inline-form>.btn{flex:0 0 auto;height:var(--control-height-field-compact)}.student-list .student{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) 0;border-bottom:var(--border-width-default) solid var(--border-default)}.student-list .student:last-child{border-bottom:none}.student-list .student>span:last-child{display:inline-flex;align-items:center;gap:var(--space-2)}.lesson-toolbar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-2)}.lesson-timer-wrap{display:flex;align-items:baseline;gap:var(--space-2)}.lesson-timer{font:var(--typography-heading-compact);font-variant-numeric:tabular-nums;color:var(--text-primary)}.demo-links{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4)}.link-list{border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--border-default);overflow:hidden}.link-list a{display:block;padding:10px var(--space-4);color:var(--text-link);text-decoration:none;border-bottom:var(--border-width-default) solid var(--border-default)}.link-list a:last-child{border-bottom:none}.link-list a:hover{background:var(--color-neutral-50);text-decoration:underline}.link-list a:focus-visible{outline-offset:-2px}.material-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:55px;padding:var(--space-2) 0;border-bottom:var(--border-width-default) solid var(--border-default)}.material-item:last-child{border-bottom:none}.material-item strong{font-weight:500}.material-item .btn{margin-left:0!important}.schedule-row{flex-wrap:wrap;padding:var(--space-2) var(--space-4)}.schedule-row>:first-child{flex:1 1 280px;min-width:0;overflow-wrap:anywhere}.schedule-row-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2);margin-left:auto}.exceeded{color:var(--tone-error);font-weight:500}.lang-switcher,td>select{height:var(--button-height-sm);padding:0 30px 0 var(--space-3);border-radius:var(--radius-full);border:none;box-shadow:var(--ring-control-default-strong);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--background-page) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236d39e9' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center;font:var(--typography-label-small);color:var(--text-primary);cursor:pointer}.table-actions{display:flex;gap:6px;flex-wrap:nowrap;align-items:center}.inline-edit .table-actions,.card-nested .table-actions{flex-wrap:wrap}.empty-state+form,.table-wrap+form,.skeleton-stack+form{margin-top:var(--space-5)}.table-actions .btn{height:var(--button-height-sm);padding:0 var(--space-4);font:var(--typography-label-button-xs)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table.table{width:100%}tbody tr.selected,tbody tr.selected:hover{background:var(--color-purple-100)}.checkbox-list{display:flex;flex-direction:column;gap:var(--space-2)}.checkbox-item{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-4);border-radius:var(--radius-md);box-shadow:var(--ring-control-default-strong);cursor:pointer;background:var(--background-page);font:var(--typography-body-small)}.checkbox-item:hover{background:var(--color-neutral-50)}.form-group .checkbox-item{display:flex;font:var(--typography-body-small);color:var(--text-primary)}.checkbox-item input[type=checkbox],.form-group input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-shrink:0;width:var(--control-size-selection);height:var(--control-size-selection);padding:0;margin:0;border:none;border-radius:var(--radius-xs);background:var(--color-neutral-0) no-repeat center / var(--icon-size-sm);box-shadow:var(--ring-control-default-thin);cursor:pointer}.checkbox-item input[type=checkbox]:checked,.form-group input[type=checkbox]:checked{background-color:var(--color-purple-500);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M2.5 7.2l3 3 6-6.4' fill='none' stroke='%23fff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");box-shadow:var(--ring-control-selected-thin)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#111111a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-overlay>.card{border:none;border-radius:var(--radius-dialog);padding:28px;box-shadow:var(--shadow-dialog);max-height:calc(100vh - 32px);overflow:auto}.modal-overlay>.card h2{font:var(--typography-heading-dialog);letter-spacing:-.22px}.modal-overlay>.card .muted{color:var(--color-neutral-600);font:var(--typography-body-small)}.modal-dialog{width:min(380px,100%);margin-bottom:0}.modal-dialog h2{margin-bottom:14px}.modal-dialog .muted{margin-bottom:0}.modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:14px;padding-top:var(--space-2)}.modal-dialog .modal-actions{flex-wrap:nowrap}.modal-dialog .modal-actions .btn{flex:1 1 0;min-width:0}.modal-overlay,.viewer-overlay{animation:overlay-in var(--duration-base) ease-out}.modal-overlay>[role=dialog],.viewer-overlay>[role=dialog]{animation:dialog-in var(--duration-base) var(--ease-out)}[role=dialog]:focus{outline:none}@keyframes overlay-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:scale(.96)}}.modal-actions .btn-danger{background:var(--tone-error);color:var(--color-neutral-0)}.viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:2000}.viewer-modal{width:min(1280px,98vw);height:min(96vh,980px);background:var(--color-neutral-900);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-dialog)}.viewer-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:10px var(--space-4);color:var(--text-inverse);font:var(--typography-label-medium);flex-shrink:0}.viewer-head .btn-secondary{background:transparent;color:var(--text-inverse);box-shadow:var(--ring-on-dark)}.viewer-head .btn-secondary:hover{background:#ffffff1a}.viewer-head .btn:focus-visible{outline-color:var(--color-neutral-0)}.viewer-body{flex:1;min-height:0;position:relative;background:var(--color-neutral-900)}.viewer-iframe{position:absolute;top:0;right:0;bottom:0;left:0;border:0;width:100%;height:100%;background:var(--color-neutral-900)}.viewer-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#ffffffb3}.muted{color:var(--text-muted);font:var(--typography-body-small);margin-bottom:var(--space-3)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end;margin-bottom:var(--space-4)}.filter-bar .form-group{margin-bottom:0;min-width:150px}.filter-bar>.btn{height:var(--control-height-field-compact)}.filter-bar>.btn-primary:last-child{margin-left:auto}.filter-bar>.checkbox-item{min-height:var(--control-height-field-compact)}.pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pills-label{font:var(--typography-label-small);color:var(--text-muted);margin-right:var(--space-1)}.card-head .pills{justify-content:flex-end}.pill{height:var(--badge-height-default);padding:0 var(--space-3);border:none;border-radius:var(--radius-full);background:var(--color-neutral-100);color:var(--text-primary);font:var(--typography-label-small);cursor:pointer}.pill:hover{background:var(--background-subtle)}.pill.active{background:var(--color-purple-100);color:var(--action-primary-default)}.breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin:0 0 var(--space-4);font:var(--typography-body-small);color:var(--text-primary)}.breadcrumb button{background:none;border:none;color:var(--text-link);cursor:pointer;font:inherit;padding:0}.breadcrumb button:hover{text-decoration:underline}.breadcrumb .sep{color:var(--text-secondary)}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin:var(--space-3) 0}.stats-row:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.stat-box{background:var(--color-neutral-100);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.stat-box .value{font:var(--typography-heading-compact);font-size:22px;font-variant-numeric:tabular-nums;color:var(--text-primary)}.stat-box .label{font:var(--typography-label-small);color:var(--text-muted)}.stats-row-quota{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));margin:0}.stats-row-quota .stat-box{display:grid;gap:var(--space-2);justify-items:start;align-content:start;padding:var(--space-4);background:var(--background-page);box-shadow:inset 0 0 0 1px var(--border-default)}.stats-row-quota .usage-bar{width:100%}.stat-box .value-of{font:var(--typography-body-medium);color:var(--text-muted)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.card-head h2{margin-bottom:0}.card-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.usage{display:flex;align-items:center;gap:var(--space-2);font-variant-numeric:tabular-nums}.usage-bar{flex:1;min-width:64px;height:var(--progress-height);background:var(--color-neutral-100);border-radius:var(--radius-full);overflow:hidden}.usage-bar span{display:block;height:100%;border-radius:var(--radius-full);background:var(--action-primary-default)}.usage-bar span.over{background:var(--tone-error)}tbody tr.clickable{cursor:pointer}tbody tr.clickable:focus,tbody tr.clickable:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.stepper{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-4)}.step{height:var(--badge-height-default);padding:0 14px;border:none;border-radius:var(--radius-full);background:var(--color-neutral-100);color:var(--text-secondary);font:var(--typography-label-small);cursor:pointer}.step.active{background:var(--action-primary-default);color:var(--text-inverse)}.step.done{background:var(--color-purple-100);color:var(--action-primary-default)}ol.stepper{list-style:none;padding:0}.step:disabled{opacity:.4;cursor:not-allowed}.wizard-nav{margin-bottom:var(--space-4)}.wizard-nav .wizard-finish{margin-left:auto}.summary-list{display:grid;gap:10px;margin:var(--space-4) 0}.summary-list>div{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:baseline}.summary-list dt{color:var(--text-muted);min-width:140px;margin:0;font-weight:500}.summary-list dd{margin:0}tbody tr.row-license-blocked{background:#e51a1a0f}tbody tr.row-license-blocked:hover{background:#e51a1a1a}tbody tr.row-license-paused{background:#f7c0001a}tbody tr.row-license-paused:hover{background:#f7c0002e}.license-mark{display:inline-flex;align-items:center;gap:var(--space-1);margin-left:var(--space-2);padding:2px var(--space-2);border-radius:var(--radius-full);font:var(--typography-caption);font-weight:500;vertical-align:middle}.license-mark-blocked{background:#e51a1a1a;color:var(--tone-error)}.license-mark-paused{background:#f7c0002e;color:var(--tone-warning-fg)}.license-icon{width:12px;height:12px;fill:currentColor;flex-shrink:0}.video-room{height:min(70vh,640px);border-radius:var(--radius-md);overflow:hidden;background:var(--color-neutral-900)}.container:has(.lesson-video:not(:empty)){max-width:1440px}.lesson-live{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto 1fr;grid-template-areas:"video head" "video roster";gap:var(--space-4);align-items:start;margin-bottom:var(--space-4)}.lesson-live .card{margin-bottom:0;padding:var(--space-4)}.lesson-live .card h2{font:var(--typography-heading-card);margin-bottom:var(--space-3)}.lesson-live .card-head h2{margin-bottom:0}.lesson-video{grid-area:video;min-width:0}.lesson-head{grid-area:head}.lesson-roster{grid-area:roster}.lesson-live{--video-h: clamp(320px, calc(100vh - 240px) , 780px)}.lesson-live .video-room{height:var(--video-h)}.lesson-live .lesson-video>.card{display:flex;flex-direction:column;min-height:calc(var(--video-h) + 64px)}.lesson-live .lesson-video>.card>.alert,.lesson-live .lesson-video>.card>p.muted{align-self:center;width:min(520px,100%);margin:auto 0}.lesson-live .lesson-video>.card>p.muted{margin-bottom:var(--space-3);text-align:center;width:auto}.lesson-live .lesson-video>.card:has(>.alert){background:var(--color-neutral-50)}h2[tabindex="-1"]:focus{outline:none}.lesson-video:empty{display:none}.lesson-live:has(>.lesson-video:empty){grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));grid-template-rows:none;grid-template-areas:none}.lesson-live:has(>.lesson-video:empty)>*{grid-area:auto}.lesson-live:has(>.lesson-video:empty):not(:has(>.card)){display:none}.lesson-head-status{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.lesson-head-status .btn{margin-left:auto}.lesson-head h2{margin-bottom:var(--space-1)}.lesson-head-meta{font:var(--typography-body-small);color:var(--text-muted)}.lesson-head-meta strong{color:var(--text-primary)}.lesson-head-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.lesson-head .link-list{margin-top:var(--space-3)}.link-list-compact a{padding:6px var(--space-3)}.lesson-link-toggle{margin:var(--space-2) 0 0 calc(-1 * var(--space-4))}.lesson-link-form{margin-top:var(--space-3);padding-top:var(--space-3);border-top:var(--border-width-default) solid var(--border-default)}.lesson-link-form .form-group{margin-bottom:var(--space-2)}.lesson-live .student-list .student{min-height:36px;padding:var(--space-1) 0}.lesson-live .material-item{min-height:44px;padding:var(--space-1) 0}@media(max-width:1024px){.lesson-live{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"head" "video" "roster"}.lesson-live-video-first{grid-template-areas:"video" "head" "roster"}.lesson-live{--video-h: clamp(260px, 56vw, 520px)}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.segmented{display:inline-flex;gap:2px;height:var(--segmented-height);padding:var(--space-1);border-radius:var(--radius-md);background:var(--color-neutral-100);max-width:100%;overflow-x:auto;scrollbar-width:none}.segmented button{flex:0 0 auto;height:var(--segmented-item-height);padding:0 var(--space-4);border:none;border-radius:9px;background:transparent;color:var(--text-muted);font:var(--typography-label-small);cursor:pointer;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.segmented button:hover{color:var(--text-primary)}.segmented button[aria-pressed=true]{background:var(--color-neutral-0);color:var(--text-primary);box-shadow:var(--shadow-selected)}.empty-state{display:grid;justify-items:start;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);background:var(--color-neutral-50);color:var(--text-muted);font:var(--typography-body-small)}.empty-state p{max-width:60ch}.skeleton-stack{display:grid;gap:var(--space-2)}.skeleton{height:44px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-neutral-100) 0%,var(--color-neutral-50) 50%,var(--color-neutral-100) 100%) 0 0 / 200% 100%;animation:skeleton-shimmer 1.4s linear infinite}.skeleton:nth-child(3n){width:82%}.skeleton:nth-child(3n+1){width:94%}@keyframes skeleton-shimmer{to{background-position:-200% 0}}.material-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:var(--space-4) var(--space-5)}.material-group h3{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-2);font:var(--typography-label-medium)}.material-group h3 .badge{height:24px;padding:0 var(--space-2);font:var(--typography-caption);font-weight:500}ul.link-list{list-style:none}.material-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:48px;padding:var(--space-1) var(--space-2) var(--space-1) var(--space-4);border-bottom:var(--border-width-default) solid var(--border-default)}.card .material-row+.material-row{margin-top:0}.material-row:last-child{border-bottom:none}.card li.schedule-row+li.schedule-row{margin-top:0}.schedule-row-main{display:grid;gap:2px}.schedule-row-time{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-2)}.schedule-row-time strong{font:var(--typography-label-medium);color:var(--text-primary)}.schedule-row-zone{font:var(--typography-caption);color:var(--text-muted)}.schedule-row-meta{font:var(--typography-body-compact);color:var(--color-neutral-600)}.schedule-row.is-live{box-shadow:inset 3px 0 0 var(--status-success)}.schedule-row.is-cancelled .schedule-row-time strong{color:var(--text-muted);text-decoration:line-through}@media(max-width:600px){.schedule-row{padding:var(--space-3) var(--space-4)}.schedule-row-actions{flex:1 1 100%;justify-content:flex-start;margin-left:0}.schedule-row-actions .badge{height:28px}}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}.checkbox-item-spaced{margin-bottom:var(--space-3)}.grid-spaced{margin-top:var(--space-3)}@media(max-width:768px){.table-wrap{margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);background:linear-gradient(to right,var(--background-page) 30%,rgba(255,255,255,0)) left center / 32px 100% no-repeat local,linear-gradient(to left,var(--background-page) 30%,rgba(255,255,255,0)) right center / 32px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(17,17,17,.12),transparent) left center / 12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(17,17,17,.12),transparent) right center / 12px 100% no-repeat scroll}.table-wrap td{white-space:nowrap}.table-wrap td.cell-break,.table-wrap td:has(.cell-meta){white-space:normal;min-width:220px}}@media(max-width:1024px){.main-nav{order:3;flex:1 0 100%;margin-right:0;overflow-x:auto;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}}@media(max-width:768px){.container{padding:var(--space-5) var(--space-4) var(--space-8)}header{padding:var(--space-3) var(--space-4)}.brand{flex:1 1 0}header h1{overflow:hidden;text-overflow:ellipsis}header .user-info{margin-left:0;gap:var(--space-2)}header .user-info>span{display:none}.card{padding:var(--space-4)}.stats-row{grid-template-columns:1fr 1fr}.stats-row-quota{grid-template-columns:minmax(0,1fr)}.login-box{padding:var(--space-6) var(--space-5)}.card-head .pills{justify-content:flex-start}.filter-bar .form-group{flex:1 1 100%}}.signal-list{list-style:none;margin:0;padding:0}.signal-list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default)}.signal-list li:last-child{border-bottom:none}.signal-list li>span:not(.badge){flex:1 1 240px}.signal-cell{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-1)}.today-head,.school-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4);max-width:none}.today-head .muted,.school-head .muted{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.today-subhead{margin:var(--space-5) 0 var(--space-3);font:var(--typography-title-small)}.live-totals{margin-bottom:var(--space-3)}.load-chart{display:flex;align-items:flex-end;gap:2px;height:120px;margin:var(--space-4) 0;padding:var(--space-2) 0;border-bottom:1px solid var(--border-default)}.load-col{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px}.load-bar{width:100%;max-width:16px;background:var(--text-muted);border-radius:2px 2px 0 0}.load-bar.warn{background:var(--tone-warning, #c47f17)}.load-bar.crit{background:var(--tone-error)}.load-day{font:var(--typography-caption, 10px/1.2 sans-serif);color:var(--text-muted);white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:clip}.people-switch,.billing-switch{margin-bottom:var(--space-4)}.table .num{text-align:right;font-variant-numeric:tabular-nums}@media print{header,.skip-link,.no-print,.main-nav{display:none!important}body,.container{background:#fff;padding:0}.card{box-shadow:none;border:none;padding:0}.table-wrap{overflow:visible}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}.btn:active:not(:disabled){transform:none}.skeleton{background:var(--color-neutral-100)}}
