:root{--font-sans:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-display:"Fraunces", Georgia, "Times New Roman", serif}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);color:#14532d;background:#f0fdf4;margin:0}#root{min-height:100vh}html,body{max-width:100vw;overflow-x:hidden}.ant-table-wrapper{overflow-x:auto}.superadmin-sider .ant-menu-dark.ant-menu-inline .ant-menu-item-selected{border-inline-start:3px solid #16a34a;border-radius:10px;color:#16a34a!important;background:#f0fdf4f0!important;width:calc(100% - 12px)!important;margin-inline:6px!important}.superadmin-sider .ant-menu-dark .ant-menu-item-selected .anticon{color:#16a34a!important}.superadmin-sider .ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover{border-radius:10px;width:calc(100% - 12px)!important;margin-inline:6px!important}.scheduler-architect-page .scheduler-concierge-sider{border-radius:12px;margin-right:8px;overflow:hidden;background:linear-gradient(#0d2818 0%,#123d28 48%,#0f2e20 100%)!important}.scheduler-concierge-brand{border-bottom:1px solid #ffffff14;padding:20px 16px 12px}.scheduler-concierge-brand-title{display:block;color:#fffffff2!important;font-size:15px!important;font-weight:600!important}.scheduler-concierge-brand-sub{display:block;color:#ffffff73!important;font-size:12px!important}.scheduler-concierge-menu.ant-menu-dark{padding:8px 0 16px;background:0 0!important;border-inline-end:none!important}.scheduler-concierge-menu .ant-menu-item{border-radius:8px!important;width:calc(100% - 20px)!important;margin:4px 10px!important}.scheduler-concierge-menu .ant-menu-item-selected{color:#e8f5e9!important;background:#81c78438!important}.scheduler-concierge-menu .ant-menu-item-selected .anticon{color:#a5d6a7!important}.scheduler-concierge-footer{border-top:1px solid #ffffff14;padding:12px}.scheduler-new-sim-btn{font-weight:500;background:#15803d!important;border-color:#15803d!important}.scheduler-main-card{border-radius:12px;box-shadow:0 1px 2px #0000000a}.scheduler-architect-footer{background:#fff;border:1px solid #0000000f;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;display:flex}.scheduler-hard-constraints-card{border-radius:10px}.scheduler-constraint-label{font-size:13px;display:block}.scheduler-constraint-input{min-width:88px}.scheduler-sim-status-banner .ant-alert,.scheduler-graph-card{border-radius:10px}.scheduler-graph-preview{min-height:140px}.scheduler-graph-nodes{background:linear-gradient(135deg,#f0fdf4 0%,#e3f2fd 100%);border:1px dashed #16a34a40;border-radius:8px;height:100px;position:relative}.scheduler-graph-node{opacity:.85;background:#16a34a;border-radius:50%;width:22px;height:22px;position:absolute}.scheduler-graph-node.n1{top:24px;left:18%}.scheduler-graph-node.n2{background:#1565c0;top:52px;left:42%}.scheduler-graph-node.n3{background:#6a1b9a;top:20px;left:68%}.scheduler-graph-node.n4{background:#ef6c00;top:58px;left:82%}.scheduler-graph-edge{transform-origin:0;background:#0000001f;height:2px;position:absolute}.scheduler-graph-edge.e1{width:28%;top:34px;left:22%;transform:rotate(12deg)}.scheduler-graph-edge.e2{width:22%;top:48px;left:48%;transform:rotate(-8deg)}.scheduler-graph-edge.e3{width:18%;top:40px;left:72%;transform:rotate(18deg)}.scheduler-history-card{border-radius:10px}.scheduler-history-row{padding-inline:0!important}.tt-grid-card,.tt-teacher-card{border-radius:10px}.tt-grid-wrap{overflow-x:auto}.tt-grid-table{border-collapse:collapse;width:100%;min-width:740px}.tt-grid-table th,.tt-grid-table td{vertical-align:top;border:1px solid #e5e7eb;padding:8px}.tt-grid-table th{text-align:left;background:#f8fafc;font-weight:600}.tt-grid-period{background:#f8fafc;width:72px;font-weight:600}.tt-cell-chip{border:1px solid #0f172a1f;border-radius:8px;min-height:58px;padding:6px 8px}.tt-cell-title{color:#0f172a;font-size:13px;font-weight:600;line-height:1.2}.tt-cell-sub{color:#334155;margin-top:2px;font-size:12px}.tt-cell-empty{color:#94a3b8;font-size:12px}.tt-grid-day-hdr{min-width:80px}.tt-grid-break-col{text-align:center;background:#f1f5f9;min-width:64px;max-width:64px}.tt-grid-break-cell{text-align:center;background:#f1f5f9;vertical-align:middle!important}.tt-break-label{color:#94a3b8;letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:600}.tt-period-time{color:#64748b;margin-top:2px;font-size:10px;font-weight:400}.tt-legend-tag.ant-tag{color:#0f172a;margin-inline-end:4px}.tt-teacher-row-head{color:#475569;margin-bottom:4px;font-size:12px;font-weight:600}@media print{@page{size:A4 landscape;margin:8mm}body{visibility:hidden!important;background:#fff!important}.tt-print-root{width:100%;position:absolute;top:0;left:0;visibility:visible!important}.tt-print-root *{visibility:visible!important}.tt-noprint{display:none!important}.tt-grid-card{page-break-after:always;break-after:page;page-break-inside:avoid;box-shadow:none!important;border:1px solid #cbd5e1!important;margin-bottom:0!important}.ant-space-item:last-child .tt-grid-card{page-break-after:auto;break-after:auto}.tt-grid-card .ant-card-head{min-height:unset!important;border-bottom:1px solid #cbd5e1!important;padding:4px 8px!important;font-size:12px!important;font-weight:700!important}.tt-grid-card .ant-card-body{padding:6px!important}.tt-grid-table{width:100%!important;min-width:unset!important;table-layout:fixed!important;border-collapse:collapse!important;font-size:9px!important}.tt-grid-table th,.tt-grid-table td{vertical-align:top;word-break:break-word;overflow:hidden;border:1px solid #cbd5e1!important;padding:3px 4px!important}.tt-grid-table th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f1f5f9!important;font-size:8px!important}.tt-grid-day-hdr,.tt-grid-period{width:26px!important;min-width:unset!important}.tt-grid-break-col,.tt-grid-break-cell{width:16px!important;min-width:unset!important;max-width:unset!important}.tt-period-time,.tt-break-label{font-size:7px!important}.tt-cell-chip{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;min-height:unset!important;border-radius:3px!important;padding:2px 3px!important}.tt-cell-title{font-size:8.5px!important;font-weight:700!important;line-height:1.2!important}.tt-cell-sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#334155!important;margin-top:1px!important;font-size:7px!important}.tt-cell-time{display:none!important}.tt-cell-empty{font-size:8px!important}.ant-card{box-shadow:none!important}}.lp-print-page{max-width:900px;margin:0 auto}.lp-print-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.lp-period-list{flex-direction:column;gap:16px;display:flex}.lp-period-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px 18px}.lp-period-head{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;display:flex}.lp-period-index{font-size:12px}.lp-field{margin-bottom:12px}.lp-field:last-child{margin-bottom:0}.lp-field-label{text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.lp-field-value{color:#1e293b;font-size:14px;line-height:1.55}.lp-student-table{border-collapse:collapse;width:100%;font-size:13px}.lp-student-table th,.lp-student-table td{text-align:left;border:1px solid #e2e8f0;padding:8px 10px}.lp-student-table th{background:#f8fafc;font-weight:600}.lp-student-table td:first-child,.lp-student-table th:first-child{text-align:center;width:40px}@media print{@page{size:A4 portrait;margin:12mm}.lp-print-page .lp-noprint{display:none!important}body.lp-printing-lesson-plan,body.lp-printing-lesson-plan *{visibility:hidden}body.lp-printing-lesson-plan #lesson-plan-print-root,body.lp-printing-lesson-plan #lesson-plan-print-root *{visibility:visible!important}body.lp-printing-lesson-plan #lesson-plan-print-root{width:100%;padding:0;position:absolute;top:0;left:0;background:#fff!important}body.lp-printing-lesson-plan .lp-noprint,body.lp-printing-lesson-plan .ant-drawer-mask,body.lp-printing-lesson-plan .ant-layout-sider,body.lp-printing-lesson-plan .ant-layout-header{display:none!important}.lp-period-card{page-break-inside:avoid;break-inside:avoid;box-shadow:none!important;border-color:#cbd5e1!important}.lp-print-footer{margin-top:16px!important}.lp-student-table th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header__main{flex:1;min-width:0}.page-header__extra{flex-shrink:0}.mobile-action-page{width:100%;max-width:640px}.mobile-action-page--wide{max-width:none}.mobile-action-page--with-footer{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.mobile-sticky-bar{z-index:100;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #f0f0f0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #00000014}.mobile-sticky-bar__stats{gap:10px;margin-bottom:10px;display:flex}.mobile-sticky-bar__stats:empty{margin-bottom:0;display:none}.stat-pill{border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:14px;font-weight:600;display:flex}.stat-pill--present{color:#389e0d;background:#f6ffed}.stat-pill--absent{color:#cf1322;background:#fff1f0}.stat-pill__label{opacity:.85;font-weight:500}.attendance-list .ant-list-item{padding:0!important}.attendance-row{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 14px;transition:background .15s;display:flex}.attendance-row--absent{background:#fff1f0}.attendance-row__check{pointer-events:none;flex-shrink:0}.attendance-row__check .ant-checkbox-inner{width:22px;height:22px}.attendance-row__check .ant-checkbox-inner:after{inset-inline-start:28%}.attendance-row__body{flex:1;min-width:0}.attendance-row__name{font-size:16px;line-height:1.3;display:block}.attendance-row__meta{color:#00000073;margin-top:2px;font-size:12px;display:block}.attendance-row__status{border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:600}.attendance-row__status--present{color:#389e0d;background:#f6ffed}.attendance-row__status--absent{color:#a8071a;background:#ffccc7}.attendance-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.attendance-toolbar .ant-picker{flex:1;min-width:160px}.student-search-input.ant-input-affix-wrapper,.student-search-input.ant-input{min-height:44px;font-size:16px}.student-pick-list{flex-direction:column;gap:8px;margin-top:4px;display:flex}.student-pick-row{text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #f0f0f0;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.student-pick-row:active,.student-pick-row:hover{background:#f6ffed;border-color:#95de64}.student-pick-row__name{color:#1a2e1f;font-size:16px;font-weight:600}.student-pick-row__meta{color:#00000073;margin-top:2px;font-size:13px}.selected-student-banner{background:#f6ffed;border:1px solid #b7eb8f;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.selected-student-banner__name{font-size:16px;font-weight:600}.selected-student-banner__meta{color:#0000008c;font-size:13px}.mobile-action-form .ant-form-item-label>label{font-size:14px}.mobile-action-form .ant-select-selector,.mobile-action-form .ant-input,.mobile-action-form .ant-input-number,.mobile-action-form .ant-picker{min-height:44px!important}.mobile-action-form .ant-select-selection-item,.mobile-action-form .ant-select-selection-placeholder,.mobile-action-form .ant-input-number-input{font-size:16px!important}.mobile-action-form .payment-method-radio.ant-radio-group{width:100%;display:flex}.mobile-action-form .payment-method-radio .ant-radio-button-wrapper{text-align:center;flex:1;height:44px;padding-inline:8px;line-height:42px}@media (width<=768px){.page-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}.page-header__extra{width:100%}.page-header__extra .ant-select{width:100%!important}.mobile-action-page{max-width:none}.mobile-sticky-bar--desktop-inline{box-shadow:none;border-top:none;padding:0;position:static}}@media (width>=769px){.mobile-sticky-bar--attendance{box-shadow:none;border-top:1px solid #f0f0f0;border-radius:0 0 8px 8px;justify-content:space-between;align-items:center;gap:16px;margin-top:-1px;padding:14px 16px;display:flex;position:static}.mobile-sticky-bar--attendance .mobile-sticky-bar__stats{flex:1;margin-bottom:0}.mobile-sticky-bar--attendance .stat-pill{flex:0 auto;min-width:120px}.mobile-sticky-bar--attendance .mobile-sticky-bar__submit{width:auto;min-width:180px}.mobile-action-page--with-footer{padding-bottom:0}}.auth-page{background:#f0fdf4;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px 40px;display:flex}.auth-top-strip{z-index:100;background:linear-gradient(90deg,#16a34a 0%,#059669 50%,#f59e0b 100%);height:6px;position:fixed;top:0;left:0;right:0}.auth-form-panel{flex-direction:column;align-items:center;gap:0;width:100%;max-width:480px;display:flex}.auth-brand-strip{color:#fff;background:linear-gradient(135deg,#052e16 0%,#16a34a 60%,#059669 100%);border-radius:18px 18px 0 0;width:100%;padding:28px 32px 24px;position:relative;overflow:hidden}.auth-brand-strip__glow{filter:blur(48px);pointer-events:none;border-radius:50%;position:absolute}.auth-brand-strip__glow--one{background:#f59e0b47;width:180px;height:180px;top:-60px;right:-40px}.auth-brand-strip__glow--two{background:#bbf7d033;width:160px;height:160px;bottom:-70px;left:-30px}.auth-brand-strip__logo{z-index:1;align-items:center;gap:10px;margin-bottom:16px;display:flex;position:relative}.auth-brand-strip__school-avatar{object-fit:contain;background:#ffffff26;border:2px solid #ffffff4d;border-radius:14px;width:64px;height:64px;padding:4px}.auth-brand-strip__school-initial{color:#fff;background:#ffffff26;border:2px solid #ffffff4d;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:26px;font-weight:700;display:flex}.auth-brand-strip__school-name{color:#fff;font-size:18px;font-weight:700;line-height:1.2}.auth-brand-strip__tagline{color:#ffffffa6;margin-top:2px;font-size:12px}.auth-steps{z-index:1;align-items:center;gap:0;display:flex;position:relative}.auth-step{flex-direction:column;align-items:center;gap:4px;display:flex}.auth-step__dot{color:#fff9;background:#ffffff1a;border:2px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;transition:all .2s;display:flex}.auth-step__dot--active{color:#16a34a;background:#fff;border-color:#fff}.auth-step__dot--done{color:#16a34a;background:#ffffffe6;border-color:#ffffffe6}.auth-step__label{color:#ffffff8c;white-space:nowrap;font-size:10px;font-weight:500}.auth-step__label--active{color:#fffffff2}.auth-step__connector{background:#fff3;flex-shrink:0;width:40px;height:2px;margin-bottom:18px}.auth-step__connector--done{background:#ffffffb3}.auth-form-card{width:100%;border:1px solid #d1fae5!important;border-top:none!important;border-radius:0 0 18px 18px!important;box-shadow:0 20px 48px #14532d1a!important}.auth-form-card .ant-card-body{padding:clamp(24px,4vw,36px)!important}.auth-form-card__title{letter-spacing:-.02em;color:#14532d!important;margin:0 0 6px!important;font-family:Fraunces,Georgia,serif!important;font-weight:600!important}.auth-form-card__subtitle{color:#6b7280;margin-bottom:24px;font-size:14px;line-height:1.55;display:block}.auth-page-footer{color:#9ca3af;text-align:center;letter-spacing:.03em;margin-top:20px;font-size:12px}.auth-login-tabs .ant-tabs-nav{margin-bottom:20px!important}.auth-login-tabs .ant-tabs-tab{font-weight:500;padding:10px 4px!important}.auth-login-tabs .ant-tabs-ink-bar{border-radius:3px;height:3px!important}.auth-page--admin{align-items:stretch;justify-content:unset;background:#f0fdf4;grid-template-rows:minmax(100vh,1fr);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);padding:0;display:grid}.auth-brand-panel{color:#fff;background:linear-gradient(145deg,#052e16 0%,#16a34a 42%,#059669 100%);flex-direction:column;justify-content:space-between;padding:clamp(28px,5vw,56px);display:flex;position:relative;overflow:hidden}.auth-brand-panel__glow{filter:blur(60px);pointer-events:none;border-radius:50%;position:absolute}.auth-brand-panel__glow--one{background:#f59e0b38;width:280px;height:280px;top:-80px;right:-40px}.auth-brand-panel__glow--two{background:#bbf7d02e;width:320px;height:320px;bottom:-120px;left:-60px}.auth-brand-panel__content{z-index:1;max-width:440px;position:relative}.auth-brand-panel__headline{letter-spacing:-.02em;margin:36px 0 16px;font-family:Fraunces,Georgia,serif;font-size:clamp(1.75rem,3vw,2.35rem);font-weight:600;line-height:1.15}.auth-brand-panel__lead{color:#ffffffd1;margin:0 0 28px;font-size:15px;line-height:1.65}.auth-brand-panel__features{gap:12px;margin:0;padding:0;list-style:none;display:grid}.auth-brand-panel__features li{color:#ffffffeb;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.auth-brand-panel__features .anticon{color:#fde68a;margin-top:2px;font-size:16px}.auth-brand-panel__footer{z-index:1;color:#ffffff8c;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:12px;position:relative}.auth-page--admin .auth-form-panel{max-width:unset;justify-content:center;align-items:center;padding:clamp(20px,4vw,48px);display:flex}.auth-page--admin .auth-form-card{width:100%;max-width:480px;border:1px solid #d1fae5!important;border-radius:18px!important;box-shadow:0 20px 48px #14532d1a!important}.auth-form-card__mobile-logo{align-items:center;margin-bottom:20px;display:flex}@media (width<=960px){.auth-page--admin{grid-template-columns:1fr}.auth-brand-panel{min-height:auto;padding-bottom:32px}.auth-brand-panel__headline{margin-top:24px;font-size:1.5rem}.auth-brand-panel__features,.auth-brand-panel__footer{display:none}}
