@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Kalam:wght@600&display=swap";:root{color:#10244b;font-synthesis:none;--blue:#1469ed;--blue-dark:#0c4fbe;--teal:#0bb2aa;--yellow:#ffb51b;--coral:#ff6464;--ink:#10244b;--muted:#687795;--line:#dce4ef;--shadow:0 6px 18px #11376912;background:#f7faff;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:#f8fbff;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--blue);text-decoration:none}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:7px;font-size:clamp(1.65rem,2.5vw,2.25rem)}h2{font-size:1.18rem}h3{font-size:1.05rem}small{color:var(--muted);display:block}label{color:#344464;gap:7px;font-size:.88rem;font-weight:600;display:grid}.auth-screen{background:radial-gradient(circle at 20% 20%,#eaf4ff,#0000 36%),radial-gradient(circle at 80% 80%,#e5faf6,#0000 35%),#f8fbff;place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:18px;gap:16px;width:min(430px,100%);padding:34px;display:grid;box-shadow:0 18px 50px #12376921}.auth-card h1,.auth-card p{margin-bottom:0}.auth-card>p{color:var(--muted);line-height:1.5}.auth-card label{text-align:left}.auth-logo{color:var(--blue-dark);font-family:Kalam,cursive;font-size:1.5rem;line-height:1}.auth-logo img{object-fit:contain;width:96px;height:96px;margin:auto;display:block}.auth-logo strong{color:var(--teal);display:block}.auth-lock{width:54px;height:54px;color:var(--blue);background:#eaf2ff;border-radius:50%;place-items:center;margin:auto;display:grid}.auth-loader{border:4px solid #dce8fa;border-top-color:var(--blue);border-radius:50%;width:42px;height:42px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}input,textarea,select{border:1px solid var(--line);background:#fff;border-radius:10px;outline:none;width:100%;padding:11px 12px}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1469ed1f}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);z-index:30;background:#fff;width:228px;padding:25px 16px;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand-wrap{justify-content:space-between;align-items:flex-start;display:flex}.sidebar-branding{min-width:0}.sidebar-contact{gap:3px;padding:0 16px 18px;line-height:1.25;display:grid}.sidebar-contact strong{color:var(--ink);font-size:20.4px}.sidebar-contact a{color:var(--muted);overflow-wrap:anywhere}.sidebar-contact a:first-of-type{font-size:17.52px}.sidebar-contact a:nth-of-type(2){font-size:13.52px}.sidebar-contact a:hover{color:var(--blue)}.brand{color:var(--blue-dark);grid-template-columns:auto auto;align-items:center;padding:5px 16px 32px;font-family:Kalam,cursive;font-size:1.4rem;line-height:1;display:inline-grid;transform:rotate(-2deg)}.brand strong{color:var(--teal);grid-area:2/1;margin-left:20px}.brand svg{grid-area:1/2/3;margin-left:6px}.brand.custom-brand{width:100%;padding:0 8px 12px;display:block;transform:none}.brand.custom-brand img{object-fit:contain;object-position:center;width:168px;max-width:100%;height:168px;display:block}.nav-caption{color:#8b98b0;letter-spacing:.1em;text-transform:uppercase;margin:5px 12px 8px;font-size:.68rem;font-weight:700}.admin-caption{margin-top:25px}.nav-link{min-height:52px;color:var(--ink);border-radius:10px;align-items:center;gap:14px;margin-bottom:6px;padding:0 15px;font-weight:500;display:flex}.nav-link svg{width:21px}.nav-link:hover{background:#f1f6ff}.nav-link.active{color:#fff;background:linear-gradient(135deg,#1973f2,#0859d9);box-shadow:0 7px 14px #1469ed38}.nav-badge{background:var(--coral);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;margin-left:auto;font-size:.75rem;font-style:normal;display:grid}.sidebar-art{display:none}.sidebar-art>span{display:block;position:relative;left:75px;transform:rotate(-12deg)}.sidebar-art>div{margin-top:25px;font-size:2.4rem}.app-content{width:calc(100% - 228px);min-width:0;margin-left:228px}.topbar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;align-items:center;height:75px;padding:0 34px;display:flex;position:sticky;top:0}.topbar-spacer{flex:1}.profile-button,.notification-button{background:0 0;border:0;align-items:center;gap:10px;display:flex}.logout-button{border:1px solid var(--line);min-height:38px;color:var(--muted);background:#fff;border-radius:9px;align-items:center;gap:7px;margin-left:14px;padding:0 12px;display:inline-flex}.logout-button:hover{color:#b93636;background:#fff8f8;border-color:#efb3b3}.logout-button svg{width:17px}.notification-button{border-right:1px solid var(--line);margin-right:16px;padding-right:22px;position:relative}.notification-button span{background:var(--coral);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.7rem;display:grid;position:absolute;top:-9px;right:13px}.notification-popover{border:1px solid var(--line);background:#fff;border-radius:13px;width:min(360px,100vw - 24px);position:absolute;top:64px;right:245px;overflow:hidden;box-shadow:0 18px 45px #08193633}.notification-popover header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:13px 15px;display:flex}.notification-popover header button{background:0 0;border:0;place-items:center;width:30px;height:30px;padding:0;display:grid}.notification-popover header svg{width:17px}.notification-popover>a{color:var(--ink);border-bottom:1px solid #edf1f6;gap:11px;padding:13px 15px;display:flex}.notification-popover>a:last-child{border-bottom:0}.notification-popover>a:hover{background:#f5f9ff}.notification-popover>a>svg{width:20px;color:var(--teal);flex:none}.notification-popover>a>span{gap:3px;display:grid}.notification-popover small,.notification-popover em{font-size:.72rem}.notification-popover em{color:var(--blue);font-style:normal}.avatar{color:#fff;background:var(--blue);border-radius:50%;place-items:center;font-weight:700;display:grid}.avatar.small{width:40px;height:40px;overflow:hidden}.avatar.small img{object-fit:cover;width:100%;height:100%}.page-content{max-width:1540px;margin:auto;padding:26px clamp(18px,3vw,42px) 55px}.legal-footer{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 22px;max-width:1540px;margin:0 auto;padding:18px clamp(18px,3vw,42px) 28px;font-size:.78rem;display:flex}.legal-footer small{margin-left:auto}.legal-card{gap:18px;max-width:940px;display:grid}.legal-card section{border-bottom:1px solid var(--line);padding-bottom:16px}.legal-card section:last-of-type{border-bottom:0}.legal-card h2{margin-bottom:7px}.legal-card p{color:#4d5d7c;margin-bottom:0;line-height:1.65}.legal-draft-note{background:#fff6df;border-radius:9px;padding:12px;color:#9a6500!important}.parent-planning-metrics{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.parent-planning-metrics .card{align-items:center;gap:12px;display:flex}.parent-planning-metrics svg{color:var(--teal)}.parent-planning-metrics small,.parent-planning-metrics strong{display:block}.parent-planning-metrics strong{margin-top:4px;font-size:1.25rem}.parent-week-browser{touch-action:pan-y;overscroll-behavior-x:contain;grid-template-columns:30px minmax(0,1fr) 30px;align-items:stretch;gap:6px;display:grid}.parent-week-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-width:0;display:grid}.parent-week-card{overflow:hidden}.parent-week-arrow{min-width:0;color:var(--blue);background:linear-gradient(#f7fbff,#e8f2ff);border:1px solid #9fc4f7;border-radius:10px;place-items:center;padding:0;display:grid}.parent-week-arrow:hover,.parent-week-arrow:focus-visible{color:#fff;border-color:var(--blue);background:var(--blue);outline:none}.parent-week-arrow svg{width:18px;height:18px}.parent-week-grid>section{border:1px solid var(--line);background:#fafcff;border-radius:10px;grid-template-rows:auto 1fr;min-height:230px;display:grid;overflow:hidden}.parent-week-grid header{background:#eef4fc;align-content:start;gap:2px;padding:10px;display:grid}.parent-week-grid header small{display:block}.parent-week-grid article{border-left:4px solid var(--blue);cursor:pointer;background:#eef5ff;border-radius:8px;flex-direction:column;height:calc(100% - 18px);min-height:200px;margin:9px;padding:11px 11px 38px;transition:transform .16s,box-shadow .16s;display:flex;position:relative}.parent-week-grid article:hover,.parent-week-grid article:focus-visible{outline:2px solid var(--blue);outline-offset:1px;transform:translateY(-2px);box-shadow:0 7px 16px #1035691f}.parent-week-grid article.subject-maths{background:#eef5ff;border-left-color:#1469ed}.parent-week-grid article.subject-biology{background:#f0faed;border-left-color:#3c9636}.parent-week-grid article.subject-physics{background:#f5f0ff;border-left-color:#7c51bd}.parent-week-grid article.subject-homework{background:#fff8e8;border-left-color:#b97800}.parent-week-grid article span,.parent-week-grid article small{margin-top:7px;display:block}.parent-week-grid article .parent-appointment-subject{display:block}.parent-appointment-icon{z-index:1;background:#ffffffd9;border-radius:50%;place-items:center;width:25px;height:25px;font-size:1rem;line-height:1;display:grid;position:absolute;bottom:8px;right:8px;box-shadow:0 1px 5px #10356924}.parent-week-grid article small{font-size:.68rem;line-height:1.35}.parent-week-grid article small svg{vertical-align:middle;width:13px}.parent-week-grid section>p{color:var(--muted);padding:12px;font-size:.78rem}.child-load-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px;display:grid}.child-load-grid .card{gap:5px;display:grid}.child-load-grid span{color:var(--teal);font-weight:700}.page-intro{justify-content:space-between;align-items:flex-start;gap:24px;min-height:82px;margin-bottom:20px;display:flex;position:relative}.page-intro>div:first-child{padding-left:65px}.page-intro p{color:var(--muted);margin-bottom:0}.sun-doodle{color:var(--yellow);font-size:3rem;position:absolute;top:-8px;left:3px}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:18px}.section-title{align-items:center;gap:10px;min-height:32px;margin-bottom:14px;display:flex}.section-title h2{margin:0}.section-icon{width:34px;height:34px;color:var(--teal);background:#e8fbf9;border-radius:50%;place-items:center;display:grid}.section-action{margin-left:auto;font-size:.83rem}.metric-grid{gap:14px;margin-bottom:20px;display:grid}.metric-grid.four{grid-template-columns:repeat(4,1fr)}.metric{grid-template-rows:auto auto;grid-template-columns:50px auto;align-items:center;min-height:82px;padding:14px;display:grid}.metric-icon{border-radius:50%;grid-row:1/3;place-items:center;width:45px;height:45px;font-size:1.5rem;display:grid}.metric-icon.blue{color:var(--blue);background:#e8f1ff}.metric-icon.teal{color:var(--teal);background:#e5faf5}.metric-icon.yellow{color:#ef9f00;background:#fff6df}.metric-icon.coral{color:var(--coral);background:#ffeded}.metric>strong{font-size:1.55rem;line-height:1}.metric p{margin:5px 0 0;font-size:.85rem}.stack{align-content:start;gap:18px;display:grid}.dashboard-grid{grid-template-columns:1.2fr .88fr;gap:20px;display:grid}.next-course-body{align-items:center;gap:22px;display:flex}.next-course-body h2{margin-bottom:10px;font-size:1.45rem}.next-course-body p{color:#445372;align-items:center;gap:8px;margin:7px 0;display:flex}.school-art{margin-left:auto;font-size:4.5rem;position:relative}.school-art span{font-size:2.5rem;position:absolute;bottom:-10px;left:-25px}.button-row{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.button{border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 17px;font-weight:600;display:inline-flex}.button.primary{color:#fff;background:linear-gradient(135deg,#1473fa,#0757d8);box-shadow:0 5px 12px #1469ed33}.button.primary:hover{background:var(--blue-dark)}.button.primary:disabled{opacity:.45;cursor:not-allowed}.button.outline{border-color:var(--blue);color:var(--blue);background:#fff}.button.ghost{color:var(--blue);background:#f3f7fd;border-color:#0000}.button.full{width:100%}.button.large{min-height:52px;font-size:1rem}.accent-card{background:linear-gradient(135deg,#fff,#f1f8ff);border-style:dashed;border-color:#92c4ff}.quick-book p{max-width:420px}.message-preview{align-items:flex-start;gap:12px;display:flex}.message-preview p{margin:4px 0 0;line-height:1.45}.teacher-avatar{background:#ffe9cf;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:1.65rem;display:grid;overflow:hidden}.unread-dot{background:var(--coral);border-radius:50%;flex:none;align-self:center;width:8px;height:8px}.invoice-card{border-color:#f4dfaa}.invoice-row{border:1px solid #e5eaf2;border-radius:9px;align-items:center;gap:10px;min-height:58px;margin-top:8px;padding:8px;display:flex}.invoice-row>span{flex:1;font-size:.9rem}.invoice-row small{margin-top:3px}.coral-text{color:var(--coral)}.dashboard-invoice-button{text-align:left;background:#fff;width:100%}.dashboard-invoice-button:hover{background:#f8fbff;border-color:#8ebcff}.icon-button{background:0 0;border:0;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.icon-button:hover{background:#edf4ff}.children-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.child-card{gap:11px;display:grid}.child-card-head{align-items:center;gap:11px;display:flex}.child-card-head h3,.child-card-head p{margin-bottom:4px}.child-card-head small{margin-top:4px}.child-avatar{border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.child-avatar.small{width:35px;height:35px;font-size:1.4rem}.child-avatar.medium{width:52px;height:52px;font-size:2.2rem}.child-avatar.large{width:92px;height:92px;font-size:4.2rem}.child-avatar.mint{background:#bdebd5}.child-avatar.blue{background:#bde4ff}.tag{color:#50607c;background:#f0f4fa;border-radius:6px;padding:3px 8px;font-size:.75rem;font-style:normal;display:inline-flex}.tag.teal,.tag.completed,.tag.confirmed{color:#078970;background:#def7ef}.tag.pending{color:#b87300;background:#fff1cf}.mini-map{background-color:#eef1ef;background-image:linear-gradient(28deg,#0000 45%,#fff 46% 52%,#0000 53%),linear-gradient(101deg,#0000 42%,#fff 43% 49%,#0000 50%);border-radius:9px;height:120px;position:relative;overflow:hidden}.mini-map.compact{flex:none;width:66px;height:52px}.mini-map .road{transform-origin:0;background:#d0d5dc;width:120%;height:3px;position:absolute}.road-a{top:24%;left:-5%;transform:rotate(14deg)}.road-b{top:72%;left:-5%;transform:rotate(-8deg)}.road-c{top:-15%;left:45%;transform:rotate(76deg)}.park{background:#cfe8c8;width:25%;height:32%;position:absolute;top:8%;right:8%}.map-pin{color:#f0443e;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.mini-map small{font-size:.67rem;position:absolute;bottom:7px;left:8px;transform:rotate(-12deg)}.address-line{color:#53627e;align-items:flex-start;gap:7px;font-size:.82rem;display:flex}.child-stats{color:var(--muted);grid-template-columns:1fr 1fr;gap:10px;font-size:.75rem;display:grid}.child-stats strong{color:var(--teal);margin-top:4px;display:block}.hours-card{background:linear-gradient(100deg,#effcfa,#f5fbff);border-color:#b9e3df;margin-top:20px}.hours-grid{grid-template-columns:1fr 1fr;gap:28px;display:grid}.hours-grid>div{background:#fff;border-radius:12px;align-items:center;gap:12px;padding:10px;display:flex}.hours-grid span{flex:1;font-size:.85rem}.hours-grid strong{color:var(--teal);font-size:1.35rem;display:block}.sparkline{width:120px;height:38px}.sparkline polyline{fill:none;stroke:var(--teal);stroke-width:2.5px}.child-page-grid{grid-template-columns:1.2fr .8fr;gap:20px;margin-bottom:20px;display:grid}.profile-card{grid-template-columns:1fr 1fr;gap:15px;display:grid}.profile-details{align-items:center;gap:18px;display:flex}.profile-details h2{margin-bottom:7px}.profile-details>div>span{color:var(--muted);margin-top:20px;font-size:.75rem;display:block}.profile-details>div>strong{color:var(--teal);margin-top:5px;display:block}.profile-address{align-content:center;gap:12px;font-size:.85rem;display:grid}.profile-address>span,.profile-address{color:#53627e}.profile-address>span{gap:9px;display:flex}.profile-address strong{color:var(--ink);margin-top:3px;display:block}.profile-card .mini-map{grid-area:1/2/3;height:100%;min-height:210px}.lesson-row{border:1px solid var(--line);border-radius:10px;align-items:center;gap:14px;margin-bottom:9px;padding:11px;display:flex}.date-block{border-right:1px solid var(--line);text-align:center;padding-right:13px}.date-block strong{color:var(--blue);font-size:1.4rem}.lesson-row>span:nth-child(2){flex:1}.lesson-row small{margin-top:4px}.two-column{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.three-column{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.child-message-row{grid-template-columns:1fr;display:grid}.history-table>div{border-bottom:1px solid #edf0f5;grid-template-columns:1.2fr 1fr .6fr .6fr;align-items:center;gap:10px;min-height:40px;padding:0 10px;font-size:.82rem;display:grid}.history-head{color:var(--muted);background:#f6f8fb;font-weight:600}.progress-card{background:linear-gradient(135deg,#fff,#effbf9)}.progress-card>strong{color:var(--teal);font-size:2.1rem}.line-chart{border-bottom:1px solid #cbd9e8;align-items:end;gap:8px;height:100px;margin-top:15px;display:flex}.line-chart span{background:linear-gradient(var(--teal), #b4e8e2);border-radius:4px 4px 0 0;flex:1;min-height:5px}.announcement{background:#fffdf7;border:1px solid #f2d79c;border-radius:12px;align-items:center;gap:10px;padding:13px 18px;display:flex}.announcement span{min-width:240px}.messages-layout{grid-template-columns:180px 220px minmax(300px,1fr) 280px;gap:14px;display:grid}.student-rail{align-content:start;gap:12px;display:grid}.student-message-card{text-align:left;width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:12px}.student-message-card.mint.selected{border-color:var(--teal);background:#effbf8;box-shadow:0 0 0 2px #0ab2a421}.student-message-card.blue.selected{border-color:var(--blue);background:#eef5ff;box-shadow:0 0 0 2px #1469ed21}.student-rail .mini-map{width:100%;height:90px;margin-top:10px}.student-rail p{margin:9px 0 0;font-size:.75rem}.conversations,.chat-panel,.invoice-panel{padding:12px}.conversation-item{text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f5;align-items:flex-start;gap:8px;width:100%;padding:11px 7px;display:flex}.conversation-item.selected{background:#eef5ff;border:1px solid #99c3ff;border-radius:9px}.conversation-item>span:nth-child(2){flex:1;min-width:0}.conversation-item small{margin-top:5px;font-size:.72rem}.chat-panel{flex-direction:column;min-height:620px;display:flex}.chat-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:60px;display:flex}.chat-head>span:nth-child(2){flex:1}.chat-messages{flex-direction:column;flex:1;gap:15px;padding:20px 0;display:flex}.bubble{border-radius:14px;max-width:80%;padding:15px;font-size:.87rem;line-height:1.55}.bubble.received{background:#f3f6fa}.bubble.sent{background:#e8f3ff;align-self:flex-end}.bubble.child-mint{border-left:4px solid var(--teal)}.bubble.child-blue{border-left:4px solid var(--blue)}.message-child-picker{grid-template-columns:auto minmax(150px,220px);align-items:center;gap:10px;margin-bottom:8px;font-size:.78rem;display:grid}.message-child-picker select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px}.message-composer{border:1px solid #9eb9e7;border-radius:11px;align-items:center;gap:6px;padding:5px;display:flex}.message-composer.child-mint{border-color:var(--teal)}.message-composer.child-blue{border-color:var(--blue)}.message-composer textarea{resize:none;border:0;min-height:45px}.icon-button.send{color:#fff;background:var(--blue)}.invoice-panel .invoice-row strong{font-size:.82rem}.stepper{grid-template-columns:repeat(5,1fr);margin:0 10px 22px;display:grid}.stepper>div{align-items:center;gap:8px;display:flex;position:relative}.stepper>div:after{content:"";background:#cad5e5;flex:1;height:1px}.stepper>div:last-child:after{display:none}.stepper span{background:#fff;border:1px solid #cad5e5;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.stepper .done span{color:#fff;border-color:var(--blue);background:var(--blue)}.booking-layout{grid-template-columns:.85fr 1.15fr;gap:18px;display:grid}.booking-summary-wide{grid-column:1/-1;grid-template-columns:minmax(220px,.7fr) minmax(0,1.7fr);align-items:center;gap:16px;display:grid}.booking-summary-wide .section-title,.booking-summary-wide .booking-summary-row{margin-bottom:0}.booking-summary-wide>.button{grid-column:1/-1;width:100%}.selection-grid.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.select-card,.address-choice{border:1px solid var(--line);text-align:left;background:#fff;border-radius:11px;align-items:center;gap:10px;padding:12px;display:flex}.select-card>span{flex:1}.select-card small{margin-top:4px}.select-card:not(.selected){color:#758198;filter:grayscale(.45);opacity:.78;background:#f1f4f7;border-color:#dfe5ed}.select-card.selected{color:var(--ink);background:linear-gradient(135deg,#e7faf5,#eef7ff);border-color:#0ba99c;box-shadow:0 0 0 2px #0ba99c21}.address-choice.selected{border-color:var(--blue);box-shadow:0 0 0 2px #1469ed14}.address-choice.selected>svg:last-child{color:var(--blue)}.subject-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.subject{border:1px solid var(--line);background:#fff;border-radius:10px;align-content:center;place-items:center;gap:8px;min-height:90px;padding:5px;display:grid}.subject span{color:var(--teal);font-size:1.5rem}.subject.selected{border-color:var(--blue);background:#f4f8ff}.address-choice>span{flex:1}.address-choice small{margin-top:4px}.muted{color:var(--muted);font-size:.83rem}.calendar-strip{border:1px solid var(--line);border-radius:9px;grid-template-columns:repeat(5,1fr);margin-bottom:12px;display:grid;overflow:hidden}.calendar-strip span{text-align:center;border-right:1px solid var(--line);padding:10px 4px;font-size:.8rem}.calendar-strip .today{color:var(--blue);background:#eef5ff;font-weight:700}.booking-week-browser{grid-template-columns:34px minmax(0,1fr) 34px;align-items:stretch;gap:8px;display:grid}.booking-week-content{min-width:0}.booking-week-arrow{width:34px;min-height:123px;color:var(--blue);background:linear-gradient(#f7fbff,#e8f2ff);border:1px solid #9fc4f7;border-radius:9px;place-items:center;padding:0;display:grid}.booking-week-arrow:hover,.booking-week-arrow:focus-visible{color:#fff;border-color:var(--blue);background:var(--blue);outline:none}.booking-week-arrow:disabled{opacity:.35;cursor:not-allowed;color:#738099;background:#f2f5f8}.booking-week-arrow svg{width:20px;height:20px}.slot-grid{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.slot{border:1px solid var(--line);background:#fff;border-radius:9px;place-items:center;min-height:70px;padding:6px;display:grid}.slot span,.slot small{color:var(--muted);font-size:.72rem}.slot.selected{color:#fff;background:var(--blue);border-color:var(--blue)}.slot.selected span{color:#fff}.slot:disabled{opacity:.5;cursor:not-allowed;background:#f3f5f8}.route-card{overflow:hidden}.route-flow{grid-template-columns:1fr .7fr 1.2fr .7fr 1fr;align-items:center;display:grid}.route-flow>div{border:1px solid var(--line);border-radius:9px;align-content:center;min-height:96px;padding:10px;display:grid}.route-flow .current{border-color:var(--teal);background:#f0fbfa}.route-flow span,.route-flow small{color:var(--muted);font-size:.7rem}.route-flow strong{margin:4px 0}.route-line{text-align:center;position:relative}.route-line:before{content:"";background:var(--teal);z-index:-1;height:2px;position:absolute;top:16px;left:0;right:0}.route-line small{color:var(--teal);display:block}.route-ok,.route-error{color:#078e78;background:#edfaf6;border-radius:8px;align-items:center;gap:7px;margin:12px 0 0;padding:8px 10px;font-size:.8rem;display:flex}.route-error{color:#c84848;background:#fff0f0}.booking-summary>div:nth-child(2){grid-template-columns:auto 1fr 1fr 1fr;align-items:center;gap:14px;display:grid}.booking-summary-row>span{border-left:1px solid var(--line);padding-left:12px}.booking-summary small{margin-bottom:5px}.payment-layout{grid-template-columns:.85fr 1.15fr;gap:18px;max-width:1000px;margin:auto;display:grid}.summary-list{gap:9px;display:grid}.summary-list>div{border:1px solid var(--line);color:var(--teal);border-radius:9px;align-items:center;gap:11px;padding:12px;display:flex}.summary-list span{color:var(--ink)}.summary-list small{color:var(--muted);margin-top:5px}.payment-form{gap:14px;display:grid}.payment-tabs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.payment-tabs button{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:46px;display:flex}.payment-tabs .selected{border-color:var(--blue);color:var(--blue)}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.security-note{color:var(--blue);background:#f2f7ff;border:1px solid #c9ddfb;border-radius:9px;align-items:center;gap:10px;padding:12px;display:flex}.security-note small{margin-top:4px}.checkbox{flex-direction:row;grid-template-columns:auto 1fr;align-items:center;gap:8px;font-size:.8rem;display:flex}.checkbox input{width:auto}.total{border-top:1px solid var(--line);justify-content:space-between;padding-top:13px;display:flex}.total strong{color:var(--blue)}.confirmation{text-align:center;background:linear-gradient(145deg,#fff,#effcfb);border-color:#8cded5;max-width:750px;margin:15px auto;padding:30px}.success-mark{color:#fff;background:linear-gradient(135deg,#19c0ad,#029882);border-radius:50%;place-items:center;width:70px;height:70px;margin:auto auto 17px;display:grid;box-shadow:0 8px 18px #0bb2aa40}.confirmation .summary-list{text-align:left;grid-template-columns:1fr 1fr;margin-top:20px}.confirmation .route-ok,.confirmation .button-row{justify-content:center}.confirmation .security-note{text-align:left;margin-top:20px}.admin-planning-grid{grid-template-columns:1fr 1fr;align-items:start;gap:15px;display:grid}.availability-row{grid-template-columns:45px 1fr 1fr 35px;align-items:center;gap:6px;min-height:45px;display:grid}.availability-row>span{text-align:center;border-radius:5px;padding:8px 5px;font-size:.78rem}.available{color:#087b6c;background:#ddf4e9}.unavailable{color:var(--muted);background:#f2f4f7;grid-column:2/4}.travel-settings{align-content:start;gap:12px;display:grid}.input-unit{display:flex}.input-unit input{border-radius:9px 0 0 9px}.input-unit span{border:1px solid var(--line);background:#f4f6f9;border-left:0;border-radius:0 9px 9px 0;place-items:center;min-width:48px;display:grid}.toggle-row{justify-content:space-between;align-items:center;display:flex}.toggle-row input{width:42px;accent-color:var(--blue)}.admin-rules{margin-top:18px}.map-trip{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;display:grid}.map-trip .mini-map{width:100%;height:120px}.rule{border-radius:10px;margin-bottom:11px;padding:12px;font-size:.82rem}.rule p{margin:7px 0}.rule.accepted{color:#087b6c;background:#effbf7;border:1px solid #bfe8dc}.rule.refused{color:#c64646;background:#fff4f4;border:1px solid #f4caca}.planning-exception-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.planning-exception-list p{border:1px solid var(--line);background:#f8faff;border-radius:10px;gap:4px;margin:0;padding:13px;display:grid}.planning-exception-list small{color:var(--muted)}.availability-week-planner{grid-column:1/3}.availability-week-planner.embedded{border-top:1px solid var(--line);margin-top:16px;padding-top:18px}.availability-week-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.availability-week-heading .section-title{margin-bottom:3px}.availability-week-heading p{margin:0}.availability-week-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.availability-calendar-shell{grid-template-columns:36px minmax(0,1fr) 36px;align-items:stretch;gap:8px;display:grid}.availability-week-arrow{color:var(--blue);background:#f2f7ff;border:1px solid #a9c9f5;border-radius:10px;place-items:center;padding:0;display:grid}.availability-week-arrow:hover{color:#fff;background:var(--blue)}.availability-week-arrow svg{width:19px}.availability-week-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;min-width:0;display:grid}.availability-day{border:1px solid var(--line);background:#f8fbff;border-radius:10px;min-width:0;min-height:190px;overflow:hidden}.availability-day header{background:#edf4ff;justify-content:space-between;gap:5px;padding:9px;display:flex}.availability-day header small{color:var(--muted)}.availability-day-blocks{align-content:start;gap:7px;padding:8px;display:grid}.availability-block{text-align:left;color:#5f6b7d;background:#f1f3f6;border:1px solid #d3d9e3;border-radius:8px;grid-template-columns:auto minmax(0,1fr);gap:3px 6px;min-width:0;padding:8px;display:grid}.availability-block svg{width:15px;height:15px}.availability-block strong{white-space:nowrap;min-width:0;font-size:.76rem}.availability-block small{grid-column:2;font-size:.68rem}.availability-block.google-busy{color:#a93b3b;background:repeating-linear-gradient(135deg,#fff0f0,#fff0f0 7px,#ffe4e4 7px 12px);border-color:#efb8b8}.availability-empty{text-align:center;color:var(--muted);padding:12px 4px;font-size:.75rem}.availability-block.recurring-busy{color:#3253a5;background:repeating-linear-gradient(135deg,#eef3ff,#eef3ff 7px,#dfe9ff 7px 12px);border-color:#abc0f2}.availability-block.recurring-busy small:last-child{color:#536b9f}.availability-block.slot-unavailable{color:#737b89;background:repeating-linear-gradient(135deg,#eef0f3,#eef0f3 7px,#e2e5ea 7px 12px);border-color:#c4cad4}.availability-block.lesson-busy{position:relative;overflow:visible}.availability-block.lesson-busy.validated{color:#166c58;background:repeating-linear-gradient(135deg,#e7f8f3,#e7f8f3 7px,#d4f0e8 7px 12px);border-color:#71c8b5}.availability-block.lesson-busy.pending{color:#a45c00;background:repeating-linear-gradient(135deg,#fff7e7,#fff7e7 7px,#ffedc8 7px 12px);border-color:#efbf72}.lesson-validation-dot{z-index:2;color:#fff;pointer-events:none;border:2px solid #fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.82rem;font-weight:900;line-height:1;display:grid;position:absolute;top:-8px;right:-8px;box-shadow:0 2px 5px #0a1f413d}.availability-block.lesson-busy.validated .lesson-validation-dot{background:#159570}.availability-block.lesson-busy.pending .lesson-validation-dot{background:#e34848}.availability-block.lesson-busy small:last-child{opacity:.82}.availability-editor{border-top:1px solid var(--line);grid-template-columns:1.2fr .8fr .8fr auto;align-items:end;gap:9px;margin-top:14px;padding-top:14px;display:grid}.availability-editor label{gap:5px;font-size:.75rem;font-weight:700;display:grid}.availability-editor select,.availability-editor input{min-height:40px}.availability-rule-note,.calendar-privacy-note{color:#087a68;background:#eefaf7;border-radius:8px;align-items:flex-start;gap:7px;margin:12px 0 0;padding:9px 11px;font-size:.76rem;line-height:1.4;display:flex}.availability-rule-note svg,.calendar-privacy-note svg{flex:none;width:17px}.calendar-busy-toggle{background:#f2fbf8;border:1px solid #c9e7df;border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex!important}.calendar-busy-toggle span{min-width:0}.calendar-busy-toggle small{margin-top:4px}.calendar-busy-toggle input{width:20px;height:20px;accent-color:var(--teal);flex:none}.branding-settings{grid-template-columns:190px repeat(3,minmax(0,1fr));align-items:end;gap:12px;margin-bottom:18px;display:grid}.branding-settings .section-title{grid-column:1/-1;margin-bottom:0}.branding-preview{height:104px;color:var(--blue-dark);text-align:center;background:#f6faff;border:1px dashed #91b9ee;border-radius:11px;grid-row:2/4;place-items:center;font-family:Kalam,cursive;font-size:1.25rem;line-height:1.1;display:grid;overflow:hidden}.branding-preview strong{color:var(--teal)}.branding-preview img{object-fit:contain;max-width:90%;max-height:84px}.upload-button{white-space:nowrap;position:relative;overflow:hidden}.upload-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.branding-settings>small{grid-column:2/-1}.form-error{color:#c64646;margin:0;font-size:.8rem}.families-layout{grid-template-columns:1fr 300px;gap:18px;display:grid}.student-table-card{min-width:0}.table-toolbar{justify-content:space-between;gap:15px;display:flex}.search-field{border:1px solid var(--line);border-radius:9px;align-items:center;gap:5px;max-width:240px;padding-left:9px;display:flex}.search-field input{border:0}.student-table{overflow-x:auto}.student-table-head,.student-table-row{border-bottom:1px solid #e7ebf1;grid-template-columns:1.25fr .65fr 1fr .7fr 1.15fr .5fr;align-items:center;gap:10px;min-width:800px;padding:10px 5px;font-size:.8rem;display:grid}.student-table-head{color:var(--muted);background:#f7f9fc;font-weight:600}.student-table-row>span:first-child{align-items:center;gap:8px;display:flex}.table-address{align-items:center;gap:6px;font-size:.7rem;display:flex}.table-address .mini-map{width:50px;height:45px}.export-card{background:linear-gradient(150deg,#fff,#f5f9ff);border-color:#a9caff}.export-card,.families-layout>.stack>.card{gap:12px;display:grid}.select{background:#fff}.invoice-upload-form{gap:12px;display:grid}.drop-zone{cursor:pointer;text-align:center;color:var(--blue);border:1px dashed #77aaf7;border-radius:10px;place-items:center;padding:22px 10px;display:grid;position:relative}.drop-zone input{opacity:0;cursor:pointer;position:absolute;inset:0}.drop-zone small{margin-top:5px}.form-success{color:#087a68;font-weight:700}.billing-cockpit{margin-bottom:18px}.billing-metrics{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.billing-metrics>span{background:#f4f8fe;border:1px solid #d9e5f4;border-radius:11px;padding:14px}.billing-metrics small,.billing-metrics strong{display:block}.billing-metrics strong{color:var(--blue-dark);margin-top:5px;font-size:1.35rem}.ocr-ready,.ocr-warning{border-radius:8px;align-items:center;gap:7px;padding:8px 11px;font-size:.8rem;display:inline-flex}.ocr-ready{color:#087a68;background:#eaf9f5}.ocr-warning{color:#a86700;background:#fff5dc}.billing-by-child{flex-wrap:wrap;gap:9px;margin:12px 0;display:flex}.billing-by-child>span{border:1px solid var(--line);border-radius:9px;min-width:180px;padding:10px 12px}.billing-by-child small{margin-top:4px}.billing-invoice-list{gap:8px;display:grid}.billing-invoice-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:12px;padding:10px;display:grid}.billing-invoice-row small{margin-top:4px}.billing-actions{gap:7px;display:flex}.button.compact{min-height:34px;padding:0 10px;font-size:.75rem}.button.compact svg{width:15px;height:15px}.payment-badge{border-radius:7px;padding:5px 8px;font-weight:700;flex:none!important;font-size:.72rem!important}.payment-badge.unpaid{color:#a86700;background:#fff1cf}.payment-badge.parent_reported{color:#175db3;background:#e7f1ff}.payment-badge.paid{color:#087a68;background:#def7ef}.payment-reminders{background:#fff8e8;border:1px solid #f1d89d;border-radius:10px;gap:8px;margin-bottom:12px;padding:10px;display:grid}.payment-reminders>div{border-top:1px solid #f0dfb8;padding-top:8px}.payment-reminders span{font-size:.78rem;font-weight:700}.payment-reminders p{margin:5px 0;font-size:.78rem;line-height:1.4}.live-invoice{flex-wrap:wrap}.live-invoice .payment-badge,.live-invoice .button{margin-left:30px}.profile-cockpit-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:18px;display:grid}.parent-identity-card{align-items:center;gap:16px;display:flex}.parent-identity-card h2{margin-bottom:5px}.parent-identity-card p{color:var(--muted);margin:0 0 8px}.profile-photo{aspect-ratio:1;color:#fff;background:linear-gradient(135deg,#1473fa,#009f9a);border-radius:50%;flex:0 0 92px;align-self:center;place-items:center;width:92px;min-width:92px;max-width:92px;height:92px;min-height:92px;max-height:92px;font-size:2rem;font-weight:800;display:grid;position:relative;overflow:visible}.profile-photo>img{aspect-ratio:1;object-fit:cover;object-position:center;border-radius:50%;width:92px;min-width:92px;max-width:92px;height:92px;min-height:92px;max-height:92px;display:block}.profile-photo-button{color:#fff;background:var(--blue);cursor:pointer;border:3px solid #fff;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:grid;position:absolute;bottom:-2px;right:-2px}.profile-photo-button svg{width:16px}.profile-photo-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.parent-profile-form-card{grid-row:span 2}.profile-form{gap:13px;display:grid}.profile-form .section-title{margin:5px 0 0}.profile-security-card{grid-column:1}.profile-children-heading{justify-content:space-between;align-items:center;margin:22px 0 12px;display:flex}.profile-children-heading .section-title{margin:0}.profile-children-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.child-profile-editor form{gap:12px;display:grid}.child-editor-title{align-items:center;gap:10px;display:flex}.child-profile-initial{width:42px;height:42px;color:var(--teal);background:#ddf7f2;border-radius:50%;place-items:center;font-size:1.2rem;font-weight:800;display:grid}.child-editor-actions{gap:8px;display:flex}.profile-feedback{z-index:50;border-radius:10px;padding:13px 18px;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 25px #0a1f412e}.profile-feedback.success{color:#087a68;background:#e8faf5;border:1px solid #a8e2d3}.profile-feedback.error{color:#b73636;background:#fff0f0;border:1px solid #efbcbc}.mobile-only,.scrim{display:none}@media (width<=1180px){.messages-layout{grid-template-columns:180px minmax(300px,1fr) 250px}.conversations{display:none}.admin-planning-grid{grid-template-columns:1fr 1fr}.admin-planning-grid>.stack{grid-area:auto/1}.travel-settings{grid-area:auto/2;grid-template-columns:1fr 1fr}.travel-settings .section-title,.travel-settings .travel-field-wide,.travel-settings>.button{grid-column:1/-1}.branding-settings{grid-template-columns:160px 1fr 1fr}.branding-settings>.branding-name,.branding-settings>small{grid-column:2/4}.subject-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.mobile-only{display:grid}.sidebar{transition:transform .24s;transform:translate(-100%);box-shadow:12px 0 30px #0f2b522e}.sidebar.is-open{transform:translate(0)}.scrim{z-index:25;background:#0a1a3659;border:0;display:block;position:fixed;inset:0}.app-content{width:100%;margin-left:0}.topbar{height:65px;padding:0 18px}.sidebar-art{display:none}.dashboard-grid,.child-page-grid,.booking-layout,.payment-layout,.families-layout{grid-template-columns:1fr}.metric-grid.four{grid-template-columns:repeat(2,1fr)}.messages-layout{grid-template-columns:1fr 240px}.student-rail{display:none}.profile-card{grid-template-columns:1fr}.profile-card .mini-map{grid-area:auto/1;min-height:180px}.admin-planning-grid{grid-template-columns:1fr}.admin-planning-grid>.stack,.travel-settings{grid-area:auto/1}.travel-settings{grid-template-columns:1fr}.travel-settings .section-title,.travel-settings .travel-field-wide,.travel-settings>.button{grid-column:1}.admin-rules{grid-template-columns:1fr}.branding-settings{grid-template-columns:150px 1fr}.branding-settings>.branding-name,.branding-settings>.branding-phone,.branding-settings>.branding-email,.branding-settings>small{grid-column:2}}@media (width<=620px){.page-content{padding:18px 12px 40px}.profile-name{display:none}.page-intro{display:block}.page-intro>div:first-child{padding-left:48px}.sun-doodle{font-size:2.3rem}.page-intro>:last-child:not(:first-child){width:100%;margin-top:14px}.children-grid,.hours-grid,.two-column,.three-column,.selection-grid.two{grid-template-columns:1fr}.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.metric-grid.four .metric{aspect-ratio:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:0;padding:7px 4px;display:flex}.metric-grid.four .metric .metric-icon{width:32px;height:32px}.metric-grid.four .metric .metric-icon svg{width:18px;height:18px}.metric-grid.four .metric>strong{font-size:22px}.metric-grid.four .metric p{margin:0;font-size:.63rem;line-height:1.08}.next-course-body{align-items:flex-start}.next-course-body .child-avatar{width:64px;height:64px;font-size:3rem}.school-art{display:none}.button-row .button{width:100%}.hours-grid{gap:10px}.profile-details{align-items:flex-start}.history-table>div{grid-template-columns:1.2fr 1fr .7fr}.history-table>div>:nth-child(3){display:none}.messages-layout{display:block}.invoice-panel{margin-top:15px}.chat-panel{min-height:560px}.bubble{max-width:90%}.stepper small{display:none}.stepper>div{gap:2px}.stepper>div:after{margin:0 3px}.subject-grid,.slot-grid{grid-template-columns:repeat(2,1fr)}.route-flow{grid-template-columns:1fr;gap:6px}.route-line{padding:4px}.route-line:before{display:none}.booking-summary>div:nth-child(2){grid-template-columns:auto 1fr}.booking-summary>div:nth-child(2)>span{grid-column:1/3}.form-row,.confirmation .summary-list{grid-template-columns:1fr}.confirmation{padding:20px 13px}.admin-planning-grid{display:block}.admin-planning-grid>*{margin-bottom:15px}.availability-row{grid-template-columns:40px 1fr 32px}.availability-row>span:nth-of-type(2){grid-column:2}.map-trip{grid-template-columns:1fr}.map-trip>span{text-align:center}.student-table-card{padding:12px}.table-toolbar{display:block}.search-field{max-width:none;margin-bottom:10px}.branding-settings{grid-template-columns:1fr;display:grid}.branding-preview,.branding-settings>.branding-name,.branding-settings>.branding-phone,.branding-settings>.branding-email,.branding-settings>small{grid-area:auto/1}.planning-exception-list{grid-template-columns:1fr}.billing-metrics{grid-template-columns:1fr 1fr}.billing-metrics>span:first-child{grid-column:1/3}.billing-invoice-row{grid-template-columns:1fr auto}.billing-invoice-row>span:first-child{grid-column:1/3}.billing-actions{grid-column:1/3;grid-template-columns:1fr 1fr;display:grid}.live-invoice .payment-badge,.live-invoice .button{margin-left:30px}.live-invoice .button{width:calc(100% - 30px)}.profile-cockpit-grid,.profile-children-grid{grid-template-columns:1fr}.parent-profile-form-card,.profile-security-card{grid-area:auto/1}.parent-identity-card{align-items:flex-start}.profile-children-heading{align-items:flex-start;gap:10px}.profile-children-heading .button{min-width:0;padding:0 10px}.child-editor-actions{display:grid}.profile-feedback{bottom:12px;left:12px;right:12px}}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-invoice-note{color:#087a68;background:#eefaf7;border:1px solid #b9dfd8;border-radius:12px;align-items:center;gap:12px;padding:18px;display:flex}.monthly-invoice-note svg{flex:none}.monthly-invoice-note span,.monthly-invoice-note small{display:block}.monthly-invoice-note small{color:var(--muted);margin-top:5px}.messages-layout{grid-template-columns:200px 240px minmax(0,1fr);gap:20px}.chat-panel{padding:18px}.parent-invoice-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.parent-invoice-metrics .card{align-items:center;gap:12px;display:flex}.parent-invoice-metrics .card>svg{color:var(--teal)}.parent-invoice-metrics small,.parent-invoice-metrics strong{display:block}.parent-invoice-metrics strong{margin-top:4px;font-size:1.25rem}.invoice-child-filter{align-items:center;gap:8px;font-size:.75rem;display:flex}.invoice-child-filter select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px}.parent-invoice-list{gap:10px;display:grid}.parent-invoice-row{border:1px solid var(--line);border-radius:11px;grid-template-columns:42px minmax(220px,1fr) 110px 150px 90px 130px;align-items:center;gap:12px;padding:13px;display:grid}.parent-invoice-row>strong{text-align:right;font-variant-numeric:tabular-nums}.parent-invoice-row small{margin-top:4px}.invoice-status-cell,.billing-status-cell{align-content:center;gap:4px;display:grid}.invoice-status-cell small,.audit-timestamp{color:var(--muted);font-size:.66rem;line-height:1.25}.invoice-document-icon{width:38px;height:38px;color:var(--coral);background:#fff0f0;border-radius:9px;place-items:center;display:grid}.parent-invoice-row[role=button]{cursor:pointer}.parent-invoice-row[role=button]:hover{background:#f8fbff;border-color:#8ebcff}.invoice-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08193694;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.invoice-overlay-panel{background:#fff;border-radius:16px;width:min(820px,100%);max-height:92vh;padding:24px;position:relative;overflow:auto;box-shadow:0 24px 70px #00000047}.invoice-overlay-close{position:absolute;top:14px;right:14px}.invoice-overlay-head{align-items:center;gap:12px;margin-bottom:18px;padding-right:42px;display:flex}.invoice-overlay-head>span:nth-child(2){flex:1}.invoice-overlay-head h2,.invoice-overlay-head p{margin:0}.invoice-overlay-head p{color:var(--muted);margin-top:4px}.invoice-pdf-preview{border:1px solid var(--line);border-radius:10px;width:100%;height:68vh}.demo-invoice-preview{border:1px solid var(--line);background:#fffefa;border-radius:10px;align-content:start;gap:12px;min-height:460px;padding:45px;display:grid}.demo-invoice-preview>svg{color:var(--teal)}.demo-invoice-preview hr{border:0;border-top:1px solid var(--line);width:100%}.demo-invoice-total{margin-top:28px;font-size:1.3rem}.button.danger{color:#b93636}.admin-billing-upload{width:100%}.admin-billing-upload .invoice-upload-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-billing-upload .drop-zone,.admin-billing-upload .button,.admin-billing-upload .form-success,.admin-billing-upload .form-error{grid-column:1/-1}.recurring-manager{margin-bottom:18px}.recurring-layout{grid-template-columns:minmax(380px,.9fr) minmax(420px,1.1fr);gap:20px;display:grid}.recurring-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.recurring-form .recurring-address,.recurring-form .button{grid-column:1/-1}.recurring-list{align-content:start;gap:9px;display:grid}.recurring-list article{border:1px solid var(--line);border-radius:10px;grid-template-columns:105px 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.recurring-list small{margin-top:4px}.recurring-status-actions{justify-items:end;gap:7px;display:grid}.recurring-pause-note{color:#a86700}.recurring-pause-dialog{gap:14px;display:grid}.parent-lesson-dialog{gap:12px;display:grid}.parent-contact-rule{align-items:flex-start;margin:0}.parent-contact-rule a{color:inherit;font-weight:800;text-decoration:underline}.lesson-row-link{color:inherit;transition:border-color .16s,box-shadow .16s}.lesson-row-link:hover,.lesson-row-link:focus-visible{border-color:var(--blue);outline:none;box-shadow:0 5px 14px #1469ed1a}.recurring-day{color:var(--blue);font-size:.78rem}.recurring-day strong{margin-top:3px;font-size:1.15rem;display:block}.weekly-workload{min-width:0;margin-bottom:18px;overflow-x:hidden}.weekly-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.workload-summary{grid-template-columns:repeat(4,minmax(95px,1fr));gap:10px;display:grid}.workload-summary span{background:#f3f7fd;border-radius:9px;grid-template-rows:34px 1fr;align-items:start;min-width:95px;min-height:76px;padding:9px 11px;display:grid}.workload-summary span:first-child{color:#0757d8;background:#e9f2ff}.workload-summary span:nth-child(2){color:#087f70;background:#e9faf6}.workload-summary span:nth-child(3){color:#a86c00;background:#fff5de}.workload-summary span:nth-child(4){color:#7040a8;background:#f3ecff}.workload-summary small,.workload-summary strong{display:block}.workload-summary strong{color:var(--blue-dark);align-self:start;margin-top:3px}.five-day-calendar{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-width:0;margin-top:14px;display:grid}.calendar-with-navigation{box-sizing:border-box;width:100%;min-width:0;padding:0 35px;position:relative}.calendar-with-navigation .five-day-calendar{width:100%;min-width:0}.week-nav-arrow{z-index:3;width:30px;height:169px;color:var(--blue);background:linear-gradient(#f7fbff,#e8f2ff);border:1px solid #9fc4f7;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:55px;box-shadow:0 6px 14px #1469ed1f}.week-nav-arrow:hover,.week-nav-arrow:focus-visible{color:#fff;border-color:var(--blue);background:var(--blue);outline:none}.week-nav-arrow.previous{left:0}.week-nav-arrow.next{right:0}.week-nav-arrow svg{width:22px;height:22px}.subject.subject-maths{background:#eef5ff;border-color:#9bc2fb}.subject.subject-maths span{color:#1469ed}.subject.subject-biology{background:#f0faed;border-color:#a9dba3}.subject.subject-biology span{color:#3c9636}.subject.subject-physics{background:#f5f0ff;border-color:#c6b5ee}.subject.subject-physics span{color:#7c51bd}.subject.subject-homework{background:#fff8e8;border-color:#efd195}.subject.subject-homework span{color:#b97800}.subject.selected{border-color:var(--blue);box-shadow:0 0 0 3px #1469ed24}.booking-summary-row{margin-bottom:14px;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important;gap:10px!important;display:grid!important}.booking-summary-row>span{background:#f7faff;border-radius:9px;grid-template-rows:auto 1fr;align-content:start;min-width:0;min-height:86px;display:grid;border:1px solid var(--line)!important;padding:11px 12px!important}.booking-summary-row strong{overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;font-size:.9rem;line-height:1.28}.select-card>.child-avatar{aspect-ratio:1;border-radius:50%;flex:0 0 52px;width:52px;min-width:52px;height:52px}.message-child-picker{font-size:1rem;font-weight:700}.message-child-picker select{font-size:.9rem;font-weight:600}.messages-guidance{color:#1458aa;background:#f1f7ff;border:1px solid #bdd6f8;border-radius:10px;align-items:center;gap:10px;margin:-6px 0 14px;padding:10px 13px;display:flex}.messages-guidance>svg{flex:none}.messages-guidance span,.messages-guidance small{display:block}.messages-guidance small{color:var(--muted);margin-top:3px}.announcement-settings{grid-template-columns:100px minmax(180px,.9fr) minmax(260px,1.5fr) auto;align-items:end;gap:12px;margin-bottom:18px;display:grid}.announcement-settings>div:first-child{grid-column:1/-1}.announcement-enabled{flex-direction:row;align-self:center;align-items:center;gap:8px;min-height:46px;display:flex}.announcement-enabled input{width:auto}.admin-announcement-preview{grid-column:1/4;margin:0}.announcement-settings>.button{min-height:48px}.announcement-settings>.form-success{grid-column:1/-1;margin:0}.five-day-calendar>section{border:1px solid var(--line);background:#fafcff;border-radius:10px;grid-template-rows:auto 1fr;min-width:0;min-height:230px;display:grid;overflow:hidden}.five-day-calendar header{background:#eef4fc;justify-content:space-between;padding:10px;display:flex}.day-events{grid-auto-rows:1fr;gap:8px;padding:9px;display:grid}.day-events button{border:0;border-left:4px solid var(--blue);width:100%;height:100%;min-height:169px;color:var(--ink);text-align:left;background:#eef5ff;border-radius:8px;grid-template-rows:58px 48px 1fr;align-content:stretch;padding:10px 25px 10px 10px;display:grid;position:relative;overflow:hidden}.day-events button:after{content:"";background:repeating-linear-gradient(135deg,#088970cc 0 3px,#ffffffa6 3px 6px);width:13px;position:absolute;top:0;bottom:0;right:0}.day-events button.awaiting-validation:after{background:repeating-linear-gradient(135deg,#da3a3ae6 0 3px,#ffffffb8 3px 6px)}.day-events .appointment-heading{grid-template-rows:22px 36px;align-content:start;line-height:1.12;display:grid}.day-events .appointment-heading>span{margin:0;display:block}.day-events .appointment-subject{height:48px;margin:0;line-height:1.3;display:block;overflow:hidden}.day-events button em{color:#087a68;align-items:flex-end;margin:0;font-size:.86rem;font-style:normal;font-weight:800;line-height:1;display:flex}.day-events button.awaiting-validation em{color:#bd3030}.day-events button:hover{box-shadow:inset 0 0 0 1px #83b5ff}.day-events button.mint{border-left-color:var(--teal);background:#eefaf7}.day-events small{margin-top:4px}.lesson-overlay{z-index:110;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08193694;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.lesson-overlay-panel{background:#fff;border-radius:16px;gap:12px;width:min(680px,100%);max-height:92vh;padding:24px;display:grid;position:relative;overflow:auto;box-shadow:0 24px 70px #00000047}.availability-slot-dialog{width:min(620px,100%)}.availability-slot-dialog h2,.availability-slot-dialog p{margin:0}.availability-slot-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.availability-slot-fields label{gap:6px;font-size:.78rem;font-weight:700;display:grid}.availability-slot-actions{justify-content:space-between;gap:10px;padding-top:4px;display:flex}.availability-slot-actions .button svg{width:17px;height:17px}.lesson-overlay-close{position:absolute;top:12px;right:12px}.lesson-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.lesson-edit-grid .lesson-address{grid-column:1/-1}.lesson-location-preview{border:1px solid var(--line);background:#f7faff;border-radius:11px;grid-column:1/-1;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:12px;padding:10px;display:grid}.lesson-location-preview .mini-map{height:105px;min-height:105px}.lesson-location-preview .mini-map small{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 16px);overflow:hidden;transform:none}.lesson-location-details{align-content:center;gap:6px;min-width:0;display:grid}.lesson-location-details span{color:var(--muted);overflow-wrap:anywhere;font-size:.78rem}.lesson-location-details .button{width:max-content;min-height:34px;padding:0 11px;font-size:.76rem}.parent-course-details{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.parent-course-details>span{border:1px solid var(--line);background:#f7faff;border-radius:10px;gap:5px;min-width:0;padding:11px;display:grid}.parent-course-details small{color:var(--muted)}.parent-course-details strong{overflow-wrap:anywhere}.parent-course-details .parent-course-address{grid-column:1/-1}.parent-course-subject.subject-maths{background:#eef5ff;border-color:#bcd5ff}.parent-course-subject.subject-biology{background:#f0faed;border-color:#bfe0b8}.parent-course-subject.subject-physics{background:#f5f0ff;border-color:#d7c5f5}.parent-course-subject.subject-homework{background:#fff8e8;border-color:#f1d393}.lesson-message textarea{resize:vertical;min-height:88px}.appointment-validation-queue{border-top:1px solid var(--line);gap:10px;margin-top:18px;padding-top:16px;display:grid}.appointment-validation-queue h3,.appointment-validation-queue p{margin:0}.appointment-validation-queue article{background:#fffaf0;border:1px solid #f0d28e;border-radius:11px;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.appointment-validation-queue article small{margin-top:4px;display:block}.appointment-validation-queue article>span:first-child strong{white-space:nowrap;display:block}.validation-empty{color:#087a68;background:#edf9f6;border-radius:9px;align-items:center;gap:8px;padding:12px;display:flex}.validation-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.validation-actions .button{min-height:38px;padding:0 12px;font-size:12px}.validation-actions .button svg{width:16px;height:16px}.rejection-dialog textarea{resize:vertical;min-height:130px}.child-address-heading{justify-content:space-between;align-items:center;gap:10px;margin-top:5px;display:flex}.child-address-list{gap:10px;display:grid}.child-address-item{border:1px solid var(--line);background:#fafcff;border-radius:10px;grid-template-columns:.75fr 1.25fr 1fr;gap:9px;padding:11px;display:grid}.child-address-item.primary{background:#f1fbf8;border-color:#8bd8cc}.address-primary{flex-direction:row;align-items:center;gap:6px;display:flex}.address-primary input{width:auto}.child-address-item>.button{justify-self:start}.child-address-summary{border:1px solid var(--line);background:#fafcff;border-radius:10px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:11px;display:grid}.child-address-summary.primary{background:#f1fbf8;border-color:#8bd8cc}.child-address-summary>svg{color:var(--teal)}.child-address-summary small,.child-address-summary em{margin-top:3px;display:block}.child-address-summary em{color:#087a68;font-size:.7rem;font-style:normal;font-weight:700}.address-overlay{z-index:105;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08193694;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.address-overlay-panel{background:#fff;border-radius:15px;gap:13px;width:min(560px,100%);padding:24px;display:grid;position:relative;box-shadow:0 24px 70px #00000047}.address-overlay-close{position:absolute;top:12px;right:12px}.address-options{gap:8px;display:grid}.new-child-editor-anchor{scroll-margin-top:85px}.new-child-editor-anchor>.child-profile-editor{height:100%}.child-profile-photo{background:#ddf7f2;border-radius:50%;flex:0 0 58px;place-items:center;width:58px;height:58px;font-size:2rem;display:grid;position:relative}.child-profile-photo>img{object-fit:cover;border-radius:50%;width:58px;height:58px}.child-photo-button{color:#fff;background:var(--blue);cursor:pointer;border:2px solid #fff;border-radius:50%;place-items:center;width:25px;height:25px;display:grid;position:absolute;bottom:-3px;right:-3px}.child-photo-button svg{width:13px}.child-photo-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.child-editor-title>small{margin-left:auto}.child-demographics{grid-template-columns:1fr 1.4fr .7fr;align-items:end;gap:10px;display:grid}.calculated-age{background:#eff8f7;border:1px solid #cdebe6;border-radius:9px;align-content:center;min-height:46px;padding:7px 12px;display:grid}.calculated-age small,.calculated-age strong{display:block}.booking-summary .booking-summary-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.booking-summary .booking-summary-row>span{border:1px solid var(--line);background:#f8fbff;border-radius:9px;min-width:0;min-height:70px;padding:11px}.booking-summary .booking-summary-row strong{overflow-wrap:anywhere;margin-top:5px;line-height:1.3;display:block}.booking-duration-picker{border-top:1px solid var(--line);gap:9px;margin-top:15px;padding-top:14px;display:grid}.booking-duration-picker>div{flex-wrap:wrap;gap:8px;display:flex}.booking-duration-picker button{border:1px solid var(--line);min-width:75px;min-height:38px;color:var(--ink);background:#fff;border-radius:8px}.booking-duration-picker button.selected{color:#fff;border-color:var(--blue);background:var(--blue)}.course-duration-settings{grid-template-columns:minmax(220px,.8fr) minmax(0,1.45fr);align-items:center;gap:12px 18px;margin-bottom:18px;display:grid}.course-duration-settings .section-title{margin-bottom:5px}.duration-choice-grid{grid-template-columns:repeat(5,minmax(68px,1fr));gap:8px;display:grid}.duration-choice-grid label{border:1px solid var(--line);cursor:pointer;background:#fafcff;border-radius:9px;align-content:center;place-items:center;gap:3px;min-height:58px;display:grid}.duration-choice-grid label.selected{color:var(--blue);border-color:var(--blue);background:#eef5ff;box-shadow:inset 0 0 0 1px #1469ed1f}.duration-choice-grid input{width:auto;margin:0}.course-duration-settings .form-success{grid-column:1/-1}.course-duration-settings>.button{grid-column:2;width:100%}.booking-summary-child,.booking-summary-subject{gap:10px;grid-template-rows:1fr!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important}.booking-summary-copy{min-width:0;border:0!important;padding:0!important}.booking-summary-copy small,.booking-summary-copy strong{display:block}.booking-summary-subject-icon{background:#ffffffb8;border-radius:50%;place-items:center;width:35px;height:35px;font-size:1.05rem;display:grid;border:0!important;padding:0!important}.booking-summary-subject.subject-maths{background:#eef5ff;border-color:#9bc2fb!important}.booking-summary-subject.subject-maths .booking-summary-subject-icon{color:#1469ed}.booking-summary-subject.subject-biology{background:#f0faed;border-color:#a9dba3!important}.booking-summary-subject.subject-biology .booking-summary-subject-icon{color:#3c9636}.booking-summary-subject.subject-physics{background:#f5f0ff;border-color:#c6b5ee!important}.booking-summary-subject.subject-physics .booking-summary-subject-icon{color:#7c51bd}.booking-summary-subject.subject-homework{background:#fff8e8;border-color:#efd195!important}.booking-summary-subject.subject-homework .booking-summary-subject-icon{color:#b97800}.validation-count{color:#fff;background:var(--blue);vertical-align:middle;border-radius:999px;place-items:center;min-width:25px;height:25px;margin-left:6px;padding:0 7px;font-size:.78rem;display:inline-grid}.summary-list small{color:inherit;margin-top:0;margin-bottom:3px}@media (width<=1180px){.messages-layout{grid-template-columns:220px minmax(0,1fr)}.parent-invoice-metrics{grid-template-columns:repeat(2,1fr)}.course-duration-settings{grid-template-columns:1fr}.course-duration-settings>.button{grid-column:1}.availability-week-planner{grid-column:1/-1}.availability-week-grid{grid-template-columns:repeat(5,minmax(118px,1fr));overflow-x:auto}.availability-editor{grid-template-columns:1fr 1fr 1fr}.availability-editor .button{grid-column:1/-1}}@media (width<=900px){.messages-layout{grid-template-columns:1fr}.parent-invoice-row{grid-template-columns:auto 1fr auto}.parent-invoice-row>:nth-child(n+4){grid-column:auto}.recurring-layout{grid-template-columns:1fr}.weekly-heading{display:block}.workload-summary{grid-template-columns:repeat(2,1fr);margin-top:10px}.parent-week-browser{grid-template-columns:26px minmax(0,1fr) 26px;gap:5px}.parent-week-grid{gap:6px}.parent-week-grid article{margin:6px;padding:8px}.parent-week-grid header{padding:8px 6px}.course-duration-settings{grid-template-columns:1fr}.course-duration-settings .button{width:100%}.duration-choice-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.availability-week-heading{display:grid}.availability-week-actions{justify-content:stretch}.availability-week-actions .button{flex:1}.availability-calendar-shell{grid-template-columns:30px minmax(0,1fr) 30px;gap:6px}.availability-week-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;overflow:visible}.availability-day header{padding:8px 6px}.availability-day header strong{font-size:.82rem}.availability-day header small{font-size:.68rem}.availability-day-blocks{gap:6px;padding:6px}.availability-block{text-align:center;grid-template-columns:1fr;justify-items:center;gap:2px;padding:7px 4px}.availability-block svg{display:none}.availability-block strong{font-size:.68rem}.availability-block small{grid-column:1;font-size:.62rem}.booking-summary-wide{grid-column:1;grid-template-columns:1fr}.booking-summary-wide .section-title{margin-bottom:14px}}@media (width<=620px){.subject-grid{grid-template-columns:repeat(2,1fr)}.parent-invoice-metrics{grid-template-columns:1fr 1fr}.parent-invoice-row{grid-template-columns:auto 1fr}.parent-invoice-row>:nth-child(n+3){grid-column:2}.invoice-child-filter{display:grid}.message-child-picker,.admin-billing-upload .invoice-upload-form,.recurring-form,.child-address-item,.child-demographics{grid-template-columns:1fr}.recurring-list article{grid-template-columns:1fr auto}.recurring-list article>span:nth-child(2){grid-area:2/1/auto/3}.child-address-heading{align-items:flex-start}.availability-slot-fields{grid-template-columns:1fr}.availability-slot-actions{display:grid}.availability-slot-actions .button{width:100%}.appointment-validation-queue article{grid-template-columns:1fr}.appointment-validation-queue .button,.validation-actions{width:100%}.validation-actions{display:grid}.duration-choice-grid{grid-template-columns:repeat(2,1fr)}.availability-calendar-shell{grid-template-columns:30px minmax(0,1fr) 30px}.availability-week-grid{scroll-snap-type:x mandatory;grid-template-columns:repeat(5,minmax(158px,1fr));overflow-x:auto}.availability-day{scroll-snap-align:start}.availability-day header{padding:9px}.availability-day header strong,.availability-day header small{font-size:inherit}.availability-day-blocks{padding:8px}.availability-block{justify-items:initial;text-align:left;grid-template-columns:auto minmax(0,1fr);gap:3px 6px;padding:8px}.availability-block svg{display:block}.availability-block strong{font-size:.76rem}.availability-block small{grid-column:2;font-size:.68rem}.availability-editor{grid-template-columns:1fr 1fr}.availability-editor label:first-child,.availability-editor .button{grid-column:1/-1}.booking-summary-row{grid-template-columns:1fr!important}.booking-summary-row>span{min-height:0;grid-column:auto!important}.booking-summary-wide{gap:12px}}@media (width<=900px){.announcement-settings{grid-template-columns:minmax(120px,.35fr) minmax(0,1fr)}.announcement-settings>label:nth-of-type(3),.announcement-settings>label:nth-of-type(4),.admin-announcement-preview,.announcement-settings>.button{grid-column:1/-1}.announcement-enabled{align-self:end}.admin-announcement-preview{min-width:0}.announcement-settings input{width:100%;min-width:0}}@media (width<=620px){.announcement-settings{grid-template-columns:1fr}.announcement-settings>label,.announcement-settings>label:nth-of-type(3),.admin-announcement-preview,.announcement-settings>.button{grid-column:1}.messages-guidance{align-items:flex-start}.logout-button{justify-content:center;width:40px;padding:0}.logout-button span{display:none}.legal-footer{text-align:center;justify-content:center}.legal-footer small{width:100%;margin-left:0}.lesson-edit-grid{grid-template-columns:1fr}.lesson-edit-grid .lesson-address{grid-column:auto}.lesson-location-preview{grid-template-columns:1fr}.parent-course-details{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-week-browser{grid-template-columns:24px minmax(0,1fr) 24px;gap:4px}.parent-week-grid article{font-size:.76rem}.notification-popover{top:58px;right:12px}.parent-planning-metrics{grid-template-columns:1fr 1fr}.parent-planning-metrics .card:first-child{grid-column:1/-1}.child-load-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
