@charset "UTF-8";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--color-primary:#4a655a;--color-primary-dark:#3d5449;--color-primary-soft:#4a655a1f;--color-accent:#8d7b68;--color-bg-soft:#f8f6f3;--color-border:#e0ddd8;--color-text:#2d2a26;--color-text-muted:#6b6560;--color-danger:#c0392b;--color-danger-soft:#fdecea;--radius-sm:8px;--radius-md:12px}.form-section+.form-section{border-top:1px solid #e0ddd8;border-top:1px solid var(--color-border);margin-top:8px;padding-top:20px}.form-section h3,.form-section-title{color:#4a655a;color:var(--color-primary);font-size:.95rem;font-weight:700;letter-spacing:.04em;margin:0 0 16px;text-align:left;text-transform:uppercase}.form-row{grid-gap:0 16px;display:grid;gap:0 16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;min-width:0;text-align:left}.form-group>label{color:#2d2a26;color:var(--color-text);font-size:.875rem;font-weight:600}.form-group input:not([type=checkbox]):not([type=radio]),.form-group select,.form-group textarea{background:#fff;border:1px solid #e0ddd8;border:1px solid var(--color-border);border-radius:8px;border-radius:var(--radius-sm);box-sizing:border-box;color:#2d2a26;color:var(--color-text);font:inherit;font-size:.95rem;padding:10px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.form-group textarea{min-height:80px;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4a655a;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a655a1f;box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f8f6f3;background:var(--color-bg-soft);cursor:not-allowed}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#c0392b;border-color:var(--color-danger)}.error-text{color:#c0392b;color:var(--color-danger);font-size:.8rem}.form-hint{color:#6b6560;color:var(--color-text-muted);font-size:.8rem}.form-error{background:#fdecea;background:var(--color-danger-soft);border-radius:8px;border-radius:var(--radius-sm);color:#c0392b;color:var(--color-danger);font-size:.875rem;margin-bottom:16px;padding:10px 12px}.checkbox-label,.radio-label{align-items:center;color:#2d2a26;color:var(--color-text);cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;gap:8px}.checkbox-label input,.radio-label input{accent-color:#4a655a;accent-color:var(--color-primary);height:16px;margin:0;width:16px}.radio-group{display:flex;flex-wrap:wrap;gap:20px;padding:4px 0}.info-box{background:#4a655a1f;background:var(--color-primary-soft);border-left:3px solid #4a655a;border-left:3px solid var(--color-primary);border-radius:8px;border-radius:var(--radius-sm);color:#3d5449;color:var(--color-primary-dark);font-size:.875rem;padding:12px 14px;text-align:left}.info-box p{margin:0}.info-box p+p{margin-top:4px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.btn-cancel,.btn-danger,.btn-primary,.btn-secondary,.btn-submit{align-items:center;border:1px solid #0000;border-radius:8px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font:inherit;font-size:.95rem;font-weight:600;gap:6px;justify-content:center;padding:10px 20px;transition:background-color .15s,border-color .15s}.btn-primary,.btn-submit{background:#4a655a;background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled),.btn-submit:hover:not(:disabled){background:#3d5449;background:var(--color-primary-dark)}.btn-cancel,.btn-secondary{background:#fff;border-color:#e0ddd8;border-color:var(--color-border);color:#2d2a26;color:var(--color-text)}.btn-cancel:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background:#f8f6f3;background:var(--color-bg-soft)}.btn-danger{background:#c0392b;background:var(--color-danger);color:#fff}.btn-cancel:disabled,.btn-danger:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-submit:disabled{cursor:not-allowed;opacity:.6}@media (max-width:600px){.form-actions{flex-direction:column-reverse}.form-actions>button{width:100%}}.page-tabs{border-bottom:1px solid #e0ddd8;border-bottom:1px solid var(--color-border);display:flex;gap:4px;margin:24px 0 20px;overflow-x:auto}.page-tab{background:none;border:none;border-bottom:2px solid #0000;color:#6b6560;color:var(--color-text-muted);cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;margin-bottom:-1px;padding:12px 16px;white-space:nowrap}.page-tab:hover{color:#2d2a26;color:var(--color-text)}.page-tab.active{border-bottom-color:#4a655a;border-bottom-color:var(--color-primary);color:#4a655a;color:var(--color-primary)}.page-tab:focus{outline:none}.page-tab:focus-visible{outline:2px solid #4a655a;outline:2px solid var(--color-primary);outline-offset:-2px}.confirm-message{color:#6b6560;color:var(--color-text-muted);margin:0;text-align:left}.card-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.entity-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);display:flex;flex-direction:column;gap:14px;padding:18px;text-align:left;transition:border-color .15s,box-shadow .15s}.entity-card.is-clickable{cursor:pointer}.entity-card:hover{border-color:#cfc9c1;box-shadow:0 6px 18px #2d2a2612}.entity-card-header{align-items:center;display:flex;gap:12px;min-width:0}.entity-visual{align-items:center;background:var(--color-bg-soft);border-radius:50%;color:var(--color-primary);display:flex;flex-shrink:0;height:44px;justify-content:center;overflow:hidden;width:44px}.entity-visual img{height:100%;object-fit:cover;width:100%}.entity-visual.is-square{background:var(--color-primary-soft);border-radius:10px}.entity-title{flex:1 1;min-width:0}.entity-name{font-size:1rem;font-weight:600;line-height:1.3;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-subtitle{color:var(--color-text-muted);font-size:.85rem;margin-top:2px}.entity-actions{display:flex;flex-shrink:0;gap:2px;margin-left:auto}.icon-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:inline-flex;height:32px;justify-content:center;padding:0;transition:background-color .15s,color .15s;width:32px}.icon-btn:hover{background:var(--color-bg-soft);color:var(--color-text)}.icon-btn.is-danger:hover{background:var(--color-danger-soft);color:var(--color-danger)}.entity-meta{align-items:center;color:var(--color-text-muted);display:flex;flex-wrap:wrap;font-size:.85rem;gap:8px 14px}.entity-meta-item{align-items:center;display:inline-flex;gap:6px;min-width:0}.entity-meta-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-description{color:var(--color-text-muted);font-size:.85rem;margin:0}.badge{align-items:center;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);display:inline-flex;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:2px 8px}.badge-success{background:#e8f5ed;border-color:#cfe9da;color:#1e6b45}.badge-warning{background:#fdf4e3;border-color:#f3e2bd;color:#8a5a00}.badge-danger{background:var(--color-danger-soft);border-color:#f6d3cf;color:var(--color-danger)}.progress{background:#eeebe7;border-radius:999px;height:6px;overflow:hidden}.progress-bar{background:var(--color-primary);border-radius:inherit;height:100%}.entity-footer{align-items:center;border-top:1px solid #f0ede9;display:flex;gap:8px;padding-top:12px}.empty-card{background:#fff;border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);grid-column:1/-1;padding:40px 16px;text-align:center}.btn-small{font-size:.85rem;padding:6px 12px}.payment-summary-block{display:flex;flex-direction:column;gap:8px}.payment-remaining{color:var(--color-text-muted);font-size:.9rem}.payment-remaining strong{color:var(--color-text);font-size:1.25rem}.payment-remaining strong.is-settled{color:var(--color-primary)}.panel{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px}.panel-title{color:var(--color-text);font-size:1rem;font-weight:700;margin:0 0 16px}.list-empty{color:var(--color-text-muted);font-size:.9rem;margin:0;padding:16px 0}.row-list,.schedule-list,.upcoming-list{list-style:none;margin:0;padding:0}.upcoming-item{align-items:center;display:flex;gap:14px;padding:12px 0}.upcoming-item+.upcoming-item{border-top:1px solid #f0ede9}.date-block{align-items:center;background:var(--color-bg-soft);border-radius:var(--radius-sm);display:flex;flex-direction:column;flex-shrink:0;line-height:1.1;padding:6px 0;width:54px}.date-block-small{color:var(--color-text-muted);font-size:.7rem;font-weight:600;text-transform:uppercase}.date-block-day{color:var(--color-primary);font-size:1.25rem;font-weight:700}.upcoming-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.upcoming-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-meta{color:var(--color-text-muted);font-size:.85rem}.pill{border-radius:999px;flex-shrink:0;font-size:.75rem;font-weight:600;padding:3px 10px}.pill-individual{background:var(--color-primary-soft);color:var(--color-primary-dark)}.pill-group{background:#8d7b6829;color:#6b5a48}.pill-present{background:#e3f4ea;color:#1e6b45}.pill-absent{background:var(--color-danger-soft);color:var(--color-danger)}.info-list{grid-gap:10px 16px;display:grid;font-size:.9rem;gap:10px 16px;grid-template-columns:-webkit-max-content 1fr;grid-template-columns:max-content 1fr;margin:0}.info-list dt{color:var(--color-text-muted)}.info-list dd{margin:0;min-width:0;overflow-wrap:anywhere}.info-list a{color:var(--color-primary)}.schedule-list li{display:flex;flex-direction:column;gap:2px;padding:10px 0}.schedule-list li+li{border-top:1px solid #f0ede9}.schedule-day{font-weight:600}.schedule-meta{color:var(--color-text-muted);font-size:.85rem}.row-item{grid-gap:2px 16px;display:grid;gap:2px 16px;grid-template-columns:1fr auto;padding:12px 0}.row-item+.row-item{border-top:1px solid #f0ede9}.row-title{font-weight:600}.row-title:first-letter{text-transform:uppercase}.row-meta{color:var(--color-text-muted);font-size:.85rem;grid-column:1}.row-item .pill{align-self:center;grid-column:2;grid-row:1/span 2}.row-notes{color:var(--color-text-muted);font-size:.85rem;grid-column:1/-1;margin:6px 0 0}.entity-subtitle.is-late{color:var(--color-danger);font-weight:600}body{background-color:var(--color-bg-soft)}body:before{background-color:var(--color-primary);content:"";inset:0;-webkit-mask-image:url(/static/media/physics-pattern.4617a4004b63c85ee14f.png);mask-image:url(/static/media/physics-pattern.4617a4004b63c85ee14f.png);-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:1000px auto;mask-size:1000px auto;opacity:.09;pointer-events:none;position:fixed;z-index:-1}:root{--slate-bg:#34483fe0;--slate-frame:#7a6650;--slate-chalk:#f4f1ea;--slate-chalk-soft:#f4f1eab8;--slate-line:#f4f1ea2e}.slate-board{background:radial-gradient(ellipse at 20% 0,#ffffff0f,#0000 60%),#34483fe0;background:radial-gradient(ellipse at 20% 0,#ffffff0f,#0000 60%),var(--slate-bg);border:6px solid #7a6650;border:6px solid var(--slate-frame);border-radius:14px;box-shadow:inset 0 0 0 1px #00000040,inset 0 2px 24px #00000040,0 18px 40px #2d2a262e;margin:8px auto 24px;max-width:1400px;padding:28px 32px 32px;position:relative}.slate-board>.classes-tab,.slate-board>.notifications-page,.slate-board>.ov,.slate-board>.payments-management,.slate-board>.sessions-management-new,.slate-board>.students-tab{max-width:none;padding:0}.dashboard-content .slate-board .back-link,.dashboard-content .slate-board .management-header h2,.dashboard-content .slate-board .payments-header h2,.dashboard-content .slate-board .tab-header h2{color:#f4f1ea;color:var(--slate-chalk)}.dashboard-content .slate-board .header-actions button{background:#f4f1ea;background:var(--slate-chalk);border:1px solid #0000;box-shadow:0 2px 8px #0003;color:var(--color-primary-dark)}.dashboard-content .slate-board .header-actions button:hover:not(:disabled){background:#fff}.slate-board .management-header,.slate-board .payments-header,.slate-board .tab-header{border-bottom:1px solid #f4f1ea2e;border-bottom:1px solid var(--slate-line);margin-bottom:24px;padding-bottom:16px}.slate-board .ps-section-title{color:#f4f1ea;color:var(--slate-chalk)}.slate-board .ps-note{color:#f4f1eab8;color:var(--slate-chalk-soft)}.slate-board .page-tabs{border-color:#f4f1ea2e;border-color:var(--slate-line)}.slate-board .page-tab{color:#f4f1eab8;color:var(--slate-chalk-soft)}.slate-board .page-tab.active,.slate-board .page-tab:hover{color:#f4f1ea;color:var(--slate-chalk)}.slate-board .page-tab.active{border-bottom-color:#f4f1ea;border-bottom-color:var(--slate-chalk)}@media (max-width:768px){.slate-board{border-radius:10px;border-width:4px;margin:0 auto 16px;padding:20px 16px 24px}}.slate-avatar.slate-avatar{background-color:#34483fe0;background-color:var(--slate-bg);border:3px solid #7a6650;border:3px solid var(--slate-frame);border-radius:8px;box-shadow:inset 0 0 0 1px #00000040,0 2px 6px #2d2a262e;box-sizing:border-box;object-fit:cover}.slate-avatar.slate-avatar img{border-radius:4px}.group-tile.slate-avatar{color:#f4f1ea;color:var(--slate-chalk)}.toast-stack{bottom:24px;flex-direction:column;gap:8px;left:50%;pointer-events:none;position:fixed;transform:translateX(-50%);width:min(560px,calc(100vw - 32px));z-index:11000}.toast,.toast-stack{align-items:center;display:flex}.toast{animation:toast-in .2s ease-out;border-radius:var(--radius-md);box-shadow:0 10px 30px #0003;color:#fff;font-size:.95rem;font-weight:500;gap:12px;padding:12px 12px 12px 16px;pointer-events:auto;text-align:left;width:100%}.toast-success{background:var(--color-primary)}.toast-error{background:var(--color-danger)}.toast-mark{background:#fff3;border-radius:50%;display:grid;flex-shrink:0;font-weight:700;height:24px;place-items:center;width:24px}.toast-message{flex:1 1}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font:inherit;font-size:1.3rem;line-height:1;opacity:.8;padding:0 6px}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1e1c198c;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:9000}.modal-content{animation:modalSlideIn .2s ease-out;background:#fff;border-radius:12px;border-radius:var(--radius-md,12px);box-shadow:0 20px 50px #00000040;display:flex;flex-direction:column;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:hidden;width:100%}.modal-content.small{max-width:420px}.modal-content.medium{max-width:600px}.modal-content.large{max-width:820px}.modal-header{align-items:center;border-bottom:1px solid #e0ddd8;border-bottom:1px solid var(--color-border,#e0ddd8);display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:18px 24px}.modal-title{color:#2d2a26;color:var(--color-text,#2d2a26);font-size:1.2rem;font-weight:700;margin:0;text-align:left}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#6b6560;color:var(--color-text-muted,#6b6560);cursor:pointer;display:flex;flex-shrink:0;font-size:22px;height:34px;justify-content:center;line-height:1;padding:0;width:34px}.modal-close:hover{background:#f8f6f3;background:var(--color-bg-soft,#f8f6f3);color:#2d2a26;color:var(--color-text,#2d2a26)}.modal-body{flex:1 1;min-height:0;overflow-y:auto;padding:20px 24px;text-align:left}.modal-footer{background:#f8f6f3;background:var(--color-bg-soft,#f8f6f3);border-top:1px solid #e0ddd8;border-top:1px solid var(--color-border,#e0ddd8);display:flex;flex-shrink:0;gap:12px;justify-content:flex-end;padding:14px 24px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.modal-overlay{align-items:flex-end;padding:0}.modal-content,.modal-content.large,.modal-content.medium,.modal-content.small{border-radius:16px 16px 0 0;max-height:100dvh;max-width:none}.modal-body,.modal-footer,.modal-header{padding-left:16px;padding-right:16px}.modal-footer{flex-direction:column-reverse}.modal-footer>button{width:100%}}.animated-background{background:#456055;height:100%;left:0;position:fixed;top:0;width:100%;z-index:0}.login-page{align-items:center;display:flex;justify-content:center;min-height:100vh;min-height:100dvh;padding:24px;position:relative}.login-card{--login-card-line:#ffffff40;--login-text-soft:#fffc;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);background:#ffffff1f;border:1px solid var(--login-card-line);border-radius:16px;box-shadow:0 24px 60px #00000040;color:#fff;max-width:420px;padding:40px 36px 32px;position:relative;text-align:left;width:100%;z-index:1}.login-logo{border-radius:6px;box-shadow:0 4px 12px #0000002e;display:block;height:64px;margin:0 auto 28px}.login-form h1{color:#fff;font-size:1.5rem;font-weight:700;margin:0 0 6px;text-align:center}.login-form .form-group>label{color:#fff}.login-subtitle{color:var(--login-text-soft);margin:0 0 28px;text-align:center}.login-form .form-group input:not([type=checkbox]){border-color:#0000;height:46px}.login-password{position:relative}.login-form .login-password input:not([type=checkbox]){padding-right:84px}.login-password-toggle{background:none;border:none;border-radius:6px;color:var(--color-primary);cursor:pointer;font:inherit;font-size:.8rem;font-weight:600;padding:4px 8px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.login-password-toggle:hover{background:var(--color-primary-soft)}.login-submit{background:#fff;color:var(--color-primary-dark);font-size:1rem;height:46px;margin-top:8px;width:100%}.login-submit:hover:not(:disabled){background:var(--color-bg-soft)}.login-submit:disabled{background:#ffffff2e;color:#ffffffbf;opacity:1}.login-help{border-top:1px solid var(--login-card-line);color:var(--login-text-soft);font-size:.8rem;line-height:1.5;margin:24px 0 0;padding-top:20px;text-align:center}@media (max-width:480px){.login-page{padding:16px}.login-card{padding:32px 20px 24px}}.required-badge{background:#ff5722;border-radius:20px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-left:8px;padding:4px 12px;text-transform:uppercase;vertical-align:middle}.required-message{color:var(--color-text-muted);font-size:.9rem;line-height:1.5;margin:0 0 20px;opacity:.95;text-align:left}.change-password-form{text-align:left}.error-banner{background:#ffebee;border-left:4px solid #f44336;border-radius:8px;color:#c62828;font-size:.9rem;font-weight:500;margin-bottom:20px;padding:12px 16px}.password-input-wrapper{align-items:center;display:flex;position:relative}.form-group .password-input-wrapper input:not([type=checkbox]){padding-right:84px}.password-input-wrapper input.error{background:#ffebee;border-color:#f44336}.toggle-password{background:none;border:none;border-radius:6px;color:var(--color-primary);cursor:pointer;font:inherit;font-size:.8rem;font-weight:600;padding:4px 8px;position:absolute;right:12px}.toggle-password:hover{background:var(--color-primary-soft)}.toggle-password:disabled{cursor:not-allowed;opacity:.5}.success-text{color:#4caf50;display:block;font-size:.85rem;font-weight:500;margin-top:6px}.password-strength{align-items:center;display:flex;gap:12px;margin-top:12px}.strength-bar{display:flex;flex:1 1;gap:4px;height:6px}.strength-segment{background:#e0e0e0;border-radius:3px;flex:1 1;transition:background-color .3s ease}.strength-text{font-size:.85rem;font-weight:600;min-width:60px}.password-requirements{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;margin-top:12px;padding:12px 16px}.requirements-title{color:#666;font-size:.85rem;font-weight:600;margin:0 0 8px}.password-requirements ul{list-style:none;margin:0;padding:0}.password-requirements li{color:#666;font-size:.85rem;margin:4px 0;transition:color .3s ease}.password-requirements li.valid{color:#4caf50;font-weight:500}@media (max-width:600px){.change-password-form{padding:24px 20px}}.user-menu{position:relative}.user-menu-trigger{align-items:center;background:#ffffff1f;border:1px solid #fff3;border-radius:999px;cursor:pointer;display:flex;gap:6px;padding:3px 8px 3px 3px;transition:background-color .15s}.user-menu-trigger:hover,.user-menu-trigger[aria-expanded=true]{background:#ffffff38}.user-menu-trigger:focus{outline:none}.user-menu-trigger:focus-visible{outline:2px solid #fff;outline-offset:2px}.user-menu-avatar{align-items:center;background:var(--color-bg-soft);border-radius:50%;color:var(--color-primary-dark);display:inline-flex;flex-shrink:0;font-size:.95rem;font-weight:700;height:34px;justify-content:center;width:34px}.user-menu-avatar.large{background:var(--color-primary);color:#fff;font-size:1.15rem;height:44px;width:44px}.user-menu-caret{border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid #ffffffd9;height:0;width:0}.user-menu-dropdown{animation:userMenuIn .15s ease-out;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000029;color:var(--color-text);overflow:hidden;position:absolute;right:0;text-align:left;top:calc(100% + 10px);width:280px;z-index:10000}.user-menu-header{align-items:center;background:var(--color-bg-soft);display:flex;gap:12px;padding:16px}.user-menu-identity{display:flex;flex-direction:column;min-width:0}.user-menu-name{font-weight:700}.user-menu-email{color:var(--color-text-muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-role{align-self:flex-start;background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary-dark);font-size:.7rem;font-weight:700;letter-spacing:.03em;margin-top:6px;padding:2px 8px;text-transform:uppercase}.user-menu-items{display:flex;flex-direction:column;padding:6px}.user-menu-items+.user-menu-items{border-top:1px solid var(--color-border)}.user-menu .menu-item{background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;font:inherit;font-size:.9rem;padding:10px 12px;text-align:left;width:100%}.user-menu .menu-item:focus-visible,.user-menu .menu-item:hover{background:var(--color-bg-soft);outline:none}.user-menu .logout-item{color:var(--color-danger)}.user-menu .logout-item:hover{background:var(--color-danger-soft)}@keyframes userMenuIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.app-header{background-color:var(--color-primary-dark);background-image:linear-gradient(#2d3e37d1,#2d3e37d1),url(/static/media/physics-banner.003a74fb8bf64aa70c66.png);background-position:50%;background-size:cover;box-shadow:0 1px 0 #00000014,0 4px 16px #00000014;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:8000}.app-header-inner{align-items:center;display:flex;gap:24px;height:68px;margin:0 auto;max-width:1440px;padding:0 24px}.app-brand{background:none;border:none;border-radius:6px;cursor:pointer;display:flex;flex-shrink:0;padding:0}.app-brand img{border-radius:4px;box-shadow:0 2px 6px #00000040;display:block;height:40px;width:auto}.app-nav{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav-item{align-items:center;background:#0000;border:none;border-radius:999px;color:#ffffffc7;cursor:pointer;display:inline-flex;font:inherit;font-size:.9rem;font-weight:500;gap:6px;padding:8px 14px;position:relative;transition:background-color .15s,color .15s;white-space:nowrap}.app-nav-item:hover{background:#ffffff1a;color:#fff}.app-nav-item.active{background:#fff;color:var(--color-primary-dark);font-weight:600}.app-nav-item:focus{outline:none}.app-brand:focus-visible,.app-nav-item:focus-visible{outline:2px solid #fff;outline-offset:2px}.app-nav-badge{background:#c0392b;border-radius:999px;color:#fff;font-size:.7rem;font-weight:700;line-height:16px;min-width:18px;padding:1px 6px;text-align:center}.app-header-actions{align-items:center;display:flex;flex-shrink:0;gap:12px;margin-left:auto}@media (max-width:1100px){.app-header-inner{flex-wrap:wrap;height:auto;padding-bottom:8px;padding-top:12px;row-gap:10px}.app-nav{flex-basis:100%;order:3}}@media (max-width:600px){.app-header-inner{gap:12px;padding-left:12px;padding-right:12px}.app-brand img{height:34px}}.header-switch-child{align-items:center;background:#ffffff1f;border:1px solid #ffffff38;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-size:.9rem;font-weight:600;gap:8px;height:40px;padding:0 16px 0 4px;transition:background-color .15s;white-space:nowrap}.header-switch-child:focus-visible,.header-switch-child:hover{background:#ffffff38;outline:none}.header-switch-child img{height:32px;width:32px}.pm-card{color:inherit;font:inherit;text-align:left;width:100%}.pm-children{border-top:1px solid var(--color-border);font-size:.85rem;margin-top:12px;padding-top:10px}.pm-children,.pm-empty{color:var(--color-text-muted)}.pm-empty{padding:24px;text-align:center}.pm-profile{display:flex;flex-direction:column;gap:24px;text-align:left}.pm-head{align-items:center;display:flex;gap:16px}.pm-name{font-size:1.2rem;font-weight:700;margin-bottom:4px}.pm-dates{font-size:.8rem;margin-top:6px}.pm-dates,.pm-section-title{color:var(--color-text-muted)}.pm-section-title{font-size:.75rem;font-weight:700;letter-spacing:.05em;margin:0 0 10px;text-transform:uppercase}.pm-muted{color:var(--color-text-muted);font-size:.85rem;margin:0}.pm-child-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.pm-child-list li{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-weight:500;gap:8px;padding:6px 10px}.pm-access,.pm-child-list li{background:var(--color-bg-soft)}.pm-access{border-radius:var(--radius-md);padding:16px}.pm-access-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.pm-confirm p,.pm-password p{font-size:.9rem;margin:0 0 12px}.pm-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.pm-password-value{align-items:center;display:flex;gap:12px;margin-bottom:12px}.pm-password-value code{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:Menlo,Consolas,monospace;font-size:1.1rem;letter-spacing:1px;padding:8px 14px;-webkit-user-select:all;user-select:all}.pm-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.pm-filter{align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);cursor:pointer;display:inline-flex;font:inherit;font-size:.85rem;gap:8px;padding:6px 12px}.pm-filter.is-active,.pm-filter:hover{border-color:var(--color-primary)}.pm-filter.is-active{background:var(--color-primary);color:#fff}.pm-filter-count{background:var(--color-bg-soft);border-radius:999px;color:var(--color-text);font-size:.75rem;font-weight:600;min-width:20px;padding:0 6px;text-align:center}.pm-danger-zone{background:var(--color-danger-soft)}.student-notifications{padding:24px}.notifications-title{color:#202124;font-size:1.5rem;font-weight:500;margin-bottom:20px}.notifications-loading{color:#5f6368;padding:40px;text-align:center}.no-notifications{padding:60px 20px;text-align:center}.no-notifications-icon{font-size:4rem;margin-bottom:16px}.no-notifications p{color:#5f6368;font-size:1.1rem}.notifications-list{display:flex;flex-direction:column;gap:16px}.notification-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:box-shadow .2s ease}.notification-card:hover{box-shadow:0 2px 8px #0000001a}.notification-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:16px 20px;transition:background .2s ease}.notification-header:hover{background:#f8f9fa}.notification-main{flex:1 1}.notification-subject{color:#202124;font-size:1rem;font-weight:600;margin-bottom:8px}.notification-meta{align-items:center;display:flex;font-size:.875rem;gap:16px}.notification-date{color:#5f6368}.notification-status{display:flex;gap:12px}.status-success{color:#137333;font-weight:500}.status-failed{color:#c5221f;font-weight:500}.expand-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#5f6368;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;padding:8px;transition:background .2s ease;width:32px}.expand-btn:hover{background:#0000000d}.notification-body{animation:expandDown .2s ease-out;border-top:1px solid #e0e0e0;padding:0 20px 20px}@keyframes expandDown{0%{max-height:0;opacity:0}to{max-height:1000px;opacity:1}}.notification-recipients{margin-bottom:20px}.notification-recipients strong{color:#202124;display:block;font-size:.9rem;margin-bottom:8px}.notification-recipients ul{list-style:none;margin:0;padding:0}.notification-recipients li{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;font-size:.875rem;gap:8px;margin-bottom:4px;padding:6px 12px}.notification-recipients li.recipient-sent{background:#e6f4ea;color:#137333}.notification-recipients li.recipient-failed{background:#fce8e6;color:#c5221f}.recipient-email{color:#5f6368;font-size:.8rem;margin-left:4px}.notification-message{margin-top:16px}.notification-message strong{color:#202124;display:block;font-size:.9rem;margin-bottom:8px}.notification-message pre{word-wrap:break-word;background:#f8f9fa;border-radius:6px;color:#202124;font-family:inherit;font-size:.875rem;line-height:1.6;margin:0;padding:12px;white-space:pre-wrap}@media (max-width:768px){.student-notifications{padding:16px}.notification-header{padding:12px 16px}.notification-meta{align-items:flex-start;flex-direction:column;gap:4px}.notification-body{padding:0 16px 16px}}.student-comments-container{margin:0 auto;max-width:900px;padding:1.5rem}.comments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.comments-header h3{color:#1e293b;font-size:1.5rem;font-weight:600;margin:0}.add-comment-btn{background:#475569;border:none;border-radius:8px;box-shadow:0 2px 8px #4755694d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.add-comment-btn:hover{background:#334155;box-shadow:0 4px 12px #47556966;transform:translateY(-1px)}.comment-form{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 12px #0000001a;margin-bottom:2rem;padding:1.5rem}.sentiment-buttons{display:flex;gap:1rem}.sentiment-btn{background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:500;padding:.75rem 1rem;transition:all .3s ease}.sentiment-btn.positive.active,.sentiment-btn.positive:hover{background:#d1fae5;border-color:#10b981;color:#065f46}.sentiment-btn.neutral.active,.sentiment-btn.neutral:hover{background:#f3f4f6;border-color:#6b7280;color:#374151}.sentiment-btn.negative.active,.sentiment-btn.negative:hover{background:#fee2e2;border-color:#ef4444;color:#991b1b}.comments-list{display:flex;flex-direction:column;gap:1.5rem}.no-comments{background:#fff;border:2px dashed #d1d5db;border-radius:12px;padding:4rem 2rem;text-align:center}.no-comments-icon{font-size:4rem;margin-bottom:1rem}.no-comments p{color:#6b7280;font-size:1.1rem;margin:0 0 .5rem}.no-comments small{color:#9ca3af;font-size:.9rem}.comment-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem;transition:all .3s ease}.comment-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.comment-header{justify-content:space-between;margin-bottom:1rem}.comment-header,.comment-meta{align-items:center;display:flex}.comment-meta{flex-wrap:wrap;gap:.75rem}.comment-type-badge{color:#fff}.comment-type-badge,.sentiment-badge{border-radius:6px;font-size:.85rem;font-weight:600;padding:.35rem .75rem}.sentiment-badge{background:#f3f4f6}.comment-actions{display:flex;gap:.5rem}.action-btn{background:#0000;font-size:1.2rem;padding:.35rem .5rem}.action-btn.edit:hover{background:#dbeafe}.comment-content{background:#f8fafc;border-left:3px solid #475569;border-radius:8px;color:#1e293b;font-size:1rem;line-height:1.6;margin-bottom:1rem;overflow-wrap:break-word;padding:1rem;white-space:pre-line}.comment-footer{color:#6b7280;display:flex;flex-wrap:wrap;font-size:.85rem;gap:1rem}.comment-author,.comment-date,.session-date{align-items:center;display:flex;gap:.35rem}.comments-loading{padding:3rem;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#475569;height:40px;margin:0 auto 1rem;width:40px}@media (max-width:768px){.student-comments-container{padding:1rem}.comments-header{align-items:flex-start;gap:1rem}.comment-footer,.comments-header,.sentiment-buttons{flex-direction:column}.comment-footer{gap:.5rem}}.student-profile{color:var(--color-text);margin:0 auto;max-width:1100px;padding:24px;text-align:left}.back-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;margin-bottom:16px;padding:6px 0}.back-link:hover{text-decoration:underline}.profile-hero{grid-gap:24px;align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);display:grid;gap:24px;grid-template-columns:auto 1fr auto;padding:24px}.hero-avatar{background:var(--color-bg-soft);border:3px solid var(--color-primary-soft);border-radius:50%;height:88px;object-fit:cover;width:88px}.hero-identity h1{font-size:1.6rem;font-weight:700;line-height:1.2;margin:0 0 10px}.hero-chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--color-bg-soft);border-radius:999px;color:var(--color-text-muted);font-size:.8rem;padding:4px 10px}.chip-level{background:var(--color-primary);color:#fff;font-weight:700}.hero-stats{display:flex;gap:12px}.hero-stat{background:var(--color-bg-soft);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:4px;min-width:110px;padding:12px 16px}.hero-stat-value{color:var(--color-primary);font-size:1.4rem;font-weight:700;white-space:nowrap}.hero-stat-value.is-small{font-size:1rem;line-height:1.75rem;text-transform:capitalize}.hero-stat-label{color:var(--color-text-muted);font-size:.75rem}.profile-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.profile-side{display:flex;flex-direction:column;gap:20px}@media (max-width:900px){.profile-hero{grid-template-columns:auto 1fr}.hero-stats{grid-column:1/-1}.hero-stat{flex:1 1;min-width:0}.profile-grid{grid-template-columns:1fr}}@media (max-width:600px){.student-profile{padding:16px}.profile-hero{gap:16px;padding:16px}.hero-avatar{height:64px;width:64px}.hero-identity h1{font-size:1.3rem}.hero-stats{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.hero-stat{padding:10px}.hero-stat-value{font-size:1.15rem}.hero-stat-value.is-small{font-size:.85rem;line-height:1.2;white-space:normal}}.parent-account-btn{margin-top:16px}.hourly-rate-selector{display:flex;gap:8px}.hourly-rate-selector>*{flex:1 1;min-width:0}.checkbox-group{margin-bottom:16px;text-align:left}.students-tab{margin:0 auto;max-width:1400px;padding:2rem}.tab-header{margin-bottom:2rem;min-height:60px;position:relative;z-index:1}.tab-header h2{color:#1e293b;font-size:1.75rem;font-weight:600}.header-actions .add-btn{background:#4a655a;border:none;border-radius:8px;box-shadow:0 2px 8px #4a655a4d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease;white-space:nowrap}.header-actions .add-btn:hover{background:#3d5449;box-shadow:0 4px 12px #4a655a66;transform:translateY(-1px)}.students-list,.students-tab .students-list,div.students-list{grid-gap:2.5rem!important;grid-row-gap:2.5rem!important;grid-column-gap:2.5rem!important;column-gap:2.5rem!important;display:grid!important;gap:2.5rem!important;grid-template-columns:repeat(auto-fit,minmax(280px,280px))!important;justify-content:start!important;margin:0!important;padding:0!important;row-gap:2.5rem!important;width:100%!important}.action-icon-btn{align-items:center;background:#fffc;border:none;border-radius:8px;box-shadow:0 2px 6px #0000001a;cursor:pointer;display:flex;height:32px;justify-content:center;padding:6px;transition:all .2s ease;width:32px}.action-icon-btn img{height:100%;object-fit:contain;width:100%}.action-icon-btn.edit:hover{background:#dbeafe;box-shadow:0 4px 12px #3b82f64d;transform:scale(1.05)}.action-icon-btn.delete:hover{background:#fee2e2;box-shadow:0 4px 12px #ef44444d;transform:scale(1.05)}@media (max-width:1200px){.students-list,.students-tab .students-list,div.students-list{gap:1.5rem!important;grid-template-columns:repeat(auto-fit,minmax(260px,260px))!important}}@media (max-width:900px){.students-list,.students-tab .students-list,div.students-list{gap:1.5rem!important;grid-template-columns:repeat(auto-fit,minmax(240px,240px))!important}}@media (max-width:768px){.students-list,.students-tab .students-list,div.students-list{gap:1.2rem!important;grid-template-columns:repeat(auto-fit,minmax(220px,220px))!important}.tab-header{align-items:flex-start;flex-direction:column;gap:1rem}}@media (max-width:480px){.students-list,.students-tab .students-list,div.students-list{gap:1rem!important;grid-template-columns:repeat(auto-fit,minmax(160px,160px))!important}.action-icon-btn{height:28px;width:28px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.classes-tab,.payments-management,.sessions-management-new,.students-tab{margin:0 auto;max-width:1400px;padding:2rem}.classes-tab .tab-header,.payments-management .payments-header,.sessions-management-new .management-header,.students-tab .tab-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem;min-height:60px;padding:0;position:relative;z-index:1}.classes-tab .tab-header h2,.payments-management .payments-header h2,.sessions-management-new .management-header h2,.students-tab .tab-header h2{color:#1e293b;font-size:1.75rem;font-weight:600;line-height:1.2;margin:0}.add-btn,.btn-add,.btn-generate,.btn-generate-custom,.header-actions .add-btn{background:#4a655a;border:none;border-radius:8px;box-shadow:0 2px 8px #4a655a4d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;line-height:1.5;padding:.75rem 1.5rem;transition:all .3s ease;white-space:nowrap}.add-btn:hover,.btn-add:hover,.btn-generate-custom:hover,.btn-generate:hover,.header-actions .add-btn:hover{background:#3d5449;box-shadow:0 4px 12px #4a655a66;transform:translateY(-1px)}.student-name h3{color:#5d4e37}.action-btn{font-size:12px}.session-actions{border-top:1px solid #f0f0f0;margin-top:15px;padding-top:15px}.session-info h3{color:#333;font-size:20px;font-weight:600;text-align:left}.day-name{color:#fff;font-size:14px;padding:12px;text-align:center}.status-badge{border-radius:12px;font-size:10px;font-weight:600;padding:2px 6px;text-transform:uppercase}.summary-stats{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-number{color:#8d7b68;font-size:24px}.stat-label{color:#666;font-size:12px}.amount{color:#333;font-size:24px;font-weight:700}.amount.paid{color:#2e7d32}.amount.pending{color:#f57c00}.student-name{color:#5d4e37}.payments-list{gap:12px}.payment-date{color:#666;font-size:14px;margin-bottom:2px}.payment-amount{color:#2e7d32}@media (max-width:768px){.summary-stats{grid-template-columns:1fr}}.search-input{background:#f8f6f3;border:2px solid #e0ddd8;border-radius:8px;flex:2 1;font-size:14px;padding:10px 15px;transition:border-color .3s ease}.search-input:focus{background:#fff;border-color:#4a655a;outline:none}.students-checkboxes{background:#f8f6f3;border:1px solid #e0ddd8;border-radius:8px;max-height:300px;padding:15px}.students-checkboxes .checkbox-label{align-items:center;border-radius:6px;cursor:pointer;display:flex;margin:5px 0;padding:8px 10px;transition:background-color .2s ease}.students-checkboxes .checkbox-label:hover{background-color:#4a655a1a}.students-checkboxes .checkbox-label input[type=checkbox]{accent-color:#4a655a;margin-right:12px;transform:scale(1.2)}.student-info{justify-content:space-between;width:100%}.student-level{background:#e0ddd8;border-radius:12px;color:#8d7b68;font-size:12px;font-weight:600;margin-left:10px;padding:2px 8px}.no-students{color:#8d7b68;font-style:italic;margin:0;padding:20px}.selected-count{color:#4a655a;font-weight:600}@media (max-width:768px){.search-input{flex:none;width:100%}}.panel-header-right{align-items:center;background:linear-gradient(135deg,#8d7b68,#a69080);border-bottom:1px solid #e0ddd8;color:#fff;display:flex;justify-content:space-between;padding:15px 20px}.panel-header-right h3{font-size:1.1rem;font-weight:600;margin:0}.close-panel{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;padding:0;transition:background-color .2s ease;width:30px}.close-panel:hover{background-color:#fff3}.notifications-management{min-height:600px}@media (max-width:1200px){.notifications-management{flex-direction:column;gap:15px}.compose-area{max-width:none!important;min-width:auto!important}}.no-data{color:#64748b;padding:3rem 2rem;text-align:center}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{-webkit-appearance:button;appearance:button;cursor:pointer;overflow:visible;text-transform:none}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:column;height:100%}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar :after,.rbc-calendar :before{box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.rbc-ellipsis,.rbc-event-label,.rbc-row-segment .rbc-event-content,.rbc-show-more{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{border-bottom:1px solid #ddd;flex:1 0;font-size:90%;font-weight:700;min-height:0;overflow:hidden;padding:0 3px;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{background:none;border:none;color:inherit;cursor:pointer;margin:0;padding:0;-webkit-user-select:text;user-select:text}.rbc-row-content{position:relative;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:flex;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{-ms-overflow-style:none;height:100%;overflow-y:scroll;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{align-items:center;display:flex;flex-wrap:wrap;font-size:16px;justify-content:center;margin-bottom:10px}.rbc-toolbar .rbc-toolbar-label{flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{background:none;background-image:none;border:1px solid #ccc;border-radius:4px;color:#373a3c;display:inline-block;line-height:normal;margin:0;padding:.375rem 1rem;text-align:center;vertical-align:middle;white-space:nowrap}.rbc-toolbar button.rbc-active,.rbc-toolbar button:active{background-color:#e6e6e6;background-image:none;border-color:#adadad;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.rbc-toolbar button.rbc-active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button:active:hover{background-color:#d4d4d4;border-color:#8c8c8c;color:#373a3c}.rbc-toolbar button:focus,.rbc-toolbar button:hover{background-color:#e6e6e6;border-color:#adadad;color:#373a3c}.rbc-toolbar button:hover{cursor:pointer}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width:767px){.rbc-toolbar{flex-direction:column}}.rbc-day-slot .rbc-background-event,.rbc-event{background-color:#3174ad;border:none;border-radius:5px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;margin:0;padding:2px 5px;text-align:left;width:100%}.rbc-day-slot .rbc-slot-selecting .rbc-background-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-slot-selecting .rbc-event{cursor:inherit;pointer-events:none}.rbc-day-slot .rbc-selected.rbc-background-event,.rbc-event.rbc-selected{background-color:#265985}.rbc-day-slot .rbc-background-event:focus,.rbc-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{box-shadow:-1px 1px 5px 0 #33333380}.rbc-event-continues-prior{border-bottom-left-radius:0;border-top-left-radius:0}.rbc-event-continues-after{border-bottom-right-radius:0;border-top-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:flex;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;color:#3174ad;font-size:85%;font-weight:700;height:auto;line-height:normal;z-index:4}.rbc-show-more:focus,.rbc-show-more:hover{color:#265985}.rbc-month-view{border:1px solid #ddd;display:flex;flex:1 0;flex-direction:column;height:100%;position:relative;user-select:none;-webkit-user-select:none;width:100%}.rbc-month-header{display:flex;flex-direction:row}.rbc-month-row{display:flex;flex:1 0;flex-basis:0px;flex-direction:column;height:100%;overflow:hidden;position:relative}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{flex:1 1;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:flex;flex:1 0;flex-direction:row;overflow:hidden;right:1px}.rbc-day-bg{flex:1 0}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{background-color:#fff;border:1px solid #e5e5e5;box-shadow:0 5px 15px #00000040;padding:10px;position:absolute;z-index:5}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:flex;flex:1 0;flex-direction:column;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{border:1px solid #ddd;border-collapse:collapse;border-spacing:0;width:100%}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{border-bottom:1px solid #ddd;padding:3px 5px;text-align:left}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:flex;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{flex:1 1}.rbc-timeslot-group{border-bottom:1px solid #ddd;display:flex;flex-flow:column nowrap;min-height:40px}.rbc-header-gutter,.rbc-time-gutter{flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;margin-right:10px;position:absolute;right:0;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-event{align-items:flex-start;border:1px solid #265985;display:flex;flex-flow:column wrap;max-height:100%;min-height:20px;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{word-wrap:break-word;flex:1 1;height:100%;line-height:1;min-height:1em;width:100%}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{background-color:#fff;border-right:1px solid #ddd;left:0;margin-right:-1px;position:-webkit-sticky;position:sticky;z-index:10}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{flex:1 0;flex-basis:0px;min-width:auto}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-day-bg,.rbc-time-view-resources .rbc-header{flex:1 1;flex-basis:0 px;width:140px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{flex:1 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{background-color:#00000080;color:#fff;font-size:75%;padding:3px;position:absolute;width:100%;z-index:10}.rbc-slot-selecting{cursor:move}.rbc-time-view{border:1px solid #ddd;display:flex;flex:1 1;flex-direction:column;min-height:0;width:100%}.rbc-time-view .rbc-time-gutter{text-align:right;white-space:nowrap}.rbc-time-view .rbc-allday-cell{box-sizing:initial;height:100%;position:relative;width:100%}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{box-sizing:border-box;min-height:20px}.rbc-time-header{display:flex;flex:0 0 auto;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-left:1px solid #ddd;border-right-width:0}.rbc-time-header>.rbc-row.rbc-row-resource,.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{border-left:1px solid #ddd;display:flex;flex:1 1;flex-direction:column;min-width:0}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;flex-shrink:0}.rbc-time-content{align-items:flex-start;border-top:2px solid #ddd;display:flex;flex:1 0;overflow-y:auto;position:relative;width:100%}.rbc-time-content>.rbc-time-gutter{flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{user-select:none;-webkit-user-select:none;width:100%}.rbc-current-time-indicator{background-color:#74ad31;height:1px;left:0;pointer-events:none;position:absolute;right:0;z-index:3}.rbc-resource-grouping.rbc-time-header-content{display:flex;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}:root{--cal-home:#4a655a;--cal-school:#a5673f}.sessions-calendar{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.sessions-calendar .rbc-calendar{color:var(--color-text);font-size:.875rem;height:calc(100vh - 300px);min-height:560px}.sessions-calendar .rbc-toolbar{gap:12px;margin-bottom:16px}.sessions-calendar .rbc-toolbar-label{font-size:1.05rem;font-weight:700;text-transform:capitalize}.sessions-calendar .rbc-btn-group button{background:#fff;border-color:var(--color-border);color:var(--color-text);cursor:pointer;font:inherit;font-weight:600;padding:7px 14px}.sessions-calendar .rbc-btn-group button:hover{background:var(--color-bg-soft)}.sessions-calendar .rbc-btn-group button.rbc-active,.sessions-calendar .rbc-btn-group button.rbc-active:hover{background:var(--color-primary);border-color:var(--color-primary);box-shadow:none;color:#fff}.sessions-calendar .rbc-day-slot .rbc-time-slot,.sessions-calendar .rbc-header,.sessions-calendar .rbc-time-content,.sessions-calendar .rbc-time-content>*+*>*,.sessions-calendar .rbc-time-header-content,.sessions-calendar .rbc-time-view,.sessions-calendar .rbc-timeslot-group{border-color:#eeebe7}.sessions-calendar .rbc-time-view{border-radius:var(--radius-sm);overflow:hidden}.sessions-calendar .rbc-header{color:var(--color-text-muted);font-weight:600;padding:10px 4px;text-transform:capitalize}.sessions-calendar .rbc-time-header .rbc-allday-cell{display:none}.sessions-calendar .rbc-time-gutter .rbc-label{color:var(--color-text-muted);font-size:.75rem}.sessions-calendar .rbc-today{background:#4a655a0f}.sessions-calendar .rbc-header.rbc-today{color:var(--color-primary)}.sessions-calendar .rbc-current-time-indicator{background:#c0392b;height:2px}.sessions-calendar .rbc-slot-selection{background:var(--color-primary-soft);color:var(--color-primary-dark)}.sessions-calendar .session-event{background:#4a655a;background:var(--cal-home);border:none;border-left:4px solid #0003;border-radius:6px;box-shadow:0 1px 2px #0000001f;color:#fff;padding:4px 6px}.sessions-calendar .session-event.place-best_school{background-color:#a5673f;background-color:var(--cal-school)}.sessions-calendar .session-event.is-group{border-left-color:#ffffffbf}.sessions-calendar .session-event.is-occasional{background-image:repeating-linear-gradient(-45deg,#ffffff24 0 6px,#0000 6px 12px)}.sessions-calendar .session-event.rbc-selected{outline:2px solid var(--color-text);outline-offset:1px}.sessions-calendar .rbc-event-label{font-size:.75rem;opacity:.9}.sessions-calendar .rbc-event-content{font-weight:600;line-height:1.25}.calendar-legend{color:var(--color-text-muted);flex-wrap:wrap;font-size:.8rem;margin-top:12px}.calendar-legend span{align-items:center;display:inline-flex;gap:6px}.legend-dot{background:#4a655a;background:var(--cal-home);border-radius:3px;display:inline-block;height:12px;width:12px}.legend-dot.place-best_school{background:#a5673f;background:var(--cal-school)}.legend-dot.is-group{background:#fff;border:1px solid var(--color-border);border-left:4px solid var(--color-text-muted)}.legend-dot.is-occasional{background-color:var(--color-text-muted);background-image:repeating-linear-gradient(-45deg,#ffffff80 0 2px,#0000 2px 4px)}@media (max-width:700px){.sessions-calendar{padding:8px}.sessions-calendar .rbc-toolbar{align-items:stretch;flex-direction:column}.sessions-calendar .rbc-btn-group{display:flex}.sessions-calendar .rbc-btn-group button{flex:1 1}.sessions-calendar .rbc-calendar{height:calc(100vh - 220px);min-height:480px}}.session-detail-list{grid-gap:10px 16px;display:grid;gap:10px 16px;grid-template-columns:-webkit-max-content 1fr;grid-template-columns:max-content 1fr;margin:0 0 20px;text-align:left}.session-detail-list dt{color:var(--color-text-muted);font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.session-detail-list dd{color:var(--color-text);margin:0}.session-detail-list dd:first-letter{text-transform:uppercase}.link-danger{background:none;border:none;color:var(--color-danger);cursor:pointer;font:inherit;font-size:.875rem;padding:0;text-decoration:underline}.place-dot{background:#4a655a;background:var(--cal-home);border-radius:50%;display:inline-block;height:10px;margin-right:2px;vertical-align:initial;width:10px}.place-dot.place-best_school{background:#a5673f;background:var(--cal-school)}.ao{text-align:left}.ao-toolbar{flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.ao-month,.ao-toolbar{align-items:center;display:flex}.ao-month{gap:8px}.ao-month-label{font-size:1.15rem;font-weight:600;min-width:150px;text-align:center}.ao-month-btn,.ao-month-label{color:#fff;color:var(--slate-chalk,#fff)}.ao-month-btn{background:#ffffff1a;border:1px solid #fff3;border:1px solid var(--slate-line,#fff3);border-radius:var(--radius-sm);cursor:pointer;font-size:1.3rem;height:36px;line-height:1;width:36px}.ao-month-btn:hover{background:#fff3}.ao-switch{background:#0003;border-radius:999px;display:inline-flex;padding:3px}.ao-switch button{background:none;border:none;border-radius:999px;color:#ffffffbf;color:var(--slate-chalk-soft,#ffffffbf);cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;padding:7px 16px}.ao-switch button.is-active{background:#fff;background:var(--slate-chalk,#fff);color:var(--color-primary-dark)}.ao-empty{color:var(--slate-chalk-soft)}.ao-muted{color:var(--color-text-muted);font-size:.8rem}.ao-cycle{display:flex;gap:6px;margin:14px 0 10px}.ao-dot{border-radius:999px;flex:1 1;height:8px;max-width:48px}.ao-dot.is-empty{background:var(--color-bg-soft);border:1px dashed var(--color-border)}.ao-dot.is-paid{background:var(--color-primary)}.ao-dot.is-due{background:#d9822b}.ao-amounts{display:flex;flex-direction:column;gap:2px}.ao-attendees,.ao-records{list-style:none;margin:12px 0 0;padding:0}.ao-attendees li,.ao-records li{align-items:center;border-top:1px solid var(--color-border);display:flex;font-size:.85rem;gap:8px;padding:6px 0}.ao-record-date{color:var(--color-text-muted);flex-shrink:0;font-weight:600;width:52px}.ao-record-title{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ao-pill{border-radius:999px;flex-shrink:0;font-size:.75rem;font-weight:600;padding:2px 8px}.ao-pill.is-present{background:var(--color-primary-soft);color:var(--color-primary-dark)}.ao-pill.is-absent{background:var(--color-bg-soft);color:var(--color-text-muted)}.ao-pill.is-paid{background:var(--color-primary);color:#fff}.ao-pill.is-due{background:#fbe7d1;color:#8a4b0f}.ao-sessions{display:flex;flex-direction:column;gap:12px}.ao-session-head{align-items:center;display:flex;gap:14px}.ao-session-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.ao-attendees li:first-child{margin-top:4px}.ao-toolbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.ao-call-btn{background:#fff;background:var(--slate-chalk,#fff);border:none;border-radius:var(--radius-sm);box-shadow:0 2px 8px #0003;color:var(--color-primary-dark);cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;padding:9px 18px}.ao-call-btn:hover{background:#fff}.ao-card.is-editing,.ao-session.is-editing{outline:3px solid var(--color-primary);outline:3px solid var(--slate-chalk,var(--color-primary));outline-offset:2px}.ao-check{align-items:center;color:var(--color-text);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:.8rem;font-weight:600;gap:5px;-webkit-user-select:none;user-select:none}.ao-check input{accent-color:var(--color-primary);cursor:pointer;height:16px;margin:0;width:16px}.ao-check.is-disabled{color:var(--color-text-muted);cursor:default;opacity:.6}.ao-pill.is-offered{background:#efe9f8;color:#6b4fa0}.ao-edit-actions{display:flex;gap:8px}.ao-session-foot{border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;margin-top:12px;padding-top:12px}.ao-status{align-self:flex-start;border-radius:999px;flex-shrink:0;font-size:.8rem;font-weight:700;padding:4px 12px}.ao-status.is-paid{background:var(--color-primary);color:#fff}.ao-status.is-due{background:#fbe7d1;color:#8a4b0f}.ao-status.is-offered{background:#efe9f8;color:#6b4fa0}.ao-status.is-absent{background:var(--color-bg-soft);color:var(--color-text-muted)}.ao-choose{list-style:none;margin:0;padding:0}.ao-choose-item{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;display:flex;font:inherit;gap:12px;padding:10px;text-align:left;width:100%}.ao-choose-item:hover{background:var(--color-bg-soft)}.ao-choose-day{display:flex;flex-direction:column;flex-shrink:0;font-weight:600;text-transform:capitalize;width:92px}.ao-choose-day small{color:var(--color-text-muted);font-weight:500}.ao-choose-hint{margin:12px 0 0}.ao-pay-summary{color:var(--color-text-muted);font-size:.9rem;margin:0 0 16px}@media (max-width:600px){.ao-toolbar{align-items:stretch;flex-direction:column}.ao-month,.ao-toolbar-actions{justify-content:space-between}}.ao-card .entity-footer>:last-child{margin-left:auto}.context-menu{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #0000002e;min-width:200px;padding:6px;position:fixed;text-align:left;z-index:10500}.context-menu-title{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:.8rem;font-weight:700;margin-bottom:4px;max-width:260px;overflow:hidden;padding:6px 10px 8px;text-overflow:ellipsis;white-space:nowrap}.context-menu-item{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;display:flex;font:inherit;font-size:.9rem;gap:10px;padding:8px 10px;width:100%}.context-menu-item svg{color:var(--color-text-muted)}.context-menu-item:focus-visible,.context-menu-item:hover{background:var(--color-bg-soft);outline:none}.context-menu-item.is-danger,.context-menu-item.is-danger svg{color:var(--color-danger)}.context-menu-item.is-danger:hover{background:var(--color-danger-soft)}.sessions-management-new{margin:0 auto;max-width:1400px;padding:2rem}.management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem;min-height:60px;position:relative;z-index:1}.management-header h2{color:#1e293b;font-size:1.75rem;font-weight:600;margin:0}.session-form{padding:24px}.sessions-list>h3{color:#1e293b;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.sessions-section h4{align-items:center;color:#475569;display:flex;font-size:1.25rem;font-weight:600;gap:8px;margin-bottom:1rem}.sessions-grid{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,320px));justify-content:start}.session-card{background:#d1d5db;border-radius:16px;display:flex;flex-direction:column;height:180px;padding:1rem;position:relative;transition:all .3s ease}.session-card:hover{background:#c4c8cf;transform:scale(1.02)}.session-card.fixed{border-left:4px solid #475569}.session-card.occasional{border-left:4px solid #64748b}.session-header{align-items:center;display:flex;flex:0 0 auto;gap:.75rem;margin-bottom:.75rem}.session-type{font-size:1.5rem}.session-details{display:flex;flex:1 1;margin-bottom:.75rem;overflow-y:auto}.btn-attendance{background:#4a655a}.btn-attendance:hover{background:#3a4f42}.session-actions{gap:.5rem;margin-top:auto}.btn-attendance{align-items:center;background:#456055;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex:1 1;font-size:.875rem;font-weight:500;gap:6px;justify-content:center;padding:.625rem;transition:all .3s ease}.btn-attendance:hover{background:#1f2a24;transform:translateY(-1px)}.no-sessions{background:#fff;border:2px dashed #dadce0;border-radius:12px;padding:60px 20px;text-align:center}.no-sessions p{color:#5f6368;font-size:1.2rem;margin-bottom:20px}@media (max-width:768px){.sessions-management-new{padding:20px 16px}.management-header{align-items:flex-start;flex-direction:column;gap:16px}.sessions-grid{grid-template-columns:1fr}}.day-name{display:block;font-size:.875rem;font-weight:600}.session-time{color:#4a655a;font-size:.75rem;font-weight:700;margin-bottom:2px}.session-info{display:flex;justify-content:center;margin-bottom:4px}.session-duration{color:#64748b;font-size:.7rem;margin-top:2px}.payments-management{background-color:initial;margin:0 auto;max-width:1400px;min-height:100vh;padding:2rem}.payments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem;min-height:60px;position:relative;z-index:1}.payments-header h2{color:#5d4e37;font-size:1.75rem;font-weight:600;margin:0}.payments-loading{color:#8d7b68;font-size:1.125rem;padding:3rem;text-align:center}.payments-filters{align-items:flex-end;background:#fff;border-radius:12px;box-shadow:0 2px 8px #8d7b681a;display:flex;gap:1rem;margin-bottom:2rem;padding:1.5rem}.filter-group{display:flex;flex:1 1;flex-direction:column;gap:.5rem;min-width:200px}.filter-group label{color:#475569;font-size:.875rem;font-weight:500}.filter-group select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#1e293b;cursor:pointer;font-size:.9375rem;padding:.625rem}.btn-reset{background:#e2e8f0;border:none;border-radius:8px;color:#475569;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .3s ease;white-space:nowrap}.btn-reset:hover{background:#cbd5e1}.btn-add{background:#4a655a;border:none;border-radius:8px;box-shadow:0 2px 8px #4a655a4d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease;white-space:nowrap}.btn-add:hover{background:#3d5449;box-shadow:0 4px 12px #4a655a66;transform:translateY(-1px)}.header-actions{gap:1rem;position:relative;z-index:1}.btn-generate,.btn-generate-custom{background:#4a655a;border:none;border-radius:8px;box-shadow:0 2px 8px #4a655a4d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease;white-space:nowrap}.btn-generate-custom:hover,.btn-generate:hover{background:#3d5449;box-shadow:0 4px 12px #4a655a66;transform:translateY(-1px)}.payments-list{margin-top:2rem}.no-payments{background:#f1f5f9;border:2px dashed #cbd5e1;border-radius:12px;color:#64748b;font-size:1rem;padding:3rem 1.25rem;text-align:center}.payments-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(300px,350px));justify-content:start}.student-avatar{background:#fff;flex-shrink:0;height:48px;overflow:hidden;width:48px}.student-avatar img{height:100%;object-fit:cover;width:100%}.avatar-placeholder{align-items:center;background:#475569;color:#fff;display:flex;font-size:1.25rem;font-weight:600;height:100%;justify-content:center;width:100%}.student-name{color:#1e293b;font-size:1rem;font-weight:600}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.payment-summary{background:#f8fafc;border-left:4px solid #475569;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.payment-summary p{color:#475569;margin:.5rem 0}.payment-summary strong{color:#1e293b}.history-header{margin-bottom:1.5rem}.history-header h4{color:#1e293b;font-size:1.125rem;font-weight:600;margin:0 0 .75rem}.history-summary{color:#64748b;display:flex;flex-wrap:wrap;font-size:.9375rem;gap:1.5rem}.history-list{gap:1rem}.history-item{background:#f8fafc;border-radius:8px;padding:1rem;position:relative}.history-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.payment-date{color:#1e293b;font-size:.9375rem;font-weight:600}.payment-amount{color:#10b981;font-size:1.125rem}.history-item-details{color:#64748b;display:flex;flex-wrap:wrap;font-size:.875rem;gap:1rem;margin-bottom:.5rem}.history-item-notes{background:#fff;border-radius:4px;color:#475569;font-size:.875rem;font-style:italic;margin-top:.5rem;padding:.5rem}.btn-delete-history{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8125rem;margin-top:.75rem;padding:.5rem .75rem;transition:all .3s ease}.btn-delete-history:hover{background:#dc2626;transform:translateY(-1px)}.no-history{color:#94a3b8;font-style:italic;padding:2rem}@media (max-width:768px){.payments-filters{flex-direction:column}.filter-group{min-width:100%}.payments-grid{grid-template-columns:1fr}}@media (max-width:600px){.header-actions{flex-direction:column}}.payment-help{background:var(--color-bg-soft);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.85rem;margin:0 0 16px;padding:10px 12px;text-align:left}.payment-months{display:flex;flex-direction:column;gap:28px}.payment-month-title{align-items:center;color:var(--color-text);color:var(--slate-chalk,var(--color-text));display:flex;font-size:1rem;font-weight:600;gap:16px;margin:0 0 16px;white-space:nowrap}.payment-month-title:after{background:var(--color-border);background:var(--slate-line,var(--color-border));content:"";flex:1 1;height:1px}.session-checks{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:12px 0 4px;padding:0}.session-check{align-items:center;display:flex;flex-direction:column;gap:4px;min-width:44px}.session-check-box{align-items:center;border:2px solid var(--color-border);border-radius:6px;color:#fff;display:inline-flex;height:24px;justify-content:center;width:24px}.session-check.is-paid .session-check-box{background:var(--color-primary);border-color:var(--color-primary)}.session-check.is-due .session-check-box{background:#d9822b;border-color:#d9822b}.session-check.is-upcoming .session-check-box{background:var(--color-bg-soft);border-style:dashed}.session-check-label{color:var(--color-text-muted);font-size:.72rem;font-weight:600;white-space:nowrap}.emails-management{background:var(--color-bg-soft);margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.emails-header{margin-bottom:30px}.emails-header h1{color:#456055;font-size:28px;margin-bottom:20px}.email-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.stat-card{border:3px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000001a;transition:all .2s}.stat-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.stat-card.unread{border-color:var(--color-primary)}.stat-card.high-priority{border-color:#ef4444}.stat-card.today{border-color:#10b981}.stat-number{color:#456055;margin-bottom:8px}.stat-label{color:#8d7b67;font-size:14px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.email-filters{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:20px}.filter-select,.search-input{background:#fff;border:2px solid var(--color-border);border-radius:8px;font-size:14px;padding:12px 16px;transition:all .2s}.search-input{flex:1 1;min-width:200px}.filter-select:focus,.search-input:focus{border-color:#456055;box-shadow:0 0 0 3px #4560551a;outline:none}.emails-list{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.email-item{border-bottom:1px solid var(--color-bg-soft);cursor:pointer;padding:20px;position:relative;transition:all .2s}.email-item:last-child{border-bottom:none}.email-item:hover{background:var(--color-bg-soft)}.email-item.unread{background:linear-gradient(90deg,var(--color-primary-soft) 0,#fff 100%);border-left:4px solid var(--color-primary)}.email-item.unread:before{background:var(--color-primary);border-radius:50%;content:"";height:8px;left:12px;position:absolute;top:24px;width:8px}.email-header{align-items:center;display:flex;gap:16px;margin-bottom:8px}.email-from{flex-shrink:0;min-width:200px}.email-from strong{color:var(--color-text);font-size:14px;font-weight:500}.email-subject-line{align-items:center;display:flex;flex:1 1;min-width:0}.subject-text{color:#456055;font-weight:600;white-space:nowrap}.preview-separator{color:#8d7b67;margin:0 4px}.email-preview-inline{color:var(--color-text-muted);flex:1 1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.email-context{margin-bottom:8px;margin-left:216px}.related-info{background:var(--color-bg-soft);border-radius:4px;color:#8d7b67;display:inline-block;font-size:12px;padding:2px 8px}.email-meta{align-items:center;display:flex;flex-shrink:0;gap:12px}.priority{font-size:16px}.date{color:#8d7b67;font-size:14px;font-weight:500;min-width:60px;text-align:right}.email-tags{display:flex;flex-wrap:wrap;gap:8px;margin-left:216px;margin-top:4px}.tag{border-radius:12px;color:#fff;font-size:11px;font-weight:500;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.email-actions{display:flex;gap:8px;opacity:0;transition:opacity .2s}.email-item:hover .email-actions{opacity:1}.action-btn{background:var(--color-bg-soft);padding:8px 12px;transition:all .2s}.action-btn:hover{background:var(--color-border);transform:translateY(-1px)}.action-btn.delete:hover{background:#fee2e2;color:#dc2626}.pagination{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:16px;justify-content:center;margin-top:24px;padding:20px}.pagination button{background:#456055;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:12px 20px;transition:all .2s}.pagination button:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px)}.pagination button:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed;transform:none}.loading,.no-emails{color:#8d7b67;font-size:16px;padding:60px 20px;text-align:center}.btn-reply,.btn-send{background:#456055;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:12px 24px;transition:all .2s}.btn-reply:hover,.btn-send:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.btn-read{background:var(--color-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:12px 24px;transition:all .2s}.btn-read:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.email-detail-meta{background:var(--color-bg-soft);border-radius:8px;margin-bottom:20px;padding:16px}.email-detail-meta p{color:var(--color-text);font-size:14px;margin:0 0 8px}.email-detail-meta p:last-child{margin-bottom:0}.email-detail-body{color:var(--color-text);line-height:1.6}.email-detail-body pre{font-family:inherit;margin:0;white-space:pre-wrap}@media (max-width:768px){.emails-management{padding:15px}.email-stats{grid-template-columns:repeat(2,1fr)}.email-filters{flex-direction:column}.filter-select,.search-input{min-width:auto;width:100%}.email-item{padding:16px}.email-header{flex-direction:column;gap:8px}.email-meta{align-self:flex-start}.email-actions{margin-top:12px;opacity:1}}.notifications-page{margin:0 auto;max-width:1400px;padding:0 24px 24px;text-align:left}.notifications-page>.page-tabs{margin-bottom:20px;margin-top:8px}.msg-layout{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:300px minmax(0,1fr)}.msg-side{display:flex;flex-direction:column;gap:20px}.msg-panel{padding:16px}.msg-panel-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.msg-panel-title{color:var(--color-text-muted);font-size:.75rem;font-weight:700;letter-spacing:.05em;margin:0 0 8px;text-transform:uppercase}.msg-panel-head .msg-panel-title{margin:0}.msg-hint{color:var(--color-text-muted);font-size:.8rem}.msg-option{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;display:flex;font:inherit;font-size:.95rem;gap:10px;padding:10px;text-align:left;width:100%}.msg-option svg{color:var(--color-primary)}.msg-option.is-open,.msg-option:hover:not(:disabled){background:var(--color-bg-soft)}.msg-option:disabled{cursor:default;opacity:.5}.msg-count{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary);font-size:.8rem;font-weight:600;margin-left:auto;min-width:24px;padding:1px 8px;text-align:center}.msg-groups{border-left:2px solid var(--color-border);display:flex;flex-direction:column;margin:4px 0 0 12px;padding-left:12px}.msg-group{grid-gap:8px;align-items:center;cursor:pointer;display:grid;font-size:.9rem;gap:8px;grid-template-columns:auto 1fr auto;padding:6px 4px}.msg-group input{accent-color:var(--color-primary)}.msg-templates{list-style:none;margin:0;padding:0}.msg-template{align-items:center;border-radius:var(--radius-sm);display:flex;gap:2px}.msg-template:hover{background:var(--color-bg-soft)}.msg-template-apply{background:none;border:none;color:var(--color-text);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font:inherit;min-width:0;padding:8px 10px;text-align:left}.msg-template-name{font-size:.9rem;font-weight:600}.msg-template-subject{color:var(--color-text-muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-icon-btn{background:none;border:none;border-radius:6px;color:var(--color-text-muted);cursor:pointer;display:grid;flex-shrink:0;height:30px;opacity:0;place-items:center;width:30px}.msg-icon-btn:focus-visible,.msg-template:hover .msg-icon-btn{opacity:1}.msg-icon-btn:hover{background:#fff;color:var(--color-primary)}.msg-compose{display:flex;flex-direction:column;overflow:visible;padding:0}.msg-compose-title{font-size:1.1rem;font-weight:700;margin:0;padding:18px 24px}.msg-compose-title,.msg-field{border-bottom:1px solid var(--color-border)}.msg-field{align-items:center;display:flex;gap:12px;padding:8px 24px}.msg-field>label{color:var(--color-text-muted);flex-shrink:0;font-size:.875rem;font-weight:600;width:52px}.msg-field>input,.msg-to input{background:none;border:none;color:var(--color-text);flex:1 1;font:inherit;height:36px;min-width:140px;outline:none;padding:0}.msg-to{display:flex;flex:1 1;flex-wrap:wrap;gap:6px;min-width:0;position:relative}.msg-chip,.msg-to{align-items:center}.msg-chip{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary-dark);display:inline-flex;font-size:.85rem;font-weight:500;gap:4px;padding:3px 4px 3px 10px}.msg-chip button{background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;font-size:1rem;height:20px;line-height:1;padding:0;width:20px}.msg-chip button:hover{background:#00000014}.msg-clear{background:none;border:none;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;font:inherit;font-size:.8rem;padding:4px 8px}.msg-clear:hover{color:var(--color-danger)}.msg-results{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 30px #0000001f;left:0;list-style:none;margin:0;max-height:320px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:20}.msg-result{align-items:center;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;font:inherit;gap:12px;padding:8px 10px;text-align:left;width:100%}.msg-result:focus-visible,.msg-result:hover{background:var(--color-bg-soft);outline:none}.msg-result-text{display:flex;flex-direction:column;min-width:0}.msg-result-name{color:var(--color-text);font-weight:600}.msg-no-result{padding:10px}.msg-greeting{color:var(--color-text-muted);font-size:.95rem;margin:0;padding:20px 24px 0;-webkit-user-select:none;user-select:none}.msg-body{background:none;border:none;color:var(--color-text);flex:1 1;font:inherit;font-size:.95rem;line-height:1.6;min-height:300px;outline:none;padding:12px 24px 20px;resize:vertical}.msg-footer{background:var(--color-bg-soft);border-radius:0 0 var(--radius-md) var(--radius-md);border-top:1px solid var(--color-border);display:flex;gap:12px;justify-content:space-between;padding:14px 24px}@media (max-width:900px){.msg-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.notifications-page{padding:0}.msg-body,.msg-compose-title,.msg-field,.msg-footer,.msg-greeting{padding-left:16px;padding-right:16px}.msg-footer{flex-direction:column-reverse}.msg-icon-btn{opacity:1}}.student-search{position:relative;width:280px}.ss-field{align-items:center;display:flex;position:relative}.ss-icon{color:#ffffffbf;height:16px;left:12px;pointer-events:none;position:absolute;width:16px}.ss-input{background:#ffffff1f;border:1px solid #ffffff38;border-radius:999px;color:#fff;font:inherit;font-size:.9rem;height:40px;outline:none;padding:0 14px 0 36px;transition:background-color .15s,border-color .15s;width:100%}.ss-input::placeholder{color:#ffffffb3}.ss-input:focus{background:#fff;border-color:#fff;color:var(--color-text)}.ss-field:focus-within .ss-icon,.ss-input:focus::placeholder{color:var(--color-text-muted)}.ss-results{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000029;left:0;max-height:320px;overflow-y:auto;padding:6px;position:absolute;right:0;text-align:left;top:calc(100% + 8px);z-index:10000}.ss-result{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:10px;padding:8px 10px}.ss-result:hover{background:var(--color-bg-soft)}.ss-info{min-width:0}.ss-name{color:var(--color-text);font-weight:600}.ss-details{font-size:.8rem}.ss-details,.ss-empty{color:var(--color-text-muted)}.ss-empty{font-size:.9rem;padding:14px 10px}@media (max-width:600px){.student-search{flex:1 1;width:auto}.app-header-actions:has(.student-search){flex:1 1}}.session-tabs-nav{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:0;margin-bottom:20px;padding:4px}.tab-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#8d7b68;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:12px 20px;transition:all .2s}.tab-btn:hover{background:#f0ebe6;color:#5d4e37}.tab-btn.active{background:#4a655a;color:#fff;font-weight:600}.attendance-tab-content,.history-tab-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px}.attendance-content h3{color:#4a655a;font-size:18px;margin-bottom:20px}.new-session-form{background:#f8f6f3;border-radius:8px;margin-bottom:20px;padding:20px}.new-session-form h4{color:#4a655a;margin-bottom:16px}.participants-list{background:#fff;border:1px solid #d4c9c1;border-radius:6px;margin:16px 0;padding:12px}.participants-list h5{color:#4a655a;margin:0 0 8px}.btn-create-session{background:#4a655a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:background .2s}.btn-create-session:hover{background:#3e5449}.session-history-page{background:#f8f6f3;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.back-btn{align-items:center;background:#525f71;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:10px;padding:10px 30px;transition:all .3s ease}.back-btn:hover{transform:translateY(-2px)}.add-session-btn{align-items:center;background:#4a655a;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;padding:12px 24px;transition:all .3s ease}.add-session-btn:hover{background:#3a5148;transform:translateY(-2px)}.session-info h1{color:#5d4e37;font-size:24px;margin:0 0 8px}.session-details{color:#8d7b68;font-size:16px;margin:0}.history-content{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:30px}.no-history{color:#8d7b68}.no-history-icon{font-size:64px;margin-bottom:20px}.no-history h3{color:#5d4e37;font-size:24px}.no-history p{font-size:16px}.sessions-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.history-session-card{background:#f8f6f3;border:2px solid #e0ddd8;border-radius:12px;padding:20px;transition:all .3s ease}.history-session-card:hover{border-color:#4a655a;box-shadow:0 8px 20px #0000001a;transform:translateY(-3px)}.session-date{align-items:center;border-bottom:1px solid #e0ddd8;display:flex;gap:15px;margin-bottom:15px;padding-bottom:15px}.date-info .day{font-size:18px;font-weight:700;line-height:1}.date-info .month{font-size:12px;margin-top:2px;text-transform:uppercase}.session-meta{flex:1 1}.session-number{background:#8d7b68;border-radius:12px;color:#fff;display:block;font-size:12px;font-weight:600;margin-bottom:4px;padding:3px 8px;width:-webkit-fit-content;width:fit-content}.weekday{color:#5d4e37;font-size:14px;font-weight:500;text-transform:capitalize}.session-stats{margin-bottom:15px}.individual-stats .status{align-items:center;border-radius:20px;display:inline-flex;font-size:14px;font-weight:600;gap:6px;padding:6px 12px}.status.present{background:#4a655a1a;color:#4a655a}.status.absent{background:#ef44441a;color:#ef4444}.group-stats{display:flex;flex-direction:column;gap:8px}.attendance-summary{align-items:baseline;color:#5d4e37;display:flex;font-weight:600;gap:4px}.present-count{color:#4a655a}.total-count{color:#8d7b68;font-size:16px}.label{color:#8d7b68;font-weight:500}.attendance-bar{background:#e0ddd8;border-radius:3px;height:6px;overflow:hidden;width:100%}.attendance-fill{background:linear-gradient(90deg,#4a655a,#5a7865);height:100%;transition:width .3s ease}.session-actions{justify-content:center}.attendance-btn{align-items:center;background:#4a655a;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s ease}.attendance-btn:hover{background:#3a5148;transform:translateY(-2px)}.add-session-modal{max-height:80vh;max-width:600px}.students-attendance-list{background:#f8f6f3;border-radius:6px;display:flex;flex-direction:column;gap:10px;max-height:200px;overflow-y:auto;padding:10px}.attendance-list{overflow-y:auto;padding:20px 0}.student-attendance-item{align-items:center;background:#f8f6f3;border:1px solid #e0ddd8;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:10px;padding:15px}.student-info{align-items:center;display:flex;gap:12px}.student-avatar{background:linear-gradient(135deg,#8d7b68,#a69080);font-size:14px;height:40px;width:40px}.student-name .name{color:#5d4e37;font-weight:600}.attendance-toggle{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s ease}.attendance-toggle.present{background:#4a655a1a;border:2px solid #4a655a;color:#4a655a}.attendance-toggle.absent{background:#ef44441a;border:2px solid #ef4444;color:#ef4444}.attendance-toggle:hover{transform:scale(1.05)}.close-btn{background:#8d7b68}.close-btn,.save-btn{border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px}.save-btn{background:#4a655a}.close-btn:hover,.save-btn:hover{transform:translateY(-2px)}@media (max-width:768px){.session-history-page{padding:10px}.history-header{align-items:flex-start;flex-direction:column;gap:15px}.sessions-grid{grid-template-columns:1fr}}.date-month{color:#64748b;font-size:.8rem;font-weight:600;margin-top:.25rem;text-transform:uppercase}.attendance-badge{flex-shrink:0}.attendance-item{grid-gap:20px;align-items:center;border:2px solid #e0ddd8;border-radius:12px;display:grid;gap:20px;grid-template-columns:auto 1fr auto;padding:20px;transition:all .3s ease}.attendance-item:hover{box-shadow:0 8px 20px #0000001a;transform:translateY(-2px)}.attendance-item.present{background:#4a655a0d;border-color:#4a655a33}.attendance-item.absent{background:#ef44440d;border-color:#ef444433}.att-sheet{margin:0 auto;max-width:760px;text-align:left}.att-header{align-items:flex-end;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:24px;justify-content:space-between;margin-bottom:16px;padding:24px}.att-eyebrow{color:var(--color-accent);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.att-title{color:var(--color-text);font-size:1.5rem;font-weight:700;margin:4px 0 12px}.att-meta{display:flex;flex-wrap:wrap;gap:6px}.att-chip{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary);font-size:.8rem;font-weight:600;padding:3px 10px}.att-date{display:flex;flex-direction:column;flex-shrink:0;gap:6px}.att-date label{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.att-date input{background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;height:40px;padding:0 12px}.att-date input:focus{border-color:var(--color-primary);outline:none}.att-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.att-summary{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:20px 24px 12px}.att-count{align-items:baseline;display:flex;gap:4px}.att-count .present-count{color:var(--color-primary);font-size:1.75rem;font-weight:700}.att-count .total-count,.att-count-sep{color:var(--color-text-muted);font-size:1.25rem;font-weight:600}.att-count-label{color:var(--color-text-muted);margin-left:6px}.att-progress{background:var(--color-bg-soft);border-radius:999px;height:4px;margin:0 24px 12px;overflow:hidden}.att-progress span{background:var(--color-primary);border-radius:inherit;display:block;height:100%;transition:width .25s ease}.att-list{list-style:none;margin:0;padding:0 12px}.att-row{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:14px;padding:12px;transition:background .15s;-webkit-user-select:none;user-select:none}.att-row:hover{background:var(--color-bg-soft)}.att-row input{opacity:0;pointer-events:none;position:absolute}.att-row:has(input:focus-visible){outline:2px solid var(--color-primary);outline-offset:-2px}.att-name{color:var(--color-text);flex:1 1;font-weight:500}.att-status{background:#fff;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-muted);font-size:.8rem;font-weight:600;min-width:84px;padding:6px 12px;text-align:center;transition:all .15s}.att-row.is-present .att-status{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.att-empty{color:var(--color-text-muted);margin:0;padding:40px 24px;text-align:center}.att-footer{align-items:flex-end;background:var(--color-bg-soft);border-top:1px solid var(--color-border);display:flex;flex-direction:column;margin-top:12px;padding:16px 24px}.att-footer .form-error{align-self:stretch}.att-save{min-width:160px}@media (max-width:600px){.att-header{align-items:stretch;flex-direction:column;padding:20px}.att-footer,.att-summary{padding-left:16px;padding-right:16px}.att-progress{margin-left:16px;margin-right:16px}.att-list{padding:0 4px}.att-save{width:100%}}.attendance-history{background:#f9fafb;margin:0 auto;max-width:1000px;min-height:100vh;padding:20px}.history-header{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;gap:20px;margin-bottom:30px;padding:20px}.btn-back,.history-header{align-items:center;display:flex}.btn-back{background:#8d7b67;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;gap:8px;min-width:100px;padding:12px 20px;transition:all .2s}.btn-back:hover{background:#53483b;transform:translateY(-1px)}.session-info{flex:1 1}.session-info h2{color:#456055;font-size:24px;font-weight:700;margin:0 0 8px}.loading{color:#8d7b67;height:60vh}.history-list{display:flex;flex-direction:column;gap:20px}.no-history{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:60px 20px;text-align:center}.no-history img{margin-bottom:20px;opacity:.6}.no-history h3{color:#456055;font-size:20px;margin:0 0 10px}.no-history p{color:#8d7b67;margin:0}.item-header{border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between}.date-info{display:flex;flex-direction:row;gap:4px}.date-main{color:#111827;font-size:16px;font-weight:600}.time{font-size:14px}.attendance-stats{align-items:center;display:flex;font-weight:600;gap:8px}.present-count{color:#456055;font-size:18px}.separator{color:#8d7b67;font-size:16px}.total-count{color:#8d7b67;font-size:18px}.label{color:#111827;font-size:14px;margin-left:4px}.percentage{background:#456055;border-radius:6px;color:#fff;font-size:12px;font-weight:700;margin-left:8px;padding:4px 8px}.students-list{display:flex;flex-wrap:wrap;gap:8px}.student-item{align-items:center;border:1px solid #e5e7eb;border-radius:8px;display:inline-flex;justify-content:center;width:-webkit-fit-content;width:fit-content}.student-item.present{background:#4560550d;border-color:#456055}.student-item.absent{background:#8d7b670d;border-color:#8d7b67}.student-name{color:#111827;font-weight:500}.status{font-size:14px;font-weight:600}.status.present{color:#456055}.status.absent{color:#8d7b67}@media (max-width:768px){.attendance-history{padding:15px}.history-header{flex-direction:column;gap:15px;text-align:center}.btn-back{align-self:flex-start}.item-header{gap:12px}.item-header,.student-item{flex-direction:column;text-align:center}}.ov{text-align:left}.ov-greeting{border-bottom:1px solid var(--slate-line);margin-bottom:24px;padding-bottom:16px}.ov-greeting h2{color:var(--slate-chalk);font-size:1.75rem;font-weight:600;margin:0}.ov-greeting p{color:var(--slate-chalk-soft);margin:4px 0 0}.ov-greeting p:first-letter{text-transform:uppercase}.ov-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.ov-stat{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:4px;padding:18px 20px;text-align:left;transition:transform .15s,box-shadow .15s}.ov-stat:hover{box-shadow:0 8px 20px #00000026;transform:translateY(-2px)}.ov-stat-value{color:var(--color-primary);font-size:1.6rem;font-weight:700;line-height:1.2;white-space:nowrap}.ov-stat-value.is-due{color:var(--color-danger)}.ov-stat-label{color:var(--color-text-muted);font-size:.85rem}.ov-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.ov-column{display:flex;flex-direction:column;gap:20px}.ov-panel-head{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.ov-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;padding:0}.ov-link:hover{text-decoration:underline}.ov-rows,.ov-today{list-style:none;margin:0;padding:0}.ov-today-item{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:16px;padding:12px 0}.ov-row:last-child,.ov-today-item:last-child{border-bottom:none}.ov-today-item.is-past .ov-time{color:var(--color-text-muted)}.ov-time{color:var(--color-primary);display:flex;flex-direction:column;flex-shrink:0;font-size:1.05rem;font-weight:700;width:52px}.ov-time small{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.ov-row-main,.ov-today-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.ov-row-main span,.ov-today-info span{color:var(--color-text-muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-row{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:12px;padding:10px 0}.ov-row-amount{font-weight:700;white-space:nowrap}.ov-hint{color:var(--color-text-muted);font-size:.8rem;margin:12px 0 0}@media (max-width:1000px){.ov-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:480px){.ov-stats{gap:10px}.ov-stat{padding:14px}.ov-stat-value{font-size:1.25rem}}.teacher-dashboard{background-color:initial;min-height:100vh}.loading{align-items:center;color:#8d7b68;display:flex;height:100vh;justify-content:center}.student-avatar{font-size:16px}.student-name{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;justify-content:center}.student-name h3{margin:0 0 5px;text-align:center}.student-details{margin-bottom:15px}.action-btn{font-size:14px;height:40px;justify-content:center;min-width:100px;padding:12px 20px;transition:all .2s ease}.class-name{align-items:center;display:flex;gap:10px}.class-name h3{color:#5d4e37;font-size:18px;margin:0}.session-info h3{color:#5d4e37;font-size:16px;margin:0}.session-details{margin-bottom:15px}.session-actions{display:flex;gap:10px;justify-content:flex-end}.stat-number{font-size:36px}.tab-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.tab-header h2{color:#333;margin:0}.add-btn{background:#456055;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:500;padding:12px 20px;transition:background .3s ease}.add-btn:hover{background:#6b6258}.header-actions{align-items:center;display:flex;gap:12px}.add-btn.primary{align-items:center;background:linear-gradient(135deg,#334156 0 100%);border:2px solid #0000;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:all .3s ease}.add-btn.primary:hover{box-shadow:0 4px 16px #667eea66;transform:translateY(-2px)}.student-avatar{align-items:center;background:#fff3;border:2px solid #ffffff4d;border-radius:50%;color:#fff;display:flex;font-size:18px;font-weight:700;height:50px;justify-content:center;width:50px}.student-name h3{color:#fff;font-size:18px;font-weight:600;margin:0}.student-details{padding:20px}.action-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:5px;padding:8px 16px;transition:all .3s ease}.status{border-radius:15px;display:inline-block;font-size:12px;font-weight:500;margin-top:10px;padding:5px 10px}.status.active{background:#e8e6e3;color:#6b6258}.session-details p{color:#666;margin:5px 0}@media (max-width:768px){.student-details{padding:15px}.action-btn{justify-content:center}.tab-header{align-items:stretch;flex-direction:column;gap:15px}}.students-checkboxes{grid-gap:10px;border:1px solid #ddd;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:10px;max-height:200px;overflow-y:auto}.calendar-legend,.students-checkboxes{background-color:#f9f9f9;border-radius:5px;padding:10px}.calendar-legend{display:flex;gap:20px;margin-bottom:15px}.profile-selector{align-items:center;animation:fadeIn .5s ease-in;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:2rem;position:relative}.profile-selector-container{max-width:1200px;position:relative;text-align:center;width:100%;z-index:1}.profile-title{color:#e2e8f0;font-size:2.5rem;font-weight:500;letter-spacing:.5px;margin-bottom:3rem}.profiles-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(150px,200px));justify-content:center;margin-bottom:2rem;padding:2rem}.profile-card{cursor:pointer;position:relative;transition:all .3s ease}.profile-card:hover{transform:scale(1.1)}.profile-card:hover .profile-avatar{border:3px solid #94a3b8;box-shadow:0 8px 20px #94a3b84d}.profile-avatar{align-items:center;background:linear-gradient(135deg,#475569,#334155);border:2px solid #94a3b84d;border-radius:12px;box-shadow:0 4px 16px #0000004d;display:flex;height:180px;justify-content:center;margin:0 auto 1rem;overflow:hidden;position:relative;transition:all .3s ease;width:180px}.profile-avatar:before{background:linear-gradient(135deg,#ffffff1a,#fff0 50%,#0000001a);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.profile-initials{color:#fff;font-size:4rem;font-weight:700;position:relative;text-shadow:2px 2px 8px #0006;z-index:1}.profile-avatar-emoji{filter:drop-shadow(2px 2px 8px rgba(0,0,0,.3));font-size:5rem;position:relative;z-index:1}.profile-avatar-image{overflow:hidden}.profile-name{color:#010204;font-size:1.3rem;font-weight:600;margin-bottom:.5rem;margin-top:1rem;transition:color .3s ease}.profile-card:hover .profile-name{color:#fff;font-weight:700;transform:translateY(-2px)}.profile-level{color:#94a3b8;font-size:1rem;font-style:italic;margin:0;text-shadow:0 1px 2px #00000080}.profile-subtitle{color:grey;font-size:1.1rem;line-height:1.6;margin-top:3rem}@media (max-width:768px){.profile-title{font-size:2.5rem;margin-bottom:2rem}.profiles-grid{gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(120px,150px));padding:1rem}.profile-avatar{height:140px;width:140px}.profile-initials{font-size:3rem}.profile-avatar-emoji{font-size:4rem}.profile-name{font-size:1.2rem}.profile-level{font-size:.9rem}.profile-subtitle{font-size:1rem;margin-top:2rem}}@media (max-width:480px){.profile-selector{padding:1rem}.profile-title{font-size:2rem;margin-bottom:1.5rem}.profiles-grid{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(100px,120px))}.profile-avatar{height:110px;width:110px}.profile-initials{font-size:2.5rem}.profile-avatar-emoji{font-size:3rem}.profile-name{font-size:1rem}.profile-subtitle{font-size:.9rem}}.profile-card{animation:slideIn .5s ease-out;animation-fill-mode:both}.profile-card:first-child{animation-delay:.1s}.profile-card:nth-child(2){animation-delay:.2s}.profile-card:nth-child(3){animation-delay:.3s}.profile-card:nth-child(4){animation-delay:.4s}.profile-card:nth-child(5){animation-delay:.5s}@keyframes slideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.profile-selector{background:#0000}.profile-selector .profile-selector-container{max-width:900px;padding:40px 32px 32px}.profile-selector .profile-title{color:var(--slate-chalk);font-weight:700}.profile-selector .profile-avatar:before{display:none}.profile-selector .profile-avatar.slate-avatar{border-width:5px}.profile-selector .profile-card:hover .profile-avatar{border-color:var(--slate-chalk);box-shadow:0 10px 28px #00000059}.profile-selector .profile-name{color:var(--slate-chalk);text-shadow:none}.profile-selector .profile-card:hover .profile-name{color:#fff}.profile-selector .profile-level,.profile-selector .profile-subtitle{color:var(--slate-chalk-soft);text-shadow:none}.profile-selector-logo{border-radius:4px;box-shadow:0 2px 6px #00000026;display:block;height:56px;margin:0 auto 32px}.parent-dashboard{background-color:initial;min-height:100vh}.loading{font-size:18px;padding:50px;text-align:center}.no-students{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin:20px;padding:50px 20px;text-align:center}.no-students h2{color:#333;margin-bottom:15px}.no-students p{color:#666;font-size:16px}.dashboard-content{padding:20px}.student-info{margin-bottom:30px}.student-details{grid-gap:8px;display:grid;gap:8px}.student-details p{color:#666;font-size:16px;margin:0}.stat-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:20px;text-align:center}.stat-card h3{color:#666;font-size:16px;margin:0 0 10px}.stat-number{color:#333;font-size:32px;font-weight:700}.payments-list{display:flex;flex-direction:column;gap:15px;overflow-y:auto}.session-date{color:#666}.session-duration{color:#666;font-size:14px}.payment-amount{color:#333;font-size:18px;font-weight:700}@media (max-width:768px){.payments-list,.sessions-list{max-height:none}}@media (max-width:480px){.dashboard-content{padding:10px}}.overview-tab{padding:20px 0}.recent-activity{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-top:30px;padding:25px}.recent-activity h2{color:#333;font-size:20px;margin:0 0 20px}.activity-list{display:flex;flex-direction:column;gap:15px}.activity-item{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:10px 0}.activity-item:last-child{border-bottom:none}.activity-date{color:#666;font-size:14px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.session-date{color:#456055;font-size:13px;font-weight:500;margin:5px 0 0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.session-time{font-size:16px;opacity:.9}.session-duration{font-weight:500}.attendance-list{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap;gap:20px;height:auto;justify-content:center}.attendance-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;gap:16px;margin-bottom:16px;padding-bottom:16px}.session-date{color:#6c757d;font-size:14px;margin:0;text-transform:capitalize}.session-homework,.session-topic{background:#f8f9fa;border-radius:8px;font-size:14px;line-height:1.6;margin-bottom:12px;padding:12px 16px}.session-homework strong,.session-topic strong{color:#495057;display:block;margin-bottom:4px}.session-topic{border-left:3px solid #3b82f6}.session-homework{border-left:3px solid #8b5cf6}.attendance-timestamp{border-top:1px solid #e9ecef;color:#6c757d;font-size:12px;font-style:italic;margin-top:12px;padding-top:12px}@media (max-width:768px){.attendance-header{flex-wrap:wrap}}.ps-page{color:var(--color-text);margin:0 auto;max-width:1100px;padding:24px;text-align:left}.ps-child{grid-gap:20px;align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);display:grid;gap:20px;grid-template-columns:auto 1fr auto;margin-bottom:24px;padding:20px 24px}.ps-child-avatar{background:var(--color-bg-soft);border-radius:50%;height:64px;object-fit:cover;width:64px}.ps-child-identity h1{font-size:1.4rem;font-weight:700;margin:0 0 6px}.ps-child-meta{align-items:center;display:flex;gap:12px}.ps-stats{display:flex;gap:10px}.ps-stat{background:var(--color-bg-soft);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:2px;min-width:120px;padding:10px 14px}.ps-stat-value{color:var(--color-primary);font-size:1.2rem;font-weight:700;white-space:nowrap}.ps-stat-value.is-small{font-size:.95rem;line-height:1.65rem;text-transform:capitalize}.ps-stat-value.is-due{color:var(--color-danger)}.ps-stat-label{color:var(--color-text-muted);font-size:.75rem}.ps-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.ps-side{display:flex;flex-direction:column;gap:20px}.panel-header{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.panel-header .panel-title{margin-bottom:0}.link-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;padding:0}.link-btn:hover{text-decoration:underline}.ps-section-title{font-size:1rem;font-weight:700;margin:0 0 12px}.ps-section{margin-top:24px}.ps-note{color:var(--color-text-muted);font-size:.85rem;margin:12px 0 0}.row-item.is-clickable{border-radius:var(--radius-sm);cursor:pointer;margin:0 -10px;padding-left:10px;padding-right:10px}.row-item.is-clickable:hover{background:var(--color-bg-soft)}.row-item .row-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-item.is-unread .row-title{color:var(--color-primary-dark)}.row-date{color:var(--color-text-muted);font-size:.8rem;grid-column:2;grid-row:1}.unread-dot{background:var(--color-primary);border-radius:50%;display:inline-block;height:8px;margin-right:8px;vertical-align:middle;width:8px}.ps-message-meta{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:12px;margin-bottom:16px;padding-bottom:16px}.ps-message-meta img{border-radius:50%;height:40px;width:40px}.ps-message-meta div{color:var(--color-text-muted);display:flex;flex:1 1;flex-direction:column;font-size:.85rem}.ps-message-meta strong{color:var(--color-text)}.ps-message-content{line-height:1.6;margin:0;white-space:pre-wrap}@media (max-width:900px){.ps-child{grid-template-columns:auto 1fr}.ps-stats{grid-column:1/-1}.ps-stat{flex:1 1;min-width:0}.ps-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.ps-child,.ps-page{padding:16px}.ps-stats{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.ps-stat{padding:8px}.ps-stat-value{font-size:1rem}.ps-stat-value.is-small{font-size:.8rem;line-height:1.2;white-space:normal}}.App{text-align:center}.loading-screen{align-items:center;background:var(--color-bg-soft);color:var(--color-text-muted);display:flex;flex-direction:column;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 2s linear infinite;font-size:48px;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-screen p{font-size:18px;margin:0}.error-screen{align-items:center;background-color:#f5f5f5;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px}.error-screen h2{color:#f44336;margin-bottom:10px}.error-screen p{color:#666;margin:0}
/*# sourceMappingURL=main.090344a3.css.map*/