:root{--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-lime-01: #bbff2c;--tone-success-fg: #048700;--tone-warning-fg: #8a6700;--tone-error: #e51a1a;--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;--border-width-default: 1px;--border-width-control: 2px;--border-width-strong: 3px;--button-height-sm: 33px;--button-height-md: 42px;--button-height-lg: 52px;--button-height-xl: 58px;--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;--progress-height: 8px;--indicator-size-status: 8px;--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-subtle: 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);--ring-control: inset 0 0 0 var(--border-width-strong) var(--color-purple-100);--shadow-selected: 0 1px 2px rgba(79, 21, 184, .05);--shadow-dialog: 0 16px 20px rgba(79, 21, 184, .14);--shadow-toast: 0 8px 24px rgba(0, 0, 0, .2);--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Manrope", "Roboto", -apple-system, BlinkMacSystemFont, sans-serif;--purple: var(--action-primary-default);--purple-hover: var(--action-primary-hover);--purple-soft: var(--color-purple-100);--blue-badge: var(--status-info);--coral: var(--tone-error);--coral-hover: var(--tone-error);--green: var(--status-success);--gray-btn: var(--action-secondary-default);--bg: var(--background-surface);--bg-header: var(--background-page);--bg-card: var(--background-page);--text: var(--text-primary);--text-muted: var(--text-secondary);--border: var(--border-default);--radius: var(--radius-full)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--background-surface);color:var(--text-primary);line-height:1.5}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.01em}a{color:var(--text-link)}.container{max-width:1100px;margin:0 auto;padding:var(--space-6) var(--space-5)}header{background:var(--background-page);color:var(--text-primary);padding:var(--space-3) var(--space-5);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;border-bottom:var(--border-width-default) solid var(--border-default)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--action-primary-default);color:var(--text-inverse);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:700;font-size:.95rem;letter-spacing:-.02em}header h1{font-size:1.15rem;font-weight:700;color:var(--text-primary)}header .user-info{display:flex;gap:var(--space-3);align-items:center;font-size:13px;color:var(--text-secondary)}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-family:inherit;font-size:13px;font-weight:500}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;gap:2px;padding:var(--space-1);background:var(--background-surface);border-radius:var(--radius-full);flex-wrap:wrap;margin:0 auto}.main-nav a{display:inline-flex;align-items:center;height:calc(var(--tabs-item-height) - 4px);padding:0 18px;border-radius:var(--radius-full);text-decoration:none;color:var(--text-secondary);font-weight:500;font-size:14px}.main-nav a:hover{color:var(--action-primary-default)}.main-nav a.active{background:var(--background-page);color:var(--action-primary-default);box-shadow:var(--shadow-selected)}.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-size:18px;font-weight:700;line-height:1.4;margin-bottom:var(--space-3);color:var(--text-primary)}.form-group{margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{display:block;font-size:13px;line-height:19.5px;font-weight:500;color:var(--text-body)}.form-group input,.form-group select,.form-group textarea{width:100%;height:var(--control-height-field-compact);padding:0 var(--space-5);border:none;border-radius:var(--radius-full);box-shadow:var(--ring-control);font-family:inherit;font-size:14px;background:var(--background-page);color:var(--text-primary)}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' 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-5) center}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--action-primary-default);opacity:.7}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;box-shadow:inset 0 0 0 var(--border-width-strong) var(--border-focus)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--background-surface);color:var(--text-secondary);box-shadow:inset 0 0 0 var(--border-width-strong) var(--border-default);cursor:default}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea,.form-group.has-error input:focus,.form-group.has-error select:focus,.form-group.has-error textarea:focus{box-shadow:inset 0 0 0 var(--border-width-strong) var(--tone-error)}.form-group textarea{height:auto;min-height:108px;padding:var(--space-5) var(--space-6);border-radius:20px;line-height:24px;resize:vertical}.field-error{color:var(--tone-error);font-size:12px;line-height:18px}.field-hint{color:var(--text-secondary);font-size:12px;line-height:18px}.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-family:var(--font-body);font-size:14px;line-height:14px;font-weight:500;white-space:nowrap;text-decoration:none;transition:background .15s ease,box-shadow .15s ease}.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-success{background:var(--status-success);color:var(--text-primary)}.btn-success:hover{filter:brightness(.95)}.btn-danger{background:var(--status-error);color:var(--text-primary)}.btn-danger:hover{filter:brightness(.95)}.btn-outline{background:var(--background-page);color:var(--action-primary-default);box-shadow:var(--ring-control)}.btn-tertiary{background:transparent;color:var(--action-primary-default)}.btn-sm{height:var(--button-height-sm);padding:0 var(--space-4);font-size:13px}.btn-lg{height:var(--button-height-lg);padding:0 var(--space-8);font-size:16px}.btn:disabled{opacity:.5;cursor:default;filter:none}.btn:focus-visible,.pill:focus-visible,.step:focus-visible,.tabs button:focus-visible,.main-nav a:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:var(--space-3);border-bottom:var(--border-width-default) solid var(--border-default)}th{background:transparent;font-size:13px;font-weight:500;color:var(--text-secondary)}tbody tr:hover{background:var(--color-neutral-50)}.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 var(--space-3);border-radius:var(--radius-full);font-size:13px;line-height:19.5px;font-weight:500;white-space:nowrap;vertical-align:middle}.badge-green{background:#04c8001f;color:var(--tone-success-fg)}.badge-red{background:#e51a1a1a;color:var(--tone-error)}.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-yellow{background:#f7c0002e;color:var(--tone-warning-fg)}.badge-gray{background:transparent;color:var(--text-primary);box-shadow:inset 0 0 0 1.5px var(--border-strong)}.badge-new{background:var(--color-lime-01);color:#1b2407;margin-left:var(--space-2)}.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:10px}.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);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-weight:500;color:var(--action-primary-default)}.alert{position:relative;padding:var(--space-4) var(--space-5) var(--space-4) 30px;border-radius:14px;margin-bottom:var(--space-4);background:var(--background-page);box-shadow:var(--shadow-toast);color:var(--text-primary);font-weight:500;font-size:14px}.alert:before{content:"";position:absolute;left:12px;top:12px;bottom:12px;width:6px;border-radius:4px;background:var(--status-info)}.alert-warning:before{background:var(--status-warning)}.alert-danger:before{background:var(--tone-error)}.alert-success:before{background:var(--color-lime-01)}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--background-surface)}.login-box{background:var(--background-page);padding:var(--space-8);border-radius:20px;width:420px;max-width:90vw;box-shadow:var(--shadow-dialog)}.login-box h1{text-align:center;margin-bottom:var(--space-6);font-size:22px;color:var(--text-primary)}.error-msg{color:var(--tone-error);font-size:13px;margin-bottom:var(--space-3)}.tabs{display:flex;gap:2px;padding:var(--space-1);margin-bottom:var(--space-5);background:var(--background-surface);border-radius:var(--radius-full)}.tabs button{flex:1;height:var(--tabs-item-height);padding:0 18px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500}.tabs button.active{background:var(--background-page);color:var(--action-primary-default);box-shadow:var(--shadow-selected)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:768px){.grid-2{grid-template-columns: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;padding:var(--space-2) 0;border-bottom:var(--border-width-default) solid var(--border-default)}.lesson-toolbar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-1)}.lesson-timer-wrap{display:flex;align-items:baseline;gap:var(--space-2)}.lesson-timer{font-family:var(--font-heading);font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700;color:var(--action-primary-default);letter-spacing:.04em}.demo-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--space-4)}.link-list a{display:block;padding:var(--space-2) var(--space-3);background:var(--background-surface);color:var(--text-link);border-radius:var(--radius-sm);margin-bottom:6px;text-decoration:none}.material-item{margin-bottom:var(--space-3);padding:var(--space-3);background:var(--background-surface);border-radius:var(--radius-md)}.exceeded{color:var(--tone-error);font-weight:700}.lang-switcher{height:var(--button-height-sm);padding:0 var(--space-3);border-radius:var(--radius-full);border:none;box-shadow:var(--ring-control);font-family:inherit;font-size:13px;background:var(--background-page);color:var(--text-primary);cursor:pointer}.lang-switcher.compact{height:28px;padding:0 var(--space-2);font-size:12px}.table-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.table-actions .btn{height:var(--button-height-sm);padding:0 var(--space-4);font-size:13px}.table-wrap{overflow-x:auto}table.table{width:100%}tbody tr.selected{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);cursor:pointer;background:var(--background-page);font-size:14px}.checkbox-item:hover{background:var(--color-neutral-50)}.checkbox-item input[type=checkbox],.form-group input[type=checkbox]{width:18px;height:18px;padding:0;margin:0;box-shadow:none;accent-color:var(--action-primary-default);cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1119;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-overlay>.card{border:none;border-radius:20px;padding:28px;box-shadow:var(--shadow-dialog)}.modal-overlay>.card h2{font-size:22px;line-height:33px;letter-spacing:-.22px}.modal-overlay>.card .muted{color:var(--text-body);font-size:14px;line-height:21px}.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;padding:10px 14px;color:var(--text-inverse);flex-shrink: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-secondary);font-size:14px;margin-bottom:var(--space-3)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end}.filter-bar .form-group{margin-bottom:0;min-width:150px}.pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.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(--action-secondary-default);color:var(--text-primary);font-family:inherit;font-size:13px;font-weight:500;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-size:14px;color:var(--text-secondary)}.breadcrumb button{background:none;border:none;color:var(--text-link);cursor:pointer;font:inherit;padding:0}.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}.stat-box{background:var(--background-surface);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.stat-box .value{font-family:var(--font-heading);font-size:1.3rem;font-weight:700;color:var(--text-primary)}.stat-box .label{font-size:13px;color:var(--text-secondary);font-weight:500}.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)}.usage-bar{flex:1;min-width:64px;height:var(--progress-height);background:var(--background-surface);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)}.usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-2)}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(--action-secondary-default);color:var(--text-secondary);font-family:inherit;font-size:13px;font-weight:500;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)}.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-secondary);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-size:12px;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}@media(max-width:768px){.stats-row,.usage-grid{grid-template-columns:1fr 1fr}}
