:root{--c-primary: #288C85;--c-primary-soft: #E6F7F6;--c-primary-ink: #1A635E;--c-secondary: #575591;--c-secondary-soft: #F0F0FA;--c-secondary-ink: #3F3E6E;--c-secondary-muted: #A7A6D8;--c-danger: #D64545;--c-danger-soft: #FFF0F0;--c-danger-ink: #A62121;--c-neutral: #6B7280;--c-neutral-soft: #F3F4F6;--c-neutral-ink: #374151;--c-accent: #7c3aed;--c-text: #2D3142;--c-page: #4ECDC4;--c-surface: #FFFFFF;--c-app-bg: #0f0f0f;--c-text-muted: #5C5F70;--c-text-faint: #9094A6;--c-border: #D9D9EA;--c-bg-soft: #F8F9FA;--c-success: #22c55e;--c-success-ink: #157347;--c-error: #ef4444;--c-error-ink: #b91c1c;--g-topbar: linear-gradient(135deg, #F8F9FA 0%, #EFEFFA 100%);--g-auth: linear-gradient(135deg, #0f0f0f 0%, #1a1a2e 100%);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-full: 999px;--sh-1: 0px 4px 8px rgba(0, 0, 0, .05);--sh-2: 0px 6px 16px rgba(0, 0, 0, .15);--sh-3: 0 10px 30px rgba(45, 49, 66, .18);--sidebar-w: 240px;--sidebar-w-collapsed: 64px;--topbar-h: 56px;--content-max: 1200px;--content-narrow: 720px;--modal-w: 480px;--font-display: "Poppins", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;background:#0f0f0f;color:#fff}body.dashboard-player-open{overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-family:var(--font-display);font-size:15px;font-weight:700;border-radius:var(--r-md);cursor:pointer;white-space:nowrap;transition:all .3s ease;box-shadow:var(--sh-1);text-decoration:none}.btn svg{width:20px;height:20px;flex-shrink:0}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--sh-2)}.btn:focus-visible{outline:3px solid var(--c-text);outline-offset:4px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:5px 12px;font-size:12px;border-width:1.5px;border-radius:var(--r-sm);gap:5px;box-shadow:none}.btn-sm svg{width:14px;height:14px}.btn-sm:hover:not(:disabled){transform:none;box-shadow:0 3px 8px #0000001a}.btn-primary{background-color:var(--c-primary-soft);border:2px solid var(--c-primary);color:var(--c-primary-ink)}.btn-primary:hover:not(:disabled){background-color:var(--c-primary);color:#fff}.btn-secondary{background-color:var(--c-secondary-soft);border:2px solid var(--c-secondary);color:var(--c-secondary-ink)}.btn-secondary:hover:not(:disabled){background-color:var(--c-secondary);color:#fff}.btn-neutral{background-color:var(--c-neutral-soft);border:2px solid var(--c-neutral);color:var(--c-neutral-ink)}.btn-neutral:hover:not(:disabled){background-color:var(--c-neutral);color:#fff}.btn-danger{background-color:var(--c-danger-soft);border:2px solid var(--c-danger);color:var(--c-danger-ink)}.btn-danger:hover:not(:disabled){background-color:var(--c-danger);color:#fff}.btn-ghost{background-color:transparent;border:2px solid transparent;color:var(--c-primary-ink);box-shadow:none}.btn-ghost:hover:not(:disabled){background-color:var(--c-primary-soft);color:var(--c-primary-ink);transform:none;box-shadow:none}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:10px;border:none;background-color:transparent;color:var(--c-neutral-ink);box-shadow:none;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-icon svg{width:20px;height:20px}.btn-icon:hover:not(:disabled){background-color:var(--c-neutral-soft)}.btn-icon:focus-visible{outline:3px solid var(--c-text);outline-offset:2px}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-icon.danger:hover:not(:disabled){background-color:var(--c-danger-soft);color:var(--c-danger-ink)}.success-banner,.error-banner{padding:12px 16px;font-size:14px;border-radius:4px;margin-bottom:20px}.success-banner{background:#22c55e1a;border-left:4px solid #22c55e;color:#157347}.error-banner{background:#ef44441a;border-left:4px solid #ef4444;color:#b91c1c}.loading-state{color:var(--c-text);font-size:15px;padding:48px 0;text-align:center}app-modal .form-group,.form-scope .form-group{display:flex;flex-direction:column;gap:6px}app-modal .form-group>label,.form-scope .form-group>label,app-modal .form-group>.form-label,.form-scope .form-group>.form-label{font-size:13px;font-weight:500;color:var(--c-text)}app-modal .form-row-2,.form-scope .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}app-modal .label-hint,.form-scope .label-hint,app-modal .field-hint,.form-scope .field-hint{font-weight:400;color:var(--c-neutral);font-size:12px}app-modal .field-hint,.form-scope .field-hint{margin:0}app-modal .field-input,.form-scope .field-input,app-modal .field-select,.form-scope .field-select{background:#f8f9fa;border:1px solid #D9D9EA;border-radius:var(--r-sm);color:var(--c-text);font-family:inherit;font-size:14px;padding:10px 12px;outline:none;transition:border-color .2s;width:100%}app-modal textarea.field-input,.form-scope textarea.field-input{resize:vertical}app-modal .field-input:focus,.form-scope .field-input:focus,app-modal .field-select:focus,.form-scope .field-select:focus{border-color:var(--c-primary)}app-modal .trainings-picker,.form-scope .trainings-picker{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto;border:1px solid #D9D9EA;border-radius:var(--r-sm);padding:10px 12px;background:#f8f9fa}app-modal .training-check,.form-scope .training-check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--c-text);cursor:pointer}@media(max-width:480px){app-modal .form-row-2,.form-scope .form-row-2{grid-template-columns:1fr}}.toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}.search-input-wrap{position:relative;flex:1;min-width:200px;max-width:340px}.search-input-wrap>.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--c-neutral);pointer-events:none;display:inline-flex}.search-input-wrap input{width:100%;padding:9px 36px 9px 38px;border-radius:var(--r-sm);border:1.5px solid rgba(45,49,66,.12);background:var(--c-surface);font-family:inherit;font-size:14px;color:var(--c-text)}.search-input-wrap input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #288c8526}.search-clear-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:none;border-radius:50%;background:transparent;color:var(--c-neutral);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.search-clear-btn:hover{background:var(--c-neutral-soft)}.search-clear-btn:focus-visible{outline:2px solid var(--c-text)}.select-filter{padding:9px 14px;border-radius:var(--r-sm);border:1.5px solid rgba(45,49,66,.12);background:var(--c-surface);font-family:inherit;font-size:14px;font-weight:600;color:var(--c-neutral-ink)}.select-filter:focus{outline:none;border-color:var(--c-primary)}.data-table{background:var(--c-surface);border-radius:var(--r-lg);box-shadow:var(--sh-2);overflow:hidden;color:var(--c-text)}.data-table .dt-scroll{overflow-x:auto}.data-table table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:12px var(--sp-4);font-size:13.5px;vertical-align:middle}.data-table thead th{background:var(--c-neutral-soft);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--c-neutral-ink);font-weight:700;white-space:nowrap}.data-table tbody tr{border-top:1px solid rgba(45,49,66,.06)}.data-table tbody tr:hover{background:#288c850a}.data-table td.actions-cell,.data-table th.actions-cell{text-align:right;width:56px;white-space:nowrap}.data-table .cell-muted{color:var(--c-neutral)}.data-table .cell-sub{display:block;font-size:12px;color:var(--c-neutral)}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .dt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-4)}.data-table .dt-empty{padding:56px var(--sp-5);text-align:center;color:var(--c-neutral);font-size:14px}.data-table .dt-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid rgba(45,49,66,.06);font-size:13px;color:var(--c-neutral)}.dt-pager{display:flex;align-items:center;gap:4px}.dt-pager button{width:32px;height:32px;border:none;border-radius:var(--r-sm);background:var(--c-neutral-soft);color:var(--c-neutral-ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.dt-pager button:hover:not(:disabled){background:var(--c-neutral);color:#fff}.dt-pager button:focus-visible{outline:2px solid var(--c-text);outline-offset:2px}.dt-pager button:disabled{opacity:.4;cursor:not-allowed}.dt-section-title{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--c-text);margin:var(--sp-5) 0 var(--sp-3)}.dt-section-title:first-child{margin-top:0}.ui-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.ui-badge-success{background:var(--c-primary-soft);color:var(--c-primary-ink)}.ui-badge-neutral{background:var(--c-neutral-soft);color:var(--c-neutral-ink)}.ui-badge-warning{background:#fff7e0;color:#92650b}.ui-badge-danger{background:var(--c-danger-soft);color:var(--c-danger-ink)}.ui-badge-purple{background:var(--c-secondary-soft);color:var(--c-secondary-ink)}@media(max-width:767px){.data-table .dt-scroll{overflow:visible}.data-table table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table thead{display:none}.data-table tbody tr{padding:var(--sp-3) var(--sp-4);position:relative}.data-table td{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:6px 0;text-align:right;min-height:32px}.data-table td[data-label]:before{content:attr(data-label);flex-shrink:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--c-neutral);text-align:left}.data-table td.actions-cell{justify-content:flex-end;width:100%}.data-table .num{text-align:right}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.data-table .cell-desc{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table .cell-thumb{width:44px;color:var(--c-neutral)}@media(max-width:767px){.data-table .cell-desc{max-width:none;white-space:normal}}.no-modules-warning{font-size:14px;color:#92400e;background:#fef3c7;border:1px solid rgba(217,119,6,.3);border-radius:8px;padding:12px 14px;margin:0;line-height:1.5}.no-modules-warning a{color:var(--c-secondary-ink);text-decoration:underline;cursor:pointer}.auth-panel h2{font-size:26px;font-weight:700;color:#fff;margin:0 0 8px}.auth-panel .auth-subtitle{font-size:14px;color:#9ca3af;margin:0 0 32px}.auth-panel .instructions{color:#9ca3af;font-size:14px;margin:0 0 24px;line-height:1.5}.auth-panel .form-group{margin-bottom:20px}.auth-panel .form-group label{display:block;color:#d1d5db;font-size:14px;font-weight:500;margin-bottom:6px}.auth-panel .form-group input,.auth-panel .form-group select,.auth-panel .birth-row select{width:100%;padding:10px 14px;background:#12121e;border:1px solid #2a2a3e;border-radius:8px;color:#fff;font-size:15px;transition:border-color .2s}.auth-panel .form-group input:focus,.auth-panel .form-group select:focus,.auth-panel .birth-row select:focus{outline:none;border-color:var(--c-page);box-shadow:0 0 0 3px #4ecdc440}.auth-panel .form-group input::placeholder{color:#6b7280}.auth-panel .form-group input:disabled{opacity:.4;cursor:not-allowed}.auth-panel .form-group select option{background:#12121e;color:#fff}.auth-panel .req{color:#f87171}.auth-panel .row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.auth-panel .birth-row{display:grid;grid-template-columns:1fr 2fr 1.2fr;gap:8px}.auth-panel .section-label{color:var(--c-page);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:24px 0 16px;padding-bottom:8px;border-bottom:1px solid #2a2a3e}.auth-panel .error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:13px;line-height:1.5;padding:10px 12px;margin-bottom:16px}.auth-panel .btn{width:100%}.auth-panel form .btn,.auth-panel .btn+.back-link{margin-bottom:16px}.auth-panel .back-link,.auth-panel .forgot-link{display:block;text-align:center;color:var(--c-page);font-size:14px;text-decoration:none;margin-top:8px}.auth-panel .back-link:hover,.auth-panel .forgot-link:hover{text-decoration:underline}.auth-panel .back-link:focus-visible,.auth-panel .forgot-link:focus-visible{outline:2px solid var(--c-page);outline-offset:3px;border-radius:4px}.auth-panel .divider{border-top:1px solid #2a2a3e;margin:24px 0 20px}.auth-panel .invited-by{color:var(--c-page);font-weight:600;font-size:14px;margin:0 0 20px}.auth-panel .success-box{text-align:center;padding:24px 16px;background:#4ecdc414;border:1px solid rgba(78,205,196,.3);border-radius:8px;color:#e5e7eb;font-size:14px;line-height:1.6}.auth-panel .success-box p{margin:0 0 8px}.auth-panel .success-box .hint{color:#9ca3af;font-size:13px;margin-bottom:24px}.auth-panel .checking{text-align:center;padding:24px 0;color:#9ca3af;font-size:14px}.auth-panel .spinner{display:inline-block;width:24px;height:24px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--c-page);border-radius:50%;animation:auth-spin .7s linear infinite;margin-bottom:12px}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-panel .expired-box{text-align:center;padding:8px 0 16px}.auth-panel .expired-icon{margin:0 0 12px}.auth-panel .expired-title{color:#f87171;font-size:18px;font-weight:600;margin:0 0 8px}.auth-panel .expired-sub{color:#9ca3af;font-size:13px;line-height:1.5;margin:0 0 24px}@media(max-width:480px){.auth-panel .row-2{grid-template-columns:1fr;gap:0}}
