.operating-setup{color:#24364b;background:#fff;border:1px solid #dce5ee;border-radius:16px;max-width:100%;margin:12px 0;padding:20px}.operating-setup header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.operating-setup h3,.operating-setup h4{margin:6px 0 12px}.operating-setup p{line-height:1.65}.operating-setup small{color:#607386;display:block}.operating-setup nav{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.operating-setup button{color:inherit;cursor:pointer;background:#f5f8fb;border:1px solid #cad7e3;border-radius:9px;padding:9px 12px}.operating-setup button.active{color:#17634b;background:#e4f3ed;border-color:#369575}.operating-setup button:disabled{opacity:.5;cursor:default}.operating-setup fieldset{border:0;min-width:0;margin:0;padding:0}.operating-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.operating-choices label{border:1px solid #dce5ee;border-radius:12px;align-items:flex-start;gap:10px;padding:14px;display:flex}.operating-choices small{margin-top:6px;line-height:1.6}.operating-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.operating-example{background:#f0f6f5;border-radius:10px;padding:12px}.operating-review{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.operating-review p{background:#f5f8fb;border-radius:10px;margin:0;padding:12px}.operating-review b{display:block}.operating-setup footer{align-items:center;gap:8px;margin-top:16px;display:flex}.operating-setup footer span{margin-right:auto}.operating-check{align-items:center;gap:10px;margin:16px 0;display:flex}.operating-setup .field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.operating-setup input:not([type=radio]):not([type=checkbox]),.operating-setup select{width:100%;min-width:0;max-width:100%;color:inherit;background:#fff;border:1px solid #cad7e3;border-radius:8px;padding:10px}.operating-monitor{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.operating-monitor article{border:1px solid #dce5ee;border-radius:12px;flex:1;min-width:130px;padding:14px}.operating-monitor strong{font-size:24px;display:block}.operating-spp-list{gap:10px;display:grid}.operating-spp-list article{border:1px solid #dce5ee;border-radius:12px;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:14px;display:flex}.operating-spp-list small{display:block}.operating-account{max-width:620px}.operating-account label{margin:12px 0;display:block}.operating-account input{border:1px solid #cad7e3;border-radius:8px;width:100%;padding:10px}.operating-account button{margin:8px 8px 0 0}@media (width<=680px){.operating-setup{padding:14px}.operating-setup header{flex-direction:column}.operating-choices,.operating-fields,.operating-review{grid-template-columns:1fr}.operating-setup nav button{flex:1;min-width:110px}.operating-setup footer{flex-wrap:wrap}.operating-setup footer span{width:100%}}.operating-monitor>button{text-align:left;color:inherit;cursor:pointer;background:#fff;border:1px solid #dce6df;border-radius:12px;min-height:85px;padding:16px}.operating-monitor>button[aria-pressed=true]{background:#ecf7ef;border-color:#24865e}.operating-monitor>button strong{margin-top:6px;font-size:26px;display:block}.operating-pagination{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.operating-spp-list article{flex-wrap:wrap;gap:12px}.operating-setup details{margin:14px 0}.operating-setup summary{cursor:pointer;min-height:40px;font-weight:650;line-height:40px}.operating-setup fieldset{min-width:0}.operating-setup button{white-space:normal;min-height:42px}.operating-setup textarea{width:100%;min-height:70px}@media (width<=600px){.operating-spp-list article{align-items:flex-start}.operating-spp-list article>div{width:100%}.operating-spp-list article button{flex:1}.operating-monitor{grid-template-columns:repeat(2,minmax(0,1fr))}.operating-setup .operating-fields{grid-template-columns:minmax(0,1fr)}}.operating-choices button{text-align:left;flex-direction:column;gap:8px;padding:16px;display:flex}.operating-choices button span{font-weight:400;line-height:1.6}.initial-data-import{border:1px solid var(--border,#dce4ea);background:var(--surface,#fff);border-radius:16px;margin:16px 0;padding:20px}.initial-import-heading{align-items:flex-start;gap:12px;display:flex}.initial-import-heading>svg{flex-shrink:0;margin-top:5px}.initial-import-heading h2{margin:0;font-size:20px}.initial-import-heading p{margin:6px 0 14px}.initial-import-steps{flex-wrap:wrap;gap:30px;margin:12px 0 20px;padding-left:22px;display:flex}.initial-import-actions{flex-wrap:wrap;gap:10px;display:flex}.initial-import-help{color:var(--muted,#64748b);font-size:13px;line-height:1.7}.initial-import-file{cursor:pointer;border:1px dashed #94a3b8;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;padding:18px;display:flex}.initial-import-file small,.initial-import-table small{color:#64748b;margin-top:5px;display:block}.initial-import-file input{max-width:100%}.initial-import-preview{background:var(--surface-soft,#f5f8fb);border-radius:12px;margin:18px 0;padding:16px}.initial-import-table{margin:12px 0;overflow:auto}.initial-import-table table{border-collapse:collapse;width:100%;font-size:13px}.initial-import-table th,.initial-import-table td{text-align:left;vertical-align:top;border-bottom:1px solid #dce4ea;padding:10px}.initial-import-confirm{background:#f0fdfa;border:2px solid #287f84;border-radius:12px;margin:16px 0;padding:18px}.initial-import-confirm h3{margin-top:0}@media (width<=600px){.initial-data-import{padding:14px}.initial-import-steps{gap:12px 26px}.initial-import-table table{min-width:560px}}.organization-exports{margin:20px 0}.export-actions,.export-stage,.export-job-heading{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.export-job{border:1px solid var(--border,#d9e2eb);border-radius:12px;margin:12px 0;padding:16px}.export-job-heading{justify-content:space-between}.export-job-heading span,.export-help,.export-job small{color:var(--text-muted,#64748b);font-size:13px}.export-stage{margin:14px 0 8px}.export-stage b{margin-left:auto}.export-progress{background:#e2e8f0;border-radius:8px;height:8px;margin-bottom:8px;overflow:hidden}.export-progress>div{background:#2563eb;height:100%;transition:width .4s}.export-spinner{animation:1s linear infinite export-spin}@keyframes export-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.export-spinner{animation:none}.export-progress>div{transition:none}}@container portal-frame (width<=1050px){.public-header nav{box-shadow:var(--shadow);background:#fff;border-radius:12px;flex-direction:column;padding:18px;display:none;position:absolute;top:68px;left:15px;right:15px}.public-header nav.open{display:flex}.menu-btn{display:block}.header-actions .text-link{display:none}.hero{grid-template-columns:1fr;padding-top:60px}.hero-copy{text-align:center}.hero-copy .eyebrow,.proofs{justify-content:center}.hero-copy>p{margin:auto}.hero-actions{justify-content:center}.hero-visual{width:100%;max-width:600px;margin:auto}.quick-wrap{margin:20px}.quick-form,.program-grid,.metrics.six{grid-template-columns:repeat(3,1fr)}.teacher-admin-grid,.student-cards{grid-template-columns:1fr 1fr}.invoice-list>div{grid-template-columns:1.2fr .7fr .5fr .5fr}.invoice-list .btn{grid-column:1/-1}.sidebar{transition:all .25s;transform:translate(-100%)}.sidebar.open{transform:none}.portal-main{margin-left:0}.portal-header .menu-btn{display:block}.portal-header{justify-content:flex-start;gap:15px}.header-user{margin-left:auto}.mobile-only{display:block!important}.sidebar-top{justify-content:space-between;display:flex}.sidebar-top .icon-btn{color:#fff;display:block}}@container portal-frame (width<=760px){.public-header{height:68px}.header-actions .btn{display:none}.hero{min-height:auto;padding-top:45px}.hero h1{letter-spacing:-1.8px;font-size:39px}.hero-copy>p{font-size:15px}.hero-actions{flex-direction:column}.proofs{text-align:left;grid-template-columns:1fr 1fr;display:grid}.hero-visual{height:360px}.learning-scene{inset:35px 25px 8px}.person{width:90px}.person .head{font-size:55px}.scene-table{width:110px}.fc-two{right:0}.quick-wrap{padding:22px}.quick-head{display:block}.quick-form{grid-template-columns:1fr}.section{padding:70px 20px}.program-grid,.steps,.teacher-showcase,.quotes{grid-template-columns:1fr}.needs{grid-template-columns:1fr;gap:20px;margin:0 18px 50px;padding:40px 25px}.needs-art{height:320px}.feature-split,.faq{grid-template-columns:1fr;gap:35px}.feature-grid{grid-template-columns:1fr}.closing{padding:50px 22px}.closing h2{font-size:30px}.auth-page{grid-template-columns:1fr}.auth-panel{padding:35px 24px}.auth-art{display:none}.register-shell{margin:20px auto;display:block}.register-shell aside{padding:10px}.register-shell aside h1{font-size:28px}.reg-steps,.privacy-note{display:none}.register-card{min-height:auto;padding:25px 20px}.step-mobile{color:var(--muted);align-items:center;gap:10px;margin-bottom:25px;font-size:10px;display:flex}.step-mobile span{background:#e5f0ea;border-radius:6px;flex:1;height:5px}.step-mobile i{background:var(--primary);border-radius:6px;height:100%;display:block}.form-grid,.form-grid.three{grid-template-columns:1fr}.portal-content{padding:17px 12px}.portal-header{padding:0 14px}.header-user>div:nth-of-type(2),.header-user>svg{display:none}.welcome{padding:22px}.welcome .btn{display:none}.metrics.six,.metrics.four,.metrics.three{grid-template-columns:1fr 1fr}.dash-grid,.parent-grid,.enrollment-card,.teacher-admin-grid,.student-cards,.report-cards{grid-template-columns:1fr}.calendar-day{grid-template-columns:1fr;padding:10px}.day-label{flex-direction:row;gap:5px;padding:4px 5px}.calendar-event{grid-template-columns:auto 1fr auto;display:grid}.calendar-event>svg,.legend{display:none}.finance-head{grid-template-columns:1fr}.invoice-list>div{grid-template-columns:1fr 1fr}.invoice-due{display:none}.invoice-parent-list article{grid-template-columns:1fr}.report-row{grid-template-columns:auto 1fr}.report-row .btn{grid-column:1/-1}.approval{flex-wrap:wrap;align-items:start}.approval>div:nth-child(2){flex-basis:80%}.modal{padding:19px}.session-detail dl{grid-template-columns:1fr}.pay-shell{grid-template-columns:1fr;margin:20px auto}.pay-header{padding:0 18px}.footer-main{grid-template-columns:1fr}.quick-wrap{margin:20px 12px}.fc-one{left:0}.float-card{transform:scale(.85)}.check-list{grid-template-columns:1fr}}@container portal-frame (width<=430px){.hero-visual{height:310px}.scene-window{height:90px}.scene-people{height:210px}.person .body{height:80px}.fc-two{bottom:20px}.program-grid,.metrics.six,.metrics.four,.metrics.three{grid-template-columns:1fr}.metric{padding:14px}.portal-header h1{font-size:15px}.notification{display:none}.calendar-event{grid-template-columns:auto 1fr}.calendar-event .badge{grid-column:2}.invoice-list>div{grid-template-columns:1fr}.bill,.payment-box{padding:20px}.pay-success h1{font-size:24px}}@container portal-frame (width<=760px){.finance-head .finance-actions{grid-template-columns:1fr 1fr;display:grid}.finance-actions .btn:last-child{grid-column:1/-1}.program-admin-list>div{grid-template-columns:auto 1fr auto}.program-admin-list>div>.btn{grid-column:1/-1}.program-admin-list>div>b{display:none}}@container portal-frame (width<=1200px){.enrollment-card{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.7fr);gap:12px}.enroll-student{grid-column:span 2}.enroll-status{grid-area:1/3}.enroll-program{grid-column:1}.enroll-needs{grid-column:2}.enroll-schedule{grid-column:3}.enroll-assignment{border-top:1px solid var(--line);flex-flow:wrap;grid-column:1/-1;align-items:center;padding-top:9px}.enroll-assignment small{margin-right:auto}}@container portal-frame (width<=760px){.enrollment-card{grid-template-columns:1fr 1fr;gap:12px;padding:13px}.enroll-student{grid-column:1/-1}.enroll-status{grid-area:2/2;align-self:center}.enroll-program{grid-column:1/-1}.enroll-needs,.enroll-schedule{grid-column:auto}.enroll-assignment{grid-column:1/-1}.enrollment-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.enroll-student{grid-area:1/1/auto/3}.enroll-program{grid-area:2/1}.enroll-status{grid-area:2/2}.enroll-needs{grid-area:3/1}.enroll-schedule{grid-area:3/2}.enroll-teacher{grid-area:4/1}.enroll-assignment{grid-area:4/2}.schedule-view-tabs{margin-bottom:11px}.schedule-view-tabs button{padding:8px 12px}.calendar-toolbar .schedule-view-tabs{margin:0}.schedule-calendar>header{padding:11px}.month-grid{padding:0 4px 5px}.month-day{min-height:77px;padding:3px}.month-day-number{width:18px;height:18px;font-size:9px}.month-weekdays span{padding:8px 1px;font-size:8px}.month-event{padding:2px}.month-event time,.month-event b{font-size:7px}.month-event small{display:none}.calendar-month-actions{gap:4px}.calendar-month-actions button{min-width:29px;height:29px;padding:0 6px}.report-tools{grid-template-columns:1fr 1fr;gap:8px}.report-tools .search{grid-column:1/-1}.report-tools select{width:100%;padding:9px 7px;font-size:10px}.report-list-summary{flex-direction:column;align-items:flex-start}.report-row{grid-template-columns:auto minmax(0,1fr);gap:8px 10px}.report-row .report-state{grid-column:2;justify-self:start}.report-row .btn{grid-column:1/-1;width:100%}.report-metrics .metric{gap:7px;padding:10px}.report-metrics .metric-icon{width:31px;height:31px}.report-metrics .metric strong{font-size:15px}.report-metrics .metric span,.report-metrics .metric small{font-size:8px}.teacher-card-actions{flex-direction:column;align-items:stretch}.teacher-card-actions>span{justify-content:center}.teacher-card-actions .btn{width:100%}.teacher-detail-hero{grid-template-columns:auto 1fr}.teacher-detail-hero>.badge{grid-column:2;justify-self:start}.teacher-detail-hero span{line-height:1.5;display:block}.teacher-profile-panel dl{grid-template-columns:1fr}.attendance-toolbar{flex-direction:column;align-items:stretch}.attendance-toolbar label{min-width:0}.attendance-head{display:none}.attendance-table{border:0;flex-direction:column;gap:9px;display:flex}.attendance-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:10px;padding:11px}.attendance-row>div:before{content:attr(data-label);text-transform:uppercase;color:var(--muted);font-size:8px;font-weight:800}.attendance-row>div:last-child{grid-column:1/-1}.attendance-row .badge{align-self:flex-start}}@container portal-frame (width<=1100px){.finance-head .finance-actions{grid-template-columns:1fr 1fr;display:grid}.finance-head .finance-actions .btn:last-child{grid-column:1/-1}.teacher-invoice-heading,.teacher-invoice-row{grid-template-columns:1.2fr .8fr .5fr .8fr .9fr}.teacher-invoice-heading>span:last-child,.teacher-invoice-row>div:last-child{display:none}}@container portal-frame (width<=760px){.teacher-invoice-filters{grid-template-columns:1fr}.teacher-invoice-heading{display:none}.teacher-invoice-list{background:0 0;border:0;flex-direction:column;gap:9px;display:flex}.teacher-invoice-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:11px;padding:12px}.teacher-invoice-row>div:last-child{display:flex}.teacher-invoice-row>div:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800}.preview-row,.invoice-detail-items>div{grid-template-columns:1fr 1fr}.preview-row>div,.invoice-detail-items>div>div{grid-column:1/-1}.preview-total{grid-template-columns:1fr 1fr;gap:9px;display:grid}.preview-total span{align-items:flex-start}.preview-total span:last-child{grid-column:1/-1}.teacher-invoice-detail>dl,.invoice-detail-summary{grid-template-columns:1fr 1fr}.teacher-invoice-detail .modal-actions{grid-template-columns:1fr;display:grid}.teacher-invoice-detail .modal-actions .btn{width:100%}.auth-page.auth-form-right .auth-panel,.auth-page.auth-form-right .auth-art{order:initial}:is(html,.portal-frame)[data-dashboard-header=floating] .portal-header{margin:8px 8px 0}.portal-workspace-group{margin:5px 0 10px}.portal-workspace-group>span{font-size:9px}}@container portal-frame (width<=1050px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{z-index:110;transform:translate(-105%);width:min(300px,86vw)!important;display:flex!important}.portal .sidebar.open{transform:translate(0)}.portal .portal-main,.portal.sidebar-collapsed .portal-main{margin-left:0!important}.portal-menu{display:flex!important}.portal-drawer-backdrop{z-index:109;background:#0a26177a;border:0;display:block;position:fixed;inset:0}.portal .sidebar .logo,.portal .sidebar .portal-workspace-group>span,.portal .sidebar .portal-nav-label,.portal .sidebar .side-support{display:initial}.portal .sidebar-collapse{display:none}.portal .sidebar nav a,.portal .logout{justify-content:flex-start}.portal-content{overflow-x:hidden}}@container portal-frame (width<=767px){.portal-header .portal-menu{display:flex!important}.portal-header{min-height:64px;padding:10px 14px}.portal-content{padding:14px 12px 28px}.portal-page-header{gap:12px;margin-bottom:14px;display:grid}.portal-page-header h2{font-size:23px}.portal-page-primary,.portal-page-primary>*{width:100%}.schedule-tools{grid-template-columns:1fr 1fr;display:grid}.schedule-search,.schedule-view-tabs{grid-column:1/-1;min-width:0}.schedule-tools label:not(.schedule-search) select{width:100%;min-width:0}.schedule-view-tabs button{flex:1;min-height:44px}.schedule-legend{font-size:12px}.responsive-records>article{grid-template-columns:1fr 1fr;padding:13px}.responsive-records>article>.badge{justify-self:start}.shared-agenda .calendar-day{grid-template-columns:1fr}.shared-agenda .day-label{padding-bottom:8px}.shared-agenda .calendar-event{min-height:76px;padding:12px;font-size:13px}.shared-agenda .calendar-event .event-time{font-size:13px}.metrics.four{grid-template-columns:1fr 1fr}.table-wrap{max-width:100%;position:relative;overflow-x:auto}.table-wrap:after{content:"Geser untuk melihat kolom lain";color:var(--muted);padding:4px 7px;font-size:11px;display:inline-block;position:sticky;left:8px}.portal .btn,.portal button,.portal select,.portal input{min-height:44px}html,body,#root{max-width:100%;overflow-x:hidden}.portal{overflow-x:clip}.portal-header>div:first-of-type{min-width:0}.portal-header>div:first-of-type span{font-size:10px}.portal-header h1{white-space:normal;font-size:17px}.header-user>div:not(.avatar),.header-user>svg{display:none}.header-user{gap:7px}.notification{flex:0 0 44px}.portal-page-header{align-items:stretch}.portal-page-header p{font-size:13px}.portal-page-primary{display:grid}.portal-page-primary .action-group{grid-template-columns:1fr;display:grid}.portal-page-primary .btn{justify-content:center}.welcome,.parent-welcome{border-radius:14px;padding:18px!important}.welcome h2,.parent-welcome h2{line-height:1.18;font-size:23px!important}.welcome p{font-size:13px}.welcome .btn{justify-content:center;width:100%;margin-top:10px}.portal-attention{grid-template-columns:1fr;align-items:stretch;padding:12px;display:grid}.portal-attention>a{border:1px solid #f2dfbd;border-radius:10px;justify-content:space-between}.portal-attention>a strong{margin-right:auto}.metric-grid,.metrics,.metrics.four,.dash-grid,.parent-grid,.settings-grid,.report-metrics,.finance-head,.notification-metrics{grid-template-columns:1fr!important}.metric-grid>:last-child:nth-child(odd){grid-column:auto}.metric{min-height:0}.metric h3{font-size:22px}.action-group,.filter-bar,.modal-footer,.modal-actions{grid-template-columns:1fr;align-items:stretch;width:100%;display:grid}.action-group>*,.filter-bar>*,.filter-bar label,.modal-footer>*,.modal-actions>*{width:100%;min-width:0}.filter-bar input,.filter-bar select{width:100%}.active-filter-notice{flex-direction:column;align-items:stretch}.active-filter-notice button{text-align:left;padding:8px 0}.schedule-tools{grid-template-columns:1fr}.schedule-search,.schedule-view-tabs{grid-column:auto}.schedule-tools label,.schedule-tools input,.schedule-tools select{width:100%;min-width:0}.schedule-calendar{padding-bottom:30px;position:relative}.schedule-calendar>.month-grid{min-width:560px}.schedule-calendar:after{content:"Geser kalender ke samping";color:var(--muted);font-size:11px;font-weight:700;display:block;position:absolute;bottom:7px;left:12px}.shared-calendar .month-day{min-height:96px}.shared-calendar .month-event{min-height:48px;font-size:11px}.shared-calendar .month-event time,.shared-calendar .month-event b,.shared-calendar .month-event small{font-size:11px;line-height:1.25}.calendar-month-actions button{min-width:44px;min-height:44px}.responsive-records>article{gap:10px;grid-template-columns:1fr!important}.responsive-records>article>div{border-bottom:1px solid var(--line);padding-bottom:8px}.responsive-records>article>div:last-of-type{border-bottom:0}.responsive-records>article>.status-badge,.responsive-records>article>.badge{justify-self:start}.invoice-parent-list>article,.sim-invoice-list>article{grid-template-columns:1fr!important;align-items:start!important}.invoice-parent-list>article>.btn,.sim-invoice-list>article>button{justify-content:center;width:100%}.table-wrap{background:0 0;border:0}.table-wrap table{min-width:620px}.table-wrap:after{margin:6px 0}.settings-grid>section{padding:16px}.settings-user{align-items:flex-start}.settings-user+dl>div{gap:3px;grid-template-columns:1fr!important}.portal .btn,.portal button,.portal select,.portal input,.sim-portal-shell button,.sim-portal-shell select,.sim-portal-shell input{min-height:44px}}@container portal-frame (width<=430px){.portal-content,.portal-header{padding-inline:10px}.metric-grid,.metrics,.metrics.four{grid-template-columns:1fr!important}.portal-page-header h2{font-size:21px}.schedule-calendar>.month-grid{min-width:540px}}@container portal-frame (width<=1050px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{height:100dvh;width:320px!important;max-width:86vw!important;padding:0!important;overflow:hidden!important}.portal .sidebar .sidebar-top{grid-template-columns:minmax(0,1fr) 44px;padding:12px;position:sticky;top:0}.portal .sidebar .portal-drawer-identity{grid-template-columns:40px minmax(0,1fr)}.portal .sidebar .portal-drawer-copy,.portal .sidebar .portal-flat-navigation{display:grid}.portal .sidebar .sidebar-support-desktop,.portal .sidebar .sidebar-preference,.portal .sidebar .sidebar-collapse{display:none!important}.portal .sidebar .portal-sidebar-footer{display:grid}.portal .sidebar nav.portal-flat-navigation a,.portal .sidebar .portal-sidebar-footer>a,.portal .sidebar .portal-sidebar-footer>button{grid-template-columns:20px minmax(0,1fr) auto;justify-content:stretch;min-height:44px;padding:10px 12px}.portal .sidebar .portal-nav-label{display:initial}}@container portal-frame (width<=767px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{width:min(320px,86vw)!important}.sidebar nav.portal-flat-navigation a,.portal-sidebar-footer>a,.portal-sidebar-footer>button{min-height:48px}.schedule-tools{grid-template-columns:1fr!important;display:grid!important}.schedule-search,.schedule-view-tabs{grid-column:auto!important}.schedule-view-tabs{width:100%}.schedule-view-tabs button{flex:1;min-width:0}.schedule-calendar>header{align-items:flex-start;min-height:0;padding:12px}.schedule-calendar>header h3{font-size:15px}.calendar-month-actions{flex-wrap:wrap;justify-content:flex-end}.schedule-calendar .month-grid{min-width:540px}.calendar-scroll-hint{display:block}.shared-calendar .month-day{min-height:100px}.shared-calendar .month-event{min-height:52px}.shared-calendar .month-event time,.shared-calendar .month-event b{font-size:12px!important}.shared-calendar .month-event small{font-size:11px!important}.shared-agenda .calendar-day,.shared-agenda.compact .calendar-day{grid-template-columns:1fr;padding:13px}.shared-agenda .day-label{padding:0 0 9px}.shared-agenda .calendar-event{grid-template-columns:52px minmax(0,1fr) 20px;align-items:start;min-height:92px;padding:12px}.shared-agenda .calendar-event-content{grid-column:2}.shared-agenda .calendar-event>.status-badge{grid-area:2/2/auto/4;justify-self:start}.shared-agenda .calendar-event>svg{grid-area:1/3}.shared-agenda .event-time{font-size:13px!important}.shared-agenda .calendar-event-content b{font-size:13px}.shared-agenda .calendar-event-content p{font-size:12px;line-height:1.45}}@container portal-frame (width<=1050px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{width:320px!important}.portal .portal-main,.portal.sidebar-collapsed .portal-main{margin-left:0!important}.portal .sidebar .portal-nav-badge{justify-self:end;min-width:20px;max-width:34px;height:20px;padding:0 5px;font-size:10px;position:static}}@container portal-frame (width<=700px){.fee-dashboard{padding:16px}.fee-summary-grid{grid-template-columns:1fr}.fee-dashboard-heading,.fee-updates-heading,.fee-update summary{flex-wrap:wrap;align-items:flex-start}.fee-update summary>strong{margin-left:21px}.fee-update dl{grid-template-columns:1fr}}.portal.portal-frame{background:var(--soft,#f4f9f6);min-height:100dvh;color:var(--ink,#172b36);font-family:var(--website-body-font,"Plus Jakarta Sans Variable"),sans-serif;isolation:isolate;grid-template-columns:244px minmax(0,1fr);font-size:14px;line-height:1.5;display:grid;position:relative}.portal.portal-frame.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.portal.portal-frame .sidebar{z-index:30;height:100dvh;position:sticky;inset:0 auto auto;transform:none;width:100%!important;max-width:none!important;display:flex!important}.portal.portal-frame .portal-main{width:100%;min-width:0;margin-left:0!important}.portal-frame .portal-header{gap:16px;min-height:80px;padding:16px 20px}.portal-frame .portal-title{flex:1;min-width:0}.portal-frame .portal-header h1{font-size:21px;line-height:1.3;font-family:var(--website-heading-font,inherit);margin:0}.portal-frame .portal-content{min-width:0;padding:20px}.portal-frame .portal-page-header{gap:16px;margin:0 0 18px}.portal-frame .portal-page-header p{margin:0;font-size:13px;line-height:1.6}.portal-frame .portal-drawer-close,.portal-frame .portal-menu{display:none!important}.portal-frame .sidebar-top{grid-template-columns:minmax(0,1fr)}.portal-frame .portal-navigation-filter{flex:0 0 44px;align-items:center;min-width:0;height:44px;margin:8px 12px 0;display:flex;position:relative}.portal-frame .portal-navigation-filter>svg{pointer-events:none;width:18px;height:18px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.portal-frame .portal-navigation-filter input{width:100%;min-width:0;height:44px;font:inherit;box-sizing:border-box;margin:0;padding:0 40px;font-size:13px;line-height:1.4;display:block}.portal-frame .portal-navigation-clear{width:40px;height:40px;min-height:40px;color:inherit;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid;position:absolute;top:2px;right:2px}.portal-frame .portal-navigation-clear:hover{background:#ffffff1f}.portal-frame .portal-navigation-clear svg{width:16px;height:16px;position:static;transform:none}.portal-frame .portal-navigation-empty{color:inherit;margin:0;padding:10px 12px;font-size:12px;line-height:1.5}.portal-frame .portal-flat-navigation a,.portal-frame .portal-sidebar-footer>a,.portal-frame .portal-sidebar-footer>button{min-height:44px;font-family:inherit;font-size:13px;line-height:1.4}.portal-frame .portal-mode-actions{align-items:center;gap:8px;display:flex}.portal-frame .portal-mode-actions label{gap:2px;font-size:11px;display:grid}.portal-frame .portal-mode-actions select{max-width:160px;min-height:36px}.portal.portal-frame[data-drawer=false] .portal-drawer-backdrop{display:none}.portal.portal-frame[data-drawer=false] .sidebar-collapse{display:grid!important}.portal.portal-frame[data-drawer=false] .sidebar-preference{display:grid}.portal.portal-frame.sidebar-collapsed[data-drawer=false] .portal-navigation-filter,.portal.portal-frame.sidebar-collapsed[data-drawer=false] .sidebar-preference{display:none}.portal.portal-frame[data-drawer=true]{grid-template-columns:minmax(0,1fr)}.portal.portal-frame[data-drawer=true] .sidebar{visibility:hidden;z-index:110;height:min(100dvh,100%);min-height:560px;transition:transform .2s,visibility .2s;position:absolute;inset:0 auto auto 0;transform:translate(-105%);width:min(320px,86%)!important;max-width:86%!important}.portal.portal-frame[data-drawer=true] .sidebar.open{visibility:visible;transform:translate(0)}.portal.portal-frame[data-drawer=true] .portal-menu,.portal.portal-frame[data-drawer=true] .portal-drawer-close{place-items:center;display:grid!important}.portal.portal-frame[data-drawer=true] .sidebar-top{grid-template-columns:minmax(0,1fr) 44px}.portal.portal-frame[data-drawer=true] .portal-drawer-copy{display:grid}.portal.portal-frame[data-drawer=true] .portal-drawer-identity{grid-template-columns:40px minmax(0,1fr)}.portal.portal-frame[data-drawer=true] .sidebar-collapse,.portal.portal-frame[data-drawer=true] .sidebar-preference{display:none!important}.portal.portal-frame[data-drawer=true] .portal-drawer-backdrop{z-index:109;background:#0a26177a;border:0;display:block;position:absolute;inset:0}.portal.portal-frame[data-narrow=true] .portal-header{gap:10px;min-height:64px;padding:10px 12px}.portal.portal-frame[data-narrow=true] .portal-header h1{font-size:19px}.portal.portal-frame[data-narrow=true] .header-user>div:not(.avatar){display:none}.portal.portal-frame[data-narrow=true] .portal-content{padding:14px 12px 28px}.portal.portal-frame[data-narrow=true] .portal-mode-actions{flex-wrap:wrap;max-width:140px}.portal-frame .settings-grid{grid-template-columns:minmax(0,1fr)}.sim-device-stage>.sim-portal-shell.shared-dashboard-stage{max-width:none;box-shadow:none;background:0 0;border:0;display:block;overflow:visible}.shared-dashboard-stage .portal-frame{min-height:720px}.shared-dashboard-stage>.sim-inspector{border:1px solid var(--line);border-radius:var(--theme-radius,13px);max-width:none;margin-top:20px;display:block}.device-tablet .shared-dashboard-stage{width:min(1024px,100%);margin-inline:auto}.device-mobile .shared-dashboard-stage{width:min(390px,100%);margin-inline:auto}.portal.portal-frame{container:portal-frame/inline-size}.portal.portal-frame.sidebar-collapsed[data-drawer=false] .portal-nav-label,.portal.portal-frame.sidebar-collapsed[data-drawer=false] .portal-drawer-copy{display:none!important}.portal-simulator-page .sim-device-stage{padding:0}.portal.portal-frame[data-drawer-open=true]{z-index:100}.portal-local-tabs{background:var(--surface,#fff);border:1px solid #dde7e1;border-radius:14px;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:10px;display:flex}.portal-local-tabs a{color:inherit;border-radius:9px;min-height:42px;padding:10px 14px;font-size:13px;font-weight:600;text-decoration:none}.portal-local-tabs a.active{color:#14543b;background:#e5f3eb}@media (width<=600px){.portal-local-tabs{gap:4px;padding:6px}.portal-local-tabs a{text-align:center;flex:auto;padding:10px}}:root{--primary:var(--ui-primary);--accent:var(--ui-accent);--secondary:var(--ui-secondary);--navy:var(--ui-deep);--ink:var(--ui-ink);--muted:var(--ui-muted);--soft:var(--ui-soft);--line:var(--ui-line);--white:#fff;--green:#26956e;--orange:#e8922d;--red:#d95757;--shadow:0 18px 50px #15643a1c;color:var(--ink);font-synthesis:none;background:#fff;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a{transition:all .2s}a{color:inherit;text-decoration:none}p{color:var(--muted);line-height:1.7}h1,h2,h3,h4{color:var(--ink);margin:0;font-family:Plus Jakarta Sans,sans-serif}button{cursor:pointer}.btn{background:var(--primary);color:#fff;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-weight:700;display:inline-flex;box-shadow:0 8px 20px #1f91542e}.btn:hover{background:var(--ui-hover);transform:translateY(-1px)}.btn-lg{padding:16px 24px}.btn-ghost{color:var(--primary);box-shadow:none;background:#fff;border:1px solid #bce0cd}.btn-ghost:hover{background:var(--soft)}.btn-light{color:var(--primary);background:#fff}.btn-small{border-radius:8px;padding:8px 12px;font-size:13px}.btn-demo{width:100%;box-shadow:none;background:#6336a8}.full{width:100%}.logo{color:var(--navy);align-items:center;gap:9px;display:flex}.logo-mark{background:linear-gradient(145deg, #27b66a, var(--primary));color:#fff;border-radius:50% 50% 45% 55%;place-items:center;width:41px;height:41px;font:700 24px Plus Jakarta Sans;display:grid;box-shadow:inset -5px -4px #00000014}.logo div,.logo>span:last-child{flex-direction:column;line-height:1;display:flex}.logo b{letter-spacing:3.1px;font:600 8px Plus Jakarta Sans}.logo strong{letter-spacing:.3px;font:800 16px Plus Jakarta Sans}.logo-light{color:#fff}.public-header{z-index:20;justify-content:space-between;align-items:center;max-width:1240px;height:78px;margin:auto;padding:0 22px;display:flex;position:relative}.public-header nav{gap:30px;font-size:14px;font-weight:600;display:flex}.public-header nav a:hover,.text-link:hover{color:var(--primary)}.header-actions{align-items:center;gap:22px;display:flex}.text-link{font-size:14px;font-weight:700}.menu-btn,.icon-btn{background:0 0;border:0;padding:6px;display:none}.mobile-only{display:none!important}.hero{background:linear-gradient(125deg,#eefcf5 0,#f8fdfa 58%,#e0f8eb 100%);grid-template-columns:1.04fr .96fr;align-items:center;gap:55px;min-height:680px;padding:86px max(22px,50vw - 600px);display:grid;overflow:hidden}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:1.7px;color:var(--primary);align-items:center;gap:7px;font-size:12px;font-weight:800;display:flex}.hero h1{letter-spacing:-2.7px;margin:18px 0 22px;font-size:clamp(42px,5vw,67px);line-height:1.08}.hero h1 span{color:var(--primary);display:block}.hero-copy>p{max-width:650px;font-size:18px}.hero-actions{gap:12px;margin:30px 0;display:flex}.proofs{gap:22px;font-size:13px;font-weight:700;display:flex}.proofs span{align-items:center;gap:7px;display:flex}.proofs svg{width:18px;color:var(--green)}.hero-visual{height:480px;position:relative}.blob{background:#86e1b0;border-radius:47% 53% 62% 38%/42% 43% 57% 58%;position:absolute;inset:20px 0 0 25px;transform:rotate(4deg)}.learning-scene{box-shadow:var(--shadow);background:#f6e6cd;border-radius:150px 150px 45px 45px;position:absolute;inset:48px 40px 12px 60px;overflow:hidden}.scene-window{background:#d8f7e6;justify-content:space-around;height:135px;padding:30px;display:flex}.scene-window span{background:#fff;width:5px}.scene-people{background:linear-gradient(#f9ebd5,#f1d5ae);justify-content:center;align-items:end;height:280px;display:flex;position:relative}.person{text-align:center;z-index:2;width:120px}.person .head{font-size:72px;line-height:1}.person .body{background:var(--ui-primary);border-radius:48px 48px 10px 10px;height:110px}.person.child .body{background:#f28d62;height:92px}.scene-table{z-index:3;background:#ad7449;border-radius:10px 10px 0 0;width:170px;height:100px;position:relative}.book{color:var(--primary);background:#fff;padding:12px;font:700 20px Plus Jakarta Sans;position:absolute;top:-30px;left:32px;right:32px;transform:rotate(-4deg);box-shadow:0 4px 10px #aaa}.book small{font:600 9px DM Sans;display:block}.float-card{box-shadow:var(--shadow);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:13px 16px;font-size:12px;display:flex;position:absolute}.float-card svg{color:#e9ac26}.float-card b{font-size:14px;display:block}.fc-one{top:70px;left:0}.fc-two{bottom:45px;right:-25px}.fc-two svg{color:var(--green)}.quick-wrap{z-index:4;background:#fff;border-radius:20px;max-width:1180px;margin:-36px auto 0;padding:28px 32px;position:relative;box-shadow:0 18px 60px #166a3d24}.quick-head{justify-content:space-between;align-items:end;margin-bottom:20px;display:flex}.quick-head h2{margin-top:6px;font-size:24px}.quick-head p{margin:0;font-size:13px}.quick-form{grid-template-columns:repeat(5,1fr) auto;align-items:end;gap:12px;display:grid}.field{flex-direction:column;gap:7px;margin-bottom:17px;font-size:13px;font-weight:700;display:flex}.quick-form .field{margin:0}.field span{color:#406551}.field em{color:var(--red);margin-left:2px;font-style:normal}.field input,.field select,.field textarea,.filters input,.filters select{background:#fff;border:1px solid #cee4d8;border-radius:9px;outline:none;width:100%;min-height:44px;padding:10px 12px;font-weight:500}.field textarea{resize:vertical;min-height:90px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2cb86d1a}.quick-form .btn{height:44px}.section{padding:100px max(22px,50vw - 590px)}.section-heading{text-align:center;max-width:690px;margin:0 auto 48px}.section-heading .kicker{justify-content:center}.section-heading h2,.needs h2,.feature-split>div>h2,.faq h2{letter-spacing:-1.3px;margin:10px 0 14px;font-size:clamp(30px,4vw,44px);line-height:1.2}.program-grid{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.program-card{border:1px solid var(--line);background:#fff;border-radius:16px;flex-direction:column;min-height:220px;padding:26px 23px;display:flex}.program-card:hover{box-shadow:var(--shadow);border-color:#ace9c8;transform:translateY(-5px)}.program-icon{background:var(--soft);border-radius:13px;place-items:center;width:52px;height:52px;margin-bottom:18px;font-size:26px;display:grid}.program-card h3{font-size:18px}.program-card p{flex:1;font-size:13px}.program-card span{color:var(--primary);align-items:center;gap:5px;font-size:13px;font-weight:700;display:flex}.pc-4,.pc-5,.pc-6{grid-column:span 1}.needs{background:#f1f8f5;border-radius:32px;grid-template-columns:1fr 1fr;align-items:center;gap:80px;max-width:1180px;margin:20px auto 80px;padding:80px;display:grid}.needs-art{place-items:center;height:410px;display:grid}.goal-orbit{border:2px dashed #8bc9b1;border-radius:50%;place-items:center;width:280px;height:280px;display:grid;position:relative}.goal-core{width:145px;height:145px;box-shadow:var(--shadow);background:#fff;border-radius:50%;place-items:center;font-size:70px;display:grid}.orbit{background:#fff;border-radius:20px;padding:9px 13px;font-size:12px;font-weight:700;position:absolute;box-shadow:0 7px 18px #14503c1a}.o0{top:-14px}.o1{top:45%;right:-55px}.o2{bottom:-14px}.o3{top:45%;left:-52px}.check-list{grid-template-columns:1fr 1fr;gap:13px;margin:25px 0;display:grid}.check-list div{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.check-list svg{width:21px;color:var(--green);background:#cfecdf;border-radius:50%;padding:4px}.inline-link{color:var(--primary);align-items:center;gap:7px;font-weight:800;display:flex}.soft{background:var(--soft)}.steps{grid-template-columns:repeat(3,1fr);gap:28px;max-width:1050px;margin:auto;display:grid}.step{background:#fff;border-radius:18px;padding:35px;position:relative}.step-no{color:#def3e8;font:800 34px Plus Jakarta Sans;position:absolute;top:22px;right:25px}.step-icon{background:var(--soft);width:55px;height:55px;color:var(--primary);border-radius:14px;place-items:center;display:grid}.step h3{margin:22px 0 8px}.step p{font-size:14px}.feature-split{grid-template-columns:.7fr 1.3fr;align-items:start;gap:80px;display:grid}.feature-split>div>p{margin-bottom:26px}.feature-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.feature{border:1px solid var(--line);border-radius:14px;gap:15px;padding:22px;display:flex}.feature>svg{color:var(--primary);min-width:24px}.feature h3{font-size:15px}.feature p{margin:5px 0;font-size:12px}.navy{background:var(--navy);color:#fff}.navy h2,.navy h3{color:#fff}.navy p{color:#a8ceba}.section-heading.left{text-align:left;margin-left:0}.section-heading.left .kicker{color:#64de9d;justify-content:start}.teacher-showcase{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.teacher-card{background:#143d27;border:1px solid #26563c;border-radius:18px;align-items:center;gap:18px;padding:15px;display:flex}.teacher-photo{border-radius:12px;place-items:end center;width:100px;height:115px;font-size:70px;display:grid;overflow:hidden}.teacher-card h3{font-size:16px}.teacher-card p{font-size:12px}.teacher-card span{color:#e9bc50;align-items:center;gap:4px;font-size:11px;display:flex}.testimonials{background:#fffaf3}.quotes{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.quotes blockquote{background:#fff;border:1px solid #f0e5d3;border-radius:17px;margin:0;padding:28px}.quotes blockquote p{color:var(--ink);font-size:15px}.quotes footer{font-size:13px;font-weight:700}.stars{color:#e9aa31;letter-spacing:3px}.faq{grid-template-columns:.75fr 1.25fr;gap:80px;display:grid}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;justify-content:space-between;font-weight:800;list-style:none;display:flex}.faq details p{font-size:14px}.closing{background:linear-gradient(120deg, var(--ui-primary), #27b76a);text-align:center;color:#fff;border-radius:28px;margin:30px max(20px,50vw - 590px) 90px;padding:72px;position:relative;overflow:hidden}.closing h2{color:#fff;max-width:700px;margin:12px auto;font-size:40px}.closing p{color:#daf7e8}.closing>span{text-transform:uppercase;letter-spacing:2px;font-size:13px;font-weight:700}.closing .btn{margin-top:14px}.closing-dots{border:55px solid #ffffff0d;border-radius:50%;width:250px;height:250px;position:absolute;top:-80px;right:-70px}.footer{color:#aecbbc;background:#0a2b19;padding:60px max(22px,50vw - 590px) 24px}.footer-main{grid-template-columns:2fr 1fr 1fr 1.3fr;gap:50px;display:grid}.footer-main>div{flex-direction:column;gap:11px;font-size:13px;display:flex}.footer-main>div:first-child p{max-width:320px}.footer h4{color:#fff;margin-bottom:8px;font-size:13px}.footer span{align-items:center;gap:4px;display:flex}.footer-bottom{border-top:1px solid #214532;justify-content:space-between;margin-top:45px;padding-top:22px;font-size:12px;display:flex}.auth-page{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-panel{width:100%;max-width:520px;margin:auto;padding:50px 70px}.back{color:var(--muted);align-items:center;gap:6px;margin-bottom:35px;font-size:13px;display:flex}.auth-title{margin:45px 0 28px}.auth-icon{background:var(--soft);width:48px;height:48px;color:var(--primary);border-radius:13px;place-items:center;margin-bottom:18px;display:grid}.auth-title h1{font-size:30px}.auth-title p{font-size:14px}.auth-panel form>.btn{width:100%;height:48px}.password{position:relative}.password input{padding-right:48px}.password button{color:var(--muted);background:0 0;border:0;position:absolute;top:6px;right:8px}.password svg{width:19px}.demo-box{background:var(--soft);border-radius:12px;margin-top:22px;padding:16px}.demo-box p{margin:5px 0 12px;font-size:12px}.demo-box code{color:var(--primary);font-weight:700}.demo-box div{gap:7px;display:flex}.demo-box button{color:var(--primary);background:#fff;border:1px solid #b6e3cb;border-radius:7px;padding:6px 9px;font-size:11px}.auth-foot{text-align:center;font-size:13px}.auth-foot a{color:var(--primary);font-weight:700}.auth-art{background:linear-gradient(145deg,#1c824c,#175936);border-radius:28px;place-items:center;margin:18px;display:grid;position:relative;overflow:hidden}.auth-art:after{content:"";border:100px solid #ffffff0a;border-radius:50%;width:500px;height:500px;position:absolute;bottom:-190px;right:-170px}.auth-art-content{color:#fff;z-index:1;max-width:480px;padding:40px}.auth-art h2{color:#fff;margin:12px 0;font-size:43px;line-height:1.17}.auth-art p{color:#c8edd9}.mini-report{color:var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:16px;margin-top:35px;padding:22px}.mini-report div:first-child{justify-content:space-between;display:flex}.progress{background:#e9f2ed;border-radius:9px;height:8px;margin:16px 0}.progress i{background:var(--green);border-radius:9px;width:78%;height:100%;display:block}.mini-report small{color:var(--muted)}.register-page{background:#f4fbf7;min-height:100vh}.register-page>header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:76px;padding:0 max(24px,50vw - 580px);display:flex}.register-page .back{margin:0}.register-shell{grid-template-columns:330px 1fr;gap:45px;max-width:1160px;margin:45px auto;padding:0 20px;display:grid}.register-shell aside{padding:25px 10px}.register-shell aside h1{margin:10px 0;font-size:34px}.register-shell aside>p{font-size:14px}.reg-steps{margin-top:35px}.reg-steps>div{opacity:.5;gap:13px;padding-bottom:25px;display:flex;position:relative}.reg-steps>div:after{content:"";background:#bbdac9;width:1px;position:absolute;top:41px;bottom:3px;left:19px}.reg-steps>div:last-child:after{display:none}.reg-steps>div>span{background:#fff;border:1px solid #aad4be;border-radius:50%;place-items:center;width:39px;height:39px;display:grid}.reg-steps svg{width:18px}.reg-steps div div{flex-direction:column;display:flex}.reg-steps small{text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-size:9px}.reg-steps .current,.reg-steps .done{opacity:1}.reg-steps .current>span,.reg-steps .done>span{background:var(--primary);border-color:var(--primary);color:#fff}.privacy-note{color:var(--muted);background:#e7f6ee;border-radius:9px;margin-top:15px;padding:14px;font-size:11px}.register-card{background:#fff;border-radius:18px;min-height:600px;padding:38px 45px;box-shadow:0 8px 35px #19693e14}.form-title{gap:15px;margin-bottom:30px;display:flex}.form-title>span{background:var(--soft);color:var(--primary);border-radius:9px;height:34px;padding:9px;font:800 13px Plus Jakarta Sans}.form-title h2{font-size:25px}.form-title p{margin:6px 0;font-size:13px}.form-grid{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-actions{justify-content:flex-end;margin-top:24px;display:flex}.form-actions.between{justify-content:space-between}.step-mobile{display:none}.portal{background:#f4f9f6;min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#fff;z-index:30;flex-direction:column;width:244px;padding:24px 17px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-top{padding:0 8px 24px}.sidebar nav{flex-direction:column;gap:5px;display:flex}.sidebar nav a{color:#a8cbb8;border-radius:9px;align-items:center;gap:12px;height:44px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.sidebar nav a svg{width:19px}.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:#1a5a38}.sidebar nav a i{color:#fff;background:#e48142;border-radius:50%;place-items:center;width:20px;height:20px;margin-left:auto;font-size:10px;font-style:normal;display:grid}.side-support{background:#17472d;border-radius:12px;margin:auto 2px 20px;padding:15px}.side-support span{font-size:12px;font-weight:700}.side-support p{color:#9dc5b0;margin:4px 0 10px;font-size:10px}.side-support a{color:#7de4ad;font-size:11px;font-weight:700}.logout{color:#9bbeab;background:0 0;border:0;border-top:1px solid #24533a;gap:10px;padding:17px 10px 0;font-weight:600;display:flex}.logout svg{width:18px}.portal-main{flex:1;min-width:0;margin-left:244px}.portal-header{border-bottom:1px solid var(--line);z-index:20;background:#fff;justify-content:space-between;align-items:center;height:76px;padding:0 30px;display:flex;position:sticky;top:0}.portal-header>div:first-of-type span{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:10px}.portal-header h1{font-size:19px}.header-user{align-items:center;gap:9px;display:flex}.header-user>div:nth-of-type(2){flex-direction:column;display:flex}.header-user b{font-size:12px}.header-user span{color:var(--muted);font-size:10px}.header-user>svg{width:15px}.avatar{width:38px;height:38px;color:var(--primary);background:#daf7e8;border-radius:10px;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.avatar.large{border-radius:15px;width:58px;height:58px;font-size:17px}.notification{background:#f2f7f4;border:0;border-radius:10px;place-items:center;width:38px;height:38px;margin-right:12px;display:grid;position:relative}.notification svg{width:18px}.notification i{background:var(--red);border:2px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:8px}.portal-content{max-width:1450px;margin:auto;padding:28px}.welcome{background:linear-gradient(110deg, var(--ui-primary), #24a862);color:#fff;border-radius:18px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:28px 32px;display:flex;position:relative;overflow:hidden}.welcome:after{content:"";border:45px solid #ffffff0d;border-radius:50%;width:220px;height:220px;position:absolute;top:-100px;right:150px}.welcome h2{color:#fff;margin:4px 0;font-size:24px}.welcome p,.welcome span{color:#d6f6e5;margin:0;font-size:12px}.welcome .btn{color:var(--primary);z-index:1;background:#fff}.metrics{gap:14px;margin-bottom:20px;display:grid}.metrics.six{grid-template-columns:repeat(6,1fr)}.metrics.four{grid-template-columns:repeat(4,1fr)}.metrics.three{grid-template-columns:repeat(3,1fr)}.metric{background:#fff;border:1px solid #e3efe9;border-radius:13px;gap:12px;min-width:0;padding:17px;display:flex}.metric-icon{background:var(--soft);width:38px;height:38px;color:var(--primary);border-radius:9px;flex:none;place-items:center;display:grid}.metric-icon svg{width:19px}.metric>div:last-child{flex-direction:column;min-width:0;display:flex}.metric span{color:var(--muted);white-space:nowrap;font-size:10px}.metric strong{white-space:nowrap;margin-top:3px;font:800 18px Plus Jakarta Sans}.metric small{color:var(--muted);font-size:9px}.dash-grid{grid-template-columns:1.15fr .85fr;gap:20px;margin-bottom:20px;display:grid}.panel{background:#fff;border:1px solid #e1eee7;border-radius:14px;padding:20px}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.panel-heading h2{font-size:15px}.panel-heading>a,.panel-heading>span{color:var(--primary);align-items:center;gap:3px;font-size:11px;font-weight:700;display:flex}.panel-heading svg{width:13px}.simple-list>div{border-bottom:1px solid #edf3f0;align-items:center;gap:11px;padding:11px 0;display:flex}.simple-list>div:last-child{border:0}.simple-list>div>div:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.simple-list b{font-size:12px}.simple-list span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.date-tile,.date-box{background:var(--soft);border-radius:8px;flex-direction:column;justify-content:center;width:39px;height:43px;align-items:center!important;display:flex!important}.date-tile b,.date-box b{font-size:15px}.date-tile span,.date-box span{text-transform:uppercase;font-size:8px}.badge{white-space:nowrap;color:#5f7e6d;background:#eef4f1;border-radius:20px;padding:4px 8px;font-size:9px;font-weight:800;display:inline-flex}.badge-active,.badge-completed,.badge-paid,.badge-present,.badge-approved{color:#197657;background:#e4f5ee}.badge-pending,.badge-pending_approval,.badge-pending_disbursement,.badge-unprocessed{color:#9c641b;background:#fff2dd}.badge-overdue,.badge-inactive,.badge-cancelled,.badge-rejected{color:#ad4545;background:#fde9e9}.badge-scheduled,.badge-rescheduled{color:var(--ui-primary);background:#e6faef}.page-heading{justify-content:space-between;align-items:end;margin-bottom:24px;display:flex}.page-heading h2{font-size:23px}.page-heading p{margin:5px 0 0;font-size:12px}.filters{gap:10px;margin-bottom:16px;display:flex}.search{flex:1;position:relative}.search svg{width:18px;color:var(--muted);position:absolute;top:11px;left:12px}.search input{padding-left:39px}.filters select{width:180px}.cards-list{flex-direction:column;gap:11px;display:flex}.enrollment-card{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:1.1fr 1.3fr .7fr;align-items:center;gap:25px;padding:18px;display:grid}.enroll-main{gap:12px;display:flex}.enroll-main h3{font-size:14px}.title-row{align-items:center;gap:8px;display:flex}.enroll-main p,.enroll-main span,.enroll-needs p{margin:3px 0;font-size:11px}.enroll-needs small,.enroll-assignment small{text-transform:uppercase;color:var(--muted);letter-spacing:.7px;font-size:9px}.enroll-assignment{flex-direction:column;align-items:start;gap:5px;display:flex}.enroll-assignment b,.enroll-assignment span{font-size:12px}.teacher-admin-grid,.student-cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.teacher-admin-card,.student-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:18px}.teacher-admin-top{align-items:center;gap:11px;display:flex}.teacher-admin-top>div:nth-child(2){flex:1}.teacher-admin-top h3,.student-card h3{font-size:14px}.teacher-admin-top p,.student-card p{margin:3px 0;font-size:11px}.teacher-tags{gap:6px;margin:14px 0;display:flex}.teacher-tags span{background:var(--soft);color:var(--primary);border-radius:5px;padding:4px 7px;font-size:9px;font-weight:700}.bio{min-height:38px;font-size:11px}.teacher-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:.4fr 1fr;margin:12px 0;padding:10px 0;display:grid}.teacher-stats span{color:var(--muted);flex-direction:column;font-size:9px;display:flex}.teacher-stats b{color:var(--ink);font-size:11px}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:13px;overflow:auto}.table-wrap table{border-collapse:collapse;width:100%;min-width:780px}.table-wrap th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;background:#f4faf7;padding:12px 15px;font-size:9px}.table-wrap td{border-top:1px solid #edf3f0;padding:13px 15px;font-size:11px}.table-wrap td small{color:var(--muted);margin-top:3px;display:block}.calendar-toolbar{justify-content:space-between;align-items:center;margin:25px 0 13px;display:flex}.calendar-toolbar h2{font-size:18px}.calendar-toolbar>div:first-child span{color:var(--muted);font-size:11px}.legend{gap:12px;font-size:10px;display:flex}.dot{border-radius:50%;width:7px;height:7px;margin-right:4px;display:inline-block}.dot.blue{background:var(--primary)}.dot.green{background:var(--green)}.dot.orange{background:var(--orange)}.calendar-list{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.calendar-day{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;padding:15px;display:grid}.calendar-day:last-child{border:0}.day-label{flex-direction:column;padding:10px;display:flex}.day-label b{font-size:12px}.day-label span{color:var(--muted);font-size:10px}.calendar-event{border:0;border-left:3px solid var(--primary);text-align:left;background:#f1fcf6;border-radius:8px;align-items:center;gap:14px;width:100%;margin:3px 0;padding:11px;display:flex}.calendar-event:hover{filter:brightness(.97)}.calendar-event>div{flex:1}.calendar-event b{font-size:12px}.calendar-event p{margin:2px 0;font-size:10px}.calendar-event>svg{width:15px}.event-time{font-size:11px;font-weight:800}.event-completed{border-color:var(--green);background:#eff9f5}.event-pending_approval{border-color:var(--orange);background:#fff8eb}.finance-head{grid-template-columns:1fr 1fr auto;gap:15px;margin-bottom:18px;display:grid}.finance-head>div{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;padding:17px;display:flex}.finance-head span{color:var(--muted);font-size:10px}.finance-head b{font-size:20px}.tabs-static{border-bottom:1px solid var(--line);gap:20px;margin-bottom:5px;display:flex}.tabs-static>*{padding:12px 4px;font-size:12px}.tabs-static b{color:var(--primary);border-bottom:2px solid var(--primary)}.invoice-list{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.invoice-list>div{border-bottom:1px solid var(--line);grid-template-columns:1.5fr .8fr .5fr .5fr auto;align-items:center;gap:12px;padding:13px 16px;display:grid}.invoice-list>div:last-child{border:0}.invoice-no{align-items:center;gap:10px;display:flex}.invoice-no svg{color:var(--primary);width:20px}.invoice-no>div,.invoice-due{flex-direction:column;display:flex}.invoice-no b,.invoice-list>div>b{font-size:11px}.invoice-no span,.invoice-due>*{color:var(--muted);font-size:9px}.subheading{margin:30px 0 12px;font-size:17px}.notification-list{border:1px solid var(--line);background:#fff;border-radius:13px}.notification-list>div{border-bottom:1px solid var(--line);gap:13px;padding:17px;display:flex}.notif-icon{background:var(--soft);width:38px;height:38px;color:var(--primary);border-radius:9px;place-items:center;display:grid}.notif-icon svg{width:18px}.notification-list>div>div:last-child{flex:1}.notification-list b{margin-right:8px;font-size:12px}.notification-list pre{white-space:pre-wrap;color:var(--muted);background:#f5f9f7;border-radius:7px;padding:9px;font:11px DM Sans}.notification-list small{color:var(--muted);font-size:9px}.activity-list{border:1px solid var(--line);background:#fff;border-radius:12px;padding:4px 16px}.activity-list>div{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px;display:flex}.activity-list i{background:var(--accent);border-radius:50%;width:8px;height:8px}.activity-list>div>div{flex:1}.activity-list b{text-transform:capitalize;font-size:11px}.activity-list p,.activity-list span{color:var(--muted);margin:2px 0;font-size:9px}.teacher-welcome{background:linear-gradient(110deg,#1b7f78,#3c9f91)}.student-card{grid-template-columns:auto 1fr;align-items:center;gap:12px;display:grid}.student-card dl{border-top:1px solid var(--line);grid-column:1/-1;margin:13px 0 0;padding-top:10px}.student-card dl div{margin-bottom:8px}.student-card dt,.session-detail dt{text-transform:uppercase;color:var(--muted);font-size:9px}.student-card dd,.session-detail dd{margin:2px 0;font-size:11px}.report-row{border:1px solid var(--line);background:#fff;border-radius:11px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:15px;padding:13px;display:grid}.report-row h3{font-size:12px}.report-row p{margin:3px 0;font-size:10px}.parent-welcome{background:linear-gradient(110deg,#7952a3,#52ae7d)}.parent-grid{grid-template-columns:1.25fr .75fr;gap:20px;margin-bottom:20px;display:grid}.next-session,.invoice-highlight{border:1px solid var(--line);background:#fff;border-radius:14px;padding:20px}.session-date{align-items:center;gap:13px;display:flex}.session-date h3{font-size:14px}.session-date p,.session-date span{color:var(--muted);margin:2px 0;font-size:10px}.session-date span{gap:5px;display:flex}.session-date svg{width:14px}.address-line{background:#f5f9f7;border-radius:8px;margin-top:12px;padding:9px;font-size:10px}.invoice-highlight{background:linear-gradient(145deg, #144d2f, var(--ui-primary));color:#fff;position:relative}.invoice-highlight>span{text-transform:uppercase;letter-spacing:1px;font-size:10px}.invoice-highlight .badge{float:right}.invoice-highlight h2{color:#fff;margin:15px 0 3px;font-size:27px}.invoice-highlight p{color:#c4e6d4;font-size:10px}.invoice-highlight .btn{color:var(--primary);box-shadow:none;background:#fff;width:100%;margin-top:5px}.latest-report>div:first-child{align-items:center;gap:10px;display:flex}.latest-report>div:first-child>div:last-child{flex-direction:column;display:flex}.latest-report b,.latest-report h4{font-size:12px}.latest-report span{color:var(--muted);font-size:9px}.latest-report h4{margin:15px 0 2px}.latest-report p{margin:4px 0;font-size:11px}.latest-report a{color:var(--primary);align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.latest-report svg{width:13px}.approval{background:#fff8e9;border:1px solid #f0d9a7;border-radius:12px;align-items:center;gap:13px;margin-bottom:13px;padding:15px;display:flex}.approval>svg{color:var(--orange)}.approval>div:nth-child(2){flex:1}.approval b{font-size:12px}.approval p{margin:3px 0;font-size:10px}.approval small{font-size:9px}.approval>div:last-child{gap:7px;display:flex}.report-cards{grid-template-columns:1fr 1fr;gap:16px;display:grid}.report-cards article{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.report-cards header{border-bottom:1px solid var(--line);justify-content:space-between;padding:17px;display:flex}.report-cards header>div{gap:10px;display:flex}.report-cards h3{font-size:13px}.report-cards header p{margin:3px 0;font-size:9px}.report-body{grid-template-columns:1fr 1fr;gap:13px;padding:17px;display:grid}.report-body .wide{grid-column:1/-1}.report-body small{color:var(--muted);text-transform:uppercase;font-size:9px}.report-body p{margin:4px 0;font-size:11px}.report-cards footer{background:#f2fbf6;padding:13px 17px}.report-cards footer b{font-size:10px}.report-cards footer p{margin:3px 0;font-size:11px}.invoice-parent-list{flex-direction:column;gap:12px;display:flex}.invoice-parent-list article{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:1fr 1fr auto;align-items:center;gap:20px;padding:18px;display:grid}.invoice-paper{align-items:center;gap:12px;display:flex}.invoice-paper>svg{background:var(--soft);width:38px;height:38px;color:var(--primary);border-radius:9px;padding:9px}.invoice-paper small{color:var(--muted);font-size:9px}.invoice-paper h3{font-size:14px}.invoice-paper p,.invoice-parent-list article>div:nth-child(2) p{margin:3px 0;font-size:10px}.invoice-parent-list article>div:nth-child(2) h2{margin-top:8px;font-size:18px}.paid-check{color:var(--green);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.paid-check svg{width:19px}.empty{text-align:center;color:var(--muted);padding:35px}.empty-icon{font-size:25px}.empty b{color:var(--ink);font-size:13px;display:block}.empty p{margin:4px;font-size:10px}.modal-backdrop{z-index:100;background:#0722149e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:min(650px,100%);max-height:90vh;padding:24px;overflow:auto;box-shadow:0 30px 80px #00000040}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-head h2{font-size:19px}.modal-head .icon-btn{place-items:center;display:grid}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.session-detail .detail-hero{background:#f4faf7;border-radius:11px;align-items:center;gap:12px;padding:15px;display:flex}.detail-hero h3{font-size:15px}.detail-hero p{margin:3px;font-size:11px}.session-detail dl{grid-template-columns:1fr 2fr 1fr;gap:12px;display:grid}.existing-report{background:#edf8f3;border-radius:10px;padding:13px;font-size:11px}.existing-report p{margin:5px 0}.existing-report span{color:var(--muted)}.snapshot-note,.alert{background:var(--soft);color:var(--primary);border-radius:8px;padding:10px 12px;font-size:11px}.alert{align-items:center;gap:7px;margin:10px 0;display:flex}.alert.error{color:#a43838;background:#fdecec}.alert.success{color:#237453;background:#e8f6ef}.alert.info{display:block}.check-sessions{border:1px solid var(--line);border-radius:8px;padding:7px}.check-sessions label{gap:8px;padding:8px;font-weight:500;display:flex}.loading-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.loading-grid div{background:linear-gradient(100deg,#e8f1ec,#f4f8f6,#e8f1ec) 0 0/200%;border-radius:14px;height:150px;animation:1.3s infinite shimmer}.spin{animation:1s linear infinite spin}.spin-slow{animation:2.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}.splash{text-align:center;height:100vh;color:var(--muted);place-content:center;display:grid}.splash-mark{background:var(--primary);color:#fff;border-radius:50%;place-items:center;width:60px;height:60px;margin:auto;font:700 32px Plus Jakarta Sans;display:grid}.pay-page{background:#f1f9f5;min-height:100vh}.pay-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:75px;padding:0 max(22px,50vw - 500px);display:flex}.pay-header>div{color:var(--green);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.pay-header svg{width:17px}.pay-shell{grid-template-columns:1.15fr .85fr;align-items:start;gap:22px;max-width:1000px;margin:42px auto;padding:0 20px;display:grid}.bill,.payment-box{border:1px solid var(--line);background:#fff;border-radius:16px;padding:27px}.bill-head,.bill-customer,.bill-items>div,.bill-total{justify-content:space-between;display:flex}.bill-head>div span{color:var(--muted);font-size:10px}.bill-head h1{margin-top:3px;font-size:23px}.bill-customer{background:#f4faf7;border-radius:10px;margin:24px 0;padding:15px}.bill-customer>div{flex-direction:column;display:flex}.bill-customer small{color:var(--muted);font-size:9px}.bill-customer b{margin:3px 0;font-size:12px}.bill-customer span{color:var(--muted);font-size:10px}.bill-items h3{margin-bottom:10px;font-size:12px}.bill-items>div{border-top:1px solid var(--line);padding:13px 0;font-size:11px}.bill-items span{align-items:center;gap:8px;display:flex}.bill-items svg{width:16px;color:var(--primary)}.bill-total{border-top:2px solid var(--ink);align-items:center;padding-top:17px}.bill-total span{font-size:12px}.bill-total b{font-size:23px}.bill-help{background:#fff8e8;border-radius:8px;margin-top:25px;padding:11px;font-size:9px}.bill-help a{color:var(--primary);font-weight:700}.payment-box{text-align:center}.qris-logo{letter-spacing:2px;color:#d9272e;margin-bottom:12px;font:700 21px Plus Jakarta Sans}.payment-box h2{font-size:20px}.payment-box>p{font-size:11px}.qris-benefits{text-align:left;background:#f5faf7;border-radius:10px;flex-direction:column;align-items:start;gap:9px;margin:20px 0;padding:15px;font-size:11px;display:flex}.qris-benefits span{gap:7px;display:flex}.qris-benefits svg{width:15px;color:var(--green)}.payment-box>.btn{width:100%}.qr-image{border:1px solid var(--line);border-radius:10px;width:235px;height:235px;margin:15px auto;padding:7px}.qr-image img{width:100%}.qris-amount{background:#f5faf7;border-radius:8px;justify-content:space-between;align-items:center;padding:11px;display:flex}.qris-amount span{font-size:10px}.qris-amount b{font-size:17px}.expiry{color:var(--orange);justify-content:center;align-items:center;gap:5px;margin:10px;font-size:10px;display:flex}.expiry svg{width:14px}.copy-id{color:var(--primary);background:0 0;border:0;align-items:center;gap:5px;margin:auto;font-size:10px;display:flex}.copy-id svg{width:14px}.polling{color:var(--muted);justify-content:center;align-items:center;gap:7px;padding:13px;font-size:10px;display:flex}.polling svg{width:14px}.demo-sim{border-top:1px dashed #c9dcd2;margin-top:4px;padding-top:13px}.demo-sim b{color:#6336a8;font-size:10px}.demo-sim p{margin:4px;font-size:9px}.pay-footer{text-align:center;color:var(--muted);padding:20px;font-size:9px}.pay-loading,.pay-error,.pay-success{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:30px;display:flex}.pay-loading svg{width:38px;color:var(--primary)}.pay-error>div:nth-child(2){width:70px;height:70px;color:var(--red);background:#fde9e9;border-radius:50%;place-items:center;margin:40px 0 15px;font-size:35px;display:grid}.pay-error h1{font-size:25px}.pay-error p{max-width:450px}.success-page{background:linear-gradient(150deg,#eef8f4,#eafbf2)}.pay-success{max-width:620px;margin:auto}.success-ring{width:100px;height:100px;color:var(--green);background:#dff5eb;border-radius:50%;place-items:center;margin:45px 0 18px;display:grid}.success-ring svg{width:53px;height:53px}.pay-success>span{text-transform:uppercase;letter-spacing:2px;color:var(--green);font-size:10px;font-weight:800}.pay-success h1{margin:10px 0;font-size:30px}.pay-success p{font-size:13px}.receipt{background:#fff;border-radius:13px;width:100%;margin:20px 0;padding:8px 20px}.receipt>div{border-bottom:1px solid var(--line);justify-content:space-between;padding:12px;font-size:11px;display:flex}.receipt>div:last-child{border:0}.receipt span{color:var(--muted)}@media (width<=1050px){.public-header nav{box-shadow:var(--shadow);background:#fff;border-radius:12px;flex-direction:column;padding:18px;display:none;position:absolute;top:68px;left:15px;right:15px}.public-header nav.open{display:flex}.menu-btn{display:block}.header-actions .text-link{display:none}.hero{grid-template-columns:1fr;padding-top:60px}.hero-copy{text-align:center}.hero-copy .eyebrow,.proofs{justify-content:center}.hero-copy>p{margin:auto}.hero-actions{justify-content:center}.hero-visual{width:100%;max-width:600px;margin:auto}.quick-wrap{margin:20px}.quick-form,.program-grid,.metrics.six{grid-template-columns:repeat(3,1fr)}.teacher-admin-grid,.student-cards{grid-template-columns:1fr 1fr}.invoice-list>div{grid-template-columns:1.2fr .7fr .5fr .5fr}.invoice-list .btn{grid-column:1/-1}.sidebar{transition:all .25s;transform:translate(-100%)}.sidebar.open{transform:none}.portal-main{margin-left:0}.portal-header .menu-btn{display:block}.portal-header{justify-content:flex-start;gap:15px}.header-user{margin-left:auto}.mobile-only{display:block!important}.sidebar-top{justify-content:space-between;display:flex}.sidebar-top .icon-btn{color:#fff;display:block}}@media (width<=760px){.public-header{height:68px}.header-actions .btn{display:none}.hero{min-height:auto;padding-top:45px}.hero h1{letter-spacing:-1.8px;font-size:39px}.hero-copy>p{font-size:15px}.hero-actions{flex-direction:column}.proofs{text-align:left;grid-template-columns:1fr 1fr;display:grid}.hero-visual{height:360px}.learning-scene{inset:35px 25px 8px}.person{width:90px}.person .head{font-size:55px}.scene-table{width:110px}.fc-two{right:0}.quick-wrap{padding:22px}.quick-head{display:block}.quick-form{grid-template-columns:1fr}.section{padding:70px 20px}.program-grid,.steps,.teacher-showcase,.quotes{grid-template-columns:1fr}.needs{grid-template-columns:1fr;gap:20px;margin:0 18px 50px;padding:40px 25px}.needs-art{height:320px}.feature-split,.faq{grid-template-columns:1fr;gap:35px}.feature-grid{grid-template-columns:1fr}.closing{padding:50px 22px}.closing h2{font-size:30px}.auth-page{grid-template-columns:1fr}.auth-panel{padding:35px 24px}.auth-art{display:none}.register-shell{margin:20px auto;display:block}.register-shell aside{padding:10px}.register-shell aside h1{font-size:28px}.reg-steps,.privacy-note{display:none}.register-card{min-height:auto;padding:25px 20px}.step-mobile{color:var(--muted);align-items:center;gap:10px;margin-bottom:25px;font-size:10px;display:flex}.step-mobile span{background:#e5f0ea;border-radius:6px;flex:1;height:5px}.step-mobile i{background:var(--primary);border-radius:6px;height:100%;display:block}.form-grid,.form-grid.three{grid-template-columns:1fr}.portal-content{padding:17px 12px}.portal-header{padding:0 14px}.header-user>div:nth-of-type(2),.header-user>svg{display:none}.welcome{padding:22px}.welcome .btn{display:none}.metrics.six,.metrics.four,.metrics.three{grid-template-columns:1fr 1fr}.dash-grid,.parent-grid,.enrollment-card,.teacher-admin-grid,.student-cards,.report-cards{grid-template-columns:1fr}.calendar-day{grid-template-columns:1fr;padding:10px}.day-label{flex-direction:row;gap:5px;padding:4px 5px}.calendar-event{grid-template-columns:auto 1fr auto;display:grid}.calendar-event>svg,.legend{display:none}.finance-head{grid-template-columns:1fr}.invoice-list>div{grid-template-columns:1fr 1fr}.invoice-due{display:none}.invoice-parent-list article{grid-template-columns:1fr}.report-row{grid-template-columns:auto 1fr}.report-row .btn{grid-column:1/-1}.approval{flex-wrap:wrap;align-items:start}.approval>div:nth-child(2){flex-basis:80%}.modal{padding:19px}.session-detail dl{grid-template-columns:1fr}.pay-shell{grid-template-columns:1fr;margin:20px auto}.pay-header{padding:0 18px}.footer-main{grid-template-columns:1fr}.quick-wrap{margin:20px 12px}.fc-one{left:0}.float-card{transform:scale(.85)}.check-list{grid-template-columns:1fr}}.auth-page{font-family:var(--website-body-font,"Plus Jakarta Sans"), sans-serif}.auth-title h1,.auth-art h2{font-family:var(--website-heading-font,"Plus Jakarta Sans"), sans-serif}.auth-art{background:linear-gradient(145deg, var(--primary), color-mix(in srgb, var(--secondary), #103d25 55%))}.auth-art .eyebrow{color:color-mix(in srgb, var(--accent), #fff 45%)}.auth-template-centered{background:linear-gradient(145deg, color-mix(in srgb, var(--primary), #fff 90%), color-mix(in srgb, var(--secondary), #fff 82%));grid-template-columns:minmax(320px,520px);place-content:center;padding:28px;display:grid}.auth-template-centered .auth-panel{border:1px solid color-mix(in srgb, var(--primary), #fff 78%);max-width:none;box-shadow:0 24px 70px color-mix(in srgb, var(--primary), transparent 82%);background:#fff;border-radius:24px;margin:0;padding:44px 50px}.auth-template-centered .auth-art{display:none}@media (width<=760px){.auth-template-centered{padding:14px}.auth-template-centered .auth-panel{border-radius:18px;padding:30px 22px}}@media (width<=430px){.hero-visual{height:310px}.scene-window{height:90px}.scene-people{height:210px}.person .body{height:80px}.fc-two{bottom:20px}.program-grid,.metrics.six,.metrics.four,.metrics.three{grid-template-columns:1fr}.metric{padding:14px}.portal-header h1{font-size:15px}.notification{display:none}.calendar-event{grid-template-columns:auto 1fr}.calendar-event .badge{grid-column:2}.invoice-list>div{grid-template-columns:1fr}.bill,.payment-box{padding:20px}.pay-success h1{font-size:24px}}.landing-preview-bar{z-index:100;color:#684f00;background:#fff4ce;border-bottom:1px solid #ecd47b;justify-content:space-between;align-items:center;gap:15px;min-height:40px;padding:8px max(16px,50vw - 590px);font-size:12px;font-weight:700;display:flex;position:sticky;top:0}.landing-preview-bar button{color:#684f00;background:0 0;border:0;font-weight:700;text-decoration:underline}.hero-custom-image{object-fit:cover;width:calc(100% - 30px);height:calc(100% - 48px);box-shadow:var(--shadow);border-radius:32% 42% 24% 38%;position:absolute;inset:24px 15px}@media (width<=760px){.landing-preview-bar{align-items:flex-start}.landing-preview-bar button{white-space:nowrap}.hero-custom-image{width:calc(100% - 20px);height:calc(100% - 20px);inset:10px}}.finance-head .finance-actions{background:0 0;border:0;flex-direction:row;align-items:center;gap:7px;padding:0}.program-admin-list{border:1px solid var(--line);background:#fff;border-radius:13px;overflow:hidden}.program-admin-list>div{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:15px;padding:14px 17px;display:grid}.program-admin-list>div:last-child{border:0}.program-admin-list .program-icon{width:42px;height:42px;margin:0;font-size:20px}.program-admin-list h3{font-size:13px}.program-admin-list p{margin:3px 0;font-size:10px}.program-admin-list span{color:var(--muted);font-size:10px}.program-admin-list>b{font-size:11px}@media (width<=760px){.finance-head .finance-actions{grid-template-columns:1fr 1fr;display:grid}.finance-actions .btn:last-child{grid-column:1/-1}.program-admin-list>div{grid-template-columns:auto 1fr auto}.program-admin-list>div>.btn{grid-column:1/-1}.program-admin-list>div>b{display:none}}.settings-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.settings-grid>section{border:1px solid var(--line);background:#fff;border-radius:14px;padding:22px}.settings-user{align-items:center;gap:13px;display:flex}.settings-user h3,.settings-grid>section>h3{font-size:15px}.settings-user p{margin:3px 0;font-size:11px}.settings-grid dl{border-top:1px solid var(--line);margin:20px 0 0}.settings-grid dl>div{border-bottom:1px solid var(--line);justify-content:space-between;padding:12px 0;display:flex}.settings-grid dt{color:var(--muted);font-size:10px}.settings-grid dd{margin:0;font-size:11px;font-weight:700}.settings-grid>section:nth-child(2)>svg{background:var(--soft);width:38px;height:38px;color:var(--primary);border-radius:10px;padding:8px}.settings-grid>section:nth-child(2)>p{font-size:12px}.settings-grid>section:nth-child(2)>.btn{margin-top:8px}.admin-account-table table{min-width:900px}.admin-account-actions{flex-wrap:wrap;gap:6px;display:flex}.badge-super_admin{color:#6336a8;background:#eee7fb}.btn-tryout{color:#9a5a08;background:#fffaf0;border-color:#e2a23e}.btn-tryout:hover{color:#7e4805;background:#fff1d3}.tryout-hint{color:var(--muted);align-items:center;gap:4px;margin:-18px 0 24px;font-size:11px;display:flex}.tryout-hint a{color:var(--primary);align-items:center;gap:4px;font-weight:700;display:inline-flex}.free-tryout-promo{background:linear-gradient(115deg,#fff7e8,#eefcf5);border:1px solid #eadbbf;border-radius:22px;grid-template-columns:1fr auto auto;align-items:center;gap:35px;max-width:1180px;margin:70px auto 20px;padding:32px 36px;display:grid}.free-tryout-promo h2{margin:6px 0;font-size:25px}.free-tryout-promo p{margin:0;font-size:12px}.free-promo-points{gap:13px;display:flex}.free-promo-points span{white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:800;display:flex}.free-promo-points svg{width:17px;color:var(--green)}.public-tryout-label{color:#197657;background:#e7f6ee;border-radius:20px;margin-left:7px;padding:4px 7px;font-size:9px;font-weight:800;display:inline-flex}.tryout-list-card>.btn{width:100%;margin-top:13px}.free-tryout-page{background:#f4f9f6;min-height:100vh}.free-tryout-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:76px;padding:0 max(22px,50vw - 590px);display:flex}.free-tryout-header .back-link{margin:0}.free-tryout-page>main{max-width:1180px;margin:auto;padding:48px 22px 80px}.free-tryout-intro{grid-template-columns:1.05fr .75fr;align-items:center;gap:70px;min-height:590px;display:grid}.free-tryout-copy h1{letter-spacing:-2px;margin:17px 0;font-size:clamp(38px,5vw,60px);line-height:1.08}.free-tryout-copy>p{max-width:620px;font-size:17px}.free-tryout-copy>.btn{margin-top:24px}.free-tryout-copy>small{color:var(--muted);margin-top:10px;font-size:10px;display:block}.free-tryout-facts{gap:12px;margin-top:25px;display:flex}.free-tryout-facts span{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:11px;flex-direction:column;padding:12px 15px;font-size:10px;display:flex}.free-tryout-facts b{color:var(--ink);font-size:14px}.free-tryout-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:34px}.free-card-icon{background:linear-gradient(145deg, var(--ui-primary), #43ca82);color:#fff;border-radius:16px;place-items:center;width:62px;height:62px;display:grid}.free-card-icon svg{width:31px;height:31px}.free-tryout-card h2{margin:20px 0 7px;font-size:22px}.free-tryout-card p{font-size:12px}.free-tryout-card ul{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:8px 0;padding:12px 0;list-style:none}.free-tryout-card li{align-items:center;gap:8px;padding:6px 0;font-size:12px;font-weight:700;display:flex}.free-tryout-card li svg{width:17px;color:var(--green)}.free-tryout-card>div:last-child{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex}.free-tryout-card>div:last-child svg{width:16px;color:var(--primary)}.free-exam-shell{max-width:1100px;margin:auto}.free-result{background:linear-gradient(110deg, var(--ui-primary), #24a862);color:#fff;border-radius:16px;align-items:center;gap:24px;margin-bottom:15px;padding:24px 28px;display:flex}.free-result h1{color:#fff;margin:4px 0;font-size:24px}.free-result p,.free-result>div>span{color:#d8f5e6;font-size:11px}.free-result-cta{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;margin-bottom:15px;padding:18px 20px;display:grid}.free-result-cta h2{font-size:16px}.free-result-cta p{margin:3px 0;font-size:10px}.free-result-cta .btn{white-space:nowrap}.free-retry-bar{background:#fff8e9;border:1px solid #f0d9a7;border-radius:14px;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px;padding:15px 18px;display:flex}.free-retry-bar>div{align-items:center;gap:10px;display:flex}.free-retry-bar>div>svg{color:var(--orange)}.free-retry-bar span{flex-direction:column;display:flex}.free-retry-bar b{font-size:12px}.free-retry-bar small{color:var(--muted);margin-top:2px;font-size:9px}@media (width<=900px){.free-tryout-promo{grid-template-columns:1fr}.free-promo-points{flex-wrap:wrap}.free-tryout-intro{grid-template-columns:1fr;gap:30px}.free-result-cta{grid-template-columns:1fr 1fr}.free-result-cta>div{grid-column:1/-1}}@media (width<=760px){.tryout-hint{flex-wrap:wrap;justify-content:center;margin-top:-18px}.free-tryout-promo{gap:20px;margin:45px 12px 0;padding:25px}.free-promo-points{flex-direction:column}.free-tryout-header{height:68px;padding:0 15px}.free-tryout-header .logo b,.free-tryout-header .logo strong{display:none}.free-tryout-page>main{padding:30px 12px 70px}.free-tryout-intro{min-height:auto}.free-tryout-copy{text-align:center}.free-tryout-copy h1{font-size:38px}.free-tryout-copy>p{font-size:14px}.free-tryout-facts{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.free-tryout-facts span{padding:10px 6px}.free-tryout-card{padding:24px}.free-result{flex-direction:column;align-items:flex-start}.free-result-cta{grid-template-columns:1fr}.free-result-cta>div{grid-column:auto}.free-result-cta .btn{width:100%}.free-retry-bar{flex-direction:column;align-items:stretch}.free-retry-bar>.btn{width:100%}}.notification small{background:var(--red);color:#fff;border:2px solid #fff;border-radius:9px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:8px;font-weight:800;display:grid;position:absolute;top:-6px;right:-5px}.notification-metrics{grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:16px;display:grid}.notification-metrics>div{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:15px;display:grid}.notification-metrics svg{background:var(--soft);width:34px;height:34px;color:var(--primary);border-radius:9px;padding:8px}.notification-metrics span{color:var(--muted);font-size:11px}.notification-metrics b{font:800 20px Plus Jakarta Sans}.notification-tools{grid-template-columns:1fr 180px 180px;gap:10px;margin-bottom:14px;display:grid}.notification-tools select{background:#fff;border:1px solid #cee4d8;border-radius:9px;outline:none;padding:10px 12px;font-size:12px}.notification-center-list{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.notification-center-list article{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;gap:14px;padding:17px 18px;display:grid;position:relative}.notification-center-list article:last-child{border-bottom:0}.notification-center-list article.unread{background:#f6fdf9}.notification-center-list article.unread:before{content:"";background:var(--primary);width:3px;position:absolute;top:0;bottom:0;left:0}.notif-channel{background:var(--soft);width:42px;height:42px;color:var(--primary);border-radius:11px;place-items:center;display:grid}.notif-channel.whatsapp{color:#23835d;background:#e8f7ef}.notif-channel svg{width:19px}.notif-title{align-items:center;gap:7px;display:flex}.notif-title h3{font-size:13px}.unread-label{color:var(--primary);font-size:9px;font-weight:800}.notif-copy>p{color:var(--ink);overflow-wrap:anywhere;margin:5px 0 2px;font-size:12px;line-height:1.45}.notif-copy>small{color:var(--muted);overflow-wrap:anywhere;font-size:11px;display:block}.notif-meta{color:#7a9a89;align-items:center;gap:9px;margin-top:9px;font-size:10px;display:flex}.notif-meta span+span:before,.notif-meta time:before{content:"•";color:#b2c6bb;margin-right:9px}.notif-error{color:#a43838;background:#fdecec;border-radius:6px;margin-top:8px;padding:7px 9px;font-size:10px}.notif-actions{align-items:start;gap:5px;display:flex}.notif-actions button,.notif-actions a{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);background:#fff;border-radius:8px;place-items:center;display:grid}.notif-actions button:hover,.notif-actions a:hover{color:var(--primary);background:var(--soft);border-color:#a9dfc2}.notif-actions svg{width:15px}.notification-empty{border:1px solid var(--line);text-align:center;background:#fff;border-radius:14px;padding:25px}.notification-empty .empty{padding:20px}.notification-skeleton{gap:8px;display:grid}.notification-skeleton i{background:linear-gradient(100deg,#e8f1ec,#f5f9f7,#e8f1ec) 0 0/200%;border-radius:12px;height:86px;animation:1.3s infinite shimmer;display:block}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:16px;display:flex}.pagination span{color:var(--muted);font-size:11px}.pagination svg{width:14px}@media (width<=760px){.notification-metrics{grid-template-columns:1fr 1fr 1fr;gap:7px}.notification-metrics>div{flex-direction:column;align-items:start;gap:4px;padding:11px;display:flex}.notification-metrics svg{width:30px;height:30px}.notification-metrics span{font-size:9px}.notification-metrics b{font-size:17px}.notification-tools{grid-template-columns:1fr 1fr}.notification-tools .search{grid-column:1/-1}.notification-tools select{width:100%;min-width:0;font-size:11px}.notification-center-list article{grid-template-columns:auto minmax(0,1fr);gap:10px;padding:14px 12px}.notif-channel{width:36px;height:36px}.notif-title{flex-wrap:wrap;align-items:start}.notif-title h3{flex-basis:100%;font-size:12px}.notif-copy>p{font-size:12px}.notif-meta{flex-direction:column;align-items:start;gap:2px;font-size:10px}.notif-meta span+span:before,.notif-meta time:before{display:none}.notif-actions{grid-column:2;justify-content:flex-start}.pagination{justify-content:space-between;gap:6px}.pagination span{text-align:center;font-size:9px}.page-heading>.btn{padding:10px;font-size:0}.page-heading>.btn svg{margin:0}.notification-empty{padding:15px}}.notification-tools .search input{background:#fff;border:1px solid #cee4d8;border-radius:9px;outline:none;width:100%;height:42px;padding:10px 12px 10px 39px;font-size:12px}.notification-tools .search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2cb86d1a}.invoice-list:not(.compact){background:0 0;border:0;gap:8px;display:grid;overflow:visible}.invoice-list:not(.compact) .invoice-list-heading,.invoice-list:not(.compact) .invoice-row{grid-template-columns:minmax(210px,1.7fr) minmax(110px,.8fr) minmax(105px,.75fr) minmax(105px,.7fr) minmax(145px,auto);align-items:center;gap:14px;display:grid}.invoice-list:not(.compact) .invoice-list-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.55px;padding:0 16px 5px;font-size:9px;font-weight:800}.invoice-list:not(.compact) .invoice-row{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:0;padding:13px 16px}.invoice-list:not(.compact) .invoice-no,.invoice-list:not(.compact) .invoice-no>div{min-width:0}.invoice-list:not(.compact) .invoice-no b,.invoice-list:not(.compact) .invoice-no span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.invoice-list:not(.compact) .invoice-due{min-width:0}.invoice-list:not(.compact) .invoice-amount{white-space:nowrap;text-align:right;font-size:12px}.invoice-list:not(.compact) .invoice-row>.badge{justify-self:start}.invoice-action{justify-content:flex-end;display:flex}.invoice-action>span{color:#9ab2a5;font-size:12px}.invoice-list.compact .invoice-row{grid-template-columns:1.2fr .7fr .5fr .5fr}@media (width<=1050px){.invoice-list:not(.compact) .invoice-list-heading,.invoice-list:not(.compact) .invoice-row{grid-template-columns:minmax(0,1.5fr) minmax(100px,.8fr) auto auto;gap:10px}.invoice-list:not(.compact) .invoice-list-heading span:nth-child(5){display:none}.invoice-list:not(.compact) .invoice-row .invoice-action{grid-column:1/-1;justify-content:flex-start}.invoice-list:not(.compact) .invoice-row .invoice-due{grid-area:1/2}.invoice-list:not(.compact) .invoice-row>.badge{grid-area:1/4}.invoice-list:not(.compact) .invoice-row .invoice-amount{grid-area:1/3}.invoice-list:not(.compact) .invoice-row .invoice-no{grid-area:1/1}}@media (width<=760px){.invoice-list:not(.compact) .invoice-list-heading{display:none}.invoice-list:not(.compact) .invoice-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:13px}.invoice-list:not(.compact) .invoice-row .invoice-no{grid-area:auto/1/auto/-1}.invoice-list:not(.compact) .invoice-row .invoice-due{grid-area:auto/1;align-items:flex-start}.invoice-list:not(.compact) .invoice-row .invoice-amount{text-align:right;grid-area:2/2}.invoice-list:not(.compact) .invoice-row>.badge{grid-area:3/1}.invoice-list:not(.compact) .invoice-row .invoice-action{grid-area:3/2;justify-content:flex-end}.invoice-list:not(.compact) .invoice-action .btn{white-space:nowrap}.invoice-list.compact .invoice-row{grid-template-columns:1fr 1fr}}.enrollment-card{grid-template-columns:minmax(150px,1.3fr) minmax(125px,1.1fr) minmax(75px,.65fr) minmax(135px,1.2fr) minmax(110px,1fr) minmax(140px,1.2fr);align-items:start;gap:12px;padding:14px}.enroll-student{align-items:center;gap:9px;min-width:0;display:flex}.enroll-student>div:last-child{min-width:0}.enroll-student h3{overflow-wrap:anywhere;font-size:12px}.enroll-student span,.enroll-program span,.enroll-program b,.enroll-assignment b,.enroll-assignment span{overflow-wrap:anywhere;font-size:10px;line-height:1.4;display:block}.enroll-program,.enroll-status,.enroll-needs,.enroll-schedule,.enroll-assignment{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.enroll-program small,.enroll-status small,.enroll-needs small,.enroll-schedule small,.enroll-assignment small{text-transform:uppercase;letter-spacing:.45px;color:var(--muted);font-size:8px}.enroll-program b,.enroll-assignment b{font-size:10px}.enroll-needs p,.enroll-schedule p{overflow-wrap:anywhere;margin:0;font-size:10px;line-height:1.45}.enroll-assignment .btn{white-space:normal;text-align:center;padding:7px 8px;font-size:9px;line-height:1.2}@media (width<=1200px){.enrollment-card{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.7fr);gap:12px}.enroll-student{grid-column:span 2}.enroll-status{grid-area:1/3}.enroll-program{grid-column:1}.enroll-needs{grid-column:2}.enroll-schedule{grid-column:3}.enroll-assignment{border-top:1px solid var(--line);flex-flow:wrap;grid-column:1/-1;align-items:center;padding-top:9px}.enroll-assignment small{margin-right:auto}}@media (width<=760px){.enrollment-card{grid-template-columns:1fr 1fr;gap:12px;padding:13px}.enroll-student{grid-column:1/-1}.enroll-status{grid-area:2/2;align-self:center}.enroll-program{grid-column:1/-1}.enroll-needs,.enroll-schedule{grid-column:auto}.enroll-assignment{grid-column:1/-1}}.enrollment-card{grid-template-columns:minmax(145px,1.25fr) minmax(115px,1fr) minmax(70px,.6fr) minmax(125px,1.1fr) minmax(105px,.9fr) minmax(110px,.95fr) minmax(125px,1.1fr)}.enroll-teacher{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.enroll-teacher small{text-transform:uppercase;letter-spacing:.45px;color:var(--muted);font-size:8px}.enroll-teacher b,.enroll-teacher span{overflow-wrap:anywhere;font-size:10px;line-height:1.4}.enroll-assignment{border:0;justify-content:center;align-items:flex-start;padding:0}.enroll-assignment .btn{width:100%}@media (width<=1200px){.enroll-teacher{grid-area:3/1}.enroll-assignment{border:0;grid-area:3/2/auto/-1;justify-content:flex-start;align-self:center;padding:0}.enroll-assignment .btn{width:auto}}@media (width<=760px){.enroll-teacher{grid-area:5/1}.enroll-assignment{grid-area:5/2;align-self:center}.enroll-assignment .btn{width:100%}}@media (width<=1200px){.enroll-student{grid-area:1/1/auto/3}.enroll-status{grid-area:1/3}.enroll-program{grid-area:2/1}.enroll-needs{grid-area:2/2}.enroll-schedule{grid-area:2/3}.enroll-teacher{grid-area:3/1}.enroll-assignment{grid-area:3/2/auto/4}}@media (width<=760px){.enrollment-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.enroll-student{grid-area:1/1/auto/3}.enroll-program{grid-area:2/1}.enroll-status{grid-area:2/2}.enroll-needs{grid-area:3/1}.enroll-schedule{grid-area:3/2}.enroll-teacher{grid-area:4/1}.enroll-assignment{grid-area:4/2}}.learning-progress{border:1px solid var(--line);background:#f5faf7;border-radius:9px;grid-column:1/-1;padding:11px 12px}.learning-progress-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.learning-progress-heading span{color:var(--muted);font-size:10px}.learning-progress-heading b{font-size:11px}.learning-progress-track{background:#e3efe9;border-radius:99px;height:8px;margin:8px 0 5px;overflow:hidden}.learning-progress-track i{background:linear-gradient(90deg, var(--ui-secondary), #3aab91);border-radius:inherit;height:100%;transition:width .25s;display:block}.learning-progress>small,.progress-field-help{color:var(--muted);font-size:9px}.progress-chart{border:1px solid var(--line);background:#fff;border-radius:12px;margin:16px 0 24px;padding:14px}.progress-chart header{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-chart header div{flex-direction:column;gap:3px;display:flex}.progress-chart header b{font-size:12px}.progress-chart header span{color:var(--muted);font-size:10px}.progress-chart svg{width:100%;height:auto;margin-top:8px;display:block;overflow:visible}.progress-chart svg line{stroke:#e4efe9;stroke-width:1px}.progress-chart svg polyline{fill:none;stroke:var(--ui-secondary);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.progress-chart svg circle{fill:#fff;stroke:var(--ui-secondary);stroke-width:3px}.progress-chart svg text{fill:#739281;font:10px DM Sans}.progress-chart-empty{color:var(--muted);text-align:center;background:#f5faf7;border:1px dashed #cbe1d5;border-radius:10px;margin:16px 0 24px;padding:18px;font-size:11px}.progress-field-help{margin:-8px 0 14px;display:block}.finance-tabs{border-bottom:1px solid var(--line);gap:20px;margin-bottom:14px;display:flex;overflow-x:auto}.finance-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:12px 4px;font:700 12px DM Sans}.finance-tabs button:hover{color:var(--primary)}.finance-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.finance-tabs button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:4px}.finance-tab-panel>.empty{border:1px solid var(--line);background:#fff;border-radius:12px}.notification-heading-actions{align-items:center;gap:8px;display:flex}.notification-heading-actions .btn{padding:10px 14px;font-size:12px}.notification-heading-actions svg{width:16px}.whatsapp-integration{border-radius:11px;align-items:center;gap:12px;margin-bottom:14px;padding:13px 15px;display:flex}.whatsapp-integration.demo{color:#9a631c;background:#fff6e7}.whatsapp-integration.ready{color:#237453;background:#e8f7ef}.whatsapp-integration>svg{flex:none;width:24px}.whatsapp-integration b{font-size:12px}.whatsapp-integration p{color:inherit;margin:3px 0 0;font-size:10px}.template-help{margin:0 0 14px;font-size:11px}.whatsapp-template-list{flex-direction:column;gap:8px;display:flex}.whatsapp-template-list details{border:1px solid var(--line);border-radius:10px;overflow:hidden}.whatsapp-template-list summary{cursor:pointer;background:#f8fbf9;justify-content:space-between;align-items:center;padding:12px 14px;list-style:none;display:flex}.whatsapp-template-list summary::-webkit-details-marker{display:none}.whatsapp-template-list summary>div{flex-direction:column;gap:3px;display:flex}.whatsapp-template-list summary b{font-size:12px}.whatsapp-template-list summary code{color:var(--primary);font-size:10px}.whatsapp-template-list summary>svg{width:16px;transition:all .2s}.whatsapp-template-list details[open] summary>svg{transform:rotate(180deg)}.template-detail{padding:14px}.template-detail>span{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:9px;font-weight:800;display:block}.message-preview{white-space:pre-wrap;background:#e8f7ef;border-radius:11px 11px 3px;margin:0 0 14px 35px;padding:13px;font-size:11px;line-height:1.6}.template-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#d9f5e6;background:#103923;border-radius:8px;margin:0 0 8px;padding:12px;font:10px/1.6 monospace}.template-detail small{color:var(--muted);font-size:9px;display:block}.copy-template{color:var(--primary);background:0 0;border:0;align-items:center;gap:5px;margin:10px 0 0 auto;font-size:10px;font-weight:800;display:flex}.copy-template svg{width:13px}.reminder-tabs{border-bottom:1px solid var(--line);gap:5px;margin:-3px 0 18px;display:flex}.reminder-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:11px 14px;font-size:12px;font-weight:700;display:flex}.reminder-tabs button:hover{color:var(--primary)}.reminder-tabs button.active{border-bottom-color:var(--primary);color:var(--primary)}.reminder-tabs svg{width:16px}.meta-status-card{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:16px;padding:20px;display:grid}.meta-status-card.ready{background:#f7fcf9;border-color:#b9dfce}.meta-status-card.demo{background:#fffcf5;border-color:#ead7ae}.meta-status-icon{color:#23835d;background:#e8f7ef;border-radius:12px;place-items:center;width:48px;height:48px;display:grid}.meta-status-card.demo .meta-status-icon{color:#a06a20;background:#fff1d8}.meta-status-icon svg{width:23px}.meta-status-card span{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-size:9px;font-weight:800}.meta-status-card h2{margin:3px 0;font-size:17px}.meta-status-card p{margin:0;font-size:11px}.meta-integration-grid{grid-template-columns:.75fr 1.25fr;align-items:start;gap:16px;display:grid}.meta-config-card,.meta-template-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:20px}.meta-config-card dl{margin:0}.meta-config-card dl>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:11px 0;display:flex}.meta-config-card dt{color:var(--muted);font-size:10px}.meta-config-card dd{text-align:right;margin:0;font-size:11px;font-weight:700}.meta-setup-note{background:var(--soft);border-radius:10px;margin-top:16px;padding:14px}.meta-setup-note b{font-size:11px}.meta-setup-note ol{margin:8px 0;padding-left:17px;font-size:10px;line-height:1.7}.meta-setup-note code{color:var(--primary);font-weight:800}.meta-setup-note small{color:var(--muted);font-size:9px}.meta-template-card>p{margin:-5px 0 14px;font-size:11px}.student-card>.btn{width:100%;margin-top:14px}.student-no-sessions{color:var(--muted);text-align:center;margin-top:7px;font-size:10px;display:block}.current-schedule{border:1px solid var(--line);background:#f4faf7;border-radius:9px;flex-direction:column;gap:4px;margin:0 0 16px;padding:10px 12px;display:flex}.current-schedule small{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-size:9px}.current-schedule b{font-size:11px}.reschedule-student-summary{border:1px solid var(--line);background:#f6faf8;border-radius:10px;align-items:center;gap:11px;padding:12px;display:flex}.reschedule-student-summary>div{flex-direction:column;gap:3px;display:flex}.reschedule-student-summary b{font-size:12px}.reschedule-student-summary span{color:var(--muted);font-size:10px}.modal:has(.reschedule-student-summary){width:min(560px,100%)}.modal:has(.reschedule-student-summary) .field{margin:0 0 13px}:is(.modal:has(.reschedule-student-summary) .field input,.modal:has(.reschedule-student-summary) .field select,.modal:has(.reschedule-student-summary) .field textarea){min-height:44px}.modal:has(.reschedule-student-summary) .field textarea{min-height:86px}.modal:has(.reschedule-student-summary) .modal-actions .btn:last-child{min-width:190px}.student-reschedule-form{border:1px solid var(--line);background:#f7fbf9;border-radius:11px;margin-top:14px;padding:14px}.student-reschedule-form h4{font-size:12px}.student-reschedule-form>p{margin:5px 0 12px;font-size:10px;line-height:1.5}.student-reschedule-form .field{margin-bottom:11px;font-size:11px}.student-reschedule-form .field input,.student-reschedule-form .field select,.student-reschedule-form .field textarea{min-height:40px;font-size:11px}.student-reschedule-form .field textarea{min-height:70px}.student-reschedule-form>.alert{margin:7px 0}.student-reschedule-form>.btn{width:100%;padding:10px 12px;font-size:11px}.student-reschedule-form>.btn svg{width:15px}.schedule-view-tabs{background:#eaf3ee;border-radius:10px;align-items:center;gap:4px;width:max-content;margin:0 0 14px;padding:4px;display:flex}.schedule-view-tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:8px 14px;font-size:11px;font-weight:700}.schedule-view-tabs button.active{color:var(--primary);background:#fff;box-shadow:0 2px 6px #0d331f14}.calendar-toolbar .schedule-view-tabs{margin:0}.schedule-calendar{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.schedule-calendar>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.schedule-calendar>header h3{text-transform:capitalize;font-size:15px}.schedule-calendar>header span{color:var(--muted);margin-top:3px;font-size:10px;display:block}.calendar-month-actions button{border:1px solid var(--line);min-width:34px;height:32px;color:var(--ink);background:#fff;border-radius:7px;padding:0 9px;font-size:10px;font-weight:700}.calendar-month-actions button:hover{background:var(--soft);color:var(--primary)}.calendar-month-actions svg{width:15px;height:15px;display:block}.month-grid{padding:0 10px 10px}.month-weekdays,.month-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month-weekdays span{text-align:center;color:var(--muted);padding:11px 2px;font-size:10px;font-weight:800}.month-day{border:1px solid #edf3f0;min-width:0;min-height:104px;margin:-1px 0 0 -1px;padding:6px;overflow:hidden}.month-day.outside{background:#f8fbf9}.month-day.today{background:#f2fcf7}.month-day-number{width:22px;height:22px;color:var(--muted);border-radius:50%;place-items:center;font-size:10px;display:grid}.month-day.today .month-day-number{background:var(--primary);color:#fff;font-weight:800}.month-day.outside .month-day-number{opacity:.45}.month-day-events{flex-direction:column;gap:3px;margin-top:2px;display:flex}.month-event{text-align:left;border:0;border-left:2px solid var(--primary);width:100%;min-width:0;color:var(--ink);background:#edfbf4;border-radius:4px;flex-direction:column;gap:1px;padding:3px 4px;display:flex;overflow:hidden}.button.month-event{cursor:pointer}.month-event.event-completed{border-color:var(--green);background:#eff9f5}.month-event.event-pending_approval{border-color:var(--orange);background:#fff7e7}.month-event time{color:var(--primary);font-size:8px;font-weight:800}.month-event b,.month-event small{text-overflow:ellipsis;white-space:nowrap;font-size:8px;line-height:1.3;display:block;overflow:hidden}.month-event small{color:var(--muted);font-size:7px}.report-tools{grid-template-columns:minmax(180px,1fr) 190px 190px;gap:10px;margin:0 0 12px;display:grid}.report-tools select{background:#fff;border:1px solid #cee4d8;border-radius:9px;outline:none;min-width:0;padding:10px 12px;font-size:11px}.report-tools .search input{background:#fff;border:1px solid #cee4d8;border-radius:9px;outline:none;width:100%;height:42px;padding:10px 12px 10px 39px;font-size:11px}.report-tools .search input:focus,.report-tools select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2cb86d1a}.report-list-summary{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;font-size:10px;display:flex}.report-list-summary b{color:var(--ink)}.report-list-summary>span:last-child{align-items:center;gap:5px;display:flex}.report-status-dot{background:var(--orange);border-radius:50%;width:7px;height:7px}.report-state{white-space:nowrap;color:#9c641b;background:#fff2dd;border-radius:20px;padding:5px 9px;font-size:9px;font-weight:800}.report-state.done{color:#197657;background:#e4f5ee}.report-state.upcoming{color:var(--ui-primary);background:#e6faef}.report-state.cancelled{color:#ad4545;background:#fde9e9}.report-row .btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.report-metrics{margin-bottom:14px}.report-metrics .metric{padding:13px}.report-metrics .metric span{white-space:normal}.report-cards article footer{border-top:1px solid var(--line)}@media (width<=760px){.schedule-view-tabs{margin-bottom:11px}.schedule-view-tabs button{padding:8px 12px}.calendar-toolbar .schedule-view-tabs{margin:0}.schedule-calendar>header{padding:11px}.month-grid{padding:0 4px 5px}.month-day{min-height:77px;padding:3px}.month-day-number{width:18px;height:18px;font-size:9px}.month-weekdays span{padding:8px 1px;font-size:8px}.month-event{padding:2px}.month-event time,.month-event b{font-size:7px}.month-event small{display:none}.calendar-month-actions{gap:4px}.calendar-month-actions button{min-width:29px;height:29px;padding:0 6px}.report-tools{grid-template-columns:1fr 1fr;gap:8px}.report-tools .search{grid-column:1/-1}.report-tools select{width:100%;padding:9px 7px;font-size:10px}.report-list-summary{flex-direction:column;align-items:flex-start}.report-row{grid-template-columns:auto minmax(0,1fr);gap:8px 10px}.report-row .report-state{grid-column:2;justify-self:start}.report-row .btn{grid-column:1/-1;width:100%}.report-metrics .metric{gap:7px;padding:10px}.report-metrics .metric-icon{width:31px;height:31px}.report-metrics .metric strong{font-size:15px}.report-metrics .metric span,.report-metrics .metric small{font-size:8px}.notification-heading-actions{width:100%;margin-top:10px}.notification-heading-actions .btn{flex:1;padding:9px 8px;font-size:10px}.notification-heading-actions .btn svg{display:none}.message-preview{margin-left:12px}.whatsapp-template-list summary,.template-detail{padding:11px}.reminder-tabs{overflow-x:auto}.reminder-tabs button{white-space:nowrap;padding:10px}.meta-status-card{grid-template-columns:auto 1fr;padding:15px}.meta-status-card>.badge{grid-column:2}.meta-integration-grid{grid-template-columns:1fr}.meta-config-card,.meta-template-card{padding:15px}}.parent-child-card{align-content:start}.parent-child-card>.btn{grid-column:1/-1;justify-content:center;width:100%}.child-progress-preview{background:#f6faf8;border-radius:9px;grid-column:1/-1;padding:11px 13px}.child-progress-preview>span{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:9px}.child-progress-preview p{margin:5px 0 0;font-size:11px;line-height:1.55}.child-detail-hero{border:1px solid var(--line);background:#f5f9f7;border-radius:11px;align-items:center;gap:13px;padding:13px;display:flex}.child-detail-hero>div{flex-direction:column;gap:4px;display:flex}.child-detail-hero h3{margin:0;font-size:15px}.child-detail-hero p,.child-detail-hero span{color:var(--muted);margin:0;font-size:10px}.child-progress-stats{grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0;display:grid}.child-progress-stats>div{border:1px solid var(--line);background:#f8fbf9;border-radius:9px;flex-direction:column;gap:4px;min-width:0;padding:11px;display:flex}.child-progress-stats strong{color:var(--primary);overflow-wrap:anywhere;font-size:17px}.child-progress-stats span{color:var(--muted);font-size:9px;line-height:1.4}.progress-data-note{border-left:3px solid var(--primary);background:var(--soft);color:var(--primary);border-radius:0 7px 7px 0;padding:9px 11px;font-size:10px;line-height:1.5}.child-history-title{margin:19px 0 9px;font-size:13px}.child-progress-history{flex-direction:column;gap:10px;display:flex}.child-progress-history article{border:1px solid var(--line);border-radius:10px;padding:12px}.child-progress-history article>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:9px;padding-bottom:9px;display:flex}.child-progress-history article>header>div{flex-direction:column;gap:3px;display:flex}.child-progress-history article>header b{font-size:11px}.child-progress-history article>header span,.child-progress-history small{color:var(--muted);font-size:9px}.child-progress-history section{margin-top:8px}.child-progress-history section p{white-space:pre-wrap;margin:3px 0 0;font-size:10px;line-height:1.55}.child-progress-history small{text-transform:uppercase;letter-spacing:.35px}.child-next-focus{background:#f6faf8;border-radius:8px;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px;padding:8px 10px;display:grid}.child-parent-note{border-top:1px dashed var(--line);padding-top:8px}.modal:has(.child-progress-history){width:min(680px,100%)}@media (width<=760px){.child-progress-stats{gap:6px}.child-progress-stats>div{padding:9px 7px}.child-progress-stats strong{font-size:15px}.child-progress-stats span{font-size:8px}.child-next-focus{grid-template-columns:1fr}.parent-child-card>.btn{min-height:42px}}.badge-in_progress{color:#237453;background:#e8f6ef}.event-in_progress,.month-event.event-in_progress{border-color:var(--green);background:#e8f6ef}.btn:disabled{opacity:.58;cursor:not-allowed;transform:none}.check-in-hint{color:var(--muted);background:#f4faf7;border-radius:8px;margin-top:10px;padding:9px 11px;font-size:10px}.session-actions{flex-wrap:wrap}.session-actions .btn{min-height:42px}.session-actions .btn:nth-last-child(2){background:#1b7f78}.session-actions .btn:nth-last-child(2):hover{background:#156860}.child-detail-page{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 12px 34px #15643a0f}.child-detail-header{border-bottom:1px solid var(--line);background:linear-gradient(120deg,#effbf5,#f8fcfa);grid-template-columns:auto minmax(180px,.65fr) minmax(0,1.6fr);align-items:center;gap:18px;padding:24px 26px;display:grid}.child-detail-identity>span,.child-section-heading span,.current-target-overview>span,.child-target-card>span,.attendance-rate>span{text-transform:uppercase;letter-spacing:.75px;color:var(--primary);font-size:9px;font-weight:800}.child-detail-identity h3{margin:3px 0;font-size:20px}.child-detail-identity p{margin:0;font-size:10px}.child-detail-header dl{grid-template-columns:.8fr .8fr 1.4fr;gap:9px;margin:0;display:grid}.child-detail-header dl>div{background:#fff;border:1px solid #dfede6;border-radius:10px;min-width:0;padding:11px 12px}.child-detail-header dt{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:8px;font-weight:800}.child-detail-header dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:10px;font-weight:700;line-height:1.45}.child-program-picker{border:1px solid var(--line);background:#f5faf7;border-radius:10px;justify-content:space-between;align-items:center;gap:18px;margin:18px 26px 0;padding:12px 14px;display:flex}.child-program-picker>span{font-size:10px;font-weight:800}.child-program-picker select{background:#fff;border:1px solid #cbe4d7;border-radius:8px;min-width:300px;padding:9px 11px;font-size:11px}.child-detail-tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:6px;margin:18px 26px 0;display:flex;overflow-x:auto}.child-detail-tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:12px 16px 11px;font-size:12px;font-weight:800}.child-detail-tabs button:hover{color:var(--primary);background:#f7fbf9}.child-detail-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.child-detail-tabs button:focus-visible{outline-offset:-3px;border-radius:7px 7px 0 0;outline:3px solid #2cb86d47}.child-detail-page [role=tabpanel]{padding:22px 26px 28px}.child-progress-summary{grid-template-columns:minmax(0,2fr) minmax(145px,.55fr) minmax(145px,.7fr);gap:12px;display:grid}.child-target-card{border:1px solid var(--line);background:#f9fcfa;border-radius:13px;padding:16px 18px}.child-target-card h3{margin:5px 0 13px;font-size:15px;line-height:1.5}.child-target-card .learning-progress{background:#fff;margin-top:auto}.child-support-stat{border:1px solid var(--line);border-radius:13px;flex-direction:column;justify-content:center;align-items:flex-start;padding:15px;display:flex}.child-support-stat svg{width:19px;color:var(--primary);margin-bottom:13px}.child-support-stat strong{color:var(--ink);font:800 18px Plus Jakarta Sans}.child-support-stat span{color:var(--muted);margin-top:3px;font-size:9px}.child-detail-page .progress-chart{background:#fbfdfc;margin:14px 0 25px}.child-detail-page .progress-chart-empty{margin:14px 0 25px;padding:14px}.child-section-heading{justify-content:space-between;align-items:end;margin:3px 0 13px;display:flex}.child-section-heading h3{margin-top:3px;font-size:15px}.child-section-heading>small{color:var(--muted);font-size:9px}.child-progress-timeline{flex-direction:column;display:flex}.child-progress-timeline>article{grid-template-columns:25px 1fr;gap:11px;display:grid}.timeline-marker{justify-content:center;display:flex;position:relative}.timeline-marker:after{content:"";background:#cfe7da;width:1px;position:absolute;top:19px;bottom:-1px}.child-progress-timeline article:last-child .timeline-marker:after{display:none}.timeline-marker i{background:var(--primary);z-index:1;border:3px solid #dff7ea;border-radius:50%;width:11px;height:11px;margin-top:5px}.timeline-session-card{border:1px solid var(--line);border-radius:13px;min-width:0;margin-bottom:12px;padding:16px 17px}.timeline-session-card>header{justify-content:space-between;gap:14px;margin-bottom:12px;display:flex}.timeline-session-card>header span{color:var(--primary);font-size:9px;font-weight:800}.timeline-session-card>header h4{margin:3px 0;font-size:13px}.timeline-session-card>header small{color:var(--muted);font-size:9px}.timeline-status{flex-direction:column;align-items:flex-end;gap:7px;display:flex}.timeline-status>b{color:var(--primary);font-size:9px}.timeline-session-card .learning-progress{margin-bottom:12px}.session-report-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.session-report-grid section{background:#f7fbf9;border-radius:8px;min-width:0;padding:10px 11px}.session-report-grid section.parent-session-note{border-left:3px solid var(--accent);background:var(--soft)}.session-report-grid small{color:var(--muted);text-transform:uppercase;letter-spacing:.35px;font-size:8px;font-weight:800;display:block}.session-report-grid p{color:var(--ink);white-space:pre-wrap;margin:4px 0 0;font-size:10px;line-height:1.55}.child-attendance-overview{grid-template-columns:1fr 1.5fr;gap:12px;margin-bottom:16px;display:grid}.attendance-rate{background:linear-gradient(120deg, var(--ui-primary), #239e5c);color:#fff;border-radius:13px;padding:18px 20px}.attendance-rate>span{color:#ccf4df}.attendance-rate strong{margin:3px 0;font:800 34px Plus Jakarta Sans;display:block}.attendance-rate p{color:#def5e9;margin:0;font-size:10px}.attendance-context{border:1px solid var(--line);border-radius:13px;align-items:center;gap:13px;padding:18px;display:flex}.attendance-context>svg{width:35px;height:35px;color:var(--green);background:#e6f5ee;border-radius:9px;padding:8px}.attendance-context>div{flex-direction:column;gap:3px;display:flex}.attendance-context b{font-size:11px}.attendance-context span{font-size:10px}.attendance-context small{color:var(--muted);font-size:9px}.child-attendance-list{border:1px solid var(--line);border-radius:12px;overflow:hidden}.child-attendance-head,.child-attendance-row{grid-template-columns:.8fr .65fr .65fr 2fr;align-items:center;gap:12px;display:grid}.child-attendance-head{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;background:#f3f9f6;padding:10px 14px;font-size:8px;font-weight:800}.child-attendance-row{border-top:1px solid var(--line);padding:13px 14px;font-size:10px}.child-attendance-row>div{overflow-wrap:anywhere;min-width:0}.child-attendance-row>div:first-child{flex-direction:column;display:flex}.child-attendance-row>div:first-child span{color:var(--muted);margin-top:2px;font-size:8px}.target-overview-grid{grid-template-columns:minmax(0,2fr) .55fr .55fr;gap:12px;margin-bottom:25px;display:grid}.current-target-overview,.target-overview-grid>div:not(:first-child){border:1px solid var(--line);border-radius:13px;padding:16px 18px}.current-target-overview{background:#f8fcfa}.current-target-overview h3{margin:5px 0 13px;font-size:15px;line-height:1.5}.target-overview-grid>div:not(:first-child){flex-direction:column;justify-content:center;display:flex}.target-overview-grid>div:not(:first-child) strong{color:var(--primary);font:800 23px Plus Jakarta Sans}.target-overview-grid>div:not(:first-child) span{color:var(--muted);margin-top:4px;font-size:9px}.target-history{margin:0;padding:0;list-style:none}.target-history li{grid-template-columns:18px 1fr auto;gap:11px;padding-bottom:18px;display:grid;position:relative}.target-history li:before{content:"";background:#cee7da;width:1px;position:absolute;top:13px;bottom:0;left:5px}.target-history li:last-child:before{display:none}.target-history li>i{background:var(--primary);z-index:1;border:3px solid #d8f6e6;border-radius:50%;width:11px;height:11px;margin-top:4px}.target-history li>div{border-bottom:1px solid var(--line);padding-bottom:15px}.target-history li>div>span{color:var(--muted);font-size:9px}.target-history h4{margin:4px 0;font-size:12px}.target-history p{margin:3px 0;font-size:10px;line-height:1.55}.target-history li>strong{background:var(--soft);color:var(--primary);border-radius:20px;align-self:start;padding:5px 8px;font-size:9px}@media (width<=900px){.child-detail-header{grid-template-columns:auto 1fr}.child-detail-header dl{grid-column:1/-1}.child-progress-summary,.target-overview-grid{grid-template-columns:1fr 1fr}.child-target-card,.current-target-overview{grid-column:1/-1}}@media (width<=760px){.page-heading:has(+.child-detail-page){flex-direction:column;align-items:flex-start;gap:13px}.page-heading:has(+.child-detail-page) .btn{width:100%;font-size:12px}.child-detail-page{border-radius:14px}.child-detail-header{gap:12px;padding:18px 15px}.child-detail-header dl{grid-template-columns:1fr}.child-detail-header .avatar.large{width:49px;height:49px}.child-detail-identity h3{font-size:17px}.child-program-picker{flex-direction:column;align-items:stretch;gap:7px;margin:14px 14px 0}.child-program-picker select{width:100%;min-width:0}.child-detail-tabs{margin:14px 14px 0}.child-detail-tabs button{min-height:44px;padding:11px 13px}.child-detail-page [role=tabpanel]{padding:17px 14px 21px}.child-progress-summary,.target-overview-grid,.child-attendance-overview{grid-template-columns:1fr}.child-target-card,.current-target-overview{grid-column:auto}.child-support-stat{text-align:center;align-items:center}.child-support-stat svg{margin-bottom:7px}.progress-chart{overflow-x:auto}.progress-chart svg{min-width:500px}.timeline-session-card>header{flex-direction:column;align-items:flex-start}.timeline-status{flex-direction:row;align-items:flex-start}.session-report-grid{grid-template-columns:1fr}.child-attendance-head{display:none}.child-attendance-list{border:0;flex-direction:column;gap:9px;display:flex}.child-attendance-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:12px;padding:12px}.child-attendance-row>div:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;margin-bottom:4px;font-size:8px;font-weight:800;display:block}.child-attendance-row>div:last-child{grid-column:1/-1}.target-history li{grid-template-columns:15px 1fr}.target-history li>strong{grid-column:2;justify-self:start;margin-top:-10px}.target-history li:before{left:4px}.session-actions{grid-template-columns:1fr;display:grid}.session-actions .btn{width:100%}}.teacher-card-clickable{cursor:pointer;transition:all .2s}.teacher-card-clickable:hover{border-color:#a9dfc2;transform:translateY(-2px);box-shadow:0 10px 25px #15643a17}.teacher-card-clickable:focus-visible{border-color:var(--accent);outline:3px solid #2cb86d40}.teacher-card-actions{justify-content:space-between;align-items:center;gap:9px;display:flex}.teacher-card-actions>span{color:var(--primary);align-items:center;gap:4px;font-size:10px;font-weight:800;display:flex}.teacher-card-actions>span svg{width:13px}.teacher-card-actions .btn{padding:7px 9px;font-size:10px}.modal:has(.teacher-detail){width:min(920px,100%)}.teacher-detail-hero{border:1px solid var(--line);background:#f4faf7;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:15px;display:grid}.teacher-detail-hero h3{font-size:16px}.teacher-detail-hero p{margin:3px 0;font-size:11px}.teacher-detail-hero span{color:var(--muted);font-size:10px}.teacher-detail-tabs{border-bottom:1px solid var(--line);gap:18px;margin:16px 0;display:flex}.teacher-detail-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:11px 3px;font-size:12px;font-weight:800}.teacher-detail-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.teacher-profile-panel dl{grid-template-columns:1fr 1fr;gap:9px;margin:0;display:grid}.teacher-profile-panel dl>div,.teacher-profile-panel section{border:1px solid var(--line);border-radius:9px;padding:12px}.teacher-profile-panel dt,.teacher-profile-panel small{text-transform:uppercase;color:var(--muted);font-size:9px}.teacher-profile-panel dd{margin:4px 0 0;font-size:11px;font-weight:700}.teacher-profile-panel section{margin-top:9px}.teacher-profile-panel section p{margin:4px 0;font-size:11px}.attendance-toolbar{justify-content:space-between;align-items:end;gap:15px;margin-bottom:12px;display:flex}.attendance-toolbar h3{font-size:14px}.attendance-toolbar>div>span{color:var(--muted);font-size:10px}.attendance-toolbar label{flex-direction:column;gap:5px;min-width:190px;display:flex}.attendance-toolbar label>span{text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:800}.attendance-toolbar select{background:#fff;border:1px solid #cee4d8;border-radius:8px;padding:8px 10px;font-size:11px}.attendance-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}.attendance-head,.attendance-row{grid-template-columns:1.25fr 1fr 1fr .9fr .8fr;align-items:center;gap:10px;display:grid}.attendance-head{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;background:#f4faf7;padding:10px 12px;font-size:8px;font-weight:800}.attendance-row{border-top:1px solid var(--line);padding:11px 12px}.attendance-row>div{flex-direction:column;gap:3px;min-width:0;display:flex}.attendance-row b,.attendance-row span{overflow-wrap:anywhere;font-size:10px}.attendance-row>div:first-child span,.attendance-missing{color:var(--muted)}.attendance-loading{gap:7px;display:grid}.attendance-loading i{background:linear-gradient(100deg,#e8f1ec,#f4f8f6,#e8f1ec) 0 0/200%;border-radius:8px;height:48px;animation:1.3s infinite shimmer;display:block}@media (width<=760px){.teacher-card-actions{flex-direction:column;align-items:stretch}.teacher-card-actions>span{justify-content:center}.teacher-card-actions .btn{width:100%}.teacher-detail-hero{grid-template-columns:auto 1fr}.teacher-detail-hero>.badge{grid-column:2;justify-self:start}.teacher-detail-hero span{line-height:1.5;display:block}.teacher-profile-panel dl{grid-template-columns:1fr}.attendance-toolbar{flex-direction:column;align-items:stretch}.attendance-toolbar label{min-width:0}.attendance-head{display:none}.attendance-table{border:0;flex-direction:column;gap:9px;display:flex}.attendance-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:10px;padding:11px}.attendance-row>div:before{content:attr(data-label);text-transform:uppercase;color:var(--muted);font-size:8px;font-weight:800}.attendance-row>div:last-child{grid-column:1/-1}.attendance-row .badge{align-self:flex-start}}.badge-draft{color:#5f7e6d;background:#eef4f1}.badge-pending_payment{color:#9c641b;background:#fff2dd}.teacher-invoice-filters{grid-template-columns:repeat(3,minmax(150px,220px));gap:9px;margin-bottom:12px;display:grid}.teacher-invoice-filters select{background:#fff;border:1px solid #cee4d8;border-radius:9px;padding:10px 12px;font-size:11px}.teacher-invoice-list{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.teacher-invoice-heading,.teacher-invoice-row{grid-template-columns:1.25fr 1fr .55fr .8fr .9fr 1.1fr;align-items:center;gap:11px;display:grid}.teacher-invoice-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;background:#f4faf7;padding:11px 14px;font-size:8px;font-weight:800}.teacher-invoice-row{border:0;border-top:1px solid var(--line);text-align:left;background:#fff;width:100%;padding:13px 14px}.teacher-invoice-row:hover{background:#f7fbf9}.teacher-invoice-row>div{flex-direction:column;gap:3px;min-width:0;display:flex}.teacher-invoice-row b,.teacher-invoice-row span,.teacher-invoice-row small{overflow-wrap:anywhere;font-size:10px}.teacher-invoice-row small,.teacher-invoice-row>div:first-child span{color:var(--muted)}:is(.modal:has(.teacher-invoice-form),.modal:has(.teacher-invoice-detail)){width:min(900px,100%)}.invoice-preview-placeholder{text-align:center;color:var(--muted);border:1px dashed #bdd9ca;border-radius:10px;padding:28px;font-size:11px}.teacher-invoice-preview{border:1px solid var(--line);border-radius:10px;overflow:hidden}.preview-heading{background:#f4faf7;justify-content:space-between;padding:11px 13px;font-size:10px;display:flex}.preview-row{border-top:1px solid var(--line);grid-template-columns:1fr .6fr .6fr .7fr;align-items:center;gap:10px;padding:10px 13px;display:grid}.preview-row>div{flex-direction:column;display:flex}.preview-row b,.preview-row span{font-size:10px}.preview-row>div span{color:var(--muted)}.preview-row>span,.preview-row>b{text-align:right}.preview-row .has-adjustment{color:var(--orange);font-weight:700}.preview-total{border-top:1px solid var(--line);background:#f8fbf9;justify-content:flex-end;gap:25px;padding:12px 13px;display:flex}.preview-total span{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.preview-total small{color:var(--muted);text-transform:uppercase;font-size:8px}.preview-total b,.preview-total strong{font-size:12px}.preview-total strong{color:var(--primary)}.teacher-invoice-detail-head{background:#f4faf7;border-radius:11px;justify-content:space-between;align-items:flex-start;padding:15px;display:flex}.teacher-invoice-detail-head>div>span{color:var(--primary);font-size:9px;font-weight:800}.teacher-invoice-detail-head h3{margin-top:3px;font-size:16px}.teacher-invoice-detail-head p{margin:3px 0;font-size:10px}.teacher-invoice-detail>dl{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.teacher-invoice-detail>dl>div{border:1px solid var(--line);border-radius:8px;padding:10px}.teacher-invoice-detail dt{text-transform:uppercase;color:var(--muted);font-size:8px}.teacher-invoice-detail dd{margin:4px 0 0;font-size:10px;font-weight:700}.invoice-detail-subtitle{margin:15px 0 8px;font-size:13px}.invoice-detail-items{border:1px solid var(--line);border-radius:9px;overflow:hidden}.invoice-detail-items>div{border-top:1px solid var(--line);grid-template-columns:1fr .6fr .6fr .7fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.invoice-detail-items>div:first-child{border-top:0}.invoice-detail-items>div>div,.invoice-detail-items>div>span{flex-direction:column;gap:2px;display:flex}.invoice-detail-items b,.invoice-detail-items span{font-size:10px}.invoice-detail-items>div>div span,.invoice-detail-items small{color:var(--muted);font-size:8px}.invoice-detail-items>div>span,.invoice-detail-items>div>b{text-align:right;align-items:flex-end}.invoice-detail-summary{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px;display:grid}.invoice-detail-summary span{background:#f4faf7;border-radius:8px;flex-direction:column;gap:3px;padding:10px;display:flex}.invoice-detail-summary small{color:var(--muted);text-transform:uppercase;font-size:8px}.invoice-detail-summary b,.invoice-detail-summary strong{font-size:12px}.invoice-detail-summary strong{color:var(--primary)}@media (width<=1100px){.finance-head .finance-actions{grid-template-columns:1fr 1fr;display:grid}.finance-head .finance-actions .btn:last-child{grid-column:1/-1}.teacher-invoice-heading,.teacher-invoice-row{grid-template-columns:1.2fr .8fr .5fr .8fr .9fr}.teacher-invoice-heading>span:last-child,.teacher-invoice-row>div:last-child{display:none}}@media (width<=760px){.teacher-invoice-filters{grid-template-columns:1fr}.teacher-invoice-heading{display:none}.teacher-invoice-list{background:0 0;border:0;flex-direction:column;gap:9px;display:flex}.teacher-invoice-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:11px;padding:12px}.teacher-invoice-row>div:last-child{display:flex}.teacher-invoice-row>div:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800}.preview-row,.invoice-detail-items>div{grid-template-columns:1fr 1fr}.preview-row>div,.invoice-detail-items>div>div{grid-column:1/-1}.preview-total{grid-template-columns:1fr 1fr;gap:9px;display:grid}.preview-total span{align-items:flex-start}.preview-total span:last-child{grid-column:1/-1}.teacher-invoice-detail>dl,.invoice-detail-summary{grid-template-columns:1fr 1fr}.teacher-invoice-detail .modal-actions{grid-template-columns:1fr;display:grid}.teacher-invoice-detail .modal-actions .btn{width:100%}}.preview-columns{color:var(--muted);text-transform:uppercase;background:#fafdfb;grid-template-columns:1fr .6fr .6fr .7fr;gap:10px;padding:8px 13px;font-size:8px;font-weight:800;display:grid}.preview-columns span:not(:first-child){text-align:right}@media (width<=760px){.preview-columns{display:none}}.heading-actions{gap:9px;display:flex}.tryout-admin-grid{grid-template-columns:1.2fr .8fr;gap:18px;display:grid}.tryout-list-card{border:1px solid var(--line);border-radius:12px;margin-top:10px;padding:17px}.tryout-list-card h3,.tryout-card h3{margin-top:6px;font-size:15px}.tryout-list-card p,.tryout-card p{margin:5px 0;font-size:11px}.test-family{background:var(--soft);color:var(--primary);text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:4px 7px;font-size:9px;font-weight:800;display:inline-flex}.tryout-list-card dl{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 0;display:grid}.tryout-list-card dl>div{background:#f6faf8;border-radius:8px;padding:8px}.tryout-list-card dt{color:var(--muted);text-transform:uppercase;font-size:8px}.tryout-list-card dd{margin:3px 0 0;font-size:11px;font-weight:800}.question-bank-row{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding:11px 0;display:flex}.question-bank-row:last-child{border:0}.question-bank-row>span{color:var(--primary);font-size:9px;font-weight:800}.question-bank-row>b{font-size:11px}.question-bank-row>small{color:var(--muted);font-size:9px}.tryout-form{max-width:1000px}.tryout-form>h3{margin:8px 0 12px;font-size:14px}.option-editor{gap:8px;margin-bottom:18px;display:grid}.option-editor>div{border:1px solid var(--line);border-radius:9px;grid-template-columns:34px 1fr 1fr 75px;align-items:center;gap:8px;padding:8px;display:grid}.option-editor>div.correct-option{background:#f2fbf7;border-color:#86cbb0}.option-editor input:not([type=radio]){border:1px solid #cee4d8;border-radius:7px;width:100%;padding:9px;font-size:11px}.option-editor label{font-size:10px;font-weight:800}.choice-list{border:1px solid var(--line);border-radius:10px;max-height:280px;margin:12px 0;padding:10px 14px;overflow:auto}.choice-list legend{padding:0 6px;font-size:12px;font-weight:800}.choice-list>label{border-bottom:1px solid #edf4f0;align-items:flex-start;gap:9px;padding:9px 3px;display:flex}.choice-list>label:last-child{border:0}.choice-list>label>span{flex-direction:column;gap:3px;display:flex}.choice-list b{font-size:11px}.choice-list span span{color:var(--muted);font-size:9px}.tryout-checks{gap:22px;margin:14px 0;display:flex}.tryout-checks label{font-size:11px;font-weight:700}.back-link{color:var(--primary);background:0 0;border:0;align-items:center;gap:5px;margin-bottom:8px;padding:0;font-size:11px;font-weight:800;display:flex}.back-link svg{width:15px}.tryout-cards{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.tryout-card{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;align-items:flex-start;padding:19px;display:flex}.tryout-card>p{min-height:38px}.tryout-card>.btn{width:100%;margin-top:auto}.tryout-meta{flex-wrap:wrap;gap:7px;margin:9px 0 15px;display:flex}.tryout-meta span{background:#f4f8f6;border-radius:7px;padding:6px 8px;font-size:9px}.mini-score{align-items:center;gap:10px;margin:1px 0 13px;display:flex}.mini-score strong{color:var(--primary);font:800 28px Plus Jakarta Sans}.mini-score span{color:var(--muted);font-size:9px}.exam-shell{max-width:1100px;margin:auto}.exam-top,.result-hero{background:linear-gradient(110deg, var(--ui-primary), #24a862);color:#fff;border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:15px;padding:20px 25px;display:flex}.exam-top h2,.result-hero h2{color:#fff;margin:3px 0;font-size:20px}.exam-top p,.result-hero p{color:#d8f5e6;margin:0;font-size:10px}.exam-top>div:first-child>span,.result-hero>div>span{text-transform:uppercase;letter-spacing:1px;font-size:9px}.exam-timer{color:var(--primary);background:#fff;border-radius:11px;grid-template-columns:auto auto;align-items:center;gap:0 7px;padding:10px 14px;display:grid}.exam-timer svg{grid-row:span 2;width:19px}.exam-timer b{font-size:17px}.exam-timer span{color:var(--muted);font-size:8px}.exam-timer.danger{color:var(--red)}.exam-layout{grid-template-columns:150px 1fr;gap:15px;display:grid}.question-nav{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:repeat(4,1fr);align-self:start;gap:6px;padding:12px;display:grid}.question-nav button{border:1px solid var(--line);aspect-ratio:1;background:#fff;border-radius:6px;font-size:10px;font-weight:800}.question-nav button.active{outline:2px solid var(--primary);border-color:#fff}.question-nav button.answered{background:var(--soft);color:var(--primary)}.question-nav button.review-correct{color:#197657;background:#e4f5ee}.question-nav button.review-wrong{color:#ad4545;background:#fde9e9}.question-view{border:1px solid var(--line);background:#fff;border-radius:13px;padding:22px}.question-label{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.question-label span{color:var(--primary);text-transform:uppercase;font-size:10px;font-weight:800}.question-label small{color:var(--muted);font-size:9px}.question-view>h3{font-size:16px;line-height:1.55}.question-image{object-fit:contain;background:#f7faf8;border-radius:9px;width:100%;max-height:390px;margin:16px 0}.answer-options{gap:9px;margin-top:17px;display:grid}.answer-options>button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:10px;display:grid}.answer-options>button:not(:disabled):hover,.answer-options>button.selected{border-color:var(--accent);background:var(--soft)}.answer-options>button.correct{background:#e9f8f1;border-color:#5cb991}.answer-options>button.wrong{background:#fff0f0;border-color:#df7777}.answer-options>button>b{background:#edf5f1;border-radius:7px;place-items:center;width:29px;height:29px;display:grid}.answer-options>button>span{font-size:12px}.answer-options img{object-fit:contain;vertical-align:middle;max-width:180px;max-height:110px}.answer-options svg{width:19px;color:var(--green)}.answer-options .wrong svg{color:var(--red)}.exam-actions{grid-column:2;justify-content:space-between;display:flex}.answer-review{border-radius:11px;margin-top:20px;padding:15px}.answer-review.correct{background:#eaf8f2;border:1px solid #b8e2d0}.answer-review.wrong{background:#fff2f2;border:1px solid #efcaca}.answer-review h4{font-size:14px}.answer-review>p{margin:4px 0;font-size:10px}.explanation{background:#fff;border-radius:9px;margin-top:11px;padding:13px}.explanation>strong{font-size:11px}.explanation>p{color:var(--ink);margin:6px 0;font-size:11px}.explanation>img{object-fit:contain;max-width:100%;max-height:350px}.video-explanation{margin-top:14px}.video-explanation>strong{align-items:center;gap:6px;margin-bottom:8px;font-size:11px;display:flex}.video-explanation>strong svg{width:18px;color:var(--primary)}.video-explanation iframe{aspect-ratio:16/9;border:0;border-radius:9px;width:100%}.score-ring{border:8px solid #ffffff59;border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;width:105px;height:105px;display:flex}.score-ring.passed{border-color:#75dfb5}.score-ring strong{font:800 35px Plus Jakarta Sans}.score-ring span{font-size:9px!important}.result-hero{justify-content:flex-start;gap:22px}.result-counts{gap:7px;margin-top:9px;display:flex}.result-counts b{background:#ffffff24;border-radius:6px;padding:5px 8px;font-size:9px}@media (width<=900px){.tryout-admin-grid,.tryout-cards{grid-template-columns:1fr 1fr}.exam-layout{grid-template-columns:1fr}.question-nav{grid-template-columns:repeat(10,1fr)}.exam-actions{grid-column:1}}@media (width<=760px){.heading-actions,.tryout-checks{flex-direction:column}.heading-actions .btn{width:100%}.tryout-admin-grid,.tryout-cards{grid-template-columns:1fr}.option-editor>div{grid-template-columns:32px 1fr}.option-editor>div input:nth-of-type(2){grid-column:2}.exam-top,.result-hero{align-items:flex-start}.exam-top{gap:10px;padding:16px}.exam-top h2{font-size:16px}.question-nav{grid-template-columns:repeat(7,1fr);overflow:auto}.question-view{padding:16px}.question-label{flex-direction:column;align-items:flex-start;gap:4px}.result-hero{flex-direction:column}.exam-actions .btn{padding:10px;font-size:10px}}.attendance-camera>p{color:var(--muted);margin:0 0 12px;font-size:11px;line-height:1.55}.camera-frame{aspect-ratio:4/3;background:#0c1c13;border-radius:13px;place-items:center;max-height:58vh;display:grid;position:relative;overflow:hidden}.camera-frame video,.camera-frame img{object-fit:cover;width:100%;height:100%}.camera-frame video{transform:scaleX(-1)}.camera-loading{color:#dcede4;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:11px;display:flex;position:absolute;inset:0}.camera-loading svg{width:30px;height:30px}.camera-session{background:#f4faf7;border-radius:9px;flex-direction:column;gap:3px;margin-top:10px;padding:10px 12px;display:flex}.camera-session b{font-size:12px}.camera-session span{color:var(--muted);font-size:10px}.admin-session-detail .detail-hero{background:#f4faf7;border-radius:11px;align-items:center;gap:12px;padding:15px;display:flex}.admin-session-detail dl{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.admin-session-detail dl>div{border:1px solid var(--line);border-radius:9px;padding:10px}.admin-session-detail dt{text-transform:uppercase;color:var(--muted);font-size:8px}.admin-session-detail dd{margin:4px 0;font-size:10px}.attendance-proof{margin:12px 0 0}.attendance-proof img{object-fit:contain;background:#0c1c13;border-radius:11px;width:100%;max-height:430px;display:block}.attendance-proof figcaption{color:var(--muted);margin-top:6px;font-size:9px}.attendance-head,.attendance-row{grid-template-columns:1.15fr .9fr 1fr .65fr .85fr .8fr}.attendance-thumbnail{object-fit:cover;background:#e7efeb;border-radius:7px;width:62px;height:48px}.attendance-row>div:nth-child(5){gap:5px}.audit-attendance-meta{align-items:center;gap:7px;margin-top:5px;display:flex!important}.audit-proof{object-fit:cover;border-radius:7px;width:88px;height:66px;margin-top:7px}.activity-attendance{align-items:flex-start!important}.activity-attendance>span{margin-left:auto!important}@media (width<=760px){.camera-frame{max-height:52vh}.camera-actions{grid-template-columns:1fr;display:grid}.camera-actions .btn{width:100%}.admin-session-detail dl{grid-template-columns:1fr}.attendance-row>div:last-child{grid-column:auto}.attendance-row>div:nth-child(5),.attendance-row>div:nth-child(6){grid-column:span 1}.attendance-thumbnail{width:100%;height:82px}.audit-proof{width:110px;height:82px}}.answer-options:has(img){grid-template-columns:repeat(3,minmax(0,1fr))}.answer-options:has(img)>button{grid-template-columns:30px 1fr;min-height:128px;position:relative}.answer-options:has(img)>button>span{flex-direction:column;align-items:center;gap:4px;font-size:9px;display:flex}.answer-options:has(img) img{object-fit:contain;width:92px;height:82px}.answer-options:has(img)>button>svg{position:absolute;top:10px;right:10px}@media (width<=760px){.answer-options:has(img){grid-template-columns:1fr 1fr}.answer-options:has(img)>button{grid-template-columns:24px 1fr;min-height:108px;padding:8px}.answer-options:has(img)>button>b{width:24px;height:24px}.answer-options:has(img) img{width:72px;height:64px}}.review-toolbar{border:1px solid var(--line);background:#fff;border-radius:13px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:15px;padding:13px 15px;display:flex}.review-toolbar>div:first-child{flex-direction:column;gap:3px;display:flex}.review-toolbar strong{font-size:12px}.review-toolbar span{color:var(--muted);font-size:9px}.review-filters{flex-wrap:wrap;gap:6px;display:flex}.review-filters button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;align-items:center;gap:6px;padding:8px 10px;font-size:9px;font-weight:700;display:flex}.review-filters button b{min-width:20px;height:20px;color:var(--primary);background:#edf5f1;border-radius:6px;place-items:center;font-size:9px;display:grid}.review-filters button[aria-pressed=true]{border-color:var(--primary);background:var(--soft);color:var(--primary)}.review-filters button:focus-visible,.question-nav button:focus-visible{outline-offset:2px;outline:3px solid #229e5c47}.review-filters button:disabled{opacity:.45;cursor:not-allowed}.guided-review{padding:17px}.guided-review>header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.guided-review h4{margin:3px 0 0}.review-kicker{color:var(--primary);letter-spacing:.6px;text-transform:uppercase;font-size:8px;font-weight:800;display:block}.review-status{white-space:nowrap;border-radius:20px;align-items:center;padding:6px 9px;font-size:9px;font-weight:800;display:inline-flex}.review-status.is-correct{color:#176d50;background:#d9f2e7}.review-status.is-wrong{color:#9c3434;background:#ffe1e1}.answer-comparison{grid-template-columns:1fr 1fr;gap:9px;margin-top:13px;display:grid}.answer-comparison>div{background:#ffffffb8;border:1px solid #57846c29;border-radius:9px;grid-template-columns:auto 1fr;align-items:center;gap:3px 9px;padding:10px;display:grid}.answer-comparison small{color:var(--muted);text-transform:uppercase;grid-column:1/-1;font-size:8px;font-weight:800}.answer-comparison strong{width:29px;height:29px;color:var(--primary);background:#e8f4ee;border-radius:7px;place-items:center;font-size:11px;display:grid}.answer-comparison span{font-size:10px}.explanation-steps{gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.explanation-steps li{grid-template-columns:27px 1fr;align-items:start;gap:9px;display:grid}.explanation-steps li>b{background:var(--primary);color:#fff;border-radius:50%;place-items:center;width:27px;height:27px;font-size:9px;display:grid}.explanation-steps li>span{padding-top:4px;font-size:11px;line-height:1.55}.common-mistake{background:#fff8e9;border-left:3px solid #eaa24e;border-radius:0 8px 8px 0;margin:13px 0;padding:10px 12px}.common-mistake>b{color:#8c581d;text-transform:uppercase;font-size:9px}.common-mistake>p{line-height:1.5;margin:3px 0 0!important;font-size:10px!important}.video-pending{color:var(--muted);background:#f7fbf9;border:1px dashed #b9d7c7;border-radius:9px;align-items:center;gap:10px;margin-top:13px;padding:12px;display:flex}.video-pending>svg{width:24px;color:var(--primary);flex:none}.video-pending>div{flex-direction:column;gap:3px;display:flex}.video-pending b{color:var(--ink);font-size:10px}.video-pending span{font-size:9px;line-height:1.45}.video-explanation video{background:#0b1d13;border-radius:9px;width:100%;max-height:480px;display:block}.video-explanation>a{display:inline-flex}.question-nav:empty{display:none}.exam-layout:has(.question-nav:empty){grid-template-columns:1fr}.exam-layout:has(.question-nav:empty) .exam-actions{grid-column:1}@media (width<=760px){.review-toolbar{flex-direction:column;align-items:stretch}.review-filters{grid-template-columns:1fr 1fr;display:grid}.review-filters button{justify-content:space-between}.review-filters button:first-child{grid-column:1/-1}.guided-review{padding:13px}.guided-review>header{align-items:flex-start}.answer-comparison{grid-template-columns:1fr}.video-pending{align-items:flex-start}}.video-source{font-weight:800;margin:0 0 3px!important;font-size:11px!important}.video-source span{color:var(--muted);font-weight:600}.video-note{line-height:1.5;margin:0 0 9px!important;font-size:9px!important}.youtube-preview>iframe{aspect-ratio:16/9;border:0;border-radius:7px;width:190px}@media (width<=760px){.youtube-preview>iframe{width:100%}}.tryout-card-badges{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.tryout-access-badge{white-space:nowrap;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:800;display:inline-flex}.tryout-access-badge.free{color:#176f50;background:#e3f5ec}.tryout-access-badge.paid{color:#8d570d;background:#fff0d8}.tryout-card-actions{grid-template-columns:1fr 1fr;gap:7px;width:100%;margin-top:auto;display:grid}.tryout-card-actions .btn{padding:10px 8px;font-size:10px}.tryout-commerce-note{background:var(--soft);border-radius:9px;margin:-5px 0 16px;padding:10px 12px;font-size:10px}.tryout-card .tryout-meta{flex:1;align-content:flex-start}.tryout-card>.mini-score{margin-top:auto}@media (width<=760px){.tryout-card-actions{grid-template-columns:1fr}.tryout-card-actions .btn{width:100%}}.question-library{padding:0;overflow:hidden}.question-library>.panel-heading{border-bottom:1px solid var(--line);margin:0;padding:17px 19px}.question-explorer{grid-template-columns:245px minmax(0,1fr);min-height:440px;display:grid}.folder-sidebar{border-right:1px solid var(--line);background:#f7fbf9;padding:13px}.folder-create{grid-template-columns:1fr 78px;gap:6px;margin-bottom:13px;display:grid}.folder-create input,.folder-create select{background:#fff;border:1px solid #cee4d8;border-radius:8px;min-width:0;padding:8px;font-size:10px}.folder-create .btn{grid-column:1/-1;padding:8px;font-size:10px}.folder-create svg{width:15px}.folder-sidebar nav{flex-direction:column;gap:4px;display:flex}.folder-sidebar nav>button,.folder-row>button:first-child{text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:19px 1fr auto;align-items:center;gap:7px;width:100%;padding:9px;font-size:10px;display:grid}.folder-sidebar nav button svg{color:#6b947e;width:16px;height:16px}.folder-sidebar nav button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-sidebar nav button b{color:var(--muted);font-size:9px}.folder-sidebar nav>button:hover,.folder-row>button:first-child:hover,.folder-sidebar nav button.active{color:var(--primary);background:#e4f8ed}.folder-sidebar nav button.active svg{color:var(--primary)}.folder-row{grid-template-columns:minmax(0,1fr) 30px;gap:2px;display:grid}.folder-delete{color:#a37c7c;background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.folder-delete:hover{color:var(--red);background:#ffe9e9}.folder-delete svg{width:14px!important}.question-files{min-width:0;padding:18px}.question-files-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.question-files-head span{color:var(--primary);letter-spacing:.7px;font-size:8px;font-weight:800}.question-files-head h3{margin-top:3px;font-size:16px}.question-file-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.question-file{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:30px minmax(0,1fr) auto;align-items:start;gap:9px;padding:11px;display:grid}.question-file>svg{background:var(--soft);width:27px;height:27px;color:var(--primary);border-radius:7px;padding:5px}.question-file>div{flex-direction:column;gap:3px;min-width:0;display:flex}.question-file>div>span{color:var(--primary);text-transform:uppercase;font-size:8px;font-weight:800}.question-file>div>b{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10px;line-height:1.4;display:-webkit-box;overflow:hidden}.question-file small{color:var(--muted);font-size:8px}.question-file>button{border:1px solid var(--line);color:var(--primary);background:#fff;border-radius:7px;align-items:center;gap:4px;padding:6px;font-size:9px;font-weight:800;display:flex}.question-file>button svg{width:13px}.tryout-published{margin-top:18px}.tryout-admin-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.tryout-admin-cards .tryout-list-card{margin:0}.tryout-list-card .tryout-access-badge{margin-left:6px}@media (width<=1000px){.question-explorer{grid-template-columns:210px minmax(0,1fr)}.question-file-grid,.tryout-admin-cards{grid-template-columns:1fr 1fr}}@media (width<=760px){.question-explorer{grid-template-columns:1fr}.folder-sidebar{border-right:0;border-bottom:1px solid var(--line)}.folder-sidebar nav{max-height:210px;overflow:auto}.question-file-grid,.tryout-admin-cards{grid-template-columns:1fr}.question-files{padding:13px}}.auth-page{color:var(--auth-text,var(--ink));background:var(--auth-surface,#fff)}.auth-panel{z-index:1;position:relative}.auth-panel input{border-color:var(--auth-border,var(--line));background:var(--auth-surface,#fff)}.auth-page .auth-title p,.auth-page .back{color:var(--auth-text-muted,var(--muted))}.auth-page.auth-button-square .btn,.auth-page.auth-button-square input{border-radius:4px}.auth-page.auth-button-rounded .btn,.auth-page.auth-button-rounded input{border-radius:10px}.auth-page.auth-button-pill .btn,.auth-page.auth-button-pill input{border-radius:999px}.register-page{color:var(--auth-text,var(--ink));background:var(--auth-surface-muted,#f4f9f6);font-family:var(--website-body-font,"Plus Jakarta Sans"), sans-serif}.register-page h1,.register-page h2,.register-page h3{color:var(--auth-text,var(--ink));font-family:var(--website-heading-font,"Plus Jakarta Sans"), sans-serif}.register-page .register-shell>aside{background:var(--primary)}.register-page .register-shell>aside h1,.register-page .register-shell>aside p,.register-page .register-shell>aside .reg-steps b,.register-page .register-shell>aside .reg-steps small{color:#fff}.register-page .register-shell>aside .kicker{color:color-mix(in srgb, var(--secondary), #fff 35%)}.register-page .register-card{border-color:var(--auth-border,var(--line));border-radius:var(--auth-radius,18px);background:var(--auth-surface,#fff);box-shadow:var(--auth-shadow,0 18px 55px #0c241b1f)}.register-page input,.register-page select,.register-page textarea{border-color:var(--auth-border,var(--line));background:var(--auth-surface,#fff)}.register-page.auth-button-square .btn,.register-page.auth-button-square input,.register-page.auth-button-square select,.register-page.auth-button-square textarea{border-radius:4px}.register-page.auth-button-rounded .btn,.register-page.auth-button-rounded input,.register-page.auth-button-rounded select,.register-page.auth-button-rounded textarea{border-radius:10px}.register-page.auth-button-pill .btn,.register-page.auth-button-pill input,.register-page.auth-button-pill select{border-radius:999px}.register-unavailable{place-items:center;min-height:100vh;padding:24px;display:grid}.register-unavailable .register-card{text-align:center;gap:18px;max-width:560px;padding:44px;display:grid}.register-unavailable .register-card .back{justify-content:center}.auth-bg-solid .auth-art{background:var(--primary)}.auth-bg-soft .auth-art{background:linear-gradient(145deg, var(--auth-surface-muted), var(--secondary))}.auth-bg-pattern .auth-art{background-color:var(--primary);background-image:radial-gradient(circle at 18px 18px, color-mix(in srgb, var(--accent), transparent 55%) 2px, transparent 3px);background-size:36px 36px}.auth-template-minimal{background:var(--auth-surface-muted);grid-template-columns:minmax(320px,520px);place-content:center;padding:28px}.auth-template-minimal .auth-panel{border:1px solid var(--auth-border);border-radius:var(--auth-radius);background:var(--auth-surface);max-width:none;margin:0;padding:42px 48px}.auth-template-minimal .auth-art{display:none}.auth-template-immersive{background:linear-gradient(145deg, var(--primary), color-mix(in srgb, var(--secondary), #103d25 45%));grid-template-columns:minmax(320px,510px);place-content:center;padding:34px;position:relative;overflow:hidden}.auth-template-immersive .auth-panel{border:1px solid color-mix(in srgb, var(--auth-border), transparent 20%);border-radius:var(--auth-radius);background:color-mix(in srgb, var(--auth-surface), transparent 4%);max-width:none;box-shadow:var(--auth-shadow);margin:0;padding:44px 50px}.auth-template-immersive .auth-art{opacity:.22;border-radius:0;margin:0;position:absolute;inset:0}.auth-template-immersive .auth-art-content{display:none}.auth-template-centered .auth-panel,.auth-template-minimal .auth-panel{box-shadow:var(--auth-shadow)}.portal{background:var(--soft)}.portal .panel,.portal .metric,.portal .table-wrap,.portal .teacher-admin-card,.portal .student-card,.portal .enrollment-card{border-radius:var(--theme-radius,13px)}:is(html[data-dashboard-sidebar=brand] .portal,.portal-frame[data-dashboard-sidebar=brand]) .sidebar{background:var(--primary)}:is(html[data-dashboard-sidebar=brand] .portal,.portal-frame[data-dashboard-sidebar=brand]) .sidebar nav a.active,:is(html[data-dashboard-sidebar=brand] .portal,.portal-frame[data-dashboard-sidebar=brand]) .sidebar nav a:hover{background:color-mix(in srgb, var(--primary), #000 18%)}:is(html[data-dashboard-sidebar=light] .portal,.portal-frame[data-dashboard-sidebar=light]) .sidebar{border-right:1px solid var(--line);background:var(--white);color:var(--ink)}:is(html[data-dashboard-sidebar=light] .portal,.portal-frame[data-dashboard-sidebar=light]) .sidebar nav a,:is(html[data-dashboard-sidebar=light] .portal,.portal-frame[data-dashboard-sidebar=light]) .logout{color:var(--muted)}:is(html[data-dashboard-sidebar=light] .portal,.portal-frame[data-dashboard-sidebar=light]) .sidebar nav a.active,:is(html[data-dashboard-sidebar=light] .portal,.portal-frame[data-dashboard-sidebar=light]) .sidebar nav a:hover{background:var(--soft);color:var(--primary)}:is(html[data-dashboard-cards=elevated] .portal,.portal-frame[data-dashboard-cards=elevated]) .panel,:is(html[data-dashboard-cards=elevated] .portal,.portal-frame[data-dashboard-cards=elevated]) .metric,:is(html[data-dashboard-cards=elevated] .portal,.portal-frame[data-dashboard-cards=elevated]) .table-wrap,:is(html[data-dashboard-cards=elevated] .portal,.portal-frame[data-dashboard-cards=elevated]) .teacher-admin-card,:is(html[data-dashboard-cards=elevated] .portal,.portal-frame[data-dashboard-cards=elevated]) .student-card{box-shadow:var(--shadow);border-color:#0000}:is(html[data-dashboard-cards=soft] .portal,.portal-frame[data-dashboard-cards=soft]) .panel,:is(html[data-dashboard-cards=soft] .portal,.portal-frame[data-dashboard-cards=soft]) .metric,:is(html[data-dashboard-cards=soft] .portal,.portal-frame[data-dashboard-cards=soft]) .teacher-admin-card,:is(html[data-dashboard-cards=soft] .portal,.portal-frame[data-dashboard-cards=soft]) .student-card{border-color:color-mix(in srgb, var(--line), transparent 35%);background:color-mix(in srgb, var(--white), var(--soft) 28%)}:is(html,.portal-frame)[data-dashboard-density=compact] .portal-content{padding:20px}:is(html[data-dashboard-density=compact] .portal,.portal-frame[data-dashboard-density=compact]) .panel{padding:15px}:is(html[data-button-shape=square] .portal,.portal-frame[data-button-shape=square]) .btn{border-radius:4px}:is(html[data-button-shape=pill] .portal,.portal-frame[data-button-shape=pill]) .btn{border-radius:999px}@media (width<=760px){.auth-template-minimal,.auth-template-immersive{padding:14px}.auth-template-minimal .auth-panel,.auth-template-immersive .auth-panel{padding:30px 22px}}.folder-create>small{color:var(--muted);text-align:center;grid-column:1/-1;font-size:8px}.folder-tree{flex-direction:column;gap:3px;display:flex}.batch-row{margin-left:14px}.batch-row>button:first-child{grid-template-columns:17px 1fr auto!important;padding-top:7px!important;padding-bottom:7px!important}.batch-row>button:first-child>span{align-items:center;gap:5px;display:flex}.batch-row i{border-radius:10px;padding:2px 4px;font-size:7px;font-style:normal}.batch-row i.free{color:#176f50;background:#dff3e9}.batch-row i.paid{color:#89540b;background:#ffedd2}.batch-overview{gap:8px;display:grid}.batch-overview>p{margin:0 0 5px;font-size:10px}.batch-overview>button{border:1px solid var(--line);text-align:left;background:#fff;border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.batch-overview>button:hover{background:#f8fdfa;border-color:#a9ddc1}.batch-overview>button>svg{width:26px;color:var(--primary)}.batch-overview>button>span{flex-direction:column;gap:3px;display:flex}.batch-overview b{font-size:11px}.batch-overview small{color:var(--muted);font-size:9px}.batch-settings{background:#f5fcf8;border:1px solid #d8efe3;border-radius:10px;grid-template-columns:1.4fr repeat(7,1fr) auto;align-items:end;gap:8px;margin-bottom:14px;padding:12px;display:grid}.batch-settings>div:first-child{align-self:center}.batch-settings>div:first-child strong,.batch-settings>div:first-child span{display:block}.batch-settings>div:first-child strong{font-size:11px}.batch-settings>div:first-child span{color:var(--muted);margin-top:3px;font-size:8px}.batch-settings .field{margin:0}.batch-settings .field span{font-size:8px}.batch-settings .field input,.batch-settings .field select{min-height:37px;padding:7px;font-size:9px}.batch-settings>.btn{min-height:37px;padding:8px;font-size:9px}@media (width<=1200px){.batch-settings{grid-template-columns:repeat(4,1fr)}.batch-settings>div:first-child{grid-column:1/-1}.batch-settings>.btn{align-self:end}}@media (width<=760px){.batch-settings{grid-template-columns:1fr 1fr}.batch-settings>.btn{grid-column:1/-1}.batch-row{margin-left:8px}}.media-upload-field{flex-direction:column;gap:8px;margin:0 0 17px;display:flex}.media-upload-field>label{color:#406551;font-size:13px;font-weight:700}.media-file-input{display:none}.media-dropzone{width:100%;min-height:126px;color:var(--muted);background:#f8fdfa;border:1.5px dashed #a9d2bc;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:18px;display:flex}.media-dropzone:hover,.media-dropzone.dragging{border-color:var(--primary);background:var(--soft);color:var(--primary)}.media-dropzone>svg{width:29px;height:29px}.media-dropzone>b{font-size:12px}.media-dropzone>span{font-size:10px}.media-preview{border:1px solid var(--line);background:#f8fbf9;border-radius:11px;align-items:center;gap:13px;min-width:0;padding:11px;display:flex}.media-preview>img{object-fit:contain;background:#fff;border-radius:8px;width:132px;height:92px}.video-file-preview{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.video-file-preview>video{background:#10291c;border-radius:8px;width:180px;max-height:110px}.video-file-preview>span{word-break:break-all;align-items:center;gap:7px;min-width:0;font-size:10px;display:flex}.video-file-preview>span>svg{width:18px;color:var(--primary);flex:none}.video-file-preview small{white-space:nowrap;color:var(--muted)}.media-actions{align-self:center;gap:6px;margin-left:auto;display:flex}.media-actions button,.question-bank-row>button{color:var(--primary);background:#fff;border:1px solid #beddcc;border-radius:8px;align-items:center;gap:5px;padding:7px 9px;font-size:10px;font-weight:800;display:inline-flex}.media-actions button:last-child{color:var(--red);border-color:#eccaca}.media-actions svg,.question-bank-row>button svg{width:14px;height:14px}.upload-progress{background:#e8f3ed;border-radius:7px;height:20px;position:relative;overflow:hidden}.upload-progress>i{background:var(--primary);transition:width .15s;position:absolute;inset:0 auto 0 0}.upload-progress>span{z-index:1;height:100%;color:var(--ink);place-items:center;font-size:9px;font-weight:800;display:grid;position:relative}.media-error{color:#a73535;background:#fff1f1;border:1px solid #efc9c9;border-radius:8px;padding:9px 11px;font-size:10px;line-height:1.45}.media-option-editor>div{grid-template-columns:34px minmax(0,1fr);align-items:start;padding:12px}.media-option-editor .option-letter{width:30px;height:30px;color:var(--primary);background:#e8f6ef;border-radius:8px;place-items:center;display:grid}.media-option-editor .media-upload-field,.media-option-editor .correct-choice{grid-column:2}.media-option-editor .media-upload-field{margin-bottom:0}.media-option-editor .media-dropzone{min-height:92px}.media-option-editor .media-preview>img{width:105px;height:76px}.correct-choice{align-items:center;gap:6px;display:flex}.video-source-editor{border:1px solid var(--line);border-radius:12px;margin:7px 0 20px;padding:16px}.video-source-editor>h3{margin:0 0 11px}.video-source-tabs{gap:7px;margin-bottom:15px;display:flex}.video-source-tabs button{background:#fff;border:1px solid #bfdccd;border-radius:9px;padding:9px 13px;font-size:11px;font-weight:800}.video-source-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.youtube-preview{border:1px solid var(--line);background:#f7fbf9;border-radius:10px;align-items:center;gap:12px;padding:10px;display:flex}.youtube-preview>img{aspect-ratio:16/9;object-fit:cover;border-radius:7px;width:150px}.youtube-preview>div{grid-template-columns:auto 1fr;align-items:center;gap:3px 7px;min-width:0;display:grid}.youtube-preview svg{width:24px;color:var(--primary);grid-row:span 2}.youtube-preview b{font-size:11px}.youtube-preview span{color:var(--muted);word-break:break-all;font-size:9px}.question-bank-row>button{align-self:flex-start;margin-top:4px}.btn:disabled{cursor:not-allowed;opacity:.58;transform:none}@media (width<=760px){.media-preview,.video-file-preview{flex-direction:column;align-items:stretch}.media-preview>img,.video-file-preview>video{width:100%;height:auto;max-height:210px}.media-actions{width:100%;margin-left:0}.media-actions button{flex:1;justify-content:center}.media-option-editor>div{grid-template-columns:30px minmax(0,1fr)}.youtube-preview{flex-direction:column;align-items:flex-start}.youtube-preview>img{width:100%}}.bank-breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:14px;font-size:10px;font-weight:700;display:flex}.bank-breadcrumb span{align-items:center;gap:5px;display:flex}.bank-breadcrumb span:last-child{color:var(--primary)}.bank-breadcrumb svg{width:12px;height:12px}.path-overview>button>svg:last-child{width:16px;color:var(--muted);margin-left:auto}.batch-detail-head p{align-items:center;gap:8px;margin:6px 0 0;font-size:9px;display:flex}.batch-detail-head p i,.active-batch-card>i{border-radius:20px;padding:4px 8px;font-size:8px;font-style:normal;font-weight:800}.batch-detail-head p i.free,.active-batch-card>i.free{color:#176f50;background:#dff3e9}.batch-detail-head p i.paid,.active-batch-card>i.paid{color:#89540b;background:#ffedd2}.batch-detail-head p b{color:var(--muted)}.batch-empty{text-align:center;padding:15px 0 28px}.batch-empty .empty{padding-bottom:14px}.batch-required{text-align:center;max-width:620px;margin:auto;padding:45px}.batch-required>svg{background:var(--soft);width:52px;height:52px;color:var(--primary);border-radius:14px;padding:12px}.batch-required h3{margin-top:15px}.batch-required p{font-size:11px}.active-batch-card{background:#f2fbf6;border:1px solid #cfecdd;border-radius:11px;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;max-width:1000px;margin-bottom:12px;padding:13px 16px;display:grid}.active-batch-card>div{flex-direction:column;gap:3px;display:flex}.active-batch-card span,.active-batch-card small{color:var(--muted);font-size:9px}.active-batch-card strong{font-size:12px}.active-batch-card small{grid-column:1/-1}.tryout-form input[readonly]{color:#527361;cursor:not-allowed;background:#eef5f1}.question-search{grid-template-columns:minmax(220px,1fr) 160px 160px;gap:8px;margin-bottom:14px;display:grid}.question-search label{position:relative}.question-search label svg{width:17px;color:var(--muted);position:absolute;top:10px;left:11px}.question-search input,.question-search select{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;height:38px;padding:8px 10px;font-size:10px}.question-search input{padding-left:35px}.question-file>div.question-file-actions{flex-direction:column;gap:5px;display:flex;overflow:visible}.question-file-actions>button{white-space:nowrap;border:1px solid var(--line);color:var(--primary);background:#fff;border-radius:7px;align-items:center;gap:4px;padding:6px;font-size:9px;font-weight:800;display:flex}.question-file-actions svg{width:13px;height:13px}.question-location{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;overflow:hidden;color:#6b907c!important;font-size:8px!important}@media (width<=760px){.question-search{grid-template-columns:1fr 1fr}.question-search label{grid-column:1/-1}.active-batch-card{grid-template-columns:1fr}.active-batch-card>i{justify-self:start}.batch-settings{grid-template-columns:1fr 1fr}.batch-settings>div:first-child,.batch-settings>.btn{grid-column:1/-1}}.route-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.route-card{border:1px solid var(--line);background:#fff;border-left:4px solid #788760;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;transition:all .2s;display:grid;position:relative}.route-card.route-polri{border-left-color:#39a86d}.route-card:hover,.route-card.active{background:#f7fcf9;box-shadow:0 8px 22px #18633b14}.route-card.route-tni.active{background:#f5f8ef}.route-card.route-polri.active{background:#f0fbf5}.route-open{text-align:left;background:0 0;border:0;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:17px 12px 17px 16px;display:grid}.route-open>svg:first-child{color:#6d7d52;background:#eef2e8;border-radius:10px;width:38px;height:38px;padding:8px}.route-polri .route-open>svg:first-child{color:#39a86d;background:#e8f8ef}.route-open>svg:last-child{width:17px;color:var(--muted)}.route-open span{flex-direction:column;gap:5px;display:flex}.route-open b{font-size:14px}.route-open small{color:var(--muted);font-size:9px}.tree-route-row{grid-template-columns:25px minmax(0,1fr) 28px;align-items:center;display:grid}.tree-route-row>button:nth-child(2){text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:19px 1fr auto;align-items:center;gap:7px;width:100%;padding:9px;font-size:10px;display:grid}.tree-route-row>button:nth-child(2).active{color:var(--primary);background:#e4f8ed}.tree-toggle{color:var(--muted);background:0 0;border:0;place-items:center;padding:4px;display:grid}.tree-toggle svg{width:14px!important}.field-tree{margin-left:17px}.folder-list-card{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:minmax(0,1fr) 34px;align-items:center;display:grid}.folder-list-card>button{text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:12px;display:flex}.folder-list-card>button>svg:first-child{width:26px;color:var(--primary)}.folder-list-card>button>svg:last-child{width:16px;color:var(--muted);margin-left:auto}.folder-list-card>button>span{flex-direction:column;gap:3px;display:flex}.folder-list-card b{font-size:11px}.folder-list-card small{color:var(--muted);font-size:9px}.question-files-head p{margin:5px 0 0;font-size:9px}.action-menu{justify-self:end;position:relative}.action-menu>summary{cursor:pointer;width:30px;height:30px;color:var(--muted);border:0;border-radius:7px;place-items:center;list-style:none;display:grid}.action-menu>summary::-webkit-details-marker{display:none}.action-menu>summary:hover,.action-menu[open]>summary{color:var(--primary);background:#e8f6ef}.action-menu>summary svg{width:17px;height:17px}.action-menu>div{z-index:25;border:1px solid var(--line);background:#fff;border-radius:10px;width:220px;padding:6px;position:absolute;top:32px;right:0;box-shadow:0 14px 35px #0d331f2e}.action-menu button{text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;width:100%;padding:8px;font-size:9px;font-weight:700;display:flex}.action-menu button:hover{background:var(--soft);color:var(--primary)}.action-menu button.danger{color:var(--red)}.action-menu button.danger:hover{background:#fff0f0}.action-menu button svg{width:14px;height:14px}.question-file-actions>.action-menu{align-self:flex-end}.question-file-actions>.action-menu>div{top:30px}.batch-overview .folder-list-card+.folder-list-card{margin-top:0}@media (width<=760px){.route-card-grid{grid-template-columns:1fr}.route-open{padding:13px}.tree-route-row{grid-template-columns:24px minmax(0,1fr) 30px}.action-menu>div{width:auto;position:fixed;inset:auto 14px 85px}.question-files-head{align-items:flex-start}.question-files-head>.heading-actions{flex-wrap:wrap;justify-content:flex-end}}.auth-page.auth-form-right .auth-panel{order:2}.auth-page.auth-form-right .auth-art{order:1}.auth-page.auth-form-center{background:var(--auth-surface-muted);grid-template-columns:minmax(320px,620px);place-content:center}.auth-page.auth-form-center .auth-art{display:none}.auth-page.auth-width-compact .auth-panel{max-width:430px}.auth-page.auth-width-wide .auth-panel{max-width:620px}.auth-page.auth-logo-framed .logo{border:1px solid var(--auth-border);border-radius:var(--auth-radius);background:var(--auth-surface);width:fit-content;box-shadow:var(--auth-shadow);padding:10px 14px}.auth-page.auth-logo-compact .logo{transform-origin:0;transform:scale(.86)}.auth-page.auth-visual-geometric .auth-art{background:radial-gradient(circle at 76% 18%, color-mix(in srgb, var(--accent), transparent 12%) 0 12%, transparent 12.5%), linear-gradient(145deg, var(--primary), color-mix(in srgb, var(--secondary), #103d25 45%))}.auth-page.auth-visual-minimal .auth-art:after{opacity:.2}.auth-page.auth-bg-pattern .auth-art{background-color:var(--primary);background-image:linear-gradient(135deg,#ffffff12 25%,#0000 25%),linear-gradient(315deg,#ffffff12 25%,#0000 25%);background-size:42px 42px}:is(html[data-dashboard-navigation=pill] .portal,.portal-frame[data-dashboard-navigation=pill]) .sidebar nav a{border-radius:999px}:is(html[data-dashboard-navigation=rail] .portal,.portal-frame[data-dashboard-navigation=rail]) .sidebar nav a{border-left:3px solid #0000;border-radius:0}:is(html[data-dashboard-navigation=rail] .portal,.portal-frame[data-dashboard-navigation=rail]) .sidebar nav a.active{border-left-color:var(--accent)}:is(html[data-dashboard-navigation=minimal] .portal,.portal-frame[data-dashboard-navigation=minimal]) .sidebar nav a{background:0 0}:is(html[data-dashboard-metrics=accented] .portal,.portal-frame[data-dashboard-metrics=accented]) .metric{border-top:4px solid var(--accent)}:is(html[data-dashboard-metrics=compact] .portal,.portal-frame[data-dashboard-metrics=compact]) .metric{min-height:0;padding:14px}:is(html,.portal-frame)[data-dashboard-header=bordered] .portal-header{border-bottom:1px solid var(--line);box-shadow:none}:is(html,.portal-frame)[data-dashboard-header=floating] .portal-header{border:1px solid var(--line);border-radius:var(--theme-radius);box-shadow:var(--shadow);margin:12px 16px 0}@media (width<=760px){.auth-page.auth-form-right .auth-panel,.auth-page.auth-form-right .auth-art{order:initial}:is(html,.portal-frame)[data-dashboard-header=floating] .portal-header{margin:8px 8px 0}}.portal-workspace-group{gap:3px;margin:8px 0 14px;display:grid}.portal-workspace-group>span{color:#ffffff94;letter-spacing:.1em;text-transform:uppercase;padding:0 14px 4px;font-size:10px;font-weight:800}.portal-workspace-group a{margin:0!important}.portal-workspace-group a svg{width:18px;height:18px}@media (width<=760px){.portal-workspace-group{margin:5px 0 10px}.portal-workspace-group>span{font-size:9px}}.portal-page-header{justify-content:space-between;align-items:flex-start;gap:20px;margin:0 0 20px;display:flex}.portal-page-header h2{margin:0 0 6px;font-size:28px}.portal-page-header p{max-width:720px;color:var(--muted);margin:0}.portal-page-primary{flex:none}.schedule-surface{gap:14px;min-width:0;display:grid}.schedule-tools{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.schedule-tools label{color:var(--muted);gap:5px;font-size:12px;font-weight:750;display:grid}.schedule-tools input,.schedule-tools select{border:1px solid var(--line);min-width:170px;height:44px;font:inherit;background:#fff;border-radius:10px;padding:0 12px}.schedule-search{flex:1;min-width:240px;position:relative}.schedule-search svg{z-index:1;width:19px;color:var(--muted);position:absolute;bottom:12px;left:12px}.schedule-search input{width:100%;padding-left:40px}.schedule-view-tabs{border:1px solid var(--line);background:#fff;border-radius:11px;min-height:44px;padding:3px;display:flex}.schedule-view-tabs button{min-width:82px;min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:8px;font-weight:750}.schedule-view-tabs button.active{color:var(--primary);background:#eafbf2}.schedule-legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.schedule-legend span{align-items:center;gap:6px;display:flex}.schedule-legend span:before{content:"";background:#43aa73;border-radius:50%;width:9px;height:9px}.schedule-legend .event-completed:before{background:#28815c}.schedule-legend .event-cancelled:before{background:#b65349}.schedule-state{border:1px dashed var(--line);text-align:center;border-radius:12px;padding:28px}.schedule-state.error{color:#9b4038;background:#fff3f1}.shared-agenda .calendar-event{min-height:64px}.shared-agenda .calendar-event:disabled{opacity:1;cursor:default}.shared-calendar .month-day{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;min-width:0;color:inherit;background:#fff;border-radius:0;display:block}.shared-calendar .month-day.selected{outline:2px solid var(--primary);outline-offset:-2px}.shared-calendar .month-event{border-radius:7px;min-height:42px;padding:5px 6px;font-size:12px;line-height:1.25;display:grid;overflow:hidden}.shared-calendar .month-day-events>strong{color:var(--primary);padding:4px 2px;font-size:12px;display:block}.calendar-day-drilldown{border-top:1px solid var(--line);background:#f8fcfa;padding:14px}.calendar-day-drilldown h4{margin:0 0 10px}.responsive-records{gap:8px;display:grid}.responsive-records>article{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:1.1fr 1.4fr repeat(3,.8fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.responsive-records article>div{gap:3px;display:grid}.responsive-records article span,.responsive-records article small{color:var(--muted);font-size:12px}.portal-drawer-backdrop{display:none}.sidebar-collapse{color:#fff;background:0 0;border:1px solid #ffffff29;border-radius:9px;align-items:center;gap:10px;min-height:44px;margin:6px 12px 12px;padding:9px 12px;display:flex}.sidebar-collapse svg{width:19px}.portal.sidebar-collapsed .sidebar .logo,.portal.sidebar-collapsed .portal-workspace-group>span,.portal.sidebar-collapsed .portal-nav-label,.portal.sidebar-collapsed .side-support{display:none}.portal.sidebar-collapsed .sidebar nav a,.portal.sidebar-collapsed .logout,.portal.sidebar-collapsed .sidebar-collapse{justify-content:center;padding-inline:10px}.portal.sidebar-collapsed .sidebar nav a i{margin:0 0 24px 24px;position:absolute}.portal .sidebar,.portal .portal-main{transition:width .2s,margin-left .2s}.portal-menu{display:none!important}@media (width<=1050px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{z-index:110;transform:translate(-105%);width:min(300px,86vw)!important;display:flex!important}.portal .sidebar.open{transform:translate(0)}.portal .portal-main,.portal.sidebar-collapsed .portal-main{margin-left:0!important}.portal-menu{display:flex!important}.portal-drawer-backdrop{z-index:109;background:#0a26177a;border:0;display:block;position:fixed;inset:0}.portal .sidebar .logo,.portal .sidebar .portal-workspace-group>span,.portal .sidebar .portal-nav-label,.portal .sidebar .side-support{display:initial}.portal .sidebar-collapse{display:none}.portal .sidebar nav a,.portal .logout{justify-content:flex-start}.portal-content{overflow-x:hidden}}@media (width<=767px){.portal-header .portal-menu{display:flex!important}.portal-header{min-height:64px;padding:10px 14px}.portal-content{padding:14px 12px 28px}.portal-page-header{gap:12px;margin-bottom:14px;display:grid}.portal-page-header h2{font-size:23px}.portal-page-primary,.portal-page-primary>*{width:100%}.schedule-tools{grid-template-columns:1fr 1fr;display:grid}.schedule-search,.schedule-view-tabs{grid-column:1/-1;min-width:0}.schedule-tools label:not(.schedule-search) select{width:100%;min-width:0}.schedule-view-tabs button{flex:1;min-height:44px}.schedule-legend{font-size:12px}.responsive-records>article{grid-template-columns:1fr 1fr;padding:13px}.responsive-records>article>.badge{justify-self:start}.shared-agenda .calendar-day{grid-template-columns:1fr}.shared-agenda .day-label{padding-bottom:8px}.shared-agenda .calendar-event{min-height:76px;padding:12px;font-size:13px}.shared-agenda .calendar-event .event-time{font-size:13px}.metrics.four{grid-template-columns:1fr 1fr}.table-wrap{max-width:100%;position:relative;overflow-x:auto}.table-wrap:after{content:"Geser untuk melihat kolom lain";color:var(--muted);padding:4px 7px;font-size:11px;display:inline-block;position:sticky;left:8px}.portal .btn,.portal button,.portal select,.portal input{min-height:44px}}.portal,.portal *,.sim-portal-shell,.sim-portal-shell *{box-sizing:border-box}.portal,.portal-main,.portal-content,.sim-portal-main,.sim-portal-content,.sim-portal-page{min-width:0;max-width:100%}.portal-content,.sim-portal-content{overflow-x:clip}.text-value,.money-value{overflow-wrap:anywhere;min-width:0}.money-value{font-variant-numeric:tabular-nums;white-space:nowrap}.status-badge{white-space:normal;text-align:center;border-radius:999px;justify-content:center;align-items:center;width:max-content;max-width:100%;padding:5px 9px;font-size:12px;font-weight:800;line-height:1.2;display:inline-flex}.action-group,.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.filter-bar{align-items:end}.modal-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:16px;display:flex}.metric-grid{grid-template-columns:repeat(var(--metric-columns,3),minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.metric-grid>*{min-width:0}.active-filter-notice{color:#31694b;background:#f2fcf7;border:1px solid #c9ebd9;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;padding:10px 12px;font-size:13px;display:flex}.active-filter-notice button{color:var(--primary);background:0 0;border:0;font-weight:800;text-decoration:underline}.portal-attention>a{color:#66532e;background:#fff;border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:7px 10px;font-size:12px;text-decoration:none;display:flex}.portal-attention>a:hover{box-shadow:0 0 0 2px #9a641029}.sidebar-preference{color:#ffffffb8;border:1px solid #ffffff29;border-radius:9px;gap:6px;margin:8px 12px;padding:10px 12px;font-size:11px;font-weight:800;display:grid}.sidebar-preference select{color:#183c29;background:#fff;border:1px solid #ffffff38;border-radius:7px;min-width:0;height:36px;padding:0 8px}.portal.sidebar-collapsed .sidebar-preference{display:none}.portal .sidebar{overscroll-behavior:contain;overflow-y:auto}.portal .welcome .btn{display:inline-flex}.portal .welcome,.portal .welcome>*{min-width:0}.schedule-calendar{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;min-width:0;max-width:100%;display:block;overflow-x:auto}.schedule-calendar>.month-grid{min-width:650px}.shared-calendar .month-event time,.shared-calendar .month-event b,.shared-calendar .month-event small{font-size:max(11px,inherit)}.responsive-records>article>*{min-width:0}.responsive-records strong,.responsive-records b{overflow-wrap:anywhere}.invoice-parent-list>article,.sim-invoice-list>article,.invoice-parent-list>article>*,.portal-page-header>*{min-width:0}.portal-page-header h2,.portal-header h1{overflow-wrap:anywhere}@media (width>=768px) and (width<=1050px){.portal-content{padding-inline:22px}.dash-grid,.parent-grid,.settings-grid,.report-metrics,.finance-head{grid-template-columns:1fr 1fr}.metric-grid{--metric-columns:2!important}.metric-grid>:last-child:nth-child(odd){grid-column:1/-1}.responsive-records>article{grid-template-columns:repeat(3,minmax(0,1fr))}.responsive-records>article>.status-badge,.responsive-records>article>.badge{justify-self:start}}@media (width<=767px){html,body,#root{max-width:100%;overflow-x:hidden}.portal{overflow-x:clip}.portal-header>div:first-of-type{min-width:0}.portal-header>div:first-of-type span{font-size:10px}.portal-header h1{white-space:normal;font-size:17px}.header-user>div:not(.avatar),.header-user>svg{display:none}.header-user{gap:7px}.notification{flex:0 0 44px}.portal-page-header{align-items:stretch}.portal-page-header p{font-size:13px}.portal-page-primary{display:grid}.portal-page-primary .action-group{grid-template-columns:1fr;display:grid}.portal-page-primary .btn{justify-content:center}.welcome,.parent-welcome{border-radius:14px;padding:18px!important}.welcome h2,.parent-welcome h2{line-height:1.18;font-size:23px!important}.welcome p{font-size:13px}.welcome .btn{justify-content:center;width:100%;margin-top:10px}.portal-attention{grid-template-columns:1fr;align-items:stretch;padding:12px;display:grid}.portal-attention>a{border:1px solid #f2dfbd;border-radius:10px;justify-content:space-between}.portal-attention>a strong{margin-right:auto}.metric-grid,.metrics,.metrics.four,.dash-grid,.parent-grid,.settings-grid,.report-metrics,.finance-head,.notification-metrics{grid-template-columns:1fr!important}.metric-grid>:last-child:nth-child(odd){grid-column:auto}.metric{min-height:0}.metric h3{font-size:22px}.action-group,.filter-bar,.modal-footer,.modal-actions{grid-template-columns:1fr;align-items:stretch;width:100%;display:grid}.action-group>*,.filter-bar>*,.filter-bar label,.modal-footer>*,.modal-actions>*{width:100%;min-width:0}.filter-bar input,.filter-bar select{width:100%}.active-filter-notice{flex-direction:column;align-items:stretch}.active-filter-notice button{text-align:left;padding:8px 0}.schedule-tools{grid-template-columns:1fr}.schedule-search,.schedule-view-tabs{grid-column:auto}.schedule-tools label,.schedule-tools input,.schedule-tools select{width:100%;min-width:0}.schedule-calendar{padding-bottom:30px;position:relative}.schedule-calendar>.month-grid{min-width:560px}.schedule-calendar:after{content:"Geser kalender ke samping";color:var(--muted);font-size:11px;font-weight:700;display:block;position:absolute;bottom:7px;left:12px}.shared-calendar .month-day{min-height:96px}.shared-calendar .month-event{min-height:48px;font-size:11px}.shared-calendar .month-event time,.shared-calendar .month-event b,.shared-calendar .month-event small{font-size:11px;line-height:1.25}.calendar-month-actions button{min-width:44px;min-height:44px}.responsive-records>article{gap:10px;grid-template-columns:1fr!important}.responsive-records>article>div{border-bottom:1px solid var(--line);padding-bottom:8px}.responsive-records>article>div:last-of-type{border-bottom:0}.responsive-records>article>.status-badge,.responsive-records>article>.badge{justify-self:start}.invoice-parent-list>article,.sim-invoice-list>article{grid-template-columns:1fr!important;align-items:start!important}.invoice-parent-list>article>.btn,.sim-invoice-list>article>button{justify-content:center;width:100%}.table-wrap{background:0 0;border:0}.table-wrap table{min-width:620px}.table-wrap:after{margin:6px 0}.settings-grid>section{padding:16px}.settings-user{align-items:flex-start}.settings-user+dl>div{gap:3px;grid-template-columns:1fr!important}.portal .btn,.portal button,.portal select,.portal input,.sim-portal-shell button,.sim-portal-shell select,.sim-portal-shell input{min-height:44px}}@media (width<=430px){.portal-content,.portal-header{padding-inline:10px}.metric-grid,.metrics,.metrics.four{grid-template-columns:1fr!important}.portal-page-header h2{font-size:21px}.schedule-calendar>.month-grid{min-width:540px}}.portal-attention{background:#fff9ec;border:1px solid #efd5a5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;display:flex}.portal-attention>div{color:#865d12;align-items:center;gap:7px;display:flex}.portal-attention svg{width:19px}.portal-attention>span{color:#66532e;background:#fff;border-radius:99px;align-items:center;gap:5px;padding:6px 9px;font-size:12px;display:flex}.portal-attention strong{color:#9a6410}.portal .sidebar{overscroll-behavior:none;padding:0;overflow:hidden}.sidebar-top{z-index:2;background:var(--navy);border-bottom:1px solid #ffffff1a;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px;min-height:72px;padding:12px;display:grid;position:relative}@media (width>=1051px){.portal:not(.sidebar-collapsed) .sidebar-top{grid-template-columns:minmax(0,1fr)}}.portal-drawer-identity{color:#fff;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;min-width:0;text-decoration:none;display:grid}.portal-drawer-identity>img,.portal-drawer-mark{object-fit:contain;width:40px;height:40px;color:var(--primary);background:#fff;border-radius:10px;place-items:center;font-weight:900;display:grid}.portal-drawer-copy{min-width:0;line-height:1.15;display:grid}.portal-drawer-copy small{color:#8fdcb3;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:850;overflow:hidden}.portal-drawer-copy strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:14px;overflow:hidden}.portal-drawer-copy em{color:#a9cdba;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:11px;font-style:normal;overflow:hidden}.portal-drawer-close{color:#fff;justify-self:end;place-items:center;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important}.portal-drawer-close svg{width:20px;height:20px}.portal-navigation-filter{margin:8px 12px 0;display:block;position:relative}.portal-navigation-filter svg{color:#9bc4ae;width:18px;position:absolute;top:12px;left:11px}.portal-navigation-filter input{color:#fff;background:#ffffff14;border:1px solid #ffffff2e;border-radius:9px;width:100%;height:44px;padding:0 10px 0 36px}.portal-navigation-filter input::placeholder{color:#9bc4ae}.sidebar nav.portal-flat-navigation{overscroll-behavior:contain;flex:1;align-content:start;gap:4px;min-height:0;padding:8px 12px 12px;display:grid;overflow-y:auto}.sidebar nav.portal-flat-navigation a,.portal-sidebar-footer>a,.portal-sidebar-footer>button{color:#a8cbb8;text-align:left;border-radius:9px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;height:auto;min-height:44px;padding:10px 12px;font-size:13px;font-weight:650;display:grid}.sidebar nav.portal-flat-navigation a svg,.portal-sidebar-footer svg{width:20px;height:20px}.sidebar nav.portal-flat-navigation a i{justify-self:end;margin:0}.portal-sidebar-footer{z-index:2;background:var(--navy);border-top:1px solid #ffffff21;gap:4px;padding:8px 12px 12px;display:grid;position:relative}.portal-sidebar-footer .portal-settings-link.active,.portal-sidebar-footer .portal-settings-link:hover{color:#fff;background:#1a5a38}.portal-sidebar-footer .logout{border:0}.portal-sidebar-footer .sidebar-collapse{margin:0}.sidebar-support-desktop{margin:8px 12px}.sidebar-preference{margin:0;padding:8px 10px}.portal-sidebar-footer .logout{padding:10px 12px}.portal-drawer-backdrop{cursor:default}.portal :is(a,button,input,select):focus-visible,.schedule-surface :is(button,input,select,[tabindex]):focus-visible{outline-offset:2px;outline:3px solid #5ddd99}.portal.sidebar-collapsed .sidebar-top{grid-template-columns:1fr;padding-inline:18px}.portal.sidebar-collapsed .portal-drawer-identity{grid-template-columns:40px}.portal.sidebar-collapsed .portal-drawer-copy,.portal.sidebar-collapsed .portal-navigation-filter,.portal.sidebar-collapsed .sidebar-support-desktop{display:none}.portal.sidebar-collapsed .sidebar nav.portal-flat-navigation,.portal.sidebar-collapsed .portal-sidebar-footer{padding-inline:10px}.portal.sidebar-collapsed .sidebar nav.portal-flat-navigation a,.portal.sidebar-collapsed .portal-sidebar-footer>a,.portal.sidebar-collapsed .portal-sidebar-footer>button{grid-template-columns:20px;justify-content:center;padding-inline:12px}.portal.sidebar-collapsed .portal-sidebar-footer .sidebar-preference{display:none}.schedule-surface{min-width:0}.schedule-view-tabs{border:1px solid var(--line);background:#fff;border-radius:11px;align-items:center;min-height:44px;margin:0;padding:0;display:flex;overflow:hidden}.schedule-view-tabs button{min-width:88px;height:44px;min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:0;padding:0 16px;font-size:13px;font-weight:800}.schedule-view-tabs button.active{color:var(--primary);box-shadow:none;background:#eafbf2}.schedule-surface>[role=tabpanel]{min-width:0}.schedule-calendar{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:0;max-width:100%;display:block;overflow:hidden;padding:0!important}.schedule-calendar:after{display:none!important}.schedule-calendar>header{justify-content:space-between;align-items:center;gap:12px;min-height:72px;padding:13px 16px;display:flex}.schedule-calendar>header h3{margin:0;font-size:16px}.schedule-calendar>header span{font-size:12px}.calendar-month-actions{align-items:center;gap:6px;display:flex}.calendar-month-actions button{border:1px solid var(--line);background:#fff;border-radius:9px;place-items:center;padding:0 11px;font-size:12px;display:grid;min-width:44px!important;height:44px!important;min-height:44px!important}.calendar-month-actions svg{width:18px;height:18px}.calendar-grid-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.calendar-grid-scroll:focus-visible{outline-offset:-3px;outline:3px solid #5ddd99}.schedule-calendar .month-grid{min-width:650px;padding:0 10px 10px}.shared-calendar .month-day{min-height:112px;padding:7px;overflow:hidden}.month-weekdays span{padding:11px 2px;font-size:11px}.month-day-number{width:24px;height:24px;font-size:11px}.shared-calendar .month-day[aria-current=date] .month-day-number{background:var(--primary);color:#fff;font-weight:850}.shared-calendar .month-event{border-left:3px solid var(--primary);border-radius:7px;gap:1px;min-height:50px;padding:6px 7px;font-size:12px;line-height:1.3;display:grid;overflow:hidden}.shared-calendar .month-event time,.shared-calendar .month-event b{font-size:12px!important;line-height:1.3!important}.shared-calendar .month-event small{font-size:11px!important;line-height:1.3!important}.shared-calendar .month-event time,.shared-calendar .month-event b,.shared-calendar .month-event small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-scroll-hint{color:var(--muted);margin:0;padding:7px 12px;font-size:12px;font-weight:700;display:none}.shared-agenda .calendar-day{grid-template-columns:128px minmax(0,1fr);padding:14px 15px;display:grid}.shared-agenda .calendar-day-events{gap:4px;min-width:0;display:grid}.shared-agenda .calendar-event{border:0;border-left:3px solid var(--primary);text-align:left;grid-template-columns:52px minmax(0,1fr) auto 20px;align-items:center;gap:12px;width:100%;min-width:0;min-height:64px;margin:0;padding:11px;display:grid!important}.shared-agenda .calendar-event+.calendar-event{margin-top:0}.shared-agenda .calendar-event-content{min-width:0}.shared-agenda .calendar-event-content b,.shared-agenda .calendar-event-content p{overflow-wrap:anywhere}.shared-agenda .calendar-event-content p{margin:3px 0 0}.shared-agenda .event-time{font-variant-numeric:tabular-nums;font-weight:850;font-size:12px!important}.shared-agenda .calendar-event>.status-badge{justify-self:end}.shared-agenda .calendar-event>svg{width:20px;height:20px}.shared-agenda.compact .calendar-day{grid-template-columns:108px minmax(0,1fr)}@media (width<=1050px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{height:100dvh;width:320px!important;max-width:86vw!important;padding:0!important;overflow:hidden!important}.portal .sidebar .sidebar-top{grid-template-columns:minmax(0,1fr) 44px;padding:12px;position:sticky;top:0}.portal .sidebar .portal-drawer-identity{grid-template-columns:40px minmax(0,1fr)}.portal .sidebar .portal-drawer-copy,.portal .sidebar .portal-flat-navigation{display:grid}.portal .sidebar .sidebar-support-desktop,.portal .sidebar .sidebar-preference,.portal .sidebar .sidebar-collapse{display:none!important}.portal .sidebar .portal-sidebar-footer{display:grid}.portal .sidebar nav.portal-flat-navigation a,.portal .sidebar .portal-sidebar-footer>a,.portal .sidebar .portal-sidebar-footer>button{grid-template-columns:20px minmax(0,1fr) auto;justify-content:stretch;min-height:44px;padding:10px 12px}.portal .sidebar .portal-nav-label{display:initial}}@media (width<=767px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{width:min(320px,86vw)!important}.sidebar nav.portal-flat-navigation a,.portal-sidebar-footer>a,.portal-sidebar-footer>button{min-height:48px}.schedule-tools{grid-template-columns:1fr!important;display:grid!important}.schedule-search,.schedule-view-tabs{grid-column:auto!important}.schedule-view-tabs{width:100%}.schedule-view-tabs button{flex:1;min-width:0}.schedule-calendar>header{align-items:flex-start;min-height:0;padding:12px}.schedule-calendar>header h3{font-size:15px}.calendar-month-actions{flex-wrap:wrap;justify-content:flex-end}.schedule-calendar .month-grid{min-width:540px}.calendar-scroll-hint{display:block}.shared-calendar .month-day{min-height:100px}.shared-calendar .month-event{min-height:52px}.shared-calendar .month-event time,.shared-calendar .month-event b{font-size:12px!important}.shared-calendar .month-event small{font-size:11px!important}.shared-agenda .calendar-day,.shared-agenda.compact .calendar-day{grid-template-columns:1fr;padding:13px}.shared-agenda .day-label{padding:0 0 9px}.shared-agenda .calendar-event{grid-template-columns:52px minmax(0,1fr) 20px;align-items:start;min-height:92px;padding:12px}.shared-agenda .calendar-event-content{grid-column:2}.shared-agenda .calendar-event>.status-badge{grid-area:2/2/auto/4;justify-self:start}.shared-agenda .calendar-event>svg{grid-area:1/3}.shared-agenda .event-time{font-size:13px!important}.shared-agenda .calendar-event-content b{font-size:13px}.shared-agenda .calendar-event-content p{font-size:12px;line-height:1.45}}:root{--portal-sidebar-expanded-width:244px;--portal-sidebar-collapsed-width:76px;--portal-sidebar-active-bg:#fff;--portal-sidebar-active-fg:#18482e}.portal .sidebar{width:var(--portal-sidebar-expanded-width)}.portal .portal-main{margin-left:var(--portal-sidebar-expanded-width)}.portal.sidebar-collapsed .sidebar{width:var(--portal-sidebar-collapsed-width)}.portal.sidebar-collapsed .portal-main{margin-left:var(--portal-sidebar-collapsed-width)}.portal-sidebar-item{position:relative}.sidebar nav.portal-flat-navigation a.active,.portal-sidebar-footer .portal-settings-link.active{background:var(--portal-sidebar-active-bg);color:var(--portal-sidebar-active-fg)}.sidebar nav.portal-flat-navigation a.active svg,.portal-sidebar-footer .portal-settings-link.active svg{color:inherit}.portal-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.portal-nav-badge{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:#e48142;border-radius:999px;justify-self:end;place-items:center;min-width:20px;max-width:34px;height:20px;margin:0;padding:0 5px;font-size:10px;font-style:normal;font-weight:850;line-height:1;display:grid;overflow:hidden}.portal.sidebar-collapsed .sidebar nav.portal-flat-navigation a .portal-nav-badge{min-width:18px;max-width:26px;height:18px;margin:0;padding:0 4px;font-size:9px;position:absolute;top:2px;left:42px}.portal-sidebar-tooltip{z-index:250;color:#fff;white-space:normal;pointer-events:none;background:#082415;border-radius:8px;max-width:min(280px,100vw - 100px);padding:8px 10px;font-size:12px;font-weight:750;line-height:1.35;position:fixed;transform:translateY(-50%);box-shadow:0 8px 24px #00000047}.portal-sidebar-tooltip[hidden]{display:none}@media (width<=1050px){.portal .sidebar,.portal.sidebar-collapsed .sidebar{width:320px!important}.portal .portal-main,.portal.sidebar-collapsed .portal-main{margin-left:0!important}.portal .sidebar .portal-nav-badge{justify-self:end;min-width:20px;max-width:34px;height:20px;padding:0 5px;font-size:10px;position:static}}.platform-app,.platform-login,.platform-splash,.platform-modal-backdrop,.portal-simulator-page,.portal-simulator-boot{--primary:var(--ui-primary);--secondary:var(--ui-secondary);--accent:var(--ui-accent);--navy:var(--ui-deep);--ink:var(--ui-ink);--muted:var(--ui-muted);--soft:var(--ui-soft);--line:var(--ui-line);--platform-green:var(--ui-primary);--platform-green-2:var(--ui-secondary);--platform-blue:var(--ui-primary);--platform-deep:var(--ui-deep);--platform-navy:var(--ui-deep)}.fee-dashboard{background:var(--white,#fff);border:1px solid var(--line,#dde7ea);border-radius:var(--theme-radius,13px);color:var(--ink,#172b36);margin:24px 0;padding:24px}.fee-dashboard-heading,.fee-updates-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.fee-dashboard-heading h3,.fee-updates-heading h4{margin:0}.fee-dashboard-heading p,.fee-history-note{color:var(--muted);margin:6px 0 16px;font-size:13px}.fee-dashboard-heading label{color:var(--muted);gap:5px;font-size:12px;display:grid}.fee-dashboard-heading input{border:1px solid var(--line);background:var(--white);color:var(--ink);font:inherit;border-radius:8px;padding:8px 10px}.fee-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 24px;display:grid}.fee-summary-grid article{border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:18px;display:flex}.fee-summary-grid small{color:var(--muted);font-size:12px}.fee-summary-grid strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:clamp(19px,2.1vw,27px)}.fee-summary-grid span{color:var(--muted);font-size:11px;line-height:1.5}.fee-summary-outstanding{background:var(--soft,#f4f7f9)}.fee-updates-heading{margin-bottom:14px}.fee-updates-heading>span{color:var(--muted);font-size:11px}.fee-update{border-top:1px solid var(--line);padding:14px 0}.fee-update summary{cursor:pointer;align-items:center;gap:12px;list-style:none;display:flex}.fee-update summary::-webkit-details-marker{display:none}.fee-update summary>strong{white-space:nowrap;margin-left:auto;font-size:14px}.fee-update-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.fee-update-copy b{font-size:13px}.fee-update-copy>span{overflow-wrap:anywhere;font-size:12px}.fee-update-copy small{color:var(--muted);font-size:11px}.fee-event-dot{background:#9ba9af;border-radius:50%;flex:0 0 9px;width:9px;height:9px}.fee-event-dot.kind-created{background:#34856b}.fee-event-dot.kind-paid{background:#3283bb}.fee-event-dot.kind-adjusted{background:#bf8b36}.fee-update dl{background:var(--soft);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 0;padding:16px;display:grid}.fee-update dl div{min-width:0}.fee-update dt{color:var(--muted);font-size:11px}.fee-update dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:12px}@media (width<=700px){.fee-dashboard{padding:16px}.fee-summary-grid{grid-template-columns:1fr}.fee-dashboard-heading,.fee-updates-heading,.fee-update summary{flex-wrap:wrap;align-items:flex-start}.fee-update summary>strong{margin-left:21px}.fee-update dl{grid-template-columns:1fr}}.fee-dashboard{container-type:inline-size}@container (width<=600px){.fee-summary-grid{grid-template-columns:1fr}.fee-dashboard-heading,.fee-updates-heading,.fee-update summary{flex-wrap:wrap;align-items:flex-start}.fee-update summary>strong{margin-left:21px}.fee-update dl{grid-template-columns:1fr}}.fee-updates-toggle-heading{margin:0;font-size:14px}.fee-updates-toggle{border:0;border-top:1px solid var(--line);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;padding:12px 0;font-weight:600;display:flex}.fee-updates-toggle:hover{color:var(--primary)}.fee-updates-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:5px}.fee-updates-toggle>small{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:400}.fee-toggle-action{white-space:nowrap;align-items:center;gap:6px;margin-left:auto;font-size:12px;font-weight:500;display:flex}.fee-updates-toggle[aria-expanded=true] .fee-toggle-action svg{transform:rotate(180deg)}.fee-new-badge{background:var(--soft);color:var(--primary);border-radius:6px;padding:4px 7px;font-size:11px;font-weight:500}.fee-updates-context{color:var(--muted);margin:4px 0 14px;font-size:11px}@container (width<=600px){.fee-updates-toggle{flex-wrap:wrap}.fee-updates-toggle>span:first-child{flex-basis:100%}.fee-toggle-action{margin-left:auto}}.rapor-page{min-width:0;container-type:inline-size}.rapor-filters,.rapor-actions{flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0;display:flex}.rapor-page label{gap:7px;font-size:13px;font-weight:600;display:grid}.rapor-page input,.rapor-page select,.rapor-page textarea{border:1px solid var(--border,#dce5df);background:var(--surface,#fff);color:inherit;font:inherit;border-radius:9px;max-width:100%;padding:10px 12px}.rapor-page textarea{resize:vertical;width:100%}.rapor-filters label:nth-child(2){flex:1;min-width:220px}.rapor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.rapor-grid article,.rapor-detail{background:var(--surface,#fff);border:1px solid var(--border,#dce5df);border-radius:16px;padding:22px}.rapor-grid article header{color:#176048;justify-content:space-between;align-items:center;gap:8px;display:flex}.rapor-grid h3{margin:20px 0 4px}.rapor-grid p,.rapor-detail header p{color:#63736b;margin:5px 0}.rapor-grid small{color:#63736b}.rapor-grid dl{justify-content:space-between;gap:8px;margin:20px 0;display:flex}.rapor-grid dt{color:#63736b;font-size:12px}.rapor-grid dd{margin:5px 0;font-weight:700}.rapor-status{color:#51655b;background:#f0f3f1;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700;display:inline-flex}.rapor-status.review{color:#866114;background:#fff4d8}.rapor-status.published{color:#176048;background:#e6f4eb}.rapor-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0;display:grid}.rapor-metrics>div{background:#f5f8f6;border-radius:10px;gap:10px;padding:16px;display:grid}.rapor-metrics strong{font-size:22px}.rapor-detail h3{margin:26px 0 12px}.rapor-detail label{margin:20px 0}.rapor-hint{color:#65776d;font-size:12px;line-height:1.6}.rapor-notice{color:#46634f;background:#eff5f0;border-radius:10px;padding:13px 16px;font-size:13px;line-height:1.6}.rapor-prose{white-space:pre-wrap;overflow-wrap:anywhere}.rapor-sessions details{border-top:1px solid #e1e8e3;padding:16px 0}.rapor-sessions summary{cursor:pointer;font-weight:600}.rapor-empty{text-align:center;background:#fff;border:1px dashed #dce5df;border-radius:14px;padding:50px 20px}.rapor-empty>svg{color:#788a80}.rapor-page .btn{justify-content:center;align-items:center;gap:7px;display:inline-flex}.rapor-detail header small{color:#63736b}.rapor-detail header h2{margin:12px 0}@container (width<=850px){.rapor-grid,.rapor-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=550px){.rapor-grid{grid-template-columns:1fr}.rapor-filters>label,.rapor-filters>.btn{width:100%}.rapor-detail{padding:16px}.rapor-actions>.btn{flex:1}.rapor-metrics strong{font-size:18px}}.learning-journey,.learning-explorer{min-width:0;container-type:inline-size}.learning-journey{color:#233e32;margin:26px 0}.journey-heading,.journey-timeline>header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.journey-heading h3,.journey-timeline h3{letter-spacing:-.5px;margin:6px 0;font-size:22px}.journey-heading p{color:#728178;margin:0;font-size:13px;line-height:1.6}.journey-eyebrow{letter-spacing:1.7px;color:#698275;font-size:10px;font-weight:700}.journey-total{white-space:nowrap;background:#fff;border:1px solid #e2ebe5;border-radius:20px;align-items:center;gap:7px;padding:9px 12px;font-size:12px;display:flex}.journey-chart-grid{grid-template-columns:minmax(0,1fr) 245px;gap:18px;display:grid}.journey-trend,.journey-attendance{background:#fff;border:1px solid #e0e9e3;border-radius:18px;min-width:0;padding:22px;box-shadow:0 7px 24px #1e573407}.journey-trend>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.journey-trend>header>div>span{color:#77847b;font-size:12px;display:block}.journey-trend strong{letter-spacing:-1px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:5px;font-size:34px;font-weight:700;display:flex}.journey-trend strong small{letter-spacing:0;color:#267857;background:#edf7f0;border-radius:20px;align-items:center;gap:3px;padding:6px 9px;font-size:11px;font-weight:600;display:flex}.journey-trend strong small.down{color:#926d37;background:#fff2e4}.journey-range{color:#74867a;white-space:nowrap;font-size:12px}.journey-plot{gap:12px;height:180px;padding:10px 0;display:flex;position:relative}.journey-y-axis{color:#92a197;flex-direction:column;flex-shrink:0;justify-content:space-between;width:33px;font-size:10px;display:flex;transform:translateY(-6px)}.journey-graph{flex:1;min-width:0;position:relative}.journey-graph>svg{width:100%;height:100%;overflow:visible}.journey-grid-line{stroke:#e8eee9;stroke-width:.4px;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.journey-line{fill:none;stroke:#238466;stroke-width:2.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.journey-area{fill:#2384660c}.journey-point{cursor:pointer;z-index:1;background:#238466;border:3px solid #fff;border-radius:50%;width:14px;height:14px;transition:box-shadow .18s,background .18s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #238466;min-height:0!important;padding:0!important}.journey-point:after{content:"";position:absolute;inset:-10px}.journey-point.selected{background:#fff;border-color:#238466;box-shadow:0 0 0 6px #23846620}.journey-point:focus-visible{outline-offset:6px;outline:3px solid #1b6247}.journey-x-axis{color:#849188;justify-content:space-between;margin:6px 0 0 45px;font-size:10px;display:flex}.journey-chart-note{color:#8a978e;margin:14px 0 0;font-size:11px;line-height:1.7}.journey-chart-empty{text-align:center;color:#7d9185;place-content:center;min-height:180px;font-size:13px;display:grid}.journey-chart-empty svg{margin:auto}.journey-attendance{text-align:center}.journey-donut{border-radius:50%;place-items:center;width:138px;height:138px;margin:22px auto;display:grid}.journey-donut>div{background:#fff;border-radius:50%;place-content:center;gap:5px;width:108px;height:108px;display:grid}.journey-donut strong{letter-spacing:-1px;font-size:28px}.journey-donut span{color:#8a978e;font-size:10px}.journey-legend{gap:5px;display:grid}.journey-legend button{text-align:left;cursor:pointer;color:#6a7c70;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:7px;font-size:11px;display:flex}.journey-legend button:hover,.journey-legend button.active{background:#eef6f0}.journey-legend button.active{outline:1px solid #bfd8c6}.journey-legend button b{margin-left:auto}.journey-legend i{background:#dce4de;border-radius:50%;width:7px;height:7px}.journey-legend i.present{background:#238466}.journey-legend i.absent{background:#edbd80}.journey-legend i.cancelled{background:#aabcb0}.journey-selected{background:linear-gradient(120deg,#f2f9f4,#fcfdfb);border:1px solid #d9e9df;border-radius:15px;align-items:start;gap:15px;margin-top:16px;padding:22px;display:flex}.journey-selected-icon{color:#287757;background:#e0f1e5;border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.journey-selected>div:nth-child(2){flex:1;min-width:0}.journey-selected small{color:#819286;font-size:11px}.journey-selected h4{margin:7px 0;font-size:17px}.journey-selected p{color:#607469;white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0;font-size:13px;line-height:1.8}.journey-selected>strong{color:#26805c;font-size:24px}.journey-selected p.journey-next{margin-top:7px;font-size:12px}.journey-timeline{margin-top:30px}.journey-timeline>header>button{color:#2d7756;cursor:pointer;background:#e9f3ec;border:0;border-radius:20px;padding:8px 12px;font-size:11px}.journey-session{background:#fff;border:1px solid #e4ebe5;border-radius:12px;margin:12px 0;transition:border-color .15s}.journey-session.highlight{border-color:#95c5a8}.journey-session summary{cursor:pointer;align-items:center;gap:12px;padding:17px;list-style:none;display:flex}.journey-session summary::-webkit-details-marker{display:none}.journey-session-dot{background:#fff;border:2px solid #8fc1a1;border-radius:50%;flex-shrink:0;width:9px;height:9px}.journey-session summary>div{flex:1;gap:5px;min-width:0;display:grid}.journey-session summary small{color:#92a096;font-size:11px}.journey-session summary b{overflow-wrap:anywhere;font-size:13px}.journey-session summary>svg{color:#8b9c90;flex-shrink:0;transition:transform .15s}.journey-session[open] summary>svg{transform:rotate(90deg)}.journey-session-status{color:#809187;white-space:nowrap;background:#edf2ee;border-radius:20px;padding:5px 8px;font-size:10px}.journey-session-status.present{color:#2a7e58;background:#ecf6ef}.journey-session-status.absent{color:#987348;background:#fff2df}.journey-session-body{border-top:1px solid #edf1ee;padding:10px 20px 16px 38px}.journey-session-body p{gap:6px;font-size:12px;line-height:1.8;display:grid}.journey-session-body b{color:#698474;text-transform:uppercase;letter-spacing:.6px;font-size:10px}.journey-session-body span{white-space:pre-wrap;overflow-wrap:anywhere;color:#607569}.journey-filters{flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0;display:flex}.journey-filters label{color:#738579;flex:1;gap:7px;min-width:160px;font-size:11px;display:grid}.journey-filters select{color:#365746;font:inherit;background:#fff;border:1px solid #dce6df;border-radius:10px;width:100%;padding:11px 12px}.journey-student{background:linear-gradient(115deg,#e9f4ee,#f8fbf7);border:1px solid #dcebe0;border-radius:16px;align-items:center;gap:16px;padding:22px;display:flex}.journey-avatar{color:#fff;background:#378766;border-radius:15px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:16px;font-weight:700;display:grid}.journey-student h3{margin:0 0 5px;font-size:19px}.journey-student p{color:#758a7c;margin:0;font-size:12px}.journey-target{text-align:right;gap:6px;max-width:42%;margin-left:auto;font-size:12px;display:grid}.journey-target small{color:#7c9382;font-size:10px}.journey-target b{overflow-wrap:anywhere}.rapor-detail>.learning-journey{margin:30px 0}.rapor-grid article{background:linear-gradient(145deg,#fff,#f5faf6)}@container (width<=700px){.journey-chart-grid{grid-template-columns:1fr}.journey-attendance{text-align:left;grid-template-columns:140px 1fr;align-items:center;gap:12px;display:grid}.journey-attendance>.journey-eyebrow,.journey-attendance>.journey-chart-note{grid-column:1/-1}.journey-donut{margin:8px auto}.journey-heading h3{font-size:20px}.journey-student{flex-wrap:wrap}.journey-target{text-align:left;max-width:100%;margin-left:64px}.journey-heading{align-items:start}.journey-total{padding:7px;font-size:10px}}@container (width<=420px){.journey-heading{flex-wrap:wrap}.journey-trend,.journey-attendance{padding:17px}.journey-trend strong{font-size:28px}.journey-range{display:none}.journey-attendance{grid-template-columns:110px 1fr}.journey-donut{width:108px;height:108px}.journey-donut>div{width:84px;height:84px}.journey-donut strong{font-size:23px}.journey-selected{flex-wrap:wrap;gap:10px;padding:16px}.journey-selected-icon{width:32px;height:32px}.journey-selected>strong{font-size:19px}.journey-selected>div:nth-child(2){flex-basis:calc(100% - 44px)}.journey-filters label{flex-basis:100%;min-width:100%}.journey-session summary{gap:8px;padding:13px}.journey-session-status{font-size:9px}.journey-session-body{padding-left:22px}}@media (prefers-reduced-motion:reduce){.journey-point,.journey-session,.journey-session summary>svg{transition:none}}.rapor-redesigned{padding:28px}.rapor-identity{border-bottom:1px solid #e1ebe4;padding-bottom:22px}.rapor-identity-top{color:#778a7c;flex-wrap:wrap;justify-content:space-between;gap:14px;margin-bottom:24px;font-size:11px;display:flex}.rapor-kicker{letter-spacing:1.4px;color:#698275;font-size:10px;font-weight:700}.rapor-redesigned .rapor-identity h2{letter-spacing:-.8px;color:#204634;margin:9px 0 4px;font-size:30px}.rapor-redesigned .rapor-identity .rapor-program{color:#688170;font-size:15px}.rapor-identity-meta{background:#f4f8f5;border-radius:12px;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0 14px;padding:18px;display:grid}.rapor-identity-meta>div:last-child{grid-column:1/-1}.rapor-identity-meta dt{color:#809185;margin-bottom:6px;font-size:10px}.rapor-identity-meta dd{color:#365541;overflow-wrap:anywhere;margin:0;font-size:13px}.rapor-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px;display:grid}.rapor-overview article{background:#f4f8f5;border:1px solid #e2ebe5;border-radius:14px;align-content:start;gap:8px;padding:20px;display:grid}.rapor-overview span{color:#6c8474;font-size:11px}.rapor-overview strong{letter-spacing:-.8px;overflow-wrap:anywhere;font-size:30px}.rapor-overview small{color:#7c8c80;font-size:11px;line-height:1.6}.rapor-overview article.rapor-overview-primary{color:#fff;background:#1c6148;border-color:#1c6148}.rapor-overview-primary span,.rapor-overview-primary small{color:#d3e8da}.rapor-progress-explainer{color:#3d7051;margin:15px 0;font-size:12px;line-height:1.8}.rapor-progress-explainer>span{color:#7e8e82;font-size:11px;display:block}.rapor-history{border:1px solid #dfe9e2;border-radius:12px;overflow:hidden}.rapor-history summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:17px;list-style:none;display:flex}.rapor-history summary::-webkit-details-marker{display:none}.rapor-history summary>div{gap:5px;display:grid}.rapor-history summary b{color:#315b41;font-size:13px}.rapor-history summary>div>span{color:#809486;font-size:11px}.rapor-history-action{color:#376e4b;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:flex}.rapor-history[open] .rapor-history-action svg{transform:rotate(180deg)}.rapor-history-content{border-top:1px solid #e9efeb;padding:0 17px 17px}.rapor-history-content>p{color:#809486;font-size:11px;line-height:1.7}.rapor-progress-row{text-align:left;cursor:pointer;color:#335741;width:100%;font:inherit;background:#fff;border:0;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(90px,1fr) 42px 16px;align-items:center;gap:14px;padding:12px;display:grid}.rapor-progress-row:hover,.rapor-progress-row.active{background:#f1f7f3}.rapor-progress-row:focus-visible{outline-offset:2px;outline:2px solid #238466}.rapor-progress-row>div:first-child{gap:5px;display:grid}.rapor-progress-row b{font-size:12px}.rapor-progress-row small{color:#7d9183;overflow-wrap:anywhere;font-size:11px}.rapor-progress-row>strong{text-align:right;font-size:14px}.rapor-progress-track{background:#e1ece5;border-radius:20px;height:10px;overflow:hidden}.rapor-progress-track>span{background:#318366;border-radius:20px;height:100%;display:block}.rapor-progress-detail{background:#f2f8f4;border-radius:10px;margin-top:12px;padding:18px}.rapor-progress-detail small{color:#728779;font-size:11px}.rapor-progress-detail h4{margin:9px 0;font-size:15px}.rapor-progress-detail p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.8}.rapor-attendance-note{color:#8b9b90;margin:12px 0 0;font-size:10px;line-height:1.7}.rapor-feedback{gap:14px;margin-top:26px;display:grid}.rapor-feedback article{background:#f1f7f3;border-left:3px solid #318366;border-radius:0 12px 12px 0;padding:22px}.rapor-feedback article:last-child{background:#f8f8ef;border-color:#9da972}.rapor-feedback small{letter-spacing:1px;color:#7b9080;font-size:9px;font-weight:700}.rapor-redesigned .rapor-feedback h3{color:#345e43;margin:9px 0 12px;font-size:18px}.rapor-feedback p{color:#617866;margin:0;font-size:13px;line-height:1.9}.rapor-redesigned .journey-timeline h3{font-size:20px}@container (width<=600px){.rapor-redesigned{padding:18px}.rapor-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rapor-overview-primary{grid-column:1/-1}.rapor-overview article{padding:17px}.rapor-overview strong{font-size:27px}.rapor-identity-meta{grid-template-columns:1fr}.rapor-identity-meta>div:last-child{grid-column:auto}.rapor-history-action{font-size:10px}.rapor-progress-row{grid-template-columns:minmax(0,1fr) 42px 16px;gap:10px;padding:12px 4px}.rapor-progress-row>div:first-child{grid-column:1}.rapor-progress-track{grid-area:2/1}.rapor-progress-row>strong{grid-area:1/2/3}.rapor-progress-row>svg{grid-area:1/3/3}.rapor-redesigned .rapor-identity h2{font-size:26px}.rapor-feedback article{padding:18px}}.progress-intro{margin:30px 0 24px}.progress-intro h3{letter-spacing:-.7px;color:#244a35;margin:9px 0;font-size:27px}.progress-intro p{color:#748477;margin:7px 0;font-size:13px}.progress-intro>small{color:#8c9b8f;font-size:11px}.progress-journey{color:#294a35;min-width:0;container-type:inline-size}.progress-tabs{border-bottom:1px solid #dfe9e2;gap:6px;margin:0 0 22px;display:flex;overflow-x:auto}.progress-tabs button{font:inherit;white-space:nowrap;color:#809183;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:14px 17px;font-size:12px}.progress-tabs button[aria-selected=true]{color:#287a55;border-color:#287a55;font-weight:700}.progress-tabs button:focus-visible{outline-offset:-3px;outline:2px solid #287a55}.progress-hero{color:#fff;background:#1d6449;border-radius:19px;justify-content:space-between;align-items:center;gap:32px;padding:32px 36px;display:flex}.progress-hero-copy{flex:1;min-width:0;max-width:720px}.progress-eyebrow{letter-spacing:1.3px;font-size:9px;font-weight:700}.progress-hero h3{letter-spacing:-.5px;overflow-wrap:anywhere;margin:13px 0 10px;font-size:24px;line-height:1.4}.progress-hero p{color:#d5e7db;margin:10px 0 20px;font-size:11px}.progress-hero-bar{background:#ffffff35;border-radius:20px;max-width:600px;height:11px;margin-bottom:14px;overflow:hidden}.progress-hero-bar>span{background:#fff;border-radius:20px;height:100%;display:block}.progress-hero-copy>small{color:#e3eee7;font-size:10px;line-height:1.7;display:block}.progress-hero-copy>small.progress-hero-note{color:#c0dccc;margin-top:8px}.progress-hero-number{text-align:center;border-left:1px solid #ffffff2b;gap:8px;min-width:145px;padding:20px;display:grid}.progress-hero-number strong{letter-spacing:-1.6px;font-size:44px;line-height:1.2}.progress-hero-number span{color:#e6f2e9;font-size:11px}.progress-hero-number small{color:#c0dccc;margin-top:6px;font-size:10px}.progress-history{max-width:790px;margin:32px auto 0}.progress-history>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.progress-history>header h3{letter-spacing:-.3px;margin:0 0 7px;font-size:18px}.progress-history>header p{color:#86998a;margin:0;font-size:11px;line-height:1.6}.progress-timeline{gap:17px;display:grid}.progress-session{grid-template-columns:30px minmax(0,1fr);gap:16px;display:grid;position:relative}.progress-session:not(:last-child):before{content:"";border-left:1px dashed #bad1c2;position:absolute;top:29px;bottom:-19px;left:14px}.progress-session-marker{color:#fff;z-index:1;background:#287952;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.progress-session-card{background:#fff;border:1px solid #d9e8dd;border-radius:14px;min-width:0;padding:20px 22px}.progress-session-card>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-session-card time{color:#729180;font-size:10px}.progress-state{color:#7e9084;white-space:nowrap;background:#f0f4f1;border-radius:20px;padding:5px 9px;font-size:10px}.progress-state.present{color:#2d7e53;background:#eaf5ee}.progress-state.absent{color:#98713f;background:#fff1df}.progress-session-card h4{color:#2c513a;overflow-wrap:anywhere;margin:17px 0 9px;font-size:15px}.progress-session-story{color:#6a8373;white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0 16px;font-size:12px;line-height:1.8}.progress-next{background:#eef6f0;border-radius:8px;grid-template-columns:90px minmax(0,1fr);align-items:start;gap:10px;padding:12px 14px;font-size:11px;display:grid}.progress-next>span{color:#7b9284;font-size:10px}.progress-next>b{overflow-wrap:anywhere;font-weight:600;line-height:1.6}.progress-session-footer{color:#88a08e;justify-content:space-between;gap:10px;margin-top:14px;font-size:10px;display:flex}.progress-session-footer b{color:#39815a;font-weight:600}.progress-session-details{border-top:1px solid #edf2ee;margin-top:14px;padding-top:11px}.progress-session-details summary{color:#497c5a;cursor:pointer;align-items:center;gap:6px;font-size:11px;list-style:none;display:flex}.progress-session-details summary::-webkit-details-marker{display:none}.progress-session-details[open] summary svg{transform:rotate(180deg)}.progress-session-details p{color:#69816f;gap:5px;font-size:12px;line-height:1.8;display:grid}.progress-session-details b{color:#839889;font-size:10px}.progress-session-details p>span{white-space:pre-wrap;overflow-wrap:anywhere}.progress-empty{text-align:center;color:#789281;background:#f8fbf8;border:1px dashed #d7e5da;border-radius:14px;padding:38px 20px}.progress-empty h4{font-size:14px}.progress-empty p{font-size:12px;line-height:1.8}.progress-all{margin:22px auto;display:flex}.progress-attendance-summary{background:#f0f7f2;border:1px solid #dce9df;border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:20px;padding:30px;display:grid}.progress-attendance-summary h3{margin:12px 0;font-size:23px}.progress-attendance-summary p{color:#809385;font-size:11px;line-height:1.7}.progress-attendance-summary>strong{color:#287a55;font-size:38px}.progress-attendance-counts{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.progress-attendance-counts button{font:inherit;cursor:pointer;color:#43654e;background:#fff;border:1px solid #e0eae3;border-radius:10px;gap:6px;padding:13px;display:grid}.progress-attendance-counts button.active{background:#e3f1e7;border-color:#52936b}.progress-attendance-counts b{font-size:21px}.progress-attendance-counts span{font-size:11px}@container (width<=600px){.progress-hero{flex-direction:column;align-items:start;gap:18px;padding:24px}.progress-hero h3{font-size:21px}.progress-hero-number{text-align:left;border-top:1px solid #ffffff2b;border-left:0;grid-template-columns:auto 1fr;align-items:center;gap:7px 15px;width:100%;min-width:0;padding:17px 0 0}.progress-hero-number strong{grid-row:1/3;font-size:34px}.progress-hero-number small{margin:0}.progress-history{margin-top:26px}.progress-session{grid-template-columns:24px minmax(0,1fr);gap:10px}.progress-session-marker{width:24px;height:24px}.progress-session:not(:last-child):before{top:24px;left:11px}.progress-session-card{padding:17px}.progress-next{grid-template-columns:1fr;gap:5px}.progress-intro h3{font-size:23px}.progress-tabs button{padding:13px 10px;font-size:11px}.progress-attendance-summary{gap:14px;padding:22px}.progress-attendance-summary h3{font-size:19px}.progress-attendance-summary>strong{font-size:28px}.progress-attendance-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-session-footer{flex-wrap:wrap}}.progress-journey .progress-hero h3{color:#fff}.portal-dashboard-shared .dash-grid{margin-top:20px}.portal-dashboard-shared .panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;min-width:0;padding:20px}.portal-dashboard-note{border-bottom:1px solid #edf2f7;padding:12px 0}.portal-dashboard-note:last-child{border-bottom:0}.portal-dashboard-note p{color:#64748b;margin:5px 0}.portal-dashboard-shared .panel-heading a{align-items:center;gap:6px;font-size:13px;display:inline-flex}.teacher-fee-ledger{margin:20px 0}.teacher-fee-ledger .teacher-invoice-filters label{flex-direction:column;gap:6px;display:flex}.teacher-fee-ledger .fee-update{padding:12px}.teacher-fee-ledger .fee-update summary{justify-content:space-between}.portal{--navy:var(--secondary);font-family:var(--website-body-font,"Plus Jakarta Sans"),sans-serif}.portal .sidebar,.portal .sidebar-top,.portal .portal-sidebar-footer{background:var(--navy)}.portal .sidebar nav a,.portal .portal-sidebar-footer>a,.portal .portal-sidebar-footer>button,.portal .portal-drawer-copy small,.portal .portal-drawer-copy em{color:var(--portal-sidebar-ink,#fff)}.portal .btn:not(.btn-ghost):not(.btn-danger){color:var(--portal-button-ink,#fff)}.portal-data-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;font-size:13px;display:flex}.portal-data-toolbar label{align-items:center;gap:8px;display:flex}.portal-data-toolbar input{border:1px solid var(--border);border-radius:8px;width:min(230px,65vw);padding:8px 10px}.portal-data-toolbar [role=status]{color:var(--text-muted)}.portal{--navy:var(--portal-sidebar-surface,var(--secondary));--ui-hover:color-mix(in srgb,var(--primary) 85%,var(--ink));--surface:var(--white)}.portal .sidebar,.portal-frame .sidebar{background:var(--portal-sidebar-surface,var(--secondary))}.portal .sidebar nav a.active,.portal .sidebar nav a:hover,.portal .portal-sidebar-footer .portal-settings-link.active,.portal .portal-sidebar-footer .portal-settings-link:hover{background:var(--portal-active-surface,var(--secondary));color:var(--portal-active-ink,var(--portal-sidebar-ink,#fff))}.portal .portal-content{padding:24px var(--portal-content-padding,20px)}.portal .metric,.portal .card{border-color:var(--line);border-radius:var(--portal-card-radius,13px);background:var(--white)}.portal .metric{padding:var(--portal-card-padding,17px)}.portal .metric strong{font-size:var(--portal-metric-size,24px);line-height:1.15}.portal .avatar{background:color-mix(in srgb,var(--accent) 16%,var(--white));color:var(--secondary)}.portal .portal-local-tabs{border-color:var(--line);background:var(--white)}.portal .portal-local-tabs a.active{background:color-mix(in srgb,var(--secondary) 14%,var(--white));color:var(--secondary)}.portal .btn-ghost{background:var(--white);border-color:var(--line);color:var(--secondary)}.portal .btn-ghost:hover,.portal .portal-local-tabs a:hover{background:var(--soft);color:var(--ink)}.portal table th{background:var(--soft);color:var(--muted)}.portal table td,.portal input,.portal select,.portal textarea{border-color:var(--line)}.portal input:focus,.portal select:focus,.portal textarea:focus{outline-color:var(--secondary);border-color:var(--secondary)}.portal a:focus-visible,.portal button:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}@media (width<=767px){.portal .portal-content{padding:18px 16px}.portal .metric strong{font-size:min(var(--portal-metric-size,24px),30px)}}.portal .credential-quota-grid progress{accent-color:var(--secondary)}.portal .credential-quota-grid .full progress{accent-color:#c55043}.portal .credential-quota-grid article{border-color:var(--line);border-radius:var(--portal-card-radius,13px)}.portal .credential-quota-grid .full{border-color:#c55043}.portal .metric-icon{background:color-mix(in srgb,var(--accent) 14%,var(--white));color:var(--secondary)}.portal{--border:var(--line);--text:var(--ink);--text-muted:var(--muted)}.portal .operating-monitor>button[aria-pressed=true],.portal .operating-setup button.active,.portal .schedule-view-tabs button.active,.portal .review-filters button[aria-pressed=true]{background:color-mix(in srgb,var(--secondary) 14%,var(--white));border-color:var(--secondary);color:var(--secondary)}.portal .operating-setup,.portal .credential-table-wrap,.portal .operating-choices label,.portal .operating-setup input:not([type=radio]):not([type=checkbox]),.portal .operating-setup select{border-color:var(--line);background:var(--white);color:var(--ink)}.credential-management{min-width:0;color:var(--text,#172b3a)}.credential-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.credential-heading h2{align-items:center;gap:10px;margin:0 0 8px;display:flex}.credential-heading p,.credential-history>p,.credential-storage-note{color:var(--muted,#637383);line-height:1.6}.credential-quota-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.credential-quota-grid article{background:var(--surface,#fff);border:1px solid #dde5eb;border-radius:12px;padding:16px}.credential-quota-grid span,.credential-quota-grid b{display:block}.credential-quota-grid b{margin-top:8px;font-size:22px}.credential-quota-grid small{font-size:13px;font-weight:400}.credential-quota-grid progress{accent-color:#237d70;width:100%;height:6px;margin-top:12px}.credential-quota-grid .full{border-color:#dc8c80}.credential-filters{gap:12px;margin:18px 0;display:flex}.credential-filters input{flex:1;min-width:0}.credential-filters input,.credential-filters select{background:var(--surface,#fff);color:inherit;border:1px solid #d6e1e8;border-radius:9px;padding:11px}.credential-table-wrap{border:1px solid #dde5eb;border-radius:12px;overflow:auto}.credential-table-wrap table{border-collapse:collapse;text-align:left;width:100%}.credential-table-wrap th,.credential-table-wrap td{vertical-align:top;border-bottom:1px solid #e7edf1;padding:14px}.credential-table-wrap td span,.credential-table-wrap td small{overflow-wrap:anywhere;margin-top:5px;display:block}.credential-table-wrap th{background:#f4f7f9;font-size:12px}.credential-actions{flex-wrap:wrap;gap:6px;min-width:160px;display:flex}.credential-history{margin-top:28px}.credential-history article{border-bottom:1px solid #e7edf1;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.credential-history small{color:#637383;margin-top:6px;display:block}.credential-job-status{white-space:nowrap;background:#edf3f7;border-radius:20px;padding:6px 10px;font-size:12px}.credential-job-status.completed{color:#216247;background:#e6f5ee}.credential-job-status.failed{color:#9f3a29;background:#ffede8}.credential-dialog{gap:12px;display:grid}.credential-dialog>p{margin:0;line-height:1.6}.credential-impact{background:#f5f8fa;border-radius:12px;padding:14px}.credential-impact h3{margin:14px 0 8px;font-size:14px}.credential-impact h3:first-child{margin-top:0}.credential-impact p{justify-content:space-between;gap:15px;margin:8px 0;font-size:13px;line-height:1.5;display:flex}.credential-accept{align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.credential-accept input{margin-top:4px}.credential-storage-note{font-size:13px}.credential-dialog .modal-actions{justify-content:flex-end}.credential-management .modal{max-height:90dvh;overflow:auto}.credential-dialog .alert{align-items:flex-start}.credential-heading .btn{flex-shrink:0}@media (width<=650px){.credential-heading{flex-direction:column}.credential-quota-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.credential-quota-grid article{padding:12px}.credential-filters{flex-direction:column}.credential-history article{flex-wrap:wrap}.credential-history article>div{width:100%}.credential-management .modal{padding:18px}.credential-dialog .modal-actions{flex-wrap:wrap}}.organization-quotas{gap:20px;width:100%;display:grid}.quota-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.quota-heading h2{margin:6px 0;font-size:24px}.quota-heading p{color:var(--muted);margin:0}.quota-eyebrow{letter-spacing:.12em;color:var(--primary);font-size:11px;font-weight:800}.quota-scope{background:var(--soft);border-radius:14px;align-items:center;gap:24px;padding:18px;display:flex}.quota-scope .field{min-width:260px;margin:0}.quota-scope p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.quota-resource-list{border:1px solid var(--line);border-radius:16px;overflow:hidden}.quota-resource{background:var(--white);grid-template-columns:minmax(180px,1.3fr) minmax(150px,1fr) minmax(160px,.8fr);align-items:center;gap:24px;padding:19px 22px;display:grid}.quota-resource+.quota-resource{border-top:1px solid var(--line)}.quota-resource-label{gap:5px;display:grid}.quota-resource-label b{font-size:14px}.quota-resource-label small,.quota-usage small{color:var(--muted);font-size:12px;line-height:1.5}.quota-usage{gap:6px;display:grid}.quota-usage>span{color:var(--muted);font-size:13px}.quota-usage strong{color:var(--ink);font-size:16px}.quota-track{background:var(--line);border-radius:8px;height:5px;overflow:hidden}.quota-track i{background:var(--primary);border-radius:8px;height:100%;display:block}.quota-warning .quota-track i{background:#d49322}.quota-full .quota-track i{background:#c55043}.quota-full .quota-usage small{color:#a94136;font-weight:700}.quota-edit{gap:8px;display:flex}.quota-edit select,.quota-edit input{border:1px solid var(--line);background:var(--white);min-width:0;color:var(--ink);font:inherit;border-radius:9px;width:100%;padding:10px;font-size:13px}.quota-edit input{max-width:105px}.quota-note{color:var(--muted);align-items:flex-start;gap:9px;margin:0;font-size:13px;line-height:1.7;display:flex}.quota-note svg{flex-shrink:0;margin-top:2px}.quota-requests{background:var(--soft);border-radius:14px;padding:20px}.quota-requests h3{margin:0 0 16px}.quota-requests article{justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.quota-requests article+article{border-top:1px solid var(--line)}.quota-requests article div{gap:6px;display:grid}.quota-requests small{color:var(--muted);font-size:12px}.quota-requests p{white-space:pre-wrap;margin:0;font-size:13px}.quota-bubble{z-index:10000;color:#594521;background:#fffaf0;border:1px solid #eed5a3;border-radius:18px;gap:14px;width:min(440px,100vw - 32px);padding:22px 36px 22px 20px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 55px #172b3626}.quota-bubble>svg{color:#ac7929;flex-shrink:0}.quota-bubble b{font-size:15px}.quota-bubble p{margin:8px 0 12px;font-size:13px;line-height:1.65}.quota-bubble a{color:var(--primary);margin-top:10px;font-size:13px;display:block}.quota-bubble-close{color:#765c32;cursor:pointer;background:0 0;border:0;place-items:center;padding:5px;display:grid;position:absolute;top:10px;right:10px}.quota-warning[role=status]{color:#75551d;background:#fff8e9;border:1px solid #eddaad;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;padding:13px 16px;font-size:13px;display:flex}.quota-warning[role=status] svg{flex-shrink:0}.quota-warning[role=status] a{color:inherit;margin-left:auto;font-weight:700}.organization-operating-settings .organization-quotas{margin-top:18px}@media (width<=760px){.quota-heading,.quota-scope{flex-direction:column;align-items:flex-start}.quota-scope .field{width:100%;min-width:0}.quota-resource{grid-template-columns:1fr;gap:14px;padding:17px}.quota-edit input{max-width:140px}.quota-bubble{bottom:88px;right:16px}.quota-requests article{flex-direction:column;align-items:flex-start}}.quota-warning.quota-banner-full[role=status],.quota-bubble{color:#9b302b;background:#fff2f0;border-color:#efb9b4}.quota-bubble>svg,.quota-bubble-close{color:#a5342d}.quota-warning[role=status] a{white-space:nowrap;border:1px solid;border-radius:8px;padding:6px 10px}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAa0ABQAAAAADOwAAAZHAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJtP01WQVJGBmA/U1RBVIEcAGQvXBEICoMkgmcLFgAwhEwBNgIkAyYEIAWGXAdiDAcbOgtRlHLSRcD8TEzkdoghPRuspKefbVnJIM5yRfA8vZv9uTNJSCZY21Scrigr6qyJ/C3sE1OFKuVP3e+lxUTbYio1zb/kFdk2bufY2BlhWERRBrcDUBhB5GEpd2Cy+MDxqf9zLPX+XVsk5r+s50d6IpWLatqbdT6f2MAikiOKQocbjya2QT0DqPDX4R0jQBgAUAiCRhDA0EkvYeLk9X3I2bEWI8jBAihIANm+kUWQBgggWChcBBdFhXlAUgOCAgBA0AgKjUJ8HKvjddFCKSgAVklEBYAeEJgCQJH0qB3B+neDg4sAA4hAD0AVIEAA0IACJGeaUjMIIIhBUE/zNABjTQMBwEVRcwcYBUCObLERABAgjAA1M/ZSa9hSi4OlpsnZ2KBOVUsAZlRGl1W0NZ6gSwhQPIAFs7YFL0QS91vRQgdgx2VDAnIegKpQvwAJIoLgooBAGtCJcHizg0TDiz8vhPgIcVXaDJu37ZyDAIjFy4AAiC1JAA0olJwN6nFAACQk/zfQVUuA3t5ELKMT9hpBSRj+HBSggYCIAIEkUoC4PCIQIWHGA8+IStxf0PW15ntP22gc+Wo+BLyQAHECQiAVd+c3Ba8gZ4NOACBaLOhsbIMkAXEmuHsSAvkf4oJaAogH6nEQAzoBIEihUAwAA0AACAObAGcANYAAABaqgMmpWAhiiVyrvNyqFV8tMQ5Iyq6r9Lf7W82i8ILl2cv8zbfdJ5lnPzSnvt/XXPfRR/5pH3xA+u5uS0798EPJ3Fft33w36Wc+8E/7aIB/9fvvb1pE9erNXLB9mkw//cSg8Cnx03VGXDvZnRzKqV9Xkhn7eRHb3wVjHpg19nkZpX9bBU+vnHegrsuQcbW9Bi7oO33h+8SU0Tly/MbeYUuG1cftVz6oNxrW0qH1iezq446fkDFo/rgvTkqt7zmteFzncZ0uxXti09FFF2z+C7CODpjUudOE5NSeb3bv/mbPKcmOEzpWQ3VBgBAuj/AOY3qMm7UvgA8qo3+qvAUBBAX0wADQG4AG+jCKaSxkBe/zvcTG8jRpRZgqhCog4sd++cOo7J+/RdvaaMoc78Ri/PNPSclx6fDvG1Kt3qQFi1rq+5EaavTtt9TVvfvucYsA5wc4oESU+E1ikF9TkrOkIsIH5Fawx7SBNLnMcWlM3skBluCmQNs7GeyFvYVDamsqwhxx18n/+WdxzDgOLU1AqbUlb3m+KOT9+ONvY/7XlrdLS//5v7nN97XHj0VzJpJvz4spq0V7ioXDuv2YrSxtF/KZmvbWfKtorXSh8dfvgGu+ev/nFSaXM6jyuCE/f/EpmuP7Rqu8R98vP/+tXUdrOgKlZP9Q/s+fRF9+3CHZd4EugfPv158me9X7v/6aSMCxMJmIr//65bNXngl7+uiPP5oKx+y27D8trp+psUzMacpm80XlnYeMAct0LynxhNYgaP3dtn8/LBAi+ksr+7NvjjtJV+UXrz0uLXV1x08AZRN1S2A8EaVE5afk/dfGjz//+fdHn36Xdttz2d9/z+bawZ8/slNN1aYtq+ZPGzNuPGdwOsfYflwmHCkPgs5DcKizvdpS/3gEUMW9/lvQvWp1bGTW1fpngC/uSVYAfH3TeSusL8TtlHUD4KAAEHjahk4YpuffGwEBN/dUmpHqdHyJ3Ap8O3UlQ4gCNrMRwLBBKiskL6a+RoBi/9XGlgc8L4/CUejQxaiIyqmomdhktOhfgDbDfaNDb4+yKIPd6IgmzDa0CByijWFmL2dlSRKagTIWXeIU9HDphoZiJeBTjAefHMxDhVSRFUgVcOkW3EGMahYVMFjWHhMluB2wAcbHYqF1LpsDF9C6s+CI2fDgh4wSuFEyGadjXAmIk3CugIRibLIti9ZtC8S4VSqfikGqPaoI122XyRYLBmsOmdiiTpqK1OklUQzpMcZmQRQV4M4oJCMkfRQXK+qvjifUcQd1bRdetW/LWjacYxvcttnVjWg5h0q4xw6rZyejSpZVZ78LzC4uyDNRQ4bymHSTMyM+SZ7D75mg/7YTlmNz7W8T00h0VEiGKB+F7iWYZFvSTiA4LVxttm2ATt5EoUWLJbY4EnLGrfsvEROlHtzlKn3H9VUT5tU/2dt3/EBv7foYzV/W4upyj04woO/gh6Vwwt3WGQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.portal.portal-frame .access-settings{min-width:0;max-width:100%}.portal.portal-frame .access-target-switch{flex-wrap:wrap;gap:8px;margin:20px 0;display:flex}.portal.portal-frame .access-target-switch button{border:1px solid var(--line);background:var(--white,#fff);color:var(--ink);cursor:pointer;border-radius:10px;padding:10px 14px}.portal.portal-frame .access-target-switch button.active{background:var(--soft);border-color:var(--secondary);color:var(--secondary);font-weight:700}.portal.portal-frame .access-module-list{gap:16px;margin:20px 0;display:grid}.portal.portal-frame .access-workspace-group{border:1px solid var(--line);border-radius:var(--portal-card-radius,14px);background:var(--white,#fff);gap:10px;padding:16px;display:grid}.portal.portal-frame .access-module-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-width:0;padding:12px 0;display:flex}.portal.portal-frame .access-module-row>span{gap:4px;min-width:0;display:grid}.portal.portal-frame .access-module-row small{color:var(--muted)}.portal.portal-frame .access-module-row select{flex-shrink:0;width:45%;max-width:260px}.portal.portal-frame .access-module-row.unavailable{opacity:.7}.portal.portal-frame .access-preview{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.portal.portal-frame .access-preview>b,.portal.portal-frame .access-preview>small{flex-basis:100%}.portal.portal-frame .access-preview>span{border:1px solid var(--line);background:var(--white,#fff);border-radius:8px;padding:6px 10px}.portal.portal-frame .workflow-profile-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0;display:grid}.portal.portal-frame .workflow-profile-card{border:1px solid var(--line);background:var(--white,#fff);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;min-width:0;padding:16px;display:flex}.portal.portal-frame .workflow-profile-card>span{gap:6px;min-width:0;display:grid}.portal.portal-frame .workflow-profile-card small{color:var(--muted);line-height:1.6;display:block}.portal.portal-frame .workflow-profile-card.selected{border-color:var(--secondary);background:var(--soft)}.portal.portal-frame .organization-operating-settings>.operating-setup{margin-top:16px}.portal.portal-frame .organization-operating-settings .operating-choices>button{text-align:left;border:1px solid var(--line);background:var(--white,#fff);color:var(--ink);border-radius:12px;gap:8px;padding:16px;display:grid}.portal.portal-frame .organization-operating-settings .operating-choices>button span{color:var(--muted);line-height:1.6}.portal.portal-frame .organization-operating-settings .platform-card{border:1px solid var(--line);border-radius:var(--portal-card-radius,14px);background:var(--white,#fff);margin:16px 0;padding:20px}.portal.portal-frame .organization-operating-settings .platform-card-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.portal.portal-frame .organization-operating-settings .platform-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0;display:grid}.portal.portal-frame .organization-operating-settings .platform-form-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.portal.portal-frame .organization-operating-settings .platform-info-note{border:1px solid var(--line);background:var(--soft);border-radius:10px;gap:6px;padding:14px;display:grid}.portal.portal-frame .organization-operating-settings .platform-list>div{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.portal.portal-frame .organization-operating-settings details{min-width:0;margin:16px 0}.portal.portal-frame .organization-operating-settings summary{cursor:pointer;padding:10px 0;font-weight:600}@container portal-frame (width<=650px){.portal.portal-frame .access-module-row{flex-direction:column;align-items:stretch;gap:8px}.portal.portal-frame .access-module-row select{width:100%;max-width:none}.portal.portal-frame .workflow-profile-list,.portal.portal-frame .organization-operating-settings .platform-form-grid{grid-template-columns:1fr}.portal.portal-frame .organization-operating-settings .platform-card{padding:16px}.portal.portal-frame .organization-operating-settings .platform-card-head{flex-wrap:wrap}}.portal.portal-frame{font-family:var(--portal-body-font,"Plus Jakarta Sans Variable",system-ui,sans-serif);font-size:var(--portal-text-body,.875rem);line-height:1.5}.portal.portal-frame :where(button,input,select,textarea,p,span,label,small,strong,b,em,i,th,td,a,div,summary,dt,dd){font-family:var(--portal-body-font,"Plus Jakarta Sans Variable",system-ui,sans-serif)!important}.portal.portal-frame :is(h1,h2,h3,h4){line-height:1.4;font-family:var(--portal-heading-font,"Plus Jakarta Sans Variable",system-ui,sans-serif)!important}.portal.portal-frame .portal-header h1{overflow-wrap:anywhere;line-height:1.3;font-size:var(--portal-text-page,1.375rem)!important}.portal.portal-frame :is(h2,h3){font-size:var(--portal-text-card,1rem)!important}.portal.portal-frame .modal-head h2{font-size:1.1875rem!important}.portal.portal-frame h4{font-size:var(--portal-text-body,.875rem)!important}.portal.portal-frame :is(p,td,dt,dd){line-height:1.6;font-size:var(--portal-text-body,.875rem)!important}.portal.portal-frame :is(label,th,.portal-local-tabs a){line-height:1.5;font-size:var(--portal-text-label,.8125rem)!important}.portal.portal-frame th{letter-spacing:.02em;padding:12px 14px;font-weight:700}.portal.portal-frame td{padding:12px 14px}.portal.portal-frame :is(small,.badge,.status-badge,.header-user span){line-height:1.5;font-size:var(--portal-text-secondary,.75rem)!important}.portal.portal-frame :is(input,select,textarea){background:var(--white,#fff);color:var(--ink);border:1px solid var(--line);border-radius:var(--portal-control-radius,.625rem);min-width:0;max-width:100%;min-height:44px;padding:10px 12px;line-height:1.5;font-size:var(--portal-text-body,.875rem)!important}.portal.portal-frame select:not([multiple]):not([size]){appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235b6370' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}.portal.portal-frame :is(input[type=checkbox],input[type=radio]){appearance:auto;width:18px;min-width:18px;height:18px;min-height:18px;accent-color:var(--secondary);flex:0 0 18px;margin:2px 0;padding:0}.portal.portal-frame button{min-height:44px;line-height:1.5;font-size:var(--portal-text-body,.875rem)!important}.portal.portal-frame .btn{border-radius:var(--portal-control-radius,.625rem);padding:10px 16px;font-weight:700}.portal.portal-frame :is(.finance-tabs button,.portal-local-tabs a,.portal-data-toolbar button,.sidebar button){font-size:var(--portal-text-label,.8125rem)!important}.portal.portal-frame :is(.icon-btn,.calendar-month-head button){min-width:44px}.portal.portal-frame :is(button,input,select,textarea,a,summary):focus-visible{outline:2px solid var(--secondary,#345eab);outline-offset:3px;box-shadow:0 0 0 2px var(--white,#fff)}.portal.portal-frame :is(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.6}.portal.portal-frame :is(input,select,textarea)[aria-invalid=true]{border-color:#bd3b32;outline-color:#bd3b32}.portal.portal-frame :is(.alert.error,.form-error){color:#9b302b;font-size:var(--portal-text-body,.875rem);background:#fff2f0;border-color:#c55043}.portal.portal-frame .field{gap:6px;min-width:0}.portal.portal-frame .field>span{font-weight:600;font-size:var(--portal-text-label,.8125rem)!important}.portal.portal-frame .table-wrap{max-width:100%;overflow:auto}.portal.portal-frame .metric strong{line-height:1.15;font-family:var(--portal-heading-font)!important;font-size:var(--portal-metric-size,24px)!important}.portal.portal-frame .metric :is(span,small){font-size:var(--portal-text-label,.8125rem)!important}.portal.portal-frame :is(.operating-monitor,.credential-quota-grid) :is(strong,b){font-size:1.5rem!important}.portal.portal-frame .credential-quota-grid article{padding:16px}.portal.portal-frame .modal{max-width:min(900px,100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}.portal.portal-frame .modal-backdrop{padding:12px}.portal.portal-frame .modal-actions{flex-wrap:wrap;gap:10px}.portal.portal-frame :is(.portal-page-header p,.empty p){font-size:var(--portal-text-label,.8125rem)!important}@container portal-frame (width<=650px){.portal.portal-frame .metric strong{font-size:min(var(--portal-metric-size,24px),1.875rem)!important}.portal.portal-frame .portal-local-tabs{flex-wrap:wrap}.portal.portal-frame .filter-bar{flex-wrap:wrap;min-width:0}.portal.portal-frame .filter-bar>*{min-width:0;max-width:100%}}@media (forced-colors:active){.portal.portal-frame select{appearance:auto;background-image:none}.portal.portal-frame :is(button,input,select,textarea):disabled{opacity:1}}.portal.portal-frame .onboard-choice button small,.portal.portal-frame .onboard-template>div span,.portal.portal-frame .onboard-summary>span,.portal.portal-frame .onboard-summary dt,.portal.portal-frame .onboard-summary>small,.portal.portal-frame .organization-onboarding form>footer>span,.portal.portal-frame .organization-progress header span,.portal.portal-frame .onboard-progress-stages small,.portal.portal-frame .organization-progress>small,.portal.portal-frame .onboard-dns-record,.portal.portal-frame .onboard-dns-record code,.portal.portal-frame .quota-eyebrow,.portal.portal-frame .catalog-product-switch>span,.portal.portal-frame .catalog-product-switch button small,.portal.portal-frame .catalog-card-top span,.portal.portal-frame .catalog-card-top small,.portal.portal-frame .catalog-package-alert p,.portal.portal-frame .catalog-readiness span,.portal.portal-frame .catalog-tenant-impact,.portal.portal-frame .catalog-feature-row.header,.portal.portal-frame .catalog-subhead span,.portal.portal-frame .catalog-demo-card i,.portal.portal-frame .catalog-modal>header span,.portal.portal-frame .catalog-editor-feature-head p,.portal.portal-frame .catalog-editor-feature-head button,.portal.portal-frame .catalog-feature-picker label,.portal.portal-frame .catalog-impact b,.portal.portal-frame .catalog-impact p,.portal.portal-frame .catalog-product-switch button,.portal.portal-frame .catalog-stats small,.portal.portal-frame .catalog-tabs.platform-tabs button,.portal.portal-frame .catalog-panel-head p,.portal.portal-frame .catalog-soft-button,.portal.portal-frame .catalog-comparison th,.portal.portal-frame .catalog-comparison td,.portal.portal-frame .catalog-feature-row,.portal.portal-frame .catalog-filters input,.portal.portal-frame .catalog-form label,.portal.portal-frame .catalog-preset-picker button small,.portal.portal-frame .catalog-package-summary span,.portal.portal-frame .catalog-package-groups>article>button small,.portal.portal-frame .catalog-package-groups label,.portal.portal-frame .catalog-package-validation b,.portal.portal-frame .catalog-package-validation p,.portal.portal-frame .catalog-source-safety,.portal.portal-frame .catalog-source-card-head small,.portal.portal-frame .catalog-source-card-head p,.portal.portal-frame .catalog-source-card-head>i,.portal.portal-frame .catalog-source-progress>div,.portal.portal-frame .catalog-source-progress small,.portal.portal-frame .catalog-source-result b,.portal.portal-frame .catalog-source-error b,.portal.portal-frame .catalog-source-result small,.portal.portal-frame .catalog-source-error small,.portal.portal-frame .catalog-source-form>label,.portal.portal-frame .catalog-source-pair label,.portal.portal-frame .catalog-source-choice b,.portal.portal-frame .catalog-source-choice small,.portal.portal-frame .catalog-mapping-summary p,.portal.portal-frame .catalog-mapping-summary small,.portal.portal-frame .catalog-mapping-list b,.portal.portal-frame .catalog-mapping-list small,.portal.portal-frame .catalog-mapping-list span,.portal.portal-frame .catalog-mapping-list p,.portal.portal-frame .catalog-mapping-list i,.portal.portal-frame .catalog-mapping-warnings>b,.portal.portal-frame .catalog-mapping-warnings p,.portal.portal-frame .catalog-mapping-tabs button,.portal.portal-frame .catalog-mapping-tabs button i,.portal.portal-frame .catalog-mapping-intro b,.portal.portal-frame .catalog-decision-head b,.portal.portal-frame .catalog-mapping-intro p,.portal.portal-frame .catalog-decision-head p,.portal.portal-frame .catalog-business-groups button b,.portal.portal-frame .catalog-business-groups button p,.portal.portal-frame .catalog-business-groups button small,.portal.portal-frame .catalog-business-features b,.portal.portal-frame .catalog-business-features i,.portal.portal-frame .catalog-business-features p,.portal.portal-frame .catalog-business-features small,.portal.portal-frame .catalog-decision-view section h3,.portal.portal-frame .catalog-decision-view section h3 span,.portal.portal-frame .catalog-section-help,.portal.portal-frame .catalog-decision-cards b,.portal.portal-frame .catalog-decision-cards p,.portal.portal-frame .catalog-decision-cards small,.portal.portal-frame .catalog-simple-warnings p,.portal.portal-frame .catalog-decision-empty b,.portal.portal-frame .catalog-decision-empty p,.portal.portal-frame .catalog-technical-note b,.portal.portal-frame .catalog-technical-note small,.portal.portal-frame .catalog-approval-note b,.portal.portal-frame .catalog-approval-note small,.portal.portal-frame .catalog-warning-toggle,.portal.portal-frame .catalog-source-github-note b,.portal.portal-frame .catalog-source-github-note small,.portal.portal-frame .catalog-commit-compare b,.portal.portal-frame .catalog-commit-compare p span,.portal.portal-frame .catalog-commit-compare>small,.portal.portal-frame .catalog-changes-view section>h3,.portal.portal-frame .catalog-changes-view section>h3>span,.portal.portal-frame .catalog-changes-view section>p,.portal.portal-frame .catalog-change-cards b,.portal.portal-frame .catalog-change-cards small,.portal.portal-frame .catalog-change-cards article>span,.portal.portal-frame .catalog-change-cards article>p,.portal.portal-frame .catalog-scope-summary b,.portal.portal-frame .catalog-scope-summary small,.portal.portal-frame .catalog-managed-surfaces h3,.portal.portal-frame .catalog-managed-surfaces article>span,.portal.portal-frame .catalog-managed-surfaces article b,.portal.portal-frame .catalog-managed-surfaces article small,.portal.portal-frame .catalog-feature-summary small,.portal.portal-frame .catalog-feature-group-head b,.portal.portal-frame .catalog-feature-group-head p,.portal.portal-frame .catalog-feature-group-head small,.portal.portal-frame .catalog-feature-group-head>i,.portal.portal-frame .catalog-feature-items b,.portal.portal-frame .catalog-feature-items p,.portal.portal-frame .catalog-feature-items small,.portal.portal-frame .catalog-feature-main>i,.portal.portal-frame .catalog-workflow-action,.portal.portal-frame .catalog-workflow-unavailable,.portal.portal-frame .catalog-feature-more,.portal.portal-frame .catalog-comparison td details span,.portal.portal-frame .workflow-version-history>summary,.portal.portal-frame .workflow-version-history article span,.portal.portal-frame .workflow-version-history article small,.portal.portal-frame .portal-sim-preview>aside:first-child nav button span,.portal.portal-frame .portal-sim-why dt,.portal.portal-frame .portal-sim-workflow-panel>header span,.portal.portal-frame .portal-launcher-copy>span,.portal.portal-frame .portal-blueprint-panel>header>div:first-child>span,.portal.portal-frame .portal-blueprint-table .head,.portal.portal-frame .sim-primary-controls label>span,.portal.portal-frame .sim-status-strip>span,.portal.portal-frame .sim-portal-shell>#sim-preview-navigation nav button span,.portal.portal-frame .sim-portal-shell>#sim-preview-navigation footer,.portal.portal-frame .sim-portal-main>header small,.portal.portal-frame .sim-inspector>header span,.portal.portal-frame .sim-inspector dt,.portal.portal-frame .sim-inspector section p,.portal.portal-frame .sim-action-bar span,.portal.portal-frame .sim-student-grid dt,.portal.portal-frame .sim-table th,.portal.portal-frame .sim-portal-page>.table-wrap th,.portal.portal-frame .sim-report-list>button>span,.portal.portal-frame .sim-report-editor label,.portal.portal-frame .portal-launcher-tabs button,.portal.portal-frame .sim-control-actions>button,.portal.portal-frame .sim-feature-options .kind,.portal.portal-frame .sim-feature-options>article>label span,.portal.portal-frame .sim-feature-options footer,.portal.portal-frame .sim-demo-workspace>header>span,.portal.portal-frame .sim-demo-workspace label,.portal.portal-frame .sim-enrollment-board dt,.portal.portal-frame .sim-portal-shell>#sim-preview-navigation .sim-drawer-identity small,.portal.portal-frame .sim-portal-shell>#sim-preview-navigation .sim-drawer-identity em,.portal.portal-frame .sim-portal-shell>#sim-preview-navigation>footer small,.portal.portal-frame .sim-portal-page .shared-calendar .month-event small,.portal.portal-frame .sim-sidebar-support,.portal.portal-frame .sim-sidebar-support small,.portal.portal-frame .sim-sidebar-preference,.portal.portal-frame .device-desktop.sim-sidebar-collapsed .sim-portal-shell>#sim-preview-navigation .portal-nav-badge,.portal.portal-frame .device-tablet .sim-portal-shell>#sim-preview-navigation .portal-nav-badge,.portal.portal-frame .device-mobile .sim-portal-shell>#sim-preview-navigation .portal-nav-badge,.portal.portal-frame .platform-select-trigger b,.portal.portal-frame .platform-select-menu b,.portal.portal-frame .platform-select-menu small,.portal.portal-frame .template-head>div>span,.portal.portal-frame .template-head p,.portal.portal-frame .template-toolbar input,.portal.portal-frame .template-thumb>div,.portal.portal-frame .template-thumb>i,.portal.portal-frame .template-card-title span,.portal.portal-frame .template-card-body>p,.portal.portal-frame .template-meta,.portal.portal-frame .template-state b,.portal.portal-frame .template-state small,.portal.portal-frame .template-job>div:first-child,.portal.portal-frame .template-secondary-actions a,.portal.portal-frame .template-secondary-actions button,.portal.portal-frame .template-empty p,.portal.portal-frame .template-modal>header span,.portal.portal-frame .template-form label,.portal.portal-frame .template-simple-head span,.portal.portal-frame .template-scope span,.portal.portal-frame .template-scope small,.portal.portal-frame .template-primary-actions details button,.portal.portal-frame .template-primary-actions details a,.portal.portal-frame .template-source-choice span,.portal.portal-frame .template-main-field,.portal.portal-frame .template-drop b,.portal.portal-frame .template-drop span,.portal.portal-frame .template-confirm-source b,.portal.portal-frame .template-confirm-source span,.portal.portal-frame .template-confirm-source button,.portal.portal-frame .template-scope-choice>span,.portal.portal-frame .template-scope-choice b,.portal.portal-frame .template-scope-choice small,.portal.portal-frame .template-product-picker label,.portal.portal-frame .template-advanced>button,.portal.portal-frame .template-advanced label,.portal.portal-frame .compiler-summary span,.portal.portal-frame .template-analysis-summary p,.portal.portal-frame .template-analysis-summary small,.portal.portal-frame .template-analysis-grid h3,.portal.portal-frame .template-analysis-grid section>div,.portal.portal-frame .template-analysis-grid small,.portal.portal-frame .template-analysis-grid i,.portal.portal-frame .template-warnings>b,.portal.portal-frame .template-warnings p,.portal.portal-frame .template-mapping-overlay b,.portal.portal-frame .template-job>small,.portal.portal-frame .template-simple-head p,.portal.portal-frame .compiler-reference-column>b,.portal.portal-frame .compiler-file-meta span,.portal.portal-frame .compiler-file-meta small,.portal.portal-frame .compiler-file-meta button,.portal.portal-frame .compiler-awaiting p,.portal.portal-frame .compiler-mode-note span,.portal.portal-frame .compiler-inputs .template-main-field>small,.portal.portal-frame .compiler-mockup-head span,.portal.portal-frame .compiler-mockup-card>b,.portal.portal-frame .template-head-actions .btn,.portal.portal-frame .template-toolbar>label>span,.portal.portal-frame .template-control-foot,.portal.portal-frame .template-filter-toggle,.portal.portal-frame .template-filter-toggle b,.portal.portal-frame .template-active-filters button,.portal.portal-frame .template-preview-toolbar button,.portal.portal-frame .template-preview-toolbar a,.portal.portal-frame .template-preview-panel>small,.portal.portal-frame .template-review-summary b,.portal.portal-frame .template-review-summary small,.portal.portal-frame .template-review-checks p,.portal.portal-frame .template-action-summary p span,.portal.portal-frame .template-review-warnings summary,.portal.portal-frame .template-review-warnings p,.portal.portal-frame .template-review-note,.portal.portal-frame .template-surface-tabs button,.portal.portal-frame .template-surface-tabs small,.portal.portal-frame .template-auth-preview>section i,.portal.portal-frame .template-auth-preview>section p,.portal.portal-frame .template-auth-preview label,.portal.portal-frame .template-auth-preview>section>div,.portal.portal-frame .template-auth-preview>section button,.portal.portal-frame .template-auth-preview>aside small,.portal.portal-frame .template-auth-preview>aside p,.portal.portal-frame .template-dashboard-preview>aside span,.portal.portal-frame .template-dashboard-preview header small,.portal.portal-frame .template-dashboard-preview article small,.portal.portal-frame .template-dashboard-preview header i,.portal.portal-frame .template-dashboard-preview main>section,.portal.portal-frame .platform-brand.compact>span,.portal.portal-frame .platform-login-copy>span,.portal.portal-frame .platform-login-card>small,.portal.portal-frame .platform-login-aside>div>span,.portal.portal-frame .platform-sidebar nav button>span,.portal.portal-frame .platform-admin-avatar,.portal.portal-frame .platform-sidebar-foot b,.portal.portal-frame .platform-sidebar-foot span,.portal.portal-frame .platform-topbar span,.portal.portal-frame .platform-welcome span,.portal.portal-frame .platform-metrics span,.portal.portal-frame .platform-card-head p,.portal.portal-frame .platform-tenant-cards small,.portal.portal-frame .platform-name-cell small,.portal.portal-frame .platform-tenant-mark,.portal.portal-frame .platform-name-cell>i,.portal.portal-frame .platform-status,.portal.portal-frame .platform-toolbar input,.portal.portal-frame .platform-toolbar select,.portal.portal-frame .platform-table th,.portal.portal-frame .platform-table td,.portal.portal-frame .platform-empty p,.portal.portal-frame .platform-detail-head>button,.portal.portal-frame .platform-detail-head>div:nth-child(2)>div>span,.portal.portal-frame .platform-detail-head p,.portal.portal-frame .platform-tabs button,.portal.portal-frame .platform-access-metrics span,.portal.portal-frame .platform-access-table small,.portal.portal-frame .platform-access-role-tabs button,.portal.portal-frame .platform-access-roles span,.portal.portal-frame .platform-access-note,.portal.portal-frame .platform-access-password-modal>header span,.portal.portal-frame .platform-access-password-modal>header p,.portal.portal-frame .platform-access-password-info,.portal.portal-frame .platform-section-copy p,.portal.portal-frame .platform-form-grid .field small,.portal.portal-frame .platform-wizard .field small,.portal.portal-frame .platform-info-note span,.portal.portal-frame .platform-domain-list article>div:nth-child(2)>span,.portal.portal-frame .platform-dns-record>span,.portal.portal-frame .platform-dns-record code,.portal.portal-frame .platform-feature-list b,.portal.portal-frame .platform-feature-list span,.portal.portal-frame .platform-feature-list select,.portal.portal-frame .platform-switch-row select,.portal.portal-frame .platform-switch-row b,.portal.portal-frame .platform-switch-row small,.portal.portal-frame .platform-brand-preview small,.portal.portal-frame .platform-brand-preview p,.portal.portal-frame .platform-file-input b,.portal.portal-frame .platform-file-input small,.portal.portal-frame .platform-import-result b,.portal.portal-frame .platform-import-result span,.portal.portal-frame .platform-backup-options b,.portal.portal-frame .platform-backup-options span,.portal.portal-frame .platform-wizard>header span,.portal.portal-frame .platform-review dt,.portal.portal-frame .platform-review dd,.portal.portal-frame .platform-review dd small,.portal.portal-frame .platform-search-field input,.portal.portal-frame .platform-filter-field>span,.portal.portal-frame .platform-filter-field select,.portal.portal-frame .platform-filter-summary,.portal.portal-frame .platform-filter-summary button,.portal.portal-frame .platform-auto-config b,.portal.portal-frame .platform-auto-config small,.portal.portal-frame .platform-text-button,.portal.portal-frame .platform-package-top i,.portal.portal-frame .platform-package-grid>button>p,.portal.portal-frame .platform-package-grid>button>strong,.portal.portal-frame .platform-package-grid>button>div small,.portal.portal-frame .platform-package-grid>button>div span,.portal.portal-frame .platform-package-grid>button>div em,.portal.portal-frame .platform-domain-choice b,.portal.portal-frame .platform-domain-choice small,.portal.portal-frame .platform-domain-input>span,.portal.portal-frame .platform-generated-password button,.portal.portal-frame .platform-review-note,.portal.portal-frame .platform-readiness>div>span,.portal.portal-frame .platform-readiness li b,.portal.portal-frame .platform-readiness li span,.portal.portal-frame .platform-readiness li small,.portal.portal-frame .platform-feature-summary span,.portal.portal-frame .platform-app .btn-small,.portal.portal-frame .platform-wizard .btn-small,.portal.portal-frame .platform-app .alert,.portal.portal-frame .platform-login .alert,.portal.portal-frame .platform-brand>span,.portal.portal-frame .platform-login-message>span,.portal.portal-frame .platform-login-aside>div>small,.portal.portal-frame .platform-app .field input,.portal.portal-frame .platform-app .field select,.portal.portal-frame .platform-app .field textarea,.portal.portal-frame .platform-login .field input,.portal.portal-frame .platform-login .field select,.portal.portal-frame .platform-login .field textarea,.portal.portal-frame .platform-wizard .field input,.portal.portal-frame .platform-wizard .field select,.portal.portal-frame .platform-wizard .field textarea,.portal.portal-frame .platform-remember b,.portal.portal-frame .platform-remember small,.portal.portal-frame .platform-topbar>div>span,.portal.portal-frame .platform-overview-head>div>span,.portal.portal-frame .platform-kicker,.portal.portal-frame .platform-metrics small,.portal.portal-frame .platform-publish-status time,.portal.portal-frame .platform-editor-tabs button,.portal.portal-frame .platform-editor-intro span,.portal.portal-frame .platform-section-switches b,.portal.portal-frame .platform-section-switches small,.portal.portal-frame .landing-ai-setup-heading b,.portal.portal-frame .landing-ai-progress b,.portal.portal-frame .landing-ai-setup-heading small,.portal.portal-frame .landing-ai-progress small,.portal.portal-frame .landing-ai-preferences label,.portal.portal-frame .landing-ai-auto-summary b,.portal.portal-frame .landing-ai-setup-actions small,.portal.portal-frame .landing-quality-card>div>b,.portal.portal-frame .landing-quality-card>div>small,.portal.portal-frame .landing-quality-meta em,.portal.portal-frame .landing-quality-card details,.portal.portal-frame .landing-studio-progress span,.portal.portal-frame .landing-studio-nav>button b,.portal.portal-frame .landing-studio-nav>button small,.portal.portal-frame .landing-preview-toolbar,.portal.portal-frame .landing-preview-toolbar>span small,.portal.portal-frame .landing-preview-toolbar button,.portal.portal-frame .landing-preview-stage.mobile .landing-preview-page header img,.portal.portal-frame .landing-preview-stage.mobile .landing-preview-page header i,.portal.portal-frame .landing-preview-stage.mobile .landing-preview-page header span,.portal.portal-frame .landing-preview-note,.portal.portal-frame .landing-editor-heading small,.portal.portal-frame .landing-visible-toggle,.portal.portal-frame .website-asset-library span,.portal.portal-frame .landing-editor-group>summary b,.portal.portal-frame .landing-editor-group>summary small,.portal.portal-frame .landing-template-locked b,.portal.portal-frame .landing-template-locked small,.portal.portal-frame .landing-template-picker>.landing-items-head small,.portal.portal-frame .landing-template-options>button b,.portal.portal-frame .landing-template-options>button small,.portal.portal-frame .landing-external-note b,.portal.portal-frame .landing-external-note small,.portal.portal-frame .landing-editor-issue,.portal.portal-frame .landing-readiness-summary,.portal.portal-frame .landing-items-head b,.portal.portal-frame .landing-items-head button,.portal.portal-frame .landing-item-row input,.portal.portal-frame .landing-item-row textarea,.portal.portal-frame .landing-readiness-summary small,.portal.portal-frame .landing-studio-mobile-tabs button,.portal.portal-frame .platform-list-card .platform-table td:not(:first-child):not(:last-child):before,.portal.portal-frame .platform-attention>header small,.portal.portal-frame .platform-attention>div>button b,.portal.portal-frame .platform-attention>div>button small,.portal.portal-frame .platform-health-strip,.portal.portal-frame .platform-count,.portal.portal-frame .platform-domain-health,.portal.portal-frame .platform-monitoring-card .platform-table td:not(:first-child):not(:last-child):before,.portal.portal-frame .platform-directory-tools .platform-search-field input,.portal.portal-frame .platform-directory-tools .platform-filter-field select,.portal.portal-frame .platform-domain-card-head small,.portal.portal-frame .platform-domain-progress>span,.portal.portal-frame .platform-dns-step>header>span,.portal.portal-frame .platform-dns-step p,.portal.portal-frame .platform-dns-value>span,.portal.portal-frame .platform-dns-value code,.portal.portal-frame .platform-dns-helper,.portal.portal-frame .platform-domain-warning,.portal.portal-frame .platform-domain-ready b,.portal.portal-frame .platform-domain-ready small,.portal.portal-frame .platform-domain-waiting b,.portal.portal-frame .platform-domain-waiting small,.portal.portal-frame .platform-domain-feedback,.portal.portal-frame .platform-domain-diagnostics b,.portal.portal-frame .platform-domain-diagnostics small,.portal.portal-frame .database-groups-panel small,.portal.portal-frame .organization-deletion small,.portal.portal-frame .database-groups-panel .database-capacity-badge,.portal.portal-frame .database-groups-panel .field>span,.portal.portal-frame .organization-deletion .field>span,.portal.portal-frame .database-groups-panel .organization-preparation-stages,.portal.portal-frame .database-groups-panel .platform-list-pagination,.portal.portal-frame .organization-deletion .platform-list-pagination,.portal.portal-frame .logo b,.portal.portal-frame .book small,.portal.portal-frame .teacher-card span,.portal.portal-frame .demo-box button,.portal.portal-frame .reg-steps small,.portal.portal-frame .privacy-note,.portal.portal-frame .sidebar nav a i,.portal.portal-frame .side-support p,.portal.portal-frame .side-support a,.portal.portal-frame .portal-header>div:first-of-type span,.portal.portal-frame .header-user span,.portal.portal-frame .metric span,.portal.portal-frame .metric small,.portal.portal-frame .panel-heading>a,.portal.portal-frame .panel-heading>span,.portal.portal-frame .simple-list span,.portal.portal-frame .date-tile span,.portal.portal-frame .date-box span,.portal.portal-frame .badge,.portal.portal-frame .enroll-main p,.portal.portal-frame .enroll-main span,.portal.portal-frame .enroll-needs p,.portal.portal-frame .enroll-needs small,.portal.portal-frame .enroll-assignment small,.portal.portal-frame .teacher-admin-top p,.portal.portal-frame .student-card p,.portal.portal-frame .teacher-tags span,.portal.portal-frame .bio,.portal.portal-frame .teacher-stats span,.portal.portal-frame .teacher-stats b,.portal.portal-frame .table-wrap th,.portal.portal-frame .table-wrap td,.portal.portal-frame .calendar-toolbar>div:first-child span,.portal.portal-frame .legend,.portal.portal-frame .day-label span,.portal.portal-frame .calendar-event p,.portal.portal-frame .event-time,.portal.portal-frame .finance-head span,.portal.portal-frame .invoice-no b,.portal.portal-frame .invoice-list>div>b,.portal.portal-frame .invoice-no span,.portal.portal-frame .invoice-due>*,.portal.portal-frame .notification-list pre,.portal.portal-frame .notification-list small,.portal.portal-frame .activity-list b,.portal.portal-frame .activity-list p,.portal.portal-frame .activity-list span,.portal.portal-frame .student-card dt,.portal.portal-frame .session-detail dt,.portal.portal-frame .student-card dd,.portal.portal-frame .session-detail dd,.portal.portal-frame .report-row p,.portal.portal-frame .session-date p,.portal.portal-frame .session-date span,.portal.portal-frame .address-line,.portal.portal-frame .invoice-highlight>span,.portal.portal-frame .invoice-highlight p,.portal.portal-frame .latest-report span,.portal.portal-frame .latest-report p,.portal.portal-frame .latest-report a,.portal.portal-frame .approval p,.portal.portal-frame .approval small,.portal.portal-frame .report-cards header p,.portal.portal-frame .report-body small,.portal.portal-frame .report-body p,.portal.portal-frame .report-cards footer b,.portal.portal-frame .report-cards footer p,.portal.portal-frame .invoice-paper small,.portal.portal-frame .invoice-paper p,.portal.portal-frame .invoice-parent-list article>div:nth-child(2) p,.portal.portal-frame .paid-check,.portal.portal-frame .empty p,.portal.portal-frame .detail-hero p,.portal.portal-frame .existing-report,.portal.portal-frame .snapshot-note,.portal.portal-frame .alert,.portal.portal-frame .pay-header>div,.portal.portal-frame .bill-head>div span,.portal.portal-frame .bill-customer small,.portal.portal-frame .bill-customer span,.portal.portal-frame .bill-items>div,.portal.portal-frame .bill-help,.portal.portal-frame .payment-box>p,.portal.portal-frame .qris-benefits,.portal.portal-frame .qris-amount span,.portal.portal-frame .expiry,.portal.portal-frame .copy-id,.portal.portal-frame .polling,.portal.portal-frame .demo-sim b,.portal.portal-frame .demo-sim p,.portal.portal-frame .pay-footer,.portal.portal-frame .pay-success>span,.portal.portal-frame .receipt>div,.portal.portal-frame .step-mobile,.portal.portal-frame .program-admin-list p,.portal.portal-frame .program-admin-list span,.portal.portal-frame .program-admin-list>b,.portal.portal-frame .settings-user p,.portal.portal-frame .settings-grid dt,.portal.portal-frame .settings-grid dd,.portal.portal-frame .tryout-hint,.portal.portal-frame .free-promo-points span,.portal.portal-frame .public-tryout-label,.portal.portal-frame .free-tryout-copy>small,.portal.portal-frame .free-tryout-facts span,.portal.portal-frame .free-tryout-card>div:last-child,.portal.portal-frame .free-result p,.portal.portal-frame .free-result>div>span,.portal.portal-frame .free-result-cta p,.portal.portal-frame .free-retry-bar small,.portal.portal-frame .notification small,.portal.portal-frame .notification-metrics span,.portal.portal-frame .unread-label,.portal.portal-frame .notif-copy>small,.portal.portal-frame .notif-meta,.portal.portal-frame .notif-error,.portal.portal-frame .pagination span,.portal.portal-frame .notification-tools select,.portal.portal-frame .invoice-list:not(.compact) .invoice-list-heading,.portal.portal-frame .enroll-student span,.portal.portal-frame .enroll-program span,.portal.portal-frame .enroll-program b,.portal.portal-frame .enroll-assignment b,.portal.portal-frame .enroll-assignment span,.portal.portal-frame .enroll-program small,.portal.portal-frame .enroll-status small,.portal.portal-frame .enroll-schedule small,.portal.portal-frame .enroll-schedule p,.portal.portal-frame .enroll-assignment .btn,.portal.portal-frame .enroll-teacher small,.portal.portal-frame .enroll-teacher b,.portal.portal-frame .enroll-teacher span,.portal.portal-frame .learning-progress-heading span,.portal.portal-frame .learning-progress-heading b,.portal.portal-frame .learning-progress>small,.portal.portal-frame .progress-field-help,.portal.portal-frame .progress-chart header span,.portal.portal-frame .progress-chart svg text,.portal.portal-frame .progress-chart-empty,.portal.portal-frame .whatsapp-integration p,.portal.portal-frame .template-help,.portal.portal-frame .whatsapp-template-list summary code,.portal.portal-frame .template-detail>span,.portal.portal-frame .message-preview,.portal.portal-frame .template-detail pre,.portal.portal-frame .template-detail small,.portal.portal-frame .copy-template,.portal.portal-frame .meta-status-card span,.portal.portal-frame .meta-status-card p,.portal.portal-frame .meta-config-card dt,.portal.portal-frame .meta-config-card dd,.portal.portal-frame .meta-setup-note b,.portal.portal-frame .meta-setup-note ol,.portal.portal-frame .meta-setup-note small,.portal.portal-frame .meta-template-card>p,.portal.portal-frame .student-no-sessions,.portal.portal-frame .current-schedule small,.portal.portal-frame .current-schedule b,.portal.portal-frame .reschedule-student-summary span,.portal.portal-frame .student-reschedule-form>p,.portal.portal-frame .student-reschedule-form .field,.portal.portal-frame .student-reschedule-form .field input,.portal.portal-frame .student-reschedule-form .field select,.portal.portal-frame .student-reschedule-form .field textarea,.portal.portal-frame .student-reschedule-form>.btn,.portal.portal-frame .schedule-view-tabs button,.portal.portal-frame .schedule-calendar>header span,.portal.portal-frame .calendar-month-actions button,.portal.portal-frame .month-weekdays span,.portal.portal-frame .month-day-number,.portal.portal-frame .month-event time,.portal.portal-frame .month-event b,.portal.portal-frame .month-event small,.portal.portal-frame .report-tools select,.portal.portal-frame .report-tools .search input,.portal.portal-frame .report-list-summary,.portal.portal-frame .report-state,.portal.portal-frame .report-metrics .metric span,.portal.portal-frame .report-metrics .metric small,.portal.portal-frame .notification-heading-actions .btn,.portal.portal-frame .child-progress-preview>span,.portal.portal-frame .child-progress-preview p,.portal.portal-frame .child-detail-hero p,.portal.portal-frame .child-detail-hero span,.portal.portal-frame .child-progress-stats span,.portal.portal-frame .progress-data-note,.portal.portal-frame .child-progress-history article>header b,.portal.portal-frame .child-progress-history article>header span,.portal.portal-frame .child-progress-history small,.portal.portal-frame .child-progress-history section p,.portal.portal-frame .check-in-hint,.portal.portal-frame .child-detail-identity>span,.portal.portal-frame .child-section-heading span,.portal.portal-frame .current-target-overview>span,.portal.portal-frame .child-target-card>span,.portal.portal-frame .attendance-rate>span,.portal.portal-frame .child-detail-identity p,.portal.portal-frame .child-detail-header dt,.portal.portal-frame .child-detail-header dd,.portal.portal-frame .child-program-picker>span,.portal.portal-frame .child-program-picker select,.portal.portal-frame .child-support-stat span,.portal.portal-frame .child-section-heading>small,.portal.portal-frame .timeline-session-card>header span,.portal.portal-frame .timeline-session-card>header small,.portal.portal-frame .timeline-status>b,.portal.portal-frame .session-report-grid small,.portal.portal-frame .session-report-grid p,.portal.portal-frame .attendance-rate p,.portal.portal-frame .attendance-context b,.portal.portal-frame .attendance-context span,.portal.portal-frame .attendance-context small,.portal.portal-frame .child-attendance-head,.portal.portal-frame .child-attendance-row,.portal.portal-frame .child-attendance-row>div:first-child span,.portal.portal-frame .target-overview-grid>div:not(:first-child) span,.portal.portal-frame .target-history li>div>span,.portal.portal-frame .target-history p,.portal.portal-frame .target-history li>strong,.portal.portal-frame .child-attendance-row>div:before,.portal.portal-frame .teacher-card-actions>span,.portal.portal-frame .teacher-card-actions .btn,.portal.portal-frame .teacher-detail-hero p,.portal.portal-frame .teacher-detail-hero span,.portal.portal-frame .teacher-profile-panel dt,.portal.portal-frame .teacher-profile-panel small,.portal.portal-frame .teacher-profile-panel dd,.portal.portal-frame .teacher-profile-panel section p,.portal.portal-frame .attendance-toolbar>div>span,.portal.portal-frame .attendance-toolbar label>span,.portal.portal-frame .attendance-toolbar select,.portal.portal-frame .attendance-head,.portal.portal-frame .attendance-row b,.portal.portal-frame .attendance-row span,.portal.portal-frame .attendance-row>div:before,.portal.portal-frame .teacher-invoice-filters select,.portal.portal-frame .teacher-invoice-heading,.portal.portal-frame .teacher-invoice-row b,.portal.portal-frame .teacher-invoice-row span,.portal.portal-frame .teacher-invoice-row small,.portal.portal-frame .invoice-preview-placeholder,.portal.portal-frame .preview-heading,.portal.portal-frame .preview-row b,.portal.portal-frame .preview-row span,.portal.portal-frame .preview-total small,.portal.portal-frame .teacher-invoice-detail-head>div>span,.portal.portal-frame .teacher-invoice-detail-head p,.portal.portal-frame .teacher-invoice-detail dt,.portal.portal-frame .teacher-invoice-detail dd,.portal.portal-frame .invoice-detail-items b,.portal.portal-frame .invoice-detail-items span,.portal.portal-frame .invoice-detail-items>div>div span,.portal.portal-frame .invoice-detail-items small,.portal.portal-frame .invoice-detail-summary small,.portal.portal-frame .teacher-invoice-row>div:before,.portal.portal-frame .preview-columns,.portal.portal-frame .tryout-list-card p,.portal.portal-frame .tryout-card p,.portal.portal-frame .test-family,.portal.portal-frame .tryout-list-card dt,.portal.portal-frame .tryout-list-card dd,.portal.portal-frame .question-bank-row>span,.portal.portal-frame .question-bank-row>b,.portal.portal-frame .question-bank-row>small,.portal.portal-frame .option-editor input:not([type=radio]),.portal.portal-frame .option-editor label,.portal.portal-frame .choice-list b,.portal.portal-frame .choice-list span span,.portal.portal-frame .tryout-checks label,.portal.portal-frame .back-link,.portal.portal-frame .tryout-meta span,.portal.portal-frame .mini-score span,.portal.portal-frame .exam-top p,.portal.portal-frame .result-hero p,.portal.portal-frame .exam-top>div:first-child>span,.portal.portal-frame .result-hero>div>span,.portal.portal-frame .exam-timer span,.portal.portal-frame .question-nav button,.portal.portal-frame .question-label span,.portal.portal-frame .question-label small,.portal.portal-frame .answer-review>p,.portal.portal-frame .explanation>strong,.portal.portal-frame .explanation>p,.portal.portal-frame .video-explanation>strong,.portal.portal-frame .score-ring span,.portal.portal-frame .result-counts b,.portal.portal-frame .exam-actions .btn,.portal.portal-frame .attendance-camera>p,.portal.portal-frame .camera-loading,.portal.portal-frame .camera-session span,.portal.portal-frame .admin-session-detail dt,.portal.portal-frame .admin-session-detail dd,.portal.portal-frame .attendance-proof figcaption,.portal.portal-frame .review-toolbar span,.portal.portal-frame .review-filters button,.portal.portal-frame .review-filters button b,.portal.portal-frame .review-kicker,.portal.portal-frame .review-status,.portal.portal-frame .answer-comparison small,.portal.portal-frame .answer-comparison strong,.portal.portal-frame .answer-comparison span,.portal.portal-frame .explanation-steps li>b,.portal.portal-frame .explanation-steps li>span,.portal.portal-frame .common-mistake>b,.portal.portal-frame .common-mistake>p,.portal.portal-frame .video-pending b,.portal.portal-frame .video-pending span,.portal.portal-frame .video-source,.portal.portal-frame .video-note,.portal.portal-frame .tryout-access-badge,.portal.portal-frame .tryout-card-actions .btn,.portal.portal-frame .tryout-commerce-note,.portal.portal-frame .folder-create input,.portal.portal-frame .folder-create select,.portal.portal-frame .folder-create .btn,.portal.portal-frame .folder-sidebar nav>button,.portal.portal-frame .folder-row>button:first-child,.portal.portal-frame .folder-sidebar nav button b,.portal.portal-frame .question-files-head span,.portal.portal-frame .question-file>div>span,.portal.portal-frame .question-file>div>b,.portal.portal-frame .question-file small,.portal.portal-frame .question-file>button,.portal.portal-frame .folder-create>small,.portal.portal-frame .batch-row i,.portal.portal-frame .batch-overview>p,.portal.portal-frame .batch-overview b,.portal.portal-frame .batch-overview small,.portal.portal-frame .batch-settings>div:first-child strong,.portal.portal-frame .batch-settings>div:first-child span,.portal.portal-frame .batch-settings .field span,.portal.portal-frame .batch-settings .field input,.portal.portal-frame .batch-settings .field select,.portal.portal-frame .batch-settings>.btn,.portal.portal-frame .media-dropzone>span,.portal.portal-frame .video-file-preview>span,.portal.portal-frame .media-actions button,.portal.portal-frame .question-bank-row>button,.portal.portal-frame .upload-progress>span,.portal.portal-frame .media-error,.portal.portal-frame .video-source-tabs button,.portal.portal-frame .youtube-preview b,.portal.portal-frame .youtube-preview span,.portal.portal-frame .bank-breadcrumb,.portal.portal-frame .batch-detail-head p,.portal.portal-frame .batch-detail-head p i,.portal.portal-frame .active-batch-card>i,.portal.portal-frame .batch-required p,.portal.portal-frame .active-batch-card span,.portal.portal-frame .active-batch-card small,.portal.portal-frame .question-search input,.portal.portal-frame .question-search select,.portal.portal-frame .question-file-actions>button,.portal.portal-frame .question-location,.portal.portal-frame .route-open small,.portal.portal-frame .tree-route-row>button:nth-child(2),.portal.portal-frame .folder-list-card b,.portal.portal-frame .folder-list-card small,.portal.portal-frame .question-files-head p,.portal.portal-frame .action-menu button,.portal.portal-frame .portal-workspace-group>span,.portal.portal-frame .table-wrap:after,.portal.portal-frame .sidebar-preference,.portal.portal-frame .portal-header>div:first-of-type span,.portal.portal-frame .schedule-calendar:after,.portal.portal-frame .shared-calendar .month-event,.portal.portal-frame .shared-calendar .month-event time,.portal.portal-frame .shared-calendar .month-event b,.portal.portal-frame .shared-calendar .month-event small,.portal.portal-frame .portal-drawer-copy small,.portal.portal-frame .portal-drawer-copy em,.portal.portal-frame .portal-nav-badge,.portal.portal-frame .portal.sidebar-collapsed .sidebar nav.portal-flat-navigation a .portal-nav-badge,.portal.portal-frame .sidebar .portal-nav-badge,.portal.portal-frame .fee-summary-grid span,.portal.portal-frame .fee-updates-heading>span,.portal.portal-frame .fee-update-copy small,.portal.portal-frame .fee-update dt,.portal.portal-frame .fee-updates-toggle>small,.portal.portal-frame .fee-new-badge,.portal.portal-frame .fee-updates-context,.portal.portal-frame .rapor-status,.portal.portal-frame .journey-eyebrow,.portal.portal-frame .journey-trend strong small,.portal.portal-frame .journey-y-axis,.portal.portal-frame .journey-x-axis,.portal.portal-frame .journey-chart-note,.portal.portal-frame .journey-donut span,.portal.portal-frame .journey-legend button,.portal.portal-frame .journey-selected small,.portal.portal-frame .journey-timeline>header>button,.portal.portal-frame .journey-session summary small,.portal.portal-frame .journey-session-status,.portal.portal-frame .journey-session-body b,.portal.portal-frame .journey-filters label,.portal.portal-frame .journey-target small,.portal.portal-frame .journey-total,.portal.portal-frame .rapor-identity-top,.portal.portal-frame .rapor-kicker,.portal.portal-frame .rapor-identity-meta dt,.portal.portal-frame .rapor-overview span,.portal.portal-frame .rapor-overview small,.portal.portal-frame .rapor-progress-explainer>span,.portal.portal-frame .rapor-history summary>div>span,.portal.portal-frame .rapor-history-action,.portal.portal-frame .rapor-history-content>p,.portal.portal-frame .rapor-progress-row small,.portal.portal-frame .rapor-progress-detail small,.portal.portal-frame .rapor-attendance-note,.portal.portal-frame .rapor-feedback small,.portal.portal-frame .progress-intro>small,.portal.portal-frame .progress-eyebrow,.portal.portal-frame .progress-hero p,.portal.portal-frame .progress-hero-copy>small,.portal.portal-frame .progress-hero-number span,.portal.portal-frame .progress-hero-number small,.portal.portal-frame .progress-history>header p,.portal.portal-frame .progress-session-card time,.portal.portal-frame .progress-state,.portal.portal-frame .progress-next,.portal.portal-frame .progress-next>span,.portal.portal-frame .progress-session-footer,.portal.portal-frame .progress-session-details summary,.portal.portal-frame .progress-session-details b,.portal.portal-frame .progress-attendance-summary p,.portal.portal-frame .progress-attendance-counts span,.portal.portal-frame .progress-tabs button,.portal.portal-frame .portal-frame .portal-mode-actions label{font-size:var(--portal-text-secondary,.75rem)}.portal.portal-frame .answer-options:has(img)>button>span{font-size:var(--portal-text-secondary,.75rem)}
