@import"https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700&family=Literata:ital,opsz,wght@0,7..72,400;0,7..72,600;0,7..72,700;1,7..72,400;1,7..72,600&display=swap";input,textarea,select,[contenteditable=true],[contenteditable=""],[contenteditable],.word-item,.lesson-topic,.group-header,.public-vocabulary-container{user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important}label[for]{cursor:pointer}button,a,[role=button],[onclick]{cursor:pointer!important}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,select,textarea,button{font-family:inherit}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--radius: 2px;--radius-pill: 999px;--ink: #2c6e9a;--ink-hover: #245c82;--ink-soft: rgba(44, 110, 154, .08);--focus-ring: 0 0 0 3px rgba(44, 110, 154, .22);--danger: #c44536;--danger-soft: #fbecea;--danger-ring: 0 0 0 3px rgba(196, 69, 54, .2);--warn: #b7791f;--text: #1f2933;--text-muted: #5b6672;--text-faint: #8a94a0;--line: #cfd5dc;--line-soft: #e3e7ec;--line-strong: #9aa4b0;--field-bg: #ffffff;--field-bg-disabled: #f1f3f5;--surface: #ffffff;--surface-sunken: #f6f7f9;--control-h: 36px;--control-h-sm: 30px;--control-pad-x: 10px;--control-font: 14px;--label-font: 13px;--hint-font: 12px;--field-gap: 16px}:root{--btn-radius: var(--radius);--btn-font: 13px;--btn-weight: 600;--btn-pad-y: 8px;--btn-pad-x: 16px;--btn-line: 1.2;--btn-gap: 8px;--btn-transition: background-color .12s ease, border-color .12s ease, color .12s ease;--btn-ink: #2c6e9a;--btn-ink-hover: #245c82;--btn-ink-active: #1e4f70;--btn-confirm: #2d8a57;--btn-confirm-hover: #257348;--btn-confirm-active: #1e5e3b;--btn-risk: #c44536;--btn-risk-hover: #a8382c;--btn-risk-active: #8f2f26;--btn-quiet-bg: #e8ecf0;--btn-quiet-text: #4a5560;--btn-quiet-border: #d0d5dc;--btn-quiet-hover-bg: #dde2e8;--btn-quiet-hover-border: #c3c9d1;--btn-quiet-active-bg: #d2d8df;--btn-disabled-opacity: .5;--btn-focus-ring: 0 0 0 3px rgba(44, 110, 154, .28);--btn-focus-ring-confirm: 0 0 0 3px rgba(45, 138, 87, .28);--btn-focus-ring-risk: 0 0 0 3px rgba(196, 69, 54, .28)}.btn-primary,.btn-success,.btn-danger,.btn-secondary,.btn-create-student,.btn-add-schedule,.btn-upload,.btn-edit,.btn-outline-sm,.login-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-gap);min-height:var(--control-h);padding:var(--btn-pad-y) var(--btn-pad-x);border-radius:var(--btn-radius);border:1px solid transparent;font-family:inherit;font-size:var(--btn-font);font-weight:var(--btn-weight);line-height:var(--btn-line);text-decoration:none;white-space:nowrap;cursor:pointer;box-shadow:none;transform:none;transition:var(--btn-transition)}.btn-primary:hover,.btn-success:hover,.btn-danger:hover,.btn-secondary:hover,.btn-create-student:hover,.btn-add-schedule:hover,.btn-upload:hover,.btn-edit:hover,.btn-outline-sm:hover,.login-button:hover,.btn-primary:active,.btn-success:active,.btn-danger:active,.btn-secondary:active,.btn-create-student:active,.btn-add-schedule:active,.btn-upload:active,.btn-edit:active,.btn-outline-sm:active,.login-button:active{transform:none;box-shadow:none}.btn-primary:focus-visible,.btn-success:focus-visible,.btn-danger:focus-visible,.btn-secondary:focus-visible,.btn-create-student:focus-visible,.btn-add-schedule:focus-visible,.btn-upload:focus-visible,.btn-edit:focus-visible,.btn-outline-sm:focus-visible,.login-button:focus-visible,.btn-icon:focus-visible,.btn-icon-danger:focus-visible,.btn-remove-schedule:focus-visible{outline:none;box-shadow:var(--btn-focus-ring)}.btn-success:focus-visible,.btn-create-student:focus-visible{box-shadow:var(--btn-focus-ring-confirm)}.btn-danger:focus-visible,.btn-icon-danger:focus-visible,.btn-remove-schedule:focus-visible{box-shadow:var(--btn-focus-ring-risk)}.btn-primary:disabled,.btn-success:disabled,.btn-danger:disabled,.btn-secondary:disabled,.btn-create-student:disabled,.btn-add-schedule:disabled,.btn-upload:disabled,.btn-edit:disabled,.btn-outline-sm:disabled,.login-button:disabled,.btn-small:disabled{opacity:var(--btn-disabled-opacity);cursor:not-allowed;transform:none;box-shadow:none}.btn-primary,.btn-add-schedule,.btn-upload,.btn-edit,.login-button{background:var(--btn-ink);color:#fff;border-color:var(--btn-ink)}.btn-primary:hover:not(:disabled),.btn-add-schedule:hover:not(:disabled),.btn-upload:hover:not(:disabled),.btn-edit:hover:not(:disabled),.login-button:hover:not(:disabled){background:var(--btn-ink-hover);border-color:var(--btn-ink-hover);color:#fff}.btn-primary:active:not(:disabled),.btn-add-schedule:active:not(:disabled),.btn-upload:active:not(:disabled),.btn-edit:active:not(:disabled),.login-button:active:not(:disabled){background:var(--btn-ink-active);border-color:var(--btn-ink-active)}.btn-success{background:var(--btn-confirm);color:#fff;border-color:var(--btn-confirm)}.btn-success:hover:not(:disabled){background:var(--btn-confirm-hover);border-color:var(--btn-confirm-hover);color:#fff}.btn-success:active:not(:disabled){background:var(--btn-confirm-active);border-color:var(--btn-confirm-active)}.btn-danger{background:var(--btn-risk);color:#fff;border-color:var(--btn-risk)}.btn-danger:hover:not(:disabled){background:var(--btn-risk-hover);border-color:var(--btn-risk-hover);color:#fff}.btn-danger:active:not(:disabled){background:var(--btn-risk-active);border-color:var(--btn-risk-active)}.btn-secondary,.btn-outline-sm{background:var(--btn-quiet-bg);color:var(--btn-quiet-text);border-color:var(--btn-quiet-border)}.btn-secondary:hover:not(:disabled),.btn-outline-sm:hover:not(:disabled){background:var(--btn-quiet-hover-bg);border-color:var(--btn-quiet-hover-border);color:var(--btn-quiet-text)}.btn-secondary:active:not(:disabled),.btn-outline-sm:active:not(:disabled){background:var(--btn-quiet-active-bg)}.btn-create-student{background:#fff;color:var(--btn-confirm);border-color:#b7e0c8}.btn-create-student:hover:not(:disabled){background:#eef8f2;border-color:var(--btn-confirm);color:var(--btn-confirm-hover)}.btn-create-student:active:not(:disabled){background:#e3f2e9}.btn-small{min-height:var(--control-h-sm);padding:6px 12px;font-size:12px;border-radius:var(--btn-radius);border:1px solid transparent;cursor:pointer;font-weight:600;transform:none;box-shadow:none;transition:var(--btn-transition)}.btn-outline-sm{min-height:var(--control-h-sm);padding:5px 12px;font-size:12px;font-weight:500}.btn-icon-danger{background:#f8e4e1;color:var(--btn-risk);border:none;width:36px;height:36px;border-radius:var(--btn-radius);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none;transform:none;transition:var(--btn-transition)}.btn-icon-danger:hover:not(:disabled){background:#f1cfc9;color:var(--btn-risk-hover);transform:none}.btn-remove-schedule{background:#f8e4e1;color:var(--btn-risk);border:none;width:32px;height:32px;border-radius:50%;font-size:18px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:none;transform:none;transition:var(--btn-transition)}.btn-remove-schedule:hover:not(:disabled){background:#f1cfc9;color:var(--btn-risk-hover);transform:none}@media(prefers-reduced-motion:reduce){.btn-primary,.btn-success,.btn-danger,.btn-secondary,.btn-create-student,.btn-add-schedule,.btn-upload,.btn-edit,.btn-outline-sm,.btn-small,.btn-icon-danger,.btn-remove-schedule,.login-button{transition:none}}.form-input,.form-select,.form-textarea{width:100%;height:var(--control-h);padding:0 var(--control-pad-x);border:1px solid var(--line);border-radius:var(--radius);background-color:var(--field-bg);color:var(--text);font:inherit;font-size:var(--control-font);line-height:1.4;box-sizing:border-box;transition:border-color .12s ease,box-shadow .12s ease}textarea.form-input,.form-textarea,.form-input.textarea{height:auto;min-height:72px;padding:8px var(--control-pad-x);line-height:1.45;resize:vertical}select.form-select[multiple],select.form-select[size]{height:auto;padding:4px;background-image:none}.form-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235b6672' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-size:10px 6px;background-repeat:no-repeat;padding-right:30px}.form-select--muted{color:var(--text-faint)}.form-select--muted option{color:var(--text)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-faint);opacity:1}.form-input[type=checkbox],.form-input[type=radio]{display:inline-block;width:auto;height:auto;padding:0;accent-color:var(--ink)}.form-input[type=file]{height:auto;padding:6px var(--control-pad-x)}.form-input[type=date]{max-width:200px;cursor:pointer}.form-input[type=time]{max-width:160px}.form-input:hover:not(:disabled):not(:focus),.form-select:hover:not(:disabled):not(:focus),.form-textarea:hover:not(:disabled):not(:focus){border-color:var(--line-strong)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--ink);box-shadow:var(--focus-ring)}.form-input.error,.form-select.error,.form-textarea.error,.form-input.error:hover,.form-select.error:hover{border-color:var(--danger)}.form-input.error:focus,.form-select.error:focus,.form-textarea.error:focus{border-color:var(--danger);box-shadow:var(--danger-ring)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled,.form-input.disabled{background-color:var(--field-bg-disabled);border-color:var(--line-soft);color:var(--text-muted);cursor:not-allowed}:where(input[type=date]:not(.form-input),input[type=time]:not(.form-input)){padding:7px var(--control-pad-x);border:1px solid var(--line);border-radius:var(--radius);background-color:var(--field-bg);color:var(--text);font:inherit;font-size:var(--control-font);cursor:pointer}:where(input[type=date]:not(.form-input),input[type=time]:not(.form-input)):focus{outline:none;border-color:var(--ink);box-shadow:var(--focus-ring)}:where(input[type=date]:not(.form-input),input[type=time]:not(.form-input)):disabled{background-color:var(--field-bg-disabled);color:var(--text-muted);cursor:not-allowed}.form-group{margin-bottom:var(--field-gap)}.form-group label,.form-label{display:block;margin-bottom:6px;color:var(--text-muted);font-size:var(--label-font);font-weight:600;line-height:1.3;text-align:left}.required{color:var(--danger);margin-left:2px}.form-help,.form-help-text,.field-hint{display:block;margin-top:4px;color:var(--text-muted);font-size:var(--hint-font);line-height:1.4}.form-help--warn{color:var(--warn)}.error-text{display:block;margin-top:4px;color:var(--danger);font-size:var(--hint-font);line-height:1.4}.label-with-info{display:flex;align-items:center;gap:6px;margin-bottom:6px}.form-group .label-with-info>label,.label-with-info>.form-label{margin-bottom:0}.field-info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-faint);line-height:0;vertical-align:middle;cursor:pointer;flex-shrink:0}.field-info:hover,.field-info[aria-expanded=true]{color:var(--ink)}.field-info:focus-visible{outline:none;color:var(--ink);box-shadow:var(--focus-ring)}.field-info__bubble{position:fixed;z-index:99999;max-width:280px;padding:8px 10px;border-radius:var(--radius);background:var(--text);color:#fff;font-size:var(--hint-font);font-weight:400;line-height:1.45;text-align:left;white-space:normal;box-shadow:0 4px 14px #0f172a2e}label.checkbox-control{display:flex;align-items:center;gap:10px;width:fit-content;margin-bottom:0;padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--field-bg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .12s ease,background-color .12s ease}label.checkbox-control:hover{border-color:var(--line-strong)}label.checkbox-control:has(input:checked){border-color:var(--ink);background:var(--ink-soft)}label.checkbox-control input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:18px;margin:0;accent-color:var(--ink);cursor:pointer;flex-shrink:0}.checkbox-control__label{color:var(--text);font-size:var(--label-font);font-weight:500}.checkbox-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:4px}.form-row,.form-row-compact{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--field-gap)}.form-row-compact.three-columns{grid-template-columns:1fr 1fr 1fr}.field-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--field-gap)}.field-grid>*{grid-column:span 12;min-width:0}.field-grid>.span-2{grid-column:span 2}.field-grid>.span-3{grid-column:span 3}.field-grid>.span-4{grid-column:span 4}.field-grid>.span-5{grid-column:span 5}.field-grid>.span-6{grid-column:span 6}.field-grid>.span-8{grid-column:span 8}.field-grid>.span-12{grid-column:span 12}.field-grid>.form-group,.consultation-edit__card .field-grid>.form-group{max-width:none}.field-grid .form-input[type=date],.field-grid .form-input[type=time]{max-width:none}@media(max-width:720px){.form-row,.form-row-compact,.form-row-compact.three-columns{grid-template-columns:1fr}.field-grid>[class*=span-]{grid-column:span 12}}.consultation-edit{display:flex;flex-direction:column;gap:16px;padding:0 2rem 2rem}.consultation-edit__card{padding:20px 22px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface)}.consultation-edit__card-title{margin:0 0 16px;color:var(--text);font-size:1rem;font-weight:600}.consultation-edit__card .form-group{max-width:400px}.consultation-edit__card .form-row-compact .form-group{max-width:none}.consultation-edit__card .checkbox-row{max-width:400px}.form-actions,.consultation-edit__actions{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:10px}.form-actions{padding:12px 25px;border-top:1px solid var(--line-soft);background:var(--surface-sunken)}.consultation-edit__actions{flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface)}@media(max-width:768px){.consultation-edit{padding:0 12px 12px}.consultation-edit__card{padding:16px}.form-actions{padding:12px 16px;flex-direction:column}.form-actions button{width:100%}}.login-container{height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;box-sizing:border-box;overflow:hidden}.login-card{background:#fff;border-radius:var(--radius);padding:32px;box-shadow:0 20px 40px #0000001a;width:100%;max-width:400px;max-height:90vh;animation:slideUp .6s ease-out;box-sizing:border-box}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:24px}.login-header h1{color:#2d3748;font-size:2rem;font-weight:700;margin:0 0 8px}.login-header p{color:#718096;margin:0;font-size:1rem}.login-form{margin-bottom:20px}.login-form .form-group{margin-bottom:16px}.login-form .form-group label{display:block;color:#2d3748;font-weight:600;margin-bottom:8px;font-size:.875rem}.login-form .form-group input{width:100%;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);font-size:1rem;transition:all .2s ease;box-sizing:border-box}.login-form .form-group input:focus{outline:none;border-color:var(--ink);box-shadow:var(--focus-ring)}.login-form .form-group input:disabled{background-color:#f7fafc;cursor:not-allowed}.login-button{width:100%;padding:14px 24px;font-size:1rem}.error-message{background-color:#fed7d7;color:#c53030;padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;font-size:.875rem;border:1px solid #feb2b2}.login-footer{text-align:center;padding-top:16px;border-top:1px solid #e2e8f0;font-size:.8rem;color:#718096}.login-footer p{margin:4px 0}.login-footer strong{color:#2d3748}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background-color:#f5f5f5}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.loading-container p{color:#666;font-size:16px;margin:0}.talkalyst-nudge{--nudge-ink: #121d31;--nudge-mist: #b8c1d1;--nudge-paper: #e8edf4;--nudge-coral: #ff6b57;--nudge-blue: #2d5ff5;--nudge-blue-dark: #1d3fbe;display:flex;align-items:center;gap:1.1rem 1.35rem;margin-bottom:1.5rem;padding:.9rem 1.15rem;background:var(--nudge-ink);color:#fff;border-radius:var(--radius);border:1px solid #1c2a44;box-shadow:0 4px 6px #121d311f}.talkalyst-nudge__mark{display:inline-flex;align-items:flex-end;justify-content:center;gap:3px;width:28px;height:24px;flex-shrink:0}.talkalyst-nudge__bar{display:block;width:3px;border-radius:var(--radius);background:var(--nudge-coral);transform-origin:bottom}.talkalyst-nudge__bar:nth-child(1){height:8px}.talkalyst-nudge__bar:nth-child(2){height:18px}.talkalyst-nudge__bar:nth-child(3){height:13px}.talkalyst-nudge__bar:nth-child(4){height:21px}.talkalyst-nudge__copy{flex:1;min-width:0}.talkalyst-nudge__kicker{margin:0 0 .2rem;color:#8490a4;font-size:.625rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.talkalyst-nudge__title{margin:0;font-size:1.05rem;font-weight:650;letter-spacing:-.02em;line-height:1.25;color:#fff}.talkalyst-nudge--evening .talkalyst-nudge__title{font-family:Georgia,Iowan Old Style,Palatino,"Liberation Serif",serif;font-size:1.45rem;font-weight:500;letter-spacing:-.03em}.talkalyst-nudge__body{margin:.28rem 0 0;color:var(--nudge-mist);font-size:.9rem;line-height:1.4}.talkalyst-nudge__tracks{display:flex;flex-wrap:wrap;gap:.65rem .9rem;list-style:none;margin:.45rem 0 0;padding:0}.talkalyst-nudge__tracks li{display:inline-flex;align-items:center;gap:.35rem;color:var(--nudge-mist);font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.talkalyst-nudge__tracks li:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--track)}.talkalyst-nudge__actions{display:flex;align-items:center;gap:.65rem;flex-shrink:0;margin-left:auto}.talkalyst-nudge__cta{display:inline-flex;align-items:center;justify-content:center;height:1.7rem;padding:0 .72rem;background:var(--nudge-blue);color:#fff;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.01em;line-height:1;text-decoration:none;white-space:nowrap;transition:background .2s ease}.talkalyst-nudge__cta:hover{background:color-mix(in srgb,var(--nudge-blue) 82%,white)}.talkalyst-nudge__cta:focus-visible,.talkalyst-nudge__dismiss:focus-visible{outline:3px solid color-mix(in srgb,var(--nudge-blue) 55%,white);outline-offset:3px}.talkalyst-nudge__dismiss{background:none;border:0;color:#8490a4;cursor:pointer;font:inherit;font-size:.8rem;font-weight:600;padding:.35rem .4rem;border-radius:var(--radius)}.talkalyst-nudge__dismiss:hover{color:var(--nudge-paper)}@media(prefers-reduced-motion:no-preference){.talkalyst-nudge--evening .talkalyst-nudge__bar{animation:talkalyst-nudge-voice 1.8s ease-in-out infinite}.talkalyst-nudge--evening .talkalyst-nudge__bar:nth-child(2){animation-delay:.15s}.talkalyst-nudge--evening .talkalyst-nudge__bar:nth-child(3){animation-delay:.35s}.talkalyst-nudge--evening .talkalyst-nudge__bar:nth-child(4){animation-delay:.08s}}@keyframes talkalyst-nudge-voice{0%,to{transform:scaleY(1)}50%{transform:scaleY(.62)}}@media(max-width:768px){.talkalyst-nudge{flex-wrap:wrap;align-items:flex-start}.talkalyst-nudge__actions{width:100%;margin-left:0;justify-content:flex-end}.talkalyst-nudge--evening .talkalyst-nudge__title{font-size:1.25rem}}.dashboard{min-height:100vh;background-color:#f7fafc;padding:0}.dashboard-page-header{background:#fff;padding:2rem;border-bottom:1px solid #e2e8f0;margin-bottom:2rem;box-shadow:0 1px 3px #0000000d}.dashboard-page-header h1{color:#2d3748;margin:0 0 .5rem;font-size:2rem;font-weight:700}.dashboard-page-header p{color:#718096;margin:0;font-size:1rem}.dashboard-content{padding:0 2rem 2rem}.dashboard-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:2rem}.dashboard-revenue-section{margin-bottom:2rem}.dashboard-revenue-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.dashboard-revenue-header h3{margin:0}.dashboard-revenue-year-nav{display:flex;align-items:center;gap:.5rem}.dashboard-revenue-year-label{font-size:1.125rem;font-weight:600;color:#2d3748;min-width:3.25rem;text-align:center}.dashboard-revenue-year-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 .5rem;border:1px solid #e2e8f0;border-radius:var(--radius);background:#fff;color:#4a5568;font-size:1rem;cursor:pointer}.dashboard-revenue-year-btn:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0;color:#2d3748}.dashboard-revenue-year-btn:disabled{opacity:.4;cursor:not-allowed}.dashboard-revenue-chart{height:320px;width:100%;margin-top:.75rem}.dashboard-card{background:#fff;padding:.75rem 1rem;border-radius:var(--radius);box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0}.dashboard-card h3{color:#2d3748;margin:0 0 .25rem;font-size:.85rem;font-weight:600}.dashboard-grid .dashboard-card h3{text-align:center}.dashboard-card-clickable{cursor:pointer;transition:box-shadow .15s}.card-stats{display:flex;flex-direction:column;align-items:center;text-align:center}.stat-number{font-size:1.5rem;font-weight:700;color:#667eea;line-height:1}.stat-number-alert{color:#e53e3e}.dashboard-card-clickable:hover{box-shadow:0 8px 12px #0000001a}.stat-label{font-size:.75rem;color:#a0aec0;text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem}.weekly-calendar{background:#fff;border-radius:var(--radius);box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;padding:1.5rem;margin-bottom:2.5rem}.weekly-calendar-title{color:#2d3748;margin:0 0 1.25rem;font-size:1.25rem;font-weight:600}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;border:1px solid #e2e8f0;border-radius:var(--radius);overflow:hidden}.week-day-column{border-right:1px solid #e2e8f0;min-height:140px;display:flex;flex-direction:column}.week-day-column:last-child{border-right:none}.week-day-column.today{background:#f0f4ff}.week-day-header{display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;border-bottom:1px solid #e2e8f0;background:#f7fafc}.week-day-column.today .week-day-header{background:#ebf0ff}.week-day-name{font-size:.75rem;font-weight:600;color:#718096;text-transform:uppercase;letter-spacing:.5px}.week-day-date{font-size:.8rem;color:#a0aec0;margin-top:2px}.week-day-date.today-date{background:#667eea;color:#fff;border-radius:var(--radius-pill);padding:1px 8px;font-weight:600}.week-day-lessons{flex:1;padding:.5rem .35rem;display:flex;flex-direction:column;gap:.35rem}.no-lessons{color:#cbd5e0;text-align:center;padding-top:1rem;font-size:1.1rem}.week-day-column.vacation{background:#fefce8;opacity:.75}.week-day-column.vacation.illness{background:#fee2e2}.vacation-label{text-align:center;padding-top:1rem;font-size:.85rem;color:#92400e;font-weight:500}.week-day-column.vacation.illness .vacation-label{color:#991b1b}.lesson-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4rem .25rem;border-radius:var(--radius);font-size:.75rem;border-left:3px solid #667eea;background:#f7fafc;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;min-height:2.6rem;box-sizing:border-box}.lesson-chip:hover{background:#edf2f7}.lesson-chip .lesson-time{font-weight:700;color:#2d3748;font-size:.8rem}.lesson-chip .lesson-group{color:#718096;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.consultation-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4rem .25rem;border-radius:var(--radius);font-size:.75rem;border-left:3px solid #d97706;background:#fffbeb;cursor:pointer;transition:background .15s ease;min-height:2.6rem;box-sizing:border-box}.consultation-chip:hover{background:#fef3c7}.consultation-chip .lesson-time{font-weight:700;color:#92400e;font-size:.8rem}.consultation-chip .lesson-group{color:#78350f;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.lesson-chip.placeholder,.consultation-chip.placeholder{visibility:hidden;pointer-events:none;min-height:2.6rem}.lesson-chip.exists{background:#f0fff4;border-left-width:4px}.lesson-chip.exists .lesson-time{color:#276749}.lesson-chip.exists .lesson-group:after{content:" ✓";color:#48bb78;font-weight:700}.lesson-chip.exists:hover{background:#e6ffed}.lesson-chip.canceled{background:#fef2f2;border-left-color:#fca5a5!important;opacity:.75}.lesson-chip.canceled .lesson-time{color:#b91c1c}.lesson-chip.canceled .lesson-group{text-decoration:line-through;color:#9ca3af}.lesson-chip.canceled .lesson-group:after{content:" ✕";color:#ef4444;font-weight:700;text-decoration:none;display:inline-block}.lesson-chip.canceled:hover{background:#fee2e2}.lesson-chip.level-a0{border-left-color:#38b2ac}.lesson-chip.level-a1{border-left-color:#48bb78}.lesson-chip.level-a2{border-left-color:#68d391}.lesson-chip.level-b1{border-left-color:#667eea}.lesson-chip.level-b2{border-left-color:#805ad5}.lesson-chip.level-c1{border-left-color:#d53f8c}.lesson-chip.level-c2{border-left-color:#e53e3e}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:1rem;padding:1rem}.dashboard-content{padding:1rem}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.week-grid{grid-template-columns:1fr}.week-day-column{border-right:none;border-bottom:1px solid #e2e8f0;min-height:auto}.week-day-column:last-child{border-bottom:none}.week-day-header{flex-direction:row;gap:.5rem}.week-day-lessons{flex-direction:row;flex-wrap:wrap}}.student-vacations-week{background:#fff;border-radius:var(--radius);box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;padding:1.5rem;margin-top:1.5rem}.vacation-list{display:flex;flex-direction:column;gap:.5rem}.vacation-row{display:flex;align-items:center;gap:1rem;padding:.6rem .75rem;border-radius:var(--radius);background:#f8fafc;border:1px solid #edf2f7}.vacation-student{font-weight:600;color:#2d3748;min-width:200px}.vacation-period{color:#718096;font-size:.9rem}.vacation-type-tag{font-size:.75rem;font-weight:500;padding:2px 8px;border-radius:var(--radius);background:#ebf8ff;color:#2b6cb0}.vacation-type-tag.illness{background:#fff5f5;color:#c53030}.vacation-edit-btn{margin-left:auto;background:none;border:none;cursor:pointer;font-size:1rem;color:#a0aec0;padding:2px 6px;border-radius:var(--radius);transition:color .15s,background .15s}.vacation-edit-btn:hover{color:#4a5568;background:#edf2f7}.stat-number-row{position:relative;display:inline-flex;align-items:center;justify-content:center}.risk-bubble{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:8px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;font-size:.72rem;font-weight:700;line-height:1;color:#fff;background-color:#e53e3e;border-radius:50%;cursor:pointer}.revenue-tooltip{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:8px 10px;box-shadow:0 2px 8px #00000014;font-size:.8rem}.revenue-tooltip__label{font-weight:600;color:#2d3748;margin-bottom:4px}.revenue-tooltip__row--collected{color:#667eea}.revenue-tooltip__row--predicted{color:#9aa5ec}.group-form-container{padding:0;max-width:none;margin:0;background-color:#f7fafc;min-height:100vh;text-align:left}.group-form{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);overflow:clip;margin:0 2rem 2rem}.form-section{padding:20px 25px;border-bottom:1px solid var(--line-soft)}.form-section:last-child{border-bottom:none}.form-section h2{color:var(--text);font-size:1rem;font-weight:600;margin:0 0 14px;text-align:left}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h2,.section-header h3{margin:0}.chapter-actions{display:flex;align-items:center;gap:8px}.chapter-actions .btn-secondary{width:32px;height:32px;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;line-height:1}.section-footer{margin-top:12px}.consultation-recordings-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}.consultation-recordings-head .consultation-edit__card-title{margin:0}.consultation-recordings-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.consultation-recordings-actions .btn-primary{min-height:var(--control-h-sm);padding:4px 10px;font-size:12px;font-weight:600}.consultation-recordings{display:flex;flex-direction:column;gap:10px}.consultation-recordings-add{align-self:flex-start}.consultation-recordings-empty{margin:0;color:#777;font-size:14px}.consultation-recordings-list{list-style:none;padding:0;margin:0;border:1px solid #e2e8f0;border-radius:var(--radius);overflow:hidden}.consultation-recordings-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #e2e8f0}.consultation-recordings-item:last-child{border-bottom:none}.consultation-recordings-meta{color:#777;font-size:13px}.consultation-recordings-delete{margin-left:auto;background:none;border:none;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:var(--radius);line-height:1}.consultation-recordings-delete:hover{background:#fee2e2}.schedule-error{margin-bottom:15px;padding:8px 12px;background:#fed7d7;border-radius:var(--radius);border-left:4px solid #e53e3e}.btn-add-schedule{padding:8px 16px;font-size:12px}.schedules-list{display:flex;flex-direction:column;gap:12px}.schedule-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);overflow:hidden}.schedule-table th{background:#f7fafc;color:#4a5568;font-weight:600;font-size:14px;padding:12px;text-align:left;border-bottom:2px solid #e2e8f0}.schedule-table td{padding:12px;border-bottom:1px solid #e2e8f0}.schedule-table tr:last-child td{border-bottom:none}.schedule-table .form-input,.schedule-table .form-select{width:100%;margin:0}.schedule-table .btn-remove-schedule{width:24px;height:24px;font-size:14px;margin:0}.schedule-row-new{background-color:#f0f9ff!important;border-left:3px solid #3b82f6}.schedule-row-new td{background-color:#f0f9ff}.schedule-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:var(--radius);padding:12px;margin-bottom:0;position:relative}.grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:15px}.col-span-9{grid-column:span 9}.col-span-3{grid-column:span 3}@media(max-width:1024px){.col-span-9{grid-column:span 8}.col-span-3{grid-column:span 4}}@media(max-width:768px){.grid-12{grid-template-columns:1fr}.col-span-9,.col-span-3{grid-column:auto}}.thumb-preview-23{width:200px;height:300px;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}.thumb-preview-23 img{width:100%;height:100%;object-fit:cover}.thumb-preview-empty{color:#9ca3af;font-size:.9rem}.schedule-form{display:grid;grid-template-columns:2fr 2fr auto;gap:12px;align-items:end}.schedule-form .form-group{margin-bottom:0}.students-list{display:flex;flex-direction:column;gap:12px}.student-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:var(--radius);padding:12px;position:relative}.student-item-quitted{background:#f5f5f5;border-color:#d1d5db;opacity:.7}.student-item-quitted .student-info,.student-item-quitted .student-header h4{color:#6b7280}.student-item-quitted .student-details p{color:#9ca3af}.quit-date-inline{font-weight:400;color:#9ca3af;font-size:.9rem;margin-left:.5rem}.student-form{position:relative}.student-form .form-row{margin-bottom:10px}.student-form .form-group textarea{resize:vertical;min-height:60px;font-family:inherit;height:auto}.student-form .btn-remove-schedule{position:absolute;top:-8px;right:-8px;z-index:1}.hidden-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.btn-upload{padding:10px 16px;font-size:14px}.error-message{background-color:#fed7d7;color:#c53030;padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;border-left:4px solid #c53030}.close-error{background:none;border:none;color:#c53030;font-size:20px;cursor:pointer;padding:0;margin-left:10px}.minimal-list-editor .list-preview{margin-top:8px}.minimal-list-editor .plain-text p{margin:4px 0;line-height:1.35}.minimal-list-editor ul{margin:6px 0 6px 1.2em;padding-left:1.2em}.minimal-list-editor li{margin:2px 0}@media(max-width:768px){.group-form-container{padding:15px}.group-form-header{flex-direction:column;gap:15px;align-items:stretch}.group-form-header h1{font-size:1.5rem}.form-section{padding:15px}.schedule-form{grid-template-columns:1fr;gap:10px}.schedule-item{padding:10px}.schedule-table{font-size:13px}.schedule-table th,.schedule-table td{padding:8px}.student-item{padding:10px}.btn-remove-schedule{justify-self:center;margin-top:8px;position:static}}@media(max-width:480px){.group-form-header{text-align:center}.section-header{flex-direction:column;gap:10px;align-items:stretch}.section-header h2{text-align:center}.btn-add-schedule{align-self:center}}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;margin-bottom:.75rem}.checkbox-text{font-size:1rem;color:#333}.student-info{width:100%}.student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.student-header h4{margin:0;color:#2d3748;font-size:1rem;display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.student-status{font-size:.8rem}.status-active{color:#38a169;font-weight:500}.status-quit{color:#e53e3e;font-weight:500}.student-details{margin-bottom:.75rem}.student-details p{margin:.15rem 0;font-size:.8rem;color:#4a5568}.student-quit-section{border-top:1px solid var(--line-soft);padding-top:.75rem}.quit-date-input{margin:.75rem 0 0}.quit-actions{display:flex;gap:.375rem}.student-actions{display:flex;gap:.375rem;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.page-header{background:#fff;padding:1rem 2rem;border-bottom:1px solid #e2e8f0;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000d;display:flex;justify-content:space-between;align-items:center;gap:12px}.page-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.page-header-content{flex:1}.page-header-content h1{color:#2d3748;font-size:1.35rem;font-weight:700;margin:0 0 .15rem;text-align:left}.page-header-content p{color:#718096;margin:0;font-size:.8rem;text-align:left}.detail-block{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:1.25rem;margin:0 2rem 1.25rem}.detail-block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.detail-block-header h3{font-size:1rem;font-weight:600;color:#4a5568;margin:0}.schedule-item .form-group,.student-item .form-group{margin-bottom:8px}.schedule-item .form-group:last-child,.student-item .form-group:last-child{margin-bottom:0}.consultation-source-locked{display:flex;align-items:center;gap:10px;width:fit-content;padding:8px 12px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink-soft);color:var(--ink)}.consultation-source-locked span{font-size:12px;color:#64748b}.filter-bar{--control-h: var(--control-h-sm);--control-font: 12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 12px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);margin-bottom:12px}.filter-bar .form-input,.filter-bar .form-select,.filter-bar .search-input{height:var(--control-h-sm);padding:0 8px;border:1px solid var(--line);border-radius:var(--radius);font-size:12px;line-height:calc(var(--control-h-sm) - 2px);background-color:var(--field-bg);box-sizing:border-box;width:auto}.filter-bar .form-select{padding-right:26px;background-position:right 8px center}.filter-bar .search-input{width:200px;flex:none}.filter-bar .form-input[type=date]{width:120px}.filter-bar .form-input:focus,.filter-bar .form-select:focus,.filter-bar .search-input:focus{border-color:var(--ink);box-shadow:var(--focus-ring);outline:none}.filter-bar .btn-primary,.filter-bar .btn-secondary,.filter-bar .btn-success,.filter-bar .btn-danger{padding:0 12px;font-size:12px;line-height:1;display:inline-flex;align-items:center}.filter-bar .filter-label{margin:0 2px 0 4px;color:var(--text-muted);font-size:12px;font-weight:600;white-space:nowrap}.filter-bar .filter-check{display:inline-flex;align-items:center;gap:6px;margin:0 4px;color:var(--text-muted);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}.filter-bar .filter-check input[type=checkbox]{margin:0;accent-color:var(--ink)}.filter-bar .lesson-status-toggle{padding:2px;gap:2px;height:var(--control-h-sm);box-sizing:border-box}.filter-bar .lesson-status-toggle__btn{padding:0 12px;font-size:12px}.filter-bar .filter-sep{color:#cbd5e0;font-size:12px;-webkit-user-select:none;user-select:none}.filter-bar .filter-sep--divider{align-self:center;width:1px;height:22px;margin:0 6px;background:#cbd5e0}.tooltip-portal{position:fixed;background:#fbbf24;color:#1f2937;padding:5px 10px;border-radius:var(--radius);font-size:12px;white-space:nowrap;pointer-events:none;z-index:99999}.lesson-status-toggle{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#f3f4f6;border-radius:var(--radius)}.lesson-status-toggle__btn{padding:7px 18px;background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;font:inherit;font-size:13px;font-weight:500;color:#4b5563;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.lesson-status-toggle__btn:hover{color:#1f2937}.lesson-status-toggle__btn.is-active{background:#fff;color:#111827;border-color:#e5e7eb;box-shadow:0 1px 2px #0f172a0f}.lesson-status-toggle__btn--canceled.is-active{color:#b91c1c;border-color:#fecaca}.lesson-canceled-banner{margin-top:10px;padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);color:#b91c1c;font-size:13px}.students-list--disabled .students-grid{opacity:.45;pointer-events:none}.badge-canceled{display:inline-block;padding:2px 8px;background:#fef2f2;border:1px solid #fecaca;border-radius:999px;color:#b91c1c;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.lesson-row--canceled td{color:#9ca3af}.lesson-status-toggle--filter{grid-template-columns:repeat(3,1fr)}.lesson-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lesson-cancel-btn{background:#fff;color:#b91c1c;border:1px solid #fecaca}.lesson-cancel-btn:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5;transform:none}.lesson-cancel-btn--reactivate{color:#047857;border-color:#a7f3d0}.lesson-cancel-btn--reactivate:hover:not(:disabled){background:#ecfdf5;border-color:#6ee7b7}.lesson-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.risk-control{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.risk-control__active{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:var(--label-font);color:var(--text-muted)}.risk-control__label{color:var(--text-muted);font-size:var(--label-font)}.risk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.risk-seg{display:inline-flex;border:1px solid #d1d5db;border-radius:var(--radius);overflow:hidden}.risk-seg__btn{padding:.45rem 1rem;font-size:.85rem;background:#fff;border:none;cursor:pointer;color:#4a5568}.risk-seg__btn+.risk-seg__btn{border-left:1px solid #d1d5db}.risk-seg__btn--active{background:#667eea;color:#fff}.students-container{max-width:1200px;margin:0 auto;padding:2rem}.results-summary{margin-bottom:1rem;color:#6b7280;font-size:.875rem}.students-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);overflow-x:auto;margin-bottom:1.5rem}.students-table{width:100%;border-collapse:collapse;table-layout:auto;min-width:700px;display:table}.students-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.students-table th,.students-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle;word-wrap:break-word;overflow-wrap:break-word;font-size:.875rem}.students-table td{font-weight:400}.students-table th:nth-child(1),.students-table td:nth-child(1){width:20%}.students-table th:nth-child(2),.students-table td:nth-child(2){width:7%}.students-table th:nth-child(3),.students-table td:nth-child(3){width:18%}.students-table th:nth-child(4),.students-table td:nth-child(4){width:14%}.students-table th:nth-child(5),.students-table td:nth-child(5){width:12%}.students-table th:nth-child(6),.students-table td:nth-child(6){width:14%}.students-table th:nth-child(7),.students-table td:nth-child(7){width:12%}.lessons-table .students-table th:nth-child(1),.lessons-table .students-table td:nth-child(1){width:8%}.lessons-table .students-table th:nth-child(2),.lessons-table .students-table td:nth-child(2){width:20%}.lessons-table .students-table th:nth-child(3),.lessons-table .students-table td:nth-child(3){width:15%}.lessons-table .students-table th:nth-child(4),.lessons-table .students-table td:nth-child(4){width:12%}.lessons-table .students-table th:nth-child(5),.lessons-table .students-table td:nth-child(5){width:15%}.lessons-table .students-table th:nth-child(6),.lessons-table .students-table td:nth-child(6){width:12%}.lessons-table .students-table th:nth-child(7),.lessons-table .students-table td:nth-child(7){width:15%}.vocabulary-table .students-table th:nth-child(1),.vocabulary-table .students-table td:nth-child(1){width:20%}.vocabulary-table .students-table th:nth-child(2),.vocabulary-table .students-table td:nth-child(2){width:8%}.vocabulary-table .students-table th:nth-child(3),.vocabulary-table .students-table td:nth-child(3){width:18%}.vocabulary-table .students-table th:nth-child(4),.vocabulary-table .students-table td:nth-child(4){width:15%}.vocabulary-table .students-table th:nth-child(5),.vocabulary-table .students-table td:nth-child(5){width:19%}.vocabulary-table .students-table th:nth-child(6),.vocabulary-table .students-table td:nth-child(6){width:15%}.students-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.students-table tbody tr:hover{background:transparent}.students-table tbody tr:last-child td{border-bottom:none}.contacts .contact-text{color:#374151;font-size:.875rem;word-break:break-word}.no-contacts{color:#9ca3af;font-style:italic;font-size:.875rem}.action-buttons{display:flex;gap:.25rem}.btn-icon{min-width:2.5rem;height:2rem;padding:0 .5rem;border:1px solid #e5e7eb;border-radius:var(--radius);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease;display:flex;align-items:center;justify-content:center;font-size:.875rem;position:relative;background:#fff;color:#6b7280}.btn-icon:hover{border-color:#d1d5db;background:#f3f4f6;color:#374151}.btn-icon:after{content:attr(data-tooltip);position:absolute;bottom:150%;left:50%;transform:translate(-50%);background:#1f2937;color:#fff;padding:.25rem .5rem;border-radius:var(--radius);font-size:.75rem;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:1000}.btn-icon:before{content:"";position:absolute;bottom:135%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#1f2937;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:1000}.btn-icon:hover:after,.btn-icon:hover:before{opacity:1;visibility:visible}.no-students{text-align:center;padding:3rem 2rem;color:#6b7280}.no-students p{margin:0 0 1rem;font-size:1.125rem}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}.pagination-info{color:#6b7280;font-size:.875rem}.loading-overlay{position:relative;display:flex;justify-content:center;padding:1rem}@media(max-width:768px){.students-container{padding:1rem}.students-table-container{overflow-x:auto}.students-table{min-width:600px}.pagination{flex-direction:column;gap:.5rem}}@media(max-width:640px){.students-table th,.students-table td{padding:.75rem .5rem;font-size:.8rem}.students-table th{font-size:.75rem}.action-buttons{flex-direction:column}.students-table th:nth-child(1),.students-table td:nth-child(1){width:25%!important}.students-table th:nth-child(2),.students-table td:nth-child(2){width:10%!important}.students-table th:nth-child(3),.students-table td:nth-child(3){width:25%!important}.students-table th:nth-child(4),.students-table td:nth-child(4){width:15%!important}.students-table th:nth-child(5),.students-table td:nth-child(5){width:10%!important}.students-table th:nth-child(6),.students-table td:nth-child(6){width:15%!important}.lessons-table .students-table th:nth-child(1),.lessons-table .students-table td:nth-child(1){width:10%!important}.lessons-table .students-table th:nth-child(2),.lessons-table .students-table td:nth-child(2){width:20%!important}.lessons-table .students-table th:nth-child(3),.lessons-table .students-table td:nth-child(3){width:15%!important}.lessons-table .students-table th:nth-child(4),.lessons-table .students-table td:nth-child(4){width:15%!important}.lessons-table .students-table th:nth-child(5),.lessons-table .students-table td:nth-child(5){width:15%!important}.lessons-table .students-table th:nth-child(6),.lessons-table .students-table td:nth-child(6){width:10%!important}.lessons-table .students-table th:nth-child(7),.lessons-table .students-table td:nth-child(7){width:15%!important}.vocabulary-table .students-table th:nth-child(1),.vocabulary-table .students-table td:nth-child(1){width:25%!important}.vocabulary-table .students-table th:nth-child(2),.vocabulary-table .students-table td:nth-child(2){width:10%!important}.vocabulary-table .students-table th:nth-child(3),.vocabulary-table .students-table td:nth-child(3){width:20%!important}.vocabulary-table .students-table th:nth-child(4),.vocabulary-table .students-table td:nth-child(4){width:15%!important}.vocabulary-table .students-table th:nth-child(5),.vocabulary-table .students-table td:nth-child(5){width:15%!important}.vocabulary-table .students-table th:nth-child(6),.vocabulary-table .students-table td:nth-child(6){width:15%!important}.groups-table .students-table th:nth-child(1),.groups-table .students-table td:nth-child(1){width:20%!important}.groups-table .students-table th:nth-child(2),.groups-table .students-table td:nth-child(2){width:12%!important}.groups-table .students-table th:nth-child(3),.groups-table .students-table td:nth-child(3){width:18%!important}.groups-table .students-table th:nth-child(4),.groups-table .students-table td:nth-child(4){width:18%!important}.groups-table .students-table th:nth-child(5),.groups-table .students-table td:nth-child(5){width:17%!important}.groups-table .students-table th:nth-child(6),.groups-table .students-table td:nth-child(6){width:15%!important}}.inline-select{padding:4px 8px;border:none;border-radius:var(--radius);background:transparent;color:inherit;font-size:var(--control-font);cursor:pointer;transition:background-color .12s ease}.inline-select:hover{background-color:var(--ink-soft)}.inline-select:focus-visible{outline:none;box-shadow:var(--focus-ring)}.stats-overview{margin-bottom:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.stat-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:var(--radius);padding:1rem;text-align:center}.stat-card h3{font-size:2rem;font-weight:700;color:#0056b3;margin:0 0 .5rem}.stat-card p{color:#6c757d;margin:0;font-size:.9rem}.form-container{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);padding:2rem;margin-bottom:2rem}.form-input-readonly{padding:0;color:#374151;font-size:1rem;line-height:1.5;font-weight:500}.btn-link-small{background:none;border:none;color:#667eea;text-decoration:underline;cursor:pointer;font-size:.875rem;padding:0;margin-left:.25rem}.btn-link-small:hover{color:#5a67d8;text-decoration:none}.vocabulary-section{border-top:1px solid #e5e7eb;padding-top:2rem;margin-top:2rem}.vocabulary-section h3{color:#1f2937;margin-bottom:1.5rem;font-size:1.25rem}.vocabulary-section h4{color:#374151;margin-bottom:1rem;font-size:1rem;font-weight:600}.existing-vocabulary{margin-bottom:2rem}.vocabulary-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.vocabulary-item{display:flex;align-items:center;gap:.5rem;background:#f3f4f6;padding:.5rem .75rem;border-radius:var(--radius);border:1px solid #e5e7eb}.vocabulary-item .vocabulary-word{font-weight:400;color:#374151}.add-vocabulary{background:#f9fafb;padding:1.5rem;border-radius:var(--radius);border:1px solid #e5e7eb}.word-preview{margin-top:.75rem;padding:.75rem;background:#f0f9ff;border:1px solid #e0f2fe;border-radius:var(--radius)}.preview-label{display:block;color:#0369a1;font-weight:500;margin-bottom:.5rem;font-size:.8rem}.preview-words{display:flex;flex-wrap:wrap;gap:.375rem}.preview-word{background:#dbeafe;color:#1d4ed8;padding:.25rem .5rem;border-radius:var(--radius);font-size:.875rem;font-weight:400;border:1px solid #bfdbfe}.groups-table .students-table th:nth-child(1),.groups-table .students-table td:nth-child(1){width:20%}.groups-table .students-table th:nth-child(2),.groups-table .students-table td:nth-child(2){width:10%}.groups-table .students-table th:nth-child(3),.groups-table .students-table td:nth-child(3){width:15%}.groups-table .students-table th:nth-child(4),.groups-table .students-table td:nth-child(4){width:15%}.groups-table .students-table th:nth-child(5),.groups-table .students-table td:nth-child(5){width:25%}.groups-table .students-table th:nth-child(6),.groups-table .students-table td:nth-child(6){width:15%}.badge{display:inline-block;padding:4px 8px;font-size:12px;font-weight:500;border-radius:var(--radius);text-transform:capitalize}.badge-default{background:#e5e7eb;color:#6b7280}.badge-info{background:#dbeafe;color:#1e40af}.badge-success{background:#d1fae5;color:#065f46}.badge-danger{background:#fee2e2;color:#991b1b}.schedule-info{text-align:left;font-size:14px;color:#4a5568;line-height:1.4}.table-schedule-item{padding:.125rem 0;line-height:1.4;white-space:nowrap;background:none;border:none;box-shadow:none;border-radius:0;cursor:default;font-size:inherit;color:inherit;display:block}.courses-table .students-table th:nth-child(1),.courses-table .students-table td:nth-child(1){width:65%}.courses-table .students-table th:nth-child(2),.courses-table .students-table td:nth-child(2){width:20%}.courses-table .students-table th:nth-child(3),.courses-table .students-table td:nth-child(3){width:15%}.students-list{margin-top:1rem}.section-description{color:#6b7280;font-size:.875rem;margin-bottom:1rem;line-height:1.5}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;margin-bottom:1rem}.students-grid .student-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:var(--radius);cursor:pointer!important;transition:all .2s ease;background:#fff;-webkit-user-select:none;user-select:none;position:relative;transform:translateY(0)}.students-grid .student-item:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.students-grid .student-item:active{transform:translateY(0);box-shadow:0 2px 6px #0000001a}.students-grid .student-item.present{border-color:#22c55e;background:#f0fdf4}.students-grid .student-item.present:hover{border-color:#16a34a;background:#dcfce7}.students-grid .student-item.absent{border-color:#ef4444;background:#fef2f2}.students-grid .student-item.absent:hover{border-color:#dc2626;background:#fee2e2}.students-grid .student-item.disabled{border-color:#d1d5db;background:#f3f4f6;color:#9ca3af;cursor:not-allowed!important;opacity:.8}.students-grid .student-item.disabled:hover{border-color:#d1d5db;background:#f3f4f6;box-shadow:none;transform:translateY(0)}.student-name{font-weight:400;color:#374151;flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.student-status{font-size:.875rem;font-weight:400;white-space:nowrap}.students-grid .student-item.present .student-status{color:#16a34a}.students-grid .student-item.absent .student-status{color:#dc2626}.absence-summary{background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius);padding:.75rem;margin-top:1rem}.absence-summary p{margin:0;color:#92400e;font-size:.875rem;line-height:1.5}.loading-text,.no-students{color:#6b7280;font-style:italic;padding:1rem 0;text-align:center}@media(max-width:640px){.students-grid{grid-template-columns:1fr;gap:.5rem}.student-item{padding:.5rem .75rem}.student-status{font-size:.75rem}}.risk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle;flex-shrink:0}.risk-dot--certain{background-color:#e53e3e}.risk-dot--moderate{background-color:#d80}.stats-year-label{font-size:13px;font-weight:600;color:#2d3748;min-width:3rem;text-align:center}.filter-bar .stats-segments,.stats-chart-card .stats-segments{display:inline-flex;border:1px solid #d1d5db;border-radius:var(--radius);overflow:hidden;background:#f3f4f6}.filter-bar .stats-segments__btn,.stats-chart-card .stats-segments__btn{border:none;border-right:1px solid #d1d5db;background:transparent;padding:0 12px;height:30px;font-size:12px;color:#4a5568;cursor:pointer;line-height:30px}.filter-bar .stats-segments__btn:last-child,.stats-chart-card .stats-segments__btn:last-child{border-right:none}.filter-bar .stats-segments__btn:hover:not(.is-active),.stats-chart-card .stats-segments__btn:hover:not(.is-active){background:#e5e7eb}.filter-bar .stats-segments__btn.is-active,.stats-chart-card .stats-segments__btn.is-active{background:#667eea;color:#fff}.filter-bar .stats-chart-select{min-width:180px}.stats-chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);box-shadow:0 4px 6px #0000000d;padding:1rem 1.25rem 1.25rem;margin-bottom:1.25rem}.stats-chart-card h2{margin:0;font-size:1.05rem;font-weight:600;color:#2d3748}.stats-chart{height:380px;width:100%;margin-top:.5rem}.stats-tooltip{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:8px 10px;box-shadow:0 2px 8px #00000014;font-size:.8rem}.stats-tooltip__label{font-weight:600;color:#2d3748;margin-bottom:4px}.stats-tooltip__row--collected{color:#667eea}.stats-tooltip__row--predicted{color:#9aa5ec}.stats-tooltip__row--net{margin-top:4px;color:#4a5568;font-weight:600}.stats-tooltip__row--cost{font-weight:600;color:#2d3748}.stats-tooltip__row--muted{color:#718096}.stats-tooltip__muted{font-weight:400;color:#718096}.stats-series-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:.75rem}.stats-series-toggle__btn{display:inline-flex;align-items:center;gap:6px;height:var(--control-h-sm);padding:0 10px;border:1px solid #d1d5db;border-radius:var(--radius);background:#fff;color:#718096;font-size:12px;cursor:pointer}.stats-series-toggle__btn.is-on{color:#2d3748;font-weight:600;border-color:#a0aec0}.stats-series-toggle__btn:hover:not(:disabled){background:#f3f4f6}.stats-series-toggle__btn:disabled{cursor:not-allowed}.stats-series-toggle__swatch{width:10px;height:10px;border:2px solid;border-radius:2px}.stats-series-toggle__key{display:inline-flex;align-items:center;gap:6px;margin-left:4px;font-size:12px;color:#718096}.stats-series-toggle__avg{width:16px;border-top:2px dashed #718096}.stats-series-toggle__below{width:12px;height:12px;border:1.5px solid #e53e3e;border-radius:2px;background:#71809659}.stats-tooltip__row--below{color:#e53e3e}.stats-chart-card .stats-segments--card{margin-top:.75rem}.stats-chart-note{margin:.25rem 0 0;font-size:12px;color:#718096}.stats-source-summary{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:.75rem;font-size:12px;color:#4a5568}.stats-source-summary__item{display:inline-flex;align-items:center;gap:6px}.stats-source-summary__swatch{width:10px;height:10px;border-radius:2px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:var(--radius);box-shadow:0 4px 6px #0000001a;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.modal-close{background:none;border:none;font-size:1.5rem;color:#9ca3af;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:all .2s}.modal-close:hover{background:#f3f4f6;color:#1f2937}.modal-body{padding:20px}.modal-body p{margin:0;color:#4b5563;line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid #e5e7eb}.modal-footer .btn-primary,.modal-footer .btn-secondary,.modal-footer .btn-success,.modal-footer .btn-danger{min-width:88px}.freeze-modal{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.freeze-modal__field{display:flex;flex-direction:column;gap:.25rem}.freeze-modal__label{font-size:.85rem;color:#4a5568}.freeze-segments{display:inline-flex;border:1px solid #d1d5db;border-radius:var(--radius);overflow:hidden;background:#f3f4f6;width:fit-content}.freeze-segments__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:.4rem .9rem;font-size:.85rem;color:#374151;cursor:pointer;border-right:1px solid #d1d5db;transition:background .15s,color .15s}.freeze-segments__btn:last-child{border-right:none}.freeze-segments__btn:hover:not(.is-active){background:#e5e7eb}.freeze-segments__btn.is-active{background:#2563eb;color:#fff}.freeze-modal__summary{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding:.75rem 1rem;background:#f8f9fb;border:1px solid #e5e7eb;border-radius:var(--radius);font-size:.9rem}.freeze-modal__summary strong{color:#111827}.freeze-modal__allowance--over{color:#dc2626}.freeze-modal__dates{display:flex;gap:1rem;flex-wrap:wrap}.freeze-modal__dates .freeze-modal__field{flex:1;min-width:140px}.rdp-root{--rdp-accent-color: blue;--rdp-accent-background-color: #f0f0ff;--rdp-day-height: 44px;--rdp-day-width: 44px;--rdp-day_button-border-radius: 100%;--rdp-day_button-border: 2px solid transparent;--rdp-day_button-height: 42px;--rdp-day_button-width: 42px;--rdp-selected-border: 2px solid var(--rdp-accent-color);--rdp-disabled-opacity: .5;--rdp-outside-opacity: .75;--rdp-today-color: var(--rdp-accent-color);--rdp-dropdown-gap: .5rem;--rdp-months-gap: 2rem;--rdp-nav_button-disabled-opacity: .5;--rdp-nav_button-height: 2.25rem;--rdp-nav_button-width: 2.25rem;--rdp-nav-height: 2.75rem;--rdp-range_middle-background-color: var(--rdp-accent-background-color);--rdp-range_middle-color: inherit;--rdp-range_start-color: white;--rdp-range_start-background: linear-gradient( var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50% );--rdp-range_start-date-background-color: var(--rdp-accent-color);--rdp-range_end-background: linear-gradient( var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50% );--rdp-range_end-color: white;--rdp-range_end-date-background-color: var(--rdp-accent-color);--rdp-week_number-border-radius: 100%;--rdp-week_number-border: 2px solid transparent;--rdp-week_number-height: var(--rdp-day-height);--rdp-week_number-opacity: .75;--rdp-week_number-width: var(--rdp-day-width);--rdp-weeknumber-text-align: center;--rdp-weekday-opacity: .75;--rdp-weekday-padding: .5rem 0rem;--rdp-weekday-text-align: center;--rdp-gradient-direction: 90deg;--rdp-animation_duration: .3s;--rdp-animation_timing: cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction: -90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity: unset}.rdp-root{position:relative;box-sizing:border-box}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;justify-content:center;align-items:center;display:flex;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius)}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;position:relative;display:inline-flex;align-items:center;white-space:nowrap;border:0}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;-moz-appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{display:inline-block;fill:var(--rdp-accent-color)}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform:rotate(180deg);transform-origin:50%}.rdp-dropdowns{position:relative;display:inline-flex;align-items:center;gap:var(--rdp-dropdown-gap)}.rdp-dropdown{z-index:2;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:100%;margin:0;padding:0;cursor:inherit;border:none;line-height:inherit}.rdp-dropdown_root{position:relative;display:inline-flex;align-items:center}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{display:flex;align-content:center;height:var(--rdp-nav-height);font-weight:700;font-size:large}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{position:absolute;inset-inline-start:0;top:0;height:var(--rdp-nav-height);display:inline-flex}.rdp-root[data-nav-layout=around] .rdp-button_next{position:absolute;inset-inline-end:0;top:0;height:var(--rdp-nav-height);display:inline-flex;justify-content:center}.rdp-months{position:relative;display:flex;flex-wrap:wrap;gap:var(--rdp-months-gap);max-width:fit-content}.rdp-month_grid{border-collapse:collapse}.rdp-nav{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;height:var(--rdp-nav-height)}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);font-weight:500;font-size:smaller;text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform)}.rdp-week_number{opacity:var(--rdp-week_number-opacity);font-weight:400;font-size:small;height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align)}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-weight:700;font-size:large}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.subscription-period-picker{margin-bottom:12px;display:flex;flex-direction:column;align-items:flex-start}.subscription-period-picker__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px;width:100%;max-width:42rem}.subscription-period-picker__title{font-weight:600;color:#4a5568;font-size:14px}.subscription-period-picker__hint{margin:0 0 10px;font-size:13px;color:#718096;line-height:1.45;max-width:42rem}.subscription-period-picker__summary{margin:0 0 12px;font-size:14px;color:#2d3748;font-weight:500;width:100%;max-width:42rem}.subscription-period-picker__calendar-wrap{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:top;border:2px solid #e2e8f0;border-radius:var(--radius);background:linear-gradient(180deg,#fff,#f8fafc);padding:12px 8px 16px;box-shadow:0 1px 3px #0000000f}.subscription-period-picker__rdp{--rdp-accent-color: #667eea;--rdp-accent-background-color: rgba(102, 126, 234, .12);--rdp-day-height: 40px;--rdp-day-width: 40px;--rdp-day_button-height: 38px;--rdp-day_button-width: 38px;width:fit-content!important;max-width:100%;margin:0}.subscription-period-picker__rdp [class*=rdp-months],.subscription-period-picker__rdp [class*=rdp-month]{width:fit-content!important;max-width:100%}.subscription-period-picker__rdp .subscription-period-picker__day_busy{background:#71809638;color:#4a5568;border-radius:var(--radius)}.subscription-period-picker__rdp .subscription-period-picker__day_busy button{font-weight:600}.subscription-period-picker__errors{margin-top:10px;display:flex;flex-direction:column;gap:4px}.subscription-period-picker__errors .error-text{display:block}.reward-box{width:100%;box-sizing:border-box;margin:0 0 1.25rem;padding:1.15rem 1.25rem 1.2rem;background:#eef1fd;border:1.5px solid #667eea;border-radius:var(--radius);box-shadow:0 4px 14px #667eea29;color:#1e293b}.reward-box__copy{margin:0 0 .85rem;font-size:.95rem;line-height:1.45}.reward-box__meta{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin-bottom:.9rem;font-size:13px;color:#334155}.reward-box__proof{display:flex;align-items:center;gap:12px;margin-bottom:.85rem;min-height:38px}.reward-box__proof-control{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.reward-box__file-button{display:inline-flex;align-items:center;width:fit-content;margin:0;cursor:pointer}.reward-box__file-button input{display:none}.reward-box__file-name{color:#64748b;font-size:12px}.reward-box__preview{width:72px;height:52px;flex:0 0 auto;border:1px solid #cbd5e1;border-radius:var(--radius);background:#fff;object-fit:cover}.reward-box__adjust{margin:.85rem 0;padding:.75rem 0 0;border-top:1px solid #c7d0f8}.reward-box__end{margin:.5rem 0 0;font-size:13px;color:#4a5568}.reward-box__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.85rem}.reward-compact{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 1rem;padding:.7rem 1rem;background:#f8f9fb;border:1px solid #e2e8f0;border-radius:var(--radius);font-size:13px;color:#334155}.reward-pending{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 1rem;padding:.7rem 1rem;background:#f8f9fb;border:1px dashed #cbd5e1;border-radius:var(--radius);font-size:13px;color:#64748b}.reward-pending__hint{color:#94a3b8}.mention-eligibility{margin:0 0 14px;padding:10px 12px;border:1px solid;border-radius:var(--radius);font-size:13px}.mention-eligibility--blocked{color:#991b1b;background:#fef2f2;border-color:#fecaca}.mention-eligibility--warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.mention-eligibility--allowed{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.mention-filter-student{width:min(320px,100%);min-width:240px}.mention-filter-eligibility{width:190px}.table-link-button{padding:0;border:0;background:none;color:#4f46e5;font:inherit;font-weight:600;cursor:pointer}.table-link-button:hover{text-decoration:underline}.mention-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.mention-status--blocked{color:#991b1b;background:#fee2e2}.mention-status--warning{color:#92400e;background:#fef3c7}.mention-status--allowed{color:#166534;background:#dcfce7}.mention-period{white-space:nowrap}.mention-status-detail{margin-top:6px;color:#64748b;font-size:11px;line-height:1.35;white-space:nowrap}.mention-latest{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:var(--radius);background:#f8fafc}.mention-latest>div:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px}.mention-latest span{color:#64748b;font-size:13px}.mention-latest__actions{display:flex;align-items:center;gap:12px}.mention-action-link{padding:0;border:0;background:none;color:#4f46e5;font:inherit;font-size:12px;font-weight:600;line-height:1.4;text-decoration:none;cursor:pointer}.mention-action-link:hover{color:#3730a3;text-decoration:underline}.mentions-table .mentions-table__lessons{width:1%;padding-right:18px;padding-left:18px;text-align:center;white-space:nowrap}.reward-box__account{margin:12px 0 4px;max-width:none;align-items:flex-start}.reward-box__account span{color:#374151;font-size:13px;line-height:1.4}.journal-page{display:flex;flex-direction:column;height:100%}.journal-body{padding:0 2rem 1.5rem}.journal-group-select{min-width:280px}.filter-bar .journal-group-select>div{min-height:34px}.journal-refreshing{font-size:.8rem;color:#718096}.journal-empty{padding:3rem 0;text-align:center;color:#718096;font-size:.95rem}.journal-segments{display:inline-flex;border:1px solid #d1d5db;border-radius:var(--radius);overflow:hidden;background:#f3f4f6}.journal-segments__btn{border:none;border-right:1px solid #d1d5db;background:transparent;padding:0 .9rem;height:34px;font-size:13px;color:#4a5568;cursor:pointer;transition:background .15s ease}.journal-segments__btn:last-child{border-right:none}.journal-segments__btn:hover:not(.is-active){background:#e5e7eb}.journal-segments__btn.is-active{background:#667eea;color:#fff}.journal-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;font-size:.78rem;color:#718096;align-items:center}.journal-legend span{display:inline-flex;align-items:center;gap:.35rem}.journal-legend__chip{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius);border:1px solid #e2e8f0;font-style:normal;font-size:.72rem;background:#fff}.journal-legend__chip--attended{color:#38a169}.journal-legend__chip--absent{color:#e53e3e;background:#fff5f5}.journal-legend__chip--ill{color:#b7791f;background:#fffaf0}.journal-legend__chip--vacation{color:#3182ce;background:#ebf8ff}.journal-legend__chip--frozen{color:#4a5568;background:#edf2f7}.journal-legend__chip--ghost{background:#fafafa;border-style:dashed}.journal-legend__chip--sub{background:linear-gradient(135deg,#667eea 0,#667eea 50%,#fff 50%,#fff)}.journal-legend__chip--canceled{color:#a0aec0;text-decoration:line-through}.journal-table-wrap{overflow:auto;max-height:calc(100vh - 300px);border:1px solid #e2e8f0;border-radius:var(--radius);background:#fff}.journal-table{border-collapse:separate;border-spacing:0}.journal-table th,.journal-table td{border-bottom:1px solid #edf2f7;border-right:1px solid #edf2f7;padding:0}.journal-table thead th{position:sticky;top:0;z-index:3;background:#f8f9fb;box-shadow:inset 0 -1px #e2e8f0}.journal-corner,.journal-student{position:sticky;left:0;background:#fff;z-index:2;box-shadow:inset -1px 0 #e2e8f0}.journal-corner{z-index:4;background:#f8f9fb;min-width:180px;text-align:left;padding:.5rem .75rem;font-size:.8rem;color:#4a5568}.journal-student{min-width:180px;max-width:220px;text-align:left;padding:.4rem .75rem;font-weight:500;font-size:.85rem;color:#2d3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journal-student__badge{margin-left:.4rem;font-size:.65rem;font-weight:600;text-transform:uppercase;color:#a0aec0;border:1px solid #e2e8f0;border-radius:var(--radius);padding:.05rem .3rem;vertical-align:middle}.journal-row--former{opacity:.55}.journal-th{min-width:46px;padding:.35rem .25rem;font-size:.72rem;color:#4a5568;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;vertical-align:bottom}.journal-th:hover{background:#eef1f8}.journal-th__date{display:block;font-weight:600}.journal-th__weekday{display:block;font-weight:400;color:#a0aec0;font-size:.65rem}.journal-th__topic-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#667eea;margin-top:2px}.journal-th--ghost{color:#a0aec0;background:#fafafa}.journal-th--ghost .journal-th__date{font-weight:400}.journal-th--canceled .journal-th__date{text-decoration:line-through;color:#a0aec0}.journal-th--today{background:#ebf4ff}.journal-th--teacher-vacation{min-width:34px;max-width:34px;cursor:default;background:#edf2f7;padding:.4rem 0;vertical-align:middle}.journal-th__vertical{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.68rem;color:#718096;white-space:nowrap;max-height:140px;overflow:hidden;text-overflow:ellipsis}.journal-th--group-end{min-width:34px;max-width:34px;cursor:default;background:#fff5f5;border-right:2px solid #fc8181;padding:.4rem 0;vertical-align:middle}.journal-th--group-end .journal-th__vertical{color:#c53030;font-weight:600}.journal-cell--group-end{min-width:34px;max-width:34px;cursor:default;background:#fff5f5;border-right:2px solid #fc8181}.journal-cell{position:relative;min-width:46px;height:34px;text-align:center;font-size:.78rem;cursor:pointer;background:#fff}.journal-cell:hover:not(.journal-cell--out):not(.journal-cell--teacher-vacation){box-shadow:inset 0 0 0 2px #c3dafe}.journal-cell--attended{color:#48bb78}.journal-cell--absent{color:#e53e3e;font-weight:700;background:#fff5f5}.journal-cell--ill{color:#b7791f;font-weight:700;background:#fffaf0}.journal-cell--vacation{color:#3182ce;font-weight:700;background:#ebf8ff}.journal-cell--frozen{color:#4a5568;background:#edf2f7}.journal-cell--ghost{background:#fafafa;cursor:pointer}.journal-cell--canceled{background:repeating-linear-gradient(45deg,#fafafa 0,#fafafa 6px,#f1f1f3 6px,#f1f1f3 12px);color:#cbd5e0}.journal-cell--out{cursor:default;background:repeating-linear-gradient(-45deg,transparent 0,transparent 5px,#edf2f7 5px,#edf2f7 7px)}.journal-cell--teacher-vacation{min-width:34px;max-width:34px;cursor:default;background:#edf2f7}.journal-cell--pending{opacity:.45;pointer-events:none}.journal-cell--today{box-shadow:inset 0 0 0 1px #bee3f8}.journal-cell--tint-0:not(.journal-cell--absent):not(.journal-cell--ill):not(.journal-cell--vacation):not(.journal-cell--frozen){background:#667eea12}.journal-cell--tint-1:not(.journal-cell--absent):not(.journal-cell--ill):not(.journal-cell--vacation):not(.journal-cell--frozen){background:#48bb7814}.journal-cell__sub-start{position:absolute;top:0;left:0;width:0;height:0;border-top:9px solid #667eea;border-right:9px solid transparent}.journal-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.journal-menu{position:fixed;z-index:1001;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);box-shadow:0 8px 24px #0000001f;padding:.35rem}.journal-menu__title{font-size:.72rem;font-weight:600;color:#718096;padding:.4rem .6rem .3rem;border-bottom:1px solid #edf2f7;margin-bottom:.25rem}.journal-menu__item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:.45rem .6rem;font-size:.82rem;color:#2d3748;border-radius:var(--radius);cursor:pointer}.journal-menu__item:hover:not(:disabled){background:#eef1f8}.journal-menu__item:disabled{color:#cbd5e0;cursor:not-allowed}.journal-menu__item--danger{color:#c53030}.journal-menu__item--danger:hover:not(:disabled){background:#fff5f5}.journal-menu__topic{display:flex;gap:.35rem;padding:.35rem .5rem .5rem;border-bottom:1px solid #edf2f7;margin-bottom:.25rem}.journal-menu__topic .form-input{height:32px;font-size:.8rem;flex:1}.journal-menu__topic-save{height:32px;padding:0 .7rem;font-size:.78rem}.student-vacation-period-picker{margin-bottom:8px}.student-vacation-period-picker__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.student-vacation-period-picker__title{font-weight:600;color:#4a5568;font-size:14px}.student-vacation-period-picker__duration{font-size:13px;font-weight:600;color:#5a67d8;background:linear-gradient(135deg,#667eea1f,#764ba21a);border:1px solid rgba(102,126,234,.25);padding:6px 12px;border-radius:999px}.student-vacation-period-picker__hint{margin:0 0 10px;font-size:13px;color:#718096;line-height:1.45}.student-vacation-period-picker__single-day{margin:0 0 12px;padding:8px 14px;font-size:13px;font-weight:600;color:#5a67d8;background:#f7fafc;border:2px solid #e2e8f0;border-radius:var(--radius);cursor:pointer;transition:border-color .2s ease,background .2s ease}.student-vacation-period-picker__single-day:hover:not(:disabled){border-color:#667eea;background:#667eea0f}.student-vacation-period-picker__single-day:disabled{opacity:.55;cursor:not-allowed}.student-vacation-period-picker__summary{margin:0 0 12px;font-size:14px;color:#2d3748;font-weight:500;letter-spacing:.01em}.student-vacation-period-picker__calendar-wrap{border:2px solid #e2e8f0;border-radius:var(--radius);background:linear-gradient(180deg,#fff,#f8fafc);padding:12px 8px 16px;box-shadow:0 1px 3px #0000000f}.student-vacation-period-picker__calendar-wrap .student-vacation-period-picker__rdp{--rdp-accent-color: #667eea;--rdp-accent-background-color: rgba(102, 126, 234, .12);--rdp-day-height: 40px;--rdp-day-width: 40px;--rdp-day_button-height: 38px;--rdp-day_button-width: 38px;margin:0 auto}.student-vacation-period-picker__errors{margin-top:10px;display:flex;flex-direction:column;gap:4px}.student-vacation-period-picker__errors .error-text{display:block}.public-layout{min-height:100vh;display:flex;flex-direction:column;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#333}.public-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:.5rem 0}.public-header-content{width:100%;display:flex;justify-content:center}.public-header-wrapper{max-width:700px;width:100%;text-align:left}.public-logo{color:#333;font-size:1rem;font-weight:500;margin:0}.public-main{flex:1;padding:2rem 0;width:100%;box-sizing:border-box;display:flex;justify-content:center}.public-footer{background:#f8f9fa;padding:1rem 0;border-top:1px solid #e9ecef}.public-footer-content{max-width:1200px;margin:0;padding:0 2rem;text-align:left}.public-footer p{color:#666;margin:0;font-size:.9rem}@media(max-width:768px){.public-header-wrapper{padding:0 1rem}.public-main{padding:1rem}}.public-vocabulary-container{min-height:60vh;max-width:700px;width:100%;margin:0;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;text-align:left}.group-header{border-bottom:1px solid #a2a9b1;padding-bottom:.5rem;margin-bottom:1.5rem;text-align:left}.group-header h1{color:#000;font-size:1.8rem;margin:0 0 .25rem;font-weight:400;font-family:Georgia,Times New Roman,serif;line-height:1.3;text-align:left}.group-meta{color:#54595d;font-size:.8rem;display:flex;gap:.5rem}.group-level,.word-count{font-style:normal;font-size:.9rem}.lessons-list{margin-bottom:1rem}.lesson-section{margin-bottom:2rem}.lesson-header{margin-bottom:.5rem;padding-bottom:.25rem;display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;text-align:left}.lesson-header h2{color:#0645ad;font-size:1.25rem;margin:0;font-weight:600;font-family:Georgia,Times New Roman,serif}.lesson-topic{color:#54595d;font-style:italic;font-size:.875rem}.lesson-word-count{color:#54595d;font-size:.8rem;font-weight:400}.words-list{margin:.5rem 0 0 1.5rem;padding:0;list-style:disc}.word-item{margin:0 0 .3rem;padding:0;font-size:.95rem;line-height:1.4}.lesson-link{margin-top:.5rem;margin-left:1.5rem}.lesson-link a{color:#0645ad;text-decoration:none;font-size:.875rem}.lesson-link a:hover{text-decoration:underline}.error-card,.loading-card,.no-vocabulary-card,.groups-selection-card{background:#f8f9fa;border:1px solid #eaecf0;padding:1.5rem;margin:1.5rem 0;border-radius:var(--radius)}.error-card h2,.no-vocabulary-card h2,.groups-selection-card h2{color:#000;margin:0 0 .75rem;font-size:1.25rem;font-family:Georgia,Times New Roman,serif;font-weight:600}.error-card p,.loading-card p,.no-vocabulary-card p{color:#54595d;font-size:.9rem;margin:0;line-height:1.6}.loading-spinner{width:20px;height:20px;border:2px solid #eaecf0;border-top:2px solid #0645ad;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto .75rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.available-groups{margin-top:1.5rem}.available-groups h3{color:#000;margin-bottom:.75rem;font-size:1.125rem;font-family:Georgia,Times New Roman,serif;font-weight:600}.groups-list{margin-left:0}.group-item{margin-bottom:.75rem;padding:1rem;border:1px solid #eaecf0;background:#f8f9fa;border-radius:var(--radius)}.group-item h4{color:#0645ad;margin:0 0 .25rem;font-size:1rem;font-family:Georgia,Times New Roman,serif;font-weight:600}.group-item p{color:#54595d;margin:0 0 .5rem;font-size:.875rem}.view-vocabulary-btn{color:#0645ad;text-decoration:none;font-size:.875rem}.view-vocabulary-btn:hover{text-decoration:underline}@media(max-width:768px){.group-header h1{font-size:1.2rem}.words-list,.lesson-link{margin-left:1rem}}@media(max-width:480px){.lesson-header{flex-direction:column;align-items:flex-start;gap:.25rem}}.data-table{width:100%;border-collapse:collapse;table-layout:fixed}.data-table th,.data-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle;word-wrap:break-word;overflow-wrap:break-word;font-size:.875rem}.data-table td{font-weight:400}.data-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr:hover{background:#f9fafb}.data-table tbody tr:last-child td{border-bottom:none}.student-selector{position:relative}.selected-student{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background-color:#f5f5f5;border:1px solid #ddd;border-radius:var(--radius)}.clear-selection{background:none;border:none;font-size:18px;cursor:pointer;color:#666;padding:0 4px}.clear-selection:hover{color:#d32f2f}.student-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 var(--radius) var(--radius);max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.student-option{padding:8px 12px;cursor:pointer;border-bottom:1px solid #eee}.student-option:hover{background-color:#f5f5f5}.student-option:last-child{border-bottom:none}.student-option.disabled{color:#999;cursor:not-allowed}.student-option.disabled:hover{background-color:transparent}.total-amount-display{padding:8px 12px;background-color:#e8f5e8;border:1px solid #4caf50;border-radius:var(--radius);font-weight:400;color:#2e7d32;font-size:16px}.large-modal .modal-content{max-width:800px;width:90vw}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.form-group.full-width{grid-column:1 / -1}.btn-download{background-color:#4caf50;color:#fff;border:none;border-radius:var(--radius);padding:6px 8px;cursor:pointer;font-size:14px;transition:background-color .2s}.btn-download:hover{background-color:#45a049}.font-mono{font-family:Courier New,monospace}.text-center{text-align:center}.text-right{text-align:right}.action-buttons{display:flex;gap:8px;justify-content:center}.btn-action{padding:6px 8px;border:none;border-radius:var(--radius);cursor:pointer;font-size:14px;transition:all .2s}.btn-action:hover{opacity:.85}.btn-outline{background-color:transparent;color:#666;border:1px solid #ddd;border-radius:var(--radius);padding:8px 16px;cursor:pointer;font-size:14px;transition:all .2s}.btn-outline:hover{background-color:#f5f5f5;border-color:#bbb;color:#333}@media(max-width:768px){.form-grid{grid-template-columns:1fr}.large-modal .modal-content{width:95vw;margin:20px auto}.student-dropdown{max-height:150px}}.create-certificate-page{max-width:1200px;margin:0 auto;padding:20px;background-color:#fff;min-height:100vh}.create-certificate-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.create-certificate-page .page-header h1{margin:0;color:#333;font-size:28px;font-weight:600}.create-certificate-page .create-certificate-form{background-color:#f8f9fa;border-radius:var(--radius);padding:32px;box-shadow:0 2px 4px #0000001a}.create-certificate-page .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}.create-certificate-page .form-group{display:flex;flex-direction:column}.create-certificate-page .form-group.full-width{grid-column:1 / -1}.create-certificate-page .form-group input,.create-certificate-page .form-group select{height:var(--control-h);padding:0 var(--control-pad-x);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);font-size:var(--control-font);color:var(--text);transition:border-color .12s ease,box-shadow .12s ease;background-color:var(--field-bg)}.create-certificate-page .form-group input:focus,.create-certificate-page .form-group select:focus{outline:none;border-color:var(--ink);box-shadow:var(--focus-ring)}.create-certificate-page .form-group input.error,.create-certificate-page .form-group select.error{border-color:var(--danger)}.create-certificate-page .form-group input.valid-input{border-color:var(--btn-confirm)}.create-certificate-page .form-group input.invalid-input{border-color:var(--danger)}.create-certificate-page .validation-indicator{margin-top:4px;margin-bottom:8px;font-size:12px}.create-certificate-page .small-icon{font-size:12px;font-weight:500}.create-certificate-page .valid{color:#28a745}.create-certificate-page .invalid{color:#dc3545}.create-certificate-page .checking{color:#6c757d}.create-certificate-page .error-message{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:12px 16px;border-radius:var(--radius);margin-bottom:24px;display:flex;justify-content:space-between;align-items:center}.create-certificate-page .close-error{background:none;border:none;color:#721c24;font-size:18px;cursor:pointer;padding:0;line-height:1}.create-certificate-page .close-error:hover{opacity:.7}.create-certificate-page .student-selector{position:relative}.create-certificate-page .selected-student{display:flex;align-items:center;justify-content:space-between;padding:12px;background-color:#e8f5e8;border:1px solid #4caf50;border-radius:var(--radius);font-weight:500}.create-certificate-page .clear-selection{background:none;border:none;font-size:18px;cursor:pointer;color:#666;padding:0 4px;line-height:1}.create-certificate-page .clear-selection:hover{color:#d32f2f}.create-certificate-page .student-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 var(--radius) var(--radius);max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 4px 8px #0000001a}.create-certificate-page .student-option{padding:12px;cursor:pointer;border-bottom:1px solid #eee;transition:background-color .2s}.create-certificate-page .student-option:hover{background-color:#f5f5f5}.create-certificate-page .student-option:last-child{border-bottom:none}.create-certificate-page .student-option.disabled{color:#999;cursor:not-allowed;font-style:italic}.create-certificate-page .student-option.disabled:hover{background-color:transparent}.create-certificate-page .total-amount-display{padding:12px;background-color:#e8f5e8;border:1px solid #4caf50;border-radius:var(--radius);font-weight:700;color:#2e7d32;font-size:18px;text-align:center}.create-certificate-page .form-actions{display:flex;gap:16px;justify-content:flex-end;padding-top:24px;border-top:1px solid #e0e0e0}@media(max-width:768px){.create-certificate-page{padding:16px}.create-certificate-page .page-header{flex-direction:column;gap:16px;align-items:flex-start}.create-certificate-page .page-header h1{font-size:24px}.create-certificate-page .create-certificate-form{padding:24px 16px}.create-certificate-page .form-grid{grid-template-columns:1fr;gap:16px}.create-certificate-page .form-actions{flex-direction:column-reverse}.create-certificate-page .btn-primary,.create-certificate-page .btn-secondary,.create-certificate-page .btn-success{width:100%;justify-content:center}.create-certificate-page .student-dropdown{max-height:150px}}@media(max-width:480px){.create-certificate-page{padding:12px}.create-certificate-page .create-certificate-form{padding:16px}.create-certificate-page .page-header h1{font-size:20px}}.settings-container{max-width:900px;margin:0 auto;padding:1rem;background-color:#fff;min-height:100vh}.settings-header{margin-bottom:1rem;text-align:left}.settings-header h1{color:#2d3748;font-size:1.5rem;font-weight:600;margin-bottom:.25rem}.settings-header p{color:#718096;font-size:.9rem;margin:0}.error-message{display:flex;align-items:center;gap:.5rem;background-color:#fed7d7;color:#c53030;padding:1rem;border-radius:var(--radius);margin-bottom:1.5rem;border:1px solid #feb2b2}.error-icon{font-size:1rem}.settings-section{padding:1rem 0;border-bottom:1px solid #e0e0e0;margin-bottom:1rem}.settings-section:last-child{border-bottom:none}.settings-section h2{color:#1a1a1a;font-size:1.1rem;font-weight:700;margin-bottom:1rem;text-align:left}.section-description{color:#666;margin-bottom:1rem;line-height:1.4;text-align:left}.profile-info{display:flex;flex-direction:column;gap:.5rem}.info-row{display:flex;align-items:center;gap:1rem;padding:.5rem 0;text-align:left}.info-row label{font-weight:600;color:#4a5568;min-width:80px}.info-row span{color:#2d3748}.role-badge{padding:.25rem .75rem;border-radius:var(--radius-pill);font-size:.875rem;font-weight:500;text-transform:capitalize}.role-badge.admin{background-color:#fed7e2;color:#b83280}.role-badge.user{background-color:#c6f6d5;color:#276749}.telegram-linked,.telegram-not-linked{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0}.linked-info,.not-linked-info{display:flex;align-items:center;gap:0;text-align:left}.status-icon{font-size:.85rem;margin-right:.5rem}.linked-details strong,.not-linked-info strong{display:flex;align-items:center;color:#2d3748;font-weight:600;margin-bottom:.25rem}.linked-details p,.not-linked-info p{color:#718096;margin:0;font-size:.9rem}.link-button,.unlink-button{padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-weight:600;cursor:pointer;transition:background-color .12s ease,color .12s ease;font-size:.9rem;transform:none;box-shadow:none}.link-button{background-color:var(--btn-ink);color:#fff}.link-button:hover:not(:disabled){background-color:var(--btn-ink-hover)}.unlink-button{background-color:var(--btn-risk);color:#fff}.unlink-button:hover:not(:disabled){background-color:var(--btn-risk-hover)}.link-button:disabled,.unlink-button:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:var(--radius);max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h3{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0}.close-button{background:none;border:none;font-size:1.2rem;color:#a0aec0;cursor:pointer;padding:.25rem;line-height:1}.close-button:hover{color:#718096}.modal-body{padding:1.5rem}.instructions-text{color:#4a5568;line-height:1.6;margin-bottom:1.5rem}.link-container{margin:1.5rem 0}.link-display{display:flex;gap:.5rem;align-items:center;padding:1rem;background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:var(--radius)}.link-display code{flex:1;background:none;color:#2d3748;font-family:Monaco,Courier New,monospace;font-size:.875rem;word-break:break-all}.copy-button{padding:.5rem 1rem;background-color:var(--btn-ink);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap}.copy-button:hover{background-color:var(--btn-ink-hover)}.step-by-step{margin:1.5rem 0}.step-by-step h4{color:#2d3748;font-size:1rem;font-weight:600;margin-bottom:.75rem}.step-by-step ol{color:#4a5568;padding-left:1.5rem;line-height:1.6}.step-by-step li{margin-bottom:.5rem}.security-note{background-color:#fef5e7;border:1px solid #f6ad55;border-radius:var(--radius);padding:1rem;color:#744210;font-size:.9rem;line-height:1.5}.modal-footer{display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem;border-top:1px solid #e2e8f0;background-color:#f7fafc}.open-telegram-button,.done-button{padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:background-color .12s ease;transform:none;box-shadow:none}.open-telegram-button{background-color:#08c;color:#fff}.open-telegram-button:hover{background-color:#0077b3}.done-button{background-color:var(--btn-confirm);color:#fff}.done-button:hover{background-color:var(--btn-confirm-hover)}@media(max-width:768px){.settings-container{margin:1rem;padding:1rem}.telegram-linked,.telegram-not-linked{flex-direction:column;gap:1rem;align-items:stretch}.link-button,.unlink-button{width:100%}.modal-content{margin:1rem;width:calc(100% - 2rem)}.modal-footer{flex-direction:column}.link-display{flex-direction:column;gap:1rem}.copy-button{align-self:stretch}}.sidebar{width:260px;height:100vh;background:linear-gradient(180deg,#2d3748,#1a202c);color:#fff;display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:100;box-shadow:2px 0 4px #0000001a}.sidebar-header{padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo h2{margin:0;font-size:1.5rem;font-weight:700;color:#fff;text-align:center}.sidebar-nav{flex:1;padding:20px 0;overflow-y:auto}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu-item{margin-bottom:4px}.sidebar-menu-button{width:100%;background:none;border:none;color:#cbd5e0;padding:12px 20px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .2s ease;border-radius:0;font-size:14px;font-weight:500;text-align:left;text-decoration:none;box-sizing:border-box}.sidebar-menu-button:hover{background:#ffffff1a;color:#fff}.sidebar-menu-item.active .sidebar-menu-button{background:var(--btn-ink);color:#fff;border-left:4px solid var(--btn-confirm)}.sidebar-menu-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.sidebar-menu-label{flex:1}.sidebar-menu-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:var(--radius);background:#ffffff26;color:#ffffffb3;letter-spacing:.3px;line-height:1.4}.sidebar-notification-dot{background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.sidebar-scroll-indicator{position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 0;background:linear-gradient(to bottom,transparent,#1a202c 30%);border:none;cursor:pointer;animation:sidebar-scroll-pulse 2s ease-in-out infinite}.sidebar-scroll-indicator-dot{background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.sidebar-scroll-indicator-arrow{color:#ef4444;font-size:12px}@keyframes sidebar-scroll-pulse{0%,to{opacity:1}50%{opacity:.5}}.sidebar-section-divider{height:1px;background:#ffffff1a;margin:16px 20px}.sidebar-section-header{color:#ffffff80;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:8px 20px;margin-top:4px}.sidebar-footer{padding:20px;margin-top:16px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-logout-button{width:100%;background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#feb2b2;padding:10px 16px;border-radius:var(--radius);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.sidebar-logout-button:hover{background:#ef444433;color:#fed7d7;border-color:#ef444480}.main-content{margin-left:260px;min-height:100vh;background-color:#f7fafc}@media(max-width:768px){.sidebar{width:100%;height:auto;position:relative;box-shadow:none}.main-content{margin-left:0}.sidebar-nav{padding:10px 0}.sidebar-menu-button{padding:10px 20px;font-size:16px}}@media(max-width:480px){.sidebar{width:100%}.sidebar-header{padding:15px}.sidebar-logo h2{font-size:1.25rem}.sidebar-footer{padding:15px}}.students-container .students-table-container.vocabulary-table{overflow-x:visible;overflow-y:visible}.consultations-row--has-recording td:first-child{box-shadow:inset 3px 0 #10b981}.recording-pill{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;line-height:1.4;white-space:nowrap;vertical-align:middle}.recording-pill--completed{background:#d1fae5;color:#065f46}.recording-pill--processing{background:#dbeafe;color:#1e40af}.recording-pill--pending{background:#fef3c7;color:#92400e}.recording-pill--failed{background:#fee2e2;color:#991b1b}.recording-pill--unhealthy{background:#fef3c7;color:#92400e}.recording-pill--unknown{background:#e5e7eb;color:#374151}.btn-icon--upload{color:#2563eb;position:relative}.btn-icon--upload:hover{background:#eff6ff;color:#1d4ed8}.btn-icon--upload .btn-icon__mic{display:inline-block;font-size:16px;line-height:1}.btn-icon--upload .btn-icon__add{position:absolute;top:2px;right:2px;min-width:12px;height:12px;padding:0 2px;background:#2563eb;color:#fff;border-radius:999px;font-size:10px;font-weight:700;line-height:12px;text-align:center;box-shadow:0 0 0 1.5px #fff}.btn-icon--recording{color:#059669}.btn-icon--recording:hover{background:#ecfdf5;color:#047857}.status-help-icon{margin-left:6px;width:16px;height:16px;padding:0;border:1px solid #cbd5e1;border-radius:999px;background:transparent;color:#64748b;font-size:11px;font-weight:700;line-height:14px;cursor:pointer;vertical-align:middle}.status-help-icon:hover{background:#eef2ff;border-color:#667eea;color:#667eea}.inline-status-select{min-width:170px}.insights-card{--ins-ink: #1f2937;--ins-body: #374151;--ins-mute: #6b7280;--ins-faint: #9ca3af;--ins-rule: #eceff3;--ins-quote: #44403c;--ins-rail: #d6d3d1}.insights-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}.insights-card__heading{min-width:0}.insights-card__head .consultation-edit__card-title{margin:0}.insights-card__meta{margin-top:4px;font-size:12px;color:#9ca3af;line-height:1.4}.insights-card__actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex-shrink:0}.insights-card__actions .btn-primary{min-height:var(--control-h-sm);padding:4px 10px;font-size:12px;font-weight:600}.insights-card__rerun{background:none;border:1px solid #e5e7eb;color:#4b5563;font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--radius);cursor:pointer;white-space:nowrap}.insights-card__rerun:hover:not(:disabled){background:#f3f4f6;color:#1f2937}.insights-card__rerun:disabled{opacity:.55;cursor:not-allowed}.insights-card__rerun:focus-visible{outline:2px solid #667eea;outline-offset:2px}.insights-card__status{font-size:12px;color:#6b7280;white-space:nowrap}.insights-card__note{margin:0 0 12px;font-size:13px;color:#6b7280;line-height:1.45}.insights-card__error{margin:0 0 12px;color:#922b21;font-size:13px}.insights-card__banner{margin:0 0 12px;padding:10px 12px;border-radius:var(--radius);font-size:13px;line-height:1.45}.insights-card__banner--fail{background:#fdecea;border:1px solid #f5b7b1;color:#922b21}.insights-card__banner--warn{background:#fef9e7;border:1px solid #f7dc6f;color:#7d6608}.insights-card__section{margin-top:22px}.insights-card__section-title{margin:0 0 10px;font-size:13px;font-weight:600;color:#1f2937}.insights-card__clear{margin-top:28px;padding-top:16px;border-top:1px solid #eceff3}.insights-card__clear .btn-danger{font-size:12px}.insights-card__clear-hint{display:block;margin-top:6px;font-size:12px;color:#9ca3af;line-height:1.45}.insights-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#fff}.insights-dialog{--ins-ink: #1f2937;--ins-body: #374151;--ins-mute: #6b7280;--ins-faint: #9ca3af;--ins-rule: #eceff3;--ins-quote: #44403c;--ins-rail: #d6d3d1;width:100%;height:100%;display:flex;flex-direction:column;background:#fff}.insights-dialog__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px max(28px,calc(50% - 22rem));border-bottom:1px solid var(--ins-rule);flex-shrink:0}.insights-dialog__heading{min-width:0}.insights-dialog__title{margin:0;font-size:1.1rem;font-weight:600;color:var(--ins-ink);line-height:1.3}.insights-dialog__meta{margin-top:4px;font-size:12px;color:var(--ins-faint);line-height:1.4}.insights-dialog__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.insights-dialog__rerun{background:none;border:1px solid #e5e7eb;color:#4b5563;font-size:13px;font-weight:600;padding:6px 10px;border-radius:var(--radius);cursor:pointer;white-space:nowrap}.insights-dialog__rerun:hover:not(:disabled){background:#f3f4f6;color:#1f2937}.insights-dialog__rerun:disabled{opacity:.55;cursor:not-allowed}.insights-dialog__close{background:none;border:none;font-size:1.5rem;line-height:1;color:#9ca3af;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius)}.insights-dialog__close:hover,.insights-dialog__close:focus-visible,.insights-dialog__rerun:focus-visible{background:#f3f4f6;color:#1f2937}.insights-dialog__close:focus-visible,.insights-dialog__rerun:focus-visible{outline:2px solid #667eea;outline-offset:2px}.insights-dialog__body{overflow-y:auto;padding:24px max(28px,calc(50% - 21rem)) 64px}.insights-dialog__error{margin-top:12px;color:#922b21;font-size:13px}.insights-dialog__banner{margin-top:12px;padding:10px 12px;border-radius:var(--radius);font-size:13px;line-height:1.45}.insights-dialog__banner--fail{background:#fdecea;border:1px solid #f5b7b1;color:#922b21}.insights-dialog__banner--warn{background:#fef9e7;border:1px solid #f7dc6f;color:#7d6608}.insights-dialog__status{margin:12px 0 0;font-size:13px;color:var(--ins-mute);line-height:1.45}.insights-dialog__section{margin-top:22px}.insights-dialog__section-title{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--ins-ink)}.insights-dialog__empty{margin:0;font-size:14px;color:var(--ins-mute)}.insights-conversion{margin-top:0}.insights-conversion__label{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--ins-mute)}.insights-conversion__pill{display:inline-block;font-size:13px;font-weight:600;padding:5px 11px;border-radius:999px;line-height:1.3}.insights-conversion__pill--low{background:#f3f4f6;color:#6b7280}.insights-conversion__pill--moderate{background:#fef3c7;color:#78350f}.insights-conversion__pill--high{background:#ecfdf5;color:#166534}.insights-conversion__unset{font-size:14px;color:var(--ins-faint)}.insights-conversion__reason{margin:10px 0 0;font-size:15px;line-height:1.55;color:var(--ins-body);max-width:42em}.insights-field{margin-top:14px}.insights-field label{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:600;color:var(--ins-mute)}.insights-field .form-input,.insights-field textarea.form-input{max-width:400px;width:100%;font-size:15px;line-height:1.5;color:var(--ins-ink);background:#f8f9fb}.insights-field textarea.form-input{max-width:none;min-height:6.5em;resize:vertical}.insights-field__saving{font-weight:400;color:var(--ins-faint)}.insights-task{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--ins-rule)}.insights-task:first-of-type{border-top:none;padding-top:0}.insights-task input[type=checkbox]{width:16px;height:16px;margin-top:4px;flex-shrink:0;cursor:pointer}.insights-task__text{flex:1;min-width:0;border:none;background:transparent;outline:none;padding:2px 0;font-size:15px;line-height:1.5;color:var(--ins-ink)}.insights-task__text.is-done{text-decoration:line-through;color:var(--ins-mute)}.insights-task__delete{background:none;border:none;color:var(--ins-mute);font-size:12px;font-weight:600;padding:2px 6px;cursor:pointer;flex-shrink:0}.insights-task__delete:hover,.insights-task__delete:focus-visible{color:#922b21}.insights-mistake{margin-top:14px;padding-top:14px;border-top:1px solid var(--ins-rule)}.insights-mistake:first-of-type{margin-top:0;padding-top:0;border-top:none}.insights-mistake__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.insights-mistake__tag{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#3730a3}.insights-mistake__actions{margin-left:auto;display:flex;gap:4px}.insights-mistake__action{background:none;border:none;color:var(--ins-mute);font-size:12px;font-weight:600;padding:2px 6px;cursor:pointer}.insights-mistake__action:hover,.insights-mistake__action:focus-visible{color:var(--ins-ink)}.insights-mistake__quote{display:flex;align-items:flex-start;gap:10px;margin:10px 0 0;padding:2px 0 2px 12px;border-left:3px solid var(--ins-rail)}.insights-mistake__quote-text{flex:1;min-width:0;margin:0;font-size:15px;line-height:1.5;color:var(--ins-quote)}.insights-mistake__play{flex-shrink:0;font-size:12px;line-height:1;padding:4px 8px;border:1px solid #d1d5db;background:#fff;border-radius:var(--radius);color:var(--ins-body);cursor:pointer}.insights-mistake__play:hover{border-color:#9ca3af}.insights-mistake__play.is-playing{background:#fee2e2;border-color:#f5b7b1;color:#922b21}.insights-mistake__note{margin:8px 0 0;font-size:15px;line-height:1.55;color:var(--ins-body)}.insights-mistake__edit{display:flex;flex-direction:column;gap:8px}.insights-mistake__category{min-width:180px;flex:0 0 180px}.insights-mistake__edit-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.insights-mistake__edit-row .form-input{flex:1;min-width:12rem}.insights-mistake__edit-actions{display:flex;gap:8px}.insights-dialog__clear{margin-top:28px;padding-top:16px;border-top:1px solid var(--ins-rule)}.insights-dialog__clear .btn-danger{font-size:12px}.insights-dialog__clear-hint{display:block;margin-top:6px;font-size:12px;color:var(--ins-faint);line-height:1.45}@media(max-width:640px){.insights-dialog__top{flex-direction:column;align-items:stretch;padding:14px 16px}.insights-dialog__actions{justify-content:space-between}.insights-dialog__body{padding:16px 16px 48px}}@media(prefers-reduced-motion:reduce){.insights-mistake__play{transition:none}}.selling-review-trigger{display:flex;align-items:center;gap:6px}.selling-review-trigger__status{font-size:12px;color:#6b7280;white-space:nowrap}.selling-review{--sr-ink: #1c1917;--sr-body: #44403c;--sr-mute: #57534e;--sr-faint: #a8a29e;--sr-rule: #e7e5e4;--sr-quote: #44403c;--sr-rail: #a8a29e;--sr-ok-bg: #ecfdf5;--sr-ok: #166534;--sr-alert-bg: #fef2f2;--sr-alert: #9f1239;--sr-warn-bg: #fef9e7;--sr-warn-border: #f7dc6f;--sr-warn: #7d6608;--sr-fail-border: #f5b7b1;--sr-partial: #b45309;--sr-partial-text: #92400e}.selling-review-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#fff}.selling-review-dialog{width:100%;height:100%;display:flex;flex-direction:column;background:#fff}.selling-review-dialog__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px max(28px,calc(50% - 36rem));border-bottom:1px solid var(--sr-rule);flex-shrink:0;background:#fff}.selling-review-dialog__heading{min-width:0}.selling-review-dialog__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.selling-review-dialog__rerun{background:none;border:1px solid #e5e7eb;color:#4b5563;font-size:13px;font-weight:600;padding:6px 10px;border-radius:var(--radius);cursor:pointer;white-space:nowrap}.selling-review-dialog__rerun:hover:not(:disabled){background:#f3f4f6;color:#1f2937}.selling-review-dialog__rerun:disabled{opacity:.55;cursor:not-allowed}.selling-review-dialog__rerun:focus-visible,.selling-review-dialog__close:focus-visible,.selling-review__play:focus-visible{outline:2px solid #667eea;outline-offset:2px}.selling-review-dialog__close{background:none;border:none;font-size:1.5rem;line-height:1;color:#9ca3af;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius)}.selling-review-dialog__close:hover,.selling-review-dialog__close:focus-visible{background:#f3f4f6;color:#1f2937}.selling-review-dialog__body{overflow-y:auto;padding:36px max(28px,calc(50% - 36rem)) 80px;background:#fff}.selling-review__title{margin:0;font-size:1.1rem;font-weight:600;color:var(--sr-ink);line-height:1.3}.selling-review__meta{margin-top:4px;font-size:12px;color:var(--sr-faint);line-height:1.4}.selling-review__error{margin-top:12px;color:var(--sr-alert);font-size:13px}.selling-review__banner{margin-top:12px;padding:10px 12px;border-radius:var(--radius);font-size:13px;line-height:1.45}.selling-review__banner--fail{background:var(--sr-alert-bg);border:1px solid var(--sr-fail-border);color:var(--sr-alert)}.selling-review__banner--warn{background:var(--sr-warn-bg);border:1px solid var(--sr-warn-border);color:var(--sr-warn)}.selling-review__status{margin:10px 0 0;font-size:13px;color:var(--sr-mute);line-height:1.45}.selling-review__page{max-width:72rem;margin:0 auto}.selling-review-lead{max-width:42rem;margin:0 auto}.selling-review-verdict{max-width:none}.selling-review-verdict__decision{margin:0;font-size:2rem;font-weight:600;letter-spacing:-.03em;line-height:1.15;color:var(--sr-ink)}.selling-review-verdict__decision--ok{color:var(--sr-ok)}.selling-review-verdict__decision--alert{color:var(--sr-alert)}.selling-review-verdict__fit{margin:10px 0 0;font-size:15px;line-height:1.5;color:var(--sr-body)}.selling-review-verdict__fit-label{font-weight:600;color:var(--sr-ink)}.selling-review__headline{margin:18px 0 0;max-width:none;font-size:1.25rem;font-weight:500;color:var(--sr-ink);line-height:1.4}.selling-review__summary{margin:10px 0 0;font-size:15px;color:var(--sr-body);line-height:1.55}.selling-review-section{max-width:42rem;margin:64px auto 0;padding-top:18px;border-top:2px solid var(--sr-ink)}.selling-review-section__head{margin-bottom:28px}.selling-review-section__title{margin:0;font-size:1.6rem;font-weight:650;letter-spacing:-.025em;color:var(--sr-ink);line-height:1.2}.selling-review-section__lede{margin:6px 0 0;font-size:14px;line-height:1.45;color:var(--sr-mute)}.selling-review__note{max-width:none}.selling-review__note+.selling-review__note{margin-top:28px;padding-top:28px;border-top:1px solid var(--sr-rule)}.selling-review__note-title{margin:0;font-size:1.15rem;font-weight:600;color:var(--sr-ink);line-height:1.3}.selling-review__habit{margin:4px 0 0;font-size:13px;color:var(--sr-faint);line-height:1.4}.selling-review__prose{margin:14px 0 0;font-size:16px;line-height:1.6;color:var(--sr-body)}.selling-review__prose--lead{margin-top:0}.selling-review__prose--follow{margin-top:12px}.selling-review__quote{display:flex;align-items:flex-start;gap:12px;margin:12px 0 0;padding:0 0 0 14px;border-left:2px solid var(--sr-rail)}.selling-review__quote-text{flex:1;min-width:0;margin:0;font-size:16px;line-height:1.55;color:var(--sr-quote)}.selling-review__play{flex-shrink:0;margin-top:1px;font-size:12px;line-height:1;padding:4px 8px;border:1px solid #d6d3d1;background:#fff;border-radius:var(--radius);color:var(--sr-body);cursor:pointer}.selling-review__play:hover{border-color:#a8a29e}.selling-review__play.is-playing{background:#fee2e2;border-color:#f5b7b1;color:var(--sr-alert)}.selling-review__next{margin-top:18px;padding:2px 0 2px 16px;border-left:3px solid var(--sr-ink)}.selling-review__next-label{margin:0;font-size:13px;font-weight:600;color:var(--sr-mute)}.selling-review__phrases{margin:6px 0 0;padding:0;list-style:none}.selling-review__phrases li{font-size:16px;line-height:1.5;color:var(--sr-ink);padding:6px 0}.selling-review__phrases li+li{border-top:1px solid var(--sr-rule)}.selling-review__hint{margin:6px 0 0;font-size:12px;color:var(--sr-faint)}.selling-review__went-well{max-width:none}.selling-review-scorecard__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}.selling-review-scorecard__title{margin:0;font-size:15px;font-weight:600;color:var(--sr-ink)}.selling-review-scorecard__tally{margin:0;font-size:14px;color:var(--sr-mute)}.selling-review-scorecard__tally strong{font-size:1.35rem;font-weight:650;color:var(--sr-ink);font-variant-numeric:tabular-nums}.selling-review-scorecard__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;border:1px solid var(--sr-rule);border-radius:var(--radius);overflow:hidden}.selling-review-scorecard__cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 16px 14px;border-top:3px solid transparent}.selling-review-scorecard__cell+.selling-review-scorecard__cell{border-left:1px solid var(--sr-rule)}.selling-review-scorecard__cell--covered{border-top-color:var(--sr-ok)}.selling-review-scorecard__cell--partial{border-top-color:var(--sr-partial)}.selling-review-scorecard__cell--missing{border-top-color:var(--sr-faint)}.selling-review-scorecard__cell--not_needed{border-top-color:var(--sr-rule)}.selling-review-ball{width:30px;height:30px;margin-bottom:8px}.selling-review-ball__ring{fill:none;stroke:currentColor;stroke-width:2.5}.selling-review-ball__fill{fill:currentColor}.selling-review-ball--covered{color:var(--sr-ok)}.selling-review-ball--partial{color:var(--sr-partial)}.selling-review-ball--missing{color:var(--sr-faint)}.selling-review-ball--not_needed{color:var(--sr-rule)}.selling-review-scorecard__name{font-size:15px;font-weight:600;color:var(--sr-ink);line-height:1.3}.selling-review-scorecard__state{font-size:13px;font-weight:600;line-height:1.3}.selling-review__state--covered{color:var(--sr-ok)}.selling-review__state--partial{color:var(--sr-partial-text)}.selling-review__state--missing{color:var(--sr-alert)}.selling-review-scorecard__state.selling-review__state--missing,.selling-review__state--not_needed{color:var(--sr-mute)}.selling-review-split{display:flex;flex-direction:column;gap:40px}.selling-review-split__col{min-width:0}.selling-review__group-title{margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--sr-rule);font-size:1.05rem;font-weight:600;color:var(--sr-ink)}.selling-review__group-title--sub{margin:20px 0 8px;padding-bottom:0;border-bottom:none;font-size:13px;font-weight:600;color:var(--sr-mute)}.selling-review-split__col>.selling-review__group-title--sub:first-of-type{margin-top:0}.selling-review__empty{margin:0 0 4px;font-size:14px;color:var(--sr-faint)}.selling-review__finding{padding:12px 0}.selling-review__finding+.selling-review__finding{border-top:1px solid var(--sr-rule)}.selling-review__finding-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.selling-review__finding-name{font-size:14px;font-weight:600;color:var(--sr-ink)}.selling-review__mark{font-size:12px;font-weight:600}.selling-review__finding .selling-review__quote{margin-top:8px}.selling-review__finding-note{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--sr-body)}@media(max-width:640px){.selling-review-dialog__top{flex-direction:column;align-items:stretch;padding:14px 16px}.selling-review-dialog__actions{justify-content:space-between}.selling-review-dialog__body{padding:20px 16px 48px}.selling-review-verdict__decision{font-size:1.4rem}.selling-review-section{margin-top:48px}.selling-review-section__title{font-size:1.35rem}.selling-review-scorecard__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.selling-review-scorecard__cell+.selling-review-scorecard__cell{border-left:none}.selling-review-scorecard__cell:nth-child(2n){border-left:1px solid var(--sr-rule)}.selling-review__quote{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.selling-review__play{transition:none}}.status-history__header{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:0;cursor:pointer;font-size:16px;font-weight:600;color:#1f2937;text-align:left}.status-history__chevron{display:inline-block;width:14px;color:#6b7280}.status-history__empty{margin:12px 0 0;color:#9ca3af;font-size:14px}.status-history__list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column}.status-history__row{display:flex;align-items:baseline;gap:16px;padding:8px 0;border-top:1px solid #f0f1f4;font-size:14px}.status-history__row:first-child{border-top:none}.status-history__time{color:#6b7280;white-space:nowrap;min-width:150px}.status-history__change{color:#1f2937;flex:1}.status-history__actor{color:#6b7280;white-space:nowrap}.recording-upload{max-width:720px;margin:0 auto;padding:32px 24px 48px}.recording-upload__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.recording-upload__header h1{font-size:24px;font-weight:600;margin:0;color:#1a202c}.recording-upload__back{color:#6b7280;text-decoration:none;font-size:14px;padding:6px 10px;border-radius:var(--radius);transition:background .12s ease,color .12s ease}.recording-upload__back:hover{background:#f3f4f6;color:#1f2937}.recording-upload__mode{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:6px;background:#f3f4f6;border-radius:var(--radius);margin-bottom:20px}.recording-upload__mode-btn{display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;text-align:left;color:#4b5563;font:inherit;transition:background .12s ease,color .12s ease,box-shadow .12s ease,border-color .12s ease}.recording-upload__mode-btn:hover:not(:disabled){background:#fff;color:#1f2937}.recording-upload__mode-btn.is-active{background:#fff;color:#111827;border-color:#e5e7eb;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f}.recording-upload__mode-btn:disabled{cursor:not-allowed;opacity:.55}.recording-upload__mode-icon{font-size:22px;line-height:1}.recording-upload__mode-title{display:block;font-weight:600;font-size:14px}.recording-upload__mode-tag{display:inline-block;margin-left:6px;padding:1px 6px;background:#dbeafe;color:#1d4ed8;border-radius:var(--radius);font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;vertical-align:middle}.recording-upload__mode-sub{display:block;font-size:12px;color:#6b7280;margin-top:2px}.recording-upload__note{display:flex;gap:10px;padding:12px 14px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);color:#78350f;margin-bottom:20px;font-size:13px;line-height:1.5}.recording-upload__note:before{content:"💡";flex-shrink:0}.recording-upload__picker{position:relative;padding:40px 24px 32px;border:2px dashed #d1d5db;border-radius:var(--radius);background:#fafafa;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.recording-upload__picker:hover{border-color:#93c5fd;background:#f8fbff}.recording-upload__picker:focus-visible{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.recording-upload__picker.is-drag-over{border-color:#2563eb;background:#eff6ff;transform:scale(1.005)}.recording-upload__file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.recording-upload__picker-icon{font-size:40px;line-height:1;margin-bottom:12px}.recording-upload__picker-title{font-size:16px;font-weight:600;color:#1f2937}.recording-upload__picker-or{margin:10px 0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af}.recording-upload__pick-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;background:var(--btn-ink);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;box-shadow:none;transform:none;transition:background-color .12s ease}.recording-upload__pick-btn:hover{background:var(--btn-ink-hover)}.recording-upload__pick-btn:active{background:var(--btn-ink-active)}.recording-upload__hint{list-style:none;padding:0;margin:24px auto 0;max-width:480px;text-align:left;color:#6b7280;font-size:13px;line-height:1.6}.recording-upload__hint li{position:relative;padding-left:18px;margin-bottom:4px}.recording-upload__hint li:before{content:"•";position:absolute;left:4px;color:#9ca3af}.recording-upload__hint strong{color:#374151;font-weight:600}.recording-upload__progress{padding:20px 22px;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);box-shadow:0 1px 3px #0f172a0a}.recording-upload__progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.recording-upload__progress-file{font-weight:600;font-size:14px;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.recording-upload__cancel-btn{padding:6px 14px;background:#fff;color:#b91c1c;border:1px solid #fecaca;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.recording-upload__cancel-btn:hover{background:#fef2f2;border-color:#f87171;color:#991b1b}.recording-upload__phase{display:flex;align-items:center;gap:8px;font-size:13px;color:#4b5563;margin:10px 0 14px}.recording-upload__spinner{width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:ru-spin .7s linear infinite}@keyframes ru-spin{to{transform:rotate(360deg)}}.recording-upload__bar{width:100%;height:10px;background:#f3f4f6;border-radius:999px;overflow:hidden}.recording-upload__bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:999px;transition:width .2s ease-out}.recording-upload__bar-fill.is-indeterminate{width:100%!important;background:linear-gradient(90deg,#3b82f640,#2563eb,#3b82f640);background-size:200% 100%;animation:ru-shimmer 1.4s linear infinite}@keyframes ru-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.recording-upload__progress-pct{margin-top:8px;font-size:12px;font-weight:500;color:#6b7280;text-align:right}.recording-upload__exists{display:flex;align-items:center;gap:16px;padding:18px 20px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:var(--radius);margin-bottom:20px}.recording-upload__exists-icon{font-size:28px;line-height:1}.recording-upload__exists-body{flex:1}.recording-upload__exists-title{font-weight:600;font-size:15px;color:#065f46}.recording-upload__exists-sub{margin-top:4px;font-size:13px;color:#047857}.recording-upload__error{margin-top:16px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);color:#991b1b;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow-y:auto}@media(max-width:540px){.recording-upload{padding:20px 16px 32px}.recording-upload__mode{grid-template-columns:1fr}.recording-upload__picker{padding:32px 16px 28px}}.recording-detail{max-width:960px;margin:0 auto;padding:24px 24px 48px}.recording-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.recording-detail__header h1{margin:4px 0 6px;font-size:26px;font-weight:600;color:#111827}.recording-detail__back{display:inline-block;color:#6b7280;text-decoration:none;font-size:13px;margin-bottom:4px}.recording-detail__back:hover{color:#1f2937;text-decoration:underline}.recording-detail__subtitle{display:flex;align-items:center;gap:6px;color:#6b7280;font-size:14px}.recording-detail__subtitle a{color:#2563eb;text-decoration:none}.recording-detail__subtitle a:hover{text-decoration:underline}.recording-detail__dot{color:#d1d5db}.recording-detail__status-pill{flex-shrink:0;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.recording-detail__status-pill--completed{background:#d1fae5;color:#065f46}.recording-detail__status-pill--processing{background:#dbeafe;color:#1e40af}.recording-detail__status-pill--pending{background:#fef3c7;color:#92400e}.recording-detail__status-pill--failed{background:#fee2e2;color:#991b1b}.recording-detail__status-pill--uploading{background:#e0e7ff;color:#3730a3}.recording-detail__status-pill--unknown{background:#e5e7eb;color:#374151}.recording-detail__header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.recording-detail__delete-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius);font-size:13px;font-weight:500;background:#fff;color:#b91c1c;border:1px solid #fecaca;cursor:pointer;transition:background .15s ease,border-color .15s ease}.recording-detail__delete-btn:hover{background:#fef2f2;border-color:#f87171}.recording-detail__banner{display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:var(--radius);margin-bottom:20px}.recording-detail__banner-body{flex:1}.recording-detail__banner--error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.recording-detail__error-detail{margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:pre-wrap;color:#7f1d1d}.recording-detail__banner-hint{margin-top:8px;font-size:13px;color:#7f1d1d}.recording-detail__audio-card{padding:14px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);margin-bottom:20px;box-shadow:0 1px 2px #0f172a0a}.recording-detail__audio{width:100%;height:40px;display:block}.recording-detail__card{padding:20px 22px;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);margin-bottom:20px;box-shadow:0 1px 2px #0f172a0a}.recording-detail__card-title{font-size:15px;font-weight:600;color:#111827;margin:0 0 4px}.recording-detail__card-hint{margin:0 0 14px;color:#6b7280;font-size:13px;line-height:1.5}.recording-detail__card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.recording-detail__card-head .recording-detail__card-title{margin:0}.transcription-mode__toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;background:#f3f4f6;border-radius:var(--radius);margin-top:12px}.transcription-mode__btn{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;text-align:left;color:#4b5563;font:inherit;transition:background .12s ease,color .12s ease,box-shadow .12s ease,border-color .12s ease}.transcription-mode__btn:hover:not(:disabled){background:#fff;color:#1f2937}.transcription-mode__btn.is-active{background:#fff;color:#111827;border-color:#e5e7eb;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f}.transcription-mode__btn:disabled{cursor:not-allowed;opacity:.55}.transcription-mode__title{font-weight:600;font-size:13px}.transcription-mode__tag{display:inline-block;margin-left:6px;padding:1px 6px;background:#dbeafe;color:#1d4ed8;border-radius:var(--radius);font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;vertical-align:middle}.transcription-mode__sub{font-size:12px;color:#6b7280}.transcription-mode__rerun{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff;border:1px solid #d1d5db;border-radius:var(--radius);color:#374151;font-size:12px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.transcription-mode__rerun:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af;color:#111827}.transcription-mode__rerun:disabled{cursor:not-allowed;opacity:.5}.transcription-mode__rerun svg{color:#2563eb}.channel-map{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 16px;align-items:stretch;padding:14px 16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:var(--radius)}.channel-map__row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border-radius:var(--radius);border:1px solid #e5e7eb}.channel-map__role{font-weight:600;font-size:13px;padding:3px 9px;border-radius:999px}.channel-map__row--teacher .channel-map__role{background:#e8f5e9;color:#2e7d32}.channel-map__row--client .channel-map__role{background:#fff3e0;color:#b35400}.channel-map__arrow{color:#9ca3af;font-size:14px}.channel-map__track{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:#374151;font-weight:500}.channel-map__swap{grid-column:2;grid-row:1 / 3;display:inline-flex;align-items:center;gap:8px;padding:0 18px;background:#fff;border:1px solid #d1d5db;border-radius:var(--radius);color:#1f2937;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease;box-shadow:0 1px 2px #0f172a0a}.channel-map__swap:hover{background:#f3f4f6;border-color:#9ca3af;color:#111827}.channel-map__swap:active{transform:scale(.97)}.channel-map__swap svg{color:#2563eb}.channel-map__swap:hover svg{color:#1d4ed8}@media(max-width:540px){.channel-map{grid-template-columns:1fr}.channel-map__swap{grid-column:1;grid-row:auto;justify-content:center;padding:10px 18px}}.recording-detail__transcript-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.recording-detail__transcript-count{font-size:12px;color:#6b7280}.recording-detail__transcript-meta{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.recording-detail__run-badge{display:inline-block;padding:2px 8px;background:#eef2ff;color:#4338ca;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em}.recording-detail__run-badge--muted{background:#f3f4f6;color:#6b7280;font-weight:500}.recording-detail__transcript-pending,.recording-detail__transcript-empty{display:flex;align-items:center;gap:10px;color:#6b7280;font-style:normal;margin:6px 0 0;font-size:14px}.recording-detail__spinner{width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:rd-spin .7s linear infinite;display:inline-block}@keyframes rd-spin{to{transform:rotate(360deg)}}.recording-detail__segments{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:4px}.recording-detail__segment{position:relative;display:grid;grid-template-columns:56px 80px 1fr;gap:12px;align-items:start;padding:8px 36px 16px 6px;border-radius:var(--radius);transition:background .12s ease}.recording-detail__segment:hover{background:#f9fafb}.recording-detail__segment--continued{padding-top:0}.recording-detail__segment--continued .recording-detail__segment-speaker{visibility:hidden}.recording-detail__segment--continued .recording-detail__segment-time{opacity:.6}.recording-detail__segment-delete,.recording-detail__segment-add{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:#fff;border:1px solid #d1d5db;border-radius:var(--radius);color:#6b7280;cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease,border-color .12s ease}.recording-detail__segment:hover .recording-detail__segment-delete,.recording-detail__segment:hover .recording-detail__segment-add,.recording-detail__segment-delete:focus-visible,.recording-detail__segment-add:focus-visible{opacity:1}.recording-detail__segment-delete{top:6px;right:6px}.recording-detail__segment-delete:hover{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.recording-detail__segment-add{bottom:6px;right:6px}.recording-detail__segment-add:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}@media(hover:none){.recording-detail__segment-delete,.recording-detail__segment-add{opacity:1}}.recording-detail__segment-time{background:#f3f4f6;border:none;color:#2563eb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:var(--radius);text-align:center;transition:background .12s ease,color .12s ease}.recording-detail__segment-time:hover{background:#dbeafe;color:#1d4ed8}.recording-detail__segment-speaker{font-weight:600;font-size:12px;padding:4px 8px;border-radius:var(--radius);text-align:center;align-self:start}.recording-detail__segment-speaker--teacher{background:#e8f5e9;color:#2e7d32}.recording-detail__segment-speaker--client{background:#fff3e0;color:#b35400}.recording-detail__segment-speaker--mix{background:#e5e7eb;color:#374151}.recording-detail__segment-text{width:100%;min-height:32px;padding:6px 8px;border:1px solid transparent;border-radius:var(--radius);font-family:inherit;font-size:14px;line-height:1.5;resize:vertical;background:transparent;color:#111827}.recording-detail__segment-text:hover{border-color:#e5e7eb}.recording-detail__segment-text:focus{border-color:#3b82f6;background:#fff;outline:none;box-shadow:0 0 0 3px #3b82f626}.recording-detail__segment-form-wrap{list-style:none;padding:0;margin:0}.recording-detail__transcript-empty-wrap{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.recording-detail__transcript-empty{margin:0}.recording-detail__add-first{align-self:flex-start;padding:6px 14px;background:#fff;border:1px dashed #9ca3af;border-radius:var(--radius);color:#374151;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.recording-detail__add-first:hover:not(:disabled){background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.recording-detail__add-first:disabled{cursor:not-allowed;opacity:.5}.add-segment{margin:6px 6px 10px 68px;background:#f9fafb;border:1px solid #d1d5db;border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:10px}.add-segment__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.add-segment__speaker{display:inline-flex;background:#fff;border:1px solid #d1d5db;border-radius:var(--radius);padding:2px}.add-segment__speaker-btn{background:transparent;border:none;padding:4px 10px;font-size:12px;font-weight:500;color:#4b5563;border-radius:var(--radius);cursor:pointer;transition:background .12s ease,color .12s ease}.add-segment__speaker-btn:hover:not(:disabled){color:#111827}.add-segment__speaker-btn.is-active{background:#e0e7ff;color:#4338ca}.add-segment__speaker-btn:disabled{cursor:not-allowed;opacity:.6}.add-segment__time-wrap{display:inline-flex;align-items:center;gap:6px}.add-segment__time-label{font-size:12px;color:#6b7280;font-weight:500}.add-segment__time-input{width:80px;padding:4px 8px;border:1px solid #d1d5db;border-radius:var(--radius);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#111827}.add-segment__time-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.add-segment__text{width:100%;padding:8px 10px;border:1px solid #d1d5db;border-radius:var(--radius);font-family:inherit;font-size:14px;line-height:1.5;resize:vertical;background:#fff;color:#111827}.add-segment__text:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.add-segment__error{font-size:12px;color:#b91c1c}.add-segment__actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:600px){.recording-detail{padding:16px 14px 32px}.recording-detail__header{flex-direction:column;align-items:stretch}.recording-detail__segment{grid-template-columns:56px 1fr}.recording-detail__segment-speaker{grid-column:1 / -1;align-self:start;width:max-content}.recording-detail__segment--continued .recording-detail__segment-speaker{display:none}.recording-detail__segment-text{grid-column:1 / -1}.segmented{grid-template-columns:1fr}.add-segment{margin-left:12px;margin-right:12px}}.recordings{padding:24px}.recordings__header{margin-bottom:16px}.recordings__error{padding:8px 12px;background:#fdecea;border:1px solid #f5c6cb;color:#b71c1c;border-radius:var(--radius);margin-bottom:12px}.recordings__table{width:100%;border-collapse:collapse}.recordings__table th,.recordings__table td{padding:8px 12px;text-align:left;border-bottom:1px solid #eee}.recordings__table th{background:#f5f5f5;font-weight:600;font-size:13px;color:#555}.recordings__empty{text-align:center;color:#777;padding:24px}.recordings__pill{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:12px;font-weight:500;text-transform:capitalize}.recordings__pill--pending,.recordings__pill--processing{background:#e3f2fd;color:#0d47a1}.recordings__pill--completed{background:#e8f5e9;color:#2e7d32}.recordings__pill--failed{background:#fdecea;color:#b71c1c}.recordings__pill--uploading{background:#f5f5f5;color:#555}.recordings__pagination{margin-top:16px;display:flex;align-items:center;gap:12px;justify-content:center}.recordings__pagination button{padding:4px 12px;border:1px solid var(--btn-quiet-border, #d0d5dc);border-radius:var(--radius);background:var(--btn-quiet-bg, #e8ecf0);color:var(--btn-quiet-text, #4a5560);font-weight:600;cursor:pointer;transform:none;box-shadow:none}.recordings__pagination button:hover:not(:disabled){background:var(--btn-quiet-hover-bg, #dde2e8)}.recordings__pagination button:disabled{opacity:.5;cursor:not-allowed}.exp-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.exp-badge--expired{background:#fdecec;color:#c0392b}.exp-badge--critical{background:#fff1e6;color:#d35400}.exp-badge--warning{background:#fff9e0;color:#9a7d0a}.contact-row-new{background:#fff5f5}.inline-status-select{min-width:150px}.contacts-status-filter{width:170px}.reels-guide{--wall: #e6ecef;--sheet: #f3f6f8;--ink: #1e2c3a;--mute: #5a6876;--drop: #9c2f24;--rule: #c3ced6;--focus: #9c2f24;min-height:100vh;background:var(--wall);color:var(--ink);font-family:Literata,Iowan Old Style,Palatino Linotype,Palatino,serif;font-optical-sizing:auto;font-size:1.125rem;line-height:1.62;font-weight:400;user-select:text;-webkit-user-select:text}.reels-guide-shell{display:grid;grid-template-columns:minmax(0,42rem) 13.5rem;gap:3.5rem;align-items:start;max-width:60rem;margin:0 auto;padding:2.75rem 1.75rem 5.5rem}.reels-guide-main{min-width:0}.reels-guide h1,.reels-guide h2,.reels-guide h3{font-family:inherit;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}.reels-guide h1{margin:0;font-size:2.65rem;font-weight:700}.reels-guide h2{margin:2.75rem 0 .85rem;font-size:1.55rem;scroll-margin-top:1.25rem}.reels-guide-hero+section h2{margin-top:1.75rem}.reels-guide h3{margin:1.85rem 0 .6rem;font-size:1.15rem;font-weight:600;scroll-margin-top:1.25rem}.reels-guide p,.reels-guide li{max-width:62ch}.reels-guide p{margin:0 0 1rem}.reels-guide ul,.reels-guide ol{margin:0 0 1.15rem;padding-left:1.2rem}.reels-guide li{margin-bottom:.55rem}.reels-guide li ul,.reels-guide li ol{margin-top:.4rem;margin-bottom:.4rem}.reels-guide a{color:var(--drop);text-decoration-thickness:1px;text-underline-offset:.18em}.reels-guide a:hover{color:var(--ink)}.reels-guide a:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.reels-guide-lede{margin:.85rem 0 1.75rem;font-size:1.28rem;line-height:1.45;max-width:34ch}.reels-guide-updated{margin:1.5rem 0 0;font-family:Atkinson Hyperlegible,Segoe UI,sans-serif;font-size:.92rem;line-height:1.45;color:var(--mute);max-width:48ch}.reels-guide-path{position:relative;margin:0 0 1.35rem;min-height:7.25rem}.reels-guide-path ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem .75rem;position:relative;z-index:1;max-width:none}.reels-guide-path-line{position:absolute;left:0;right:0;top:.45rem;height:4.75rem;width:100%;color:var(--drop);opacity:.7;pointer-events:none;z-index:0}.reels-guide-path li{margin:0;max-width:none;position:relative;z-index:1}.reels-guide-path li:nth-child(1){margin-top:0}.reels-guide-path li:nth-child(2){margin-top:.55rem}.reels-guide-path li:nth-child(3){margin-top:1.15rem}.reels-guide-path li:nth-child(4){margin-top:1.75rem}.reels-guide-path a{display:flex;flex-direction:column;gap:.35rem;color:var(--ink);text-decoration:none;font-family:Atkinson Hyperlegible,Segoe UI,sans-serif;font-size:.98rem;line-height:1.25;font-weight:700}.reels-guide-path a:hover{color:var(--drop)}.reels-guide-path-step{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border:1.5px solid var(--drop);border-radius:50%;background:var(--sheet);color:var(--drop);font-size:.78rem;font-weight:700}.reels-guide section{padding-top:.25rem}.reels-guide blockquote{margin:0 0 1.2rem;padding:.15rem 0 .15rem 1rem;border-left:2px solid var(--drop);font-style:italic}.reels-guide blockquote p{margin:0}.reels-guide-table-wrap{margin:.4rem 0 1.25rem;overflow-x:auto;max-width:100%}.reels-guide table{width:100%;border-collapse:collapse;font-family:Atkinson Hyperlegible,Segoe UI,sans-serif;font-size:.95rem;line-height:1.4}.reels-guide caption{caption-side:top;text-align:left;font-weight:700;margin-bottom:.45rem;color:var(--ink)}.reels-guide th,.reels-guide td{text-align:left;vertical-align:top;padding:.65rem .85rem .65rem 0;border-bottom:1px solid var(--rule)}.reels-guide th{font-weight:700;border-bottom:1.5px solid var(--ink)}.reels-guide td:first-child{font-weight:700;width:28%}.reels-guide-mistakes{list-style:disc}.reels-guide-resources{list-style:decimal;padding-left:1.3rem}.reels-guide-resources li{max-width:58ch}.reels-guide-resources a{font-family:Atkinson Hyperlegible,Segoe UI,sans-serif;font-weight:700;display:inline}.reels-guide-resources span{display:block;margin-top:.2rem;color:var(--mute);font-size:.98rem}.reels-guide-toc{position:sticky;top:1.5rem;padding-top:.2rem;font-family:Atkinson Hyperlegible,Segoe UI,sans-serif;font-size:.88rem;line-height:1.35}.reels-guide-toc-quick{margin:0 0 1.35rem;padding-bottom:1.2rem;border-bottom:1px solid var(--rule)}.reels-guide-toc-title{margin:0 0 .55rem;font-size:.88rem;font-weight:700;color:var(--ink);max-width:none}.reels-guide-toc-kicker{margin:.15rem 0 .2rem;font-size:.88rem;font-weight:400;color:var(--mute);max-width:none}.reels-guide-toc ol,.reels-guide-toc ul{list-style:none;margin:0;padding:0}.reels-guide-toc>ol{border-left:1px solid var(--rule)}.reels-guide-toc li{margin:0;max-width:none}.reels-guide-toc a{display:block;padding:.32rem 0 .32rem .75rem;color:var(--mute);text-decoration:none;border-left:2px solid transparent;margin-left:-1px}.reels-guide-toc a:hover,.reels-guide-toc a.is-active{color:var(--ink)}.reels-guide-toc a.is-active{border-left-color:var(--drop)}.reels-guide-toc a.reels-guide-toc-lead{font-weight:700;color:var(--ink);padding:.15rem 0 .25rem;margin-left:0;border-left:0}.reels-guide-toc a.reels-guide-toc-lead:hover,.reels-guide-toc a.reels-guide-toc-lead.is-active{color:var(--drop);border-left:0}.reels-guide-toc-diagnose{margin:.1rem 0 .85rem;padding:0;border-left:1px solid var(--drop)}.reels-guide-toc-step{display:inline-block;min-width:.85rem;margin-right:.4rem;color:var(--drop);font-variant-numeric:tabular-nums;font-weight:700}.reels-guide-toc-media{display:flex;flex-wrap:wrap;gap:.15rem .95rem;margin:0;padding:0}.reels-guide-toc-media a{padding:.2rem 0;margin-left:0;border-left:0;font-weight:700}.reels-guide-toc-media a.is-active{color:var(--drop);border-left:0}@media(max-width:1100px){.reels-guide-shell{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding:1.75rem 1.15rem 4rem}.reels-guide-main{display:contents}.reels-guide-hero{order:-2}.reels-guide-toc{position:static;order:-1}.reels-guide-toc-quick{margin-bottom:1rem;padding-bottom:1rem}.reels-guide-toc-diagnose{display:none}.reels-guide-toc>ol{border-left:0}.reels-guide-toc a{border-left:0;margin-left:0;padding-left:0}.reels-guide-toc a.is-active{color:var(--drop);border-left:0}.reels-guide-path{min-height:0}.reels-guide-path-line{display:none}.reels-guide-path li{margin-top:0}}@media(max-width:720px){.reels-guide{font-size:1.05rem}.reels-guide h1{font-size:2.05rem}.reels-guide-path ol{grid-template-columns:1fr 1fr}.reels-guide td:first-child{width:auto}}@media(prefers-reduced-motion:reduce){.reels-guide *{transition:none!important;scroll-behavior:auto!important}}.accounting-uploads{display:flex;gap:12px;margin-bottom:16px}.accounting-upload-zone{flex:1;border:2px dashed #d1d5db;border-radius:var(--radius);background:#fff;padding:14px 16px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.accounting-upload-zone:hover,.accounting-upload-zone.is-dragover{border-color:#667eea;background:#f5f7ff}.accounting-upload-zone__label{font-size:14px;font-weight:600;color:#374151}.accounting-upload-zone__hint{font-size:12px;color:#9ca3af;margin-top:2px}.accounting-summary{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;font-size:13px;color:#374151}.accounting-summary__title{font-weight:600;margin-bottom:6px}.accounting-summary__counts{display:flex;flex-wrap:wrap;gap:12px;color:#4a5568}.accounting-summary__block{margin-top:10px;padding:10px 12px;border-radius:var(--radius);background:#fff9e0;border:1px solid #f0e6b8}.accounting-summary__block--danger{background:#fdecea;border-color:#f5c6c0}.accounting-summary__block-title{font-weight:600;color:#9a7d0a;margin-bottom:4px}.accounting-summary__block--danger .accounting-summary__block-title{color:#b3261e}.accounting-summary__block ul{margin:0;padding-left:18px}.accounting-segments{display:inline-flex;border:1px solid #d1d5db;border-radius:var(--radius);overflow:hidden;background:#f3f4f6}.accounting-segments__btn{border:none;border-right:1px solid #d1d5db;background:transparent;padding:0 .9rem;height:34px;font-size:13px;color:#4a5568;cursor:pointer;transition:background .15s ease}.accounting-segments__btn:last-child{border-right:none}.accounting-segments__btn:hover:not(.is-active){background:#e5e7eb}.accounting-segments__btn.is-active{background:#667eea;color:#fff}.accounting-segments--compact .accounting-segments__btn{padding:0 .7rem;height:30px}.acc-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.acc-badge--ok{background:#e6f6ec;color:#1e7e46}.acc-badge--warning{background:#fff9e0;color:#9a7d0a}.acc-badge--returned{background:#fdecea;color:#b3261e}.accounting-row--returned td{opacity:.55}.accounting-card-number{display:block;font-size:11px;color:#9ca3af}.accounting-muted{color:#9ca3af}.accounting-quarter-select{min-width:160px}.accounting-student-select{min-width:240px}.accounting-num{width:76px}.accounting-row-actions{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.accounting-link{background:none;border:none;padding:0;font-size:12px;color:#667eea;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.accounting-link:hover{color:#4c5fd7}.accounting-link--danger{color:#b3261e}.accounting-link--danger:hover{color:#8f1d17}.accounting .action-buttons,td .action-buttons{display:flex;gap:14px;align-items:center}.btn-icon--subtle{opacity:.4;font-size:13px;transition:opacity .15s ease}.btn-icon--subtle:hover{opacity:1}.accounting-bulk-notice{color:#1e7e46;font-weight:600}.accounting-act{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.accounting-act-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.accounting-act-dot.is-done{background:#1e7e46}.accounting-act-dot.is-pending{background:transparent;border:1px solid #c4a012}.accounting-assign-start{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#4a5568;margin-top:8px}.accounting-assign-start .form-input{max-width:200px}.accounting-edit-actions{display:flex;gap:6px}.accounting-edit-actions .btn-primary,.accounting-edit-actions .btn-secondary,.accounting-edit-actions .btn-success{height:30px;min-height:0;padding:0 10px;font-size:12px}.accounting-match-panel{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;font-size:13px}.accounting-match-panel__title{font-weight:600;margin-bottom:6px}.accounting-match-panel table{width:100%;border-collapse:collapse;font-size:12px}.accounting-match-panel td,.accounting-match-panel th{padding:4px 8px;text-align:left;border-bottom:1px solid #f1f5f9}.accounting-kudir-totals{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius);padding:10px 16px;margin-bottom:12px;font-size:13px}.accounting-kudir-totals__scope{font-weight:700;color:#0f172a;padding-right:12px;border-right:1px solid #e2e8f0}.accounting-kudir-totals__item{color:#0f172a;font-weight:600}.accounting-kudir-totals__item em{font-style:normal;font-weight:500;color:#64748b;margin-right:5px}.accounting-kudir-totals__item--tax,.accounting-kudir-totals__item--tax em{color:#b91c1c}.accounting-kudir-totals__empty{color:#64748b}.accounting-stats-chart{height:380px;width:100%;margin-top:.75rem;padding:.75rem 1rem .5rem;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius);box-shadow:0 1px 3px #0000000d}.accounting-stats-chart--loading,.accounting-stats-chart--empty{display:flex;align-items:center;justify-content:center;color:#64748b}.accounting-stats-legend{display:inline-flex;gap:1rem;margin-left:auto;font-size:12px;color:#475569}.accounting-stats-legend__item{display:inline-flex;align-items:center;gap:.4rem}.accounting-stats-legend__item i{width:12px;height:12px;border-radius:var(--radius);display:inline-block}.accounting-stats-tooltip{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);box-shadow:0 4px 12px #0000001f;padding:.5rem .75rem;font-size:12px;line-height:1.5}.accounting-stats-tooltip__label{font-weight:700;color:#2d3748;margin-bottom:.25rem}.accounting-stats-tooltip__row em{color:#64748b;font-style:normal;margin-right:.35rem}.accounting-stats-tooltip__row--tax,.accounting-stats-tooltip__row--tax em{color:#b45309}.accounting-stats-tooltip__row--up{color:#15803d}.accounting-stats-tooltip__row--down{color:#b91c1c}.giveaway-grace-hint{margin:8px 0 0;color:#64748b;font-size:13px}.giveaway-groups-toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}.consultation-edit__card .group-tag-select,.consultation-edit__card .css-b62m3t-container{max-width:none}.giveaway-group-chips{display:flex;flex-wrap:wrap;gap:6px}.giveaway-group-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#667eea1f;color:#4338ca;font-size:12px;font-weight:600}.mention-status--upcoming{color:#1e3a8a;background:#dbeafe}.mention-status--open{color:#166534;background:#dcfce7}.mention-status--grace{color:#92400e;background:#fef3c7}.mention-status--closed{color:#374151;background:#e5e7eb}.App-logo{height:40vmin;pointer-events:none}@media(prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
