.dcm .dcm-found{display:flex;flex-direction:column;gap:2px;min-width:0}.dcm .dcm-found-name{font-weight:600;color:var(--text-primary);overflow-wrap:anywhere}.dcm .dcm-found-expiry{color:var(--text-muted)}@media (max-width: 768px){.dcm .modal-header{padding:14px 16px}.dcm .modal-body{padding:16px}.dcm .modal-footer{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.dcm .modal-footer .btn{flex:1 1 0;min-height:48px;justify-content:center}.dcm .modal-header .btn{min-width:44px;min-height:44px}.dcm .form-input,.dcm select.form-input{min-height:44px}}.ba-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:16px}.ba-head-text{flex:1 1 280px;min-width:0}.ba-head-action{flex-shrink:0}.ba-empty{padding:22px 16px;border:1px dashed var(--border-primary);border-radius:12px;text-align:center}.ba-empty-title{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.ba-empty-hint{margin:4px 0 0;font-size:13px;color:var(--text-muted)}.ba-field+.ba-field{margin-top:20px}.ba-field-hint{margin:6px 0 0;font-size:12px;line-height:1.4;color:var(--text-muted)}.ba-code-input{height:60px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:28px;font-weight:600;letter-spacing:.35em;text-indent:.35em;text-align:center;text-transform:uppercase}.ba-code-input::placeholder{color:var(--text-muted);opacity:.45}.ba-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ba-choice-option{position:relative;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1.5px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.ba-choice-option:hover{border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border-primary))}.ba-choice-option.is-selected{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-secondary))}.ba-choice-option input{position:absolute;opacity:0;pointer-events:none}.ba-choice-option:focus-within{outline:2px solid var(--accent-primary);outline-offset:2px}.ba-choice-title{font-size:14px;font-weight:700;color:var(--text-primary)}.ba-choice-option.is-selected .ba-choice-title{color:var(--accent-primary)}.ba-choice-desc{font-size:12px;line-height:1.4;color:var(--text-secondary)}.ba-error{margin:16px 0 0;padding:8px 10px;border-radius:8px;border-left:3px solid var(--accent-danger);background:color-mix(in srgb,var(--accent-danger) 10%,transparent);font-size:13px;line-height:1.4;color:var(--text-primary)}.ba-done{padding:16px 18px;border-radius:12px;border-left:4px solid var(--accent-success);background:color-mix(in srgb,var(--accent-success) 12%,transparent)}.ba-done-board{margin:0;font-size:17px;font-weight:700;color:var(--text-primary);overflow-wrap:anywhere}.ba-done-target{margin:4px 0 0;font-size:14px;color:var(--text-primary)}.ba-done-note{margin:12px 0 0;font-size:13px;line-height:1.45;color:var(--text-secondary)}@media (max-width: 768px){.ba-head-action{width:100%;min-height:44px;justify-content:center}.ba-dialog .form-input,.ba-dialog .btn{min-height:44px}.ba-dialog .sheet-footer .btn{flex:1 1 0;justify-content:center}}@media (max-width: 420px){.ba-choice{grid-template-columns:1fr}}.dev-setup{margin-bottom:20px}.dev-setup-title{margin:0 0 8px;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--text-secondary)}.dev-setup-list{list-style:none;margin:0;padding:0;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.dev-setup-list>li+li{border-top:1px solid var(--border-secondary)}.dev-setup-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 16px;border:none;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.dev-setup-row:hover,.dev-setup-row:active{background:var(--bg-tertiary)}.dev-setup-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.dev-setup-row-text{display:flex;flex-direction:column;flex:1;min-width:0}.dev-setup-row-title{font-size:15px;font-weight:600;color:var(--text-primary)}.dev-setup-row-desc{font-size:13px;color:var(--text-secondary);line-height:1.35}.dev-setup-chevron{flex-shrink:0;font-size:22px;line-height:1;color:var(--text-muted)}[dir=rtl] .dev-setup-chevron{transform:scaleX(-1)}.dev-setup-sheet .sheet-body>.card,.dev-setup-sheet .sheet-body>section.card{margin:0!important;padding:0!important;border:none;box-shadow:none;background:transparent}.dev-setup-sheet .sheet-body>.card>.card-title,.dev-setup-sheet .sheet-body>section.card>div:first-child>span[aria-hidden=true],.dev-setup-sheet .sheet-body>section.card>div:first-child h3{display:none}.dev-setup-sheet .form-input,.dev-setup-sheet .btn{min-height:44px}.dev-setup-sheet .btn{justify-content:center}@media (max-width: 768px){.devices-tools-section .devices-control-icon{display:none}.devices-tools-section .devices-control-block{padding:16px}.devices-tools-section .devices-control-label{font-size:14px}.devices-tools-section .btn,.devices-tools-section .form-input{min-height:44px}.devices-tools-section .devices-tool-btn-row .btn svg,.devices-tools-section .devices-tool-cta svg{display:none}.devices-tools-section .devices-tool-group-input,.devices-tools-section .devices-tool-custom-input{width:72px;flex:0 0 72px}.devices-tools-section .devices-tool-group-row .devices-tool-field-label{white-space:normal}}@media (max-width: 768px){.devices-table.device-table td:empty{display:none}.devices-table .actions-cell .btn{min-width:44px;min-height:44px;justify-content:center}}@media (max-width: 768px){.devices-tools-section .devices-tool-group-input,.devices-tools-section .devices-tool-custom-input{height:44px;max-height:44px}}@media (max-width: 768px){.polls-layout{gap:16px}.polls-layout>.pl-live-card{order:-1}.polls-layout .polls-card{padding:16px}.polls-layout .polls-card-header{flex-wrap:wrap;gap:12px}.polls-layout .polls-card-heading{flex:1 1 auto;min-width:0}.polls-layout .polls-card-icon{display:none}.polls-layout .polls-card-header>.btn{flex:1 1 100%;min-height:44px;justify-content:center}.polls-layout .polls-template-item{padding:14px}.polls-layout .polls-template-actions{display:flex;gap:8px;width:100%}.polls-layout .polls-template-actions .btn{min-height:44px;min-width:44px;justify-content:center}.polls-layout .polls-template-actions .btn-primary{flex:1 1 auto}.polls-layout .polls-template-actions .btn-primary svg{display:none}.polls-layout .pl-live-card>div>.btn-danger,.polls-layout .polls-empty .btn{width:100%;min-height:48px;justify-content:center}.polls-layout .polls-status-banner+div .btn{flex:1 1 100%;min-height:44px;justify-content:center}.pl-modal .modal-header{padding:14px 16px}.pl-modal .modal-header .btn{min-width:44px;min-height:44px;justify-content:center}.pl-modal .modal-body{padding:16px}.pl-modal .form-input{min-height:44px}.pl-modal .polls-option-row .btn{min-width:44px;min-height:44px;justify-content:center}.pl-modal .modal-footer{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.pl-modal .modal-footer .btn{min-height:48px;justify-content:center;white-space:normal;line-height:1.2}.pl-modal .modal-footer .btn-primary{grid-column:1 / -1;order:-1}}@media (max-width: 768px){.pl-modal .modal-footer .btn:not(.btn-primary):not(.btn-secondary){border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-primary)}}.qz-page{min-width:0}.qz-tone-ok{--qz-tone: var(--accent-success)}.qz-tone-partial{--qz-tone: color-mix(in srgb, var(--accent-warning) 80%, var(--text-primary))}.qz-tone-bad{--qz-tone: var(--accent-danger)}.qz-tone-none{--qz-tone: var(--text-muted)}.qz-muted{color:var(--text-muted)}.qz-empty{margin:0;color:var(--text-muted);font-size:14px}.qz-error{color:var(--accent-danger)}.qz-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.qz-ai-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none}.qz-section+.qz-section,.qz-live-card+.qz-section{margin-top:24px}.qz-section .card-title{margin-bottom:4px}.qz-section>.card-title+:not(.qz-section-sub){margin-top:14px}.qz-section-sub{margin:0 0 14px}.qz-more-btn{grid-column:1 / -1;justify-self:center;display:flex;margin:14px auto 0;padding:8px 24px;border-radius:20px}.qz-chevron{flex:none;width:8px;height:8px;margin-inline:2px 4px;border-inline-end:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(-45deg);transition:transform .15s ease}[dir=rtl] .qz-chevron{transform:rotate(45deg)}.qz-chevron.is-down,[dir=rtl] .qz-chevron.is-down{transform:rotate(45deg) translate(-2px,-2px)}.qz-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.5;white-space:nowrap}.qz-chip--live{background:color-mix(in srgb,var(--accent-success) 16%,transparent);color:var(--accent-success)}.qz-chip--ai{align-self:flex-start;background:color-mix(in srgb,var(--accent-purple) 16%,transparent);color:var(--accent-purple)}.qz-quiz-open{display:block;flex:1;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}.qz-quiz-open .quiz-title{overflow-wrap:anywhere}.qz-quiz-open .quiz-meta{min-width:0}.qz-quiz-desc{min-width:0;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qz-quiz-open:focus-visible{outline:2px solid var(--accent-primary);outline-offset:4px;border-radius:6px}.qz-start-btn{padding:6px 16px;border-radius:20px}.quiz-actions{gap:10px}.quiz-actions .btn-group{flex-wrap:wrap;justify-content:flex-end}.qz-live-card{border:1px solid color-mix(in srgb,var(--accent-success) 40%,var(--border-primary));margin-bottom:24px}.qz-live-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}.qz-live-heading{display:flex;align-items:center;gap:10px;min-width:0}.qz-live-heading .card-title{margin:0;overflow-wrap:anywhere}.qz-live-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--accent-success);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-success) 22%,transparent)}.qz-live-actions{display:flex;flex-wrap:wrap;gap:8px}.qz-live-summary{margin:8px 0 14px;color:var(--text-secondary);font-size:13px}.qz-result-list{display:flex;flex-direction:column;gap:8px}.qz-result{border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}.qz-result.is-open{border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border-primary))}.qz-result-head{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px 12px;border:0;background:none;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.qz-result-head:hover{background:var(--bg-tertiary)}.qz-result-head:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.qz-result-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.qz-result-name{display:flex;align-items:baseline;gap:8px;min-width:0;font-size:15px;font-weight:600}.qz-result-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qz-result-team{flex:none;color:var(--accent-primary);font-size:12px;font-weight:600}.qz-result-sub{color:var(--text-secondary);font-size:12.5px}.qz-result-score{flex:none;color:var(--qz-tone);font-variant-numeric:tabular-nums;white-space:nowrap}.qz-result-score strong{font-size:18px;font-weight:750}.qz-result-score span{margin-inline-start:1px;color:var(--text-muted);font-size:13px}.qz-result-bar{position:absolute;inset-inline:14px;bottom:0;height:3px;border-radius:2px;background:var(--bg-tertiary);overflow:hidden}.qz-result-bar>span{display:block;height:100%;background:var(--qz-tone);opacity:.85}.qz-result-body{padding:4px 14px 14px;border-top:1px solid var(--border-secondary);background:var(--bg-primary)}.qz-answers{margin:0;padding:0;list-style:none}.qz-answer{margin-top:12px;padding:2px 0;padding-inline-start:12px;border-inline-start:3px solid var(--qz-tone)}.qz-answer-q{display:flex;gap:8px;margin-bottom:8px;font-size:14px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}.qz-answer-n{flex:none;color:var(--text-muted);font-weight:700}.qz-answer-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:0;font-size:13px}.qz-answer-grid dt{color:var(--text-muted)}.qz-answer-grid dd{margin:0;color:var(--text-primary);overflow-wrap:anywhere}.qz-answer-result{display:flex;gap:10px;margin-top:6px;font-size:12.5px}.qz-answer-verdict{color:var(--qz-tone);font-weight:700}.qz-past-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:10px;margin:14px 0 0;padding:0;list-style:none}.qz-past-row{display:flex;align-items:center;gap:14px;width:100%;height:100%;min-height:64px;padding:12px 14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font:inherit;text-align:start;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.qz-past-row:hover{border-color:color-mix(in srgb,var(--accent-primary) 50%,var(--border-primary));box-shadow:var(--shadow-md)}.qz-past-row.is-active{border-color:var(--accent-primary)}.qz-past-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.qz-past-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.qz-past-title{display:-webkit-box;overflow:hidden;font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.qz-past-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;color:var(--text-secondary);font-size:12.5px}.qz-past-meta .qz-chip{margin-inline-end:8px}.qz-past-meta-item+.qz-past-meta-item:before{content:"·";margin-inline:6px;color:var(--text-muted)}.qz-past-stat{display:flex;flex:none;flex-direction:column;align-items:center;min-width:52px;line-height:1.15}.qz-past-stat strong{font-size:20px;font-weight:750;font-variant-numeric:tabular-nums}.qz-past-stat span{color:var(--text-muted);font-size:11px}.qz-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}.qz-summary>div{padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-tertiary)}.qz-summary dt{color:var(--text-secondary);font-size:12px}.qz-summary dd{margin:2px 0 0;color:var(--text-primary);font-size:20px;font-weight:750;font-variant-numeric:tabular-nums}.qz-summary dd span{margin-inline-start:2px;color:var(--text-muted);font-size:13px;font-weight:600}.qz-seg{position:sticky;top:-14px;z-index:2;display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;margin:0 0 12px;padding:4px;border-radius:12px;background:var(--bg-tertiary);box-shadow:0 0 0 6px var(--bg-secondary)}.qz-seg button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:6px 10px;border:0;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.qz-seg button.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-md)}.qz-seg-count{min-width:22px;padding:0 7px;border-radius:999px;background:var(--bg-hover);color:var(--text-primary);font-size:12px;line-height:20px;font-variant-numeric:tabular-nums}.qz-seg-count.is-attention{background:var(--accent-warning);color:#1f1500}.qz-grading{display:flex;flex-direction:column;gap:10px}.qz-grading-hint{margin:0;color:var(--text-secondary);font-size:13px}.qz-grading-error{margin:0;color:var(--accent-danger);font-size:13px}.qz-grade-card{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary)}.qz-grade-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;font-size:12.5px}.qz-grade-name{color:var(--text-primary);font-size:15px;font-weight:650}.qz-grade-question{margin:0;color:var(--text-secondary);font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}.qz-grade-label{display:block;margin-bottom:2px;color:var(--text-muted);font-size:11.5px;font-weight:600}.qz-grade-answer,.qz-grade-expected{padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;line-height:1.45;overflow-wrap:anywhere}.qz-grade-answer{background:var(--bg-tertiary);color:var(--text-primary)}.qz-grade-expected{border:1px dashed var(--border-primary);color:var(--text-secondary);font-size:13px}.qz-grade-ai{margin:0;color:var(--text-muted);font-size:12.5px}.qz-grade-form{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px 12px;margin-top:4px}.qz-grade-form .qz-grade-label{margin:0;font-size:13px;color:var(--text-secondary)}.qz-grade-input{display:flex;align-items:center;gap:6px;font-size:13px}.qz-grade-input .form-input{width:76px;min-height:40px;text-align:center;font-variant-numeric:tabular-nums}.qz-grade-form .btn{justify-self:end}.qz-preview-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}.qz-preview-q{padding:12px 14px;border:1px solid var(--border-primary);border-radius:var(--radius-md)}.qz-preview-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:12px}.qz-preview-text{color:var(--text-primary);font-size:14.5px;font-weight:500;line-height:1.45;overflow-wrap:anywhere}.qz-preview-options{display:flex;flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none}.qz-preview-options li{display:flex;gap:10px;align-items:baseline;padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);font-size:13.5px;overflow-wrap:anywhere}.qz-preview-options li.is-correct{background:color-mix(in srgb,var(--accent-success) 16%,var(--bg-secondary));color:var(--text-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-success) 45%,transparent)}.qz-preview-letter{flex:none;color:var(--text-muted);font-weight:700}.qz-preview-options li.is-correct .qz-preview-letter{color:var(--accent-success)}.qz-preview-answer{margin-top:8px;color:var(--text-secondary);font-size:13.5px;overflow-wrap:anywhere}.qz-preview-answer strong{color:var(--accent-success)}.qz-stats-wrap{margin:0 -4px;overflow-x:auto}.qz-stats-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.qz-stats-table thead th{padding:8px;border-bottom:1px solid var(--border-primary);color:var(--text-muted);font-size:11.5px;font-weight:600;line-height:1.25;text-align:center;vertical-align:bottom}.qz-stats-table thead th:first-child{text-align:start}.qz-stats-table tbody tr+tr{border-top:1px solid var(--border-secondary)}.qz-stats-table tbody th,.qz-stats-table td{padding:8px}.qz-stats-table tbody th{font-weight:inherit;text-align:start}.qz-stats-table td{color:var(--text-secondary);font-size:14px;font-weight:600;text-align:center}.qz-stat-who{display:flex;align-items:center;gap:10px;min-width:0}.qz-stat-avatar{display:flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;overflow:hidden;border-radius:50%;background:var(--bg-tertiary);color:var(--accent-primary);font-size:13px;font-weight:650}.qz-stat-name{min-width:0;color:var(--text-primary);font-size:14px;font-weight:600;overflow-wrap:anywhere}.qz-stats-table td.qz-stat-acc{color:var(--qz-tone);font-size:15px;font-weight:750}@media (max-width: 768px){.qz-page .card{padding:16px}.qz-section+.qz-section,.qz-live-card+.qz-section{margin-top:16px}.qz-actions{gap:8px;margin-bottom:16px}.qz-actions>.btn{flex:1 1 auto;min-height:44px}.qz-actions-note{flex:1 1 100%}.quizzes-grid{gap:10px!important;margin-top:12px!important}.quiz-card{padding:14px!important}.quiz-card:hover{transform:none!important}.quiz-title{font-size:15px!important}.quiz-meta{margin-bottom:12px!important}.quiz-actions{padding-top:12px!important}.quiz-actions .btn{min-height:44px}.qz-icon-btn{min-width:44px}.qz-live-actions{width:100%}.qz-live-actions .btn{flex:1 1 auto;min-height:44px}.qz-past-list{gap:8px;margin-top:12px}.qz-past-row{gap:10px;padding:12px}.qz-past-title{font-size:14.5px}.qz-past-stat{min-width:44px}.qz-more-btn{width:100%;min-height:44px}.qz-summary{gap:6px}.qz-summary>div{padding:8px 10px}.qz-summary dd{font-size:18px}.qz-seg{top:-14px}.qz-seg button{min-height:44px}.qz-grade-form{grid-template-columns:auto 1fr}.qz-grade-form .btn{grid-column:1 / -1;justify-self:stretch;min-height:44px}.qz-grade-input .form-input{min-height:44px;font-size:16px}.qz-stats-wrap{margin:0 -8px}.qz-stats-table thead th{padding:6px 4px;font-size:10.5px}.qz-stats-table tbody th,.qz-stats-table td{padding:8px 4px}.qz-stats-table tbody th{padding-inline-start:8px}.qz-stats-table td{font-size:13px}.qz-stats-table td.qz-stat-acc{font-size:14px}.qz-stat-avatar{display:none}.qz-stat-name{font-size:13.5px;line-height:1.3}}[dir=rtl] .qz-chevron.is-down{transform:rotate(-45deg) translate(2px,-2px)}.qz-answer-q>span:last-child,.qz-answer-grid dd,.qz-preview-text,.qz-preview-options li>span:last-child,.qz-grade-question,.qz-grade-answer>span:last-child,.qz-grade-expected>span:last-child{unicode-bidi:plaintext}@media (max-width: 768px){.quiz-editor-header{padding:14px 16px!important}.quiz-editor-body{padding:12px 12px 20px!important}.quiz-editor-section{padding:14px!important}.quiz-question-sidebar{padding:12px!important}.quiz-question-editor{padding:14px 12px 18px!important}.quiz-editor-footer{padding:10px 16px!important}.quiz-editor-footer .btn{min-height:44px}.qz-editor-topic-row{flex-direction:column;gap:10px!important}.qz-editor-option input[type=radio]{width:22px!important;height:22px!important;flex:none}.qz-editor-option .btn,.quiz-question-editor-header .btn{min-width:40px;min-height:40px}}@media (max-width: 768px){.asg-top-actions{gap:8px!important;margin-bottom:16px!important}.asg-top-actions .btn{flex:1 1 auto;min-height:44px;justify-content:center}.assignments-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}.assignment-card{padding:16px!important}.assignment-card:hover{transform:none!important}.assignment-footer{flex-wrap:wrap;gap:10px;margin-top:16px!important;padding-top:12px!important}.assignment-submission-count{flex:1 1 100%}.assignment-actions{flex:1 1 100%;gap:8px!important}.assignment-actions .btn{min-height:44px;min-width:44px;justify-content:center}.assignment-actions .btn-primary,.assignment-actions .btn-danger{flex:1 1 auto}.submissions-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}.asg-sub-list{position:static!important;max-height:none!important;overflow:visible!important;padding:16px 12px!important}.asg-sub-list .student-btn{min-height:56px;justify-content:center}.asg-sub-list .student-btn:hover:not(.active){transform:none}.asg-sub-sheet .submission-detail-title{display:none}.asg-sub-sheet .submission-detail-header{margin-bottom:16px;padding-bottom:14px}.asg-sub-sheet .question-card{padding:16px}.asg-sub-sheet .form-input,.asg-sub-sheet .btn-primary{min-height:44px}.asg-sub-sheet .sheet-footer .btn{flex:1 1 0}}:root{--th-weak-bg: #FFD6D6;--th-weak-fg: #b31b25;--th-improving-bg: #FFE8CC;--th-improving-fg: #9A5B00;--th-good-bg: #D5F0DD;--th-good-fg: #1B5E20;--th-none-bg: var(--bg-tertiary);--th-none-fg: var(--text-muted);--th-pending-bg: color-mix(in srgb, var(--accent-primary) 14%, var(--bg-secondary));--th-pending-fg: var(--accent-primary);--th-line: var(--border-primary)}[data-theme=dark]{--th-weak-bg: color-mix(in srgb, #f87171 26%, #1E293B);--th-weak-fg: #fca5a5;--th-improving-bg: color-mix(in srgb, #fbbf24 22%, #1E293B);--th-improving-fg: #fcd34d;--th-good-bg: color-mix(in srgb, #4ade80 20%, #1E293B);--th-good-fg: #86efac;--th-none-bg: #263449;--th-none-fg: #7d8ba1;--th-line: #334155}.th-page{min-width:0}.th-muted{margin:0;color:var(--text-muted);font-size:14px}.th-filters{margin-bottom:16px;padding:16px}.th-filters-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,260px));gap:12px 16px}.th-field{display:flex;min-width:0;flex-direction:column;gap:6px}.th-field-label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-secondary);font-size:12px;font-weight:600}.th-field .form-input{min-height:42px;background:var(--bg-tertiary)}.th-grade{padding:1px 8px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:700;white-space:nowrap}.th-filter-error{margin:12px 0 0;color:var(--accent-danger);font-size:13px}.th-views{display:inline-grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;max-width:100%;margin:0 0 16px;padding:4px;border-radius:12px;background:var(--bg-tertiary)}.th-views button,.th-sort button{min-height:38px;padding:6px 16px;border:0;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}.th-views button.is-active,.th-sort button.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-md)}.th-views button:focus-visible,.th-sort button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.th-sort{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--bg-tertiary)}.th-sort button{min-height:32px;padding:4px 12px;font-size:13px}.th-state{padding:40px 20px;color:var(--text-muted);text-align:center}.th-state.is-error{color:var(--accent-danger)}.th-card{min-width:0;overflow:hidden;border:1px solid var(--border-primary);border-radius:16px;background:var(--bg-secondary);box-shadow:var(--shadow-soft)}.th-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;padding:16px 18px;border-bottom:1px solid var(--th-line)}.th-card-title{margin:0;color:var(--text-primary);font-size:15px;font-weight:700}.th-card-meta{margin:4px 0 0;color:var(--text-muted);font-size:12px}.th-card-hint{display:none}.th-card-legend{padding:10px 18px 0}.th-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}.th-legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12px;white-space:nowrap}.th-legend-swatch{flex:none;width:14px;height:14px;border:1.5px solid var(--heat-fg);border-radius:4px;background:var(--heat-bg)}.th-chevron{flex:none;width:8px;height:8px;margin-inline:2px 4px;border-inline-end:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(-45deg)}[dir=rtl] .th-chevron{transform:rotate(45deg)}.th-matrix-card{--th-unit-h: 32px;--th-student-w: 220px;--th-col-w: 132px}.th-matrix-scroll{max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);overflow:auto;scrollbar-color:var(--border-primary) transparent;scrollbar-width:thin}.th-matrix-scroll:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.th-matrix{width:max-content;min-width:100%;border-spacing:0;border-collapse:separate}.th-matrix th,.th-matrix td{border-inline-end:1px solid var(--th-line);border-bottom:1px solid var(--th-line)}.th-matrix tbody tr:last-child th,.th-matrix tbody tr:last-child td{border-bottom:0}.th-corner,.th-unit-head,.th-topic-head{position:sticky;background:var(--bg-secondary)}.th-corner{top:0;inset-inline-start:0;z-index:6;width:var(--th-student-w);min-width:var(--th-student-w);max-width:var(--th-student-w);padding:12px 16px;color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.05em;text-align:start;text-transform:uppercase;vertical-align:bottom}.th-unit-head{top:0;z-index:4;height:var(--th-unit-h);padding:0 8px;background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-secondary));text-align:center;vertical-align:middle}.th-unit-head.is-empty{background:var(--bg-secondary)}.th-unit-label{display:block;overflow:hidden;color:var(--accent-primary);font-size:10.5px;font-weight:800;letter-spacing:.04em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.th-unit-head.is-empty .th-unit-label{color:var(--text-muted);font-weight:600;text-transform:none}.th-topic-head{top:var(--th-unit-h);z-index:3;width:var(--th-col-w);min-width:var(--th-col-w);max-width:var(--th-col-w);padding:0;vertical-align:bottom;box-shadow:0 1px 0 var(--th-line)}.th-topic-btn{display:block;width:100%;height:100%;min-height:64px;padding:10px;border:0;background:none;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.th-topic-btn:hover{background:var(--bg-tertiary)}.th-topic-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.th-topic-label{display:-webkit-box;overflow:hidden;font-size:11.5px;font-weight:650;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:3}.th-matrix .th-group-end{border-inline-end:2px solid color-mix(in srgb,var(--accent-primary) 40%,var(--th-line))}.th-matrix tbody tr:nth-child(2n){background:color-mix(in srgb,var(--bg-tertiary) 40%,transparent)}.th-student{position:sticky;inset-inline-start:0;z-index:2;width:var(--th-student-w);min-width:var(--th-student-w);max-width:var(--th-student-w);padding:0;background:var(--bg-secondary);text-align:start}.th-matrix tbody tr:nth-child(2n) .th-student{background:color-mix(in srgb,var(--bg-tertiary) 40%,var(--bg-secondary))}.th-student-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:8px 14px;border:0;background:none;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.th-student-btn:hover{background:var(--bg-tertiary)}.th-student-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.th-avatar{display:inline-grid;flex:none;width:32px;height:32px;overflow:hidden;place-items:center;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:750}.th-student-name{min-width:0;overflow:hidden;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.th-cell{padding:6px;text-align:center}.th-cell-wrap{position:relative}.th-cell-btn{display:flex;width:100%;min-height:46px;flex-direction:column;align-items:center;justify-content:center;padding:4px;border:1px solid color-mix(in srgb,var(--heat-fg) 25%,transparent);border-radius:9px;background:var(--heat-bg);color:var(--heat-fg);font:inherit;cursor:pointer;transition:box-shadow .14s ease,border-color .14s ease}.th-cell-btn:hover{border-color:color-mix(in srgb,var(--heat-fg) 60%,transparent);box-shadow:0 4px 12px color-mix(in srgb,var(--heat-fg) 18%,transparent)}.th-cell-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--heat-fg) 45%,transparent);outline-offset:1px}.th-cell-status{font-size:13px;font-weight:800;line-height:1.15}.th-cell-ratio{margin-top:2px;font-size:10px;font-weight:650;opacity:.85;font-variant-numeric:tabular-nums}.th-practice-badge{position:absolute;top:-6px;inset-inline-end:-4px;z-index:1;display:grid;min-width:18px;height:18px;padding:0 4px;place-items:center;border:1.5px solid var(--bg-secondary);border-radius:999px;background:var(--badge-bg);color:var(--badge-fg);font-size:11px;font-weight:800;line-height:1}.th-practice-badge.is-inline{position:static;display:inline-grid;margin-inline-end:2px;border-color:transparent}.th-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:10px;margin:0;padding:14px 18px 18px;list-style:none}.th-row{display:flex;flex-direction:column;gap:10px;width:100%;height:100%;padding:12px 14px;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font:inherit;text-align:start;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.th-row:hover{border-color:color-mix(in srgb,var(--accent-primary) 50%,var(--border-primary));box-shadow:var(--shadow-md)}.th-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.th-row-top{display:flex;align-items:center;gap:10px;width:100%}.th-row-title{flex:1;min-width:0;font-size:14.5px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.th-counts{display:flex;flex-wrap:wrap;gap:6px}.th-count{display:inline-flex;align-items:baseline;gap:4px;padding:2px 9px;border-radius:999px;background:var(--heat-bg);color:var(--heat-fg);font-size:12px;font-weight:600;white-space:nowrap}.th-count strong{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.th-count.is-zero{background:var(--bg-tertiary);color:var(--text-muted)}.th-strip{display:flex;gap:5px;width:100%}.th-strip-group{display:flex;flex-basis:0;gap:2px;min-width:0}.th-strip-group>span{flex:1 1 0;min-width:3px;height:12px;border-radius:3px;background:color-mix(in srgb,var(--heat-fg) 72%,var(--heat-bg))}.th-strip-group>span[style*=none]{background:var(--th-none-bg);box-shadow:inset 0 0 0 1px var(--th-line)}.th-dist{display:flex;gap:2px;width:100%;height:10px;overflow:hidden;border-radius:5px}.th-dist>span{min-width:4px;background:color-mix(in srgb,var(--heat-fg) 72%,var(--heat-bg))}.th-dist>span[style*=none]{background:var(--th-none-bg);box-shadow:inset 0 0 0 1px var(--th-line)}.th-topic-groups{padding:4px 0 6px}.th-topic-group>.th-group-title{padding:14px 18px 0}.th-topic-group>.th-list{padding-top:8px;padding-bottom:6px}.th-topic-item{display:flex;flex-direction:column;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary)}.th-topic-item.is-highlighted{border-color:color-mix(in srgb,var(--th-weak-fg) 55%,var(--border-primary));background:color-mix(in srgb,var(--th-weak-bg) 30%,var(--bg-secondary))}.th-row--topic{border:0;background:transparent}.th-row--topic:hover{box-shadow:none}.th-alert{color:var(--th-weak-fg);font-size:12px;font-weight:700}.th-topic-stats{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;width:100%}.th-topic-acc{color:var(--text-secondary);font-size:12px}.th-topic-acc strong{color:var(--heat-fg, var(--text-primary));font-weight:750;font-variant-numeric:tabular-nums}.th-sep{margin-inline:6px;color:var(--text-muted)}.th-topic-actions{padding:0 14px 14px}.th-group-title{margin:0 0 8px;color:var(--text-secondary);font-size:11.5px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.th-group-title--status{display:flex;align-items:center;gap:8px;color:var(--text-primary);letter-spacing:.02em}.th-group-count{color:var(--text-muted);font-weight:700}.th-sheet-group{margin-top:18px}.th-sheet .th-counts+.th-sheet-group,.th-sheet .th-dist+.th-sheet-group{margin-top:16px}.th-sheet-list{margin:0;padding:0;overflow:hidden;border:1px solid var(--border-primary);border-radius:12px;list-style:none}.th-sheet-list>li+li{border-top:1px solid var(--th-line)}.th-sheet-row{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 12px;border:0;background:none;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.th-sheet-row:hover{background:var(--bg-tertiary)}.th-sheet-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.th-sheet-row-title{flex:1;min-width:0;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.th-sheet-row-side{display:flex;flex:none;align-items:center;gap:8px}.th-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--heat-bg);color:var(--heat-fg);font-size:12px;font-weight:750;white-space:nowrap}.th-ratio{min-width:30px;color:var(--text-secondary);font-size:13px;font-weight:600;text-align:end;font-variant-numeric:tabular-nums}.th-detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}.th-detail-head .th-pill{padding:5px 14px;font-size:14px}.th-detail-ratio{color:var(--text-secondary);font-size:14px}.th-detail-ratio strong{color:var(--text-primary);font-size:16px}.th-note{margin:0 0 18px;color:var(--text-muted);font-size:12.5px;line-height:1.45}.th-answers{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.th-answer{padding:10px 12px;border:1px solid var(--border-primary);border-inline-start:3px solid var(--th-weak-fg);border-radius:10px}.th-answer.is-correct{border-inline-start-color:var(--th-good-fg)}.th-answer-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;color:var(--text-muted);font-size:11.5px}.th-answer-q{margin:4px 0 6px;color:var(--text-primary);font-size:14px;line-height:1.45;overflow-wrap:anywhere}.th-answer-result{display:flex;flex-direction:column;gap:2px;color:var(--text-secondary);font-size:12.5px;overflow-wrap:anywhere}.th-answer-verdict{color:var(--th-weak-fg);font-weight:750}.th-answer.is-correct .th-answer-verdict{color:var(--th-good-fg)}@media (max-width: 768px){.th-page .content-header{margin-bottom:14px}.th-filters{margin-bottom:12px;padding:12px}.th-filters-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.th-field .form-input{min-height:44px;font-size:15px}.th-views{display:grid;width:100%;margin-bottom:12px}.th-views button{min-height:44px;padding:6px 4px;font-size:13px}.th-card{border-radius:14px}.th-card-head{padding:12px 14px}.th-card-hint{display:inline}.th-card-legend{padding:10px 14px 0}.th-legend{gap:6px 12px}.th-list{gap:8px;padding:12px}.th-sort button{min-height:40px}.th-topic-group>.th-group-title{padding:12px 14px 0}.th-topic-actions .btn{min-height:44px;white-space:normal}.th-matrix-card{--th-unit-h: 26px;--th-student-w: 112px;--th-col-w: 46px;margin-inline:-16px;border-inline:0;border-radius:0;box-shadow:none}.th-matrix-scroll{max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px)}.th-corner{padding:8px 10px;font-size:10px}.th-unit-label{font-size:9.5px;letter-spacing:.02em}.th-unit-head{padding:0 4px}.th-topic-btn{display:flex;align-items:flex-end;justify-content:center;min-height:0;height:150px;padding:8px 4px}.th-topic-label{display:block;max-width:36px;max-height:134px;font-size:10.5px;line-height:12px;writing-mode:vertical-rl;transform:rotate(180deg);text-align:start;-webkit-line-clamp:unset}.th-student-btn{gap:0;min-height:44px;padding:6px 10px}.th-student .th-avatar{display:none}.th-student-name{display:-webkit-box;font-size:12.5px;line-height:1.25;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.th-cell{padding:3px}.th-cell-btn{min-height:40px;padding:2px;border-radius:7px}.th-cell-btn.has-answers .th-cell-status{display:none}.th-cell-btn:not(.has-answers) .th-cell-ratio{display:none}.th-cell-btn .th-cell-ratio{margin:0;font-size:12.5px;font-weight:800;opacity:1}.th-cell-btn:not(.has-answers) .th-cell-status{font-weight:600}}.th-answer-q,.th-answer-result>span{unicode-bidi:plaintext}.bdg-page .bdg-search{max-width:360px;margin-bottom:12px}.bdg-page .bdg-hint{margin:12px 0 0;font-size:13px;color:var(--text-muted)}.bdg-student-list{list-style:none;margin:0;padding:0;border:1px solid var(--border-secondary);border-radius:var(--radius-md);overflow:hidden}.bdg-student-list>li+li{border-top:1px solid var(--border-secondary)}.bdg-student-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:8px 14px;border:none;background:transparent;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.bdg-student-row:hover,.bdg-student-row:active{background:var(--bg-tertiary)}.bdg-student-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.bdg-student-name{min-width:0;font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bdg-student-action{flex-shrink:0;font-size:13px;font-weight:600;color:var(--accent-primary)}@media (max-width: 768px){.bdg-page{display:flex;flex-direction:column}.bdg-page>*{min-width:0}.bdg-page>.content-header{order:-2}.bdg-page>.bdg-award-card{order:-1;margin-top:0!important;margin-bottom:16px}.bdg-page>.card+.card{margin-top:16px!important}.bdg-page .card{padding:16px}.bdg-page .bdg-search{max-width:none;min-height:44px}.bdg-page>div>.btn-primary{width:100%;min-height:44px;justify-content:center}.bdg-page .badges-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bdg-page .badge-def-card{min-height:0;padding:14px 10px;gap:8px}.bdg-page .badge-def-card:hover{transform:none}.bdg-page .badge-def-card .badge-icon-medallion{width:44px;height:44px}.bdg-page .badge-def-name{font-size:14px}.bdg-page .badge-history-item{gap:10px}.bdg-page .modal-header .btn{min-width:44px;min-height:44px;justify-content:center}.bdg-page .modal-footer .btn{flex:1 1 0;min-height:48px;justify-content:center}.bdg-page .modal .form-input{min-height:44px}}.bdg-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.clb-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin-bottom:16px}.clb-field{display:flex;flex-direction:column;gap:4px;min-width:200px;max-width:320px;flex:1 1 200px}.clb-periods{display:flex;flex-wrap:wrap;gap:6px}.clb-list{list-style:none;margin:0;padding:0;transition:opacity .15s ease}.clb-row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,auto) 88px;align-items:center;gap:12px;padding:10px 4px;border-top:1px solid var(--border-secondary);font-size:14px}.clb-row--head{border-top:none;padding-top:0;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.clb-rank{font-weight:800;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.clb-row--top .clb-rank{font-size:18px;color:var(--text-primary)}.clb-name{min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clb-level{color:var(--text-secondary);white-space:nowrap}.clb-xp{text-align:end;font-weight:700;font-variant-numeric:tabular-nums}@media (max-width: 560px){.clb-row{grid-template-columns:32px minmax(0,1fr) auto}.clb-row .clb-level{grid-column:2;grid-row:2;font-size:12px}.clb-row--head .clb-level,.clb-row--head>span:nth-child(3){display:none}}.nbell-empty{margin:8px 0;color:var(--text-muted);font-size:14px}.nbell-list{list-style:none;margin:0 -16px;padding:0}.nbell-list>li+li{border-top:1px solid var(--border-secondary)}.nbell-item{display:flex;flex-direction:column;gap:3px;width:100%;min-height:56px;padding:12px 16px;border:none;background:transparent;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.nbell-item:hover,.nbell-item:active{background:var(--bg-tertiary)}.nbell-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.nbell-item-title{font-size:15px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.nbell-item.is-read .nbell-item-title{font-weight:500;color:var(--text-secondary)}.nbell-item-body{font-size:14px;color:var(--text-secondary);line-height:1.4;overflow-wrap:anywhere}.nbell-item-type{font-size:12px;color:var(--text-muted)}@media (max-width: 768px){.nbell-btn{min-width:44px;min-height:44px;justify-content:center}}.msg-page{display:flex;flex-direction:column;min-width:0}.msg-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.msg-page-heading{min-width:0}.msg-muted{margin:0;font-size:14px;color:var(--text-muted)}.msg-pad{padding:16px 12px}.msg-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;height:clamp(480px,calc(100vh - 210px),1000px);height:clamp(480px,calc(100dvh - 210px),1000px)}.msg-inbox,.msg-thread{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.msg-inbox-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 12px 16px;border-bottom:1px solid var(--border-secondary)}[dir=rtl] .msg-inbox-head{padding:12px 16px 12px 14px}.msg-inbox-title{margin:0;font-size:15px;font-weight:700;color:var(--text-primary)}.msg-new-btn{height:36px;padding:0 14px;font-size:13px;font-weight:600}.msg-convos{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px}.msg-convo{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px;width:100%;padding:10px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer;transition:background .12s ease}.msg-convo+.msg-convo{margin-top:2px}@media (hover: hover){.msg-convo:hover:not(.is-active),.msg-contact:hover{background:var(--bg-primary)}}.msg-convo:active,.msg-contact:active{background:var(--bg-tertiary)}.msg-convo.is-active{background:var(--nav-active-bg)}.msg-convo:focus-visible,.msg-contact:focus-visible,.msg-back:focus-visible,.msg-icon-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.msg-avatar{--msg-tone: var(--accent-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--msg-tone) 16%,var(--bg-secondary));color:var(--msg-tone);font-size:16px;font-weight:700}.msg-avatar--group{--msg-tone: var(--accent-purple)}.msg-avatar--classroom{--msg-tone: var(--accent-teal)}.msg-avatar--sm{width:36px;height:36px;font-size:14px}.msg-convo-main{display:flex;flex-direction:column;gap:3px;min-width:0}.msg-convo-top,.msg-convo-bottom{display:flex;align-items:baseline;gap:8px;min-width:0}.msg-convo-title{flex:1;min-width:0;font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-convo-time{flex-shrink:0;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.msg-convo-kind{flex-shrink:0;padding:1px 7px;border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:600;line-height:1.5}.msg-convo-preview{flex:1;text-align:match-parent;min-width:0;font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-convo-you{color:var(--text-secondary);font-weight:500}.msg-placeholder{display:flex;flex:1;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:14px;color:var(--text-muted)}.msg-thread-head{display:flex;align-items:center;gap:12px;flex-shrink:0;min-height:60px;padding:10px 16px;border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary)}.msg-back{display:none;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;margin-inline-start:-6px;border:none;border-radius:50%;background:transparent;color:var(--text-primary);cursor:pointer}.msg-back:active{background:var(--bg-tertiary)}[dir=rtl] .msg-back-icon{transform:scaleX(-1)}.msg-thread-heading{flex:1;min-width:0}.msg-thread-title{font-size:15px;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-thread-sub{margin-top:1px;font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-scroll{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px;background:var(--bg-primary)}.msg-center{align-self:center;text-align:center}.msg-empty-thread{margin:auto;max-width:280px}.msg-older{align-self:center;margin-bottom:8px}.msg-date{align-self:center;margin:10px 0 6px}.msg-date span{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:500}.msg-line{display:flex;align-items:flex-end;gap:8px;align-self:flex-start;max-width:min(78%,560px);min-width:0}.msg-line.is-self{align-self:flex-end}.msg-sender-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;margin-bottom:2px;border-radius:50%;object-fit:cover;background:color-mix(in srgb,var(--accent-primary) 16%,var(--bg-secondary));color:var(--accent-primary);font-size:12px;font-weight:700}.msg-bubble{min-width:0;padding:8px 12px 6px;border:1px solid var(--border-primary);border-radius:16px;border-end-start-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:14.5px;line-height:1.4}.msg-bubble.is-self{border-color:transparent;border-end-start-radius:16px;border-end-end-radius:6px;background:var(--accent-primary);color:#fff}[data-theme=dark] .msg-bubble.is-self{background:#2563eb}.msg-bubble.is-removed{border-color:transparent;background:var(--bg-tertiary);color:var(--text-muted)}.msg-sender{margin-bottom:2px;font-size:12px;font-weight:700;color:var(--accent-primary)}.msg-body{white-space:pre-wrap;overflow-wrap:anywhere}.msg-time{margin-top:2px;font-size:11px;line-height:1.2;text-align:end;opacity:.7;font-variant-numeric:tabular-nums}.msg-filter-note{margin-top:4px;font-size:11px;opacity:.75}.msg-remove{display:block;min-height:32px;margin-top:2px;padding:0;border:none;background:none;color:var(--accent-danger);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.msg-file-image{display:block;margin:2px 0 4px;padding:0;border:none;border-radius:10px;background:transparent;overflow:hidden;line-height:0;cursor:pointer}.msg-file-image img{display:block;max-width:min(240px,100%);max-height:200px;object-fit:cover}.msg-file{display:flex;align-items:center;gap:10px;max-width:100%;margin:2px 0 4px;padding:10px 12px;border:none;border-radius:10px;background:var(--bg-tertiary);color:inherit;font:inherit;text-align:start;cursor:pointer}.msg-bubble.is-self .msg-file{background:#ffffff2e}.msg-file svg{flex-shrink:0}.msg-file-text{display:flex;flex-direction:column;min-width:0}.msg-file-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-file-size{font-size:11px;opacity:.75}.msg-pending{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:8px 8px 8px 14px;border-top:1px solid var(--border-secondary);background:var(--bg-secondary);font-size:13px;color:var(--text-primary)}[dir=rtl] .msg-pending{padding:8px 14px 8px 8px}.msg-pending svg{flex-shrink:0;color:var(--text-secondary)}.msg-pending-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-pending-size{flex-shrink:0;font-size:12px;color:var(--text-muted)}.msg-composer{display:flex;align-items:flex-end;gap:8px;flex-shrink:0;padding:10px 12px;border-top:1px solid var(--border-secondary);background:var(--bg-secondary)}.msg-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer}.msg-icon-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.msg-icon-btn:disabled{opacity:.5;cursor:not-allowed}.msg-icon-btn--sm{width:36px;height:36px}.msg-input{flex:1;min-width:0;min-height:44px;max-height:140px;padding:11px 16px;border:1px solid var(--border-primary);border-radius:22px;background:var(--bg-primary);color:var(--text-primary);font:inherit;font-size:15px;line-height:20px;resize:none;outline:none;overflow-y:auto;transition:border-color .15s ease}.msg-input:focus{border-color:var(--accent-primary)}.msg-send{flex-shrink:0;height:44px;padding:0 18px;border-radius:22px;font-weight:600}.msg-search{margin-bottom:12px;min-height:44px}.msg-contacts,.msg-mod-list{list-style:none;margin:0;padding:0}.msg-contact{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.msg-contact-name{flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-contact-role{flex-shrink:0;font-size:12px;color:var(--text-muted)}.msg-mod-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-secondary)}.msg-mod-item:last-child{border-bottom:none}.msg-mod-main{flex:1;min-width:0}.msg-mod-sender{font-size:14px;font-weight:600;color:var(--text-primary)}.msg-mod-conv{font-size:12px;color:var(--text-muted)}.msg-mod-body{margin-top:4px;text-align:match-parent;font-size:14px;color:var(--text-primary);overflow-wrap:anywhere}.msg-mod-remove{flex-shrink:0}@media (max-width: 768px){.msg-page-header{flex-direction:column;align-items:stretch;margin-bottom:14px}.msg-mod-btn{min-height:44px}.msg-layout{display:block;height:auto}.msg-inbox{overflow:visible}.msg-inbox-head{padding:10px 10px 10px 16px}[dir=rtl] .msg-inbox-head{padding:10px 16px 10px 10px}.msg-new-btn{height:44px;padding:0 16px;font-size:14px}.msg-convos{overflow:visible;padding:4px}.msg-convo{min-height:68px;padding:12px 10px}.msg-convo-title{font-size:15px}.msg-convo-preview{font-size:13.5px}.msg-thread{display:none}.msg-thread.is-open{display:flex;position:fixed;inset-inline:0;top:var(--msg-vv-top, 0px);height:100vh;height:var(--msg-vv-height, 100dvh);z-index:60;border:none;border-radius:0;box-shadow:none;animation:msgThreadIn .18s ease}.msg-thread-head{gap:8px;padding:6px 12px 6px 8px;padding-top:max(6px,env(safe-area-inset-top))}[dir=rtl] .msg-thread-head{padding:6px 8px 6px 12px;padding-top:max(6px,env(safe-area-inset-top))}.msg-back{display:inline-flex;margin-inline-start:0}.msg-scroll{padding:12px}.msg-line{max-width:86%}.msg-composer{padding:8px 8px 8px 6px;padding-bottom:max(8px,env(safe-area-inset-bottom));gap:6px}[dir=rtl] .msg-composer{padding:8px 6px 8px 8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.msg-input{font-size:16px}.msg-send{padding:0 16px}.msg-remove{min-height:36px}.msg-mod-remove{min-height:40px}}@keyframes msgThreadIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.student-portal{min-height:100vh;background:var(--bg-primary)}.student-portal__header{padding:14px 24px;background:var(--bg-secondary);box-shadow:0 1px #0000000f;display:flex;justify-content:space-between;align-items:center;gap:16px}.student-portal__brand{display:flex;align-items:center;gap:14px;min-width:0}.student-portal__logo{width:44px;height:44px;border-radius:12px;object-fit:cover;flex-shrink:0;box-shadow:0 2px 8px #0000001f}.student-portal__title{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.student-portal__subtitle{margin:2px 0 0;font-size:.8rem;color:var(--text-muted);font-weight:500}.student-portal__nav{display:flex;flex-wrap:wrap;gap:8px;padding:14px 24px;box-shadow:0 1px #0000000f;background:var(--bg-primary);border-bottom:1px solid var(--border-primary)}.student-portal__main{padding:28px 24px 48px;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.student-portal__section-title{font-size:1.5rem;font-weight:700;margin:0 0 8px;letter-spacing:-.02em}.student-portal__lead{color:var(--text-muted);margin:0 0 24px;font-size:1rem;line-height:1.5}.student-portal__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:28px}.student-portal__stat-card{border-radius:16px;padding:16px;display:flex;align-items:center;gap:16px;border:1px solid var(--border-primary);background:var(--bg-secondary);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .06));transition:transform .2s ease,box-shadow .2s ease}.student-portal__stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.student-portal__stat-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.student-portal__stat-card--level .student-portal__stat-icon{background:linear-gradient(135deg,#f43f5e,#fb923c)}.student-portal__stat-card--quiz .student-portal__stat-icon{background:linear-gradient(135deg,#6366f1,#a855f7)}.student-portal__stat-card--annotations .student-portal__stat-icon{background:linear-gradient(135deg,#10b981,#14b8a6)}.student-portal__stat-card--notebooks .student-portal__stat-icon{background:linear-gradient(135deg,#3b82f6,#0ea5e9)}.student-portal__stat-card--schedule .student-portal__stat-icon{background:linear-gradient(135deg,#0ea5e9,#06b6d4)}.student-portal__stat-card--badges .student-portal__stat-icon{background:linear-gradient(135deg,#f59e0b,#eab308)}.student-portal__stat-content{display:flex;flex-direction:column}.student-portal__stat-value{font-size:1.5rem;font-weight:800;line-height:1;color:var(--text-primary)}.student-portal__stat-label{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-top:4px}.student-portal__stat-hint{font-size:.75rem;color:var(--text-muted);margin-top:2px}.student-portal__charts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px}@media (max-width: 900px){.student-portal__charts{grid-template-columns:1fr}}.student-portal__chart-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;padding:20px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .06))}.student-portal__chart-title{font-size:1rem;font-weight:700;margin:0 0 4px}.student-portal__chart-desc{font-size:.8rem;color:var(--text-muted);margin:0 0 16px}.student-portal__chart-wrap{width:100%;height:260px}.student-portal__chart-wrap--sm{height:220px}.student-portal__table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border-primary)}.student-portal__table{width:100%;border-collapse:collapse;font-size:.95rem}.student-portal__table th{text-align:left;padding:12px 16px;background:var(--bg-tertiary);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.student-portal__table td{padding:14px 16px;border-top:1px solid var(--border-primary)}.student-portal__table tbody tr:nth-child(2n){background:#00000005}.student-portal__score-pill{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;font-weight:700;font-size:.9rem;background:linear-gradient(135deg,#6366f126,#8b5cf626);color:var(--accent-primary, #6366f1)}.student-portal__assignment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.student-portal__assignment-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;padding:20px;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer;box-shadow:0 2px 5px #00000008}.student-portal__assignment-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014;border-color:var(--accent-primary)}.student-portal__assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.student-portal__assignment-icon{width:48px;height:48px;border-radius:12px;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--accent-primary)}.student-portal__assignment-status{font-size:.75rem;font-weight:700;padding:6px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}.student-portal__assignment-status--missing{background:#ef44441a;color:#ef4444}.student-portal__assignment-status--pending{background:#f59e0b1a;color:#f59e0b}.student-portal__assignment-status--graded{background:#10b9811a;color:#10b981}.student-portal__assignment-title{font-size:1.15rem;font-weight:700;margin:0 0 20px;color:var(--text-primary);line-height:1.4}.student-portal__assignment-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--border-primary)}.student-portal__assignment-due{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted);font-weight:500}.student-portal__assignment-score{font-size:1rem;font-weight:800;color:var(--text-primary)}.student-portal__schedule-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.student-portal__toggle{display:inline-flex;border-radius:10px;padding:4px;background:var(--bg-tertiary);border:1px solid var(--border-primary)}.student-portal__toggle button{border:none;background:transparent;padding:8px 16px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;color:var(--text-muted)}.student-portal__toggle button.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 3px #00000014}.student-cal{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;padding:20px;overflow:hidden}.student-cal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.student-cal__month-label{font-size:1.15rem;font-weight:700}.student-cal__nav-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border-primary);background:var(--bg-primary);cursor:pointer;font-size:1.1rem;display:inline-flex;align-items:center;justify-content:center}.student-cal__nav-btn:hover{background:var(--bg-tertiary)}.student-cal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}.student-cal__weekday{text-align:center;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:6px 0}.student-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.student-cal__cell{min-height:88px;border-radius:10px;border:1px solid var(--border-primary);background:var(--bg-primary);padding:6px 8px;font-size:.8rem}.student-cal__cell--muted{opacity:.35;background:var(--bg-tertiary)}.student-cal__cell--today{outline:2px solid var(--accent-primary, #6366f1);outline-offset:-1px}.student-cal__day-num{font-weight:700;font-size:.85rem;margin-bottom:4px}.student-cal__entry{font-size:.65rem;line-height:1.25;padding:3px 5px;border-radius:4px;margin-bottom:3px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-cal__entry-time{opacity:.95;font-weight:600}.student-portal__day-block{margin-bottom:20px}.student-portal__day-title{font-size:1rem;font-weight:700;margin-bottom:10px;color:var(--text-primary)}.student-portal__entry-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-tertiary);border-radius:12px;margin-bottom:8px;border-left:4px solid var(--entry-accent, #3b82f6)}.student-portal__badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.student-portal__badge-card{padding:22px 18px;background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border-primary);text-align:center;box-shadow:var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, .06));display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform .2s ease,box-shadow .2s ease}.student-portal__badge-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}[data-theme=dark] .student-portal__badge-card:hover{box-shadow:0 8px 28px #00000073}.student-portal__badge-medallion{width:68px;height:68px}.student-portal__badge-title{font-weight:700;font-size:1.05rem;line-height:1.35;color:var(--text-primary)}.student-portal__badge-desc{font-size:13px;color:var(--text-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.student-portal__badge-date{margin-top:4px;font-size:12px;font-weight:500;color:var(--text-muted);padding:5px 12px;border-radius:999px;background:var(--bg-tertiary)}.student-portal__muted{color:var(--text-muted);font-size:14px}.student-portal__export-error{margin:-12px 0 20px;color:var(--accent-danger);font-size:14px}.student-portal__notebook-name-btn{display:inline-flex;align-items:center;gap:10px;border:none;background:transparent;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.student-portal__notebook-name-btn:hover{text-decoration:underline}.student-portal__notebook-name-btn--static{cursor:default}.student-portal__notebook-name-btn--static:hover{text-decoration:none}.student-portal__notebook-cover{flex:0 0 auto;display:flex;width:34px;aspect-ratio:3 / 4;border-radius:6px;overflow:hidden;box-shadow:0 2px 5px #0000004d,0 0 0 1px #0000001f}.student-portal__notebook-cover-spine{flex:0 0 26%;height:100%;background:#00000026;border-right:1px solid rgba(255,255,255,.13)}.student-portal__notebook-cover-body{flex:1;display:flex;align-items:center;justify-content:center;min-width:0}.student-portal__notebook-cover-ring{width:78%;aspect-ratio:1;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center}.student-portal__notebook-cover-icon{width:68%;aspect-ratio:1;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;color:#fff}.student-portal__annotation-work-cell{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.student-portal__annotation-thumb-placeholder{width:72px;height:54px;border-radius:8px;background:var(--bg-tertiary);border:1px dashed var(--border-primary)}.student-portal__annotation-thumb-btn{padding:0;border:none;background:transparent;cursor:zoom-in;border-radius:8px;line-height:0;box-shadow:0 1px 4px #0000001f}.student-portal__annotation-thumb-img{display:block;width:72px;height:54px;object-fit:cover;border-radius:8px}.student-portal__lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000e0;display:flex;align-items:center;justify-content:center;padding:24px}.student-portal__lightbox-close{position:absolute;top:16px;right:16px;padding:10px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:#ffffff1f;color:#fff;cursor:pointer;font-weight:600}.student-portal__lightbox-inner{max-width:min(96vw,1200px);max-height:90vh}.student-portal__lightbox-loading{color:#fff;padding:32px}.student-portal__lightbox-img{max-width:100%;max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 8px 40px #00000080}.student-portal__annotation-pages{font-size:12px;color:var(--text-muted)}.student-portal__lightbox.has-pager{flex-direction:column;gap:16px}.student-portal__lightbox.has-pager .student-portal__lightbox-inner,.student-portal__lightbox.has-pager .student-portal__lightbox-img{max-height:calc(90vh - 76px)}.student-portal__lightbox-img.is-untouched{opacity:.55}.student-portal__lightbox-pager{display:flex;align-items:center;gap:10px}.student-portal__lightbox-arrow{width:44px;height:44px;padding:0;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:#ffffff1f;color:#fff;font-size:24px;line-height:1;cursor:pointer}.student-portal__lightbox-arrow:disabled{opacity:.35;cursor:default}.student-portal__lightbox-page{min-width:120px;text-align:center;color:#fff;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.student-portal__teacher-comment{margin-bottom:24px;padding:14px 18px;border:1px solid var(--border-primary);border-radius:16px;background:var(--bg-secondary)}.student-portal__teacher-comment-title{margin-bottom:4px;font-size:.85rem;font-weight:600;color:var(--text-secondary)}.student-portal__teacher-comment-text{margin:0;font-size:.95rem;line-height:1.55;color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere}.student-portal__notebook-page-img{position:absolute;top:0;left:0;display:block;width:100%;height:auto;transform-origin:top left}.student-portal__library-filters{display:flex;gap:12px;margin-bottom:16px}.student-portal__library-subject-select{padding:8px 12px;border-radius:8px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem}.student-portal__library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.student-portal__library-book-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-secondary);cursor:pointer;text-align:left}.student-portal__library-book-card:hover{border-color:var(--accent-primary, var(--border-primary))}.student-portal__library-book-cover{width:100%;aspect-ratio:210 / 297;object-fit:cover;border-radius:6px;background:var(--bg-tertiary)}.student-portal__library-book-title{font-size:.85rem;font-weight:600;color:var(--text-primary);line-height:1.25}.student-portal__library-book-subject{font-size:.75rem;color:var(--text-muted)}.student-portal__library-reader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;display:grid;grid-template-rows:64px minmax(0,1fr) 56px;width:100vw;height:100dvh;overflow:hidden;background:radial-gradient(circle at 50% 32%,rgba(60,74,103,.3),transparent 42%),#111722;color:#f7f9fc;isolation:isolate}.student-portal__library-reader-header,.student-portal__library-reader-footer{position:relative;z-index:4;display:grid;align-items:center;background:#0e141ef0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.student-portal__library-reader-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:20px;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.09);box-shadow:0 8px 30px #00000029}.student-portal__library-reader-title{display:flex;align-items:center;min-width:0}.student-portal__library-reader-title-copy{display:flex;flex-direction:column;min-width:0;line-height:1.25}.student-portal__library-reader-title-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.02rem;font-weight:700;letter-spacing:-.01em;background:linear-gradient(90deg,#fff,#ffffffbf);-webkit-background-clip:text;background-clip:text;color:transparent}.student-portal__library-zoom{display:flex;align-items:center;gap:3px;padding:4px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff0e}.student-portal__library-control-button,.student-portal__library-fit-button,.student-portal__library-close-button,.student-portal__library-page-arrow,.student-portal__library-footer-nav{border:0;color:inherit;cursor:pointer;transition:background .14s ease,color .14s ease,opacity .14s ease,transform .14s ease}.student-portal__library-control-button,.student-portal__library-close-button{display:grid;place-items:center;width:34px;height:34px;padding:0;border-radius:8px;background:transparent}.student-portal__library-control-button svg,.student-portal__library-fit-button svg,.student-portal__library-page-arrow svg,.student-portal__library-footer-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.student-portal__library-control-button:hover:not(:disabled),.student-portal__library-fit-button:hover,.student-portal__library-close-button:hover,.student-portal__library-footer-nav:hover:not(:disabled){background:#ffffff1a}.student-portal__library-control-button:focus-visible,.student-portal__library-fit-button:focus-visible,.student-portal__library-close-button:focus-visible,.student-portal__library-page-arrow:focus-visible,.student-portal__library-footer-nav:focus-visible{outline:2px solid #83a6ff;outline-offset:2px}.student-portal__library-control-button:disabled,.student-portal__library-page-arrow:disabled,.student-portal__library-footer-nav:disabled{opacity:.28;cursor:default}.student-portal__library-zoom-value{min-width:54px;color:#f7f9fce0;font-size:.79rem;font-variant-numeric:tabular-nums;font-weight:650;text-align:center}.student-portal__library-control-separator{width:1px;height:20px;margin:0 3px;background:#ffffff1c}.student-portal__library-fit-button{display:flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border-radius:8px;background:transparent;font-size:.78rem;font-weight:600}.student-portal__library-fit-button.is-active{background:#688fff29;color:#b7cbff}.student-portal__library-close-button{justify-self:end;background:#ffffff12}.student-portal__library-header-actions{display:flex;align-items:center;gap:8px;justify-self:end}.student-portal__library-download-button{border:1px solid rgba(130,166,255,.35);background:#5e85ff29;color:#cdd9ff}.student-portal__library-download-button:hover:not(:disabled){background:#5e85ff42}.student-portal__library-download-button:disabled{opacity:.4;cursor:default;pointer-events:none}.student-portal__library-export-error{position:absolute;z-index:5;top:12px;left:50%;max-width:min(90vw,420px);padding:8px 14px;border:1px solid rgba(255,106,106,.4);border-radius:10px;background:#ff5a5a29;color:#ffd4d4;font-size:.78rem;font-weight:600;text-align:center;transform:translate(-50%)}.student-portal__library-reader-stage{position:relative;min-width:0;min-height:0;overflow:hidden}.student-portal__library-viewport{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:rgba(255,255,255,.24) transparent;scrollbar-width:thin;touch-action:pan-x pan-y}.student-portal__library-page-space{display:grid;place-items:center;box-sizing:border-box;width:max-content;min-width:100%;height:max-content;min-height:100%;padding:20px 72px}.student-portal__library-page-frame{position:relative;flex:0 0 auto;overflow:hidden;border-radius:3px;background:#fff;box-shadow:0 20px 70px #00000070,0 2px 8px #00000052;transition:box-shadow .18s ease;will-change:width,height}.student-portal__library-page-frame.is-loading{visibility:hidden}.student-portal__library-page-canvas-host{width:100%;height:100%}.student-portal__library-page-canvas{display:block;width:100%;height:100%}.student-portal__library-ink-notice{position:absolute;z-index:5;top:12px;left:50%;max-width:min(90vw,420px);margin:0;padding:6px 12px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#131b29db;color:#f7f9fcc7;font-size:.76rem;text-align:center;pointer-events:none;transform:translate(-50%)}.student-portal__library-ink-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.student-portal__library-loading{position:absolute;z-index:3;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;gap:14px;justify-content:center;min-width:180px;padding:24px 28px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:#131b29e6;box-shadow:0 20px 60px #0000004d;color:#f7f9fcc7;font-size:.83rem;text-align:center;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.student-portal__library-loading-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.15);border-top-color:#8eabff;border-radius:50%;animation:student-library-spin .7s linear infinite}.student-portal__library-progress{width:min(240px,70vw);height:6px;overflow:hidden;border-radius:999px;background:#ffffff1f}.student-portal__library-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#688fff,#9bb5ff);transition:width .18s ease}.student-portal__library-progress.is-indeterminate .student-portal__library-progress-bar{width:40%;animation:student-library-progress 1.15s ease-in-out infinite}.student-portal__library-progress-percent{color:#f7f9fc9e;font-size:.72rem;font-variant-numeric:tabular-nums}@keyframes student-library-spin{to{transform:rotate(360deg)}}@keyframes student-library-progress{0%{transform:translate(-120%)}to{transform:translate(300%)}}.student-portal__library-error{position:absolute;z-index:3;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;gap:13px;max-width:min(90vw,360px);padding:28px;color:#f7f9fccc;text-align:center;transform:translate(-50%,-50%)}.student-portal__library-error button{padding:9px 16px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:#ffffff14;color:#fff;cursor:pointer}.student-portal__library-page-arrow{position:absolute;z-index:2;top:50%;display:grid;place-items:center;width:44px;height:56px;padding:0;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:#101723c2;box-shadow:0 8px 28px #00000038;transform:translateY(-50%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.student-portal__library-page-arrow:hover:not(:disabled){background:#263248eb;transform:translateY(-50%) scale(1.04)}.student-portal__library-page-arrow.is-previous{left:16px}.student-portal__library-page-arrow.is-next{right:16px}.student-portal__library-page-arrow svg.is-next,.student-portal__library-footer-nav svg.is-next{transform:rotate(180deg)}.student-portal__library-reader-footer{grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);gap:16px;padding:0 18px;border-top:1px solid rgba(255,255,255,.08)}.student-portal__library-footer-nav{display:flex;align-items:center;gap:7px;width:max-content;min-height:36px;padding:0 10px;border-radius:9px;background:transparent;font-size:.78rem;font-weight:600}.student-portal__library-footer-nav.is-next{justify-self:end}.student-portal__library-page-indicator{display:flex;align-items:center;gap:5px;font-size:.79rem;font-variant-numeric:tabular-nums;font-weight:650;transform:translateY(-7px)}.student-portal__library-page-indicator input{width:56px;height:28px;padding:0 4px;border:1px solid rgba(255,255,255,.16);border-radius:7px;background:#ffffff12;color:#fff;font:inherit;font-variant-numeric:tabular-nums;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.student-portal__library-page-indicator input::-webkit-inner-spin-button,.student-portal__library-page-indicator input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.student-portal__library-page-indicator input:hover:not(:disabled){border-color:#a9c2ff9e}.student-portal__library-page-indicator input:focus-visible{outline:2px solid #83a6ff;outline-offset:2px;border-color:transparent}.student-portal__library-page-indicator input:disabled{opacity:.45}.student-portal__library-zoom-hint{position:absolute;left:50%;bottom:5px;color:#e8eef866;font-size:.68rem;transform:translate(-50%);white-space:nowrap}@media (max-width: 700px){.student-portal__library-reader{grid-template-rows:58px minmax(0,1fr) 52px}.student-portal__library-reader-header{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:0 10px 0 12px}.student-portal__library-reader-title .student-portal__notebook-cover,.student-portal__library-fit-button span,.student-portal__library-control-separator,.student-portal__library-zoom-hint,.student-portal__library-page-arrow,.student-portal__library-footer-nav span{display:none}.student-portal__library-zoom{position:absolute;top:66px;left:50%;z-index:5;box-shadow:0 8px 28px #00000040;transform:translate(-50%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.student-portal__library-fit-button{width:34px;padding:0;justify-content:center}.student-portal__library-page-space{padding:20px}.student-portal__library-reader-footer{grid-template-columns:44px 1fr 44px;gap:8px;padding:0 10px}.student-portal__library-footer-nav{display:grid;place-items:center;width:38px;padding:0}.student-portal__library-page-indicator{justify-self:center;transform:none}}@media (prefers-reduced-motion: reduce){.student-portal__library-control-button,.student-portal__library-fit-button,.student-portal__library-close-button,.student-portal__library-page-arrow,.student-portal__library-footer-nav{transition:none}.student-portal__library-loading-spinner,.student-portal__library-progress-bar{animation:none}.student-portal__library-progress.is-indeterminate .student-portal__library-progress-bar{transform:translate(0)}}.student-portal__quiz-review-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1900;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.student-portal__quiz-review-panel{width:100%;max-width:720px;max-height:min(92vh,900px);overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;box-shadow:var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .2));padding:20px 22px 28px}.student-portal__quiz-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;position:sticky;top:0;background:var(--bg-secondary);padding-bottom:12px;border-bottom:1px solid var(--border-primary);z-index:1}.student-portal__quiz-review-title{margin:0;font-size:1.2rem;font-weight:700;line-height:1.3}.student-portal__quiz-review-list{display:flex;flex-direction:column;gap:12px}.student-portal__quiz-review-q{border-radius:12px;padding:14px 16px;border:1px solid var(--border-primary);background:var(--bg-primary)}.student-portal__quiz-review-q--correct{border-color:#10b98173;background:#10b9810f}.student-portal__quiz-review-q--wrong{border-color:#ef444473;background:#ef44440f}.student-portal__quiz-review-q--skipped{border-color:var(--border-primary);opacity:.92}.student-portal__quiz-review-q--partial,.student-portal__quiz-review-q--pending{border-color:#f59e0b73;background:#f59e0b0f}.student-portal__quiz-review-q--partial .student-portal__quiz-review-q-badge,.student-portal__quiz-review-q--pending .student-portal__quiz-review-q-badge{color:#d97706}.student-portal__pending-note{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;color:#d97706}.student-portal__question-image{display:block;max-width:min(100%,480px);max-height:320px;object-fit:contain;border-radius:8px;margin:0 0 10px;border:1px solid var(--border-primary)}.student-portal__quiz-review-q-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.student-portal__quiz-review-q-num{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:8px;font-weight:800;font-size:13px;background:var(--bg-tertiary);color:var(--text-primary)}.student-portal__quiz-review-q-badge{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.student-portal__quiz-review-q--correct .student-portal__quiz-review-q-badge{color:#059669}.student-portal__quiz-review-q--wrong .student-portal__quiz-review-q-badge{color:#dc2626}.student-portal__quiz-review-q-points{margin-left:auto;font-size:13px;font-weight:600;color:var(--text-muted)}.student-portal__quiz-review-q-text{margin:0 0 12px;font-size:15px;line-height:1.45;font-weight:500}.student-portal__quiz-review-q-rows{display:grid;gap:10px;font-size:14px}.student-portal__quiz-review-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.student-portal__quiz-review-value{display:block;line-height:1.45;word-break:break-word}.student-topic{--topic-blue: #075f9a;--topic-blue-soft: #cfe9fa;width:100%}.student-topic__hero{padding:24px;border-radius:22px;color:#fff;background:linear-gradient(135deg,#075f9a,#0879b9);box-shadow:0 12px 30px #075f9a33;margin-bottom:20px}.student-topic__hero-title,.student-topic__focus,.student-topic__subjects-head,.student-topic__history-head,.student-topic__answer-head{display:flex;align-items:center}.student-topic__hero-title{gap:12px}.student-topic__hero-title div{display:grid;gap:2px}.student-topic__hero-title span,.student-topic__eyebrow{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.student-topic__hero-title span{color:var(--topic-blue-soft)}.student-topic__hero-title strong{font-size:1.1rem}.student-topic__summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.student-topic__summary-grid>div{display:grid;gap:4px;padding:14px 16px;border-radius:15px;background:#ffffff1c}.student-topic__summary-grid strong{font-size:1.55rem;line-height:1}.student-topic__summary-grid span{font-size:12px;color:var(--topic-blue-soft)}.student-topic__focus{width:100%;gap:14px;text-align:start;color:var(--text-primary);background:color-mix(in srgb,#f2c35f 15%,var(--bg-secondary));border:1px solid color-mix(in srgb,#d99d22 55%,var(--border-primary));border-radius:16px;padding:16px 18px;cursor:pointer;margin-bottom:26px}.student-topic__focus>svg{color:#a36400;flex:0 0 auto}.student-topic__focus>div{display:grid;gap:3px;flex:1}.student-topic__focus span:first-child{color:#8a5808;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.student-topic__focus strong{font-size:1rem}.student-topic__focus small{color:var(--text-muted);font-size:12px}.student-topic__row-arrow{font-size:28px;line-height:1;color:var(--text-muted)}[dir=rtl] .student-topic__row-arrow{transform:rotate(180deg)}.student-topic__subjects-head,.student-topic__history-head{justify-content:space-between;gap:16px;margin:8px 0 14px}.student-topic__subjects-head h3,.student-topic__history-head h3{margin:0 0 3px;font-size:1.05rem}.student-topic__subjects-head p,.student-topic__history-head p{margin:0;color:var(--text-muted);font-size:13px}.student-topic__subjects-head>span,.student-topic__history-head>span{padding:5px 10px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-muted);font-size:12px;font-weight:700;white-space:nowrap}.student-topic__subjects,.student-topic__answers{display:grid;gap:12px}.student-topic__subject{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:17px;overflow:hidden}.student-topic__subject.is-open{border-color:color-mix(in srgb,var(--topic-blue) 48%,var(--border-primary))}.student-topic__subject-toggle{width:100%;display:grid;grid-template-columns:68px minmax(0,1fr) auto 38px;align-items:center;gap:15px;padding:14px 16px;border:0;background:transparent;color:var(--text-primary);text-align:start;cursor:pointer}.student-topic__subject-toggle:hover{background:var(--bg-primary)}.student-topic__subject-toggle img{width:68px;height:54px;object-fit:cover;border-radius:11px}.student-topic__subject-info{min-width:0;display:grid;gap:5px}.student-topic__subject-info>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-topic__subject-info>span{font-size:12px;color:var(--text-muted)}.student-topic__subject-score{display:grid;text-align:center;gap:2px;min-width:58px}.student-topic__subject-score strong{font-size:1.15rem}.student-topic__subject-score span{font-size:10px;color:var(--text-muted);text-transform:uppercase}.student-topic__chevron{width:36px;height:36px;display:grid;place-items:center;justify-self:end;border-radius:50%;color:var(--topic-blue);background:color-mix(in srgb,var(--topic-blue) 10%,transparent)}.student-topic__chevron svg{transition:transform .2s ease}.student-topic__subject.is-open .student-topic__chevron svg{transform:rotate(180deg)}.student-topic__past-grades{display:grid;gap:12px;margin-top:24px}.student-topic__past-grade{border:1px dashed var(--border-primary);border-radius:17px;overflow:hidden}.student-topic__past-grade.is-open{border-style:solid}.student-topic__past-grade-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border:0;background:transparent;color:var(--text-muted);text-align:start;cursor:pointer}.student-topic__past-grade-toggle:hover{background:var(--bg-primary);color:var(--text-primary)}.student-topic__past-grade-toggle .student-topic__chevron{width:30px;height:30px}.student-topic__past-grade.is-open .student-topic__chevron svg{transform:rotate(180deg)}.student-topic__past-grade .student-topic__subjects{padding:0 14px 14px}.student-topic__progress{width:100%;height:7px;border-radius:99px;overflow:hidden;background:var(--bg-tertiary)}.student-topic__progress>span{display:block;height:100%;border-radius:inherit;background:#36a9e1;transition:width .25s ease}.student-topic__topic-list{border-top:1px solid var(--border-primary);background:var(--bg-primary);padding:8px 16px 16px}.student-topic__unit h4{margin:15px 4px 7px;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.student-topic__topic-row{width:100%;display:flex;align-items:center;gap:12px;padding:12px;border:0;border-top:1px solid var(--border-primary);background:transparent;color:var(--text-primary);text-align:start;cursor:pointer}.student-topic__unit .student-topic__topic-row:first-of-type{border-top:0}.student-topic__topic-row:hover{background:var(--bg-secondary);border-radius:11px}.student-topic__topic-main{flex:1;min-width:0;display:grid;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:12px}.student-topic__topic-main>strong{font-size:14px}.student-topic__topic-main>span:last-child{color:var(--text-muted);font-size:12px}.student-topic__status{width:fit-content;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}.student-topic__status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.student-topic__state{min-height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:28px;border:1px dashed var(--border-primary);border-radius:17px;color:var(--text-muted);text-align:center}.student-topic__state h3,.student-topic__state p{margin:0}.student-topic__state--error>svg{color:#dc2626}.student-topic__back{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--topic-blue);padding:4px 0 12px;font-weight:700;cursor:pointer}[dir=rtl] .student-topic__back>span{transform:rotate(180deg)}.student-topic__breadcrumb{color:var(--text-muted);font-size:12px;margin:0 0 7px}.student-topic__detail-hero{border-radius:20px;padding:22px;background:linear-gradient(135deg,#075f9a,#0879b9);color:#fff;margin:20px 0 26px}.student-topic__detail-hero>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:13px}.student-topic__eyebrow{color:var(--topic-blue-soft);width:100%}.student-topic__detail-percent{font-size:2.7rem;line-height:1}.student-topic__detail-hero .student-topic__status{background:#ffffff29!important;color:#fff!important}.student-topic__detail-stats{display:flex;flex-wrap:wrap;gap:8px 18px;margin:15px 0;color:var(--topic-blue-soft);font-size:13px}.student-topic__detail-hero .student-topic__progress{background:#ffffff38}.student-topic__detail-hero .student-topic__progress>span{background:#fff}.student-topic__answer{position:relative;overflow:hidden;border:1px solid var(--border-primary);border-radius:15px;padding:15px 17px;background:var(--bg-secondary)}.student-topic__answer:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:#dc2626}.student-topic__answer.is-correct:before{background:#059669}.student-topic__answer-head{flex-wrap:wrap;gap:7px 13px;color:var(--text-muted);font-size:12px}.student-topic__answer-head time{margin-inline-start:auto}.student-topic__answer-result{display:inline-flex;align-items:center;gap:5px;font-weight:800;color:#dc2626}.student-topic__answer.is-correct .student-topic__answer-result{color:#059669}.student-topic__question{margin:13px 0;line-height:1.5;font-weight:600}.student-topic__answer-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-topic__answer-values>div{display:grid;gap:4px;padding:10px 12px;border-radius:10px;background:var(--bg-primary)}.student-topic__answer-values span{color:var(--text-muted);font-size:11px;text-transform:uppercase;font-weight:700}.student-topic__answer-values strong{font-size:13px;word-break:break-word}@media (max-width: 700px){.student-topic__summary-grid{grid-template-columns:1fr}.student-topic__summary-grid>div{grid-template-columns:auto 1fr;align-items:baseline}.student-topic__subject-toggle{grid-template-columns:52px minmax(0,1fr) 38px;gap:10px}.student-topic__subject-toggle img{width:52px;height:48px}.student-topic__subject-score{grid-column:2;grid-row:2;display:flex;align-items:baseline;gap:5px;text-align:start}.student-topic__chevron{grid-column:3;grid-row:1 / span 2}.student-topic__topic-main{grid-template-columns:1fr;gap:6px}.student-topic__answer-values{grid-template-columns:1fr}.student-topic__answer-head time{width:100%;margin-inline-start:0}}@media (prefers-reduced-motion: reduce){.student-topic__chevron svg,.student-topic__progress>span{transition:none}}.student-avatar-picker__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-items:center;padding:24px;background:#0f172aa8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.student-avatar-picker{position:relative;width:min(680px,100%);max-height:min(820px,calc(100vh - 32px));overflow:auto;padding:34px;border:1px solid color-mix(in srgb,var(--accent-primary) 20%,var(--border-primary));border-radius:28px;background:var(--bg-primary);box-shadow:0 28px 80px #0f172a52}.student-avatar-picker__hero{position:absolute;top:24px;right:28px;width:84px;height:84px;overflow:hidden;border:5px solid var(--bg-primary);border-radius:26px;transform:rotate(4deg);box-shadow:0 12px 30px #0f172a2e}[dir=rtl] .student-avatar-picker__hero{right:auto;left:28px;transform:rotate(-4deg)}.student-avatar-picker__hero img{width:100%;height:100%;display:block}.student-avatar-picker__heading{padding-inline-end:116px}.student-avatar-picker__eyebrow{font-size:24px}.student-avatar-picker__heading h2{margin:4px 0 6px;color:var(--text-primary);font-size:clamp(24px,4vw,34px)}.student-avatar-picker__heading p{margin:0;color:var(--text-secondary);line-height:1.55}.student-avatar-picker__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:28px}.student-avatar-picker__choice{position:relative;aspect-ratio:1;padding:0;overflow:hidden;border:3px solid transparent;border-radius:22px;background:var(--bg-tertiary);cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.student-avatar-picker__choice:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.student-avatar-picker__choice:focus-visible{outline:3px solid color-mix(in srgb,var(--accent-primary) 40%,transparent);outline-offset:2px}.student-avatar-picker__choice.is-selected{border-color:var(--accent-primary);transform:translateY(-3px) scale(1.03);box-shadow:0 10px 24px color-mix(in srgb,var(--accent-primary) 24%,transparent)}.student-avatar-picker__choice img{width:100%;height:100%;display:block}.student-avatar-picker__check{position:absolute;right:6px;bottom:6px;display:none;width:24px;height:24px;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--accent-primary);color:#fff;font-size:13px;font-weight:800}.student-avatar-picker__choice.is-selected .student-avatar-picker__check{display:grid}.student-avatar-picker__error{margin:16px 0 0;color:var(--accent-danger, #dc2626);font-weight:650}.student-avatar-picker__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.student-avatar-picker__save{min-width:190px}@media (max-width: 560px){.student-avatar-picker__backdrop{padding:10px}.student-avatar-picker{padding:24px 18px;border-radius:22px}.student-avatar-picker__hero{width:64px;height:64px;top:20px;right:18px;border-radius:18px}.student-avatar-picker__heading{padding-inline-end:80px}.student-avatar-picker__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.student-avatar-picker__choice{border-radius:17px}.student-avatar-picker__actions{flex-direction:column-reverse}.student-avatar-picker__actions .btn{width:100%}}.student-portal__practice-tag{display:flex;align-items:center;gap:8px;margin:-12px 0 18px;color:var(--text-secondary);font-size:.9rem;font-weight:600}.student-portal__practice-tag span{padding:2px 9px;border-radius:999px;background:color-mix(in srgb,#f2c35f 30%,var(--bg-secondary));color:#8a5808;font-size:.78rem;font-weight:800}.student-portal__practice-intro{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,#f2c35f 14%,var(--bg-secondary));color:#8a5808}.student-portal__practice-intro svg{flex:none;margin-top:2px}.student-portal__practice-intro p{margin:0;color:var(--text-primary);font-size:.98rem;line-height:1.5}.student-portal__repeat-tag{display:inline-block;margin-inline-start:8px;padding:1px 8px;border-radius:6px;background:color-mix(in srgb,#f2c35f 30%,var(--bg-secondary));color:#8a5808;font-size:.75rem;font-weight:800;vertical-align:middle}.student-portal__practice-correct{margin:10px 0 0;color:var(--text-secondary);font-size:.95rem}.student-portal__practice-correct strong{color:#10b981}.student-portal__practice-explanation{margin-top:10px;padding:12px 14px;border-inline-start:3px solid var(--accent-primary);border-radius:8px;background:color-mix(in srgb,var(--accent-primary) 7%,var(--bg-secondary))}.student-portal__practice-explanation strong{display:block;margin-bottom:4px;color:var(--accent-primary);font-size:.8rem}.student-portal__practice-explanation p{margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.55}.student-portal__practice-result{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;margin-bottom:24px;padding:16px 20px;border:1px solid var(--border-secondary);border-radius:16px;background:var(--bg-tertiary)}.student-portal__practice-result.is-up{border-color:color-mix(in srgb,#10b981 40%,var(--border-primary));background:color-mix(in srgb,#10b981 9%,var(--bg-secondary))}.student-portal__practice-result>div>span{color:var(--text-secondary);font-size:.85rem;font-weight:600}.student-portal__practice-result>p{flex:1 1 220px;margin:0;color:var(--text-secondary);font-size:.95rem}.student-portal__practice-result-change{display:flex;align-items:center;gap:8px;margin:6px 0 0;color:var(--text-muted);font-weight:800}.student-portal__practice-result-change span{padding:3px 10px;border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary);font-size:.9rem}.student-portal__practice-result-change .is-weak{background:#ffd6d6;color:#b31b25}.student-portal__practice-result-change .is-improving{background:#ffe8cc;color:#9a5b00}.student-portal__practice-result-change .is-good{background:#d5f0dd;color:#1b5e20}.student-portal__practice-result-change span[aria-hidden]{padding:0;background:none}.student-topic__practice-chip{padding:2px 8px;border-radius:999px;background:color-mix(in srgb,#f2c35f 30%,var(--bg-secondary));color:#8a5808;font-size:11px;font-weight:800;white-space:nowrap}.student-topic__focus.is-practice{font-family:inherit}.student-topic__focus-cta{flex:none;padding:8px 14px;border-radius:10px;background:#d99d22;color:#fff;font-size:13px;font-weight:800}.student-topic__practice-callout{display:flex;align-items:center;gap:14px;margin:0 0 22px;padding:14px 16px;border:1px solid color-mix(in srgb,#d99d22 55%,var(--border-primary));border-radius:14px;background:color-mix(in srgb,#f2c35f 15%,var(--bg-secondary))}.student-topic__practice-callout>svg{flex:none;color:#a36400}.student-topic__practice-callout>div{flex:1}.student-topic__practice-callout strong{display:block;color:var(--text-primary)}.student-topic__practice-callout p{margin:2px 0 0;color:var(--text-secondary);font-size:13px}@media (max-width: 640px){.student-topic__practice-callout,.student-topic__focus.is-practice{flex-wrap:wrap}.student-topic__practice-callout .btn{width:100%}}.student-portal__assignment-tags{margin:-12px 0 16px}.student-portal__late-tag{display:inline-block;padding:2px 8px;border-radius:6px;background:#ef44441f;color:#dc2626;font-size:.75rem;font-weight:800;white-space:nowrap}.student-portal__status-late{margin-top:6px}.student-portal__assignment-due.is-past-due{color:#dc2626;font-weight:700}.student-portal__late-warning{margin:0 0 16px;padding:10px 14px;border-radius:10px;border:1px solid rgba(239,68,68,.35);background:#ef444414;color:var(--text-primary);font-size:.95rem}.student-portal__past-assignments{margin-top:32px}.student-portal__past-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.student-portal__past-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary);color:inherit;font:inherit;text-align:start;cursor:pointer}.student-portal__past-row:hover,.student-portal__past-row:focus-visible{border-color:var(--accent-primary)}.student-portal__past-main{display:flex;flex-direction:column;gap:2px;min-width:0}.student-portal__past-title{font-weight:700;color:var(--text-primary);overflow-wrap:anywhere}.student-portal__past-meta{font-size:.85rem;color:var(--text-muted)}.student-portal__past-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.student-portal__leaderboard-me{margin:10px 0 0;padding-top:10px;border-top:1px dashed var(--border-primary);font-weight:700;color:var(--text-primary)}@media (max-width: 640px){.student-portal__past-row{flex-direction:column;align-items:flex-start}.student-portal__past-side{justify-content:flex-start}}.sp-level-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:6px 0 4px}.sp-level-line__level{font-size:1.75rem;font-weight:800;line-height:1.1;color:var(--text-primary)}.sp-level-line__title{font-size:1.1rem;font-weight:800}.sp-level-bar-caption{margin-top:6px;font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.sp-xp-list{list-style:none;margin:0;padding:0}.sp-xp-row{display:flex;align-items:baseline;gap:12px;padding:7px 0;border-top:1px solid var(--border-primary);font-size:13px}.sp-xp-row:first-child{border-top:none}.sp-xp-row__label{flex:1;min-width:0;color:var(--text-primary)}.sp-xp-row__date{color:var(--text-muted);font-size:12px;white-space:nowrap}.sp-xp-row__amount{min-width:64px;text-align:end;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-success, #10b981);white-space:nowrap}.sp-xp-row--reversed .sp-xp-row__label,.sp-xp-row--reversed .sp-xp-row__amount{color:var(--text-muted);font-weight:500}.sp-families{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.sp-family{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;padding:18px 18px 16px}.sp-family__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sp-family__text{min-width:0}.sp-family__name{margin:0;font-size:1rem;font-weight:800}.sp-family__desc{margin:4px 0 0;font-size:.8rem;color:var(--text-muted)}.sp-family__count{font-size:.95rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-primary)}.sp-family--done .sp-family__count{color:#c9971c}.sp-family__bar{height:8px;margin:14px 0;border-radius:999px;background:var(--bg-tertiary);overflow:hidden}.sp-family__bar>div{height:100%;border-radius:inherit;transition:width .3s ease}.sp-family__tiers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sp-tier{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;border-top:3px solid var(--border-primary);background:var(--bg-tertiary);color:var(--text-muted)}.sp-tier--unlocked{border-top-color:var(--sp-tier-color);background:color-mix(in srgb,var(--sp-tier-color) 12%,transparent);color:var(--text-primary)}.sp-tier__name{font-size:.8rem;font-weight:800}.sp-tier--unlocked .sp-tier__name{color:var(--sp-tier-color)}.sp-tier__target{font-size:.75rem;font-variant-numeric:tabular-nums}.sp-tier__xp{font-size:.7rem;font-weight:600}.sp-period-switch{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.sp-lb-list{list-style:none;margin:0;padding:0}.sp-lb-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto 76px;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--border-primary);font-size:14px}.sp-lb-row:first-child{border-top:none}.sp-lb-row--me{font-weight:700}.sp-lb-row__rank{font-weight:800;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.sp-lb-row__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-lb-row__level{font-size:12px;color:var(--text-secondary);white-space:nowrap}.sp-lb-row__xp{text-align:end;font-weight:700;font-variant-numeric:tabular-nums}@media (max-width: 560px){.sp-lb-row{grid-template-columns:28px minmax(0,1fr) auto}.sp-lb-row__level{grid-column:2;grid-row:2}}.sp-levelup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172a8c;animation:sp-levelup-fade .2s ease}.sp-levelup__panel{width:min(420px,100%);padding:32px 28px 24px;border-radius:20px;background:var(--bg-secondary);border-top:6px solid var(--sp-levelup-color);box-shadow:var(--shadow-lg, 0 20px 40px rgba(0, 0, 0, .25));text-align:center;animation:sp-levelup-pop .45s cubic-bezier(.2,1.4,.4,1)}.sp-levelup__eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.sp-levelup__level{margin:8px 0 4px;font-size:3rem;font-weight:900;line-height:1.05;color:var(--sp-levelup-color)}.sp-levelup__title{margin:4px 0 0;font-size:1.25rem;font-weight:800;color:var(--text-primary)}.sp-levelup__current{margin:4px 0 0;font-size:1rem;font-weight:700;color:var(--sp-levelup-color)}.sp-levelup__body{margin:12px 0 20px;font-size:.9rem;color:var(--text-secondary)}.sp-levelup__btn{min-width:140px}@keyframes sp-levelup-fade{0%{opacity:0}to{opacity:1}}@keyframes sp-levelup-pop{0%{opacity:0;transform:scale(.85) translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.sp-levelup,.sp-levelup__panel{animation:none}}@media (max-width: 768px){.storage-chart-header{flex-wrap:wrap;row-gap:2px}.storage-chart-subtitle{white-space:normal;max-width:100%;min-width:0}.usage-reports .usage-date-inputs{width:100%}.usage-reports .usage-date-inputs .form-input{flex:1 1 0;min-width:0;width:auto}.usage-reports .usage-presets .btn,.usage-reports .usage-presets button{min-height:40px}.usage-reports .usage-table thead th,.storage-usage .usage-table thead th{padding:10px;font-size:11px}.usage-reports .usage-table td,.storage-usage .usage-table td{padding:10px;font-size:13px}.usage-reports .usage-table td:first-child,.storage-usage .usage-table td:first-child{overflow-wrap:anywhere}.usage-reports .usage-table td:not(:first-child),.storage-usage .usage-table td:not(:first-child){white-space:nowrap}}@media (max-width: 768px){.usage-reports .usage-toolbar{padding:16px}.usage-reports .usage-toolbar-fields>.usage-field{flex:1 1 100%;min-width:0}}.nb-cols{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;width:100%}.nb-cols>.card{flex:1 1 320px;min-width:0;max-width:none}.nb-publish-row{display:flex;gap:12px;margin-top:16px}.nb-post p{overflow-wrap:anywhere}.nb-expiry-chips{display:flex;flex-wrap:wrap;gap:6px}.nb-expiry-chip{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);font:inherit;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.nb-expiry-chip:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nb-expiry-chip.is-active{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-secondary));color:var(--accent-primary);font-weight:600}.nb-expiry-chip:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.nb-expiry-date{margin-top:10px;max-width:220px}.nb-expiry-summary{margin:10px 0 0;padding:10px 12px;border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);font-size:13px;line-height:1.45}.nb-expiry-summary strong{color:var(--text-primary);font-weight:700}.nb-expiry-summary.is-invalid{background:color-mix(in srgb,var(--accent-danger) 10%,var(--bg-secondary));color:var(--accent-danger)}.nb-post-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.nb-post-title{font-weight:600;overflow-wrap:anywhere}.nb-expiry-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:500;white-space:nowrap}.nb-expiry-tag.is-expired{background:color-mix(in srgb,var(--accent-warning) 16%,var(--bg-secondary));color:color-mix(in srgb,var(--accent-warning) 70%,var(--text-primary));font-weight:600}.nb-post.is-expired .nb-post-title,.nb-post.is-expired p{color:var(--text-muted)}@media (max-width: 768px){.nb-phone-top{margin-bottom:16px}.nb-new-btn{width:100%;min-height:48px;justify-content:center}.nb-sent{margin:10px 0 0;color:var(--accent-success);font-size:14px}.nb-cols{display:block}.nb-board{padding:16px}.nb-post-actions .btn{min-width:44px;min-height:44px;justify-content:center}.nb-sheet .nb-compose{margin:0;padding:0;border:none;box-shadow:none;background:transparent}.nb-sheet .nb-compose>.card-title{display:none}.nb-sheet .form-input{min-height:44px}.nb-expiry-chip{min-height:40px}.nb-expiry-date{max-width:none}.nb-sheet .nb-class-option{min-height:44px}.nb-sheet .nb-class-option input{width:20px;height:20px}.nb-sheet .nb-publish-row{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom));margin:16px -16px calc(-18px - env(safe-area-inset-bottom));padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg-secondary);border-top:1px solid var(--border-secondary)}.nb-sheet .nb-publish-row .btn{flex:1;min-height:48px;justify-content:center}}@media (max-width: 768px){.alw-page .app-item{flex-direction:column;align-items:stretch;gap:10px;padding:12px}.alw-page .app-info .app-info-text{flex:1}.alw-page .app-package{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alw-page .app-actions{flex-wrap:wrap;align-items:center;gap:6px}.alw-page .app-actions{justify-content:flex-end}.alw-page .app-actions .alw-badges{flex:1 1 100%}.alw-page .app-actions .btn{min-width:44px;min-height:44px;justify-content:center}.alw-page .content-header+* .btn,.alw-page .btn-primary{min-height:44px}.alw-page .modal-header .btn{min-width:44px;min-height:44px;justify-content:center}.alw-page .modal-footer .btn{flex:1 1 0;min-height:48px;justify-content:center}.alw-page .modal .form-input{min-height:44px}}.alw-badges{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.alw-install-badge--missing{color:color-mix(in srgb,var(--accent-warning) 62%,var(--text-primary));background:color-mix(in srgb,var(--accent-warning) 14%,transparent)}.modal.ws-dialog{max-width:460px}.ws-dialog-body{display:flex;flex-direction:column;gap:16px}.ws-file{min-width:0;padding:12px 14px;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary)}.ws-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;color:var(--text-primary)}.ws-file-meta{margin-top:2px;font-size:13px;color:var(--text-secondary)}.ws-lead{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--text-secondary)}.ws-range-row{display:flex;align-items:flex-end;gap:10px}.ws-field{flex:1 1 0;display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:600;color:var(--text-secondary)}.ws-field .form-input{width:100%;font-weight:400}.ws-range-dash{padding-bottom:10px;color:var(--text-muted)}.ws-range-note{margin:10px 0 0;font-size:13px;color:var(--text-secondary)}.ws-range-note.is-error{color:var(--accent-danger)}.ws-progress{display:flex;flex-direction:column;gap:8px}.ws-progress-text{font-size:14px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.ws-progress .upload-progress-fill{background:var(--brand-primary)}.ws-error{margin:0;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent-danger) 35%,transparent);background:color-mix(in srgb,var(--accent-danger) 8%,var(--bg-secondary));color:var(--accent-danger);font-size:14px;line-height:1.5}.ws-toast{position:fixed;bottom:24px;inset-inline-end:24px;z-index:1300;max-width:min(420px,calc(100vw - 32px));padding:12px 18px;border-radius:var(--radius-md);background:var(--accent-success);color:#fff;font-size:14px;font-weight:600;line-height:1.4;box-shadow:var(--shadow-lg);overflow-wrap:anywhere}@media (max-width: 768px){.file-item.ws-file-row{flex-wrap:wrap}.file-item.ws-file-row .file-item-info{flex:1 1 calc(100% - 44px)}.file-item.ws-file-row .file-item-actions{width:100%;flex-wrap:wrap;justify-content:flex-end}.ws-dialog .form-input{min-height:44px;font-size:16px}.ws-dialog .btn{min-height:44px}.ws-toast{left:16px;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));max-width:none;text-align:center}}@media (max-width: 768px){.lsn-page .lessons-page-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:16px}.lsn-page .lessons-page-tabs .btn{min-height:44px;padding:6px 8px;justify-content:center;text-align:center;white-space:normal;line-height:1.2}.lsn-page .suggested-class-card{margin-bottom:16px!important}.lsn-page .suggested-class-card:hover,.lsn-page .today-schedule-card:hover{transform:none}.lsn-page .lsn-hero-main{flex:1 1 100%!important;gap:12px!important}.lsn-page .suggested-class-thumbnail-wrapper{width:52px;height:52px;border-radius:12px}.lsn-page .suggested-class-header{gap:6px 10px}.lsn-page .suggested-class-hero-title{margin:2px 0 10px!important;font-size:21px!important}.lsn-page .suggested-class-meta-chip{font-size:12px;padding:4px 10px}.lsn-page .suggested-class-meta-chip[style]{flex-basis:100%;display:block;padding:2px 0 0;border:none;background:none;box-shadow:none;border-radius:0;font-size:13px;line-height:1.4}.lsn-page .lsn-hero-actions{width:100%;display:grid!important;grid-template-columns:1fr}.lsn-page .lsn-hero-actions .btn,.lsn-page .lsn-session-actions .btn{width:100%;min-height:48px;justify-content:center}.lsn-page .lsn-hero-actions .btn svg,.lsn-page .lsn-session-actions .btn svg,.lsn-page .today-schedule-actions .btn svg{display:none}.lsn-page .today-schedule-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:start;gap:10px 12px;padding:14px}.lsn-page .today-schedule-thumbnail-wrapper{width:48px;height:48px;border-radius:12px;box-shadow:none}.lsn-page .today-schedule-top-row{gap:6px 8px;margin-bottom:4px}.lsn-page .today-schedule-title{font-size:16px}.lsn-page .today-schedule-desc{margin-bottom:6px}.lsn-page .today-schedule-meta-row{gap:6px}.lsn-page .today-schedule-meta-chip{padding:3px 9px}.lsn-page .today-schedule-actions{grid-column:1 / -1;display:flex;flex-direction:row;gap:8px}.lsn-page .today-schedule-actions .btn{flex:1 1 0;min-width:0;min-height:44px;justify-content:center;white-space:normal;text-align:center;line-height:1.2}.lsn-page .lsn-session-actions{gap:10px!important}.lsn-page .modal-header{padding:14px 16px}.lsn-page .modal-header .btn{min-width:44px;min-height:44px;justify-content:center}.lsn-page .modal-body{padding:16px}.lsn-page .modal-footer{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.lsn-page .modal-footer .btn{flex:1 1 0;min-height:48px;justify-content:center}.lsn-page .modal .form-input{min-height:44px}.lsn-page .quick-start-actions .btn{flex:1 1 0;min-height:44px;justify-content:center}.lsn-page .lesson-item-actions .btn{min-height:40px;min-width:40px;justify-content:center}}@media (max-width: 768px){.lsn-page{display:flex;flex-direction:column}.lsn-page>*{min-width:0}.lsn-page>.content-header{order:-3}.lsn-page>.lessons-page-tabs{order:-2}.lsn-page>.lsn-session-card.is-active{order:-1}.lsn-page .lsn-session-card .session-active>.btn,.lsn-page .lsn-session-card .session-code-display .btn-primary{width:100%;min-height:48px;justify-content:center}.lsn-page .lsn-session-card .session-code-display .btn-ghost{min-height:44px}}@media (max-width: 768px){.lsn-page .lsn-session-card .session-active>*{width:100%}}@media (max-width: 768px){.lsn-page .lsn-session-card .btn svg{display:none}}.lsn-check-row{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font-size:14px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.lsn-check-row input{width:16px;height:16px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.ann-page{display:flex;flex-direction:column;gap:16px;min-width:0}.ann-page .content-header{margin-bottom:4px}.ann-page .content-subtitle{max-width:72ch;line-height:1.5}.ann-browse-hint{margin-top:6px}.ann-card{min-width:0;padding:22px 24px}.ann-card-title{margin:0;font-size:17px;font-weight:700;line-height:1.3;color:var(--text-primary)}.ann-card-lead{margin:4px 0 0;font-size:13px;line-height:1.5;color:var(--text-secondary)}.ann-empty{margin:0;padding:20px 16px;border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-muted);font-size:13px;line-height:1.5;text-align:center}.ann-field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:600;color:var(--text-secondary)}.ann-field .form-input{width:100%;min-width:0;font-weight:400}.ann-new-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:14px}.ann-new-title{flex:0 1 360px}.ann-new--idle{padding-top:18px;padding-bottom:18px}.ann-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.ann-list-total{flex:0 0 auto;font-size:13px;color:var(--text-muted)}.ann-toolbar{display:flex;gap:10px;margin-bottom:12px}.ann-search{flex:1 1 auto;min-width:0}.ann-filter-toggle{flex:0 0 auto}.ann-filter-toggle.is-active,.ann-filter-toggle.is-active:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-secondary))}.ann-filters{margin-bottom:14px;padding:16px;border-radius:var(--radius-md);background:var(--bg-primary);border:1px solid var(--border-secondary)}.ann-filters-hint{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--text-muted)}.ann-filters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.ann-check{display:flex;align-items:center;gap:10px;min-height:40px;margin-top:8px;font-size:14px;color:var(--text-primary);cursor:pointer}.ann-check input{width:18px;height:18px;accent-color:var(--accent-primary)}.ann-check.is-disabled{opacity:.5;cursor:not-allowed}.ann-filters-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.ann-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.ann-item{display:flex;align-items:center;gap:12px;min-width:0;border-top:1px solid var(--border-secondary)}.ann-item:first-child{border-top:none}.ann-item-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px;margin:2px -10px;padding:12px 10px;border:none;border-radius:var(--radius-md);background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.ann-item-main:hover{background:var(--bg-primary)}.ann-item-main:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.ann-item.is-current .ann-item-main{background:color-mix(in srgb,var(--accent-primary) 6%,transparent)}.ann-item-top{display:flex;align-items:flex-start;gap:10px;min-width:0}.ann-item-title{flex:1 1 auto;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:15px;font-weight:600;line-height:1.4;color:var(--text-primary)}.ann-item-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;min-width:0;font-size:12.5px;line-height:1.45;color:var(--text-secondary)}.ann-item-meta>bdi{overflow-wrap:anywhere}.ann-item-meta>bdi+bdi:before,.ann-gallery-sub>bdi+bdi:before{content:"·";margin:0 6px;color:var(--text-muted)}.ann-item-id{color:var(--text-muted);font-variant-numeric:tabular-nums}.ann-live{color:var(--accent-success);font-weight:600}.ann-item-actions{flex:0 0 auto}.ann-pill{flex:0 0 auto;display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.ann-pill--open{background:color-mix(in srgb,var(--accent-success) 16%,transparent);color:var(--accent-success)}.ann-pill--closed{background:var(--bg-tertiary);color:var(--text-secondary)}.ann-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-secondary)}.ann-pager-label{font-size:13px;color:var(--text-secondary);white-space:nowrap}.ann-toast{position:fixed;bottom:24px;inset-inline-end:24px;z-index:1300;max-width:min(420px,calc(100vw - 32px));padding:12px 18px;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;line-height:1.4;box-shadow:var(--shadow-lg);overflow-wrap:anywhere;animation:annToastIn .2s ease}.ann-toast--success{background:var(--accent-success)}.ann-toast--error{background:var(--accent-danger)}@keyframes annToastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ann-gallery-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990;display:flex;justify-content:center;align-items:stretch;padding:clamp(0px,3vw,40px);background:#0c0f16b8;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .15s ease}.ann-gallery{display:flex;flex-direction:column;width:min(1240px,100%);height:100%;min-height:0;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:16px;overflow:hidden;box-shadow:0 24px 80px #00000073}.ann-gallery-head{flex:0 0 auto;display:flex;align-items:flex-start;gap:16px;padding:18px 22px;border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.ann-gallery-heading{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}.ann-gallery-title{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:18px;font-weight:700;line-height:1.35;color:var(--text-primary)}.ann-gallery-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;color:var(--text-secondary)}.ann-gallery-sub{font-size:12.5px;line-height:1.45;color:var(--text-muted);overflow-wrap:anywhere}.ann-gallery-actions{flex:0 0 auto;display:flex;gap:8px}.ann-gallery-body{flex:1 1 auto;min-height:0;display:flex;overflow:hidden}.ann-gallery-grid-wrap{flex:1 1 auto;min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:18px}.ann-gallery-note{margin:0 0 14px;font-size:13px;color:var(--text-muted)}.ann-gallery-empty{display:flex;align-items:center;justify-content:center;min-height:240px;color:var(--text-muted);font-size:14px}.ann-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.ann-tile{display:flex;flex-direction:column;min-width:0;padding:0;border:1px solid var(--border-primary);border-radius:12px;overflow:hidden;background:var(--bg-secondary);color:inherit;font:inherit;text-align:start;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.ann-tile:hover{border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border-primary))}.ann-tile.is-active{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary)}.ann-tile:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.ann-tile-image{position:relative;display:block;aspect-ratio:4 / 3;background:var(--bg-tertiary);overflow:hidden}.ann-tile-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:8px 10px}.ann-tile-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;color:var(--text-primary)}.ann-tile-grade{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums}.ann-tile-grade.is-graded{color:var(--accent-success)}.ann-badge{position:absolute;top:6px;inset-inline-start:6px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2}.ann-badge--display{background:var(--accent-primary);color:#fff}.ann-gallery-side{flex:0 0 380px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px;border-inline-start:1px solid var(--border-primary);background:var(--bg-secondary)}.ann-review{display:flex;flex-direction:column;gap:12px;min-width:0}.ann-review-image{position:relative;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;border-radius:10px;overflow:hidden;background:var(--bg-tertiary)}.ann-review-hint{margin:-6px 0 0;font-size:12px;color:var(--text-muted);text-align:center}.ann-review-name{font-size:16px;font-weight:700;color:var(--text-primary);overflow-wrap:anywhere}.ann-review-date{margin-top:2px;font-size:12.5px;color:var(--text-muted)}.ann-review-display{width:100%}.ann-grade{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--radius-md);background:var(--bg-primary);border:1px solid var(--border-secondary)}.ann-grade-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.ann-grade-title{font-size:14px;font-weight:700;color:var(--text-primary)}.ann-grade-current{font-size:13px;font-weight:600;color:var(--accent-success)}.ann-grade-current.is-empty{font-weight:500;color:var(--text-muted)}.ann-grade-comment{margin:0;font-size:13px;line-height:1.5;color:var(--text-secondary);overflow-wrap:anywhere}.ann-grade-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ann-grade-actions{display:flex;flex-wrap:wrap;gap:8px}.ann-grade-actions:empty{display:none}.ann-review-sheet .ann-review-image{aspect-ratio:auto;height:min(46vh,380px)}.ann-tile-pages{display:block;margin-top:-4px;padding:0 10px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-muted)}.ann-gallery-extra{display:flex;gap:8px}.ann-review-image.is-untouched img{opacity:.5}.ann-page-flag{position:absolute;top:8px;inset-inline-start:8px;padding:4px 10px;border-radius:999px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:600;line-height:1.3}.ann-pages{display:flex;align-items:center;gap:8px}.ann-pages-arrow{flex:0 0 auto;width:40px;height:40px;padding:0;font-size:22px;line-height:1}.ann-pages-label{flex:1 1 auto;min-width:0;text-align:center;font-size:13px;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.ann-lightbox-caption{position:absolute;top:max(16px,env(safe-area-inset-top));inset-inline-start:16px;max-width:calc(100% - 160px);min-height:44px;display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:15px;font-weight:600}.ann-lightbox-bar{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;max-width:100%}.ann-lightbox-arrow,.ann-lightbox-action{min-height:44px;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:#ffffff1f;color:#fff;font:inherit;font-weight:600;cursor:pointer}.ann-lightbox-arrow{width:44px;padding:0;font-size:24px;line-height:1}.ann-lightbox-action{padding:0 18px}.ann-lightbox-arrow:hover:not(:disabled),.ann-lightbox-action:hover{background:#fff3}.ann-lightbox-arrow:disabled{opacity:.35;cursor:default}.ann-lightbox-page{min-width:120px;text-align:center;color:#fff;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}@media (max-width: 768px){.ann-page{gap:12px}.ann-card{padding:16px}.ann-card-title{font-size:16px}.ann-page .form-input{min-height:44px;font-size:16px}.ann-page .btn{min-height:44px}.ann-new-row{flex-direction:column;align-items:stretch}.ann-new-title{flex:1 1 auto}.ann-filter-toggle{padding:0 14px}.ann-filters{margin-left:-4px;margin-right:-4px;padding:14px 12px}.ann-filters-grid{grid-template-columns:1fr 1fr;gap:12px 10px}.ann-filters-grid>.ann-field{grid-column:1 / -1}.ann-filters-grid>.ann-field:nth-child(5),.ann-filters-grid>.ann-field:nth-child(6){grid-column:auto}.ann-check{min-height:44px}.ann-filters-actions .btn{flex:1 1 0}.ann-item{flex-direction:column;align-items:stretch;gap:0}.ann-item-main{margin:0 -8px;padding:14px 8px}.ann-item-actions{padding:0 0 12px}.ann-item-main+.ann-item-actions{margin-top:-4px}.ann-item-actions .btn{min-height:40px}.ann-pager .btn{flex:1 1 0}.ann-toast{left:16px;right:16px;bottom:calc(88px + env(safe-area-inset-bottom));max-width:none;text-align:center}.ann-gallery-overlay{padding:0;background:var(--bg-primary);backdrop-filter:none;-webkit-backdrop-filter:none}.ann-gallery{width:100%;border:none;border-radius:0;box-shadow:none}.ann-gallery-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"heading close" "extra extra";gap:10px 12px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}.ann-gallery-heading{grid-area:heading}.ann-gallery-title{font-size:16px}.ann-gallery-actions{display:contents}.ann-gallery-actions>.btn:not(.ann-gallery-close){grid-area:extra;width:100%}.ann-gallery-extra{grid-area:extra}.ann-gallery-extra>.btn{flex:1 1 0}.ann-gallery-close{grid-area:close;align-self:start;padding:0 16px}.ann-gallery-grid-wrap{padding:12px 16px calc(16px + env(safe-area-inset-bottom))}.ann-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ann-tile-caption{min-height:40px;padding:6px 10px}.ann-review-sheet .sheet-footer{flex-wrap:nowrap}.ann-review-sheet .sheet-footer .ann-step-btn{flex:0 1 auto;padding-left:14px;padding-right:14px}.ann-review-sheet .sheet-footer .ann-save-btn{flex:1 1 auto}.ann-review-sheet .form-input{min-height:44px;font-size:16px}.ann-review-sheet .ann-review-display,.ann-review-sheet .ann-grade-actions .btn{min-height:44px}.ann-review-sheet .ann-pages-arrow{width:44px;height:44px}.ann-review-sheet .ann-grade-actions .btn{flex:1 1 auto}}.ann-filters .form-input,.ann-grade .form-input{background:var(--bg-secondary);border-color:var(--border-primary)}.ann-filters .form-input:focus,.ann-grade .form-input:focus{border-color:var(--accent-primary)}.sf-page{--sf-gap: 16px;display:flex;flex-direction:column;gap:var(--sf-gap);min-width:0}.sf-page .content-header{margin-bottom:4px}.sf-page .content-subtitle{max-width:70ch;line-height:1.5}.sf-step{min-width:0;padding:22px 24px}.sf-step-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.sf-step-num{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--accent-primary) 14%,transparent);color:var(--accent-primary);font-size:14px;font-weight:700;line-height:1}.sf-step-heading{flex:1;min-width:0}.sf-step-title{margin:2px 0 0;font-size:17px;font-weight:700;line-height:1.3;color:var(--text-primary)}.sf-step-lead{margin:4px 0 0;font-size:13px;line-height:1.5;color:var(--text-secondary)}.sf-empty{margin:0;padding:18px 16px;border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-muted);font-size:13px;line-height:1.5;text-align:center}.sf-empty--live{display:flex;flex-direction:column;gap:4px;text-align:start}.sf-empty--live strong{color:var(--text-primary);font-size:14px;font-weight:600}.sf-text-btn{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--accent-primary);font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.sf-text-btn:hover{background:color-mix(in srgb,var(--accent-primary) 9%,transparent)}.sf-text-btn--danger{color:var(--text-secondary)}.sf-text-btn--danger:hover{color:var(--accent-danger);background:color-mix(in srgb,var(--accent-danger) 9%,transparent)}.sf-check{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid var(--border-primary);background:var(--bg-secondary);color:#fff;transition:background .15s ease,border-color .15s ease}.sf-check svg{width:14px;height:14px}.is-selected>.sf-check,.is-selected .sf-file-main>.sf-check{background:var(--accent-primary);border-color:var(--accent-primary)}.sf-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent-primary);color:#fff;font-size:11px;font-weight:700;line-height:1}.sf-count--muted{background:color-mix(in srgb,var(--accent-success) 18%,transparent);color:var(--accent-success)}.sf-search{width:100%;min-width:0}.sf-upload{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:16px}.sf-upload-actions{display:flex;flex-wrap:wrap;gap:8px}.sf-upload-hint{flex:1 1 220px;min-width:0;margin:0;font-size:12px;line-height:1.5;color:var(--text-muted)}.sf-alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 12px 12px 14px;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--accent-warning) 40%,transparent);background:color-mix(in srgb,var(--accent-warning) 10%,var(--bg-secondary));color:var(--text-primary)}.sf-alert-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.5}.sf-alert-close,.sf-bar-msg-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:-4px -4px -4px 0;border:none;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.sf-alert-close:hover,.sf-bar-msg-close:hover{background:color-mix(in srgb,currentColor 10%,transparent)}.sf-library-tools{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.sf-chips{display:flex;flex-wrap:wrap;gap:6px}.sf-chip{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);font:inherit;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.sf-chip:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sf-chip.is-active{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-secondary));color:var(--accent-primary);font-weight:600}.sf-chip--selected:not(.is-active){border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border-primary));color:var(--accent-primary)}.sf-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.sf-file{display:flex;align-items:center;gap:4px;min-width:0;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.sf-file:hover{border-color:color-mix(in srgb,var(--accent-primary) 35%,var(--border-primary))}.sf-file.is-selected{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-secondary));box-shadow:inset 0 0 0 1px var(--accent-primary)}.sf-file-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:12px 14px;border:none;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer;border-radius:var(--radius-md)}.sf-file-main:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.sf-file-main>.sf-check{order:3}.sf-type{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0 2px;border-radius:10px;background:color-mix(in srgb,var(--sf-type-color, var(--text-secondary)) 13%,var(--bg-secondary));color:var(--sf-type-color, var(--text-secondary));font-size:11px;font-weight:800;letter-spacing:.02em;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-type--documents{--sf-type-color: var(--accent-primary)}.sf-type--images{--sf-type-color: var(--accent-teal)}.sf-type--videos{--sf-type-color: var(--accent-purple)}.sf-type--audio{--sf-type-color: var(--accent-warning)}.sf-type--apk{--sf-type-color: var(--accent-success)}.sf-file-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.sf-file-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:14px;font-weight:600;line-height:1.35;color:var(--text-primary)}.sf-file-meta{font-size:12px;line-height:1.4;color:var(--text-muted);overflow-wrap:anywhere}.sf-file-actions{flex:0 0 auto;display:flex;align-items:center;gap:2px;padding-inline-end:8px}.sf-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}.sf-pager-label{font-size:13px;color:var(--text-secondary);white-space:nowrap}.sf-tabs{display:none}.sf-panels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"live students" "classes students";grid-template-rows:auto 1fr;gap:20px 24px}.sf-panel{min-width:0;display:flex;flex-direction:column;gap:10px}.sf-panel--live{grid-area:live}.sf-panel--classes{grid-area:classes}.sf-panel--students{grid-area:students}.sf-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}.sf-panel-title{display:inline-flex;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.sf-live-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--accent-success);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-success) 20%,transparent)}.sf-live-dot.is-idle{background:var(--text-muted);box-shadow:none}.sf-people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.sf-people--students{max-height:460px;overflow-y:auto;overscroll-behavior:contain;padding-inline-end:2px}.sf-person{width:100%;min-width:0;display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:inherit;font:inherit;text-align:start;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.sf-person:hover{border-color:color-mix(in srgb,var(--accent-primary) 35%,var(--border-primary))}.sf-person.is-selected{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-secondary));box-shadow:inset 0 0 0 1px var(--accent-primary)}.sf-person:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.sf-avatar{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;overflow:hidden;color:#fff;font-size:14px;font-weight:700}.sf-avatar img{width:100%;height:100%;object-fit:cover}.sf-person-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.sf-person-name{font-size:14px;font-weight:600;line-height:1.35;color:var(--text-primary);overflow-wrap:anywhere}.sf-person-meta{font-size:12px;line-height:1.35;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-group .sf-person-name{font-size:15px}.sf-more{align-self:stretch;margin-top:4px}.sf-bar{position:sticky;bottom:0;z-index:20;margin-top:4px;padding-bottom:16px;background:linear-gradient(to top,var(--bg-primary) 60%,transparent);pointer-events:none}.sf-bar>*{pointer-events:auto}.sf-bar-inner{display:flex;align-items:center;gap:16px;padding:12px 12px 12px 20px;border:1px solid var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-lg)}[dir=rtl] .sf-bar-inner{padding:12px 20px 12px 12px}.sf-bar-summary{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sf-bar-line{font-size:15px;font-weight:700;line-height:1.3;color:var(--text-primary);overflow-wrap:anywhere}.sf-bar-line--sub{font-size:13px;font-weight:500;color:var(--text-secondary)}.sf-bar-line.is-missing{font-weight:500;color:var(--text-muted)}.sf-bar-line.is-missing:first-child{font-size:14px;color:var(--text-secondary)}.sf-send{flex:0 0 auto;min-width:132px;min-height:46px;padding:0 24px;border-radius:var(--radius-md);font-size:15px;font-weight:700}.sf-send.btn-success:disabled{opacity:1}.sf-send[data-ready=false]:not(:disabled){background:color-mix(in srgb,var(--accent-primary) 55%,var(--bg-secondary));box-shadow:none}.sf-bar-msg{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 10px 10px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:500;line-height:1.5;box-shadow:var(--shadow-md);animation:sfMsgIn .2s ease}.sf-bar-msg-text{flex:1;min-width:0;padding-top:2px;overflow-wrap:anywhere}.sf-bar-msg--error{border:1px solid color-mix(in srgb,var(--accent-danger) 35%,transparent);background:color-mix(in srgb,var(--accent-danger) 10%,var(--bg-secondary));color:color-mix(in srgb,var(--accent-danger) 75%,var(--text-primary))}.sf-bar-msg--success{border:1px solid color-mix(in srgb,var(--accent-success) 35%,transparent);background:color-mix(in srgb,var(--accent-success) 10%,var(--bg-secondary));color:color-mix(in srgb,var(--accent-success) 70%,var(--text-primary))}@keyframes sfMsgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width: 768px){.sf-page{--sf-gap: 12px}.sf-step{padding:16px;border-radius:var(--radius-lg)}.sf-step-head{margin-bottom:14px}.sf-step-title{font-size:16px}.sf-upload-actions,.sf-upload-actions .btn{flex:1 1 auto}.sf-upload-actions .btn{min-height:44px}.sf-upload-hint{flex-basis:100%}.sf-search{min-height:44px;font-size:16px}.sf-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:2px 16px;scrollbar-width:none;scroll-padding-inline:16px}.sf-chips::-webkit-scrollbar{display:none}.sf-chip{flex:0 0 auto;min-height:40px}.sf-file{flex-direction:column;align-items:stretch;gap:0}.sf-file-main{align-items:flex-start;padding:12px 12px 4px}.sf-type{width:40px;height:40px;font-size:10.5px}.sf-file-main>.sf-check{margin-top:8px}.sf-file-actions{padding:0 6px 6px 54px}[dir=rtl] .sf-file-actions{padding:0 54px 6px 6px}.sf-text-btn{min-height:40px}.sf-pager .btn{flex:1 1 0;min-height:44px}.sf-tabs{display:flex;gap:4px;margin-bottom:14px;padding:4px;border-radius:12px;background:var(--bg-tertiary)}.sf-tab{flex:1 1 auto;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:0 8px;border:none;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.sf-tab.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-md)}.sf-tab-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-panels{display:block}.sf-panel{display:none}.sf-panels[data-tab=live] .sf-panel--live,.sf-panels[data-tab=classes] .sf-panel--classes,.sf-panels[data-tab=students] .sf-panel--students{display:flex}.sf-panel-head .sf-panel-title,.sf-panel-head>.sf-count{display:none}.sf-panel-head:not(:has(.sf-text-btn)){display:none}.sf-panel-head{justify-content:flex-end}.sf-people--students{max-height:none;overflow:visible}.sf-person{min-height:56px}.sf-more{min-height:44px}.sf-bar{margin:0 -16px -16px;padding:0;background:none}.sf-bar-msg{margin:0 12px 8px}.sf-bar-inner{gap:12px;padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));border:none;border-top:1px solid var(--border-primary);border-radius:0;box-shadow:0 -6px 20px #0f172a14}[dir=rtl] .sf-bar-inner{padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.sf-bar-line{font-size:14px}.sf-bar-line--sub{font-size:12px}.sf-send{min-width:108px;min-height:48px;padding:0 20px}}.sf-file-meta>bdi+bdi:before{content:"·";margin:0 5px}.usr-page .content-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.usr-header-actions{display:flex;flex-wrap:wrap;gap:8px}.usr-page .usr-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.usr-page .usr-search{flex:1 1 260px;max-width:420px}.usr-page .usr-role-filter{width:auto}.usr-empty{margin:8px 0 16px;color:var(--text-muted);font-size:14px}.usr-list{list-style:none;margin:0;padding:0;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.usr-list>li+li{border-top:1px solid var(--border-secondary)}.usr-row{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;border:none;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.usr-row:active,.usr-row:hover{background:var(--bg-tertiary)}.usr-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.usr-page .usr-avatar{width:40px;height:40px;flex-shrink:0}.usr-row-text{display:flex;flex-direction:column;min-width:0;flex:1}.usr-row-name{font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usr-row-email{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usr-row-meta{margin-top:2px;font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usr-row-disabled{color:var(--accent-danger);font-weight:600;margin-inline-end:6px}.usr-facts{margin:0 0 18px;display:grid;gap:0;border:1px solid var(--border-secondary);border-radius:var(--radius-md);overflow:hidden}.usr-facts>div{display:flex;justify-content:space-between;gap:16px;padding:12px 14px}.usr-facts>div+div{border-top:1px solid var(--border-secondary)}.usr-facts dt{color:var(--text-secondary);font-size:14px}.usr-facts dd{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);text-align:end;overflow-wrap:anywhere}.usr-facts dd.is-ok{color:var(--accent-success)}.usr-facts dd.is-off{color:var(--accent-danger)}.usr-sheet-actions{display:flex;flex-direction:column;gap:10px}.usr-sheet-actions .btn{width:100%;min-height:48px;justify-content:center}.usr-sheet-actions .usr-danger-link{color:var(--accent-danger)}.usr-delete-confirm{padding:14px;border:1px solid var(--accent-danger);border-radius:var(--radius-md)}.usr-delete-confirm p{margin:0 0 12px;font-size:14px;color:var(--text-primary)}.usr-delete-confirm-row{display:flex;gap:10px}.usr-delete-confirm-row .btn{flex:1 1 0}@media (max-width: 768px){.usr-page .content-header{align-items:stretch;gap:14px}.usr-header-actions{width:100%}.usr-header-actions .btn{flex:1 1 0;min-height:44px;justify-content:center}.usr-page .stats-grid{gap:10px;margin-bottom:16px}.usr-page .stat-card{padding:14px 16px}.usr-page .stat-card .stat-value{font-size:26px}.usr-page .usr-filter-bar{margin-bottom:12px}.usr-page .usr-search{flex:1 1 100%;max-width:none;min-height:44px}.usr-page .usr-role-filter{flex:1 1 100%;min-height:44px}.usr-page .invitation-item{flex-wrap:wrap;gap:8px}}.clm-page .content-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.clm-school{display:flex;align-items:center;gap:10px;margin-bottom:20px}.clm-school .form-label{margin:0}.clm-school .form-input{width:auto;min-width:240px}.clm-summary{display:flex;flex-wrap:wrap;gap:6px 20px;margin-bottom:20px;font-size:14px;color:var(--text-secondary)}.clm-summary strong{font-size:16px;color:var(--text-primary)}.clm-summary-warn strong{color:var(--accent-warning)}.clm-search{max-width:360px;margin-bottom:20px}.clm-section+.clm-section{margin-top:28px}.clm-section-title{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.clm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:0;padding:0;list-style:none}.clm-card{display:flex;flex-direction:column;gap:14px;padding:16px 16px 14px 18px;border:1px solid var(--border-primary);border-left:5px solid var(--clm-color);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-soft)}.clm-card-body{display:flex;flex-direction:column;gap:3px;min-width:0}.clm-card-name{font-size:17px;font-weight:700;color:var(--text-primary);overflow-wrap:anywhere}.clm-card-meta{font-size:13px;color:var(--text-secondary)}.clm-card-actions{display:flex;gap:8px;margin-top:auto}.clm-card-actions .btn{flex:1 1 0;justify-content:center}.clm-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;border:1px dashed var(--border-primary);border-radius:var(--radius-lg);text-align:center}.clm-empty-title{margin:0;font-size:16px;font-weight:700;color:var(--text-primary)}.clm-empty-text{margin:0 0 8px;max-width:440px;font-size:14px;line-height:1.5;color:var(--text-secondary)}.clm-no-match{margin:8px 0;font-size:14px;color:var(--text-muted)}.clm-hint{margin:6px 0 0;font-size:12px;line-height:1.4;color:var(--text-muted)}.clm-toast{position:fixed;right:24px;bottom:24px;z-index:1100;padding:12px 20px;border-radius:8px;box-shadow:var(--shadow-lg);color:#fff;font-size:14px;font-weight:500}.clm-toast--success{background:var(--accent-success)}.clm-toast--error{background:var(--accent-danger)}.clm-sheet .sheet-footer{align-items:center}.clm-footer-spacer{flex:1 1 auto}.clm-delete-link{color:var(--accent-danger)}.clm-colors{display:flex;flex-wrap:wrap;gap:10px}.clm-color{width:34px;height:34px;padding:0;border:2px solid transparent;border-radius:10px;cursor:pointer;box-shadow:inset 0 0 0 2px var(--bg-secondary)}.clm-color.is-selected{border-color:var(--text-primary)}.clm-color:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.clm-delete-confirm{margin-top:20px;padding:14px;border:1px solid var(--accent-danger);border-radius:var(--radius-md)}.clm-delete-confirm p{margin:0 0 12px;font-size:14px;line-height:1.45;color:var(--text-primary)}.clm-delete-confirm-row{display:flex;gap:10px}.clm-delete-confirm-row .btn{flex:1 1 0;justify-content:center}.clm-members-tools{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.clm-members-tools .form-input{flex:1 1 200px}.clm-segmented{display:inline-flex;padding:3px;border-radius:10px;background:var(--bg-tertiary)}.clm-segmented button{padding:6px 12px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.clm-segmented button.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-soft)}.clm-segmented button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.clm-bulk{display:flex;gap:4px;margin-bottom:6px}.clm-student-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.clm-student{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;cursor:pointer}.clm-student:hover{background:var(--bg-tertiary)}.clm-student.is-selected{background:color-mix(in srgb,var(--accent-primary) 8%,transparent)}.clm-student input{flex-shrink:0;width:18px;height:18px}.clm-student-text{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.clm-student-name{font-size:14px;font-weight:600;color:var(--text-primary)}.clm-student-email{overflow:hidden;font-size:12px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.clm-student-class{flex-shrink:0;max-width:45%;padding:2px 8px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clm-student-class.is-moving{background:color-mix(in srgb,var(--accent-warning) 18%,transparent);color:var(--text-primary)}.clm-move-note{font-size:12px;line-height:1.35;color:var(--text-secondary)}@media (max-width: 768px){.clm-page .content-header{align-items:stretch;gap:14px}.clm-new-btn{width:100%;min-height:44px;justify-content:center}.clm-school{flex-direction:column;align-items:stretch}.clm-school .form-input{width:100%;min-width:0}.clm-search{max-width:none}.clm-grid{grid-template-columns:1fr}.clm-card-actions .btn,.clm-sheet .form-input,.clm-sheet .btn{min-height:44px}.clm-sheet .sheet-footer .btn{justify-content:center}.clm-move-note{flex:1 1 100%}.clm-segmented{width:100%}.clm-segmented button{flex:1 1 0;min-height:36px}.clm-student{min-height:52px}.clm-toast{left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));text-align:center}}@media (max-width: 768px){.student-overview .content-header{align-items:flex-start!important}.student-overview .content-header .btn{flex-shrink:0;min-height:44px}.student-overview .usage-toolbar{padding:16px}.student-overview .usage-toolbar-fields>.usage-field{flex:1 1 100%;min-width:0}.student-overview .usage-date-inputs{width:100%}.student-overview .usage-date-inputs .form-input{flex:1 1 0;min-width:0;width:auto}.student-overview .usage-toolbar-actions .btn{min-height:44px}.student-overview .s360-dashboard-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:16px}.student-overview .s360-dash-card{padding:16px}.student-overview .s360-dash-header{flex-wrap:wrap;gap:8px;margin-bottom:14px}.student-overview .s360-stat-grid.col-4{grid-template-columns:repeat(2,minmax(0,1fr))}.student-overview .s360-stat-grid.col-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.att-page{display:flex;flex-direction:column;gap:16px;max-width:1120px}.att-page .content-header{margin-bottom:0}.att-tone-present{background:var(--accent-success)}.att-tone-late{background:var(--accent-warning)}.att-tone-excused{background:var(--text-muted)}.att-tone-absent{background:var(--accent-danger)}.att-text-present{color:var(--accent-success)}.att-text-late{color:var(--accent-warning)}.att-text-excused{color:var(--text-secondary)}.att-text-absent{color:var(--accent-danger)}.att-zero{color:var(--text-muted)}.att-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:16px 20px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.att-field{display:flex;flex-direction:column;gap:6px;flex:1 1 170px;min-width:0}.att-field--wide{flex-basis:220px}@media (min-width: 769px){.att-field{max-width:260px}.att-field--wide{max-width:300px}}.att-field-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.att-input{display:block;width:100%;min-width:0;height:42px;padding:0 12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font:inherit;font-size:14px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.att-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 18%,transparent)}.att-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}[data-theme=dark] .att-input::-webkit-calendar-picker-indicator{filter:invert(1)}.att-filter-actions{display:flex;gap:8px;flex:0 0 auto}.att-btn{height:42px}.att-tabs{display:inline-flex;align-self:flex-start;gap:4px;padding:4px;background:var(--bg-tertiary);border-radius:12px}.att-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;border:none;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.att-tab:hover{color:var(--text-primary)}.att-tab.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-md)}.att-tab-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-tab-count{flex-shrink:0;font-size:12px;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.att-tab.is-active .att-tab-count{color:var(--accent-primary)}.att-panel{display:flex;flex-direction:column;min-width:0}.att-panel-note{margin:0;font-size:13px;color:var(--text-secondary)}.att-empty{padding:40px 16px;text-align:center;color:var(--text-muted);font-size:14px}.att-panel>.att-empty{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.att-day-title{position:sticky;top:-1px;z-index:1;margin:0;padding:16px 4px 8px;background:var(--bg-primary);font-size:13px;font-weight:700;color:var(--text-secondary)}.att-list{list-style:none;margin:0;padding:0;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.att-list>li+li{border-top:1px solid var(--border-secondary)}.att-session{display:grid;grid-template-columns:minmax(52px,max-content) minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 16px;border:none;background:transparent;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer;transition:background .12s ease}.att-session.is-open{background:var(--bg-primary)}@media (hover: hover){.att-session:hover,.att-student:hover{background:var(--bg-primary)}}.att-session:active,.att-student:active{background:var(--bg-tertiary)}.att-session:focus-visible,.att-student:focus-visible,.att-count:focus-visible,.att-tab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.att-session-time{display:flex;flex-direction:column;line-height:1.25;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.att-session-end{font-size:13px;font-weight:500;color:var(--text-muted)}.att-session-live{font-size:12px;font-weight:600;color:var(--accent-success)}.att-session-main{display:flex;flex-direction:column;gap:2px;min-width:0}.att-session-title{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-session-meta{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-session-count{font-size:13px;font-weight:600;color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.att-summary-head{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.att-section-title{margin:0;font-size:17px;font-weight:700;color:var(--text-primary)}.att-kpis{display:grid;grid-template-columns:1.3fr 1.3fr .8fr;gap:12px;margin-bottom:20px}.att-kpi{display:flex;flex-direction:column;gap:12px;min-width:0;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.att-kpi-title{margin:0;font-size:13px;font-weight:600;color:var(--text-secondary)}.att-kpi--quiz{justify-content:space-between}.att-kpi-big{font-size:40px;font-weight:800;line-height:1;color:var(--accent-primary);font-variant-numeric:tabular-nums}.att-bar{display:flex;gap:2px;width:100%;height:6px;border-radius:999px;background:var(--bg-tertiary);overflow:hidden}.att-bar--lg{height:10px}.att-bar-seg{min-width:3px;flex-basis:0}.att-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;list-style:none;margin:0;padding:0}.att-legend li{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px}.att-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%}.att-legend-lbl{flex:1;min-width:0;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-legend-val{font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.att-legend-pct{min-width:34px;text-align:end;color:var(--text-muted);font-variant-numeric:tabular-nums}.att-metrics{display:grid;gap:8px}.att-metrics--4{grid-template-columns:repeat(4,minmax(0,1fr))}.att-metrics--2{grid-template-columns:repeat(2,minmax(0,1fr))}.att-metric{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-width:0;padding:10px 4px;background:var(--bg-primary);border-radius:var(--radius-md);text-align:center}.att-metric-val{font-size:18px;font-weight:700;line-height:1.1;color:var(--text-primary);font-variant-numeric:tabular-nums}.att-metric-val.att-text-present{color:var(--accent-success)}.att-metric-val.att-text-late{color:var(--accent-warning)}.att-metric-val.att-text-excused{color:var(--text-secondary)}.att-metric-val.att-text-absent{color:var(--accent-danger)}.att-metric-lbl{font-size:11px;font-weight:500;line-height:1.25;color:var(--text-secondary);overflow-wrap:anywhere}.att-student-tools{display:flex;gap:8px;margin-bottom:12px}.att-search{flex:1 1 auto}.att-sort{flex:0 0 auto;width:auto;max-width:48%}.att-student-head,.att-student{display:grid;grid-template-columns:36px minmax(140px,1.2fr) minmax(0,2fr) minmax(90px,.8fr) 64px;grid-template-areas:"avatar name att assign quiz";align-items:center;column-gap:16px}.att-student-head{padding:0 16px 8px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted)}.att-student-head span:first-child{grid-column:1 / 3}.att-student-head span:last-child{text-align:end}.att-student{width:100%;min-height:60px;padding:10px 16px;border:none;background:transparent;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer;transition:background .12s ease}.att-avatar{grid-area:avatar;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;overflow:hidden;background:color-mix(in srgb,var(--accent-primary) 16%,var(--bg-secondary));color:var(--accent-primary);font-size:14px;font-weight:700}.att-avatar img{width:100%;height:100%;object-fit:cover}.att-student-name{grid-area:name;min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-student-att{grid-area:att;display:flex;flex-direction:column;gap:6px;min-width:0}.att-student-nums{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.att-student-extra{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.att-student-assign{grid-area:assign}.att-student-quiz{grid-area:quiz;text-align:end;font-weight:700;color:var(--text-primary)}.att-more{align-self:center;margin-top:12px;min-width:220px}.att-alert{margin-bottom:12px}.att-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.att-count{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;min-height:60px;padding:8px 4px;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-primary);color:var(--text-primary);font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease}.att-count-val{font-size:20px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.att-count-lbl{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.att-count--present .att-count-val{color:var(--accent-success)}.att-count--late .att-count-val{color:var(--accent-warning)}.att-count--excused .att-count-val{color:var(--text-secondary)}.att-count--absent .att-count-val{color:var(--accent-danger)}.att-count--present.is-active{--att-tone: var(--accent-success)}.att-count--late.is-active{--att-tone: var(--accent-warning)}.att-count--excused.is-active{--att-tone: var(--text-secondary)}.att-count--absent.is-active{--att-tone: var(--accent-danger)}.att-count.is-active{border-color:var(--att-tone);background:color-mix(in srgb,var(--att-tone) 12%,var(--bg-secondary));box-shadow:inset 0 0 0 1px var(--att-tone)}.att-link{align-self:flex-start;min-height:36px;margin-top:6px;padding:0 2px;border:none;background:none;color:var(--accent-primary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.att-rows{list-style:none;margin:8px 0 0;padding:0}.att-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-secondary)}.att-row:last-child{border-bottom:none}.att-row-main{flex:1;min-width:0}.att-row-name{font-size:15px;font-weight:600;color:var(--text-primary);overflow-wrap:anywhere}.att-row-meta{margin-top:2px;font-size:12.5px;color:var(--text-secondary);overflow-wrap:anywhere}.att-row-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}.att-row-reason{color:var(--text-muted)}.att-status{--att-tone: var(--accent-success);flex-shrink:0;min-height:38px;min-width:104px;padding:0 32px 0 14px;border:1px solid color-mix(in srgb,var(--att-tone) 30%,transparent);border-radius:999px;background-color:color-mix(in srgb,var(--att-tone) 12%,var(--bg-secondary));background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;color:var(--att-tone);font:inherit;font-size:13px;font-weight:700;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}[dir=rtl] .att-status{padding:0 14px 0 32px;background-position:12px 50%,17px 50%}.att-status[data-status=late]{--att-tone: var(--accent-warning)}.att-status[data-status=absent]{--att-tone: var(--accent-danger)}.att-status[data-status=excused]{--att-tone: var(--text-secondary)}.att-status option{color:var(--text-primary);background:var(--bg-secondary)}.att-status--static{display:inline-flex;align-items:center;max-width:150px;padding:6px 12px;background-image:none;font-size:12px;line-height:1.3;text-align:center;cursor:default}.att-student-detail{display:flex;flex-direction:column;gap:22px}.att-student-detail section{display:flex;flex-direction:column;gap:10px}.att-detail-title{margin:0;font-size:13px;font-weight:700;color:var(--text-secondary)}@media (max-width: 1024px){.att-kpis{grid-template-columns:1fr 1fr}.att-kpi--quiz{grid-column:1 / -1;flex-direction:row;align-items:center}.att-kpi--quiz .att-kpi-big{font-size:32px}}@media (max-width: 768px){.att-page{gap:14px}.att-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;padding:14px}.att-field--wide,.att-filter-actions{grid-column:1 / -1}.att-filter-actions .btn{flex:1 1 0}.att-input,.att-btn{height:44px;font-size:16px}.att-btn{font-size:15px}.att-input[type=date]{padding:0 10px}.att-tabs{display:grid;grid-template-columns:1fr 1fr;align-self:stretch}.att-tab{min-width:0;min-height:40px;padding:0 8px;gap:6px;font-size:13.5px}.att-session{grid-template-columns:minmax(48px,max-content) minmax(0,1fr) auto;gap:12px;padding:12px 14px}.att-session-count{font-size:12px}.att-kpis{grid-template-columns:1fr;gap:10px;margin-bottom:16px}.att-kpi{padding:14px}.att-kpi--quiz{grid-column:auto}.att-student-head{display:none}.att-student{grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"avatar name quiz" "avatar att att" "avatar assign assign";row-gap:5px;column-gap:12px;align-items:start;padding:11px 14px}.att-avatar{margin-top:2px}.att-student-name{font-size:15px;align-self:center}.att-student-quiz{align-self:center;font-size:13px;font-weight:600;color:var(--text-secondary)}.att-student-quiz:before{content:attr(data-label) " ";font-weight:500;color:var(--text-muted)}.att-student-assign{font-size:12px}.att-more{align-self:stretch;min-height:44px}.att-sort{max-width:46%}.att-status{min-height:44px}.att-row-device{display:none}.att-count{min-height:64px}.att-link{min-height:44px}}@media (max-width: 380px){.att-legend{grid-template-columns:1fr}.att-session-count{max-width:72px;white-space:normal;text-align:end}}.sch-page{min-width:0}.sch-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.sch-header-text{min-width:0}.sch-title{margin-bottom:2px}.sch-subtitle{margin:0;color:var(--text-secondary);font-size:14px}.sch-plan-status{margin:6px 0 0;font-size:13px;line-height:1.45;color:var(--text-secondary)}.sch-plan-status strong{font-weight:700;color:var(--text-primary)}.sch-plan-status.is-on strong{color:color-mix(in srgb,var(--accent-success) 75%,var(--text-primary))}.sch-add-btn{flex-shrink:0;min-height:40px;font-weight:600}.sch-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:16px}.sch-nav{display:flex;align-items:center;gap:2px;padding:3px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.sch-nav-btn{display:inline-grid;place-items:center;width:38px;height:38px;flex-shrink:0;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:500 24px/1 var(--font-sans);cursor:pointer}.sch-nav-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sch-arrow{display:inline-block;margin-top:-3px}[dir=rtl] .sch-arrow{transform:scaleX(-1)}.sch-period{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:190px;padding:0 6px;text-align:center;line-height:1.25}.sch-period-label{font-size:15px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.sch-period-sub{font-size:12px;color:var(--text-muted)}.sch-today-btn{min-height:46px;font-weight:600}.sch-toolbar-end{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-inline-start:auto}.sch-seg{display:inline-flex;gap:2px;padding:3px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.sch-seg button{min-height:36px;padding:0 16px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:600 13px var(--font-sans);cursor:pointer;white-space:nowrap}.sch-seg button:hover{color:var(--text-primary)}.sch-seg button.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-md)}.sch-filters{display:flex;gap:8px;min-width:0}.sch-filter.form-input{width:auto;min-width:150px;max-width:220px;height:42px;padding-block:0;background-color:var(--bg-secondary);border-color:var(--border-primary)}.sch-strip-sticky{position:sticky;top:0;z-index:6;margin:-6px -16px 6px;padding:6px 16px 10px;background:var(--bg-primary)}.sch-strip-sticky.is-stuck{box-shadow:0 calc(-1 * var(--sch-stick-gap, 0px)) 0 0 var(--bg-primary),0 1px 0 var(--border-primary)}.sch-days{display:grid;grid-template-columns:repeat(var(--sch-day-count, 7),minmax(0,1fr));gap:6px}.sch-day{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;min-height:64px;padding:8px 0 7px;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.sch-day-name{font-size:12px;font-weight:600;color:var(--text-secondary)}.sch-day-num{font-size:18px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.sch-day-marks{display:flex;gap:3px;height:6px;margin-top:2px}.sch-mark{width:6px;height:6px;border-radius:50%;background:var(--accent-primary)}.sch-mark--exam{background:var(--accent-danger)}.sch-mark--event{background:var(--accent-purple)}.sch-mark--field_trip{background:var(--accent-teal)}.sch-day.is-today{border-color:color-mix(in srgb,var(--accent-primary) 55%,var(--border-primary))}.sch-day.is-today .sch-day-name,.sch-day.is-today .sch-day-num{color:var(--accent-primary)}.sch-day.is-selected{background:var(--accent-primary);border-color:var(--accent-primary);box-shadow:0 4px 12px color-mix(in srgb,var(--accent-primary) 30%,transparent)}.sch-day.is-selected .sch-day-name,.sch-day.is-selected .sch-day-num{color:#fff}.sch-day.is-selected .sch-mark{background:#ffffffe6}[data-theme=dark] .sch-day.is-selected .sch-day-name,[data-theme=dark] .sch-day.is-selected .sch-day-num{color:#0f172a}[data-theme=dark] .sch-day.is-selected .sch-mark{background:#0f172abf}.sch-agenda{min-width:0}.sch-agenda-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;margin:6px 0 12px}.sch-agenda-title{margin:0;font-size:17px;font-weight:700;color:var(--text-primary)}.sch-agenda-sub{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);white-space:nowrap}.sch-today-tag{display:inline-block;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent-primary) 13%,transparent);color:var(--accent-primary);font-size:11.5px;font-weight:700;line-height:1.4}.sch-slots{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.sch-slot{display:grid;grid-template-columns:50px minmax(0,1fr);gap:12px;align-items:start}.sch-slot-time{display:flex;flex-direction:column;padding-top:11px;text-align:end;font-variant-numeric:tabular-nums;line-height:1.3}.sch-slot-start{font-size:15px;font-weight:700;color:var(--text-primary)}.sch-slot-end{font-size:12.5px;color:var(--text-muted)}.sch-slot.is-now .sch-slot-start{color:var(--accent-primary)}.sch-slot.is-past .sch-slot-start{color:var(--text-muted)}.sch-slot.is-past .sch-card{box-shadow:none}.sch-slot.is-past .sch-card-title{color:var(--text-secondary)}.sch-slot-items{display:flex;flex-direction:column;gap:8px;min-width:0}.sch-now-line{display:flex;align-items:center;gap:10px;margin:2px 0 10px;padding-inline-start:62px;font-size:12px;color:var(--text-muted)}.sch-now-line:after{content:"";flex:1;border-top:1px dashed var(--border-primary)}.sch-now-line{color:var(--accent-primary);font-weight:700}.sch-now-line:after{border-top:2px solid var(--accent-primary)}.sch-empty{padding:32px 16px;border:1px dashed var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--text-secondary);text-align:center}.sch-empty p{margin:0;font-size:14px}.sch-empty .btn{margin-top:14px;min-height:44px}.sch-card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%;min-width:0;min-height:44px;padding:12px 14px;padding-inline-start:17px;overflow:hidden;border:1px solid var(--border-primary);border-radius:12px;background:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 4%,var(--bg-secondary));box-shadow:var(--shadow-sm);color:var(--text-primary);font-family:inherit;text-align:start;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s ease,box-shadow .15s ease}.sch-card:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--sch-color, var(--accent-primary))}.sch-card:hover{border-color:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 45%,var(--border-primary))}.sch-card:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.sch-card.is-now{border-color:color-mix(in srgb,var(--accent-primary) 60%,var(--border-primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 16%,transparent)}.sch-card-head{display:flex;align-items:flex-start;gap:8px;min-width:0}.sch-card-head .sch-card-title{flex:1 1 auto;min-width:0}.sch-card-head .sch-status{flex-shrink:0;margin-top:1px}.sch-kind{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--sch-kind-color, var(--text-secondary))}.sch-kind--exam{--sch-kind-color: var(--accent-danger)}.sch-kind--event{--sch-kind-color: var(--accent-purple)}.sch-kind--field_trip{--sch-kind-color: var(--accent-teal)}.sch-status{margin-inline-start:auto;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;line-height:1.45;white-space:nowrap}.sch-status--now{background:var(--accent-primary);color:#fff}[data-theme=dark] .sch-status--now{color:#0f172a}.sch-status--next{background:color-mix(in srgb,var(--accent-primary) 13%,transparent);color:var(--accent-primary)}.sch-card-title{font-size:15.5px;font-weight:650;line-height:1.3;overflow-wrap:anywhere}.sch-card-meta{font-size:13px;line-height:1.4;color:var(--text-secondary);overflow-wrap:anywhere}.sch-card-note{display:-webkit-box;margin-top:5px;padding-top:6px;overflow:hidden;border-top:1px dashed var(--border-primary);font-size:13px;line-height:1.45;color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.sch-card-link{font-size:12.5px;line-height:1.4;color:var(--text-muted);overflow-wrap:anywhere}.sch-cal-card{overflow:hidden;border:1px solid var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-sm)}.sch-cal-note{padding:10px 16px;border-bottom:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);font-size:13px;line-height:1.45}.sch-cal-scroll{overflow-x:auto;overscroll-behavior-x:contain}.sch-cal{display:grid;grid-template-rows:auto auto}.sch-cal-corner,.sch-cal-head{position:sticky;top:0;z-index:4;border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.sch-cal-corner{inset-inline-start:0;z-index:6}.sch-cal-head{display:flex;flex-direction:column;gap:1px;min-width:0;padding:10px 12px 9px;border-inline-start:1px solid var(--border-secondary)}.sch-cal-head-day{font-size:13.5px;font-weight:700;color:var(--text-primary)}.sch-cal-head-date{font-size:12.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.sch-cal-head.is-today{box-shadow:inset 0 3px 0 var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-secondary))}.sch-cal-head.is-today .sch-cal-head-day,.sch-cal-head.is-today .sch-cal-head-date{color:var(--accent-primary)}.sch-cal-gutter{position:sticky;inset-inline-start:0;z-index:3;background:var(--bg-secondary)}.sch-cal-hour{position:absolute;inset-inline-end:10px;transform:translateY(-50%);font-size:12px;line-height:1;color:var(--text-muted);font-variant-numeric:tabular-nums}.sch-cal-hour:first-child{transform:translateY(4px)}.sch-cal-now-label{position:absolute;inset-inline-end:4px;z-index:1;padding:2px 6px;transform:translateY(-50%);border-radius:999px;background:var(--accent-primary);color:#fff;font-size:11.5px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums}[data-theme=dark] .sch-cal-now-label{color:#0f172a}.sch-cal-col{--sch-line: var(--border-secondary);--sch-half-line: color-mix(in srgb, var(--border-secondary) 55%, transparent);position:relative;min-width:0;border-inline-start:1px solid var(--border-secondary);background-image:linear-gradient(to bottom,var(--sch-line) 0 1px,transparent 1px),linear-gradient(to bottom,transparent calc(var(--sch-hour-h) / 2),var(--sch-half-line) calc(var(--sch-hour-h) / 2) calc(var(--sch-hour-h) / 2 + 1px),transparent calc(var(--sch-hour-h) / 2 + 1px));background-size:100% var(--sch-hour-h)}[data-theme=dark] .sch-cal-head,[data-theme=dark] .sch-cal-col{border-color:var(--border-primary)}[data-theme=dark] .sch-cal-col{--sch-line: var(--border-primary);--sch-half-line: color-mix(in srgb, var(--border-primary) 50%, transparent)}.sch-cal-col.is-today{background-color:color-mix(in srgb,var(--accent-primary) 4%,transparent)}.sch-cal-col.can-add{cursor:pointer}.sch-cal-ghost{position:absolute;inset-inline:3px;padding:3px 8px;overflow:hidden;border:1.5px dashed color-mix(in srgb,var(--accent-primary) 65%,transparent);border-radius:8px;background:color-mix(in srgb,var(--accent-primary) 7%,transparent);color:var(--accent-primary);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;pointer-events:none}.sch-cal-now{position:absolute;inset-inline:0;z-index:3;height:2px;margin-top:-1px;background:var(--accent-primary);pointer-events:none}.sch-cal-now.has-dot:before{content:"";position:absolute;inset-inline-start:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--accent-primary)}.sch-blk{position:absolute;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0;padding:3px 8px 3px 10px;overflow:hidden;border:1px solid color-mix(in srgb,var(--sch-color, var(--accent-primary)) 30%,var(--border-primary));border-radius:8px;background:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 12%,var(--bg-secondary));color:var(--text-primary);font-family:inherit;text-align:start;cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease}.sch-blk:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;background:var(--sch-color, var(--accent-primary))}.sch-blk:hover{z-index:2;border-color:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 60%,var(--border-primary));box-shadow:var(--shadow-md)}.sch-blk:focus-visible{z-index:2;outline:2px solid var(--accent-primary);outline-offset:1px}.sch-blk.is-now{border-color:var(--accent-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-primary) 30%,transparent)}.sch-blk-top{display:flex;align-items:center;gap:6px;min-width:0}.sch-blk-time{flex-shrink:0;font-size:11.5px;font-weight:600;line-height:1.35;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.sch-blk-kind{min-width:0;overflow:hidden;font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--sch-kind-color, var(--text-secondary));white-space:nowrap;text-overflow:ellipsis}.sch-blk-now{flex-shrink:0;margin-inline-start:auto;padding:0 6px;border-radius:999px;background:var(--accent-primary);color:#fff;font-size:10.5px;font-weight:700;line-height:1.5}[data-theme=dark] .sch-blk-now{color:#0f172a}.sch-blk-title{min-width:0;overflow:hidden;font-size:13px;font-weight:650;line-height:1.3;white-space:nowrap;text-overflow:ellipsis}.sch-blk-meta{min-width:0;overflow:hidden;font-size:12px;line-height:1.3;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis}.sch-blk.is-narrow .sch-blk-now{display:none}.sch-blk--xs{flex-direction:row;align-items:center;gap:6px;padding-block:0}.sch-blk--xs .sch-blk-kind,.sch-blk--xs .sch-blk-now{display:none}.sch-blk--xs .sch-blk-top{flex-shrink:0}.sch-blk--xs .sch-blk-title{flex:1 1 0;font-size:12px}.sch-blk.is-clash{border:2px solid var(--accent-danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-danger) 18%,transparent)}.sch-blk-clash{display:inline-grid;place-items:center;flex-shrink:0;width:16px;height:16px;border-radius:50%;background:var(--accent-danger);color:#fff;font-size:10.5px;font-weight:700;line-height:1.5}.sch-cal-note-clash{color:var(--accent-danger);font-weight:600}.sch-cal-head.is-link{margin:0;border-top:0;border-inline-end:0;font:inherit;text-align:start;cursor:pointer}.sch-cal-head.is-link:hover .sch-cal-head-day{color:var(--accent-primary);text-decoration:underline;text-underline-offset:3px}.sch-cal-head.is-link:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.sch-cal-head-day{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sch-card.is-clash{border-color:var(--accent-danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-danger) 16%,transparent)}.sch-status--clash{background:var(--accent-danger);color:#fff}.sch-detail-clash,.sch-clash-warn{margin:0 0 16px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent-danger) 45%,var(--border-primary));border-radius:12px;background:color-mix(in srgb,var(--accent-danger) 7%,var(--bg-secondary));font-size:13px;line-height:1.45;color:var(--text-primary)}.sch-detail-clash h3,.sch-clash-warn strong{display:block;margin:0 0 6px;font-size:13.5px;font-weight:700;color:var(--accent-danger)}.sch-detail-clash ul,.sch-clash-warn ul{margin:0;padding-inline-start:18px}.sch-detail-clash li+li,.sch-clash-warn li+li{margin-top:3px}.sch-clash-warn p{margin:8px 0 0;color:var(--text-secondary)}.sch-detail-when{margin-bottom:4px;padding:2px 0 14px;padding-inline-start:14px;border-bottom:1px solid var(--border-secondary);border-inline-start:4px solid var(--sch-color, var(--accent-primary))}[data-theme=dark] .sch-detail-when,[data-theme=dark] .sch-facts>div{border-bottom-color:var(--border-primary)}.sch-detail-time{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--text-primary);font-size:24px;font-weight:750;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.sch-detail-time .sch-status{margin-inline-start:0;font-size:12px}.sch-detail-when-sub{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:2px;color:var(--text-secondary);font-size:13.5px}.sch-facts{margin:0}.sch-facts>div{display:grid;grid-template-columns:minmax(96px,30%) minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--border-secondary)}.sch-facts dt{color:var(--text-secondary);font-size:13.5px}.sch-facts dd{margin:0;color:var(--text-primary);font-size:14.5px;font-weight:600;overflow-wrap:anywhere}.sch-fact-note{display:block;margin-top:4px;color:var(--text-secondary);font-size:12.5px;font-weight:400;line-height:1.45}.sch-detail-note{margin-top:18px}.sch-detail-note h3{margin:0 0 8px;color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sch-note-text{margin:0;padding:12px 14px;border-radius:10px;background:var(--bg-primary);color:var(--text-primary);font-size:14.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.sch-note-empty{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.5}.sch-link{padding:6px 0;border:0;background:none;color:var(--accent-primary);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.sch-detail-cover{margin:18px 0 0}.sch-detail-cover img{display:block;max-width:100%;max-height:200px;border-radius:10px;object-fit:cover}.sch-detail-cover figcaption{margin-top:6px;color:var(--text-muted);font-size:12px}.sch-detail-warn{margin:16px 0 0;color:var(--accent-danger);font-size:13px}.sch-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%}.sch-spacer{flex:1}.btn.sch-btn-danger{color:var(--accent-danger)}.btn.sch-btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--accent-danger) 10%,var(--bg-tertiary));color:var(--accent-danger)}.sch-form{display:flex;flex-direction:column;gap:20px}.sch-fieldset{display:flex;flex-direction:column;gap:12px;min-width:0;margin:0;padding:0;border:0}.sch-legend{margin-bottom:10px;padding:0;color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sch-field{display:flex;flex-direction:column;min-width:0}.sch-hint{margin:0;color:var(--text-muted);font-size:12.5px;line-height:1.45}.sch-hint--info{padding:9px 11px;border-radius:8px;background:color-mix(in srgb,var(--accent-primary) 8%,transparent);color:var(--text-secondary)}.sch-seg--fill{display:flex;width:100%}.sch-seg--fill button{flex:1 1 0;min-width:0;min-height:40px;padding:0 8px}.sch-daypick{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.sch-daypick button{min-width:0;min-height:42px;padding:0;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font:600 13px var(--font-sans);cursor:pointer}.sch-daypick button:hover{background:var(--bg-tertiary)}.sch-daypick button.is-active{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff}[data-theme=dark] .sch-daypick button.is-active{color:#0f172a}.sch-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sch-when-summary{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.45}.sch-when-summary.is-error{color:var(--accent-danger);font-weight:600}.sch-editor .form-input{min-height:42px}.sch-textarea.form-input{min-height:88px;line-height:1.45;resize:vertical}.sch-swatches{display:grid;grid-template-columns:repeat(8,minmax(0,40px));gap:10px}.sch-swatches button{width:100%;aspect-ratio:1;padding:0;border:0;border-radius:50%;background:var(--sch-swatch);box-shadow:inset 0 0 0 1px #00000014;cursor:pointer}.sch-swatches button.is-active{box-shadow:0 0 0 2px var(--bg-secondary),0 0 0 4px var(--sch-swatch)}.sch-subject-color{display:flex;align-items:center;gap:8px;margin:2px 0 0;font-size:12.5px;line-height:1.4;color:var(--text-secondary)}.sch-subject-dot{flex-shrink:0;width:12px;height:12px;border-radius:50%;background:var(--sch-swatch);box-shadow:inset 0 0 0 1px #00000014}.sch-subject-new{padding:12px 14px;border:1px solid var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-primary)}.sch-subject-new .sch-swatches{grid-template-columns:repeat(8,minmax(0,32px));gap:8px}.sch-cover{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.sch-cover-preview{width:128px;height:76px;border:1px solid var(--border-primary);border-radius:8px;object-fit:cover}.sch-cover-actions{display:flex;flex-wrap:wrap;gap:8px}.sch-cover-actions .btn{cursor:pointer}.sch-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sch-visually-hidden:focus-visible+label{outline:2px solid var(--accent-primary);outline-offset:2px}.sch-toast{position:fixed;z-index:1200;bottom:24px;inset-inline-end:24px;max-width:min(420px,calc(100vw - 32px));padding:12px 18px;border-radius:10px;box-shadow:var(--shadow-lg);color:#fff;font-size:14px;font-weight:600;animation:schToastIn .2s ease}.sch-toast--success{background:color-mix(in srgb,var(--accent-success) 82%,#000)}.sch-toast--error{background:color-mix(in srgb,var(--accent-danger) 85%,#000)}@keyframes schToastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.sch-confirm-layer .modal-overlay{z-index:1100}@media (max-width: 768px){.sch-header{gap:12px;margin-bottom:14px}.sch-subtitle{display:none}.sch-title.content-title{margin-top:2px;font-size:21px;line-height:1.25}.sch-add-btn{min-height:44px;padding-inline:14px}.sch-toolbar{gap:8px;margin-bottom:12px}.sch-nav{flex:1 1 0;min-width:0;padding:2px}.sch-nav-btn{width:44px;height:44px}.sch-period{flex:1 1 0;min-width:0;padding:0 2px}.sch-period-label{font-size:15px}.sch-today-btn{min-height:50px;padding-inline:14px}.sch-toolbar-end{flex-wrap:wrap;width:100%;margin-inline-start:0;gap:8px}.sch-seg button{min-height:40px;padding:0 18px}.sch-filters{flex:1 1 0}.sch-filters--two{flex-basis:100%}.sch-toolbar-end:has(.sch-filters--two) .sch-seg{flex:1 1 100%}.sch-toolbar-end:has(.sch-filters--two) .sch-seg button{flex:1 1 0}.sch-filter.form-input{flex:1 1 0;min-width:0;max-width:none;height:46px;font-size:15px}.sch-detail-time{font-size:22px}.sch-detail-actions .sch-spacer{display:none}.sch-detail-actions .btn{flex:1 1 0;min-width:0;min-height:46px;padding-inline:10px}.sch-editor .form-input{min-height:46px;font-size:16px}.sch-seg--fill button,.sch-daypick button{min-height:44px}.sch-swatches{gap:8px}.sch-toast{inset-inline:16px;bottom:calc(16px + env(safe-area-inset-bottom));max-width:none;text-align:center}}@media (max-width: 420px){.sch-grid-2--stack{grid-template-columns:minmax(0,1fr)}}@media (max-width: 370px){.sch-days{gap:4px}.sch-day-num{font-size:17px}.sch-slot{grid-template-columns:46px minmax(0,1fr);gap:10px}.sch-now-line{padding-inline-start:56px}.sch-card{padding-inline:14px 12px}}.sch-header-actions{display:flex;flex-shrink:0;gap:8px}.sch-export .sheet-body{display:flex;flex-direction:column;gap:14px}.sch-export-controls{display:flex;flex-direction:column;gap:10px}.sch-export-subject{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sch-export-select.form-input{flex:1 1 240px;min-width:0;height:42px}.sch-export-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}.sch-export-week .sch-nav-btn{width:34px;height:34px}.sch-export-week .sch-period{min-width:170px}.sch-export-row .sch-today-btn{min-height:42px}.sch-export-toggles{display:flex;flex-wrap:wrap;gap:6px 16px;margin-inline-start:auto}.sch-export-check{display:inline-flex;align-items:center;gap:8px;min-height:32px;font-size:13.5px;font-weight:500;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.sch-export-check input{width:17px;height:17px;margin:0;accent-color:var(--accent-primary);cursor:pointer}.sch-export-summary{margin:0;font-size:13px;color:var(--text-secondary)}.sch-export-summary strong{color:var(--text-primary);font-weight:700}.sch-export-preview{position:relative;padding:14px;border-radius:var(--radius-lg);background:var(--bg-tertiary);transition:opacity .15s ease}.sch-export-preview.is-busy{opacity:.6}.sch-export-image-link{display:block;border-radius:10px;cursor:zoom-in}.sch-export-image{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 1px 2px #0f172a14,0 8px 24px #0f172a1a;background:#fff}.sch-export-placeholder{display:grid;place-items:center;min-height:240px;font-size:14px;color:var(--text-muted)}.sch-export-empty{padding:36px 16px;border:1px dashed var(--border-primary);border-radius:var(--radius-lg);text-align:center;font-size:14px;color:var(--text-secondary)}.sch-export-empty-title{margin-bottom:4px;font-size:15px;font-weight:700;color:var(--text-primary)}.sch-export-tip{margin:-4px 0 0;font-size:12.5px;color:var(--text-muted)}@media (max-width: 768px){.sch-header{flex-wrap:wrap}.sch-header-text,.sch-header-actions{flex:1 1 100%}.sch-header-actions .sch-add-btn{flex:1 1 0}.sch-export-subject .sch-seg{flex:1 1 100%}.sch-export-subject .sch-seg button{flex:1 1 0;min-height:40px}.sch-export-select.form-input{flex-basis:100%;height:46px;font-size:15px}.sch-export-week{flex:1 1 0;min-width:0}.sch-export-week .sch-nav-btn{width:42px;height:42px}.sch-export-week .sch-period{flex:1 1 0;min-width:0}.sch-export-toggles{flex-basis:100%;margin-inline-start:0}.sch-export-check{min-height:40px;font-size:14.5px}.sch-export-preview{padding:8px;margin-inline:-4px}}.sch-periods{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.sch-period-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:54px;padding:8px 12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font:inherit;text-align:start;cursor:pointer;transition:border-color .12s ease,background .12s ease}.sch-period-chip:hover{border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border-primary))}.sch-period-chip.is-active{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,var(--bg-secondary));box-shadow:inset 0 0 0 1px var(--accent-primary)}.sch-period-chip-n{font-size:14px;font-weight:700}.sch-period-chip-time{font-size:12.5px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.sch-period-chip.is-active .sch-period-chip-n{color:var(--accent-primary)}.sch-period-len{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px}.sch-period-len-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.sch-hint--warn{padding:9px 11px;border-radius:8px;background:color-mix(in srgb,var(--accent-warning) 14%,transparent);color:var(--text-primary)}.sch-slot-period{font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--accent-primary);white-space:nowrap}.bell-lead{margin:-4px 0 16px;font-size:13.5px;line-height:1.5;color:var(--text-secondary)}.bell-hint{margin:0;font-size:12.5px;line-height:1.45;color:var(--text-muted)}.bell-empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px;border:1px dashed var(--border-primary);border-radius:var(--radius-md);font-size:13.5px;color:var(--text-secondary)}.bell-empty p{margin:0}.bell-empty-title{font-size:15px;font-weight:700;color:var(--text-primary)}.bell-empty--inline{padding:14px}.bell-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-secondary)}.bell-tabs button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:1px solid var(--border-primary);border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary);font:600 13px var(--font-sans);cursor:pointer}.bell-tabs button.is-active{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,var(--bg-secondary));color:var(--text-primary)}.bell-tabs .bell-tab-add{border-style:dashed}.bell-tabs button:disabled{opacity:.5;cursor:not-allowed}.bell-tab-tag{padding:1px 7px;border-radius:999px;background:var(--bg-tertiary);font-size:11px;font-weight:600;color:var(--text-secondary)}.bell-classes{display:flex;flex-wrap:wrap;gap:6px}.bell-class{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--border-primary);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font:600 13px var(--font-sans);cursor:pointer}.bell-class.is-on{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-secondary));color:var(--accent-primary)}.bell-class-other{font-size:11px;font-weight:500;color:var(--text-muted)}.bell-days{display:flex;flex-wrap:wrap;gap:2px;width:fit-content;max-width:100%;padding:3px;border-radius:var(--radius-md);background:var(--bg-tertiary)}.bell-days button{position:relative;min-height:34px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:600 13px var(--font-sans);cursor:pointer}.bell-days button.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-md)}.bell-days button.has-own:after{content:"";position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent-warning)}.bell-day-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-primary);font-size:13px;color:var(--text-secondary)}.bell-day-note p{margin:0}.bell-day-note--own{background:color-mix(in srgb,var(--accent-warning) 10%,transparent)}.bell-day-actions{display:flex;flex-wrap:wrap;gap:6px}.bell-list{display:flex;flex-direction:column;margin:2px 0 0;padding:0;list-style:none}.bell-row{display:grid;grid-template-columns:64px minmax(0,130px) 12px minmax(0,130px) 36px;justify-content:start;align-items:center;gap:8px;padding:4px 0}.bell-row .form-input{height:38px;font-variant-numeric:tabular-nums}.bell-row.is-bad .form-input{border-color:var(--accent-danger)}.bell-row-n{font-size:13.5px;font-weight:700;color:var(--text-primary)}.bell-row-dash{color:var(--text-muted);text-align:center}.bell-row-dur{font-size:12.5px;color:var(--text-muted);white-space:nowrap}.bell-row-remove{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font-size:20px;line-height:1;cursor:pointer}.bell-row-remove:hover{background:color-mix(in srgb,var(--accent-danger) 10%,transparent);color:var(--accent-danger)}.bell-gap{margin:0 0 0 72px;padding:1px 0;font-size:11.5px;color:var(--text-muted)}.bell-gap.is-long{font-weight:600;color:color-mix(in srgb,var(--accent-warning) 70%,var(--text-primary))}.bell-list-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.bell-error{margin:4px 0 0;font-size:13px;font-weight:500;color:var(--accent-danger)}.bell-gen{display:flex;flex-direction:column;gap:12px;margin-top:6px;padding:14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary)}.bell-gen-title{margin:0;font-size:14px;font-weight:700;color:var(--text-primary)}.bell-gen-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.bell-gen-field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:500;color:var(--text-secondary)}.bell-gen-field .form-input{height:38px}.bell-gen-actions{display:flex;justify-content:flex-end;gap:8px}.bell-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;padding-top:14px;border-top:1px solid var(--border-secondary)}.bell-spacer{flex:1}.bell-delete{color:var(--accent-danger)}@media (max-width: 768px){.sch-periods{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.sch-period-chip{min-height:58px}.bell-row{grid-template-columns:52px minmax(0,1fr) 10px minmax(0,1fr) 34px;justify-content:stretch}.bell-row-dur{display:none}.bell-gap{margin-left:60px}.bell-gen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bell-days{width:100%}.bell-days button{flex:1 1 0;padding:0 8px}.bell-footer .btn{flex:1 1 auto;min-height:44px}.bell-spacer{display:none}}.ss-strip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin:-4px 0 16px;padding:10px 12px 10px 16px;border:1px solid var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-sm)}.ss-facts{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:6px 28px;min-width:0;margin:0}.ss-fact{display:flex;flex-direction:column;gap:1px;min-width:0}.ss-fact dt{font-size:11.5px;font-weight:600;letter-spacing:.02em;color:var(--text-muted)}.ss-fact dd{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.ss-strip.is-fixed .ss-fact:last-child dd{color:color-mix(in srgb,var(--accent-primary) 80%,var(--text-primary))}.ss-fact-extra{font-weight:500;color:var(--text-secondary)}.ss-strip-actions{display:flex;flex-wrap:wrap;gap:8px;margin-inline-start:auto}.ss-strip-actions .btn{min-height:38px;font-weight:600}.ss-strip-cta{color:var(--accent-primary)}.ss-sheet .sheet-body{display:flex;flex-direction:column;gap:16px}.bell-settings{display:flex;flex-direction:column;gap:14px}.ssx{display:flex;flex-direction:column;gap:16px}.ssx-card{display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary)}.ssx-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ssx-head h3,.ssx-intro h3{margin:0 0 3px;font-size:16px;font-weight:700;color:var(--text-primary)}.ssx-head p,.ssx-intro p,.ssx-lead{margin:0;font-size:13.5px;line-height:1.5;color:var(--text-secondary)}.ssx-pill{flex-shrink:0;padding:4px 12px;border-radius:999px;background:var(--bg-tertiary);font-size:12.5px;font-weight:700;color:var(--text-secondary)}.ssx-pill.is-on{background:color-mix(in srgb,var(--accent-primary) 14%,transparent);color:var(--accent-primary)}.ssx-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;padding:14px 16px;border-radius:var(--radius-md);background:var(--bg-primary)}.ssx-cta p{flex:1 1 260px;margin:0;font-size:13.5px;line-height:1.5;color:var(--text-secondary)}.ssx-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.ssx-danger{color:var(--accent-danger)}.ssx-back{align-self:flex-start;padding:4px 0;border:0;background:none;color:var(--accent-primary);font:600 13.5px var(--font-sans);cursor:pointer}.ssx-note{margin:0;font-size:12.5px;line-height:1.45;color:var(--text-muted)}.ssx-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.ssx-setup.is-saved{grid-template-columns:minmax(0,1fr)}.ssx-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ssx-field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--text-secondary)}.ssx-field .form-input{height:42px}.ssx-preview{padding:12px;border-radius:var(--radius-md);background:var(--bg-primary)}.ssx-preview-title{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--text-primary)}.ssx-adv-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}.ssx-adv-text{display:flex;flex:1 1 260px;flex-direction:column;gap:2px}.ssx-adv-title{font-size:14px;font-weight:600;color:var(--text-primary)}.ssx-adv-sub{font-size:12.5px;line-height:1.45;color:var(--text-muted)}.ssx-adv-select.form-input{width:130px;height:40px}.ssg-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.ssg-days button{min-height:44px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font:700 14px var(--font-sans);cursor:pointer}.ssg-days button.is-on{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,var(--bg-secondary));color:var(--accent-primary)}.ssg-days button:disabled{cursor:progress}.ssg-hours{display:flex;align-items:center;gap:8px}.ssg-hours .form-input{width:110px;height:40px}.ssg-hours-dash{color:var(--text-muted)}.ssv{display:flex;flex-direction:column;gap:12px}.ssv-classes{margin:0;font-size:13px;color:var(--text-secondary)}.ssv-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.ssv-row{display:flex;align-items:center;gap:14px;padding:8px 12px;border-radius:var(--radius-md);background:var(--bg-primary)}.ssv-n{min-width:56px;font-size:13.5px;font-weight:700;color:var(--text-primary)}.ssv-time{font-size:14.5px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.ssv-break{margin:2px 0;padding:3px 12px;border-radius:8px;background:color-mix(in srgb,var(--accent-warning) 10%,transparent);font-size:12px;font-weight:600;color:color-mix(in srgb,var(--accent-warning) 65%,var(--text-primary))}.ssv-empty{margin:0;padding:14px;border:1px dashed var(--border-primary);border-radius:var(--radius-md);font-size:13.5px;color:var(--text-secondary)}.bell-periods-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.bell-link{padding:0;border:0;background:none;color:var(--accent-primary);font:600 13px var(--font-sans);cursor:pointer}@media (max-width: 768px){.ssx-card{padding:14px}.ssx-setup{grid-template-columns:minmax(0,1fr)}.ssx-actions .btn,.ssx-cta .btn{flex:1 1 auto;min-height:44px}.ssg-days{gap:4px}.ssg-hours{width:100%}.ssg-hours .form-input,.ssx-adv-select.form-input{flex:1 1 0;width:auto;height:46px}.ssx-adv-row{flex-direction:column;align-items:stretch}}.sch-pgrid{display:grid;min-width:max-content}.sch-pgrid>.sch-cal-head,.sch-pgrid-corner{position:sticky;top:0;z-index:4;border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.sch-pgrid-corner{inset-inline-start:0;z-index:6;border-inline-start:0}.sch-pgrid-label{position:sticky;inset-inline-start:0;z-index:3;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary)}.sch-pgrid-n{font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap}.sch-pgrid-time{font-size:12px;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.sch-pgrid-time.is-end{font-weight:500;color:var(--text-muted)}.sch-pgrid-label.is-now{box-shadow:inset 3px 0 0 var(--accent-primary)}.sch-pgrid-label.is-now .sch-pgrid-n{color:var(--accent-primary)}.sch-pgrid-cell{position:relative;display:flex;flex-direction:column;gap:4px;min-height:68px;padding:4px;border-inline-start:1px solid var(--border-secondary);border-bottom:1px solid var(--border-secondary)}.sch-pgrid-cell.is-today{background:color-mix(in srgb,var(--accent-primary) 3%,transparent)}.sch-pgrid-cell.is-now{background:color-mix(in srgb,var(--accent-primary) 8%,transparent)}.sch-pgrid-cell.is-off{background:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--border-primary) 55%,transparent) 7px 8px)}.sch-pgrid-celltime{align-self:flex-end;font-size:11px;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.sch-pgrid-add{display:flex;flex:1;align-items:center;justify-content:center;min-height:56px;border:1px dashed transparent;border-radius:8px;background:transparent;color:var(--text-muted);font:600 12.5px var(--font-sans);cursor:pointer}.sch-pgrid-add span{opacity:0;transition:opacity .12s ease}.sch-pgrid-add:hover,.sch-pgrid-add:focus-visible{border-color:color-mix(in srgb,var(--accent-primary) 45%,var(--border-primary));background:color-mix(in srgb,var(--accent-primary) 5%,transparent);color:var(--accent-primary)}.sch-pgrid-add:hover span,.sch-pgrid-add:focus-visible span{opacity:1}@media (hover: none){.sch-pgrid-add span{opacity:.7}}.sch-pgrid-break{display:flex;align-items:center;padding:3px 14px;border-bottom:1px solid var(--border-secondary);background:color-mix(in srgb,var(--accent-warning) 9%,var(--bg-secondary));font-size:11.5px;font-weight:600;color:color-mix(in srgb,var(--accent-warning) 65%,var(--text-primary))}.sch-pgrid-break span{position:sticky;inset-inline-start:14px}.sch-pcard{display:flex;flex-direction:column;gap:1px;min-width:0;padding:6px 8px 6px 10px;border:1px solid color-mix(in srgb,var(--sch-color, var(--accent-primary)) 30%,var(--border-primary));border-inline-start:3px solid var(--sch-color, var(--accent-primary));border-radius:8px;background:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 12%,var(--bg-secondary));color:var(--text-primary);font-family:inherit;text-align:start;cursor:pointer;transition:box-shadow .15s ease}.sch-pcard:hover{box-shadow:var(--shadow-md)}.sch-pcard.is-now{box-shadow:0 0 0 2px var(--accent-primary)}.sch-pcard.is-cont{opacity:.8;border-style:dashed;border-inline-start-style:solid}.sch-pcard.is-free{background:var(--bg-secondary);border-style:dashed;border-inline-start-style:solid}.sch-pcard.is-clash{border-color:var(--accent-danger)}.sch-pcard.is-draggable{cursor:grab;-webkit-user-select:none;user-select:none}.sch-pcard.is-dragging{opacity:.4}body.sch-is-dragging,body.sch-is-dragging *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.sch-pgrid-cell.is-drop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-inline:2px solid var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 14%,transparent);pointer-events:none}.sch-pgrid-cell.is-drop-first:after{border-top:2px solid var(--accent-primary)}.sch-pgrid-cell.is-drop-last:after{border-bottom:2px solid var(--accent-primary)}.sch-pgrid--fill .sch-pgrid-cell.has-items{padding:0}.sch-pgrid-split{display:grid;flex:1;grid-template-columns:repeat(var(--sch-parts, 1),minmax(0,1fr));gap:1px;background:var(--border-secondary)}.sch-pgrid--fill .sch-pcard{gap:2px;height:100%;min-height:68px;padding:8px 10px;border:0;border-radius:0;background:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 16%,var(--bg-secondary));transition:background-color .15s ease}.sch-pgrid--fill .sch-pcard:hover{box-shadow:none;background:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 24%,var(--bg-secondary))}.sch-pgrid--fill .sch-pcard:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.sch-pgrid--fill .sch-pcard-title{display:-webkit-box;color:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 35%,var(--text-primary));white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sch-pgrid--fill .sch-pcard.is-now{box-shadow:inset 0 0 0 2px var(--accent-primary)}.sch-pgrid--fill .sch-pcard.is-clash{box-shadow:inset 0 0 0 2px var(--accent-danger)}.sch-pgrid--fill .sch-pcard.is-cont{opacity:1;border-style:solid;background:color-mix(in srgb,var(--sch-color, var(--accent-primary)) 9%,var(--bg-secondary))}.sch-pgrid--fill .sch-pcard.is-cont .sch-pcard-title{opacity:.7}.sch-pgrid--fill .sch-pcard.is-free{border-style:solid;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--sch-color, var(--accent-primary)) 9%,var(--bg-secondary)) 0,color-mix(in srgb,var(--sch-color, var(--accent-primary)) 9%,var(--bg-secondary)) 8px,color-mix(in srgb,var(--sch-color, var(--accent-primary)) 16%,var(--bg-secondary)) 8px,color-mix(in srgb,var(--sch-color, var(--accent-primary)) 16%,var(--bg-secondary)) 16px)}.sch-pgrid--fill .sch-pcard.is-dragging{opacity:.35}.sch-pgrid--fill .sch-pgrid-cell.has-items .sch-pgrid-celltime{position:absolute;top:5px;inset-inline-end:8px;z-index:1;pointer-events:none}.sch-pgrid--fill .sch-pgrid-cell.has-celltime .sch-pcard{padding-top:22px}.sch-drag-ghost{position:fixed;z-index:1000;display:flex;flex-direction:column;gap:2px;max-width:220px;padding:6px 10px 6px 12px;border:1px solid var(--border-primary);border-inline-start:3px solid var(--sch-color, var(--accent-primary));border-radius:8px;background:var(--bg-secondary);box-shadow:var(--shadow-md);pointer-events:none;transform:translate(12px,12px)}.sch-drag-ghost-title{overflow:hidden;font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis}.sch-drag-ghost-to{font-size:12px;font-weight:600;color:var(--accent-primary)}.sch-move-clash-line{display:block;margin-top:6px;font-size:13px;color:var(--text-secondary)}.sch-pcard-top{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.sch-pcard-time{font-size:11px;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.sch-pcard-title{overflow:hidden;font-size:13px;font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.sch-pcard-meta{overflow:hidden;font-size:11.5px;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap}.sch-slot.is-empty .sch-slot-start{color:var(--text-secondary)}.sch-slot-free{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 14px;border:1px dashed var(--border-primary);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font:500 14px var(--font-sans);text-align:start;cursor:pointer}.sch-slot-free span{font-weight:600;color:var(--accent-primary)}.sch-slot-free.is-static{cursor:default}.sch-slot-break{margin:2px 0 8px;padding:4px 10px;border-radius:8px;background:color-mix(in srgb,var(--accent-warning) 10%,transparent);font-size:12px;font-weight:600;text-align:center;color:color-mix(in srgb,var(--accent-warning) 65%,var(--text-primary))}.ssv .bell-tabs{padding-bottom:0;border-bottom:0}.ssx-preview .ssv-row{background:var(--bg-secondary)}.scl-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin:0;padding:0;list-style:none}.scl-row{border:1px solid var(--border-secondary);border-radius:10px;background:var(--bg-primary)}.scl-row.is-open{grid-column:1 / -1;border-color:var(--border-primary)}.scl-head{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:var(--text-primary);font:inherit;text-align:start;cursor:pointer}.scl-head:hover{background:var(--bg-tertiary)}.scl-dot{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:var(--sch-swatch);box-shadow:inset 0 0 0 1px #00000014}.scl-name{flex:1;min-width:0;overflow:hidden;font-size:13.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.scl-meta{flex-shrink:0;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.scl-edit{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:4px 12px 12px 40px}.scl-edit .sch-swatches{grid-template-columns:repeat(8,minmax(0,30px));gap:8px}.scl-edit .sch-swatches button:disabled{cursor:progress}.scl-actions{display:flex;gap:6px}.scl-sub{margin:4px 0 0;font-size:12.5px;font-weight:600;color:var(--text-muted)}.scl-empty{margin:0;font-size:13px;color:var(--text-muted)}.scl-more{align-self:flex-start}@media (max-width: 560px){.scl-edit{padding-inline-start:12px}}.sch-form .form-input[aria-invalid=true]{border-color:var(--accent-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-danger) 15%,transparent)}.sch-field-error{margin:4px 0 0;font-size:12.5px;font-weight:600;color:var(--accent-danger)}.sch-tcombo{position:relative}.sch-tcombo-list{position:absolute;top:calc(100% + 6px);inset-inline:0;z-index:30;max-height:min(320px,46vh);margin:0;padding:6px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary);box-shadow:0 12px 32px #0f172a24,0 2px 6px #0f172a0f;list-style:none;animation:sch-tcombo-in .12s ease-out}@keyframes sch-tcombo-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.sch-tcombo-list{animation:none}}.sch-tcombo-head{padding:10px 10px 4px;font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--text-muted)}.sch-tcombo-head:first-child{padding-top:4px}.sch-tcombo-opt{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 10px;border-radius:8px;color:var(--text-primary);cursor:pointer}.sch-tcombo-opt.is-active{background:var(--bg-tertiary)}.sch-tcombo-dot{flex-shrink:0;width:12px;height:12px;border-radius:50%;background:var(--sch-swatch);box-shadow:inset 0 0 0 1px #00000014}.sch-tcombo-dot.is-none{background:transparent;box-shadow:inset 0 0 0 1.5px var(--border-primary)}.sch-tcombo-name{flex:1;min-width:0;overflow:hidden;font-size:14px;font-weight:500;white-space:nowrap;text-overflow:ellipsis}.sch-tcombo-name mark{padding:0;background:none;color:inherit;font-weight:700}.sch-tcombo-meta{flex-shrink:0;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}@media (pointer: coarse){.sch-tcombo-opt{min-height:46px}}.class-remote .class-remote-student-actions .btn,.class-remote .class-remote-row .btn,.class-remote .class-remote-section-head .btn{min-height:44px;min-width:44px;justify-content:center}.class-remote .class-remote-chips .btn{min-height:44px}.class-remote-upload-text{font-size:14px;line-height:1.45;color:var(--text-secondary)}.class-remote-upload-account-row{margin:10px 0 12px}.class-remote-upload-account{font-size:14px;color:var(--text-secondary);overflow-wrap:anywhere}.class-remote-upload-account strong{font-weight:700;color:var(--text-primary)}.class-remote-upload-summary{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.class-remote-upload-result{padding:14px;margin-bottom:4px;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--accent-success) 35%,var(--border-primary));background:color-mix(in srgb,var(--accent-success) 10%,var(--bg-secondary))}.class-remote-upload-result-title{font-size:17px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.class-remote-upload-list{list-style:none;display:flex;flex-direction:column;margin-top:8px}.class-remote-upload-item{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid var(--border-secondary)}.class-remote-upload-item:first-child{border-top:none}.class-remote-upload-item-head{display:flex;align-items:baseline;gap:10px;min-width:0}.class-remote-upload-name{flex:1 1 auto;min-width:0;font-size:15px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-remote-upload-size{flex-shrink:0;font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}.class-remote-upload-track{height:6px;border-radius:999px;background:var(--bg-tertiary);overflow:hidden}.class-remote-upload-fill{height:100%;border-radius:inherit;background:var(--accent-success);transition:width .15s ease-out}.class-remote-upload-status{font-size:13px;font-weight:600;color:var(--text-muted)}.class-remote-upload-item.is-uploading .class-remote-upload-status{color:var(--text-primary)}.class-remote-upload-item.is-done .class-remote-upload-status{color:var(--accent-success)}.class-remote-upload-item.is-error .class-remote-upload-status{color:var(--accent-danger);font-weight:500}:root{--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--sidebar-width: 240px}:root,[data-theme=light]{--bg-primary: #F5F7FA;--bg-secondary: #FFFFFF;--bg-tertiary: #EEF2F6;--bg-hover: #E2E8F0;--border-primary: #E2E8F0;--border-secondary: #EEF2F6;--text-primary: #1E293B;--text-secondary: #64748B;--text-muted: #94A3B8;--accent-primary: #3B82F6;--accent-success: #10B981;--accent-warning: #F59E0B;--accent-danger: #EF4444;--accent-purple: #8B5CF6;--accent-teal: #0D9488;--brand-primary: #1E293B;--student-color: #3B82F6;--teacher-color: #8B5CF6;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .08);--shadow-soft: 0 1px 4px rgba(0, 0, 0, .04);--shadow-subtle: 0 1px 2px rgba(0, 0, 0, .02);--button-border: rgba(203, 213, 225, .6);--nav-active-bg: #EFF6FF;--nav-active-text: #3B82F6}[data-theme=dark]{--bg-primary: #0F172A;--bg-secondary: #1E293B;--bg-tertiary: #334155;--bg-hover: #475569;--border-primary: #334155;--border-secondary: #1E293B;--button-border: rgba(255, 255, 255, .12);--text-primary: #F1F5F9;--text-secondary: #94A3B8;--text-muted: #64748B;--accent-primary: #60A5FA;--accent-success: #34D399;--accent-warning: #FBBF24;--accent-danger: #F87171;--accent-purple: #A78BFA;--accent-teal: #2DD4BF;--brand-primary: #F1F5F9;--student-color: #60A5FA;--teacher-color: #A78BFA;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25);--shadow-md: 0 2px 8px rgba(0, 0, 0, .35);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .45);--shadow-soft: 0 1px 4px rgba(0, 0, 0, .2);--nav-active-bg: rgba(96, 165, 250, .15);--nav-active-text: #60A5FA}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}.system-health-view{max-width:1480px;margin:0 auto;padding:30px}.health-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.health-eyebrow{display:block;color:var(--accent-primary);font-size:11px;font-weight:800;letter-spacing:.14em;margin-bottom:7px}.health-hero h1{font-size:clamp(25px,3vw,36px);line-height:1.1;letter-spacing:-.035em}.health-hero p{color:var(--text-secondary);margin-top:9px;max-width:680px}.health-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.health-actions small{width:100%;color:var(--text-muted);text-align:right;font-size:11px}.health-range{display:inline-flex;padding:3px;border:1px solid var(--border-primary);background:var(--bg-secondary);border-radius:9px;box-shadow:var(--shadow-sm)}.health-range button{border:0;border-radius:6px;padding:7px 10px;background:transparent;color:var(--text-secondary);font:700 12px var(--font-sans);cursor:pointer}.health-range button:hover{color:var(--text-primary);background:var(--bg-tertiary)}.health-range button.active{color:#fff;background:var(--accent-primary);box-shadow:0 2px 6px color-mix(in srgb,var(--accent-primary) 30%,transparent)}.health-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:18px;color:#9a6700;background:color-mix(in srgb,var(--accent-warning) 13%,var(--bg-secondary));border:1px solid color-mix(in srgb,var(--accent-warning) 30%,var(--border-primary));border-radius:var(--radius-md);font-size:13px}.health-alert--error{color:var(--accent-danger);background:color-mix(in srgb,var(--accent-danger) 9%,var(--bg-secondary));border-color:color-mix(in srgb,var(--accent-danger) 28%,var(--border-primary))}.health-loading{min-height:300px;display:grid;place-items:center;color:var(--text-secondary)}.health-summary{display:grid;grid-template-columns:1.2fr repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:16px}.health-summary-card{min-height:130px;display:flex;flex-direction:column;justify-content:space-between;padding:17px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);position:relative}.health-summary-card:hover,.health-summary-card:focus-within{z-index:20}.health-summary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.health-summary-heading>span{color:var(--text-secondary);font-size:12px;font-weight:700}.health-summary-card>strong{color:var(--text-primary);font-size:27px;letter-spacing:-.035em}.health-summary-card>small{color:var(--text-muted);font-size:11px}.health-summary-card--lead{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-primary) 12%,var(--bg-secondary)),var(--bg-secondary) 68%)}.health-summary-card--lead>strong{font-size:20px}.health-status{width:max-content;display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.health-status i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 16%,transparent)}.health-status--ok{color:#087a55;background:color-mix(in srgb,var(--accent-success) 13%,transparent)}.health-status--warn{color:#a26300;background:color-mix(in srgb,var(--accent-warning) 15%,transparent)}.health-status--muted{color:var(--text-secondary);background:var(--bg-tertiary)}.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.health-panel{min-width:0;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.health-panel--wide{grid-column:1 / -1}.health-panel>header{min-height:68px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border-secondary);position:relative;z-index:4}.health-panel h2{font-size:15px;letter-spacing:-.01em}.health-panel header p{color:var(--text-muted);font-size:11px;margin-top:3px;max-width:720px}.health-info{display:inline-flex;position:relative;flex:0 0 auto;z-index:30}.health-info-button{width:24px;height:24px;display:inline-grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent-primary) 32%,var(--border-primary));border-radius:50%;background:color-mix(in srgb,var(--accent-primary) 7%,var(--bg-secondary));color:var(--accent-primary);font:800 13px Georgia,serif;cursor:help;transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.health-info-button:hover,.health-info-button:focus-visible{color:#fff;background:var(--accent-primary);outline:none;transform:translateY(-1px);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 18%,transparent)}.health-info-tooltip{position:absolute;top:calc(100% + 9px);right:0;width:min(330px,calc(100vw - 44px));padding:12px 13px;border:1px solid var(--border-primary);border-radius:9px;background:var(--text-primary);color:var(--bg-secondary);box-shadow:var(--shadow-lg);font-size:11px;font-weight:500;line-height:1.55;text-align:left;white-space:normal;opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease,visibility .15s ease,transform .15s ease}.health-info-tooltip:before{content:"";position:absolute;right:8px;top:-5px;width:9px;height:9px;background:var(--text-primary);transform:rotate(45deg)}.health-info:hover .health-info-tooltip,.health-info:focus-within .health-info-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.health-chart{height:285px;padding:18px 10px 8px 2px;font-size:11px}.health-chart .recharts-cartesian-grid line{stroke:var(--border-secondary)}.health-chart .recharts-text{fill:var(--text-muted)}.health-chart .recharts-default-tooltip{background:var(--bg-secondary)!important;border-color:var(--border-primary)!important;border-radius:8px;box-shadow:var(--shadow-md)}.health-empty{min-height:110px;display:grid;place-items:center;color:var(--text-muted);font-size:13px}.health-table-wrap{overflow:auto}.health-table{width:100%;border-collapse:collapse;font-size:12px}.health-table th{position:sticky;top:0;z-index:1;padding:10px 16px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:10px;letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap}.health-table td{padding:12px 16px;color:var(--text-secondary);border-top:1px solid var(--border-secondary);white-space:nowrap}.health-table tbody tr:hover td{background:color-mix(in srgb,var(--accent-primary) 4%,transparent)}.health-table code{color:var(--text-primary);background:var(--bg-tertiary);border-radius:5px;padding:3px 6px;font:600 11px var(--font-mono)}.health-row-error{display:block;max-width:400px;margin-top:6px;color:var(--accent-danger);overflow:hidden;text-overflow:ellipsis}.health-kv-list{padding:8px 18px 14px;max-height:285px;overflow:auto}.health-kv-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--border-secondary)}.health-kv-list span{display:flex;flex-direction:column}.health-kv-list b{font-size:12px}.health-kv-list small{color:var(--text-muted);font-size:10px}.health-kv-list strong{min-width:36px;color:var(--accent-primary);font-size:22px;text-align:right}.health-reconciliation{display:grid;grid-template-columns:1fr 1fr}.health-reconciliation>div{min-width:0;padding:20px}.health-reconciliation>div+div{border-left:1px solid var(--border-primary)}.health-reconciliation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.health-reconciliation h3{margin:0;font-size:14px}.health-reconciliation dl{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 12px}.health-reconciliation dl div{padding:11px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.health-reconciliation dt{color:var(--text-muted);font-size:10px}.health-reconciliation dd{margin-top:4px;color:var(--text-primary);font-size:14px;font-weight:800}.health-reconciliation>div>small{color:var(--text-muted)}[dir=rtl] .health-table th{text-align:right}[dir=rtl] .health-reconciliation>div+div{border-left:0;border-right:1px solid var(--border-primary)}[dir=rtl] .health-info-tooltip{right:auto;left:0;text-align:right}[dir=rtl] .health-info-tooltip:before{right:auto;left:8px}@media (max-width: 1180px){.health-summary{grid-template-columns:repeat(3,1fr)}.health-summary-card--lead{grid-column:span 2}}@media (max-width: 800px){.system-health-view{padding:20px 14px}.health-hero{align-items:flex-start;flex-direction:column}.health-actions{justify-content:flex-start}.health-actions small{text-align:left}.health-summary{grid-template-columns:repeat(2,1fr)}.health-summary-card--lead{grid-column:1 / -1}.health-grid{grid-template-columns:1fr}.health-panel--wide{grid-column:auto}.health-reconciliation{grid-template-columns:1fr}.health-reconciliation>div+div{border-left:0;border-top:1px solid var(--border-primary)}.health-reconciliation dl{grid-template-columns:repeat(2,1fr)}}@media (max-width: 460px){.health-summary{grid-template-columns:1fr}.health-summary-card--lead{grid-column:auto}.health-range{width:100%}.health-range button{flex:1}}.quality-disclosure{margin:8px 0 16px;padding:9px 11px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.quality-disclosure summary{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px;font-weight:700;cursor:pointer;list-style:none}.quality-disclosure summary::-webkit-details-marker{display:none}.quality-disclosure summary:after{content:"⌄";margin-left:auto;color:var(--text-muted)}.quality-disclosure[open] summary:after{transform:rotate(180deg)}.quality-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.03em;white-space:nowrap}.quality-badge--measured{color:#087a55;background:color-mix(in srgb,var(--accent-success) 14%,transparent)}.quality-badge--estimated{color:#9a6700;background:color-mix(in srgb,var(--accent-warning) 15%,transparent)}.quality-badge--unavailable{color:var(--text-secondary);background:var(--bg-tertiary)}.quality-meta-grid{display:flex;align-items:center;flex-wrap:wrap;gap:7px 15px;margin-top:10px;color:var(--text-muted);font-size:10px}.quality-meta-grid b{color:var(--text-secondary);font-weight:700}.quality-projection-off{color:var(--accent-danger);font-weight:700}.quality-cell-value{display:block}.quality-compact{display:block;margin-top:4px}html[dir=rtl] body{font-family:Noto Sans Arabic,Plus Jakarta Sans,sans-serif}[dir=rtl] .app{flex-direction:row-reverse}[dir=rtl] .sidebar{border-right:none;border-left:1px solid var(--border-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app{display:flex;height:100%}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 16px;border-bottom:1px solid var(--border-secondary);margin-bottom:6px}.sidebar-logo{width:34px;height:34px;border-radius:9px;box-shadow:var(--shadow-sm);flex-shrink:0}.sidebar-title{font-size:15px;font-weight:700;letter-spacing:-.2px;color:var(--brand-primary)}.sidebar-nav{flex:1;padding:6px 10px;display:flex;flex-direction:column;gap:2px}.sidebar-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:16px 12px 6px}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease;border:none;background:none;width:100%;font-size:13.5px;font-weight:500;font-family:inherit;text-align:left}.nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-item:active{transform:scale(.98)}.nav-item.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:600;box-shadow:inset 3px 0 0 var(--nav-active-text)}[dir=rtl] .nav-item.active{box-shadow:inset -3px 0 0 var(--nav-active-text)}.nav-item svg{width:18px;height:18px;flex-shrink:0;opacity:.8;transition:opacity .15s ease}.nav-item:hover svg,.nav-item.active svg{opacity:1}.nav-badge{font-size:10px;font-weight:700;padding:2px 7px;background:var(--accent-success);color:#fff;border-radius:20px;letter-spacing:.3px;margin-left:auto;animation:pulse 2s infinite}[dir=rtl] .nav-badge{margin-left:0;margin-right:auto}.nav-badge.nav-badge--count{background:var(--accent-danger, #dc2626);animation:none}.sidebar-footer{padding:10px 10px 14px;border-top:1px solid var(--border-secondary);display:flex;flex-direction:column;gap:3px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;margin-top:4px;background:var(--bg-tertiary)}.sidebar-user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-purple));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;box-shadow:var(--shadow-sm)}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:var(--text-muted);text-transform:capitalize}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.content-topbar{display:flex;align-items:center;gap:12px;padding:10px 24px;background:var(--bg-secondary);box-shadow:0 1px 4px #0000000a;flex-wrap:wrap;min-height:0}.content-topbar:empty{display:none}.mobile-topbar{display:none;align-items:center;gap:10px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);position:sticky;top:0;z-index:10}.mobile-topbar-menu{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);cursor:pointer}.mobile-topbar-menu:active{background:var(--bg-tertiary)}.mobile-topbar-logo{width:28px;height:28px;border-radius:8px}.mobile-topbar-title{font-size:15px;font-weight:700;color:var(--brand-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-item--phone-only{display:none}.content{flex:1;padding:28px 32px;overflow-y:auto}.content-header{margin-bottom:24px}.content-title{font-size:22px;font-weight:700;margin-bottom:4px;color:var(--text-primary)}.content-subtitle{color:var(--text-secondary);font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-soft);transition:box-shadow .15s ease,transform .15s ease}.stat-label{font-size:13px;color:var(--text-secondary);margin-bottom:8px;font-weight:500}.stat-value{font-size:32px;font-weight:700}.stat-value.students{color:var(--student-color)}.stat-value.teachers{color:var(--teacher-color)}.stat-value.online{color:var(--accent-success)}.stat-value.locked{color:var(--accent-danger)}.devices-stats-grid .stat-card{display:flex;align-items:center;gap:14px;padding:18px 20px}.devices-stats-grid .stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.devices-stats-grid .stat-label{margin-bottom:4px}.devices-stats-grid .stat-value{font-size:26px;line-height:1.1}.stat-card-icon{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-card-icon--neutral{background:var(--bg-tertiary);color:var(--text-secondary)}.stat-card-icon--students{background:#3b82f61f;color:var(--student-color)}.stat-card-icon--teachers{background:#8b5cf61f;color:var(--teacher-color)}.stat-card-icon--online{background:#10b9811f;color:var(--accent-success)}.stat-card-icon--locked{background:#ef44441f;color:var(--accent-danger)}.devices-tools-section{margin-bottom:20px}.devices-tools-heading{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;margin-bottom:12px;color:var(--text-primary)}.devices-tools-heading svg{color:var(--accent-primary)}.devices-control-card{display:flex;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:16px}.devices-control-card:last-child{margin-bottom:0}.devices-control-block{flex:1 1 0;min-width:0;display:flex;gap:14px;padding:20px 22px}.devices-control-divider{width:1px;align-self:stretch;background:var(--border-primary);margin:18px 0;flex-shrink:0}.devices-control-icon{flex-shrink:0;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center}.devices-control-icon--info{background:#3b82f61f;color:var(--accent-primary)}.devices-control-icon--success{background:#10b9811f;color:var(--accent-success)}.devices-control-icon--warning{background:#f59e0b1f;color:var(--accent-warning)}.devices-control-icon--danger{background:#ef44441f;color:var(--accent-danger)}.devices-control-icon--pending{background:#3b82f61f;color:var(--accent-primary)}.devices-control-icon--purple{background:#8b5cf61f;color:var(--accent-purple)}.devices-control-icon--teal{background:#0d948824;color:var(--accent-teal)}.devices-control-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.devices-control-label{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1.25}.devices-control-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.devices-timer-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;padding:3px 10px;border-radius:999px;background:#f59e0b24;color:var(--accent-warning)}@media (max-width: 720px){.devices-control-card{flex-direction:column}.devices-control-divider{width:auto;height:1px;margin:0}}.exam-live-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;overflow:hidden;background:linear-gradient(135deg,#ef44441a,#ef444408);border:1px solid rgba(239,68,68,.22);border-left:3px solid var(--accent-danger);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:16px 20px}.exam-live-banner-info{display:flex;align-items:center;gap:14px;min-width:0}.exam-live-orb{position:relative;flex-shrink:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-danger);color:#fff;box-shadow:0 2px 8px #ef444466}.exam-live-orb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid var(--accent-danger);animation:examOrbPing 2.4s cubic-bezier(0,0,.2,1) infinite}.exam-live-orb-ring--delay{animation-delay:1.2s}@keyframes examOrbPing{0%{transform:scale(1);opacity:.55}to{transform:scale(2.1);opacity:0}}.exam-live-banner-text{display:flex;flex-direction:column;gap:3px;min-width:0}.exam-live-banner-title{font-size:15px;font-weight:700;color:var(--text-primary)}.exam-live-banner-meta{font-size:12.5px;font-weight:500;color:var(--text-secondary);font-variant-numeric:tabular-nums}.exam-live-banner-cta{flex-shrink:0;white-space:normal;text-align:center;line-height:1.25}@media (max-width: 560px){.exam-live-banner{flex-direction:column;align-items:stretch}.exam-live-banner-cta{width:100%;justify-content:center}}.exam-leave-requests{background:var(--bg-secondary);border:1px solid rgba(245,158,11,.25);border-left:3px solid var(--accent-warning);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.exam-leave-requests-header{display:flex;align-items:center;gap:9px;padding:13px 18px;font-size:13px;font-weight:700;color:var(--text-primary);background:#f59e0b14;border-bottom:1px solid var(--border-primary)}.exam-leave-requests-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#f59e0b2e;color:var(--accent-warning);transform-origin:50% 90%;animation:examLeaveHandWave 1.8s ease-in-out infinite}@keyframes examLeaveHandWave{0%,to{transform:rotate(0)}20%{transform:rotate(-16deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(0)}}.exam-leave-requests-list{display:flex;flex-direction:column}.exam-leave-request-row{display:flex;align-items:center;gap:12px;padding:11px 18px}.exam-leave-request-row+.exam-leave-request-row{border-top:1px solid var(--border-secondary)}.exam-leave-request-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;font-size:13px;font-weight:700;color:#451a03;background:var(--accent-warning)}.exam-leave-request-info{flex:1;min-width:0}.exam-leave-request-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-leave-request-sub{font-size:12px;color:var(--text-secondary);margin-top:1px}.exam-leave-request-actions{display:flex;gap:8px;flex-shrink:0}.exam-leave-request-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.exam-leave-request-btn--approve{background:#10b9811f;color:var(--accent-success)}.exam-leave-request-btn--approve:hover{background:var(--accent-success);color:#fff}.exam-leave-request-btn--deny{background:#ef44441a;color:var(--accent-danger)}.exam-leave-request-btn--deny:hover{background:var(--accent-danger);color:#fff}.devices-tool-btn-row{display:flex;gap:8px}.devices-tool-btn-row .btn{flex:1 1 0;min-width:0;white-space:normal;text-align:center;line-height:1.25}.devices-tool-cta{width:100%;justify-content:center;white-space:normal;text-align:center;line-height:1.25}.devices-tool-group-row{display:flex;align-items:flex-end;gap:10px}.devices-tool-group-row .btn{flex:1 1 0;min-width:0;white-space:normal;text-align:center;line-height:1.25}.devices-tool-field{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.devices-tool-field-label{font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap}.devices-tool-group-input{width:56px;text-align:center;padding-left:4px;padding-right:4px}.devices-tool-custom-row{display:flex;align-items:center;gap:8px}.devices-tool-custom-input{width:52px;flex:0 0 52px;text-align:center;padding-left:4px;padding-right:4px}.devices-tool-custom-row .btn{flex:1 1 0;min-width:0;white-space:normal;text-align:center;line-height:1.25}.devices-lock-status-pill{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;line-height:1.2}.devices-lock-status-pill.is-locked{background:#ef44441f;color:var(--accent-danger)}.devices-lock-status-pill.is-unlocked{background:#10b9811f;color:var(--accent-success)}.devices-lock-status-pill.is-mixed{background:#f59e0b1f;color:var(--accent-warning)}.devices-lock-status-pill.is-pending{background:#3b82f61f;color:var(--accent-primary)}.devices-lock-btn-active{box-shadow:inset 0 0 0 2px currentColor}.btn-spinner{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;display:inline-block;flex-shrink:0;opacity:.9}.btn.is-pending{cursor:wait}.badge-pending{animation:lock-pulse 1.2s ease-in-out infinite}@keyframes lock-pulse{0%,to{opacity:1}50%{opacity:.65}}.devices-lock-toast{position:fixed;top:20px;right:20px;z-index:10000;color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 8px 24px #0000002e;max-width:min(360px,calc(100vw - 32px));animation:slideUp .2s ease}.live-game-session-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:10000;display:flex;align-items:center;gap:10px;color:#fff;background:var(--accent-warning, #d97706);padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 8px 24px #0000002e;max-width:min(420px,calc(100vw - 32px));animation:slideUp .2s ease}.live-game-session-toast-icon{font-size:16px;line-height:1}@keyframes liveGameBtnShake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.live-game-btn-shake{animation:liveGameBtnShake .5s ease}.devices-session-tools-timer-countdown{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:8px;font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;width:fit-content;max-width:100%}.devices-session-tools-picked{margin:0;color:var(--accent-success);font-weight:500;font-size:13px;line-height:1.35}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s ease;border:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:18px;height:18px}.btn-primary{background:var(--accent-primary);color:#fff;box-shadow:0 1px 3px #3b82f659}.btn-primary:hover:not(:disabled){background:#2563eb;box-shadow:0 2px 6px #3b82f666}[data-theme=dark] .btn-primary{background:#2563eb}[data-theme=dark] .btn-primary:hover:not(:disabled){background:#1d4ed8}[data-theme=dark] .btn-danger{background:#dc2626}[data-theme=dark] .btn-danger:hover:not(:disabled){background:#b91c1c}[data-theme=dark] .btn-success{background:#047857}[data-theme=dark] .btn-success:hover:not(:disabled){background:#065f46}.btn-danger{background:var(--accent-danger);color:#fff;box-shadow:0 1px 3px #ef444459}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 2px 6px #ef444466}.btn-success{background:var(--accent-success);color:#fff;box-shadow:0 1px 3px #10b98159}.btn-success:hover:not(:disabled){background:#059669;box-shadow:0 2px 6px #10b98166}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--button-border);box-shadow:var(--shadow-subtle)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--button-border);box-shadow:var(--shadow-soft)}@media (hover: none){.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);box-shadow:var(--shadow-subtle)}.btn-secondary:active:not(:disabled){background:var(--bg-tertiary)}.btn-ghost:hover:not(:disabled):not(.active){background:var(--bg-tertiary)}.nav-item:hover:not(.active){background:none;color:var(--text-secondary)}}.btn-ghost{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--button-border);box-shadow:var(--shadow-subtle)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--button-border);box-shadow:var(--shadow-soft)}.btn-ghost.active{color:var(--accent-primary);background:var(--nav-active-bg)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:6px}.btn-sm svg{width:16px;height:16px}.btn-lg{padding:12px 24px;font-size:16px}.card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-soft)}.card-title{font-size:16px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:10px;color:var(--text-primary)}.card-subtitle{font-size:14px;color:var(--text-secondary);margin-top:4px}.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-header-row .card-title{margin-bottom:0}.device-table{width:100%;background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}.device-table table{width:100%;border-collapse:collapse}.device-table th,.device-table td{padding:14px 16px;text-align:left}.device-table th{background:var(--bg-tertiary);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.device-table tr:hover td{background:var(--bg-tertiary)}.device-table tbody tr{transition:background .1s ease}.device-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--border-secondary)}.device-id{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary)}.devices-name-cell{display:flex;align-items:center;gap:12px}.devices-name-cell-text{min-width:0}.devices-avatar{flex-shrink:0;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--bg-tertiary);color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--border-primary)}.devices-avatar.is-online{background:#10b9811f;color:var(--accent-success);box-shadow:inset 0 0 0 1px #10b98159}.devices-table .actions-cell{gap:4px;flex-wrap:nowrap;justify-content:flex-end}.devices-table .actions-cell .btn-ghost{background:transparent;border-color:transparent;box-shadow:none}.devices-table .actions-cell .btn-ghost:hover:not(:disabled){background:var(--bg-hover);border-color:transparent}.devices-table .actions-cell .btn-sm{padding:6px 10px}.devices-col-status{width:1%;white-space:nowrap}.devices-col-actions{text-align:right}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.badge-student{background:#3b82f61a;color:var(--student-color)}.badge-teacher{background:#8b5cf61a;color:var(--teacher-color)}.badge-online{background:#10b9811a;color:var(--accent-success)}.badge-offline{background:#94a3b81a;color:var(--text-muted)}.badge-locked{background:#ef44441a;color:var(--accent-danger)}.badge-unlocked{background:#10b9811a;color:var(--accent-success)}.badge-admin{background:#8b5cf61a;color:var(--accent-purple)}.badge-super{background:#ef44441a;color:var(--accent-danger)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.online{background:var(--accent-success);box-shadow:0 0 8px var(--accent-success)}.status-dot.offline{background:var(--text-muted)}.actions-cell{display:flex;gap:8px}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.badge-def-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:18px 14px;background:var(--bg-tertiary);border-radius:14px;min-height:168px;transition:box-shadow .2s ease,transform .2s ease;border:1px solid var(--button-border)}.badge-def-card:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.badge-def-icon{display:flex;align-items:center;justify-content:center}.badge-def-name{font-weight:600;font-size:15px;line-height:1.3}.badge-def-meta{font-size:12px;color:var(--text-muted);line-height:1.35}.badge-icon-medallion{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 16px #f59e0b47,inset 0 1px #ffffff73;background:linear-gradient(145deg,#fffbeb,#fde68a 42%,#f59e0b);color:#b45309}[data-theme=dark] .badge-icon-medallion{background:linear-gradient(145deg,#422006,#78350f 48%,#a16207);color:#fcd34d;box-shadow:0 4px 18px #0006,inset 0 1px #ffffff1a}.badge-icon-medallion--custom{background:linear-gradient(145deg,#eff6ff,#bfdbfe 45%,#3b82f6);color:#1e3a8a;box-shadow:0 4px 16px #3b82f638,inset 0 1px #fff6}[data-theme=dark] .badge-icon-medallion--custom{background:linear-gradient(145deg,#172554,#1e3a5f,#1d4ed8);color:#93c5fd;box-shadow:0 4px 18px #00000059,inset 0 1px #ffffff14}.badge-icon-medallion--sm{width:48px;height:48px}.badge-icon-medallion--xs{width:40px;height:40px}.badge-history-list{display:flex;flex-direction:column;gap:10px}.badge-history-item{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:14px 16px;padding:14px 16px;background:var(--bg-primary);border-radius:12px;border:1px solid var(--button-border);transition:background .15s,box-shadow .15s}.badge-history-item:hover{background:var(--bg-tertiary);box-shadow:var(--shadow-soft)}.badge-history-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:help;padding-top:2px}.badge-history-body{min-width:0;display:flex;flex-direction:column;gap:4px}.badge-history-topline{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}.badge-history-student{font-weight:600;font-size:15px}.badge-history-badge{color:var(--text-secondary);font-size:14px}.badge-history-note{font-size:13px;color:var(--text-muted)}.badge-history-date{font-size:12px;color:var(--text-muted);flex-shrink:0;padding-top:2px;text-align:right}.badge-icon-picker{display:flex;flex-wrap:wrap;gap:8px}.badge-icon-option{width:44px;height:44px;border-radius:8px;border:1px solid var(--button-border);background:var(--bg-primary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.badge-icon-option:hover,.badge-icon-option.active{background:#3b82f61a;color:var(--accent-primary);border-color:var(--accent-primary)}.badge-award-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}.modal.modal-badge-award{max-width:min(920px,96vw);width:100%}.badge-award-option{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:12px 10px;min-width:0;min-height:96px;border-radius:10px;border:1px solid var(--button-border);background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;text-align:center}.badge-award-option:hover,.badge-award-option.selected{background:#3b82f61a;border-color:var(--accent-primary);color:var(--accent-primary)}.badge-award-option.selected .badge-icon-medallion{box-shadow:0 0 0 2px var(--accent-primary),0 4px 14px #3b82f640,inset 0 1px #ffffff59}.badge-award-option span{line-height:1.3;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.quick-start-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.quick-start-option{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--bg-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit;color:var(--text-primary);box-shadow:var(--shadow-soft);border:1px solid var(--button-border, var(--border-primary))}.quick-start-option:hover{box-shadow:var(--shadow-md)}.quick-start-option .icon-circle{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.quick-start-option .icon-circle.blue{background:#3b82f61a;color:var(--accent-primary)}.quick-start-option .icon-circle.green{background:#10b9811a;color:var(--accent-success)}.quick-start-option .icon-circle svg{width:24px;height:24px}.quick-start-option .option-text{display:flex;flex-direction:column;gap:2px}.quick-start-option .option-text span{font-size:15px;font-weight:600}.quick-start-option .option-text small{font-size:13px;color:var(--text-secondary)}.quick-start-form{max-width:500px}.quick-start-actions{display:flex;gap:12px;margin-top:20px}.quick-actions{display:flex;gap:12px;flex-wrap:wrap}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;background:var(--bg-primary);border-radius:8px;color:var(--text-primary);font-size:14px;font-family:inherit;transition:box-shadow .15s ease;box-shadow:var(--shadow-subtle);border:1px solid transparent}.form-input:focus{outline:none;box-shadow:0 0 0 2px #3b82f626,var(--shadow-subtle)}.form-input::placeholder{color:var(--text-muted)}select.form-input{cursor:pointer}.form-select-inline{width:auto!important;min-width:90px;padding:6px 10px!important}.form-select-inline{width:auto;min-width:90px;padding:6px 10px}select{padding:8px 12px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);font-size:13px;font-family:inherit;border:1px solid transparent;box-shadow:var(--shadow-subtle);cursor:pointer;transition:box-shadow .15s ease}select:focus{outline:none;box-shadow:0 0 0 2px #3b82f626,var(--shadow-subtle)}select:hover{box-shadow:var(--shadow-subtle)}input[type=number]{padding:10px 14px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:inherit;transition:box-shadow .15s ease;box-shadow:var(--shadow-soft);-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]:focus{outline:none;box-shadow:0 0 0 2px #3b82f633,var(--shadow-soft)}input[type=number]::placeholder{color:var(--text-muted)}.form-hint{display:block;margin-top:6px;font-size:12px;color:var(--text-muted)}.date-picker{position:relative;width:100%}.date-picker-trigger{display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;color:var(--accent-primary)}.date-picker-trigger svg{flex-shrink:0;color:var(--accent-primary)}.date-picker-trigger span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);text-transform:capitalize}.date-picker-trigger.is-placeholder span{color:var(--text-muted);text-transform:none}.date-picker-popover{position:fixed;z-index:1100;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px;animation:fadeIn .12s ease}.date-picker-quick-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-secondary)}.date-picker-quick-chip{padding:5px 10px;border-radius:999px;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.date-picker-quick-chip:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.date-picker-quick-chip.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.date-picker-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.date-picker-month-label{font-size:13px;font-weight:600;color:var(--text-primary);text-transform:capitalize}.date-picker-nav-btn{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);font-size:15px;line-height:1;cursor:pointer;transition:all .15s ease}.date-picker-nav-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.date-picker-weekdays span{text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;padding:4px 0}.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-picker-day{aspect-ratio:1;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s ease}.date-picker-day:hover:not(:disabled){background:var(--bg-tertiary)}.date-picker-day.is-outside{color:var(--text-muted);opacity:.5}.date-picker-day.is-today{box-shadow:inset 0 0 0 1px var(--accent-primary);font-weight:700}.date-picker-day.is-selected{background:var(--accent-primary);color:#fff;font-weight:700}.date-picker-day:disabled{color:var(--text-muted);opacity:.35;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));animation:fadeIn .15s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-sizing:border-box;overflow-y:auto}.modal{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);animation:slideUp .2s ease;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal .modal-header{position:sticky;top:0;z-index:2;background:var(--bg-secondary)}.modal .modal-footer{position:sticky;bottom:0;z-index:2;background:var(--bg-secondary)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .15s ease}.sheet{display:flex;flex-direction:column;width:100%;max-width:600px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;outline:none;animation:sheetIn .2s ease}.sheet--lg{max-width:880px}.sheet--sm{max-width:440px}@keyframes sheetIn{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}.sheet-header{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--border-secondary);flex-shrink:0}.sheet-heading{flex:1;min-width:0}.sheet-title{font-size:18px;font-weight:700;line-height:1.3;color:var(--text-primary);overflow-wrap:anywhere}.sheet-subtitle{margin-top:3px;font-size:13px;color:var(--text-secondary)}.sheet-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:-6px -8px 0 0;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer}[dir=rtl] .sheet-close{margin:-6px 0 0 -8px}.sheet-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 20px 20px}.sheet-footer{flex-shrink:0;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding:12px 20px;padding-bottom:max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border-secondary)}@media (max-width: 768px){.sheet-overlay{align-items:flex-end;padding:max(10px,env(safe-area-inset-top)) 0 0}.sheet,.sheet--lg,.sheet--sm{max-width:none;max-height:calc(100vh - 10px);max-height:calc(100dvh - max(10px,env(safe-area-inset-top)));border-radius:18px 18px 0 0}.sheet-header{padding:16px 16px 12px}.sheet-body{padding:14px 16px calc(18px + env(safe-area-inset-bottom))}.sheet-footer{padding-left:16px;padding-right:16px}.sheet-footer .btn{flex:1 1 auto;min-height:44px}}.modal.modal-fit{display:flex;flex-direction:column;max-height:min(92vh,calc(100vh - 24px));min-height:0;overflow:hidden}.modal.modal-fit .modal-header,.modal.modal-fit .modal-footer{flex-shrink:0}.modal.modal-fit .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.school-modal>form{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.school-modal>form .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal.modal-lg{max-width:800px}.modal.modal-screen-view-expanded{max-width:min(1680px,96vw);width:min(1680px,96vw);max-height:94vh;min-height:0;display:flex;flex-direction:column;overflow:hidden}.modal.modal-screen-view-expanded .screen-view-body{flex:1;min-height:0;overflow:auto;padding:16px 24px 24px}.modal.modal-screen-view-expanded .screen-view-image{max-height:calc(94vh - 140px);width:auto;max-width:100%;object-fit:contain}.modal-header{padding:20px 24px;box-shadow:0 1px 4px #0000000a;display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:18px;font-weight:600}.modal-body{padding:20px 24px}.modal-footer{padding:16px 24px;box-shadow:0 -1px 4px #0000000a;display:flex;justify-content:flex-end;gap:12px}.assignment-editor-modal{width:min(820px,100%);max-width:820px}.assignment-editor-overlay{overflow:hidden;overscroll-behavior:none}.assignment-editor-body{padding-top:18px;overscroll-behavior:contain;overflow-anchor:none}.assignment-editor-primary-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:16px;align-items:start}.assignment-editor-primary-fields>.form-group{margin-bottom:16px}.assignment-editor-date-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.assignment-editor-date-presets .btn{min-height:30px;padding:5px 9px;font-size:12px}.assignment-targeting{margin-top:4px;padding:16px;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-tertiary) 42%,var(--bg-secondary))}.assignment-targeting-heading,.assignment-targeting-title,.assignment-targeting-summary,.assignment-target-card-header{display:flex;align-items:center}.assignment-targeting-heading{justify-content:space-between;gap:12px;margin-bottom:12px}.assignment-targeting-title{gap:9px}.assignment-targeting-title .form-label{margin:0;font-size:14px}.assignment-targeting-title-icon,.assignment-target-card-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;border-radius:10px;color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 13%,transparent)}.assignment-targeting-summary{gap:5px;padding:5px 9px;border-radius:999px;color:var(--accent-success);background:color-mix(in srgb,var(--accent-success) 12%,transparent);font-size:12px;font-weight:600;white-space:nowrap}.assignment-targeting-summary.is-empty{visibility:hidden}.assignment-targeting-legacy{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);font-size:13px;line-height:1.45}.assignment-targeting-legacy .btn{flex:0 0 auto}.assignment-target-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:12px}.assignment-target-card{min-width:0;overflow:hidden;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary)}.assignment-target-card-header{gap:10px;min-height:58px;padding:11px 12px;border-bottom:1px solid var(--border-color)}.assignment-target-card-icon{width:34px;height:34px}.assignment-target-card-icon--groups{color:var(--accent-purple, #8b5cf6);background:#8b5cf61f}.assignment-target-card-heading{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:2px}.assignment-target-card-heading strong{color:var(--text-primary);font-size:13px}.assignment-target-card-heading span{overflow:hidden;color:var(--text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.assignment-target-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 7px;border-radius:999px;color:var(--text-muted);background:var(--bg-tertiary);font-size:12px;font-weight:700}.assignment-target-count.is-active{color:#fff;background:var(--accent-primary)}.assignment-target-search{padding:10px 10px 8px}.assignment-target-search .form-input{height:38px;font-size:13px}.assignment-target-list{max-height:210px;min-height:92px;overflow-y:auto;padding:0 8px 8px;scrollbar-gutter:stable;overflow-anchor:none}.assignment-target-list--classes{max-height:256px;padding-top:8px}.assignment-target-row{display:flex;align-items:center;gap:9px;min-height:42px;margin-bottom:3px;padding:7px 9px;border:1px solid transparent;border-radius:8px;color:var(--text-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;text-align:start;background:transparent}.assignment-target-row:hover{background:var(--bg-tertiary)}.assignment-target-row.is-selected{border-color:color-mix(in srgb,var(--accent-primary) 32%,transparent);background:color-mix(in srgb,var(--accent-primary) 9%,transparent)}.assignment-target-row-copy{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:1px}.assignment-target-row-copy strong,.assignment-target-row-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-target-row-copy strong{font-size:13px;font-weight:600}.assignment-target-row-copy span{color:var(--text-muted);font-size:11px}.assignment-target-check{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px;border:1px solid var(--border-color);border-radius:7px;color:transparent;background:var(--bg-primary)}.assignment-target-row.is-selected .assignment-target-check{border-color:var(--accent-primary);color:#fff;background:var(--accent-primary)}.assignment-target-row:focus-visible{outline:2px solid color-mix(in srgb,var(--accent-primary) 45%,transparent);outline-offset:1px}.assignment-target-empty{display:flex;align-items:center;justify-content:center;min-height:82px;padding:12px;color:var(--text-muted);font-size:12px;text-align:center}.assignment-targeting-warning{margin:0;padding:10px 12px;border-radius:var(--radius-md);color:var(--accent-warning);background:color-mix(in srgb,var(--accent-warning) 10%,transparent);font-size:12px}.assignment-editor-footer{background:var(--bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.assignment-editor-error{margin-top:16px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--accent-danger) 35%,transparent);border-radius:var(--radius-md);color:var(--accent-danger);background:color-mix(in srgb,var(--accent-danger) 9%,transparent);font-size:13px}@media (max-width: 700px){.assignment-editor-overlay{align-items:flex-end;padding:8px}.assignment-editor-modal{max-height:calc(100dvh - 16px);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.assignment-editor-primary-fields{grid-template-columns:1fr;gap:0}.assignment-target-grid{grid-template-columns:1fr}.assignment-targeting-heading,.assignment-targeting-legacy{align-items:flex-start;flex-direction:column}.assignment-targeting-summary{white-space:normal}.assignment-editor-modal .modal-header,.assignment-editor-modal .modal-body,.assignment-editor-modal .modal-footer{padding-left:16px;padding-right:16px}.assignment-editor-footer{border-radius:0}.assignment-editor-footer .btn{flex:1 1 0}}.confirm-dialog-overlay{z-index:1300}.confirm-dialog{max-width:400px;padding:28px 24px 24px;display:flex;flex-direction:column;align-items:center;text-align:center}.confirm-dialog-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#3b82f61f;color:var(--accent-primary);margin-bottom:16px}.confirm-dialog-icon--danger{background:#ef44441f;color:var(--accent-danger)}.confirm-dialog-title{font-size:17px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.confirm-dialog-message{font-size:14px;line-height:1.5;color:var(--text-secondary);margin:0}.confirm-dialog-actions{display:flex;gap:10px;margin-top:22px;width:100%}.confirm-dialog-actions .btn{flex:1 1 0;min-width:0}.fleet-detail-overlay{z-index:1200}.fleet-detail-modal{max-width:min(840px,96vw);width:100%;background:var(--bg-secondary);border:1px solid var(--border-color);isolation:isolate}.fleet-detail-header{flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--border-color)}.fleet-detail-header-main{flex:1;min-width:0}.fleet-detail-subtitle{margin:4px 0 0;font-size:13px;color:var(--text-muted);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.fleet-detail-online{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.fleet-detail-online .status-dot{width:8px;height:8px}.fleet-detail-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:12px 24px 0;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.fleet-detail-tabs .btn{border-radius:var(--radius-md) var(--radius-md) 0 0}.fleet-detail-tabs .btn-primary{box-shadow:inset 0 -2px 0 var(--accent-primary)}.fleet-detail-body{padding-top:16px;background:var(--bg-secondary)}.fleet-detail-panel{min-height:280px}.fleet-banner{margin-bottom:16px;padding:10px 14px;border-radius:var(--radius-md);font-size:13px;line-height:1.45;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.fleet-banner--warn{background:#d299221f;border-color:#d2992259}.fleet-banner--error{background:#f851491a;border-color:#f8514959;color:var(--accent-danger)}.fleet-banner--confirm{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.fleet-banner--confirm span{flex:1 1 200px}.fleet-section{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px}.fleet-section+.fleet-section{margin-top:16px}.fleet-section-title{margin:0 0 12px;font-size:14px;font-weight:600}.fleet-section-hint{margin:0 0 12px;font-size:13px;color:var(--text-muted)}.fleet-detail-dl{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:10px 16px;margin:0;font-size:14px}.fleet-detail-dl dt{margin:0;color:var(--text-muted);font-weight:500}.fleet-detail-dl dd{margin:0;color:var(--text-primary);word-break:break-word}.fleet-detail-table-wrap{overflow:auto;max-height:min(52vh,420px);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary)}.fleet-detail-table-wrap .table{width:100%;margin:0;font-size:13px;border-collapse:collapse}.fleet-detail-table-wrap th{position:sticky;top:0;z-index:1;background:var(--bg-tertiary);text-align:left;padding:10px 12px;font-size:12px;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap}.fleet-detail-table-wrap td{padding:10px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle;background:var(--bg-secondary)}.fleet-detail-table-wrap tr:last-child td{border-bottom:none}.fleet-detail-table-wrap tr:hover td{background:var(--bg-tertiary)}.fleet-detail-table-wrap code{font-size:11px;word-break:break-all}.fleet-detail-table-wrap .col-actions{width:1%;white-space:nowrap;text-align:right}.fleet-wifi-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.fleet-wifi-row .form-group{flex:1 1 200px;margin-bottom:0}.fleet-command-actions{display:flex;flex-wrap:wrap;gap:8px}.fleet-cmd-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:lowercase}.fleet-cmd-badge--pending{background:#d2992233;color:var(--accent-warning)}.fleet-cmd-badge--sent{background:#58a6ff26;color:var(--accent-primary)}.fleet-cmd-badge--ok{background:#3fb95026;color:var(--accent-success)}.fleet-cmd-badge--err{background:#f8514926;color:var(--accent-danger)}.fleet-cmd-error{font-size:12px;color:var(--accent-danger);font-weight:500}.mdm-policies-page{width:100%;min-width:0;max-width:none}.mdm-policies-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.mdm-banner{padding:10px 14px;border-radius:var(--radius-md);margin-bottom:16px;font-size:14px}.mdm-banner--ok{background:#3fb9501f;color:var(--accent-success);border:1px solid rgba(63,185,80,.35)}.mdm-banner--err{background:#f851491a;color:var(--accent-danger);border:1px solid rgba(248,81,73,.35)}.mdm-card{padding:20px;margin-bottom:20px}.mdm-card-head{margin-bottom:16px}.mdm-card-desc{margin:6px 0 0;font-size:14px;color:var(--text-muted);line-height:1.5}.mdm-empty-cell{color:var(--text-muted);font-size:14px;padding:20px 12px!important}.mdm-assign-form,.mdm-wifi-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px;align-items:start}.mdm-assign-form .btn-primary,.mdm-wifi-form .btn-primary{grid-column:1 / -1;justify-self:start}.mdm-priority-field{max-width:140px}.mdm-field-hint{margin:6px 0 0;font-size:12px;color:var(--text-muted);line-height:1.4}.mdm-field-hint--warn{color:var(--accent-warning)}.mdm-inline-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end;font-size:13px}.mdm-policy-editor .mdm-fieldset{border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px 16px;margin:0 0 16px}.mdm-policy-editor .mdm-fieldset legend{font-size:13px;font-weight:600;padding:0 6px;color:var(--text-secondary)}.mdm-check-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;font-size:14px;cursor:pointer}.mdm-check-row:last-child{margin-bottom:0}.mdm-check-row strong{display:block;font-weight:600}.mdm-check-row small{display:block;margin-top:2px;color:var(--text-muted);font-size:12px;font-weight:400}.mdm-check-row--inline{align-items:center;margin-bottom:0}.mdm-wifi-form .mdm-check-row--inline{margin-top:24px}.mdm-packages-text{font-family:ui-monospace,monospace;font-size:12px}.mdm-brightness-slider input[type=range]{width:100%;max-width:320px;margin-top:6px}.mdm-display-cmd{display:flex;flex-direction:column;gap:10px;max-width:360px}.mdm-custom-cmd-json{font-family:ui-monospace,monospace;font-size:12px;max-width:480px}.screen-view-body{min-height:400px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.screen-view-image{width:100%;height:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pulse-dot{width:10px;height:10px;background:var(--accent-success);border-radius:50%;animation:pulse 2s infinite;flex-shrink:0}.pulse-dot.large{width:14px;height:14px}@keyframes pulse{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}.active-lesson-badge,.active-broadcast-badge,.active-annotation-badge{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500}.active-lesson-badge{background:#10b9811a;color:var(--accent-success);box-shadow:var(--shadow-soft)}.active-broadcast-badge{background:#f59e0b1a;color:var(--accent-warning);box-shadow:var(--shadow-soft)}.active-annotation-badge{background:#6366f11a;color:#6366f1;box-shadow:var(--shadow-soft)}.impersonation-banner{display:flex;align-items:center;gap:12px;padding:8px 14px;background:#8b5cf61a;border-radius:8px;color:var(--accent-purple);font-size:13px;font-weight:500;box-shadow:var(--shadow-soft)}.lesson-active-banner{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:#10b98114;border-radius:var(--radius-lg);margin-bottom:24px;box-shadow:var(--shadow-soft)}.lesson-active-info{display:flex;align-items:center;gap:16px}.lesson-active-info h3{font-size:14px;color:var(--accent-success);margin-bottom:4px}.lesson-active-info p{font-size:18px;font-weight:600;color:var(--text-primary)}.lesson-quick-start{margin-bottom:24px}.session-active{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}.session-code-display{display:flex;flex-direction:column;gap:4px}.session-code-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.session-code{font-size:42px;font-weight:700;letter-spacing:8px;font-variant-numeric:tabular-nums;color:var(--accent-primary)}.session-code-hint{font-size:13px;color:var(--text-muted);margin-top:4px}.session-participants{font-size:14px;color:var(--accent-success);margin-top:8px}.lesson-file-sharing .card-subtitle{font-size:14px;color:var(--text-secondary);margin-top:4px;margin-bottom:16px}.broadcast-active-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#f59e0b14;border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.broadcast-active-banner .file-size{color:var(--text-muted);font-weight:400;margin-left:4px}.file-sharing-actions{margin-bottom:0}.hidden-file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.files-grid{display:flex;flex-direction:column;gap:6px}.file-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-primary);border-radius:8px;transition:all .15s ease;box-shadow:var(--shadow-soft)}.file-item:hover{background:var(--bg-tertiary);box-shadow:var(--shadow-sm)}.file-item.broadcasting{background:#f59e0b0f;box-shadow:0 0 0 1px #f59e0b33}.file-item svg{width:20px;height:20px;color:var(--accent-primary);flex-shrink:0}.file-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-item-name{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-item-meta{font-size:12px;color:var(--text-muted)}.file-item-actions{flex-shrink:0}.file-preview-trigger{gap:6px;color:var(--accent-primary)}.file-preview-trigger:hover{background:color-mix(in srgb,var(--accent-primary) 10%,var(--bg-secondary))}.file-preview-overlay{padding:clamp(10px,2.5vw,28px);background:#080f1ead;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.file-preview-modal{width:min(1120px,100%);height:min(820px,calc(100vh - 40px));min-height:420px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:var(--bg-secondary);border:1px solid color-mix(in srgb,var(--border-primary) 75%,transparent);border-radius:20px;box-shadow:0 28px 80px #02081757;animation:slideUp .22s cubic-bezier(.16,1,.3,1)}.file-preview-header{min-width:0;display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.file-preview-kind{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 11%,var(--bg-secondary));border-radius:14px}.file-preview-kind--image{color:var(--accent-purple);background:color-mix(in srgb,var(--accent-purple) 12%,var(--bg-secondary))}.file-preview-kind--video{color:#e11d48;background:color-mix(in srgb,#e11d48 11%,var(--bg-secondary))}.file-preview-kind--audio{color:var(--accent-teal);background:color-mix(in srgb,var(--accent-teal) 12%,var(--bg-secondary))}.file-preview-heading{flex:1;min-width:0}.file-preview-eyebrow{display:block;margin-bottom:2px;color:var(--accent-primary);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.file-preview-heading h3{overflow:hidden;color:var(--text-primary);font-size:17px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.file-preview-meta{display:flex;align-items:center;gap:0;margin-top:4px;color:var(--text-muted);font-size:11px}.file-preview-meta span+span:before{content:"•";margin:0 7px;color:var(--border-primary)}.file-preview-close{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;padding:0;color:var(--text-secondary);background:var(--bg-tertiary);border:0;border-radius:12px;cursor:pointer;transition:color .15s ease,background .15s ease,transform .15s ease}.file-preview-close:hover,.file-preview-close:focus-visible{color:var(--text-primary);background:var(--bg-hover);outline:none;transform:scale(1.04)}.file-preview-stage{min-height:0;display:grid;place-items:center;overflow:auto;padding:24px;background:radial-gradient(circle at 15% 10%,color-mix(in srgb,var(--accent-primary) 9%,transparent),transparent 28%),linear-gradient(145deg,color-mix(in srgb,var(--bg-primary) 82%,#0f172a),var(--bg-tertiary))}.file-preview-stage--pdf,.file-preview-stage--text{padding:14px}.file-preview-frame{width:min(900px,100%);height:100%;min-height:360px;display:block;background:#fff;border:0;border-radius:10px;box-shadow:0 12px 36px #02081733}.file-preview-image,.file-preview-video{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 14px 42px #02081742}.file-preview-video{width:min(920px,100%);background:#020617}.file-preview-audio-wrap{width:min(560px,100%);display:flex;flex-direction:column;align-items:center;gap:24px;padding:40px 28px;background:color-mix(in srgb,var(--bg-secondary) 92%,transparent);border:1px solid var(--border-primary);border-radius:22px;box-shadow:var(--shadow-lg)}.file-preview-audio-icon{width:84px;height:84px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--accent-teal),var(--accent-primary));border-radius:26px;box-shadow:0 16px 34px color-mix(in srgb,var(--accent-teal) 28%,transparent)}.file-preview-audio{width:100%}.file-preview-state{max-width:440px;display:flex;flex-direction:column;align-items:center;padding:32px;color:var(--text-secondary);text-align:center}.file-preview-state strong{margin-top:16px;color:var(--text-primary);font-size:17px}.file-preview-state>span:last-child{margin-top:6px;font-size:13px;line-height:1.6}.file-preview-state-icon{width:66px;height:66px;display:grid;place-items:center;color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 11%,var(--bg-secondary));border-radius:20px}.file-preview-state--error .file-preview-state-icon{color:var(--accent-danger);background:color-mix(in srgb,var(--accent-danger) 10%,var(--bg-secondary))}.file-preview-spinner{width:38px;height:38px;border:3px solid color-mix(in srgb,var(--accent-primary) 18%,transparent);border-top-color:var(--accent-primary);border-radius:50%;animation:filePreviewSpin .8s linear infinite}.file-preview-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;background:var(--bg-secondary);border-top:1px solid var(--border-primary)}.file-preview-footer-hint{color:var(--text-muted);font-size:12px}.file-preview-footer-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}@keyframes filePreviewSpin{to{transform:rotate(360deg)}}@media (max-width: 680px){.file-preview-modal{height:calc(100vh - 20px);min-height:0;border-radius:16px}.file-preview-header{gap:10px;padding:12px}.file-preview-kind{width:40px;height:40px;flex-basis:40px}.file-preview-heading h3{font-size:14px}.file-preview-meta span:nth-child(n+3){display:none}.file-preview-stage{padding:10px}.file-preview-frame{min-height:280px}.file-preview-footer{align-items:stretch;flex-direction:column;padding:12px}.file-preview-footer-hint{display:none}.file-preview-footer-actions{width:100%}.file-preview-footer-actions .btn{flex:1;justify-content:center}}.lessons-list{display:flex;flex-direction:column;gap:8px}.lesson-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-primary);border-radius:8px;transition:all .15s ease;box-shadow:var(--shadow-soft)}.lesson-item:hover{background:var(--bg-tertiary);box-shadow:var(--shadow-sm)}.lesson-item.active{background:#10b9810f;box-shadow:0 0 0 1px #10b98133}.lesson-item-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:10px;flex-shrink:0}.lesson-item-icon svg{width:22px;height:22px;color:var(--accent-primary)}.lesson-item-info{flex:1;min-width:0}.lesson-item-title{font-weight:700;font-size:16px;color:var(--text-primary);margin-bottom:6px}.lesson-item-desc{font-size:13px;color:var(--text-secondary);margin-bottom:6px}.lesson-item-meta{display:flex;align-items:center;gap:12px}.lesson-type-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-tertiary);border-radius:12px;font-size:12px;color:var(--text-secondary)}.lesson-type-badge svg{width:14px;height:14px}.lesson-type-badge.small{padding:2px 8px;font-size:11px}.lesson-type-badge.small svg{width:12px;height:12px}.lesson-url{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.lesson-item-actions{display:flex;gap:8px;flex-shrink:0}.suggested-class-card{position:relative;overflow:hidden;border-radius:16px!important;padding:24px 28px!important;box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease}.suggested-class-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.suggested-class-header{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}.suggested-class-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.suggested-class-label{font-size:13px;font-weight:600;color:var(--text-secondary);letter-spacing:-.01em}.suggested-class-hero-title{margin:4px 0 14px!important;font-size:26px!important;font-weight:800!important;color:var(--text-primary);line-height:1.25;letter-spacing:-.025em;display:flex;align-items:center;gap:10px}.suggested-class-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.suggested-class-meta-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:99px;font-size:13px;font-weight:600;color:var(--text-primary);box-shadow:var(--shadow-subtle)}.suggested-class-meta-chip.primary{background:#3b82f61a;border-color:#3b82f640;color:var(--accent-primary)}.suggested-class-meta-chip.success{background:#10b9811a;border-color:#10b98140;color:var(--accent-success)}.suggested-class-thumbnail-wrapper{width:72px;height:72px;border-radius:16px;overflow:hidden;flex-shrink:0;background:var(--bg-tertiary);border:1px solid var(--border-primary);box-shadow:0 6px 18px #0000001f}.suggested-class-thumbnail{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.suggested-class-card:hover .suggested-class-thumbnail{transform:scale(1.06)}@media (max-width: 640px){.suggested-class-card{padding:18px 20px!important}.suggested-class-hero-title{font-size:22px!important}}.today-schedule-card{display:flex;align-items:center;gap:18px;padding:18px 22px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:14px;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.today-schedule-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--bg-tertiary)}.today-schedule-card.exam-card{background:linear-gradient(135deg,#8b5cf614,#ec48990a);border:1px solid rgba(139,92,246,.28)}.today-schedule-card.exam-card:hover{background:linear-gradient(135deg,#8b5cf61f,#ec489912);box-shadow:0 8px 24px #8b5cf624}.today-schedule-thumbnail-wrapper{width:84px;height:84px;border-radius:16px;overflow:hidden;flex-shrink:0;background:var(--bg-tertiary);border:1px solid var(--border-primary);box-shadow:0 4px 14px #00000014}.today-schedule-thumbnail{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.today-schedule-card:hover .today-schedule-thumbnail{transform:scale(1.06)}.today-schedule-content{flex:1;min-width:0}.today-schedule-top-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:6px}.today-schedule-type-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;flex-shrink:0}.today-schedule-type-badge.lesson{background:#3b82f61f;color:var(--accent-primary);border:1px solid rgba(59,130,246,.25)}.today-schedule-type-badge.exam{background:#8b5cf626;color:var(--accent-purple);border:1px solid rgba(139,92,246,.35)}.today-schedule-title{margin:0;font-size:17px;font-weight:700;color:var(--text-primary);line-height:1.3}.today-schedule-desc{font-size:13px;color:var(--text-secondary);margin-bottom:8px;line-height:1.4}.today-schedule-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.today-schedule-meta-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:99px;font-size:12px;font-weight:600;color:var(--text-secondary)}.today-schedule-meta-chip.time-chip{background:#3b82f614;border-color:#3b82f638;color:var(--accent-primary);font-weight:700}.today-schedule-card.exam-card .today-schedule-meta-chip.time-chip{background:#8b5cf61a;border-color:#8b5cf640;color:var(--accent-purple)}.today-schedule-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;justify-content:center}@media (max-width: 640px){.today-schedule-card{flex-direction:column;align-items:stretch;gap:14px;padding:16px}.today-schedule-actions{flex-direction:row;flex-wrap:wrap}}.recipients-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:20px}.recipients-col-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.recipients-col-title{font-size:13px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.4px}.recipients-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent-primary);color:#fff;font-size:11px;font-weight:700}.recipients-search{margin-bottom:10px}.recipients-empty{padding:16px;text-align:center;background:var(--bg-primary);border-radius:var(--radius-md);color:var(--text-muted);font-size:13px}.recipients-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;padding-right:2px}.recipient-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);cursor:pointer;transition:all .15s ease;border:1px solid transparent}.recipient-item:hover{background:var(--bg-tertiary);box-shadow:var(--shadow-sm)}.recipient-item.selected{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-primary))}.recipient-item-icon{width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent-primary)}.recipient-item-icon svg{width:18px;height:18px}.recipient-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.recipient-item-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipient-item-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipient-item-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-color);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .15s ease}.recipient-item.selected .recipient-item-check{background:var(--accent-primary);border-color:var(--accent-primary)}.recipient-item-check svg{width:12px;height:12px}.app-list{display:flex;flex-direction:column;gap:8px}.app-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow-soft)}.app-info{display:flex;flex-direction:row;align-items:center;gap:12px;flex:1;min-width:0}.app-info .app-icon,.app-info .app-icon-placeholder{width:40px;height:40px;border-radius:8px;flex-shrink:0}.app-info .app-icon{object-fit:cover}.app-info .app-icon-placeholder{background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;opacity:.7}.app-info .app-info-text{display:flex;flex-direction:column;gap:2px;min-width:0}.app-info .app-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-name{font-weight:500}.app-package{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.app-actions{display:flex;gap:8px}.featured-star{color:var(--accent-warning)}.featured-star svg{fill:var(--accent-warning)}.time-ago{font-size:13px;color:var(--text-muted)}.filter-bar{display:flex;gap:12px;margin-bottom:16px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state svg{width:64px;height:64px;margin-bottom:16px;opacity:.4}.empty-state h3{font-size:18px;margin-bottom:8px;color:var(--text-primary)}.schools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.school-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:20px;transition:all .2s ease;box-shadow:var(--shadow-soft)}.school-card:hover{box-shadow:var(--shadow-md)}.school-card-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.school-logo{width:48px;height:48px;background:var(--bg-tertiary);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--accent-primary);overflow:hidden}.school-logo img{width:100%;height:100%;object-fit:cover}.school-info h3{font-size:16px;font-weight:600;margin-bottom:4px}.school-code{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.school-stats{display:flex;gap:16px;margin-bottom:16px;padding:12px;background:var(--bg-primary);border-radius:8px}.school-stat{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.school-actions{display:flex;gap:8px}.student-avatar{padding:0;overflow:hidden;border:0}.student-avatar img{width:100%;height:100%;display:block;object-fit:cover}.student-avatar--button{cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.student-avatar--button:hover{transform:translateY(-1px) scale(1.05)}.student-avatar--button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent-primary) 45%,transparent);outline-offset:2px}.user-avatar-content__image{width:100%;height:100%;display:block;border-radius:inherit;object-fit:cover}.school-curriculum-summary{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;padding:12px;border:1px solid var(--border-secondary);border-radius:8px;background:var(--bg-primary)}.school-curriculum-label,.school-curriculum-summary strong{display:block}.school-curriculum-label{margin-bottom:3px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.school-curriculum-summary strong{color:var(--text-primary);font-size:13px}.school-curriculum-next{color:var(--accent-primary);font-size:12px}.school-curriculum-history{margin-top:20px;padding-top:18px;border-top:1px solid var(--border-primary)}.school-curriculum-history h3{margin:0 0 10px;font-size:14px}.school-curriculum-override-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px;padding:12px;border-radius:10px;background:var(--bg-primary)}.school-curriculum-override-form .btn{grid-column:1 / -1}@media (max-width: 640px){.school-curriculum-override-form{grid-template-columns:1fr}.school-curriculum-history-row{align-items:flex-start;flex-direction:column}}.school-curriculum-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-secondary)}.school-curriculum-history-row:last-child{border-bottom:0}.school-curriculum-history-row strong,.school-curriculum-history-row span{display:block}.school-curriculum-history-row strong{font-size:13px}.school-curriculum-history-row>div>span,.school-curriculum-empty{margin-top:3px;color:var(--text-muted);font-size:12px}.school-curriculum-history-actions{display:flex;align-items:center;gap:8px}.school-curriculum-status--active{color:var(--accent-success)}.school-curriculum-status--scheduled{color:var(--accent-primary)}.school-curriculum-status--archived{color:var(--text-muted)}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar{width:36px;height:36px;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--accent-primary);overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-email{font-size:12px;color:var(--text-muted)}.invitations-list{display:flex;flex-direction:column;gap:8px}.invitation-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-primary);border-radius:8px}.invitation-info{display:flex;align-items:center;gap:12px}.invitation-code{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--accent-primary);background:var(--bg-tertiary);padding:4px 10px;border-radius:6px}.invitation-email{font-size:13px;color:var(--text-secondary)}.invitation-meta{display:flex;align-items:center;gap:12px}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:20px;position:relative}[data-theme=dark] .login-container{background:linear-gradient(135deg,var(--bg-primary) 0%,#1a1a2e 100%)}.login-theme-toggle{position:absolute;top:20px;right:20px}.login-card{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:460px;padding:40px;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:32px}.login-logo{width:64px;height:64px;margin-bottom:16px}.login-header h1{font-size:24px;font-weight:700;margin-bottom:8px;color:var(--text-primary)}.login-header p{color:var(--text-secondary);font-size:14px}.login-form{display:flex;flex-direction:column;gap:16px}.login-error{background:#ef444414;color:var(--accent-danger);padding:12px 16px;border-radius:8px;font-size:14px;box-shadow:var(--shadow-soft)}.login-btn{width:100%;height:48px;font-size:16px;margin-top:8px}.login-footer{margin-top:32px;padding-top:24px;box-shadow:0 -1px 4px #0000000a;text-align:center}.login-legal{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-primary);display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;align-items:center;font-size:13px}.login-legal a{color:var(--accent-primary);text-decoration:none;font-weight:500}.login-legal a:hover{text-decoration:underline}.login-legal-sep{color:var(--text-muted);-webkit-user-select:none;user-select:none}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-primary);color:var(--text-secondary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--text-secondary)}.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.settings-column-layout,.settings-profile-layout{display:flex;flex-direction:column;gap:24px}@media (min-width: 992px){.settings-profile-layout{flex-direction:row;align-items:flex-start;gap:32px}.settings-profile-layout>.settings-section{flex:1;max-width:none}.settings-profile-layout>.settings-section:first-child{flex:0 0 320px}}.settings-section{max-width:560px}.settings-row{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.settings-row--inline{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}.settings-row--inline>label{flex:1;min-width:0;margin:0;font-size:14px;font-weight:500;line-height:1.3}.settings-row .form-label{font-size:13px;font-weight:500}.settings-toggle{flex-shrink:0}.app-releases-page{max-width:1200px}.app-releases-alert{margin-bottom:16px;padding:12px 16px;border-radius:var(--radius-md);font-size:14px}.alert-danger,.app-releases-alert.alert-danger{background:color-mix(in srgb,var(--accent-danger) 12%,var(--bg-secondary));border:1px solid color-mix(in srgb,var(--accent-danger) 35%,transparent);color:var(--text-primary)}.alert-success,.app-releases-alert.alert-success{background:color-mix(in srgb,var(--accent-success) 12%,var(--bg-secondary));border:1px solid color-mix(in srgb,var(--accent-success) 35%,transparent);color:var(--text-primary)}.app-releases-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.app-releases-stat{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-soft)}.app-releases-stat--warn .app-releases-stat-value{color:var(--accent-warning, #d97706)}.app-releases-stat-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:6px}.app-releases-stat-value{font-size:20px;font-weight:700;line-height:1.25}.app-releases-card{margin-bottom:16px;padding:20px 22px}.app-releases-card-title{margin:0 0 14px;font-size:16px;font-weight:600}.app-releases-help{margin:10px 0 0;font-size:13px;color:var(--text-secondary);line-height:1.45}.app-releases-checkbox{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:14px;line-height:1.4}.app-releases-checkbox--inline{align-items:center;padding-top:24px}.app-releases-upload-grid{display:grid;grid-template-columns:minmax(160px,220px) minmax(220px,1fr) auto auto;gap:14px 16px;align-items:end}.app-releases-field{display:flex;flex-direction:column;gap:6px;min-width:0}.app-releases-field--grow{grid-column:span 1}.app-releases-field-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.app-releases-upload-action{display:flex;justify-content:flex-end}.app-releases-table-card{padding:0;overflow:hidden}.app-releases-table{width:100%;border-collapse:collapse}.app-releases-table th,.app-releases-table td{padding:12px 14px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border-primary)}.app-releases-table th{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);background:var(--bg-tertiary)}.app-releases-table tbody tr:last-child td{border-bottom:none}.app-releases-row--active{background:color-mix(in srgb,var(--accent-success) 6%,transparent)}.app-releases-empty{text-align:center;padding:28px 16px!important;color:var(--text-secondary)}.app-releases-app-name{font-weight:500}.app-releases-version{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.app-releases-version-code{color:var(--text-secondary);font-size:13px}.app-releases-file-meta{margin-top:4px;font-size:12px;color:var(--text-muted)}.crash-reports-table-card--loading .crash-reports-table{opacity:.55;transition:opacity .15s ease;pointer-events:none}.crash-charts{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.crash-charts--loading{opacity:.6;transition:opacity .15s ease}.crash-charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.crash-chart-card{padding:16px 18px 12px}.crash-chart-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.crash-chart-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.crash-chart-subtitle{font-size:12px;color:var(--text-muted);white-space:nowrap}.crash-chart-empty{height:120px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px}.crash-chart-tooltip{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:8px 10px;box-shadow:var(--shadow-md);max-width:260px}.crash-chart-tooltip-label{font-size:12px;color:var(--text-secondary);margin-bottom:2px;word-break:break-word}.crash-chart-tooltip-value{font-size:13px;font-weight:600;color:var(--text-primary)}.storage-chart-card{padding:16px 18px 12px;margin-bottom:16px}.storage-charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}.storage-charts-grid .storage-chart-card{margin-bottom:0}.storage-chart-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.storage-chart-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.storage-chart-subtitle{font-size:12px;color:var(--text-muted);white-space:nowrap}.storage-chart-empty{height:120px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px}.storage-chart-tooltip{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:8px 10px;box-shadow:var(--shadow-md);max-width:260px}.storage-chart-tooltip-label{font-size:12px;color:var(--text-secondary);margin-bottom:2px;word-break:break-word}.storage-chart-tooltip-value{font-size:13px;font-weight:600;color:var(--text-primary)}.usage-heatmap-wrap{overflow-x:auto}.usage-heatmap-grid{display:grid;grid-template-columns:44px repeat(24,minmax(20px,1fr));gap:2px;min-width:560px}.usage-heatmap-hour-label{font-size:10px;color:var(--text-muted);text-align:center;align-self:end;padding-bottom:2px}.usage-heatmap-day-label{font-size:11px;color:var(--text-secondary);display:flex;align-items:center;padding-right:6px}.usage-heatmap-cell{aspect-ratio:1;min-height:16px;border-radius:3px;background:var(--bg-tertiary);cursor:default}.usage-heatmap-cell:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.usage-heatmap-footer{margin-top:10px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.usage-heatmap-detail{font-size:12px;color:var(--text-muted);min-height:16px}.usage-heatmap-scale{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted)}.usage-heatmap-scale-track{display:flex;gap:2px}.usage-heatmap-scale-step{width:14px;height:10px;border-radius:2px}.crash-reports-row:hover,.crash-reports-detail-row td{background:var(--bg-tertiary)}.crash-reports-stack-trace{margin:0;padding:12px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:400px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px}.app-releases-badges{display:flex;flex-wrap:wrap;gap:6px}.badge-muted{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-primary)}.app-releases-notes-cell{max-width:220px;font-size:13px;line-height:1.4;color:var(--text-secondary)}.app-releases-date-cell{white-space:nowrap;font-size:13px}.app-releases-muted{color:var(--text-muted)}.app-releases-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}@media (max-width: 960px){.app-releases-stats,.app-releases-upload-grid{grid-template-columns:1fr}.app-releases-checkbox--inline{padding-top:0}.app-releases-upload-action{justify-content:stretch}.app-releases-upload-action .btn{width:100%}.app-releases-table-card{overflow-x:auto}}.upload-progress{margin-top:12px}.upload-progress--card{margin-bottom:16px}.upload-progress-name{font-size:13px;color:var(--text-secondary);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-progress-track{height:8px;border-radius:999px;background:var(--bg-tertiary, rgba(255, 255, 255, .08));overflow:hidden}.upload-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-primary),var(--accent-success, #3fb950));transition:width .15s ease-out}.upload-progress-meta{margin-top:6px;font-size:12px;color:var(--text-muted)}.devices-table-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.devices-table .devices-table-toolbar,.devices-table>.empty-state{padding:18px 20px 0;margin-bottom:0}.devices-table .devices-table-toolbar+table,.devices-table .devices-table-toolbar+.empty-state{margin-top:18px}.devices-table>.empty-state:only-child{padding-top:18px}.devices-fleet-bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}.devices-fleet-bulk-count{font-size:13px;color:var(--text-secondary);font-weight:500}.devices-fleet-select-col{width:36px;text-align:center;vertical-align:middle}.devices-fleet-select-col input[type=checkbox]{cursor:pointer}.devices-search-input{flex:1 1 220px;min-width:180px;max-width:420px}.devices-status-tabs{display:inline-flex;gap:2px;padding:3px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:10px}.devices-status-tab{border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;padding:7px 14px;border-radius:7px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.devices-status-tab:hover{color:var(--text-primary)}.devices-status-tab.active{background:var(--bg-secondary);color:var(--accent-primary);box-shadow:var(--shadow-sm)}.devices-filter-count{font-size:13px;color:var(--text-muted)}@media (max-width: 768px){.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:900;width:min(300px,86vw);min-width:0;transform:translate(-100%);transition:transform .22s ease,visibility 0s linear .22s;box-shadow:var(--shadow-lg);visibility:hidden}.sidebar.is-open{transform:translate(0);visibility:visible;transition:transform .22s ease,visibility 0s}[dir=rtl] .sidebar{left:auto;right:0;border-right:none;border-left:1px solid var(--border-primary);transform:translate(100%)}[dir=rtl] .sidebar.is-open{transform:translate(0)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:899;background:#0f172a73}.mobile-topbar,.nav-item--phone-only{display:flex}.sidebar .nav-item{min-height:44px;padding-top:10px;padding-bottom:10px;font-size:14.5px}.content-topbar{padding:10px 16px}.content{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.device-table{overflow-x:auto}.devices-table.device-table{overflow-x:visible}.devices-table.device-table table,.devices-table.device-table tbody,.devices-table.device-table tr,.devices-table.device-table td{display:block;width:100%}.devices-table.device-table thead{display:none}.devices-table.device-table{background:transparent;box-shadow:none}.devices-table.device-table tbody tr{border:1px solid var(--border-primary);border-radius:var(--radius-md);margin:0 0 12px;background:var(--bg-secondary);box-shadow:var(--shadow-soft);overflow:hidden}.devices-table.device-table tbody tr:last-child{margin-bottom:0}.devices-table.device-table td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;text-align:right;border-bottom:1px solid var(--border-secondary)!important}.devices-table.device-table td:last-child{border-bottom:none!important}.devices-table.device-table td:before{content:attr(data-label);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);flex-shrink:0}.devices-table.device-table td:has(.devices-name-cell){flex-direction:column;align-items:stretch;text-align:left}.devices-table.device-table td:has(.devices-name-cell):before{display:none}.devices-table .actions-cell{justify-content:flex-end;flex-wrap:wrap}}.class-remote{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.class-remote-head{padding:4px 2px 6px}.class-remote-eyebrow{font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px}.class-remote-title{font-size:26px;line-height:1.15;font-weight:800;letter-spacing:-.4px;color:var(--text-primary);overflow-wrap:anywhere}.class-remote-meta{margin-top:6px;font-size:14px;color:var(--text-secondary)}.class-remote-end{margin-top:14px;width:100%;min-height:48px;justify-content:center;font-size:15px}.class-remote-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-soft)}.class-remote-section--alert{border-color:var(--accent-warning);box-shadow:inset 4px 0 0 var(--accent-warning),var(--shadow-soft)}[dir=rtl] .class-remote-section--alert{box-shadow:inset -4px 0 0 var(--accent-warning),var(--shadow-soft)}.class-remote-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.class-remote-section-title{font-size:16px;font-weight:700;color:var(--text-primary)}.class-remote-section-note{font-size:13px;color:var(--text-muted)}.class-remote-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.class-remote-big-btn{width:100%;min-height:52px;justify-content:center;font-size:15px;font-weight:600}.class-remote-tool-btn{width:100%;min-height:48px;justify-content:center;white-space:normal;text-align:center}.class-remote-actions-stack{display:flex;flex-direction:column;gap:10px}.class-remote-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.class-remote-chips .btn{min-height:44px;justify-content:center;padding-left:4px;padding-right:4px}.class-remote-btn-row{display:flex;gap:8px;flex-wrap:wrap}.class-remote-btn-row .btn{min-height:44px}.class-remote-minutes-input{flex:1 1 120px;min-width:0;min-height:44px}.class-remote-countdown{font-family:var(--font-mono);font-size:22px;font-weight:700;color:var(--accent-warning);font-variant-numeric:tabular-nums}.class-remote-picked{font-size:24px;font-weight:800;letter-spacing:-.3px;color:var(--accent-purple);margin-bottom:12px;overflow-wrap:anywhere}.class-remote-poll-question{font-size:15px;font-weight:600;margin-bottom:12px;overflow-wrap:anywhere}.class-remote-list{list-style:none;display:flex;flex-direction:column}.class-remote-row,.class-remote-student{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--border-secondary)}.class-remote-row:first-child,.class-remote-student:first-child{border-top:none;padding-top:0}.class-remote-student{flex-wrap:wrap}.class-remote-student-main{display:flex;flex-direction:column;min-width:0;flex:1 1 140px}.class-remote-row-name{font-size:15px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-remote-status{font-size:12px;font-weight:600;margin-top:2px}.class-remote-status.is-success{color:var(--accent-success)}.class-remote-status.is-danger{color:var(--accent-danger)}.class-remote-status.is-warning{color:var(--accent-warning)}.class-remote-status.is-muted{color:var(--text-muted)}.class-remote-student-actions{display:flex;gap:6px;flex-wrap:wrap}.class-remote-student-actions .btn{min-height:38px}.class-remote-empty{font-size:14px;color:var(--text-muted)}.polls-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}@media (max-width: 1080px){.polls-layout{grid-template-columns:1fr}}.polls-card{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:24px}.polls-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px}.polls-card-heading{display:flex;align-items:center;gap:12px}.polls-card-icon{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#3b82f61f;color:var(--accent-primary)}.polls-card-title{font-size:16px;font-weight:700;color:var(--text-primary);margin:0}.polls-card-count{font-size:12px;color:var(--text-muted);font-weight:500;margin-top:2px}.polls-card-help{color:var(--text-muted);font-size:13px;margin:10px 0 18px;line-height:1.5}.polls-template-list{display:flex;flex-direction:column;gap:10px}.polls-template-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:var(--radius-md);flex-wrap:wrap;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.polls-template-item:hover{border-color:var(--border-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.polls-template-info{flex:1;min-width:180px;display:flex;flex-direction:column;gap:4px}.polls-template-label{font-weight:600;font-size:14px;color:var(--text-primary)}.polls-template-question{font-size:13px;color:var(--text-secondary);line-height:1.4}.polls-template-meta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-muted);font-weight:500}.polls-template-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.polls-live-question{font-size:18px;font-weight:700;color:var(--text-primary);margin:4px 0 20px;line-height:1.4}.polls-result-row{display:flex;align-items:center;gap:12px}.polls-result-label{min-width:120px;max-width:160px;font-size:13px;font-weight:600;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.polls-result-track{flex:1;background:var(--bg-tertiary);border-radius:999px;height:26px;overflow:hidden;position:relative}.polls-result-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),#60A5FA);border-radius:999px;transition:width .4s ease}.polls-result-count{min-width:30px;text-align:right;font-weight:700;font-size:13px;color:var(--text-primary)}.polls-response-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.polls-response-name{display:flex;align-items:center;gap:8px;font-weight:500;font-size:13.5px;color:var(--text-primary)}.polls-response-avatar{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--accent-primary);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;text-transform:uppercase}.polls-empty{text-align:center;padding:40px 16px;color:var(--text-muted)}.polls-empty>svg{width:44px;height:44px;opacity:.35;margin-bottom:12px}.polls-empty p{margin:0 0 16px;font-size:14px}.polls-status-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);background:#10b9811a;color:var(--accent-success);font-weight:600;font-size:13.5px;margin-bottom:16px}.polls-option-row{display:flex;align-items:center;gap:8px}.polls-option-index{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-muted);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.usage-reports{max-width:1400px}.usage-toolbar{padding:20px;margin-bottom:20px}.usage-toolbar-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}.usage-field{display:flex;flex-direction:column;gap:6px}.usage-field-search{flex:1 1 240px;min-width:200px}.usage-field-label{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--text-secondary)}.usage-date-inputs{display:flex;align-items:center;gap:8px}.usage-date-inputs .form-input{width:auto;min-width:150px}.usage-date-sep{color:var(--text-muted);font-size:13px}.usage-presets{display:flex;gap:6px;flex-wrap:wrap}.usage-preset-btn{padding:8px 12px;border-radius:999px;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}.usage-preset-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.usage-preset-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.usage-toolbar-actions{display:flex;gap:10px;margin-left:auto}.usage-toolbar-hint{margin-top:12px;font-size:12px;color:var(--text-muted)}.usage-error-banner{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;border-radius:var(--radius-md);background:#ef44441a;color:var(--accent-danger);font-size:13px;font-weight:500}.usage-retention-note{margin-top:12px;font-size:12.5px;color:var(--text-muted)}.usage-category-card{padding:20px;margin-bottom:20px}.usage-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px 24px}.usage-category-row-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.usage-category-track{height:9px;background:var(--bg-tertiary);border-radius:999px;overflow:hidden}.usage-category-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent-primary),#60A5FA);transition:width .4s ease}.usage-category-fill--danger{background:linear-gradient(90deg,var(--accent-danger),#F87171)}.usage-student-picker{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.usage-student-picker .form-group{margin-bottom:0;flex:1 1 320px;max-width:380px}.usage-table-card{padding:0;overflow:hidden;margin-bottom:24px}.ai-usage-section{margin-top:32px}.ai-usage-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ai-usage-heading .content-title{font-size:1.15rem}.ai-usage-policy-badge{flex:0 0 auto;padding:5px 9px;border:1px solid color-mix(in srgb,var(--accent-primary) 28%,var(--border-primary));border-radius:999px;background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-secondary));color:var(--accent-primary);font-size:11px;font-weight:700}.ai-usage-loading{min-height:110px;display:grid;place-items:center;color:var(--text-muted)}.ai-usage-stats-grid{margin-bottom:16px}.ai-usage-stat-hint{margin-top:5px;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.ai-usage-quality-line{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.ai-usage-quality-line span{padding:7px 10px;border:1px solid var(--border-secondary);border-radius:8px;background:var(--bg-secondary);color:var(--text-muted);font-size:12px}.ai-usage-quality-line strong{color:var(--text-primary);font-variant-numeric:tabular-nums}.ai-usage-trends{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.ai-usage-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--border-primary)}.ai-usage-card-header h4{margin:0;color:var(--text-primary);font-size:14px}.ai-usage-card-header span{color:var(--text-muted);font-size:12px}.usage-table tbody tr.ai-usage-zero-row,.usage-table tbody tr.ai-usage-zero-row:hover{background:color-mix(in srgb,var(--bg-tertiary) 55%,transparent);opacity:.68}@media (max-width: 720px){.ai-usage-heading,.ai-usage-card-header{align-items:flex-start;flex-direction:column}}.usage-table-wrap{overflow-x:auto}.usage-table{width:100%;border-collapse:collapse;font-size:13.5px}.usage-table thead th{position:sticky;top:0;z-index:1;text-align:left;padding:12px 16px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-primary)}.usage-table tbody tr{border-bottom:1px solid var(--border-secondary);transition:background .12s ease}.usage-table tbody tr:last-child{border-bottom:none}.usage-table tbody tr:hover{background:var(--bg-tertiary)}.usage-table td{padding:11px 16px;color:var(--text-primary);vertical-align:middle}.usage-table td.usage-col-muted{color:var(--text-muted)}.usage-table tbody tr.device-storage-warning{background:color-mix(in srgb,var(--accent-warning) 10%,transparent)}.usage-table tbody tr.device-storage-warning:hover{background:color-mix(in srgb,var(--accent-warning) 16%,transparent)}.usage-table tbody tr.device-storage-critical{background:color-mix(in srgb,var(--accent-danger) 12%,transparent)}.usage-table tbody tr.device-storage-critical:hover{background:color-mix(in srgb,var(--accent-danger) 18%,transparent)}.usage-detail-card{padding:20px;margin-bottom:24px}.usage-table tbody tr.table-more-row,.usage-table tbody tr.table-more-row:hover{background:transparent;border-bottom:none}.usage-table tbody tr.table-more-row td{padding:10px 16px 4px;text-align:center}.table-more-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border:1px solid var(--border-primary);border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease}.table-more-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-primary);box-shadow:0 1px 6px color-mix(in srgb,var(--accent-primary) 22%,transparent)}.table-more-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.table-more-chevron{transition:transform .18s ease}.table-more-chevron.is-open{transform:rotate(180deg)}.usage-detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.usage-detail-title{font-size:16px;font-weight:700;margin:0}.usage-category-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.usage-category-chip{padding:16px;border-radius:12px;background:var(--bg-secondary);border:1px solid var(--border-primary);box-shadow:0 4px 6px #00000005,0 1px 3px #0000000a;display:flex;flex-direction:column;gap:12px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;position:relative;overflow:hidden}.usage-category-chip:hover{transform:translateY(-2px);box-shadow:0 6px 12px #0000000d,0 2px 4px #0000000a;border-color:var(--accent-primary)}.usage-category-chip:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-primary);opacity:.8}.usage-category-chip-header{display:flex;align-items:center;gap:8px}.usage-category-chip-dot{width:8px;height:8px;border-radius:50%;background-color:var(--accent-primary)}.usage-category-chip-header strong{display:block;font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.usage-chip-stats{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin-top:auto}.usage-chip-stat{display:flex;flex-direction:column}.usage-chip-stat-val{font-size:16px;font-weight:700;color:var(--accent-primary);line-height:1.2}.usage-chip-stat-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600;margin-top:2px}.usage-chip-divider{width:1px;height:24px;background:var(--border-color, var(--border-primary))}.usage-timeline-list{list-style:none;margin:0;max-height:440px;overflow-y:auto;padding:0 0 0 4px}.usage-timeline-item{position:relative;padding:0 0 24px 28px;font-size:13px}.usage-timeline-item:last-child{padding-bottom:8px}.usage-timeline-item:before{content:"";position:absolute;top:8px;bottom:-8px;left:4px;width:2px;background:var(--border-secondary);z-index:1}.usage-timeline-item:last-child:before{display:none}.usage-timeline-item:after{content:"";position:absolute;top:5px;left:0;width:10px;height:10px;border-radius:50%;background:var(--accent-primary);border:2px solid var(--bg-secondary);box-shadow:0 0 0 1px var(--border-primary);z-index:2}.usage-timeline-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:8px;margin-top:2px}.usage-timeline-row strong{font-size:14px;font-weight:600;color:var(--text-primary)}.usage-timeline-row span{font-size:12px;color:var(--text-muted);font-weight:500}.usage-timeline-detail{padding:10px 14px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-secondary);color:var(--text-primary);font-size:13.5px;line-height:1.4;display:block;min-width:0}.usage-timeline-page-title{font-weight:600;color:var(--text-primary);margin-bottom:2px;overflow-wrap:anywhere}.usage-timeline-url{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--accent-primary);text-decoration:none;font-size:12.5px}.usage-timeline-url:hover,.usage-timeline-url:focus-visible{text-decoration:underline}.usage-timeline-page-meta{margin-top:4px;font-size:12px;color:var(--text-muted)}.kiosk-audit{margin-top:22px;padding-top:20px;border-top:1px solid var(--border-primary)}.kiosk-audit-header,.kiosk-audit-title-row,.kiosk-audit-person strong,.kiosk-audit-device strong{display:flex;align-items:center}.kiosk-audit-header{justify-content:space-between;gap:16px;margin-bottom:14px}.kiosk-audit-title-row{gap:9px;flex-wrap:wrap}.kiosk-audit-title-row h4{margin:0;color:var(--text-primary);font-size:15px}.kiosk-audit-header>div>p,.kiosk-audit-empty p{margin:5px 0 0;color:var(--text-muted);font-size:12px;line-height:1.45}.kiosk-audit-title-icon,.kiosk-audit-alert-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.kiosk-audit-title-icon{color:var(--accent-primary)}.kiosk-audit-count{padding:3px 9px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-secondary);color:var(--text-secondary);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.kiosk-audit-refresh{width:34px;height:34px;border-radius:10px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.kiosk-audit-refresh:hover:not(:disabled){color:var(--accent-primary);border-color:var(--accent-primary)}.kiosk-audit-refresh:disabled{opacity:.55;cursor:wait}.kiosk-audit-latest{display:grid;grid-template-columns:auto minmax(150px,1fr) auto auto;align-items:center;gap:12px;padding:14px 16px;margin-bottom:10px;border:1px solid rgba(245,158,11,.3);border-radius:12px;background:linear-gradient(135deg,#f59e0b21,#f59e0b0a)}.kiosk-audit-latest.is-open{border-color:#f59e0b6b;box-shadow:0 10px 28px #f59e0b14}.kiosk-audit-latest.is-closed{border-color:#22c55e47;background:linear-gradient(135deg,#22c55e1c,#22c55e06)}.kiosk-audit-latest.is-closed .kiosk-audit-alert-icon{background:#22c55e26;color:var(--accent-success)}.kiosk-audit-latest.is-closed .kiosk-audit-latest-copy>span{color:var(--accent-success)}.kiosk-session-overview{display:flex;align-items:center;gap:11px;margin-bottom:10px;padding:11px 14px;border:1px solid rgba(245,158,11,.26);border-radius:12px;background:color-mix(in srgb,var(--accent-warning) 7%,var(--bg-secondary))}.kiosk-session-overview-icon{display:inline-flex;width:34px;height:34px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:10px;background:#f59e0b29;color:var(--accent-warning)}.kiosk-session-overview div{display:grid;gap:2px}.kiosk-session-overview strong{color:var(--text-primary);font-size:12px}.kiosk-session-overview span:last-child{color:var(--text-muted);font-size:10px}.kiosk-audit-alert-icon{width:38px;height:38px;border-radius:11px;background:#f59e0b2b;color:var(--accent-warning)}.kiosk-audit-latest-copy{min-width:0;display:grid;gap:2px}.kiosk-audit-latest-copy>span{color:var(--accent-warning);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.kiosk-audit-latest-copy strong{color:var(--text-primary);font-size:14px}.kiosk-audit-latest-copy small{color:var(--text-muted);font-size:11px}.kiosk-audit-device-chip{display:inline-flex;align-items:center;gap:6px;max-width:220px;padding:6px 10px;border-radius:9px;background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;font-weight:700}.kiosk-audit-device-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kiosk-audit-duration{min-width:112px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 6px;padding:7px 10px;border-radius:10px;background:color-mix(in srgb,var(--bg-secondary) 82%,transparent);color:var(--text-secondary);font-variant-numeric:tabular-nums}.kiosk-audit-duration>span{color:var(--text-primary);font-size:12px;font-weight:800}.kiosk-audit-duration small{grid-column:1 / -1;color:var(--text-muted);font-size:9px}.kiosk-audit-list{border:1px solid var(--border-secondary);border-radius:12px;overflow:hidden}.kiosk-audit-row{display:grid;grid-template-columns:34px minmax(130px,1fr) minmax(160px,1.25fr) minmax(145px,auto);align-items:center;gap:11px;padding:11px 13px;background:var(--bg-secondary);border-bottom:1px solid var(--border-secondary)}.kiosk-audit-row:last-child{border-bottom:0}.kiosk-audit-avatar{width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#3b82f61f;color:var(--accent-primary);font-size:11px;font-weight:800}.kiosk-audit-person,.kiosk-audit-device{min-width:0;display:grid;gap:3px}.kiosk-audit-person strong,.kiosk-audit-device strong{gap:5px;min-width:0;color:var(--text-primary);font-size:12px}.kiosk-audit-person span,.kiosk-audit-device span,.kiosk-audit-row time,.kiosk-audit-row-status{overflow:hidden;color:var(--text-muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.kiosk-audit-row-status{display:grid;justify-items:end;gap:4px}.kiosk-audit-row-status strong{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:11px;font-variant-numeric:tabular-nums}.kiosk-session-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:800}.kiosk-session-badge.is-open{background:#f59e0b26;color:var(--accent-warning)}.kiosk-session-badge.is-closed{background:#22c55e21;color:var(--accent-success)}.kiosk-audit-row time{font-variant-numeric:tabular-nums}.kiosk-audit-empty{min-height:76px;padding:16px;border:1px dashed var(--border-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);text-align:left}.kiosk-audit-empty>span{color:var(--accent-success)}.kiosk-audit-empty strong{color:var(--text-secondary);font-size:13px}.kiosk-audit-more{width:100%;margin-top:8px;padding:7px;border:0;background:transparent;color:var(--accent-primary);font-size:12px;font-weight:700;cursor:pointer}@media (max-width: 720px){.kiosk-audit-latest{grid-template-columns:auto minmax(0,1fr)}.kiosk-audit-duration,.kiosk-audit-device-chip{grid-column:2;justify-self:start}.kiosk-audit-row{grid-template-columns:34px minmax(0,1fr) auto}.kiosk-audit-device{grid-column:2 / -1}.kiosk-audit-row-status{grid-column:3;grid-row:1}}@media (max-width: 720px){.usage-toolbar-actions{margin-left:0;width:100%}.usage-toolbar-actions .btn{flex:1}}.topic-matrix-card{overflow:hidden;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;box-shadow:0 12px 32px #0f172a0f}.topic-matrix-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--border-secondary)}.topic-matrix-title{margin:0;color:var(--text-primary);font-size:15px;font-weight:700}.topic-matrix-meta{display:flex;gap:7px;margin:5px 0 0;color:var(--text-muted);font-size:12px}.topic-matrix-legend{display:flex;align-items:center;justify-content:flex-end;gap:8px 14px;flex-wrap:wrap}.topic-matrix-legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:11px;white-space:nowrap}.topic-matrix-legend-dot{width:10px;height:10px;border:1px solid;border-radius:3px}.topic-matrix-scroll{max-height:min(68vh,720px);overflow:auto;scrollbar-color:var(--border-primary) transparent;scrollbar-width:thin}.topic-matrix-table{width:max-content;min-width:100%;border-spacing:0;border-collapse:separate}.topic-matrix-table th,.topic-matrix-table td{border-right:1px solid var(--border-secondary);border-bottom:1px solid var(--border-secondary)}.topic-matrix-table tr:last-child th,.topic-matrix-table tr:last-child td{border-bottom:0}.topic-matrix-student-head,.topic-matrix-unit-head,.topic-matrix-topic-head{position:sticky;z-index:3;background:var(--bg-secondary);box-shadow:0 1px 0 var(--border-primary)}.topic-matrix-student-head{top:0;left:0;z-index:6;width:220px;min-width:220px;padding:14px 18px;color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.05em;text-align:left;text-transform:uppercase;vertical-align:middle}.topic-matrix-unit-head{top:0;z-index:4;height:32px;padding:0 10px;background:color-mix(in srgb,var(--accent-primary) 7%,var(--bg-secondary));text-align:center;vertical-align:middle}.topic-matrix-unit-head.is-empty{background:var(--bg-secondary)}.topic-matrix-unit-label{display:block;overflow:hidden;color:var(--accent-primary);font-size:10px;font-weight:800;letter-spacing:.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.topic-matrix-unit-head.is-empty .topic-matrix-unit-label{color:var(--text-muted);font-weight:600;letter-spacing:.02em;text-transform:none}.topic-matrix-topic-head{top:32px;width:138px;min-width:138px;max-width:138px;height:64px;padding:10px;text-align:left;vertical-align:bottom}.topic-matrix-topic{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:var(--text-primary);font-size:11px;font-weight:650;line-height:1.3;-webkit-line-clamp:3}.topic-matrix-table .topic-matrix-group-end{border-right:2px solid color-mix(in srgb,var(--accent-primary) 35%,var(--border-primary))}.topic-matrix-table tbody tr{transition:background .14s ease}.topic-matrix-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--bg-tertiary) 45%,transparent)}.topic-matrix-table tbody tr:hover{background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-secondary))}.topic-matrix-student{position:sticky;left:0;z-index:2;width:220px;min-width:220px;padding:10px 14px;background:var(--bg-secondary);text-align:left}.topic-matrix-table tbody tr:nth-child(2n) .topic-matrix-student{background:color-mix(in srgb,var(--bg-tertiary) 45%,var(--bg-secondary))}.topic-matrix-table tbody tr:hover .topic-matrix-student{background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-secondary))}.topic-matrix-avatar{display:inline-grid;width:32px;height:32px;margin-right:10px;place-items:center;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:750;vertical-align:middle}.topic-matrix-student-name{display:inline-block;overflow:hidden;width:150px;color:var(--text-primary);font-size:13px;font-weight:600;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.topic-matrix-cell{min-width:138px;padding:7px;text-align:center}.topic-matrix-cell-wrap{position:relative}.topic-matrix-cell-button{display:flex;width:100%;min-height:48px;flex-direction:column;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--heat-fg) 22%,transparent);border-radius:10px;background:var(--heat-bg);color:var(--heat-fg);cursor:pointer;transition:box-shadow .14s ease,transform .14s ease,border-color .14s ease}.topic-matrix-cell-button:hover{z-index:1;border-color:color-mix(in srgb,var(--heat-fg) 55%,transparent);box-shadow:0 6px 16px color-mix(in srgb,var(--heat-fg) 16%,transparent);transform:translateY(-1px)}.topic-matrix-cell-button:focus-visible{outline:3px solid color-mix(in srgb,var(--heat-fg) 30%,transparent);outline-offset:2px}.topic-matrix-score{font-size:13px;font-weight:800;line-height:1.15}.topic-matrix-ratio{margin-top:3px;font-size:9px;font-weight:650;opacity:.82}.topic-matrix-pin{position:absolute;top:-7px;right:-5px;z-index:2;display:grid;width:19px;height:19px;place-items:center;border:1px solid var(--border-primary);border-radius:50%;background:var(--bg-secondary);box-shadow:0 2px 6px #0f172a24;font-size:10px;line-height:1}@media (max-width: 760px){.topic-matrix-toolbar{align-items:flex-start;flex-direction:column}.topic-matrix-legend{justify-content:flex-start}.topic-matrix-student-head,.topic-matrix-student{width:180px;min-width:180px}.topic-matrix-student-name{width:110px}}.curricula-list,.curricula-section{border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary)}.curricula-list{overflow:hidden}.curricula-list-item{width:100%;padding:16px;display:flex;flex-direction:column;gap:5px;color:var(--text-primary);text-align:start;background:transparent;border:0;border-bottom:1px solid var(--border-primary);cursor:pointer}.curricula-list-item:last-child{border-bottom:0}.curricula-list-item:hover,.curricula-list-item.active{background:var(--bg-hover)}.curricula-list-item.active{box-shadow:inset 3px 0 var(--accent-primary)}.curricula-list-item span{color:var(--text-muted);font-size:12px}.curricula-status--draft{background:#d299222e;color:#d29922}.curricula-status--active{background:#2ea0432e;color:#3fb950}.curricula-status--archived{background:#8b949e2e;color:var(--text-muted)}.curricula-alert{margin:16px 0;padding:12px 14px;border-radius:8px;display:flex;flex-direction:column;gap:5px}.curricula-alert--error{color:var(--accent-danger);background:#f851491f}.curricula-alert--ready{color:#3fb950;background:#2ea0431f}.curricula-section{margin-top:16px;padding:16px}.curricula-section h3{margin:0 0 14px}.curricula-import-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:14px}.curricula-metric{flex:1;padding:12px;border-radius:8px;background:var(--bg-tertiary);display:flex;flex-direction:column;gap:3px}.curricula-metric strong{font-size:22px}.curricula-metric span{color:var(--text-muted);font-size:12px}.curricula-overview{display:grid;gap:14px;margin-bottom:20px;padding:20px;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-secondary)}.curricula-overview-main{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 28px}.curricula-overview-title{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:6px}.curricula-overview-title h2{margin:0;font-size:20px}.curricula-overview-title>span:last-child{color:var(--text-secondary);font-size:13px}.curricula-overview-metrics{display:flex;gap:28px}.curricula-overview-metric{display:flex;flex-direction:column;gap:2px}.curricula-overview-metric strong{font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}.curricula-overview-metric span{color:var(--text-muted);font-size:12px}.curricula-overview-watch{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;border-top:1px solid var(--border-primary)}.curricula-overview-watch>div{display:flex;min-width:0;flex-direction:column;gap:3px}.curricula-overview-watch>div>span{color:var(--text-secondary);font-size:13px}.curricula-overview-watch small{color:var(--text-muted);font-size:12px}.curricula-overview-watch.is-running>div>span{color:var(--accent-primary)}.curricula-overview-action{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;border-radius:8px;background:var(--bg-tertiary);font-size:13px}.curricula-overview-action.is-attention{background:#d299221f;color:#d29922}.curricula-overview-action.is-ready{background:#2ea0431f;color:#3fb950}.curricula-tabs{margin-bottom:0}.curricula-tab-badge{display:inline-block;min-width:18px;margin-inline-start:6px;padding:0 5px;border-radius:9px;background:#d29922e6;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.curricula-others{margin-top:28px}.curricula-others-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.curricula-others-head h3{margin-bottom:8px}.curricula-others-list{display:grid;gap:6px}.curricula-others-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border-primary);border-radius:8px}.curricula-others-row>div{display:flex;min-width:0;flex-direction:column;gap:2px}.curricula-others-row>div span{color:var(--text-muted);font-size:12px}.curriculum-browser-grades{margin-bottom:16px}.curriculum-browser-layout{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:20px;align-items:start}.curriculum-browser-subjects{display:grid;gap:2px;position:sticky;top:12px}.curriculum-browser-subject{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:0;border-radius:6px;background:transparent;color:var(--text-primary);font:inherit;font-size:13px;text-align:start;cursor:pointer}.curriculum-browser-subject:hover{background:var(--bg-hover)}.curriculum-browser-subject.active{background:var(--bg-hover);box-shadow:inset 3px 0 var(--accent-primary);font-weight:600}.curriculum-browser-subject small{color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}.curriculum-browser-tree{min-width:0}.curriculum-browser-tree-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px}.curriculum-browser-tree-head>div{display:flex;flex-direction:column;gap:2px}.curriculum-browser-tree-head>div span{color:var(--text-muted);font-size:12px}.curriculum-browser-tree-head .form-input{width:240px}.curriculum-browser-unit{padding:14px 0;border-top:1px solid var(--border-primary)}.curriculum-browser-unit h4{display:flex;flex-direction:column;gap:2px;margin:0 0 8px;font-size:14px;text-transform:none}.curriculum-browser-unit h4 small{color:var(--text-muted);font-size:11px;font-weight:500}.curriculum-browser-unit ol{display:grid;gap:6px;margin:0;padding-inline-start:22px}.curriculum-browser-unit li{font-size:13px}.curriculum-browser-unit li>span{display:block;color:var(--text-primary)}.curriculum-browser-unit li>small{display:block;margin-top:2px;color:var(--text-muted);font-size:12px;line-height:1.45}@media (max-width: 900px){.curricula-overview-metrics{flex-wrap:wrap;gap:16px 24px}.curricula-overview-watch,.curricula-overview-action{flex-direction:column;align-items:stretch}.curricula-others-row{grid-template-columns:minmax(0,1fr) auto}.curricula-others-row>.btn{grid-column:1 / -1;justify-self:start}.curriculum-browser-layout{grid-template-columns:1fr}.curriculum-browser-subjects{position:static;display:flex;flex-wrap:wrap}.curriculum-browser-tree-head{flex-direction:column;align-items:stretch}.curriculum-browser-tree-head .form-input{width:100%}}.curricula-section-lead{color:var(--text-secondary);margin:-6px 0 14px}.curriculum-sync-empty,.curriculum-sync-hint{color:var(--text-muted);font-size:13px}.curriculum-sync-releases{display:flex;flex-wrap:wrap;gap:8px}.curriculum-sync-release{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--border-primary);border-radius:8px;background:transparent;color:var(--text-primary);text-align:start;cursor:pointer}.curriculum-sync-release span{color:var(--text-muted);font-size:12px}.curriculum-sync-release.active{border-color:var(--accent-primary);box-shadow:inset 3px 0 var(--accent-primary)}.curriculum-sync-summary{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.curriculum-sync-items{display:grid;gap:8px}.curriculum-sync-item{display:grid;grid-template-columns:minmax(140px,180px) minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--border-primary);border-radius:8px}.curriculum-sync-item.is-pending{border-color:color-mix(in srgb,#d29922 55%,var(--border-primary))}.curriculum-sync-question{display:flex;flex-direction:column;gap:3px}.curriculum-sync-kind{font-weight:650}.curriculum-sync-subject,.curriculum-sync-label{color:var(--text-muted);font-size:12px}.curriculum-sync-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.curriculum-sync-compare>div{display:flex;min-width:0;flex-direction:column;gap:2px}.curriculum-sync-compare span:not(.curriculum-sync-label),.curriculum-sync-compare a{color:var(--text-secondary);font-size:12px}.curriculum-sync-actions{display:flex;gap:6px}.curriculum-sync-toolbar{margin:0 0 12px}.curriculum-sync-bank{color:#d29922!important}.curriculum-sync-targets-summary{grid-column:1 / -1;color:var(--text-secondary);font-size:12px}.curriculum-sync-picker{grid-column:1 / -1;display:grid;gap:8px;padding:12px;border-radius:8px;background:var(--bg-primary)}.curriculum-sync-picker .curriculum-sync-hint{margin:0}.curriculum-sync-picker-list{display:grid;gap:4px;max-height:260px;overflow-y:auto}.curriculum-sync-picker-option{display:flex;align-items:flex-start;gap:8px;padding:7px 9px;border:1px solid transparent;border-radius:6px;cursor:pointer}.curriculum-sync-picker-option:hover{background:var(--bg-hover)}.curriculum-sync-picker-option.is-selected{border-color:var(--accent-primary)}.curriculum-sync-picker-option>span{display:flex;min-width:0;flex-direction:column;gap:2px}.curriculum-sync-picker-option small{color:var(--text-muted);font-size:11px}.curriculum-sync-toolbar .form-input{width:auto;min-width:220px}.curriculum-sync-empty-state{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px dashed var(--border-primary);border-radius:8px}.curriculum-sync-empty-state span{color:var(--text-muted);font-size:13px}.curriculum-sync-release-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.curriculum-sync-release-head>div{display:flex;min-width:0;flex-direction:column;gap:3px}.curriculum-sync-release-head>div>span{color:var(--text-muted);font-size:12px}.curriculum-sync-history{display:grid;gap:10px;margin-top:18px;padding-top:12px;border-top:1px solid var(--border-primary)}.curriculum-sync-history>.btn{justify-self:start}.curriculum-sync-apply{padding-top:14px;border-top:1px solid var(--border-primary)}.curriculum-watch-change{display:grid;gap:8px;margin-bottom:16px;padding:10px 14px;border-radius:8px;background:var(--bg-tertiary)}.curriculum-watch-change-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--text-secondary);font-size:13px}.curriculum-watch-change-head>span{flex:1;min-width:200px}.curriculum-watch-list{display:grid;gap:4px;max-height:280px;margin:0;padding:0;overflow-y:auto;list-style:none}.curriculum-watch-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:13px}.curriculum-watch-list li>span:nth-child(2),.curriculum-watch-list small{color:var(--text-muted);font-size:12px}.curriculum-watch-kind{min-width:72px;font-size:12px;font-weight:650}.curriculum-watch-kind--contentChanged,.curriculum-watch-kind--pdf{color:#d29922}.curriculum-watch-kind--added{color:#3fb950}.curriculum-watch-kind--removed{color:var(--accent-danger)}.curriculum-watch-kind--updatedOnly{color:var(--text-muted)}.curriculum-sync-warnings{display:grid;gap:8px;margin:14px 0;padding:12px 14px;border:1px solid color-mix(in srgb,#d29922 55%,var(--border-primary));border-radius:8px}.curriculum-sync-warnings.is-seen{border-color:var(--border-primary)}.curriculum-sync-warnings-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.curriculum-sync-warnings-head>div{display:flex;flex:1;min-width:220px;flex-direction:column;gap:2px}.curriculum-sync-warnings-head span{color:var(--text-secondary);font-size:13px}.curriculum-sync-warning-list{display:grid;gap:6px;max-height:360px;margin:0;padding:0;overflow-y:auto;list-style:none}.curriculum-sync-warning-list li{display:grid;gap:2px;padding:6px 0;border-top:1px solid var(--border-primary);font-size:13px}.curriculum-sync-warning-list li>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.curriculum-sync-warning-list li p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.45;overflow-wrap:anywhere}.curriculum-sync-warning-list small{color:var(--text-muted);font-size:12px}.curriculum-sync-warning-kind{font-size:12px;font-weight:650;color:#d29922}.curriculum-sync-warning-kind--guard{color:var(--accent-danger)}.curriculum-sync-warning-list li.is-seen .curriculum-sync-warning-kind{color:var(--text-muted)}.curriculum-sync-outcome-note{color:var(--text-muted)!important}@media (max-width: 900px){.curriculum-sync-item{grid-template-columns:1fr}.curriculum-sync-compare{grid-template-columns:minmax(0,1fr)}.curriculum-sync-actions{flex-wrap:wrap}}.topic-mapping-form,.library-inline-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.topic-mapping-list{display:grid;gap:8px;margin-top:14px}.topic-mapping-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--border-primary);border-radius:8px}.topic-mapping-row>div{display:flex;min-width:0;flex-direction:column;gap:3px}.topic-mapping-row span,.topic-mapping-row small,.curricula-empty{color:var(--text-muted)}.library-operations-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:20px;align-items:start}.library-book-list>.form-input{margin:12px;width:calc(100% - 24px)}.library-operations-detail{min-width:0}.library-operations-detail .curricula-section:first-child{margin-top:0}.library-mode-row{display:flex;align-items:center;gap:12px;margin:12px 0}.library-mode-row .form-input{max-width:360px}@media (max-width: 900px){.library-operations-layout,.topic-mapping-form,.library-inline-form{grid-template-columns:1fr}}.practice-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.practice-view-tabs{display:flex;gap:8px;margin:-8px 0 16px}.topic-matrix-practice-badge{position:absolute;top:-7px;right:-5px;z-index:2;display:grid;min-width:19px;height:19px;padding:0 4px;place-items:center;border:1.5px solid var(--bg-secondary);border-radius:999px;background:var(--badge-bg);color:var(--badge-fg);box-shadow:0 2px 6px #0f172a29;font-size:11px;font-weight:800;line-height:1}.topic-matrix-practice-badge.is-inline{position:static;display:inline-grid;margin-right:2px;box-shadow:none;border-color:transparent}.modal.practice-modal{display:flex;width:min(880px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 40px);flex-direction:column;padding:0;overflow:hidden}.practice-modal-header,.practice-modal-footer{flex-shrink:0}.practice-modal-header{align-items:flex-start}.practice-modal-heading{min-width:0}.practice-modal-context{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:6px 0 0;color:var(--text-secondary);font-size:13px}.practice-modal-context strong{color:var(--text-primary);font-size:15px;font-weight:700}.practice-modal-body{flex:1;min-height:0;overflow-y:auto}.practice-modal-footer{gap:10px}.practice-stepper{display:flex;flex-shrink:0;gap:6px;margin:0;padding:14px 24px;list-style:none;border-bottom:1px solid var(--border-secondary)}.practice-step{display:flex;flex:none;align-items:center;gap:8px;padding-right:14px;white-space:nowrap;color:var(--text-muted);font-size:12px;font-weight:600}.practice-step:not(:last-child):after{content:"";width:28px;height:1px;margin-left:6px;background:var(--border-primary)}.practice-step-dot{display:grid;width:22px;height:22px;place-items:center;border:1.5px solid var(--border-primary);border-radius:50%;font-size:11px;font-weight:700}.practice-step.is-active{color:var(--text-primary)}.practice-step.is-active .practice-step-dot{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff}.practice-step.is-done{color:var(--text-secondary)}.practice-step.is-done .practice-step-dot{border-color:var(--accent-success);color:var(--accent-success)}.practice-section+.practice-section{margin-top:22px}.practice-section h4{margin:0 0 10px;color:var(--text-primary);font-size:14px;font-weight:700}.practice-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.practice-count{color:var(--text-secondary);font-size:12px;font-weight:600}.practice-hint{margin:8px 0 0;color:var(--text-muted);font-size:12px;line-height:1.5}.practice-error{margin:14px 0 0;color:var(--accent-danger);font-size:13px}.practice-empty{padding:14px;color:var(--text-muted);font-size:13px}.practice-avatar{display:inline-grid;flex:none;width:30px;height:30px;overflow:hidden;place-items:center;border-radius:9px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:700}.practice-avatar img{width:100%;height:100%;object-fit:cover}.practice-mastery-chip,.practice-state-badge{display:inline-flex;flex:none;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:var(--chip-bg);color:var(--chip-fg);font-size:11.5px;font-weight:700;white-space:nowrap}.practice-mastery-chip-ratio{font-weight:600;opacity:.8}.practice-link-btn{padding:0;border:0;background:none;color:var(--accent-primary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.practice-link-btn:hover:not(:disabled){text-decoration:underline}.practice-link-btn:disabled{opacity:.5;cursor:default}.practice-link-btn.is-danger{color:var(--accent-danger)}.practice-link-btn:focus-visible,.practice-quick-chip:focus-visible,.practice-segmented button:focus-visible,.practice-review-row-head:focus-visible,.practice-batch-head:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.practice-chevron{flex:none;color:var(--text-muted);font-size:20px;line-height:1;transition:transform .16s ease}.practice-chevron.is-open{transform:rotate(90deg)}.practice-quick-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.practice-quick-chip{padding:6px 12px;border:1px solid var(--border-primary);border-radius:999px;background:var(--bg-secondary);color:var(--text-primary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.practice-quick-chip:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.practice-quick-chip:disabled{opacity:.45;cursor:default}.practice-quick-chip.is-quiet{border-color:transparent;color:var(--text-secondary)}.practice-search{flex:1 1 180px;min-width:160px;margin:0 0 0 auto}.practice-student-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:300px;margin:0;padding:0;overflow-y:auto;list-style:none}.practice-student-option{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border-secondary);border-radius:10px;cursor:pointer;transition:border-color .14s ease,background .14s ease}.practice-student-option:hover{border-color:var(--border-primary);background:var(--bg-tertiary)}.practice-student-option.is-selected{border-color:color-mix(in srgb,var(--accent-primary) 55%,transparent);background:color-mix(in srgb,var(--accent-primary) 7%,var(--bg-secondary))}.practice-student-option input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--accent-primary)}.practice-student-name{flex:1;min-width:0;overflow:hidden;color:var(--text-primary);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.practice-open-note{flex:none;color:var(--accent-primary);font-size:11px;font-weight:600}.practice-setup-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;padding-top:18px;border-top:1px solid var(--border-secondary)}.practice-segmented{display:inline-flex;padding:3px;border-radius:10px;background:var(--bg-tertiary)}.practice-segmented button{min-width:40px;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.practice-segmented button.is-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-md)}.practice-segmented.is-small button{min-width:0;padding:5px 12px;font-size:12px}.practice-generating{display:flex;max-width:460px;margin:18px auto;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--accent-primary)}.practice-generating h4{margin:8px 0 0;color:var(--text-primary);font-size:16px}.practice-generating>p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.55}.practice-progress{width:100%;height:8px;margin-top:16px;overflow:hidden;border-radius:999px;background:var(--bg-tertiary)}.practice-progress span{display:block;height:100%;border-radius:inherit;background:var(--accent-primary);transition:width .6s ease}.practice-progress-label{margin:6px 0 0;color:var(--text-secondary);font-size:12px;font-weight:600}.practice-banner{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;padding:12px 14px;border-radius:10px}.practice-banner.is-warning{background:color-mix(in srgb,var(--accent-warning) 14%,var(--bg-secondary));color:color-mix(in srgb,var(--accent-warning) 70%,var(--text-primary))}.practice-banner>div{flex:1}.practice-banner strong{display:block;color:var(--text-primary);font-size:13px}.practice-banner p{margin:3px 0 0;color:var(--text-secondary);font-size:12.5px;line-height:1.5}.practice-review-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.practice-review-summary{margin:0;color:var(--text-secondary);font-size:13px}.practice-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 10px;color:var(--text-muted);font-size:11.5px}.practice-legend .practice-strip-cell{width:8px;height:14px;margin-left:6px}.practice-legend .practice-strip-cell:first-child{margin-left:0}.practice-review-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.practice-review-row{border:1px solid var(--border-secondary);border-radius:12px}.practice-review-row.is-expanded{border-color:var(--border-primary);box-shadow:var(--shadow-md)}.practice-review-row-head{display:flex;width:100%;align-items:center;gap:12px;padding:10px 12px;border:0;border-radius:12px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.practice-review-row-head:hover{background:var(--bg-tertiary)}.practice-review-name{display:flex;flex:1;min-width:0;flex-direction:column;color:var(--text-primary);font-size:13px;font-weight:600}.practice-review-name small{color:var(--text-muted);font-size:11.5px;font-weight:500}.practice-strip{display:inline-flex;flex:none;gap:3px}.practice-strip-cell{display:inline-block;width:9px;height:20px;border-radius:3px;background:color-mix(in srgb,var(--accent-primary) 60%,var(--bg-secondary))}.practice-strip-cell.is-easy{background:color-mix(in srgb,var(--accent-primary) 28%,var(--bg-secondary))}.practice-strip-cell.is-hard{background:var(--accent-primary)}.practice-strip-cell.is-repeat{background-image:repeating-linear-gradient(135deg,transparent 0 3px,color-mix(in srgb,var(--accent-warning) 85%,transparent) 3px 5px);box-shadow:inset 0 0 0 1.5px var(--accent-warning)}.practice-review-questions{display:flex;flex-direction:column;gap:8px;padding:4px 12px 12px 54px}.practice-review-questions.is-flat{padding:0}.practice-question{padding:12px 14px;border:1px solid var(--border-secondary);border-radius:10px;background:var(--bg-secondary)}.practice-question.is-excluded{opacity:.55}.practice-question.is-excluded .practice-question-text{text-decoration:line-through}.practice-question-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.practice-question-index{display:grid;flex:none;width:22px;height:22px;place-items:center;border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:700}.practice-question-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.practice-tag{padding:2px 8px;border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-weight:700}.practice-tag.is-easy{background:color-mix(in srgb,var(--accent-success) 14%,var(--bg-secondary));color:color-mix(in srgb,var(--accent-success) 75%,var(--text-primary))}.practice-tag.is-medium{background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-secondary));color:var(--accent-primary)}.practice-tag.is-hard{background:color-mix(in srgb,var(--accent-purple) 14%,var(--bg-secondary));color:var(--accent-purple)}.practice-tag.is-repeat{margin-left:6px;background:color-mix(in srgb,var(--accent-warning) 18%,var(--bg-secondary));color:color-mix(in srgb,var(--accent-warning) 65%,var(--text-primary))}.practice-question-source{color:var(--text-muted);font-size:11.5px}.practice-question-text{margin:0;color:var(--text-primary);font-size:13.5px;line-height:1.5;white-space:pre-wrap}.practice-question-image{display:block;max-width:240px;max-height:160px;margin-top:8px;border-radius:8px;object-fit:contain}.practice-question-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px;margin:8px 0 0;padding:0;color:var(--text-secondary);font-size:13px;line-height:1.6;list-style:upper-alpha inside}.practice-question-options li.is-correct{color:var(--accent-success);font-weight:700}.practice-question-answer{margin:6px 0 0;color:var(--text-secondary);font-size:12.5px}.practice-question-answer strong{color:var(--accent-success)}.practice-question-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:8px}.practice-question-explanation{margin:8px 0 0;padding:10px 12px;border-left:3px solid var(--accent-primary);border-radius:6px;background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-secondary));color:var(--text-secondary);font-size:12.5px;line-height:1.55}.practice-excluded{display:flex;align-items:center;justify-content:space-between;padding:10px 2px 0;color:var(--text-muted);font-size:12.5px}.practice-batches{display:flex;flex-direction:column;gap:10px}.practice-empty-state{padding:36px;color:var(--text-muted);text-align:center}.practice-empty-state strong{display:block;margin-bottom:6px;color:var(--text-primary);font-size:15px}.practice-empty-state p{max-width:460px;margin:0 auto;font-size:13px;line-height:1.55}.practice-empty-state.is-error{color:var(--accent-danger)}.practice-batch{border:1px solid var(--border-primary);border-radius:14px;background:var(--bg-secondary)}.practice-batch.is-highlighted{border-color:color-mix(in srgb,var(--accent-primary) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 14%,transparent)}.practice-batch.is-cancelled{opacity:.7}.practice-batch-head{display:flex;width:100%;align-items:center;gap:18px;padding:14px 18px;border:0;border-radius:14px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.practice-batch-head:hover{background:color-mix(in srgb,var(--bg-tertiary) 50%,transparent)}.practice-batch-title{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:3px}.practice-batch-title strong{color:var(--text-primary);font-size:14px}.practice-batch-title small{color:var(--text-muted);font-size:12px}.practice-batch-progress{display:flex;flex:0 1 280px;flex-direction:column;gap:6px}.practice-batch-bar{display:flex;height:8px;overflow:hidden;gap:2px;border-radius:999px;background:var(--bg-tertiary)}.practice-batch-bar span{min-width:6px}.practice-batch-bar .is-completed{background:#2e9e52}.practice-batch-bar .is-grading{background:var(--accent-warning)}.practice-batch-bar .is-pending{background:color-mix(in srgb,var(--accent-primary) 45%,var(--bg-tertiary))}.practice-batch-bar .is-overdue{background:var(--accent-danger)}.practice-batch-caption{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--text-secondary);font-size:12px;font-weight:600}.practice-batch-caption em{color:#2e9e52;font-style:normal}.practice-batch-body{padding:0 18px 16px}.practice-batch-table{border-top:1px solid var(--border-secondary)}.practice-batch-row{display:grid;grid-template-columns:minmax(160px,1.4fr) 120px 70px minmax(200px,1.4fr) 110px;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border-secondary);font-size:13px}.practice-batch-row.is-header{color:var(--text-muted);font-size:11.5px;font-weight:700}.practice-batch-student{display:flex;align-items:center;gap:10px;min-width:0;color:var(--text-primary);font-weight:600}.practice-batch-score{color:var(--text-primary);font-weight:700;font-variant-numeric:tabular-nums}.practice-status-change{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.practice-status-arrow{color:var(--text-muted);font-weight:700}.practice-status-arrow.is-up{color:#2e9e52}.practice-status-arrow.is-down{color:var(--accent-danger)}.practice-batch-actions{display:flex;justify-content:flex-end;padding-top:12px}.practice-cancel-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.practice-cancel-confirm p{margin:0;color:var(--text-secondary);font-size:12.5px}.practice-answer-list{display:flex;margin:4px 0 10px;padding:10px 12px 10px 34px;flex-direction:column;gap:8px;border-radius:10px;background:var(--bg-tertiary);font-size:12.5px}.practice-answer-list li{padding-left:4px}.practice-answer-list li.is-correct::marker{color:#2e9e52}.practice-answer-list li.is-wrong::marker{color:var(--accent-danger)}.practice-answer-question{margin:0;color:var(--text-primary);font-weight:600}.practice-answer-line{display:flex;flex-wrap:wrap;gap:4px 16px;margin:3px 0 0;color:var(--text-secondary)}.practice-answer-verdict{font-size:11.5px;font-weight:700}.practice-answer-verdict.is-correct{color:#2e9e52}.practice-answer-verdict.is-wrong{color:var(--accent-danger)}.practice-answer-grade{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;color:color-mix(in srgb,var(--accent-warning) 70%,var(--text-primary));font-weight:600}@media (max-width: 760px){.practice-student-picker,.practice-question-options{grid-template-columns:1fr}.practice-setup-grid{grid-template-columns:1fr;gap:18px}.practice-stepper{overflow-x:auto;padding-left:16px;padding-right:16px}.practice-review-row-head{flex-wrap:wrap}.practice-review-questions{padding-left:12px}.practice-batch-head{flex-wrap:wrap}.practice-batch-progress{flex-basis:100%}.practice-batch-row{grid-template-columns:1fr auto}.practice-batch-row.is-header{display:none}}@media (prefers-reduced-motion: reduce){.practice-chevron,.practice-progress span,.practice-student-option{transition:none}}
