:root{--brand:#f57c00;--brand-dark:#d96700;--brand-darker:#b85400;--brand-light:#fff3e6;--brand-light-2:#ffe4c2;--dark:#1c1c1e;--gray-900:#1a1a1a;--gray-700:#4a4a4a;--gray-500:#767676;--gray-300:#d9d9d9;--gray-200:#e8e8e8;--gray-100:#f5f5f5;--gray-50:#fafafa;--white:#fff;--success:#1a8f4c;--danger:#d64545;--info:#2563a8;--warning:#b9800a;--border-subtle:#14141414;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #1414140d;--shadow:0 2px 10px #1414140f;--shadow-md:0 6px 20px #14141414;--shadow-lg:0 12px 32px #1414141f;--student-shell-max:720px;font-family:Inter,Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--gray-100);color:var(--gray-900);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.page-loading{height:100vh;color:var(--gray-500);justify-content:center;align-items:center;font-size:1rem;display:flex}.btn{border-radius:var(--radius);letter-spacing:.01em;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--white);box-shadow:0 1px 2px #d5640026,0 4px 10px #f57c002e}@media (hover:hover) and (pointer:fine){.btn-primary:hover:not(:disabled){background:var(--brand-dark);box-shadow:0 2px 4px #d5640033,0 6px 16px #f57c003d}}.btn-secondary{background:var(--white);color:var(--gray-900);border-color:var(--gray-300)}@media (hover:hover) and (pointer:fine){.btn-secondary:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-500)}}.btn-danger{background:var(--white);color:var(--danger);border-color:var(--danger)}@media (hover:hover) and (pointer:fine){.btn-danger:hover:not(:disabled){background:#fdecec}}.btn-live{background:var(--brand-light);color:var(--brand-darker);border:1.5px solid var(--brand);animation:1.8s ease-in-out infinite liveButtonPulse}@media (hover:hover) and (pointer:fine){.btn-live:hover:not(:disabled){background:var(--brand-light-2)}}.live-dot{background:#e5484d;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.4s ease-in-out infinite liveDotPulse}.btn-sm{padding:6px 12px;font-size:.8rem}.form-group{margin-bottom:16px}.form-label{color:var(--gray-700);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{border:1px solid var(--gray-300);background:var(--white);border-radius:8px;width:100%;padding:10px 12px;font-size:.92rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light);outline:none}.password-input{position:relative}.password-input .form-input{padding-right:40px}.password-input-toggle{width:32px;height:32px;color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-input-toggle:hover{color:var(--brand);background:var(--brand-light)}.form-row{gap:16px;display:flex}.form-row>.form-group{flex:1}.form-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.form-divider{border-top:1px solid var(--gray-200,#ececec);text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);align-items:center;gap:10px;margin:22px 0 16px;padding-top:18px;font-size:.78rem;font-weight:700;display:flex}.card{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow);opacity:1;padding:22px;transition:opacity .2s}.card.is-refreshing{opacity:.6}.profile-divider{background:var(--gray-100);height:1px;margin:18px 0 14px}.profile-disclosure-toggle{text-align:left;width:100%;color:var(--gray-900);background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:4px 2px;font-size:.95rem;font-weight:700;display:flex}@media (hover:hover) and (pointer:fine){.profile-disclosure-toggle:hover{color:var(--brand-dark)}}.profile-disclosure-body{max-width:360px;margin-top:16px}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-header h2{letter-spacing:-.01em;margin:0;font-size:1.1rem}.badge{letter-spacing:.02em;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.badge-active{color:var(--success);background:#e6f6ec}.badge-inactive,.badge-not-set{color:var(--gray-500);background:#f2f2f2}.badge-paid{color:var(--success);background:#e6f6ec}.badge-pending{background:var(--brand-light);color:var(--brand-dark)}.badge-overdue{color:var(--danger);background:#fbe9e9}.fee-form-row{gap:12px;display:flex}.fee-form-row .form-group{flex:1}.fee-overdue-banner{border-radius:var(--radius);color:var(--danger);background:#fbe9e9;align-items:flex-start;gap:10px;margin:-4px 0 18px;padding:12px 14px;font-size:.85rem;font-weight:600;line-height:1.45;display:flex}.fee-overdue-banner svg{flex-shrink:0;margin-top:2px}.fee-due-note{color:#c75a5a;background:#fdeeee;border-radius:999px;align-items:center;gap:6px;margin:0 0 14px;padding:5px 10px;font-size:.78rem;font-weight:600;line-height:1.3;display:inline-flex}.fee-due-note.overdue{color:var(--danger);background:#fbe0e0}.fee-summary-row{flex-wrap:wrap;gap:14px;margin-bottom:18px;display:flex}.fee-summary-card{border-radius:var(--radius);background:var(--white);border:1px solid var(--gray-200,#ececec);flex-direction:column;gap:4px;min-width:160px;padding:14px 20px;display:flex}.fee-summary-card.is-overdue .fee-summary-value{color:var(--danger)}.fee-summary-value{color:var(--gray-900,#1a1a1a);font-size:1.5rem;font-weight:700}.fee-summary-label{color:var(--gray-500);font-size:.78rem;font-weight:600}.fee-table-subtext{color:var(--gray-500);margin-top:2px;font-size:.78rem}.fee-asof-field{align-items:center;gap:10px;display:flex}.fee-asof-label{color:var(--gray-700);white-space:nowrap;font-size:.82rem;font-weight:600}.fee-asof-field .form-input{max-width:170px}.fee-modal-section{background:var(--gray-50,#f8f9fb);border:1px solid var(--border-subtle);border-radius:10px;margin-bottom:16px;padding:14px 16px}.fee-modal-due-row{color:var(--gray-700);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.85rem;display:flex}.fee-modal-due-amount{color:var(--danger,#d64545);font-size:1.1rem}.fee-modal-due-amount.is-clear{color:var(--success,#1a8f4c)}.fee-modal-section-title{color:var(--gray-700);text-transform:uppercase;letter-spacing:.02em;margin:0 0 12px;font-size:.82rem;font-weight:700}.fee-modal-toggle-edit{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0 0 16px;font-size:.85rem;font-weight:600}.fee-modal-toggle-edit:hover{text-decoration:underline}.fee-view-tabs{border-bottom:1px solid var(--border-subtle);gap:4px;margin-bottom:16px;display:flex}.fee-view-tab{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:20px;padding:10px 4px;font-size:.9rem;font-weight:600}.fee-view-tab:hover{color:var(--gray-900)}.fee-view-tab.is-active{color:var(--brand);border-bottom-color:var(--brand)}.print-only{display:none}.invoice-table th,.invoice-table td{text-align:right}.invoice-table th:first-child,.invoice-table td:first-child,.invoice-table th:nth-child(2),.invoice-table td:nth-child(2){text-align:left}.invoice-totals-row td{border-top:2px solid var(--gray-900);background:var(--gray-50);font-weight:700}@media print{body *{visibility:hidden}#batch-report-print,#batch-report-print *{visibility:visible}#batch-report-print{width:100%;box-shadow:none;border:none;padding:0;position:absolute;top:0;left:0}.print-only{display:block}.invoice-letterhead{border-bottom:2px solid var(--brand);align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.invoice-letterhead-logo{object-fit:contain;width:64px;height:64px}.invoice-letterhead h2{color:var(--brand);margin:0 0 4px}.invoice-letterhead p{color:var(--gray-700);margin:0;font-size:.85rem}.invoice-title{color:var(--gray-700);margin:0 0 16px;font-size:1rem}}.progress-track{background:var(--gray-200,#ececec);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--brand) 0%, var(--brand-dark) 100%);border-radius:999px;height:100%;transition:width .4s}.table-wrapper{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table th{text-align:left;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gray-200);padding:10px 14px;font-size:.74rem;font-weight:700}.data-table td{border-bottom:1px solid var(--gray-100);padding:12px 14px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--gray-50)}.empty-state{text-align:center;color:var(--gray-500);padding:48px 20px}.empty-state-title{color:var(--gray-700);margin:0 0 6px;font-size:1rem;font-weight:600}.empty-state-description{margin:0;font-size:.88rem}.error-banner{color:var(--danger);background:#fdecec;border:1px solid #f5c2c2;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:.88rem}.success-banner{color:var(--success);background:#e9f7ef;border:1px solid #bfe6cd;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:.88rem}.bulk-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.bulk-toolbar-hint{color:var(--gray-500);font-size:.82rem}.bulk-summary{color:var(--gray-700);white-space:nowrap;font-size:.82rem;font-weight:600}.bulk-summary.has-issues{color:var(--danger)}.bulk-table-wrapper{border:1px solid var(--gray-300);border-radius:10px;margin-bottom:12px;overflow:hidden}.bulk-table-scroll{max-height:320px;overflow-y:auto}table.bulk-table{border-collapse:collapse;width:100%;font-size:.88rem}.bulk-table thead th{z-index:1;text-align:left;background:var(--gray-100);color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--gray-300);padding:10px 12px;font-size:.72rem;position:sticky;top:0}.bulk-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--gray-100)}.bulk-table td{vertical-align:top;padding:0}.bulk-row-index{text-align:center;width:34px;color:var(--gray-500);font-size:.78rem;padding-top:11px!important}.bulk-cell{padding:0!important}.bulk-cell-input{width:100%;color:var(--gray-900);background:0 0;border:none;padding:10px 12px;font-family:inherit;font-size:.88rem;display:block}.bulk-cell-input::placeholder{color:var(--gray-300)}.bulk-cell-input:focus{background:var(--brand-light);box-shadow:inset 0 0 0 2px var(--brand);outline:none}.bulk-cell-input.has-error{background:#fdecec}.bulk-row-issue{color:var(--danger);padding:0 12px 8px;font-size:.72rem}.bulk-remove-cell{text-align:center;width:40px;padding-top:6px!important}.bulk-remove-btn{color:var(--gray-300);background:0 0;border:none;border-radius:6px;padding:6px 8px;font-size:1.05rem;line-height:1}.bulk-remove-btn:hover{color:var(--danger);background:#fdecec}.bulk-add-row-btn{border:1px dashed var(--gray-300);background:var(--white);width:100%;color:var(--gray-700);border-radius:8px;margin-bottom:20px;padding:10px;font-size:.85rem;font-weight:600}.bulk-add-row-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-light)}.bulk-result-card{border:1px solid var(--gray-300);border-radius:10px;margin-bottom:18px;overflow:hidden}.bulk-result-summary{background:var(--gray-100);gap:20px;padding:14px 16px;font-size:.88rem;display:flex}.bulk-result-summary strong{font-size:1.1rem;display:block}.bulk-result-created strong{color:var(--success)}.bulk-result-skipped strong{color:var(--danger)}.bulk-result-errors{padding:4px 16px 14px}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-overlay:has(.modal-fullscreen){padding:16px}@media (width<=640px){.modal-overlay:has(.modal-fullscreen){padding:0}}.modal{background:var(--white);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-lg);overflow-y:auto}.modal-wide{max-width:820px}.modal-fullscreen{flex-direction:column;width:calc(100% - 32px);max-width:1200px;height:calc(100vh - 32px);max-height:calc(100vh - 32px);display:flex}.modal-fullscreen .modal-body{flex-direction:column;flex:1;min-height:0;padding:16px 20px 20px;display:flex}@media (width<=640px){.modal-fullscreen{border-radius:0;width:100vw;height:100vh;max-height:100vh}}.modal-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-header h3{letter-spacing:-.01em;margin:0;font-size:1.08rem;font-weight:700}.modal-close{color:var(--gray-500);background:0 0;border:none;border-radius:6px;padding:4px;font-size:1.4rem;line-height:1;transition:background .15s,color .15s}@media (hover:hover) and (pointer:fine){.modal-close:hover{background:var(--gray-100);color:var(--gray-900)}}.modal-body{padding:22px}.search-bar{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.search-bar .form-input{max-width:320px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-bottom:28px;display:grid}.stat-card{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow);border-left:3px solid var(--brand);padding:20px 22px;transition:box-shadow .18s,transform .18s}.stat-card .stat-value{letter-spacing:-.02em;color:var(--gray-900);font-size:1.9rem;font-weight:800}.stat-card .stat-label{color:var(--gray-500);margin-top:4px;font-size:.85rem;font-weight:500}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.page-header h1{letter-spacing:-.01em;color:var(--gray-900);margin:0;font-size:1.5rem}.page-subtitle{color:var(--gray-500);max-width:640px;margin:5px 0 0;font-size:.9rem;line-height:1.5}.admin-shell{min-height:100vh;display:flex}.admin-sidebar{background:var(--dark);width:248px;height:100vh;color:var(--white);flex-direction:column;flex-shrink:0;padding:22px 0;display:flex;position:sticky;top:0}.admin-sidebar-brand{letter-spacing:-.01em;border-bottom:1px solid #ffffff1a;align-items:center;gap:11px;margin-bottom:18px;padding:0 20px 22px;font-size:1.05rem;font-weight:700;display:flex}.admin-sidebar-brand img{object-fit:cover;border-radius:9px;width:36px;height:36px;box-shadow:0 2px 8px #00000040}.admin-nav{scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;flex-direction:column;flex:1;gap:3px;min-height:0;padding:0 12px;display:flex;overflow-y:auto}.admin-nav::-webkit-scrollbar{width:6px}.admin-nav::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:3px}.admin-nav-link{color:#ffffffb8;border-radius:8px;align-items:center;gap:11px;padding:10px 14px;font-size:.92rem;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.admin-nav-icon{opacity:.85;flex-shrink:0}.admin-nav-link:hover{color:var(--white);background:#ffffff12}.admin-nav-link.active{background:var(--brand);color:var(--white);font-weight:600;box-shadow:0 4px 12px #f57c0059}.admin-nav-link.active .admin-nav-icon{opacity:1}.admin-logout{color:var(--white);background:#ffffff14;border:none;border-radius:8px;flex-shrink:0;margin:14px 20px 0;padding:10px;font-weight:600;transition:background .15s}.admin-logout:hover{background:#ffffff26}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-topbar{background:var(--white);border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);z-index:1;justify-content:space-between;align-items:center;padding:16px 28px;display:flex;position:relative}.admin-topbar-title{letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.admin-topbar-user{color:var(--gray-500);font-size:.9rem;font-weight:500}.admin-content{flex:1;padding:28px}.admin-menu-toggle{color:var(--dark);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;display:none}.admin-menu-toggle:hover{background:var(--gray-100)}.admin-sidebar-close{color:#ffffffbf;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:2px;display:none}.admin-sidebar-overlay{display:none}@media (width<=860px){.admin-menu-toggle{display:inline-flex}.admin-topbar{padding-left:16px}.admin-sidebar{z-index:50;width:260px;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:6px 0 28px #00000047}.admin-sidebar.open{transform:translate(0)}.admin-sidebar-close{display:inline-flex}.admin-sidebar-overlay{z-index:45;background:#0f0f0f73;display:block;position:fixed;inset:0}.admin-content{padding:20px 16px}}.student-shell{min-height:100vh;max-width:var(--student-shell-max);background:var(--gray-100);flex-direction:column;margin:0 auto;display:flex}.student-topbar{background:var(--white);border-bottom:1px solid var(--gray-300);z-index:10;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;font-weight:700;display:flex;position:sticky;top:0}.student-topbar-brand{align-items:center;gap:10px;display:flex}.student-topbar img{object-fit:cover;border-radius:7px;width:30px;height:30px}.student-topbar-nav{display:none}.student-content{flex:1;padding:20px 20px 32px}.player-card,.course-hero{scroll-margin-top:76px}.page-breadcrumb{min-width:0;color:var(--gray-500);align-items:center;margin:-4px 0 14px;font-size:.85rem;display:flex}.page-breadcrumb-item{align-items:center;min-width:0;display:inline-flex}.page-breadcrumb-item:first-child,.page-breadcrumb-item:not(:last-child){flex-shrink:0}.page-breadcrumb-sep{color:var(--gray-300);margin:0 8px}.page-breadcrumb-link{color:var(--gray-700);border-radius:6px;align-items:center;gap:2px;max-width:260px;font-weight:600;text-decoration:none;display:inline-flex}.page-breadcrumb-link span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-breadcrumb-link svg{flex-shrink:0;margin-left:-4px}@media (hover:hover) and (pointer:fine){.page-breadcrumb-link:hover{color:var(--brand)}}.page-breadcrumb-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.page-breadcrumb-current{white-space:nowrap;text-overflow:ellipsis;color:var(--gray-500);overflow:hidden}@media (width<=600px){.page-breadcrumb-item:first-child:not(:only-child) .page-breadcrumb-link span{max-width:90px}.page-breadcrumb-link{max-width:150px}}.page-back-link{color:var(--gray-700);cursor:pointer;background:0 0;border:none;align-items:center;margin:-4px 0 14px;padding:0;font-size:.85rem;font-weight:600;display:inline-flex}@media (hover:hover) and (pointer:fine){.page-back-link:hover{color:var(--brand)}}.student-footer{background:var(--white);border-top:1px solid var(--gray-300);color:var(--gray-500);text-align:center;flex-direction:column-reverse;align-items:center;gap:10px;padding:16px 20px 84px;font-size:.8rem;display:flex}.student-footer-copy{margin:0}.student-footer-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 16px;display:flex}.student-footer-links a{color:var(--gray-700);font-weight:600;text-decoration:none;transition:color .15s,background .15s}.student-footer-group{align-items:center;gap:16px;display:inline-flex}.student-footer-contact{align-items:center;gap:6px;display:inline-flex}.student-footer-contact svg{color:var(--brand)}.student-footer-divider{background:var(--gray-300);width:1px;height:16px}.student-footer-social{background:var(--gray-100);border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.student-footer-youtube{color:#e62117!important}.student-footer-instagram{color:#c13584!important}.student-footer-privacy{font-weight:500!important}@media (hover:hover) and (pointer:fine){.student-footer-contact:hover,.student-footer-privacy:hover{color:var(--brand)!important}.student-footer-social:hover{background:var(--brand-light,#fff3e6)}}@media (width<=859px){.student-footer-links{flex-direction:column;gap:10px}.student-footer-links>.student-footer-divider{display:none}.student-footer-group{flex-wrap:wrap;justify-content:center;gap:8px 18px}}@media (width>=860px){.student-footer{z-index:9;max-width:var(--student-shell-max);flex-direction:row;justify-content:space-between;height:48px;margin:0 auto;padding:0 40px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0000000a}.student-shell-wide .student-footer{max-width:2000px}.student-shell .student-content{padding-bottom:88px}}.student-bottom-nav{max-width:var(--student-shell-max);background:var(--white);border-top:1px solid var(--gray-300);padding:8px 0 max(8px, env(safe-area-inset-bottom));margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=860px){:root{--student-shell-max:1600px}.student-shell-wide{max-width:2000px}.student-content{padding:32px 40px 60px}.student-topbar{padding:14px 40px}.student-topbar-nav{align-items:center;gap:4px;display:flex}.student-bottom-nav{display:none}}.student-topbar-nav-link{color:var(--gray-500);border-radius:999px;align-items:center;gap:7px;padding:9px 16px;font-size:.88rem;font-weight:600;transition:background .15s,color .15s;display:flex}@media (hover:hover) and (pointer:fine){.student-topbar-nav-link:hover{background:var(--gray-100);color:var(--gray-900)}}.student-topbar-nav-link.active{background:var(--brand-light);color:var(--brand-dark)}.student-nav-link{color:var(--gray-500);flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-size:.72rem;display:flex}.student-nav-icon{justify-content:center;align-items:center;display:flex}.student-nav-link.active{color:var(--brand);font-weight:700}.batch-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:18px;transition:transform .18s,box-shadow .18s}@media (hover:hover) and (pointer:fine){.batch-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}}.batch-card-title{margin:0 0 2px;font-size:1.05rem;font-weight:700}.batch-card-course{color:var(--gray-500);margin:0 0 12px;font-size:.85rem}.batch-card-meta{color:var(--gray-700);justify-content:space-between;margin-top:8px;font-size:.82rem;display:flex}.batch-card-link{color:inherit;text-decoration:none;display:block}.batch-card-row{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.dash-header{align-items:center;gap:14px;margin-bottom:20px;display:flex}.dash-avatar{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);width:52px;height:52px;color:var(--white);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.05rem;font-weight:800;display:flex;box-shadow:0 4px 14px #f57c0059}.dash-title{color:var(--gray-900);margin:0 0 2px;font-size:1.25rem;font-weight:800}.dash-subtitle{color:var(--gray-500);margin:0;font-size:.85rem}.dash-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:26px;display:grid}.dash-stat-card{background:var(--white);border:1px solid var(--gray-100);box-shadow:var(--shadow);text-align:center;border-radius:14px;padding:18px 14px}.dash-stat-icon{background:var(--brand-light);width:34px;height:34px;color:var(--brand-dark);border-radius:10px;justify-content:center;align-items:center;margin-bottom:8px;display:inline-flex}.dash-stat-value{color:var(--gray-900);letter-spacing:-.01em;margin-bottom:2px;font-size:1.4rem;font-weight:800}.dash-stat-label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:700}.dash-stat-card.highlight{background:repeating-linear-gradient(135deg, #ffffff14 0px, #ffffff14 2px, transparent 2px, transparent 14px), linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);position:relative;overflow:hidden;box-shadow:0 10px 26px #d9670052}.dash-stat-card.highlight .dash-stat-icon{color:var(--white);background:#ffffff38}.dash-stat-card.highlight .dash-stat-value,.dash-stat-card.highlight .dash-stat-label{color:var(--white)}.dash-stat-card.highlight .dash-stat-label{opacity:.85}.progress-ring{width:64px;height:64px;margin:0 auto 10px;position:relative}.progress-ring-glow{background:radial-gradient(circle,#fff6 0%,#fff0 72%);border-radius:50%;animation:2.6s ease-in-out infinite ringGlowPulse;position:absolute;inset:-8px}.progress-ring-svg{width:100%;height:100%;position:relative;transform:rotate(-90deg)}.progress-ring-track{fill:none;stroke:#ffffff47;stroke-width:6px}.progress-ring-fill{fill:none;stroke:var(--white);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset 1.1s cubic-bezier(.22,1,.36,1)}.progress-ring-value{color:var(--white);letter-spacing:-.01em;justify-content:center;align-items:center;font-size:.92rem;font-weight:800;display:flex;position:absolute;inset:0}.dash-section-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);border-bottom:1px solid var(--gray-100);margin:0 2px 14px;padding-bottom:10px;font-size:.8rem;font-weight:800}.batch-grid{grid-template-columns:repeat(auto-fit,minmax(300px,380px));justify-content:center;gap:22px;display:grid}.course-card{background:var(--white);border:1px solid var(--gray-100);box-shadow:var(--shadow);color:inherit;border-radius:18px;flex-direction:column;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;overflow:hidden}@media (hover:hover) and (pointer:fine){.course-card:hover{border-color:#0000;transform:translateY(-4px);box-shadow:0 16px 32px #14141424}}.course-card-banner{background:repeating-linear-gradient(135deg, #ffffff12 0px, #ffffff12 2px, transparent 2px, transparent 14px), linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);justify-content:center;align-items:center;height:104px;display:flex;position:relative}.course-card:nth-of-type(4n+2) .course-card-banner{background:repeating-linear-gradient(135deg, #ffffff12 0px, #ffffff12 2px, transparent 2px, transparent 14px), linear-gradient(135deg, var(--dark) 0%, #3a2a1c 100%)}.course-card:nth-of-type(4n+3) .course-card-banner{background:repeating-linear-gradient(135deg, #ffffff12 0px, #ffffff12 2px, transparent 2px, transparent 14px), linear-gradient(135deg, var(--brand-dark) 0%, var(--dark) 100%)}.course-card:nth-of-type(4n+4) .course-card-banner{background:repeating-linear-gradient(135deg, #ffffff12 0px, #ffffff12 2px, transparent 2px, transparent 14px), linear-gradient(135deg, var(--gray-900) 0%, var(--brand) 100%)}.course-card-icon-badge{width:52px;height:52px;color:var(--brand-dark);background:#ffffffeb;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 14px #0000002e}.course-card-banner .batch-status-pill{background:#fffffff2;position:absolute;top:12px;right:12px}.course-card-body{flex-direction:column;flex:1;padding:18px 20px 20px;display:flex}.course-card-code{color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;font-size:.7rem;font-weight:700}.course-card-title{color:var(--gray-900);margin:0 0 16px;font-size:1.12rem;font-weight:800;line-height:1.35}.course-card-schedule{background:var(--brand-light);color:var(--brand-dark);border-radius:8px;align-items:flex-start;gap:6px;margin:-4px 0 14px;padding:6px 10px;font-size:.76rem;font-weight:700;line-height:1.4;display:inline-flex}.course-card-schedule svg{flex-shrink:0;margin-top:2px}.batch-status-pill{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:.64rem;font-weight:800}.batch-status-pill.not-started{background:var(--gray-100);color:var(--gray-500)}.batch-status-pill.in-progress{background:var(--brand-light);color:var(--brand-dark)}.batch-status-pill.completed{color:var(--success);background:#e5f6ec}.course-card-progress-row{align-items:center;gap:10px;display:flex}.course-card-progress-row .progress-track{flex:1}.course-card-progress-value{color:var(--gray-500);text-align:right;flex-shrink:0;width:34px;font-size:.75rem;font-weight:700}.course-card-footer{border-top:1px solid var(--gray-100);justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;display:flex}.course-card-meta{color:var(--gray-500);font-size:.8rem;font-weight:600}.course-card-cta{color:var(--brand-dark);background:var(--brand-light);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:6px 12px;font-size:.78rem;font-weight:700;transition:background .15s,color .15s;display:inline-flex}@media (hover:hover) and (pointer:fine){.course-card:hover .course-card-cta{background:var(--brand);color:var(--white)}}.topic-section{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--gray-50);margin-bottom:16px;padding:18px 20px 20px;transition:box-shadow .15s,border-color .15s}.topic-section:hover{border-color:var(--gray-300)}.topic-section:last-child{margin-bottom:0}.topic-heading{color:var(--gray-900);letter-spacing:-.01em;border-left:3px solid var(--brand);margin:0;padding-left:12px;font-size:1rem;font-weight:700}.topic-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.topic-heading-actions{flex-wrap:wrap;gap:8px;display:flex}.topic-empty-hint{color:var(--gray-500);margin:14px 0 0;padding-left:12px;font-size:.82rem;font-style:italic}.topic-collapse-toggle{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;min-width:0;padding:0;display:flex}.topic-collapse-icon{color:var(--gray-400);flex-shrink:0;transition:transform .15s;display:flex}.topic-collapse-icon.is-collapsed{transform:rotate(-90deg)}.show-more-btn{border:1px dashed var(--gray-300);background:var(--white);width:100%;color:var(--gray-700);border-radius:8px;margin-top:4px;padding:8px;font-size:.8rem;font-weight:600}.show-more-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-light)}.form-hint{color:var(--gray-500);margin:6px 0 0;font-size:.78rem}.attach-modal-topic{color:var(--gray-700);margin:0 0 14px;font-size:.88rem}.attach-modal-topic strong{color:var(--gray-900)}.attach-modal-filters{gap:10px;margin-bottom:14px;display:flex}.attach-modal-filters .form-input{flex:1}.attach-modal-filters .form-select{width:auto;min-width:160px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.library-card{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;padding:18px;transition:box-shadow .18s,transform .18s,border-color .18s;display:flex}.library-card:hover{box-shadow:var(--shadow-md);border-color:var(--gray-300);transform:translateY(-2px)}.library-card-icon{background:linear-gradient(145deg, var(--brand-light), var(--brand-light-2));width:40px;height:40px;color:var(--brand-darker);border-radius:10px;justify-content:center;align-items:center;margin-bottom:12px;display:flex}.library-card-title{color:var(--gray-900);text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:.95rem;font-weight:700;overflow:hidden}.library-card-meta{color:var(--gray-500);margin:0 0 12px;font-size:.78rem}.library-card-topics{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.library-topic-chip{color:var(--brand-dark);background:var(--brand-light);border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:600}.library-card-unattached{color:var(--gray-500);margin:0 0 14px;font-size:.78rem;font-style:italic}.library-card-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.library-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.library-toolbar .search-bar{flex:1;max-width:360px;margin-bottom:0}.folder-bar{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:16px;display:flex}.folder-chip{color:var(--gray-700);background:var(--gray-50);border:1px solid var(--border-subtle);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.folder-chip:hover{border-color:var(--gray-300)}.folder-chip.active{background:var(--brand);border-color:var(--brand);color:var(--white)}.folder-chip-count{color:inherit;background:#00000014;border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:700}.folder-chip.active .folder-chip-count{background:#ffffff40}.folder-chip-group{align-items:center;gap:4px;display:inline-flex}.folder-chip-actions{gap:2px;display:inline-flex}.folder-chip-actions button{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.folder-chip-actions button:hover{color:var(--gray-900);background:var(--gray-100)}.folder-chip-new{color:var(--gray-500);background:0 0;border-style:dashed}.folder-chip-new:hover{color:var(--brand-dark);border-color:var(--brand)}.folder-chip-new-form{align-items:center;gap:6px;display:inline-flex}.folder-chip-new-form .form-input{width:160px;padding:6px 10px;font-size:.82rem}.bulk-action-bar{background:var(--brand-light);border:1px solid var(--brand);border-radius:var(--radius-lg);color:var(--gray-900);align-items:center;gap:12px;margin-bottom:16px;padding:10px 16px;font-size:.86rem;display:flex}.bulk-action-bar .form-select{width:auto;padding:6px 10px}.library-card.selectable{padding-top:34px;position:relative}.library-card-select{display:flex;position:absolute;top:12px;right:12px}.library-card-select input{cursor:pointer;width:18px;height:18px}.library-card-folder{width:fit-content;color:var(--brand-dark);background:var(--brand-light);border-radius:999px;align-items:center;gap:4px;margin:0 0 10px;padding:2px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.material-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.material-row{background:var(--white);border:1px solid var(--border-subtle);border-radius:9px;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s;display:flex}@media (hover:hover) and (pointer:fine){.material-row:hover{border-color:var(--gray-300)}}.material-row.active{background:var(--brand-light);border-color:var(--brand)}.material-row-icon{background:var(--brand-light);width:32px;height:32px;color:var(--brand-dark);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.material-row-info{flex:1;min-width:0}.material-row-title{color:var(--gray-900);text-overflow:ellipsis;white-space:nowrap;margin:0 0 2px;font-size:.88rem;font-weight:600;overflow:hidden}.material-row-meta{color:var(--gray-500);margin:0;font-size:.76rem}.material-row-actions{flex-shrink:0;gap:8px;display:flex}.material-list.grid-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:stretch;display:grid}.material-list.grid-list .material-row{flex-direction:column;align-items:flex-start;height:100%}.material-list.grid-list .material-row-info{width:100%}.material-list.grid-list .material-row-actions{flex-wrap:wrap;width:100%;margin-top:4px}.material-list.grid-list .show-more-btn{grid-column:1/-1}.material-preview-hint{color:var(--gray-500);margin:0 0 12px;font-size:.82rem}.material-preview-hint a{color:var(--brand-dark);font-weight:600}.material-preview-frame{background:var(--gray-50,#f5f5f5);border:none;border-radius:8px;width:100%;height:75vh;max-height:640px}@media (width<=640px){.material-preview-frame{height:60vh}}.material-preview-frame-full{flex:1;height:auto;min-height:0;max-height:none}.image-preview-frame-full{object-fit:contain;background:var(--gray-50,#f5f5f5);border-radius:8px;flex:1;width:100%;height:auto;min-height:0}.question-builder-list{flex-direction:column;gap:14px;margin:18px 0 10px;display:flex}.question-card{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:10px;padding:14px 16px}.question-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.question-card-number{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.question-card-remove{width:28px;height:28px;color:var(--gray-500);background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.question-card-remove:hover{background:var(--white);color:#d92d20;border-color:var(--gray-300)}.option-list{flex-direction:column;gap:8px;margin:12px 0 10px;display:flex}.option-row{align-items:center;gap:10px;display:flex}.option-row input[type=radio]{width:17px;height:17px;accent-color:var(--brand);flex-shrink:0}.option-row .form-input{flex:1}.option-row-remove{width:26px;height:26px;color:var(--gray-500);background:0 0;border:1px solid #0000;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;transition:background .15s,color .15s,border-color .15s;display:flex}.option-row-remove:hover{background:var(--white);color:#d92d20;border-color:var(--gray-300)}.content-type-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.content-type-card{border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;font-size:.85rem;font-weight:600;transition:border-color .15s,background .15s;display:flex}.content-type-card:hover:not(:disabled){border-color:var(--brand);background:var(--brand-light)}.content-type-card.selected{border-color:var(--brand);background:var(--brand-light);color:var(--brand-dark)}.content-type-card:disabled{opacity:.55;cursor:not-allowed}.content-type-icon{font-size:1.4rem;line-height:1}.content-type-note{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;font-size:.66rem;font-weight:700}.batch-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.batch-detail-title{color:var(--gray-900);margin:0 0 4px;font-size:1.3rem;font-weight:800}.batch-detail-code{color:var(--gray-500);margin:0;font-size:.85rem;font-weight:600}.batch-detail-progress{align-items:center;gap:12px;display:flex}.batch-detail-progress .progress-track{width:150px}.batch-detail-progress-label{color:var(--gray-500);white-space:nowrap;font-size:.8rem;font-weight:700}.curriculum{flex-direction:column;gap:12px;display:flex}.curriculum-topic{background:var(--white);border:1px solid var(--gray-100);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.curriculum-topic-header{text-align:left;width:100%;color:var(--gray-900);background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px;font-size:.95rem;font-weight:700;transition:color .15s;display:flex}@media (hover:hover) and (pointer:fine){.curriculum-topic-header:hover{background:var(--gray-100)}}.curriculum-topic-header:focus-visible{box-shadow:inset 0 0 0 2px var(--brand);outline:none}.curriculum-topic-heading-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.curriculum-topic-primary-line{font-weight:700;display:block}.curriculum-topic-primary-line.truncate{-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;max-width:100%;display:-webkit-box;overflow:hidden}.curriculum-topic-secondary-line{color:var(--gray-500);white-space:normal;margin-top:2px;font-size:.8rem;font-weight:500;line-height:1.4;display:block}.curriculum-topic-headline-row{align-items:baseline;gap:8px;min-width:0;display:flex}.curriculum-topic-header.open .curriculum-topic-headline-row{flex-wrap:wrap;row-gap:2px}.curriculum-topic-headline{overflow-wrap:anywhere;min-width:0;font-weight:700;display:block}.curriculum-topic-sep{color:var(--gray-300);font-weight:400}.curriculum-topic-date{color:var(--gray-500);white-space:nowrap;flex-shrink:0;font-size:.78rem;font-weight:600}.curriculum-topic-headline.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.curriculum-topic-full-name{color:var(--gray-500);white-space:normal;font-size:.8rem;font-weight:500}.curriculum-topic-full-name-block{border-top:1px dashed var(--gray-100);margin-top:6px;padding-top:6px}.curriculum-topic-meta{color:var(--gray-500);white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;font-size:.76rem;font-weight:600;display:flex}.curriculum-chevron{transition:transform .18s}.curriculum-topic-header.open .curriculum-chevron,.profile-disclosure-toggle.open .curriculum-chevron{transform:rotate(180deg)}.curriculum-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--gray-500);margin:10px 2px 4px;font-size:.68rem;font-weight:800}.curriculum-group-label:first-child{margin-top:2px}.curriculum-videos,.material-list{animation:.25s both fadeIn}.curriculum-progress{align-items:center;gap:10px;margin:-4px 6px 6px;display:flex}.curriculum-progress-track{background:var(--gray-100);border-radius:999px;flex:1;height:4px;overflow:hidden}.curriculum-progress-fill{background:var(--brand);border-radius:999px;height:100%;transition:width .3s}.curriculum-progress-text{color:var(--gray-500);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem;font-weight:700}.video-row{border:1px solid var(--gray-100);background:var(--white);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;border-radius:10px;align-items:flex-start;gap:12px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.video-row+.video-row{margin-top:6px}@media (hover:hover) and (pointer:fine){.video-row:hover{border-color:var(--brand);background:var(--brand-light)}}.video-row:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.video-row.active{border-color:var(--brand);background:var(--brand-light)}.video-row-index{background:var(--gray-100);width:26px;height:26px;color:var(--gray-700);font-variant-numeric:tabular-nums;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:.75rem;font-weight:700;display:inline-flex}.video-row.done .video-row-index{color:#1e8e3e;background:#e7f6ec}.video-row.active .video-row-index{background:var(--brand);color:var(--white)}.video-row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.video-row-title{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:.88rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.video-row.active .video-row-title{color:var(--brand-darker,var(--brand))}.video-row-meta{color:var(--gray-500);font-size:.74rem}.video-row.done .video-row-meta{color:#1e8e3e}.video-row-progress{background:var(--gray-100);border-radius:999px;height:3px;margin-top:4px;display:block;overflow:hidden}.video-row-progress>span{background:var(--brand);height:100%;display:block}.player-page-layout{flex-direction:column;gap:20px;display:flex}@media (width>=1100px){.player-page-layout{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.player-page-layout:not(:has(.player-sidebar)){grid-template-columns:minmax(0,1fr)}}.player-card,.course-hero{order:-1}.player-card{background:var(--white);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}@media (width>=1100px){.player-card,.course-hero{order:0}}.player-meta{padding:20px}.workspace-panel-header{border-bottom:1px solid var(--gray-100);align-items:center;gap:12px;padding:16px 20px;display:flex}.workspace-panel-title{min-width:0;color:var(--gray-900);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:1.05rem;font-weight:700;overflow:hidden}.workspace-panel-body{padding:28px 32px 48px}.image-carousel-counter{color:var(--gray-500);background:var(--gray-100);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:.8rem;font-weight:600}.inline-material-frame-wrap{background:var(--gray-50,#f5f5f5);width:100%;height:min(75vh,780px);position:relative}.inline-material-frame{border:none;width:100%;height:100%;position:absolute;inset:0}.inline-image-frame-wrap{background:var(--gray-50,#f5f5f5);justify-content:center;align-items:center;width:100%;min-height:min(60vh,600px);max-height:780px;padding:16px;display:flex;position:relative}.inline-image-frame{object-fit:contain;border-radius:6px;max-width:100%;max-height:min(75vh,748px)}.image-carousel-arrow{border:1px solid var(--border-subtle);width:42px;height:42px;color:var(--gray-900);cursor:pointer;background:#ffffffeb;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,border-color .15s,transform .1s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 10px #00000014}@media (hover:hover) and (pointer:fine){.image-carousel-arrow:hover:not(:disabled){background:var(--white);border-color:var(--brand);color:var(--brand-dark)}}.image-carousel-arrow:active:not(:disabled){transform:translateY(-50%)scale(.95)}.image-carousel-arrow:disabled{opacity:.35;cursor:not-allowed}.image-carousel-arrow-left{left:16px}.image-carousel-arrow-right{right:16px}.video-carousel-wrap{position:relative}.video-carousel-controls{pointer-events:none;z-index:4;padding-top:56.25%;position:absolute;top:0;left:0;right:0}.video-carousel-controls .image-carousel-arrow{pointer-events:auto}.inline-quiz-panel{padding:20px}.player-topic-chip{background:var(--brand-light);color:var(--brand-dark);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-bottom:10px;padding:4px 10px;font-size:.7rem;font-weight:800;display:inline-block}.player-title{color:var(--gray-900);margin:0 0 8px;font-size:1.3rem;font-weight:800;line-height:1.3}.player-description{color:var(--gray-700);margin:0 0 18px;font-size:.92rem;line-height:1.55}.player-progress-row{align-items:center;gap:12px;margin-bottom:18px;display:flex}.player-progress-row .progress-track{flex:1}.player-progress-label{color:var(--gray-500);white-space:nowrap;font-size:.8rem;font-weight:700}.player-sidebar{background:var(--white);box-shadow:var(--shadow);border-radius:14px;padding:16px}@media (width>=1100px){.player-sidebar{background-color:var(--white);background-image:linear-gradient(var(--white) 50%, #fff0), linear-gradient(#fff0, var(--white) 50%) 0 100%, radial-gradient(farthest-side at 50% 0, #1a1a1a1f, #1a1a1a00), radial-gradient(farthest-side at 50% 100%, #1a1a1a1f, #1a1a1a00) 0 100%;scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent;background-repeat:no-repeat;background-size:100% 36px,100% 36px,100% 12px,100% 12px;background-attachment:local,local,scroll,scroll;max-height:calc(100vh - 110px);position:sticky;top:90px;overflow-y:auto}.player-sidebar::-webkit-scrollbar{width:8px}.player-sidebar::-webkit-scrollbar-track{background:0 0}.player-sidebar::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:999px}.player-sidebar::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}}.player-sidebar-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin:2px 6px 12px;font-size:.75rem;font-weight:800}.quiz-page{max-width:720px;margin:0 auto}.quiz-card{background:var(--white);box-shadow:var(--shadow);border-radius:14px;padding:24px}.quiz-intro{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.quiz-intro-icon{background:var(--brand-light);width:56px;height:56px;color:var(--brand-dark);border-radius:16px;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.quiz-title{color:var(--gray-900);margin:0;font-size:1.35rem;font-weight:800}.quiz-description{color:var(--gray-700);max-width:480px;margin:0 0 4px;font-size:.92rem;line-height:1.55}.quiz-stat-row{gap:28px;margin:14px 0 4px;display:flex}.quiz-stat{flex-direction:column;align-items:center;display:flex}.quiz-stat-value{color:var(--gray-900);font-size:1.3rem;font-weight:800}.quiz-stat-label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600}.quiz-best-note{color:var(--gray-700);margin:6px 0 10px;font-size:.88rem}.quiz-best-note.passed{color:var(--success)}.quiz-progress-bar{color:var(--gray-500);margin-bottom:12px;font-size:.82rem;font-weight:700}.quiz-question-list{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.quiz-question{padding:20px}.quiz-question-text{color:var(--gray-900);margin:0 0 14px;font-size:.95rem;font-weight:600;line-height:1.5}.quiz-question-number{color:var(--brand-dark);font-weight:800}.quiz-text-plain{white-space:pre-wrap}.quiz-inline-code{background:var(--gray-100);color:var(--brand-darker);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.92em}.quiz-code-block{color:#d4d4d4;white-space:pre;background-color:#1e1e1e;background-image:repeating-linear-gradient(90deg,#0000 0 calc(4ch - 1px),#ffffff21 calc(4ch - 1px) 4ch);background-position:14px 0;border-radius:8px;width:fit-content;max-width:100%;margin:8px 0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem;line-height:1.5;overflow-x:auto}.quiz-code-block code{background:0 0;padding:0;font-family:inherit}.quiz-code-block .token.comment,.quiz-code-block .token.prolog,.quiz-code-block .token.doctype,.quiz-code-block .token.cdata{color:#6a9955}.quiz-code-block .token.keyword{color:#569cd6}.quiz-code-block .token.string,.quiz-code-block .token.char{color:#ce9178}.quiz-code-block .token.number,.quiz-code-block .token.boolean,.quiz-code-block .token.constant{color:#b5cea8}.quiz-code-block .token.builtin{color:#4ec9b0}.quiz-code-block .token.property,.quiz-code-block .token.variable{color:#9cdcfe}.quiz-code-block .token.operator,.quiz-code-block .token.punctuation{color:#d4d4d4}.quiz-code-block .token.tag,.quiz-code-block .token.selector{color:#569cd6}.quiz-code-block .token.attr-name{color:#9cdcfe}.quiz-option-list{flex-direction:column;gap:8px;display:flex}.quiz-option{border:1px solid var(--gray-300);color:var(--gray-900);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:11px 14px;font-size:.9rem;transition:border-color .15s,background .15s;display:flex}.quiz-option-text{min-width:0}.quiz-option.has-code{align-items:flex-start}.quiz-option.has-code input[type=radio]{margin-top:3px}@media (hover:hover) and (pointer:fine){.quiz-option:hover{border-color:var(--brand)}}.quiz-option.selected{border-color:var(--brand);background:var(--brand-light);font-weight:600}.quiz-option input[type=radio]{width:16px;height:16px;accent-color:var(--brand);flex-shrink:0}.quiz-review-line{border-radius:8px;margin:0;padding:8px 12px;font-size:.88rem;font-weight:600}.quiz-review-line.correct{color:var(--success);background:#e6f6ec}.quiz-review-line.incorrect{color:var(--danger);background:#fdecec}.quiz-result-banner{border-radius:14px;align-items:center;gap:14px;margin-bottom:18px;padding:18px 22px;display:flex}.quiz-result-banner.passed{background:#e6f6ec}.quiz-result-banner.failed{background:#fdecec}.quiz-result-icon{width:40px;height:40px;color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.quiz-result-banner.passed .quiz-result-icon{background:var(--success)}.quiz-result-banner.failed .quiz-result-icon{background:var(--danger)}.quiz-result-headline{color:var(--gray-900);margin:0 0 2px;font-size:1.05rem;font-weight:800}.quiz-result-score{color:var(--gray-700);margin:0;font-size:.85rem}.coding-panel{background:var(--white);box-shadow:var(--shadow);border-radius:14px;padding:24px}.coding-panel-header{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.coding-panel-icon{background:var(--brand-light);width:38px;height:38px;color:var(--brand-darker);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.coding-panel-title{color:var(--gray-900);margin:0 0 4px;font-size:1.2rem;font-weight:800}.coding-panel-meta{color:var(--gray-500);margin:0;font-size:.85rem}.coding-problem-statement{background:var(--gray-50);border:1px solid var(--border-subtle);color:var(--gray-900);border-radius:10px;margin-bottom:18px;padding:16px 18px;font-size:.95rem;line-height:1.6}.coding-editor-wrapper{border:1px solid var(--border-subtle);border-radius:10px;margin-bottom:16px;overflow:hidden}.coding-editor-wrapper .cm-editor{font-size:.9rem}.coding-actions{justify-content:space-between;align-items:center;display:flex}.coding-actions-right{gap:10px;display:flex}.coding-testcase-list{flex-direction:column;gap:10px;margin-top:6px;display:flex}.coding-testcase{border:1px solid var(--border-subtle);border-radius:10px;padding:12px 14px}.coding-testcase.passed{background:#f3fbf6;border-color:#1a8f4c4d}.coding-testcase.failed{background:#fdf5f5;border-color:#d6454540}.coding-testcase-header{color:var(--gray-900);align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:flex}.coding-testcase-badge{width:20px;height:20px;color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;display:flex}.coding-testcase-badge.passed{background:var(--success)}.coding-testcase-badge.failed{background:var(--danger)}.coding-testcase-detail{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:10px;display:grid}.coding-testcase-label{text-transform:uppercase;letter-spacing:.03em;color:var(--gray-500);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.coding-testcase-pre{background:var(--gray-100);white-space:pre-wrap;word-break:break-word;color:var(--gray-900);border-radius:6px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.82rem}.coding-testcase-plots{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.coding-testcase-plot{border:1px solid var(--gray-200);background:#fff;border-radius:6px;max-width:100%;display:block}.coding-testcase-error{color:var(--danger);white-space:pre-wrap;word-break:break-word;background:#fdecec;border-radius:6px;margin:10px 0 0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.8rem}.coding-submission-history{border-top:1px solid var(--border-subtle);margin-top:20px;padding-top:16px}.coding-submission-row{align-items:center;gap:10px;padding:6px 0;font-size:.85rem;display:flex}.coding-submission-time{color:var(--gray-500)}.coding-code-textarea{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem}.coding-sample-toggle{color:var(--gray-700);cursor:pointer;align-items:center;gap:8px;margin-top:10px;font-size:.85rem;display:flex}.secure-player-frame{-webkit-user-select:none;user-select:none;background:#000;border-radius:14px 14px 0 0;width:100%;padding-top:56.25%;position:relative;overflow:hidden}.secure-player.is-fullscreen .secure-player-frame{border-radius:0;height:100%;padding-top:0}.secure-player-frame iframe{pointer-events:none;border:none;width:100%;height:100%;position:absolute;inset:0}.secure-player-shield{z-index:1;cursor:pointer;background:0 0;position:absolute;inset:0}.secure-player-brand-badge{pointer-events:none;z-index:2;border-radius:8px;width:32px;height:32px;position:absolute;overflow:hidden;box-shadow:0 2px 10px #00000073}.secure-player-brand-badge-tr{top:10px;right:10px}.secure-player-brand-badge img{object-fit:cover;width:100%;height:100%;display:block}.secure-player-watermark-chip{pointer-events:none;z-index:2;background:#000000b8;border-radius:999px;align-items:center;gap:6px;padding:5px 12px 5px 6px;display:flex;position:absolute;bottom:10px;right:10px;box-shadow:0 2px 10px #00000073}.secure-player-watermark-chip img{object-fit:cover;border-radius:4px;width:18px;height:18px;display:block}.secure-player-watermark-chip span{color:var(--white);letter-spacing:.01em;white-space:nowrap;font-size:.72rem;font-weight:700}@media (width<=480px){.secure-player-watermark-chip span{display:none}.secure-player-watermark-chip{padding:6px}}.secure-player-loading{z-index:3;background:#000;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.secure-player-spinner{border:3px solid #f57c0040;border-top-color:var(--brand);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite secure-player-spin}@keyframes secure-player-spin{to{transform:rotate(360deg)}}.secure-player-endscreen{z-index:2;text-align:center;background:linear-gradient(160deg,#1a1a1a 0%,#000 100%);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex;position:absolute;inset:0}.secure-player-endscreen-logo{object-fit:cover;border-radius:12px;width:52px;height:52px;box-shadow:0 4px 16px #00000080}.secure-player-endscreen-icon{color:var(--brand);display:flex}.secure-player-endscreen-title{color:var(--white);letter-spacing:.01em;margin:0;font-size:.95rem;font-weight:700}.secure-player-center-btn{z-index:2;width:64px;height:64px;color:var(--white);cursor:pointer;background:#f57c00eb;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;transition:transform .15s,background .15s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 20px #00000059}@media (hover:hover) and (pointer:fine){.secure-player-center-btn:hover{background:var(--brand);transform:translate(-50%,-50%)scale(1.06)}}.secure-player-controls{z-index:3;opacity:0;pointer-events:none;background:linear-gradient(0deg,#000000f0 0 46px,#0000008c 62px,#0000 100%);padding:24px 14px 10px;transition:opacity .2s;position:absolute;bottom:0;left:0;right:0}.secure-player-controls.visible{opacity:1}.secure-player-controls.visible>*{pointer-events:auto}.secure-player-seek{appearance:none;background:linear-gradient(to right, var(--brand) 0%, var(--brand) var(--seek-fill,0%), #ffffff59 var(--seek-fill,0%), #ffffff59 100%);cursor:pointer;border-radius:999px;outline:none;width:100%;height:4px;margin-bottom:10px}.secure-player-seek::-webkit-slider-thumb{-webkit-appearance:none;background:var(--brand);border:2px solid var(--white);cursor:pointer;border-radius:50%;width:13px;height:13px;box-shadow:0 1px 4px #0006}.secure-player-seek::-moz-range-thumb{background:var(--brand);border:2px solid var(--white);cursor:pointer;border-radius:50%;width:13px;height:13px}.secure-player-bar{align-items:center;gap:10px;display:flex}.secure-player-icon-btn{color:var(--white);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:.95rem;line-height:1}.secure-player-time{color:var(--white);font-variant-numeric:tabular-nums;opacity:.9;font-size:.78rem}.secure-player-brand{color:#ffffff8c;letter-spacing:.04em;text-transform:uppercase;margin-left:auto;font-size:.68rem;font-weight:800}.secure-player-endscreen{padding-bottom:64px}.secure-player-endscreen .secure-player-center-btn{flex-shrink:0;position:static;transform:none}@media (hover:hover) and (pointer:fine){.secure-player-endscreen .secure-player-center-btn:hover{transform:scale(1.06)}}@media (width<=480px){.secure-player-endscreen .secure-player-center-btn{width:52px;height:52px}.secure-player-endscreen-logo{width:40px;height:40px}}.secure-player.is-fullscreen{background:#000;width:100%;height:100%}.secure-player.is-pseudo-fullscreen{z-index:10000;width:100vw;height:100dvh;position:fixed;inset:0}body.secure-player-pseudo-fs-open{overflow:hidden}body.secure-player-pseudo-fs-open .fade-in-up{animation:none;transform:none}.secure-player-buffering{z-index:2;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.secure-player-exit-fs{z-index:3;color:var(--white);cursor:pointer;opacity:0;pointer-events:none;background:#000000b8;border:none;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:.8rem;font-weight:600;transition:opacity .2s;display:inline-flex;position:absolute;top:12px;left:12px}.secure-player-exit-fs.visible{opacity:1;pointer-events:auto}.secure-player-fs-btn{background:#333;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:.78rem;font-weight:700;line-height:1;transition:background .15s;display:inline-flex}@media (hover:hover) and (pointer:fine){.secure-player-fs-btn:hover{background:var(--brand)}.secure-player-speed-btn:hover{border-color:var(--brand)}}.secure-player-btn-label{white-space:nowrap}.secure-player-speed-btn .secure-player-btn-label{opacity:.8;margin-right:5px;font-weight:600}.secure-player-speed{position:static}.secure-player-speed-btn{min-width:44px;color:var(--white);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:6px;padding:6px 10px;font-size:.75rem;font-weight:700;line-height:1.2}.secure-player-speed-btn.active{border-color:var(--brand);color:var(--brand)}.secure-player-speed-menu{z-index:5;background:#141414f5;border-radius:10px;grid-template-columns:repeat(4,64px);gap:4px;width:max-content;padding:8px;display:grid;position:absolute;bottom:52px;right:10px;box-shadow:0 8px 24px #00000073}.secure-player-speed-heading{color:#fff9;letter-spacing:.05em;text-transform:uppercase;grid-column:1/-1;margin:0 2px 2px;font-size:.66rem;font-weight:700}.secure-player-speed-option{text-align:center;color:var(--white);white-space:nowrap;cursor:pointer;background:#ffffff14;border:none;border-radius:6px;padding:6px 4px;font-size:.78rem;font-weight:600}.secure-player-speed-option.selected{background:var(--brand)}@media (hover:hover) and (pointer:fine){.secure-player-speed-option:not(.selected):hover{background:#ffffff2e}}.secure-player-speed-btn:focus,.secure-player-speed-option:focus,.secure-player-fs-btn:focus,.secure-player-exit-fs:focus,.secure-player-icon-btn:focus{outline:none}.secure-player-speed-btn:focus-visible,.secure-player-speed-option:focus-visible,.secure-player-fs-btn:focus-visible,.secure-player-exit-fs:focus-visible,.secure-player-icon-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (width<=640px){.secure-player-btn-label{display:none}.secure-player-speed-menu{grid-template-columns:repeat(4,56px)}.secure-player-fs-btn{padding:6px 8px}}@media (width<=480px){.secure-player-brand{visibility:hidden}.secure-player-bar{gap:6px}.secure-player-exit-fs span{display:none}.secure-player-exit-fs{padding:8px}}.login-shell{min-height:100vh;display:flex}.login-brand-panel{background:linear-gradient(135deg, var(--dark) 0%, #333 100%);color:var(--white);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.login-brand-panel img{object-fit:cover;border-radius:20px;width:110px;height:110px;margin-bottom:20px;box-shadow:0 8px 24px #00000059}.login-brand-panel h1{margin:0 0 6px;font-size:1.6rem}.login-brand-panel p{color:var(--brand);margin:0;font-size:1.1rem;font-weight:700}.login-form-panel{background:var(--white);flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.login-form-box{width:100%;max-width:380px}.login-form-box h2{margin:0 0 6px}.login-form-box .page-subtitle{margin-bottom:24px}.login-submit{width:100%;padding:12px;font-size:.95rem}@media (width<=760px){.login-shell{flex-direction:column}.login-brand-panel{padding:32px 20px}.login-brand-panel img{width:72px;height:72px}}.picker-list{border:1px solid var(--border-subtle);background:var(--white);border-radius:10px;max-height:220px;overflow-y:auto}.picker-row{border-bottom:1px solid var(--gray-100);cursor:pointer;align-items:center;gap:10px;padding:9px 12px;font-size:.9rem;display:flex}.picker-row:last-child{border-bottom:none}.picker-row:hover{background:var(--gray-100)}.picker-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);flex-shrink:0}.picker-row-email{color:var(--gray-500);font-size:.85em}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes progressGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes softPulse{0%,to{box-shadow:0 4px 14px #f57c0047}50%{box-shadow:0 4px 22px #f57c0080}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes liveButtonPulse{0%,to{transform:scale(1);box-shadow:0 0 #f57c0073}50%{transform:scale(1.035);box-shadow:0 0 0 9px #f57c0000}}@keyframes ringGlowPulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes liveDotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.7)}}.fade-in-up{animation:.5s cubic-bezier(.16,1,.3,1) both fadeInUp}.fade-in{animation:.35s both fadeIn}.progress-fill{transform-origin:0;animation:.7s cubic-bezier(.16,1,.3,1) progressGrow}.continue-cta{animation:2.4s ease-in-out infinite softPulse}.skeleton{background:linear-gradient(90deg, var(--gray-100) 25%, var(--gray-200) 37%, var(--gray-100) 63%);border-radius:var(--radius);background-size:400px 100%;animation:1.4s ease-in-out infinite shimmer}.skeleton-card{border-radius:18px;height:230px}.batch-grid>.course-card,.dash-stats>.dash-stat-card{animation:.5s cubic-bezier(.16,1,.3,1) both fadeInUp}.batch-grid>.course-card:first-child,.dash-stats>.dash-stat-card:first-child{animation-delay:20ms}.batch-grid>.course-card:nth-child(2),.dash-stats>.dash-stat-card:nth-child(2){animation-delay:80ms}.batch-grid>.course-card:nth-child(3),.dash-stats>.dash-stat-card:nth-child(3){animation-delay:.14s}.batch-grid>.course-card:nth-child(4){animation-delay:.2s}.batch-grid>.course-card:nth-child(5){animation-delay:.26s}.batch-grid>.course-card:nth-child(n+6){animation-delay:.32s}@media (prefers-reduced-motion:reduce){.fade-in-up,.fade-in,.progress-fill,.continue-cta,.btn-live,.live-dot,.progress-ring-glow,.skeleton,.batch-grid>.course-card,.dash-stats>.dash-stat-card,.curriculum-videos,.material-list{animation:none!important}.progress-ring-fill{transition:none}.course-card:hover,.batch-card:hover{transform:none}}.course-hero{background:var(--white);box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.course-hero-banner{min-height:96px;color:var(--white);background:repeating-linear-gradient(135deg, #ffffff12 0px, #ffffff12 2px, transparent 2px, transparent 14px), linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);align-items:center;padding:18px 24px;display:flex;position:relative}.course-hero-icon{width:48px;height:48px;color:var(--brand-dark);background:#ffffffeb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 14px #0000002e}.course-hero-banner-text{min-width:0;margin-left:14px}.course-hero-code{text-transform:uppercase;letter-spacing:.05em;opacity:.9;margin:0;font-size:.72rem;font-weight:800}.course-hero-title{text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:1.2rem;font-weight:800;overflow:hidden}.course-hero-body{padding:22px 24px 24px}.course-hero-description{color:var(--gray-700);margin:0 0 18px;font-size:.9rem;line-height:1.55}.course-hero-schedule{background:var(--brand-light);color:var(--brand-dark);border-radius:8px;align-items:center;gap:7px;margin:-4px 0 18px;padding:6px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.course-hero-progress-row{align-items:center;gap:12px;margin-bottom:20px;display:flex}.course-hero-progress-row .progress-track{flex:1}.course-hero-progress-label{color:var(--gray-500);white-space:nowrap;font-size:.8rem;font-weight:700}.course-hero-stats{border-bottom:1px solid var(--gray-100);flex-wrap:wrap;gap:10px;margin-bottom:20px;padding-bottom:20px;display:flex}.course-hero-stat-chip{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:12px;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:flex}.course-hero-stat-icon{background:var(--brand-light);width:30px;height:30px;color:var(--brand-dark);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.course-hero-stat-value{color:var(--gray-900);font-size:1.1rem;font-weight:800;line-height:1.2}.course-hero-stat-label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:700}.course-hero-actions{flex-wrap:wrap;gap:10px;display:flex}.tutorial-page-wrap{flex-direction:column;gap:14px;display:flex}.tutorial-subject-tabs{border-bottom:1px solid var(--border-subtle);background:var(--gray-100);z-index:6;align-items:center;gap:4px;min-height:46px;display:flex;position:sticky;top:90px;overflow-x:auto}.tutorial-subject-tab{white-space:nowrap;color:var(--gray-600);background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:11px 18px;font-size:.92rem;font-weight:600;transition:color .15s,border-color .15s}.tutorial-subject-tab:hover{color:var(--gray-900)}.tutorial-subject-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.tutorial-page-wrap.showing-content .tutorial-subject-tabs{display:none}@media (width>=860px){.tutorial-page-wrap.showing-content .tutorial-subject-tabs{display:flex}}.tutorial-shell{background:var(--white);box-shadow:var(--shadow);border-radius:14px;align-items:stretch;gap:0;min-height:78vh;display:flex}.tutorial-sidebar{border-right:1px solid var(--border-subtle);background:var(--gray-50);border-radius:var(--radius-lg);flex-shrink:0;width:100%;padding:22px 14px}.tutorial-sidebar-heading{color:var(--gray-500);text-transform:uppercase;letter-spacing:.06em;margin:4px 10px 14px;font-size:.72rem;font-weight:700}.tutorial-sidebar-nav{flex-direction:column;gap:3px;display:flex}.tutorial-sidebar-link{text-align:left;color:var(--gray-700);background:0 0;border:none;border-radius:8px;padding:10px 12px;font-size:.92rem;font-weight:500;transition:background .15s,color .15s}.tutorial-sidebar-link:hover{background:var(--gray-100)}.tutorial-sidebar-link.active{background:var(--brand);color:var(--white);font-weight:700}.tutorial-main{flex:1;min-width:0;padding:28px 32px 48px;display:none}.tutorial-back-link{color:var(--gray-500);background:0 0;border:none;align-items:center;gap:4px;margin-bottom:14px;padding:0;font-size:.88rem;font-weight:600;display:inline-flex}.tutorial-page-wrap.showing-content .tutorial-sidebar{display:none}.tutorial-page-wrap.showing-content .tutorial-main{display:block}.tutorial-breadcrumb{color:var(--brand);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:.76rem;font-weight:700}.tutorial-page-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;margin-bottom:22px;padding-bottom:18px;display:flex}.tutorial-page-title{color:var(--gray-900);letter-spacing:-.015em;margin:0;font-size:1.75rem;font-weight:800}.tutorial-content{color:var(--gray-900);font-size:1.02rem;line-height:1.8}.tutorial-text{max-width:44em;margin:0 0 18px}.tutorial-heading{color:var(--gray-900);letter-spacing:-.01em;margin:30px 0 12px;font-size:1.32rem;font-weight:800}.tutorial-heading:first-child{margin-top:0}.tutorial-list{max-width:44em;margin:0 0 18px;padding-left:22px}.tutorial-list li{margin-bottom:6px;line-height:1.7}.tutorial-highlight{background:var(--brand-light-2);color:var(--brand-darker);border-radius:5px;padding:.05em .4em;font-weight:600}.tutorial-highlight--blue{color:#1d4d85;background:#dbe9fb}.tutorial-highlight--green{color:#146b39;background:#dcf3e4}.tutorial-highlight--red{color:#a83636;background:#fbdede}.tutorial-reveal{opacity:0;transform:translateY(4px)}.tutorial-reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:no-preference){.tutorial-reveal{transition:opacity .5s,transform .5s}}.tutorial-callout{border:1px solid var(--border-subtle);background:var(--gray-50);border-left-width:4px;border-radius:10px;align-items:flex-start;gap:12px;max-width:44em;margin:4px 0 22px;padding:14px 16px;display:flex}.tutorial-callout-icon{flex-shrink:0;margin-top:2px}.tutorial-callout-body .tutorial-text:last-child,.tutorial-callout-body .tutorial-list:last-child{margin-bottom:0}.tutorial-callout-label{text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px;font-size:.82rem;font-weight:700}.tutorial-callout--note{border-left-color:var(--info)}.tutorial-callout--note .tutorial-callout-icon,.tutorial-callout--note .tutorial-callout-label{color:var(--info)}.tutorial-callout--tip{border-left-color:var(--success)}.tutorial-callout--tip .tutorial-callout-icon,.tutorial-callout--tip .tutorial-callout-label{color:var(--success)}.tutorial-callout--warning{border-left-color:var(--warning)}.tutorial-callout--warning .tutorial-callout-icon,.tutorial-callout--warning .tutorial-callout-label{color:var(--warning)}.tutorial-align-center,.tutorial-align-right{margin-bottom:18px}.tutorial-align-center{text-align:center}.tutorial-align-right{text-align:right}.tutorial-align-center .tutorial-text,.tutorial-align-center .tutorial-heading,.tutorial-align-right .tutorial-text,.tutorial-align-right .tutorial-heading{max-width:none}.tutorial-align-center .tutorial-image,.tutorial-align-center .tutorial-image-placeholder{margin-left:auto;margin-right:auto}.tutorial-align-right .tutorial-image,.tutorial-align-right .tutorial-image-placeholder{margin-left:auto;margin-right:0}.tutorial-table-wrap{border:1px solid var(--border-subtle);border-radius:10px;max-width:100%;margin:4px 0 22px;overflow-x:auto}.tutorial-table{border-collapse:collapse;width:100%;font-size:.95rem}.tutorial-table th,.tutorial-table td{border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top;padding:10px 14px}.tutorial-table th{background:var(--gray-50);white-space:nowrap;font-weight:700}.tutorial-table tbody tr:last-child td{border-bottom:none}.tutorial-code-block{border:1px solid var(--border-subtle);border-radius:10px;max-width:860px;margin:4px 0 22px;overflow:hidden;box-shadow:0 1px 2px #0f0f0f0a}.tutorial-code-block .cm-editor{font-size:.88rem}.tutorial-code-toolbar{background:var(--gray-100);border-top:1px solid var(--border-subtle);align-items:center;gap:8px;padding:8px 10px;display:flex}.tutorial-code-toolbar .btn svg{margin-right:2px}.tutorial-code-output{background:var(--dark);color:#e6e6e6;white-space:pre-wrap;word-break:break-word;border-top:1px solid #ffffff14;margin:0;padding:12px 14px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem}.tutorial-code-stderr{color:#ff8a8a}.tutorial-code-plot{background:var(--dark);border-top:1px solid #ffffff14;max-width:100%;margin:0;padding:12px 14px;display:block}.tutorial-image{border:1px solid var(--border-subtle);border-radius:10px;width:auto;max-width:100%;max-height:520px;margin:4px 0 22px;display:block;box-shadow:0 1px 2px #0f0f0f0a}.tutorial-image-placeholder{border:1px dashed var(--border-subtle);background:var(--gray-50);height:140px;color:var(--gray-500);border-radius:10px;justify-content:center;align-items:center;margin:4px 0 22px;font-size:.85rem;display:flex}.tutorial-image-loading{animation:1.2s ease-in-out infinite tutorial-image-pulse}@keyframes tutorial-image-pulse{0%,to{opacity:.55}50%{opacity:.9}}@media (width>=860px){.tutorial-sidebar{border-radius:var(--radius-lg) 0 0 var(--radius-lg);align-self:flex-start;width:280px;max-height:calc(100vh - 157px);position:sticky;top:137px;overflow-y:auto}.tutorial-main{display:block}.tutorial-back-link{display:none}.tutorial-page-wrap.showing-content .tutorial-sidebar{display:block}.tutorial-page-wrap.no-subject-tabs .tutorial-sidebar{max-height:calc(100vh - 110px);top:90px}}.tutorial-builder-tabs{border-bottom:1px solid var(--border-subtle);gap:4px;margin-bottom:14px;display:flex}.tutorial-builder-tab{color:var(--gray-500);background:0 0;border:none;border-bottom:2px solid #0000;margin-right:16px;padding:8px 4px 10px;font-size:.9rem;font-weight:600}.tutorial-builder-tab.active{color:var(--brand-darker);border-bottom-color:var(--brand)}.tutorial-builder-preview{border:1px solid var(--border-subtle);background:var(--gray-50);border-radius:10px;max-height:420px;padding:16px 18px;overflow-y:auto}.tutorial-order-up{transform:rotate(180deg)}.tutorial-image-manager{flex-direction:column;gap:10px;margin:-6px 0 14px;display:flex}.tutorial-image-gallery{flex-wrap:wrap;gap:10px;display:flex}.tutorial-image-thumb{border:1px solid var(--border-subtle);background:var(--gray-50);border-radius:8px;width:96px;position:relative;overflow:hidden}.tutorial-image-thumb img{object-fit:cover;width:100%;height:64px;display:block}.tutorial-image-thumb-name{color:var(--gray-600);white-space:nowrap;text-overflow:ellipsis;padding:4px 6px;font-size:.68rem;display:block;overflow:hidden}.tutorial-image-thumb-remove{width:20px;height:20px;color:var(--white);background:#0f0f0fa6;border:none;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;right:4px}.tutorial-category-add{align-items:center;gap:8px;display:flex}.tutorial-category-add .form-input{width:260px}.tutorial-subject-card{cursor:pointer}.tutorial-subject-card-unassigned{background:var(--gray-50);border-style:dashed}.tutorial-subject-card-unassigned:hover{box-shadow:none;transform:none}.tutorial-admin-back-link{color:var(--gray-500);background:0 0;border:none;align-items:center;gap:4px;margin-bottom:14px;padding:0;font-size:.88rem;font-weight:600;display:inline-flex}.tutorial-admin-back-link:hover{color:var(--brand-darker)}.tutorial-editor-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.tutorial-editor-toolbar-divider{background:var(--border-subtle);align-self:stretch;width:1px;margin:2px}.tutorial-color-swatches{align-items:center;gap:6px;padding:0 2px;display:inline-flex}.tutorial-color-swatch{border:2px solid var(--white);width:20px;height:20px;box-shadow:0 0 0 1px var(--border-subtle);cursor:pointer;border-radius:50%;padding:0}.tutorial-color-swatch:hover{box-shadow:0 0 0 1px var(--gray-500)}.tutorial-color-swatch--blue{background:var(--info)}.tutorial-color-swatch--green{background:var(--success)}.tutorial-color-swatch--red{background:var(--danger)}.prompt-content-block{background:var(--gray-100);color:var(--dark);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:60vh;margin:0;padding:16px 18px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem;line-height:1.6;overflow-y:auto}.prompt-edit-textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem;line-height:1.5}.prompt-copy-btn{align-items:center;gap:6px;display:inline-flex}.api-key-risk-notice{border-radius:var(--radius);color:var(--gray-700);background:#fff8e8;border:1px solid #f0d98c;margin-bottom:14px;padding:12px 14px;font-size:.86rem;line-height:1.55}.api-key-risk-notice p{margin:0 0 8px}.api-key-risk-notice p:last-child{margin-bottom:0}.form-checkbox-row{color:var(--gray-900);cursor:pointer;align-items:flex-start;gap:8px;margin-bottom:18px;font-size:.88rem;display:flex}.form-checkbox-row input[type=checkbox]{margin-top:2px}.legal-page{background:var(--white);min-height:100vh}.legal-header{border-bottom:1px solid #eee;padding:16px 24px}.legal-brand{color:var(--dark);align-items:center;gap:10px;font-size:1.1rem;font-weight:700;text-decoration:none;display:inline-flex}.legal-brand img{object-fit:cover;border-radius:8px;width:36px;height:36px}.legal-content{max-width:760px;color:var(--dark);margin:0 auto;padding:40px 24px 64px;line-height:1.7}.legal-content h1{margin:0 0 4px;font-size:2rem}.legal-content h2{margin:32px 0 8px;font-size:1.2rem}.legal-content a{color:var(--brand)}.legal-updated{color:#777;margin:0 0 24px}.login-legal-link{text-align:center;margin:24px 0 0;font-size:.85rem}.login-legal-link a{color:#777}.player-sidebar{border-radius:16px;padding:6px}@media (width>=1100px){.player-sidebar{max-height:calc(100vh - 190px);scroll-padding-top:8px}}.curriculum{gap:0}.curriculum-topic{box-shadow:none;border:none;border-bottom:1px solid var(--gray-100);background:0 0;border-radius:0;scroll-margin-top:76px;overflow:visible}.curriculum-topic:last-child{border-bottom:none}.curriculum-topic-header{color:var(--gray-900);border-radius:10px;gap:10px;padding:14px 12px;font-size:.92rem;font-weight:600}.curriculum-topic-header:focus{box-shadow:none;outline:none}.curriculum-topic-header:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;box-shadow:none}@media (hover:hover) and (pointer:fine){.curriculum-topic-header:hover{background:var(--gray-100)}}.curriculum-topic-header.open{color:var(--brand-darker)}.curriculum-topic-headline{font-weight:600}.curriculum-topic-header .curriculum-chevron{color:var(--gray-500);flex-shrink:0}.curriculum-topic-header.open .curriculum-chevron{color:var(--brand)}.topic-status{text-align:right;min-width:26px;color:var(--gray-500);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.74rem;font-weight:600}.topic-status-done{width:18px;min-width:0;height:18px;color:var(--white);background:#1e8e3e;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.curriculum-videos{border-top:none;padding:0 4px 12px}.curriculum .curriculum-group-label{letter-spacing:.06em;color:var(--gray-500);margin:14px 10px 4px;font-size:.7rem;font-weight:700}.curriculum .curriculum-group-label:first-child{margin-top:2px}.curriculum .material-list{gap:2px;margin-top:4px}.curriculum .material-row,.curriculum .video-row{box-shadow:none;background:0 0;border:none;border-radius:10px;gap:12px;padding:9px 10px}.curriculum .video-row+.video-row{margin-top:0}@media (hover:hover) and (pointer:fine){.curriculum .material-row:hover,.curriculum .video-row:hover{background:var(--gray-100);border-color:#0000}}.curriculum .material-row.active,.curriculum .video-row.active{background:var(--brand-light);box-shadow:none}.curriculum .material-row-icon{background:var(--gray-100);width:28px;height:28px;color:var(--gray-700);border-radius:50%}.curriculum .material-row-icon svg{width:14px;height:14px}.curriculum .material-row.active .material-row-icon{background:var(--brand);color:var(--white)}.curriculum .video-row-index{width:28px;height:28px;margin-top:0;font-size:.72rem}.curriculum .material-row-title,.curriculum .video-row-title{color:var(--gray-900);font-size:.87rem;font-weight:500}.curriculum .material-row.active .material-row-title,.curriculum .video-row.active .video-row-title{color:var(--brand-darker);font-weight:600}.curriculum .material-row-meta,.curriculum .video-row-meta{font-size:.74rem}.curriculum .badge{margin-top:3px;padding:1px 8px;font-size:.68rem}.curriculum .material-row-actions .btn{box-shadow:none;color:var(--brand-darker);background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:.8rem;font-weight:600}@media (hover:hover) and (pointer:fine){.curriculum .material-row-actions .btn:hover{background:var(--brand-light);color:var(--brand-darker)}}.curriculum .material-row-actions .btn:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;margin:-4px 0 14px;display:flex}.page-header-row .page-breadcrumb{flex:280px;margin:0}.course-progress-pill{background:var(--white);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:6px 14px;font-size:.78rem;display:inline-flex}.course-progress-pill-label{color:var(--gray-500);font-weight:600}.course-progress-pill-track{background:var(--gray-100);border-radius:999px;width:90px;height:6px;overflow:hidden}.course-progress-pill-track>span{background:var(--brand);border-radius:999px;height:100%;transition:width .4s;display:block}.course-progress-pill-value{color:var(--gray-900);font-variant-numeric:tabular-nums;font-weight:700}@media (width<=600px){.course-progress-pill-label{display:none}.course-progress-pill{padding:5px 12px}}.player-topic-chip{text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:700}@media (width<=600px){.player-title{font-size:1.2rem;line-height:1.35}}.home-hero{background:radial-gradient(120% 140% at 100% 0%, #f57c0024 0%, #f57c0000 55%), var(--white);border:1px solid var(--border-subtle);box-shadow:var(--shadow);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 32px;margin-bottom:28px;padding:24px 28px;display:flex}.home-hero-main{flex:360px;align-items:center;gap:16px;min-width:0;display:flex}.home-avatar{background:linear-gradient(135deg, #ff9a2e, var(--brand) 60%, var(--brand-darker));width:54px;height:54px;color:var(--white);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.05rem;font-weight:800;display:inline-flex;box-shadow:0 6px 16px #f57c004d}.home-hero-title{color:var(--dark);letter-spacing:-.01em;margin:0;font-size:1.45rem;font-weight:800}.home-hero-subtitle{color:var(--gray-700);margin:4px 0 0;font-size:.95rem;line-height:1.5}.home-hero-subtitle strong{color:var(--dark)}.home-hero-progress{background:var(--white);border:1px solid var(--border-subtle);border-radius:999px;align-items:center;gap:14px;padding:10px 18px 10px 10px;display:flex}.home-ring{width:64px;height:64px;position:relative}.home-ring svg{width:100%;height:100%}.home-ring-track{fill:none;stroke:var(--gray-100);stroke-width:7px}.home-ring-fill{fill:none;stroke:var(--brand);stroke-width:7px;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.16,1,.3,1)}.home-ring-value{color:var(--dark);justify-content:center;align-items:center;font-size:.95rem;font-weight:800;display:flex;position:absolute;inset:0}.home-hero-progress-text{flex-direction:column;gap:2px;display:flex}.home-hero-progress-label{color:var(--dark);font-size:.82rem;font-weight:700}.home-hero-progress-detail{color:var(--gray-500);font-variant-numeric:tabular-nums;font-size:.78rem}.home-section-header{align-items:center;gap:10px;margin:0 2px 14px;display:flex}.home-section-title{color:var(--dark);margin:0;font-size:1.1rem;font-weight:800}.home-section-count{background:var(--gray-100);color:var(--gray-700);border-radius:999px;padding:2px 9px;font-size:.75rem;font-weight:700}.home-course-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.home-course-card{background:var(--white);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);color:inherit;border-radius:16px;flex-direction:column;padding:22px 22px 18px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.home-course-card:before{content:"";background:var(--gray-300);height:4px;position:absolute;top:0;left:0;right:0}.home-course-card.in-progress:before{background:var(--brand)}.home-course-card.completed:before{background:#1e8e3e}@media (hover:hover) and (pointer:fine){.home-course-card:hover{box-shadow:var(--shadow-md);border-color:#f57c0059;transform:translateY(-3px)}.home-course-card:hover .home-course-cta{background:var(--brand);color:var(--white)}}.home-course-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.home-course-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.home-course-code{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.04em;min-width:0;color:var(--gray-500);font-size:.72rem;font-weight:700;overflow:hidden}.home-course-status{background:var(--gray-100);color:var(--gray-700);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:.72rem;font-weight:700}.home-course-status.in-progress{background:var(--brand-light);color:var(--brand-darker)}.home-course-status.completed{color:#1e8e3e;background:#e7f6ec}.home-course-title{color:var(--dark);margin:10px 0 12px;font-size:1.12rem;font-weight:800;line-height:1.3}.home-course-details{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.home-course-detail{color:var(--gray-700);align-items:flex-start;gap:8px;font-size:.84rem;line-height:1.4;display:flex}.home-course-detail svg{color:var(--brand);flex-shrink:0;margin-top:2px}.home-course-card .fee-due-note{align-self:flex-start}.home-course-progress{border-top:1px solid var(--gray-100);margin-top:auto;padding-top:14px}.home-course-progress-labels{color:var(--gray-700);justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.8rem;display:flex}.home-course-percent{color:var(--dark);font-variant-numeric:tabular-nums;font-weight:800}.home-course-track{background:var(--gray-100);border-radius:999px;height:6px;overflow:hidden}.home-course-track>span{background:var(--brand);border-radius:999px;height:100%;transition:width .6s;display:block}.home-course-card.completed .home-course-track>span{background:#1e8e3e}.home-course-cta{background:var(--brand-light);color:var(--brand-darker);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-top:16px;padding:8px 16px;font-size:.85rem;font-weight:700;transition:background .2s,color .2s;display:inline-flex}.home-course-skeleton{background:linear-gradient(90deg, var(--gray-100) 25%, #ececec 37%, var(--gray-100) 63%);background-size:400px 100%;min-height:250px;animation:1.4s ease-in-out infinite shimmer}.home-course-skeleton:before{display:none}@media (width<=600px){.home-hero{padding:20px}.home-hero-title{font-size:1.2rem}.home-avatar{width:46px;height:46px}.home-hero-progress{width:100%}}@media (prefers-reduced-motion:reduce){.home-course-card,.home-ring-fill,.home-course-track>span{transition:none}.home-course-skeleton{animation:none}}.prog-header{margin-bottom:20px}.prog-title{color:var(--dark);letter-spacing:-.01em;margin:0;font-size:1.45rem;font-weight:800}.prog-subtitle{color:var(--gray-700);margin:4px 0 0;font-size:.95rem}.prog-summary{background:var(--white);border:1px solid var(--border-subtle);box-shadow:var(--shadow);border-radius:18px;grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(0,1fr));margin-bottom:16px;display:grid;overflow:hidden}.prog-stat{border-left:1px solid var(--gray-100);flex-direction:column;justify-content:center;gap:4px;padding:20px 24px;display:flex}.prog-stat:first-child{border-left:none}.prog-stat-ring{background:radial-gradient(140% 140% at 0 0,#f57c001f 0%,#f57c0000 60%);flex-direction:row;justify-content:flex-start;align-items:center;gap:16px}.prog-stat-value{color:var(--dark);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800;line-height:1.1}.prog-stat-value span{color:var(--gray-500);font-size:.95rem;font-weight:600}.prog-stat-label{color:var(--gray-700);font-size:.82rem;font-weight:700}.prog-stat-hint{color:var(--gray-500);margin-top:2px;font-size:.76rem}.prog-skeleton{background:linear-gradient(90deg, var(--gray-100) 25%, #ececec 37%, var(--gray-100) 63%);background-size:400px 100%;min-height:108px;animation:1.4s ease-in-out infinite shimmer}.prog-goal{background:var(--brand-light);color:var(--gray-900);border:1px solid #f57c0040;border-radius:14px;align-items:center;gap:12px;margin-bottom:28px;padding:14px 18px;font-size:.9rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex}.prog-goal-icon{background:var(--brand);width:34px;height:34px;color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.prog-goal-text{flex:1;min-width:0;line-height:1.45}.prog-goal-text strong{color:var(--brand-darker)}.prog-goal-cta{color:var(--brand-darker);flex-shrink:0;align-items:center;gap:4px;font-weight:700;display:inline-flex}@media (hover:hover) and (pointer:fine){.prog-goal:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}}.prog-section-title{color:var(--dark);margin:0 2px 12px;font-size:1.1rem;font-weight:800}.prog-list{background:var(--white);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.prog-row{color:inherit;border-top:1px solid var(--gray-100);align-items:center;gap:20px;padding:18px 22px;text-decoration:none;transition:background .15s;display:flex}.prog-row:first-child{border-top:none}@media (hover:hover) and (pointer:fine){.prog-row:hover{background:#fffaf5}.prog-row:hover .prog-row-chevron{color:var(--brand);transform:translate(2px)}}.prog-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.prog-row-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.prog-row-heading{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.prog-row-title{color:var(--dark);font-size:1rem;font-weight:700}.prog-row-code{letter-spacing:.03em;color:var(--gray-500);font-size:.74rem;font-weight:600}.prog-row-bar{margin-top:8px}.prog-row.completed .home-course-track>span{background:#1e8e3e}.prog-row-meta{color:var(--gray-700);font-size:.8rem}.prog-row-side{flex-shrink:0;align-items:center;gap:10px;display:flex}.prog-row-percent{text-align:right;min-width:48px;color:var(--dark);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:800}.prog-row.completed .prog-row-percent{color:#1e8e3e}.prog-row-chevron{color:var(--gray-300);transition:color .15s,transform .15s}@media (width<=860px){.prog-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.prog-stat-ring{border-bottom:1px solid var(--gray-100);grid-column:1/-1}.prog-stat:nth-child(2){border-left:none}}@media (width<=600px){.prog-title{font-size:1.2rem}.prog-stat{justify-content:flex-start;padding:14px 12px}.prog-stat-ring{padding:16px}.prog-stat-value{font-size:1.3rem}.prog-stat-value span{font-size:.75rem;display:block}.prog-stat-label{font-size:.72rem}.prog-row{gap:12px;padding:16px}.prog-row-chevron,.prog-goal-cta{display:none}}@media (prefers-reduced-motion:reduce){.prog-skeleton{animation:none}}.picker-row input[type=radio]{width:16px;height:16px;accent-color:var(--brand);flex-shrink:0}.picker-row.is-selected{background:var(--brand-light)}.enrol-slots{color:var(--gray-700);background:var(--gray-50);border:1px solid var(--border-subtle);border-radius:var(--radius);margin:0 0 16px;padding:9px 12px;font-size:.85rem}.enrol-slots.is-full{color:var(--danger);background:#fbe9e9;border-color:#d6454540}.enrol-type-toggle{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.enrol-type-toggle button{text-align:left;border:1.5px solid var(--gray-200);border-radius:var(--radius);background:var(--white);cursor:pointer;font:inherit;color:var(--gray-900);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.enrol-type-toggle button span{color:var(--gray-500);font-size:.8rem}.enrol-type-toggle button.is-active{border-color:var(--brand);background:var(--brand-light)}.enrol-type-toggle button.is-active.is-addon{border-color:var(--info);background:#eaf1fa}.enrol-type-toggle button:disabled{opacity:.55;cursor:not-allowed}.enrol-payment-row{grid-template-columns:130px 150px 1fr auto;align-items:center;gap:8px;margin-bottom:8px;display:grid}.enrol-due-summary{border-radius:var(--radius);background:var(--gray-50);border:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:.9rem;display:flex}.enrol-due-summary .is-due{color:var(--danger);font-weight:600}.enrol-due-summary .is-clear{color:var(--success);font-weight:600}.enrol-remark-row{align-items:center;gap:8px;display:flex}.enrol-remark-row .form-input{flex:1}.validity-quick{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.validity-chip{white-space:nowrap;background:var(--gray-100);color:var(--gray-700);border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-block}.validity-chip.is-ok{color:var(--success);background:#e7f5ed}.validity-chip.is-warning{color:var(--warning);background:#fdf3dc}.validity-chip.is-expired{color:var(--danger);background:#fbe9e9}.roster-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.roster-counts{flex-wrap:wrap;gap:8px;display:flex}.roster-count{border:1px solid #0000;border-radius:999px;padding:5px 11px;font-size:.82rem}.roster-count em{opacity:.85;font-style:normal}.roster-count.is-fresh{background:var(--brand-light);color:var(--brand-darker);border-color:var(--brand-light-2)}.roster-count.is-addon{color:var(--info);background:#eaf1fa;border-color:#d3e2f4}.roster-count.is-expired{color:var(--danger);background:#fbe9e9}.roster-actions{flex-wrap:wrap;gap:8px;display:flex}.roster-quick-add{background:var(--gray-50);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:14px 16px}.roster-search{margin-bottom:14px}.roster-section{border-radius:var(--radius-lg);border:1px solid;margin-bottom:16px;padding:14px 14px 6px}.roster-section.is-fresh{border-color:var(--brand-light-2);border-left:4px solid var(--brand);background:#fffaf4}.roster-section.is-addon{border-color:#d3e2f4;border-left:4px solid var(--info);background:#f5f9fe}.roster-section-title{align-items:center;gap:8px;margin:0 0 10px;font-size:.95rem;display:flex}.roster-section-title span{color:var(--white);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.roster-section.is-fresh .roster-section-title span{background:var(--brand)}.roster-section.is-addon .roster-section-title span{background:var(--info)}.roster-section .table-wrapper{background:var(--white)}.roster-empty{padding-bottom:8px}.roster-table tr.is-expired td{opacity:.6}.roster-table tr.is-expired td:last-child{opacity:1}.roster-name{white-space:nowrap;font-weight:600}.roster-row-actions{grid-template-columns:repeat(3,auto);justify-content:end;gap:6px;display:grid}.roster-section.is-addon .roster-row-actions{grid-template-columns:repeat(2,auto)}.modal-wide:has(.roster-toolbar){max-width:1180px}.roster-tag{color:var(--info);background:#eaf1fa;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.roster-tag.is-comp{color:#5b3fb0;background:#efe9fb}.nowrap{white-space:nowrap}.payment-history{margin:0;padding:0;list-style:none}.payment-history li{border-bottom:1px solid var(--gray-200);grid-template-columns:104px minmax(0,1fr) auto auto 28px;align-items:center;gap:10px;padding:7px 0;font-size:.88rem;display:grid}.payment-history li:last-child{border-bottom:none}.payment-history li.is-negative strong{color:var(--danger)}.payment-history-date{color:var(--gray-700);white-space:nowrap}.payment-history-note{color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.payment-history-remove{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;font-size:1.1rem;line-height:1}.payment-history-remove:hover{color:var(--danger);background:#fbe9e9}.bulk-addon-result{margin:0;font-size:.95rem}.bulk-addon-skipped{max-height:220px;color:var(--gray-700);margin:0;padding-left:18px;font-size:.88rem;overflow:auto}@media (width<=640px){.enrol-type-toggle{grid-template-columns:1fr}.enrol-payment-row{grid-template-columns:1fr 1fr}.enrol-payment-row .form-input:nth-child(3){grid-column:1/-1}}.fee-reminder-bar{border-bottom:1px solid;align-items:flex-start;gap:10px;padding:10px 20px;font-size:.86rem;line-height:1.45;display:flex}.fee-reminder-bar svg{flex-shrink:0;margin-top:2px}.fee-reminder-bar a{color:inherit;white-space:nowrap;font-weight:700;text-decoration:underline}.fee-reminder-bar.is-due-soon{color:#8a5a00;background:#fff6e0;border-color:#f6dfa6}.fee-reminder-bar.is-overdue{color:#b42323;background:#fdecec;border-color:#f4c7c7}@media (width>=900px){.fee-reminder-bar{justify-content:center;padding:10px 40px}}.home-course-validity{color:var(--success);background:#e7f5ed;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin:0 0 12px;padding:4px 10px;font-size:.76rem;font-weight:700;display:inline-flex}.home-course-validity.is-warning{color:var(--warning);background:#fdf3dc}.home-course-addon{color:var(--info);background:#eaf1fa;border-radius:999px;align-self:flex-start;margin:-4px 0 10px;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-block}.home-course-status.expired{color:var(--danger);background:#fbe9e9}.home-course-card.expired{cursor:default;background:var(--gray-50)}.home-course-card.expired .home-course-title,.home-course-card.expired .home-course-details,.home-course-card.expired .home-course-progress{opacity:.6}.home-course-card.expired:hover{box-shadow:var(--shadow-sm);transform:none}.home-course-expired-note{color:var(--danger);margin-top:auto;padding-top:14px;font-size:.82rem;font-weight:600}.home-course-expired-note a{color:inherit}.access-ended{text-align:center;background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-width:520px;box-shadow:var(--shadow-sm);margin:40px auto;padding:32px 24px}.access-ended-badge{color:var(--danger);background:#fbe9e9;border-radius:999px;margin-bottom:12px;padding:4px 12px;font-size:.8rem;font-weight:700;display:inline-block}.access-ended h2{margin:0 0 8px;font-size:1.2rem}.access-ended p{color:var(--gray-700);margin:0 0 18px;line-height:1.5}.prog-row.is-expired{cursor:default;opacity:.7}.prog-row.is-expired:hover{box-shadow:none;transform:none}.payment-history-receipt{background:var(--brand-light);color:var(--brand-darker);letter-spacing:.02em;border-radius:6px;margin-right:6px;padding:1px 6px;font-size:.72rem;font-weight:700;display:inline-block}.payment-history-actions{gap:4px;display:inline-flex}.payment-history-btn{border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);font:inherit;cursor:pointer;border-radius:6px;padding:3px 8px;font-size:.74rem;font-weight:600}.payment-history-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand-darker)}.payment-history-btn:disabled{opacity:.6;cursor:wait}.payment-history-notice{border-radius:var(--radius);color:var(--success);background:#e7f5ed;margin:0 0 10px;padding:8px 12px;font-size:.85rem;font-weight:600}.fee-email-receipt{color:var(--gray-700);cursor:pointer;align-items:center;gap:8px;margin:-4px 0 12px;font-size:.88rem;display:flex}.fee-email-receipt input{width:16px;height:16px;accent-color:var(--brand)}.action-panel{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:24px;padding:20px 22px 14px}.action-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.action-panel-head h2{margin:0 0 2px;font-size:1.1rem}.action-panel-head p{color:var(--gray-500);margin:0;font-size:.88rem}.action-panel-total{color:#b42323;background:#fdecec;border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:.82rem;font-weight:700}.action-panel-total.is-clear{color:var(--success);background:#e7f5ed}.action-panel-skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--gray-100), var(--gray-50), var(--gray-100));height:120px}.action-tabs{scrollbar-width:thin;gap:6px;margin-bottom:12px;padding-bottom:2px;display:flex;overflow-x:auto}.action-tab{border:1px solid var(--gray-200);background:var(--white);color:var(--gray-700);font:inherit;cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:7px 12px;font-size:.85rem;font-weight:600;display:inline-flex}.action-tab:hover{border-color:var(--gray-300);background:var(--gray-50)}.action-tab-count{background:var(--gray-100);min-width:22px;color:var(--gray-700);text-align:center;border-radius:999px;padding:1px 7px;font-size:.75rem}.action-tab.tone-danger .action-tab-count{color:#b42323;background:#fdecec}.action-tab.tone-warning .action-tab-count{color:var(--warning);background:#fdf3dc}.action-tab.is-active{border-color:var(--dark);background:var(--dark);color:var(--white)}.action-empty{text-align:center;color:var(--success);margin:0;padding:22px 12px;font-size:.92rem;font-weight:600}.action-list{max-height:460px;margin:0;padding:0;list-style:none;overflow-y:auto}.action-row{border-top:1px solid var(--gray-100);border-left:3px solid #0000;grid-template-columns:minmax(180px,1.3fr) minmax(160px,1.2fr) minmax(150px,1fr) auto;align-items:center;gap:14px;padding:11px 12px 11px 14px;display:grid}.action-row.tone-danger{border-left-color:var(--danger)}.action-row.tone-warning{border-left-color:#e3a008}.action-row.tone-neutral{border-left-color:var(--gray-300)}.action-row:hover{background:var(--gray-50)}.action-row-who,.action-row-course,.action-row-what{flex-direction:column;gap:2px;min-width:0;display:flex}.action-row-who span,.action-row-course span,.action-row-what span{text-overflow:ellipsis;white-space:nowrap;color:var(--gray-500);font-size:.82rem;overflow:hidden}.action-row-course span:first-child{color:var(--gray-900);font-size:.9rem}.action-row.tone-danger .action-row-what strong{color:var(--danger)}.action-row-actions{justify-content:flex-end;gap:6px;display:flex}@media (width<=900px){.action-row{grid-template-columns:1fr auto}.action-row-course,.action-row-what{grid-column:1}.action-row-actions{flex-direction:column;grid-area:1/2/span 3}}.my-receipts{margin-top:16px}.my-receipts-title{margin:0 0 12px;font-size:1.05rem}.my-receipts-list{margin:0;padding:0;list-style:none}.my-receipts-list li{border-top:1px solid var(--gray-100);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.my-receipts-main{flex-direction:column;min-width:0;display:flex}.my-receipts-main span{color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.modal-wide:has(.payment-history){max-width:680px}@media (width<=560px){.payment-history li{grid-template-columns:minmax(0,1fr) auto 28px;grid-template-areas:"date amount remove""note actions actions";row-gap:6px}.payment-history-date{grid-area:date}.payment-history li>strong{text-align:right;grid-area:amount}.payment-history-note{grid-area:note}.payment-history-actions{grid-area:actions;justify-content:flex-end}.payment-history-remove{grid-area:remove}}.badge-due-today{color:var(--warning);background:#fff4d6}.badge-blocked{background:var(--danger);color:var(--white)}.fee-modal-summary{border-radius:var(--radius);background:var(--gray-50);border:1px solid var(--gray-200);grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px;padding:14px;display:grid}.fee-modal-summary>div{flex-direction:column;gap:4px;min-width:0;display:flex}.fee-modal-summary span:not(.badge){text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);font-size:.72rem;font-weight:600}.fee-modal-summary strong{white-space:nowrap;font-size:.98rem}.fee-modal-summary strong.is-due{color:var(--danger)}.fee-modal-summary strong.is-clear{color:var(--success)}.fee-modal-summary .badge{align-self:flex-start}.fee-modal-alert{border-radius:var(--radius);color:#7a5a06;background:#fff8e6;border:1px solid #f3dfa6;margin:0 0 12px;padding:10px 12px;font-size:.85rem;line-height:1.45}.fee-modal-alert.is-blocked{color:#9b2c2c;background:#fdeeee;border-color:#f2c6c6;font-weight:600}.fee-tabs{border-bottom:1px solid var(--gray-200);scrollbar-width:none;gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.fee-tab{color:var(--gray-500);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:9px 14px;font-size:.88rem;font-weight:600}.fee-tab:hover:not(:disabled){color:var(--gray-900)}.fee-tab.is-active{color:var(--brand-dark);border-bottom-color:var(--brand)}.fee-tab:disabled{cursor:not-allowed;opacity:.45}.fee-pay-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;display:grid}.fee-over-box{border-radius:var(--radius);background:#fff8e6;border:1px solid #f3dfa6;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.payment-history li.is-voided{color:var(--gray-500)}.payment-history li.is-voided strong,.payment-history li.is-voided .payment-history-date{color:var(--gray-500);text-decoration:line-through}.payment-void-row{border-radius:var(--radius);background:#fdeeee;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;padding:10px;font-size:.84rem;display:flex}.payment-void-row>span{flex:100%}.payment-void-row .form-input{flex:200px;min-width:0}.access-choice{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.access-choice-option{border:1px solid var(--gray-300);border-radius:var(--radius);cursor:pointer;background:var(--white);align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.access-choice-option input{accent-color:var(--brand);margin-top:3px}.access-choice-option span{flex-direction:column;gap:2px;display:flex}.access-choice-option strong{font-size:.88rem}.access-choice-option em{color:var(--gray-500);font-size:.76rem;font-style:normal;line-height:1.35}.access-choice-option.is-active{border-color:var(--brand);background:var(--brand-light)}.audit-list{max-height:360px;margin:0;padding:0;list-style:none;overflow-y:auto}.audit-list li{border-bottom:1px solid var(--gray-200);padding:9px 0}.audit-list li:last-child{border-bottom:none}.audit-head{flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.88rem;display:flex}.audit-head span{color:var(--gray-500);font-size:.78rem}.audit-details{color:var(--gray-700);overflow-wrap:anywhere;margin-top:3px;font-size:.8rem}@media (width<=640px){.fee-modal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fee-pay-grid,.access-choice{grid-template-columns:1fr}}.enrol-addon-note{border-radius:var(--radius);color:#24466e;background:#f5f9fe;border:1px solid #d3e2f4;margin-bottom:12px;padding:10px 12px;font-size:.84rem;line-height:1.45}.addon-link-list{flex-direction:column;gap:10px;margin:0 0 16px;padding:0;list-style:none;display:flex}.addon-link-list li{border-radius:var(--radius);border:1px solid #d3e2f4;border-left:4px solid var(--info);background:#f9fbfe;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.addon-link-main{flex-direction:column;flex:220px;gap:2px;min-width:0;display:flex}.addon-link-main span{color:var(--gray-500);font-size:.8rem}.addon-link-stats{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.addon-link-confirm{border-radius:var(--radius);background:#fdeeee;flex-wrap:wrap;flex:100%;align-items:center;gap:8px;padding:10px;font-size:.84rem;display:flex}.addon-link-confirm span{flex:240px}.addon-attach{border-top:1px solid var(--gray-200);padding-top:14px}.addon-attach-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.addon-attach-row>.form-select,.addon-attach-row>.form-input{flex:220px;min-width:0}.addon-window{color:var(--gray-500);flex-direction:column;gap:4px;font-size:.74rem;font-weight:600;display:flex}.addon-result{border-radius:var(--radius);color:#14623a;background:#e9f7ef;border:1px solid #bfe5cf;margin-top:14px;padding:12px 14px;font-size:.86rem}.addon-state{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:.74rem;font-weight:700;display:inline-block}.addon-state.is-pending{color:var(--warning);background:#fff4d6}.addon-state.is-activated{color:var(--success);background:#e6f6ec}.addon-state.is-expired{color:var(--danger);background:#fbe9e9}.roster-section-note{color:var(--info);margin-left:auto;font-size:.76rem;font-style:normal;font-weight:600}.pay-kpis,.report-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.pay-kpi,.report-kpis>div{border-radius:var(--radius-lg);background:var(--white);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.pay-kpi span,.report-kpis span{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:600}.pay-kpi strong,.report-kpis strong{font-size:1.25rem}.pay-kpi.is-danger{border-left:4px solid var(--danger)}.pay-kpi.is-danger strong,.is-bad{color:var(--danger)}.is-good{color:var(--success)}.pay-filters{margin-bottom:12px}.pay-toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.pay-toolbar>.form-input{flex:2 240px;min-width:0}.pay-toolbar>.form-select{flex:180px;min-width:0}.pay-date,.report-filters label{color:var(--gray-500);flex-direction:column;gap:4px;font-size:.74rem;font-weight:600;display:flex}.pay-table-card{padding:0;overflow:hidden}.pay-table td{vertical-align:top}.pay-table[aria-busy=true] tbody{opacity:.55}.th-sort{font:inherit;color:inherit;white-space:nowrap;background:0 0;border:none;padding:0}.th-sort:hover{color:var(--brand-dark)}.num,th.num .th-sort{text-align:right}.pay-empty{text-align:center;color:var(--gray-500);padding:32px 16px!important}.pay-note{max-width:260px;color:var(--gray-700);white-space:nowrap;text-overflow:ellipsis;background:#fffaf0;border-radius:6px;margin-top:4px;padding:2px 6px;font-size:.76rem;overflow:hidden}.pay-overdue{color:var(--danger);font-weight:700}.pay-actions{justify-content:flex-end;gap:6px;display:flex}tr.is-blocked-row td:first-child{box-shadow:inset 4px 0 0 var(--danger)}.pager{border-top:1px solid var(--gray-200);color:var(--gray-500);justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;font-size:.85rem;display:flex}.pager span{margin-right:auto}.report-card{margin-bottom:18px}.report-card h2{margin:0 0 10px;font-size:1.05rem}.report-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.report-head h2{margin:0}.report-filters{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.report-kpis strong{font-size:1.1rem}.report-table td,.report-table th{white-space:nowrap}.report-total td{background:var(--gray-50);border-top:2px solid var(--gray-300);font-weight:700}.settings-grid{gap:10px;display:grid}.settings-row{grid-template-columns:220px minmax(0,1fr);align-items:center;gap:12px;display:grid}.settings-row>span{color:var(--gray-700);font-size:.88rem;font-weight:600}.settings-row.is-default>span{color:var(--brand-dark)}.suppression-list{margin:14px 0 0;padding:0;list-style:none}.suppression-list li{border-bottom:1px solid var(--gray-200);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:.88rem;display:flex}@media (width<=860px){.pay-kpis,.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.settings-row{grid-template-columns:1fr;gap:4px}.pay-kpi strong,.report-kpis strong{font-size:1.05rem}}.home-course-status.pending{background:var(--brand);color:var(--white)}.home-course-access{color:var(--gray-500);margin-top:8px;font-size:.78rem;display:block}.home-course-activate{color:var(--gray-700);flex-direction:column;gap:10px;margin-top:auto;padding-top:14px;font-size:.86rem;line-height:1.45;display:flex}.home-course-activate .btn{align-self:flex-start}.home-course-activate-error{color:var(--danger);font-weight:600}.home-course-card.pending-addon{cursor:default;border-color:var(--brand-light-2);background:#fffcf8}.home-course-card.pending-addon:hover,.home-course-card.blocked:hover{box-shadow:var(--shadow-sm);transform:none}.home-course-card.blocked{cursor:default}.home-course-card.blocked .home-course-progress{opacity:.6}.home-course-blocked{border-radius:var(--radius);color:#7f2424;background:#fdeeee;border:1px solid #f2c6c6;flex-direction:column;gap:8px;margin-top:14px;padding:12px 14px;font-size:.84rem;line-height:1.45;display:flex}.home-course-blocked strong{color:#9b2c2c}.home-course-blocked dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:2px 0;display:grid}.home-course-blocked dt{color:#a35b5b;font-size:.72rem}.home-course-blocked dd{color:var(--gray-900);margin:0;font-weight:700}.home-course-blocked .btn{align-self:flex-start}.access-ended.is-pending .access-ended-badge{background:var(--brand-light);color:var(--brand-dark)}.access-ended.is-blocked .access-ended-badge,.access-ended.is-window .access-ended-badge{color:var(--danger);background:#fbe9e9}.google-signin-wrap{width:100%;margin-top:18px}.login-divider{text-transform:uppercase;letter-spacing:.08em;color:var(--gray-500);align-items:center;gap:12px;margin-bottom:16px;font-size:.78rem;font-weight:600;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--gray-200);flex:1;height:1px}.google-signin-button-mount{justify-content:center;width:100%;min-height:44px;display:flex;overflow:hidden}.th-sort{text-transform:inherit;letter-spacing:inherit;font-weight:inherit}.pay-table .badge{white-space:nowrap}.secure-player-stage{transform-origin:0 0;width:100%;height:100%;position:absolute;top:0;left:0}.secure-player-brand-badge-tr{transform-origin:100% 0}.secure-player-watermark-chip{transform-origin:100% 100%}.secure-player-quality-menu{grid-template-columns:repeat(3,64px)}.secure-player-quality-note{color:#ffffff8c;grid-column:1/-1;margin:2px 2px 0;font-size:.64rem;line-height:1.3}.secure-player-hd-tag{background:var(--brand);color:var(--white);vertical-align:1px;border-radius:3px;margin-left:4px;padding:0 3px;font-size:.58rem;font-weight:800}@media (width<=480px){.secure-player-brand{flex:1 1 0;min-width:0;overflow:hidden}.secure-player-speed-btn{min-width:0;padding:6px 7px}.secure-player-hd-tag{display:none}}@media (width<=360px){.secure-player-bar{gap:3px}.secure-player-time{font-size:.7rem}.secure-player-icon-btn{padding:4px}}:root{--gray-500:#666;--brand-ink:#b85400;--shell-bar-height:64px}:where(a,button,[role=button],[role=tab],summary,input[type=checkbox],input[type=radio]):focus-visible{outline:2px solid var(--brand-ink);outline-offset:2px}.admin-sidebar :where(a,button):focus-visible{outline-color:var(--brand)}.admin-sidebar{padding-top:0}.admin-sidebar-brand{height:var(--shell-bar-height);flex-shrink:0;margin-bottom:10px;padding:0 20px}.admin-sidebar-brand img{border-radius:8px;width:32px;height:32px}.admin-topbar{height:var(--shell-bar-height);box-shadow:none;padding-top:0;padding-bottom:0}.admin-nav{gap:1px;padding-bottom:8px}.admin-nav-group{color:#ffffff73;margin:14px 14px 4px;font-size:.72rem;font-weight:600}.admin-nav-link{padding:8px 14px;font-size:.9rem}.admin-nav-link.active{box-shadow:none}.admin-logout{margin:10px 20px 18px}.page-header h1{letter-spacing:-.02em;font-size:1.6rem}.stat-card{border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.stat-card:hover{box-shadow:var(--shadow-sm);transform:none}.stat-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1100px){.stat-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}@media (width<=640px){.stat-grid-4 .stat-card{padding:14px 16px}.stat-grid-4 .stat-value{font-size:1.5rem}}.badge{letter-spacing:0;font-weight:600}.data-table td:first-child{white-space:nowrap}.curriculum-group-label,.course-hero-stat-label,.dash-stat-label,.quiz-stat-label,.tutorial-sidebar-heading,.fee-modal-section-title,.fee-modal-summary span:not(.badge),.report-kpis span,.pay-kpi span{text-transform:none;letter-spacing:0}.curriculum-group-label{font-size:.78rem;font-weight:600}.fee-modal-section-title{color:var(--gray-900);font-size:.9rem}.fee-modal-summary span:not(.badge),.report-kpis span,.pay-kpi span{font-size:.8rem;font-weight:500}.home-course-code{letter-spacing:.02em}.home-course-facts{gap:7px;margin:12px 0 14px;font-size:.84rem;display:grid}.home-course-facts>div{grid-template-columns:92px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.home-course-facts dt{color:var(--gray-500);align-items:center;gap:6px;font-weight:500;display:flex}.home-course-facts dt svg{color:var(--brand);flex-shrink:0}.home-course-facts dd{color:var(--gray-900);margin:0;line-height:1.4}.home-course-days{color:#146c3a;white-space:nowrap;background:#e7f5ed;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.74rem;font-weight:600;display:inline-block}.home-course-days.is-warning{color:#8a5a00;background:#fdf3dc}.home-course-cta{color:var(--brand-ink)}.course-hero-banner{background:linear-gradient(120deg, var(--brand) 0%, var(--brand-dark) 100%)}.course-hero-code{letter-spacing:.03em}.course-hero-title{white-space:normal;line-height:1.25;overflow:visible}.course-hero-schedule{color:var(--brand-ink)}.course-hero-stat-chip{padding:8px 14px 8px 8px}.course-hero-stat-label{font-size:.8rem;font-weight:500}@media (width<=640px){.course-hero-title{font-size:1.05rem}}.admin-nav-link{padding:7px 14px}.admin-nav-group{margin:10px 14px 3px}.admin-sidebar-brand{margin-bottom:6px}.home-course-facts dd{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.home-course-days{margin-left:0}.skip-link{z-index:100;background:var(--dark);color:var(--white);border-radius:8px;padding:8px 14px;font-weight:600;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.admin-content:focus{outline:none}.table-actions{white-space:nowrap;gap:8px;display:flex}@media (width<=860px){.admin-sidebar:not(.open){box-shadow:none}}.course-cover{background:#1e1c1b;position:relative;overflow:hidden}.course-cover svg{width:100%;height:100%;display:block}.home-course-cover{height:128px;margin:-22px -22px 16px}.home-course-card:before{z-index:1}.home-course-card.expired .home-course-cover,.home-course-card.blocked .home-course-cover{filter:grayscale(.85);opacity:.75}@media (width<=640px){.home-course-cover{height:112px}}.class-timings{background:var(--brand-light);border:1px solid var(--brand-light-2);color:var(--brand-ink);border-radius:10px;align-items:center;gap:10px;margin:12px 0 2px;padding:9px 12px;display:flex}.class-timings svg{color:var(--brand);flex-shrink:0}.class-timings span{flex-direction:column;min-width:0;line-height:1.3;display:flex}.class-timings small{color:var(--brand-ink);opacity:.85;font-size:.72rem;font-weight:600}.class-timings strong{color:var(--gray-900);font-size:.92rem;font-weight:700}.class-timings.is-missing{background:var(--gray-50);border-color:var(--gray-200)}.class-timings.is-missing svg,.class-timings.is-missing small{color:var(--gray-500)}.class-timings.is-missing strong{color:var(--gray-700);font-weight:600}.class-timings.is-large{margin:0;padding:10px 14px}.class-timings.is-large strong{font-size:1rem}.course-hero-when{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;display:flex}.course-hero-when .course-hero-schedule{margin:0}.form-required{color:var(--danger)}.batch-missing-timings{color:var(--danger);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:.76rem;font-weight:600;text-decoration:underline;display:block}.trainer-back{color:var(--brand-ink);align-items:center;gap:4px;margin-bottom:10px;font-size:.85rem;font-weight:600;display:inline-flex}.trainer-timings{margin:-8px 0 16px;display:inline-flex}.trainer-tabs{margin-bottom:16px}.trainer-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:14px;display:flex}.trainer-toolbar .form-hint{margin:0}.trainer-toolbar-actions,.trainer-topic-actions,.trainer-item-actions{flex-wrap:wrap;gap:8px;display:flex}.trainer-topics{gap:14px;display:grid}.trainer-topic{padding:18px 20px}.trainer-topic-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.trainer-topic-head h2{margin:0;font-size:1.02rem}.trainer-topic-head p{color:var(--gray-500);margin:2px 0 0;font-size:.8rem}.trainer-topic-empty{margin:10px 0 0}.trainer-items{margin:12px 0 0;padding:0;list-style:none}.trainer-items li{border-top:1px solid var(--gray-200);align-items:center;gap:12px;padding:10px 0;display:flex}.trainer-item-icon{background:var(--brand-light);width:32px;height:32px;color:var(--brand-ink);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.trainer-item-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.trainer-item-main strong{overflow-wrap:anywhere;font-size:.92rem}.trainer-item-main>span{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.trainer-item-meta{color:var(--gray-500);overflow-wrap:anywhere;font-size:.76rem}.owner-tag{background:var(--gray-100);color:var(--gray-700);border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:600;display:inline-block}.owner-tag.is-mine{background:var(--brand-light);color:var(--brand-ink)}.trainer-students-head{margin-bottom:12px}.trainer-students-head p{margin:0 0 4px}@media (width<=640px){.trainer-items li{flex-wrap:wrap}.trainer-item-actions{width:100%;padding-left:44px}}.payout-form{gap:16px;max-width:760px;display:grid}.payout-section-title{margin:0 0 4px;font-size:1.02rem}.payout-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin-top:12px;display:grid}.payout-footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.payout-chips{flex-wrap:wrap;gap:4px;display:flex}.payout-view{margin:0 0 12px;display:grid}.payout-view>div{border-bottom:1px solid var(--gray-200);grid-template-columns:140px minmax(0,1fr);align-items:center;gap:10px;padding:9px 0;display:grid}.payout-view dt{color:var(--gray-500);font-size:.84rem}.payout-view dd{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:10px;margin:0;font-weight:600;display:flex}@media (width<=640px){.payout-grid{grid-template-columns:1fr}.payout-view>div{grid-template-columns:1fr;gap:2px}}.trainer-students{gap:14px;display:grid}.trainer-students-head .form-hint{margin:12px 0 0}.trainer-student-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.trainer-student-kpis>div{flex-direction:column;gap:2px;display:flex}.trainer-student-kpis strong{font-size:1.4rem}.trainer-student-kpis span{color:var(--gray-500);font-size:.8rem}.trainer-students-title{margin:0 0 6px;font-size:1rem}@media (width<=520px){.trainer-student-kpis{grid-template-columns:1fr 1fr}}.trainer-students>*,.trainer-topics>*,.payout-form>*{min-width:0}.admin-sidebar .admin-nav-link:focus-visible{outline-offset:-2px;outline:2px solid #f57c008c}.fee-tab:focus-visible{outline-offset:-3px;outline:2px solid #f57c008c}.admin-nav-link:focus:not(:focus-visible),.fee-tab:focus:not(:focus-visible){outline:none}.trainer-search{align-items:center;gap:12px;margin-bottom:18px;display:flex}.trainer-search .form-input{max-width:420px}.trainer-search .form-hint{white-space:nowrap;margin:0}.trainer-batch-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;display:grid}.trainer-batch-card{background:var(--white);border:1px solid var(--gray-200);min-width:0;box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.trainer-batch-cover{height:120px}.trainer-batch-body{flex-direction:column;flex:1;gap:10px;padding:16px 18px 18px;display:flex}.trainer-batch-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.trainer-batch-title{margin:0;font-size:1.05rem;line-height:1.35}.trainer-batch-dates{color:var(--gray-500);align-items:center;gap:6px;margin:0;font-size:.82rem;display:flex}.trainer-batch-actions{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px;display:flex}@media (width<=520px){.trainer-search{flex-direction:column;align-items:stretch}.trainer-search .form-input{max-width:none}.trainer-batch-grid{grid-template-columns:minmax(0,1fr)}}.trainer-library-select{width:auto;min-width:0;padding-top:5px;padding-bottom:5px;font-size:.82rem}.trainer-fee-kpis{border-top:1px solid var(--gray-100);margin-top:14px;padding-top:14px}.trainer-fee-kpis .is-paid{color:#2e7d32}.trainer-fee-kpis .is-due,.trainer-due{color:#c62828;font-weight:600}.secure-player-center-btn.is-paused{width:52px;height:52px;box-shadow:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;border:1px solid #ffffff59;font-size:1.1rem}.secure-player-quality-note.is-warning{color:#ffcc80}.btn-join-class{color:#fff;background:#1e1c1b;border:1px solid #1e1c1b;align-items:center;gap:8px;animation:2.2s ease-in-out infinite join-class-glow;display:inline-flex}.btn-join-class:before{content:"";background:var(--brand);border-radius:50%;width:8px;height:8px;animation:2.2s ease-in-out infinite join-class-dot}.btn-join-class:hover{color:#fff;background:#000;border-color:#000}@keyframes join-class-glow{0%,to{box-shadow:0 0 #f57c0000}50%{box-shadow:0 0 0 5px #f57c0047}}@keyframes join-class-dot{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.btn-join-class,.btn-join-class:before{animation:none}}.trainer-title-row{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.trainer-title-row h1{margin:0}.trainer-timings-row{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:16px;display:flex}.trainer-timings-row .trainer-timings{margin:0}.trainer-timings-row .btn-primary{align-items:center;gap:6px;display:inline-flex}.home-course-enrolled{background:var(--brand-light,#fff3e6);color:var(--brand-dark,#c25e00);border-radius:999px;align-self:flex-start;margin:-4px 0 10px;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-block}.home-course-addon{color:#2e7d32;background:#e8f5e9}.home-section-header-addon{margin-top:30px;margin-bottom:4px}.home-section-note{color:var(--gray-500);margin:0 2px 14px;font-size:.85rem}.trainer-topic-meta{color:var(--gray-500);font-size:.82rem}.trainer-topic-toolbar{margin-top:12px}.trainer-topic .trainer-items{margin-top:14px}.trainer-topics .topic-section{margin-bottom:0}.temp-password{background:var(--gray-100);-webkit-user-select:all;user-select:all;border-radius:6px;padding:2px 7px;font-weight:600}.temp-password-hint{margin:0 0 14px}.temp-password-notice{color:#1b5e20;background:#f1f8f1;border:1px solid #c8e6c9;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:16px;padding:12px 16px;display:flex}.secure-player-quality-menu{grid-template-columns:repeat(3,64px);min-width:220px}
