@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");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:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");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}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_fd62f040-module__0jgVUW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_fd62f040-module__0jgVUW__variable{--font-body:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");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}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_2cfddc0b-module__tcXJaa__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_2cfddc0b-module__tcXJaa__variable{--font-display:"Manrope", "Manrope Fallback"}
:root{--ink:#102a3a;--muted:#667985;--line:#dce7eb;--bg:#f4f8f9;--card:#fff;--nav:#082f49;--nav2:#06283c;--teal:#0f9f94;--teal-dark:#087d75;--blue:#2563eb;--orange:#ea7c2b;--red:#d14343;--yellow:#a86800;--radius:18px;--shadow:0 12px 35px #082f4914}.inline-form{flex-wrap:wrap;align-items:end;gap:10px;margin-top:16px;display:flex}.inline-form input,.inline-form select{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:210px;min-height:43px;padding:9px 11px}.billing-price{margin:22px 0 8px;font-size:34px}.billing-price small{color:var(--muted);font-size:13px;font-weight:600}.danger-button{color:#a52f2f;background:#fff0ef;border-color:#ffd7d3}.text-link svg{vertical-align:middle}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-body),sans-serif;-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit}button,a{transition:all .18s}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3{font-family:var(--font-display),sans-serif;letter-spacing:-.04em;margin:0}p{line-height:1.6}.muted{color:var(--muted)}.logo{font:800 20px var(--font-display);align-items:center;gap:10px;display:inline-flex}.logo span{background:url(/logo-mark.png) 50%/contain no-repeat;flex:none;width:62px;height:28px}.logo.inverse{color:#fff}.button{border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-weight:700;display:inline-flex}.button.primary{background:var(--teal-dark);color:#fff;box-shadow:0 8px 20px #087d752e}.button.primary:hover{background:#056a64;transform:translateY(-1px)}.button.secondary{color:var(--ink);background:#e8f0f2}.button.ghost{color:var(--ink);background:0 0}.button.light{color:#075e59;background:#fff}.button.large{border-radius:13px;padding:14px 20px}.button:disabled{opacity:.6;cursor:wait}.button.wide{width:100%}.text-link,.text-button{color:var(--teal-dark);font-weight:700}.text-button{background:0 0;border:0}.center{text-align:center}.kicker{letter-spacing:.13em;color:var(--teal-dark);margin:0 0 10px;font-size:11px;font-weight:800}.marketing{background:radial-gradient(circle at 78% 20%,#32c9ba1f,#0000 31%),linear-gradient(#fff,#eff7f7);min-height:100vh;padding:0 max(24px,6vw)}.marketing-nav{justify-content:space-between;align-items:center;max-width:1180px;height:84px;margin:auto;display:flex}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:8vw;max-width:1180px;min-height:calc(100vh - 150px);margin:auto;padding:70px 0;display:grid}.hero h1{max-width:760px;font-size:clamp(44px,6vw,74px);line-height:1.04}.hero-copy{color:var(--muted);max-width:650px;margin:24px 0 30px;font-size:18px}.hero-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffbf;border:1px solid #0f9f9433;border-radius:30px;gap:13px;padding:28px;display:grid;transform:rotate(1deg);box-shadow:0 30px 70px #082f4921}.hero-card{border:1px solid var(--line);background:#fff;border-radius:16px;align-items:center;gap:15px;padding:18px;display:flex}.hero-card svg{color:var(--teal-dark)}.hero-card span,.hero-card b,.hero-card small{display:block}.hero-card small{color:var(--muted);margin-top:4px}.hero-check{color:var(--teal-dark);align-items:center;gap:9px;padding:15px;font-size:13px;font-weight:700;display:flex}.marketing footer{max-width:1180px;color:var(--muted);margin:auto;padding:20px 0 30px;font-size:13px}.auth-page{background:radial-gradient(circle at top right,#32c9ba2e,transparent 35%),var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--line);width:min(460px,100%);box-shadow:var(--shadow);background:#fff;border-radius:25px;gap:28px;padding:38px;display:grid}.auth-card h1{font-size:29px}.auth-card p{margin:7px 0 0}.stack{gap:15px;display:grid}.stack label,.form-grid label{color:var(--muted);align-content:start;gap:7px;font-size:12px;font-weight:700;display:grid}.stack input,.form-grid input,.form-grid select,.form-grid textarea,.attendance-row input,.attendance-row select,.page-head select{border:1px solid var(--line);width:100%;min-height:43px;color:var(--ink);background:#fff;border-radius:10px;outline:0;padding:9px 11px}.stack input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f9f941f}.form-error{color:var(--red);grid-column:1/-1;margin:0;font-size:12px;font-weight:700}.legal{max-width:760px;margin:0 auto;padding:70px 24px}.legal h1{margin:60px 0 18px;font-size:42px}.legal p{color:var(--muted);font-size:17px}.google-button{color:#273842;background:#fff;border:1px solid #cad8dc;min-height:45px;box-shadow:0 2px 5px #082f490d}.google-button:hover{background:#fbfdfd;border-color:#9db3ba;transform:translateY(-1px)}.auth-divider{color:#82949b;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:12px;font-size:10px;font-weight:700;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-divider span{white-space:nowrap}.student-history-link b,.student-history-link small{display:block}.student-history-link:hover b{color:var(--teal-dark)}.attendance-total{font:800 22px var(--font-display);color:var(--teal-dark)}.history-arrow{color:var(--teal-dark);align-items:center;gap:3px;font-weight:800;display:inline-flex}.attendance-history-head{align-items:flex-start;gap:18px;margin-bottom:24px;display:flex}.attendance-history-head>div p{color:var(--muted);margin:4px 0}.attendance-history-head h1{font-size:32px}.attendance-summary-cards{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.attendance-summary-cards article{border:1px solid var(--line);background:#fff;border-radius:17px;gap:5px;padding:18px;display:grid}.attendance-summary-cards span,.attendance-summary-cards small{color:var(--muted);font-size:11px}.attendance-summary-cards b{font:800 28px var(--font-display);color:var(--ink)}.app-shell{min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--nav),var(--nav2));z-index:50;flex-direction:column;width:252px;padding:22px 15px 16px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-head{justify-content:space-between;align-items:center;gap:8px;padding:0 8px 23px;display:flex}.sidebar-head .logo{gap:8px;min-width:0;font-size:18px}.sidebar-head .logo span{width:44px;height:21px}.sidebar nav{gap:4px;display:grid;overflow-y:auto}.sidebar nav a{color:#b9ced8;border-radius:11px;align-items:center;gap:12px;padding:11px 13px;font-size:14px;font-weight:600;display:flex}.sidebar nav a:hover{color:#fff;background:#ffffff0f}.sidebar nav a.active{color:#fff;background:#26c9bb29}.sidebar nav a.active svg{color:#47decf}.user-card{color:#fff;border-top:1px solid #ffffff1a;grid-template-columns:1fr auto;align-items:center;gap:10px;margin-top:auto;padding:16px 7px 2px;display:grid}.user-card-link{color:inherit;border-radius:11px;grid-template-columns:38px 1fr;align-items:center;gap:10px;margin:-5px;padding:5px;display:grid}.user-card-link:hover{background:#ffffff0f}.avatar{color:#5e4114;background:#f1c67c;border-radius:11px;place-items:center;width:38px;height:38px;font-size:12px;font-weight:800;display:grid}.avatar.large{border-radius:15px;width:50px;height:50px;margin-bottom:10px}.user-card span,.user-card b,.user-card small{display:block}.user-card b{font-size:12px}.user-card small{color:#9eb7c2;text-transform:capitalize;margin-top:3px;font-size:10px}.user-card button{color:#9eb7c2;background:0 0;border:0}.main-wrap{min-height:100vh;margin-left:252px}.topbar{border-bottom:1px solid var(--line);z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;align-items:center;gap:14px;height:74px;padding:0 28px;display:flex;position:sticky;top:0}.topbar>div{display:grid}.topbar small{color:var(--muted);font-size:10px}.topbar b{font:700 17px Manrope}.role-badge{color:var(--teal-dark);text-transform:uppercase;background:#e7f7f4;border-radius:999px;margin-left:auto;padding:6px 10px;font-size:10px;font-weight:800}.app-content{max-width:1500px;margin:auto;padding:28px}.mobile-only,.icon-button.mobile-only{display:none}.icon-button{border:1px solid var(--line);width:40px;height:40px;color:var(--ink);background:#fff;border-radius:11px;place-items:center;display:grid}.page-head{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:23px;display:flex}.page-head h1{font-size:28px}.page-head p{color:var(--muted);margin:6px 0 0;font-size:13px}.head-actions{align-items:center;gap:9px;display:flex}.head-actions>select{width:auto;min-width:135px}.search{border:1px solid var(--line);background:#fff;border-radius:11px;align-items:center;gap:8px;min-width:220px;height:42px;padding:0 11px;display:flex}.search svg{width:18px;color:var(--muted)}.search input{background:0 0;border:0;outline:0;width:100%}.panel,.entity-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff}.panel-title{border-bottom:1px solid #edf2f4;padding:19px 21px 14px}.panel-title h2{font-size:17px}.panel-title p{color:var(--muted);margin:4px 0 0;font-size:11px}.metrics{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;display:grid}.metrics article{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px;align-items:flex-start;gap:13px;min-height:125px;padding:17px;display:flex}.metrics svg{color:var(--teal-dark);background:#e8f7f4;border-radius:11px;width:39px;height:39px;padding:9px}.metrics span,.metrics b,.metrics small{display:block}.metrics span{color:var(--muted);font-size:12px}.metrics b{color:var(--ink);margin:8px 0 3px;font:800 24px Manrope}.metrics small{font-size:10px}.list{padding:6px 21px 15px}.list-row{border-bottom:1px solid #edf2f4;grid-template-columns:105px 5px 1fr auto;align-items:center;gap:15px;padding:14px 0;display:grid}.list-row:last-child{border:0}.list-row>i{border-radius:9px;width:5px;height:40px}.date-box,.date-box b,.date-box small,.grow,.grow b,.grow small{display:block}.date-box b,.grow b{font-size:13px}.date-box small,.grow small{color:var(--muted);margin-top:4px;font-size:10px}.grow{min-width:0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:780px}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#f7fafb;padding:13px 16px;font-size:10px}td{vertical-align:middle;border-top:1px solid #edf2f4;padding:15px 16px;font-size:12px}td b,td small{display:block}td small{color:var(--muted);margin-top:4px;font-size:10px}.status{color:#5e7079;white-space:nowrap;background:#eef2f4;border-radius:99px;align-items:center;padding:5px 9px;font-size:10px;font-weight:800;display:inline-flex}.status.active,.status.present,.status.completed,.status.paid{color:#087b6e;background:#e7f7f2}.status.unconfirmed,.status.scheduled,.status.unpaid,.status.partial{color:#8c6200;background:#fff4d9}.status.overdue,.status.absent,.status.cancelled,.status.inactive{color:#b53f3f;background:#fff0ef}.status.individual{color:#2459ad;background:#eaf2ff}.status.group{color:#a75418;background:#fff0e4}.row-actions{gap:6px;display:flex}.row-actions button{color:var(--ink);background:#eaf1f3;border:0;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:700}.row-actions button.danger{color:var(--red);background:#fff0ef}.card-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.entity-card{padding:20px}.entity-card h2{margin:6px 0;font-size:17px}.entity-card>p{color:var(--muted);margin:3px 0;font-size:12px}.class-card{border-top:4px solid var(--blue)}.between{justify-content:space-between;display:flex}.entity-card dl{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0;padding:13px 0;display:grid}.entity-card dt{color:var(--muted);font-size:9px}.entity-card dd{margin:4px 0 0;font-size:11px;font-weight:700}.chips{flex-wrap:wrap;gap:5px;margin:13px 0;display:flex}.chips span{background:#eef4f5;border-radius:99px;padding:5px 8px;font-size:9px;font-weight:700}.state{min-height:300px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.state svg{color:#8fb0ba;width:36px;height:36px}.state b{color:var(--ink)}.state span{font-size:12px}.state.compact{min-height:130px}.state.error svg{color:var(--red)}.state.upgrade-lock{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#fff,#f4faf9)}.state.upgrade-lock svg{color:var(--teal)}.state.upgrade-lock .button{margin-top:6px}.skeletons{gap:12px;display:grid}.skeletons i{background:linear-gradient(90deg,#edf2f3 25%,#f8fafb 50%,#edf2f3 75%) 0 0/200% 100%;border-radius:16px;height:92px;animation:1.25s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.tour-spotlight{z-index:80;border:2px solid var(--teal);pointer-events:none;border-radius:12px;transition:top .18s,left .18s,width .18s,height .18s;position:fixed;box-shadow:0 0 0 9999px #081d268c}.tour-card{z-index:81;border-radius:var(--radius);width:300px;max-width:calc(100vw - 40px);box-shadow:var(--shadow);background:#fff;gap:8px;padding:18px 18px 16px;display:grid;position:fixed;bottom:20px;left:auto;right:20px}.tour-card small{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.tour-card h3{margin:0;font-size:16px}.tour-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.tour-close{position:absolute;top:10px;right:10px}.tour-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:4px;display:flex}@media (max-width:640px){.tour-card{width:auto;bottom:12px;left:12px;right:12px}}.modal-backdrop{z-index:100;background:#041c2999;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;width:min(680px,100%);max-height:91vh;overflow:auto;box-shadow:0 35px 100px #0000003d}.modal>header{border-bottom:1px solid var(--line);z-index:2;background:#fff;justify-content:space-between;align-items:center;padding:20px 22px;display:flex;position:sticky;top:0}.modal h2{font-size:20px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;padding:21px 22px 23px;display:grid}.form-grid label.full,.form-actions{grid-column:1/-1}.form-grid textarea{resize:vertical;min-height:82px}.form-grid label>small{color:var(--muted);margin-top:-1px;font-size:11.5px;font-weight:500;line-height:1.45}.form-grid select[multiple]{height:auto}.form-grid label>small{font-size:10px;font-weight:500}.form-grid label.check{grid-template-columns:auto 1fr;align-items:center;display:flex}.form-grid label.check input{width:18px;min-height:18px}.form-actions{justify-content:flex-end;gap:8px;padding-top:5px;display:flex}.attendance-form{padding:20px 22px}.attendance-row{border-bottom:1px solid var(--line);grid-template-columns:1.1fr .8fr 1.3fr;align-items:center;gap:9px;padding:11px 0;display:grid}.attendance-row b{font-size:12px}.toast{z-index:120;background:var(--nav);color:#fff;box-shadow:var(--shadow);border-radius:11px;align-items:center;gap:8px;padding:12px 15px;font-size:12px;font-weight:700;display:flex;position:fixed;bottom:22px;right:22px}.timeline-list{gap:14px;display:grid}.calendar-day-list{grid-template-columns:190px 1fr;display:grid;overflow:hidden}.calendar-day-list>header{border-right:1px solid var(--line);grid-row:1/span 20;align-items:flex-start;gap:12px;padding:18px;display:flex}.calendar-day-list header svg{color:var(--teal-dark)}.calendar-day-list header b,.calendar-day-list header small{display:block}.calendar-day-list header small{color:var(--muted);margin-top:4px;font-size:10px}.calendar-event{border-bottom:1px solid #edf2f4;border-left:4px solid;grid-template-columns:90px 1fr;gap:15px;padding:14px 18px;display:grid}.calendar-event:last-child{border-bottom:0}.calendar-event time{font-size:12px;font-weight:700}.calendar-event span,.calendar-event b,.calendar-event small{display:block}.calendar-event b{font-size:12px}.calendar-event small{color:var(--muted);margin-top:3px;font-size:10px}.settings-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.settings-card{padding:21px}.settings-card h2{font-size:17px}.settings-card p{color:var(--muted);font-size:12px}.settings-card dl{margin:12px 0}.settings-card dl div{border-top:1px solid var(--line);justify-content:space-between;padding:11px 0;font-size:12px;display:flex}.settings-card dd{font-weight:700}.scrim{display:none}.integration-alert{border-radius:11px;margin-bottom:15px;padding:12px 15px;font-size:12px;font-weight:700}.integration-alert.error{color:#a52f2f;background:#fff0ef;border:1px solid #ffd7d3}.integration-alert.success{color:#087b6e;background:#e7f7f2;border:1px solid #bce9df}.integration-alert.warn{color:#7a5a12;background:#fff8e8;border:1px solid #f0dcae}.picker-field{flex-direction:column;gap:7px;display:flex}.picker-label{color:var(--ink);font-size:12px;font-weight:800}.picker-search{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;font-size:13px}.picker-list{border:1px solid var(--line);background:#fff;border-radius:11px;max-height:210px;overflow-y:auto}.picker-row{cursor:pointer;border-bottom:1px solid #f1f5f6;align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;font-weight:500;display:flex}.picker-row:last-child{border-bottom:0}.picker-row:hover{background:#f4fbfa}.picker-row input{width:17px;height:17px;accent-color:var(--teal-dark);cursor:pointer;flex:none}.picker-empty{color:var(--muted);text-align:center;margin:0;padding:14px;font-size:13px}.parent-pay-cell{text-align:right;white-space:nowrap}.parent-pay{padding:7px 15px;font-size:12.5px}.invoice-back{text-align:center;margin:0 0 40px;font-size:13px}.logo-row{border:1px solid var(--line);background:#fbfdfd;border-radius:13px;flex-wrap:wrap;align-items:center;gap:18px;margin:16px 0 4px;padding:16px;display:flex}.logo-preview{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:12px;width:104px;height:104px;padding:8px}.logo-placeholder{border:1px dashed var(--line);width:104px;height:104px;color:var(--muted);background:#fff;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:11px;display:flex}.logo-actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.logo-actions small{color:var(--muted);font-size:12px}.invoice-doc-link{margin:14px 0 0;font-size:13px}.row-action-link{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;align-items:center;padding:6px 11px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.row-action-link:hover{background:#f4fbfa}.integration-alert.warn .text-link{color:#7a5a12;text-decoration:underline}.integration-empty{text-align:center;align-content:center;place-items:center;min-height:360px;padding:34px;display:grid}.integration-empty>svg{width:52px;height:52px;color:var(--teal-dark);margin-bottom:8px}.integration-empty p{max-width:620px;color:var(--muted);font-size:13px}.integration-title{align-items:flex-start;gap:12px;display:flex}.integration-title>svg{width:36px;height:36px;color:var(--teal-dark);background:#e8f7f4;border-radius:10px;padding:8px}.integration-title p{margin:3px 0}.integration-field{color:var(--muted);gap:7px;margin:20px 0 12px;font-size:12px;font-weight:700;display:grid}.integration-field select{border:1px solid var(--line);background:#fff;border-radius:10px;min-height:43px;padding:9px}.toggle-row{cursor:pointer;border-top:1px solid #edf2f4;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0;display:flex}.toggle-row:first-of-type{border-top:0;padding-top:19px}.toggle-row .toggle-text{color:var(--ink);order:1;gap:3px;font-size:13.5px;font-weight:700;line-height:1.4;display:grid}.toggle-row .toggle-text small{color:var(--muted);font-size:12px;font-weight:500;line-height:1.55}.toggle-row input[type=checkbox]{appearance:none;cursor:pointer;background:#d7e2e6;border-radius:99px;flex:none;order:2;width:42px;height:25px;margin-top:1px;transition:background .18s;position:relative}.toggle-row input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:21px;height:21px;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #082f4959}.toggle-row input[type=checkbox]:checked{background:var(--teal-dark)}.toggle-row input[type=checkbox]:checked:after{transform:translate(17px)}.toggle-row input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.toggle-row input[type=checkbox]:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.settings-nav{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;display:block;overflow:hidden}.settings-nav-row{color:inherit;border-bottom:1px solid #edf2f4;align-items:center;gap:14px;padding:17px 21px;display:flex}.settings-nav-row:last-child{border-bottom:0}.settings-nav-row:hover{background:#f7fafb}.settings-nav-row:active{background:#eef4f5}.settings-nav-row>svg:first-child{width:20px;height:20px;color:var(--teal-dark);background:#e8f7f4;border-radius:11px;flex:none;padding:9px}.settings-nav-text{flex:1;gap:2px;min-width:0;display:grid}.settings-nav-text b{font-size:14px;font-weight:700}.settings-nav-text small{color:var(--muted);font-size:12px;line-height:1.45;display:block}.settings-nav-row .chevron{color:#b7c5cb;flex:none;width:18px;height:18px}.integration-list{color:var(--muted);padding-left:20px;font-size:12px;line-height:1.9}.integration-files{margin-top:16px}.integration-files td:first-child{max-width:360px}.google-settings-grid .settings-card{min-height:245px}.calendar-agenda{display:none}@media (max-width:1100px){.metrics,.card-grid{grid-template-columns:1fr 1fr}.hero{gap:5vw}.hero h1{font-size:52px}}@media (max-width:820px){.sidebar{transition:all .2s;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.main-wrap{margin-left:0}.mobile-only,.icon-button.mobile-only{display:grid}.scrim{z-index:45;background:#00000061;border:0;display:block;position:fixed;inset:0}.app-content{padding:20px 16px 85px}.topbar{padding:0 16px}.page-head{flex-direction:column;align-items:flex-start}.head-actions{flex-wrap:wrap;width:100%}.search{flex:1}.hero{grid-template-columns:1fr;padding:60px 0}.hero-panel{transform:none}.marketing-nav{height:74px}.settings-grid{grid-template-columns:1fr}}@media (max-width:600px){.calendar-scroll{display:none}.calendar-agenda{margin:0;padding:0;list-style:none;display:block}.calendar-agenda li{border-bottom:1px solid var(--line);gap:13px;padding:12px 0;scroll-margin-top:96px;display:flex}.calendar-agenda li:last-child{border-bottom:0}.calendar-agenda li.today .agenda-day b{background:var(--teal-dark);color:#fff}.agenda-day{text-align:center;flex:none;width:44px}.agenda-day b{width:38px;height:38px;font:800 15px var(--font-display);background:#eef6f6;border-radius:11px;place-items:center;margin:0 auto;display:grid}.agenda-day span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:10.5px;font-weight:800;display:block}.agenda-items{flex:1;gap:7px;min-width:0;display:grid}.agenda-item{border-left:3px solid var(--teal);color:var(--ink);background:#fbfdfd;border-radius:9px;padding:9px 11px;text-decoration:none;display:block}.agenda-item b{font-size:13px}.agenda-item span{margin-top:1px;font-size:13.5px;font-weight:600;display:block}.agenda-item small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.agenda-empty{color:var(--muted);text-align:center;margin:18px 0;font-size:13px}:is(.table-scroll:has(td[data-label]),.panel:has(td[data-label])){overflow-x:visible}table:has(td[data-label]){width:100%;min-width:0;display:block}table:has(td[data-label]) thead{display:none}table:has(td[data-label]) tbody{display:block}table:has(td[data-label]) tbody tr{border:1px solid var(--line);background:#fff;border-radius:13px;margin-bottom:10px;padding:14px 15px;display:block}table:has(td[data-label]) tbody tr:last-child{margin-bottom:0}table:has(td[data-label]) td{text-align:right;border:0;grid-template-columns:auto 1fr;align-items:baseline;gap:1px 16px;padding:4px 0;display:grid}table:has(td[data-label]) td>*{grid-column:2}table:has(td[data-label]) td:before{content:attr(data-label);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;text-align:left;grid-area:1/1;font-size:11px;font-weight:800}table:has(td[data-label]) td:empty{display:none}table:has(td[data-label]) td[data-label=""]:before{content:none}table:has(td[data-label]) td small{color:var(--muted);display:block}table:has(td[data-label]) td:first-child:not(.row-no){text-align:left;border-bottom:1px solid #eef3f3;margin-bottom:8px;padding:0 0 9px;display:block}table:has(td[data-label]) td.row-no+td{text-align:left;border-bottom:1px solid #eef3f3;margin-bottom:8px;padding:0 0 9px;display:block}table:has(td[data-label]) td:first-child:not(.row-no):before{content:none}table:has(td[data-label]) td.row-no+td:before{content:none}table:has(td[data-label]) td:first-child:not(.row-no) b{font-size:15px}table:has(td[data-label]) td.row-no+td b{font-size:15px}table:has(td[data-label]) td:first-child:not(.row-no) small{margin-top:1px}table:has(td[data-label]) td.row-no+td small{margin-top:1px}table:has(td[data-label]) td .row-actions{flex-wrap:wrap;justify-content:flex-end;margin-top:4px}table:has(td[data-label]) td>a{justify-self:end}table:has(td[data-label]) td>button{justify-self:end}table:has(td[data-label]) td>.row-actions{justify-self:end}table:has(td[data-label]) td>.status{justify-self:end}table:has(td[data-label]) td:first-child:not(.row-no)>*{justify-self:start}table:has(td[data-label]) td.row-no+td>*{justify-self:start}table:has(td[data-label]) .attendance-total{font-size:15px}.import-panel{padding:0}.import-panel>summary{cursor:pointer;align-items:center;gap:11px;padding:16px 18px;list-style:none;display:flex}.import-panel>summary::-webkit-details-marker{display:none}.import-panel>summary:after{content:"+";color:var(--muted);font:700 18px var(--font-display);margin-left:auto}.import-panel[open]>summary:after{content:"−"}.import-panel>summary:hover{background:#fbfdfd}.import-panel>:not(summary){padding:0 18px}.import-panel>:last-child:not(summary){padding-bottom:18px}.month-filter{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600}.renewal-panel{background:#fbfefe;border-color:#cfe6e3}.renewal-panel .integration-title svg{color:var(--teal-dark)}.checkbox-row{align-items:flex-start;gap:10px;display:flex!important}.checkbox-row input{width:17px;height:17px;accent-color:var(--teal-dark);flex:none;margin-top:2px}.checkbox-row span{font-size:13.5px;font-weight:600}.checkbox-row small{color:var(--muted);margin-top:2px;font-weight:400;display:block}.month-total{background:#f2fbf9;border:1px solid #cfeae5;border-radius:11px;margin:0 0 14px;padding:11px 15px;font-size:13.5px}.stars{vertical-align:middle;gap:2px;display:inline-flex}.stars svg{color:#dbe5e6;fill:#dbe5e6}.stars svg.on{color:#e0a92b;fill:#e0a92b}.review-panel .panel-title{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.review-score{text-align:right;flex:none}.review-score b{font:800 30px var(--font-display);color:var(--ink);line-height:1;display:block}.review-score .stars{margin-top:5px}.review-score small{color:var(--muted);margin-top:3px;font-size:12px;display:block}.review-tutors{border:1px solid var(--line);background:#fbfdfd;border-radius:11px;gap:6px;margin:4px 0 14px;padding:12px 14px;display:grid}.review-tutors>div{align-items:center;gap:10px;font-size:13px;display:flex}.review-tutors b{font-variant-numeric:tabular-nums}.review-tutors small{color:var(--muted);text-align:right;min-width:18px}.review-row .review-comment{margin:5px 0 0;font-size:13.5px;font-weight:600;display:block}.review-form{border-bottom:1px solid var(--line);padding:14px 0}.review-form:last-child{border-bottom:0;padding-bottom:0}.review-head b{font-size:14.5px}.review-head small{color:var(--muted);margin-top:1px;font-size:12.5px;display:block}.review-stars{gap:3px;margin:9px 0;display:flex}.review-stars button{cursor:pointer;color:#dbe5e6;background:0 0;border:0;padding:3px}.review-stars button svg{fill:currentColor}.review-stars button.on{color:#e0a92b}.review-form textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:10px;padding:9px 11px;font-size:13.5px}.review-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-top:9px;display:flex}.review-actions small{margin-right:auto;font-size:12px}.row-no{width:40px;color:var(--muted);text-align:right;font-size:12px;font-weight:700}tfoot .row-no{color:#0000}tfoot td{border-top:1px solid var(--line);color:var(--muted);padding:11px 10px;font-size:12.5px}table:has(td[data-label]) td.row-no{display:none}table:has(td[data-label]) tbody tr{counter-increment:card}table:has(td[data-label]) tbody{counter-reset:card}table:has(td[data-label]) tbody tr{position:relative}table:has(td[data-label]) tbody tr:after{content:"#" counter(card);color:var(--muted);font-size:12px;font-weight:700;position:absolute;top:14px;right:15px}table:has(td[data-label]) td:first-child:not(.row-no){padding-right:34px}table:has(td[data-label]) td.row-no+td{padding-right:34px}table:has(td[data-label]) tfoot{display:block}table:has(td[data-label]) tfoot tr{justify-content:space-between;padding:12px 15px;display:flex}.doc-sheet{padding:22px 18px}.doc-head{flex-direction:column;gap:16px}.doc-meta{text-align:left}.doc-meta dl>div{justify-content:flex-start}.doc-lines{min-width:0;font-size:11.5px}.doc-lines th,.doc-lines td{padding:7px 5px}.doc-totals{width:100%}.doc-pay-body{flex-direction:column}.hero h1{font-size:42px}.hero-copy{font-size:16px}.hero-panel{border-radius:22px;padding:16px}.auth-card{padding:27px}.metrics{grid-template-columns:1fr 1fr;gap:9px}.metrics article{min-height:140px;display:block}.metrics svg{margin-bottom:8px}.metrics b{font-size:20px}.card-grid{grid-template-columns:1fr}.page-head h1{font-size:24px}.head-actions .button.primary{width:100%}.list-row{grid-template-columns:92px 4px 1fr}.list-row>svg{display:none}.form-grid{grid-template-columns:1fr}.form-grid label.full,.form-actions{grid-column:1}.attendance-row,.attendance-summary-cards{grid-template-columns:1fr}.attendance-history-head{display:grid}.calendar-day-list{grid-template-columns:1fr}.calendar-day-list>header{border-right:0;border-bottom:1px solid var(--line);grid-row:auto}.calendar-event{grid-template-columns:75px 1fr}.entity-card dl{grid-template-columns:1fr 1fr}.modal-backdrop{padding:10px}.modal{max-height:95vh}.toast{justify-content:center;bottom:16px;left:16px;right:16px}}.marketing-v2{background:#fbfdfc;padding:0;overflow:hidden}.marketing-v2 .marketing-nav{z-index:5;max-width:1240px;padding-inline:24px;position:relative}.marketing-links,.marketing-actions{align-items:center;gap:24px;display:flex}.marketing-links a{color:#49636f;font-size:13px;font-weight:700}.marketing-actions{gap:8px}.saas-hero{background:radial-gradient(circle at 82% 12%,#22c5b62e,#0000 31%),radial-gradient(circle at 8% 70%,#fec45f26,#0000 27%),linear-gradient(#fff,#f2faf8);grid-template-columns:.92fr 1.08fr;align-items:center;gap:72px;min-height:780px;padding:90px max(24px,50vw - 620px);display:grid}.hero-content{z-index:2;position:relative}.eyebrow{color:#08766f;background:#f5fffc;border:1px solid #cce8e3;border-radius:99px;align-items:center;gap:7px;padding:7px 11px;font-size:11px;font-weight:800;display:inline-flex}.eyebrow svg{width:14px}.saas-hero h1{max-width:720px;margin:20px 0 24px;font-size:clamp(48px,5.4vw,78px);line-height:1.02}.saas-hero h1 em{color:#0b9288;font-style:normal}.hero-content>p{color:#5d727c;max-width:620px;margin:0 0 29px;font-size:18px}.hero-actions,.trust-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.trust-row{gap:18px;margin-top:22px}.trust-row span{color:#59707a;align-items:center;gap:5px;font-size:11px;font-weight:700;display:flex}.trust-row svg{color:#0d9b8f;width:14px}.product-stage{min-width:0;position:relative}.product-window{background:#fff;border:1px solid #d6e6e6;border-radius:22px;overflow:hidden;transform:perspective(1200px)rotateY(-3deg);box-shadow:0 35px 100px #0e46502e}.product-window>header{border-bottom:1px solid #e5eeee;align-items:center;gap:9px;height:53px;padding:0 16px;display:flex}.product-window>header b{font-size:12px}.product-window>header span{color:#72848b;margin-left:auto;font-size:10px}.product-window>header i{background:#d7e3e5;border-radius:50%;width:7px;height:7px}.mini-logo{background:url(/logo-mark.png) 50%/contain no-repeat;flex:none;width:38px;height:27px}.product-body{grid-template-columns:115px 1fr;min-height:430px;display:grid}.product-body>aside{color:#b8ced6;background:#082f49;align-content:start;gap:17px;padding:21px 14px;font-size:9px;display:grid}.product-body>aside b{color:#fff}.product-body>section{min-width:0;padding:22px}.mock-title{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.mock-title small{letter-spacing:.11em;color:#0b9288;font-size:7px;font-weight:800}.mock-title h2{margin-top:4px;font-size:18px}.mock-title button{color:#fff;background:#0b8f87;border:0;border-radius:8px;padding:8px 10px;font-size:8px;font-weight:800}.mock-week{border:1px solid #dfeaea;border-radius:13px;grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.mock-week>b{text-align:center;color:#70828a;background:#f6f9f9;padding:9px 2px;font-size:7px}.mock-week>div{border-top:1px solid #edf2f2;border-right:1px solid #edf2f2;height:91px;padding:6px}.mock-week small{color:#84949a;font-size:7px}.mock-week .active-day{background:#f2fbf8}.mock-event{color:#07776f;white-space:nowrap;background:#e6f6f3;border-radius:5px;margin-top:7px;padding:5px 3px;font-size:6px;font-weight:800;display:block;overflow:hidden}.mock-event.e1{color:#5263aa;background:#eef1ff}.mock-event.e2{color:#a7612f;background:#fff0e5}.floating-card{background:#fff;border:1px solid #dbe9e9;border-radius:13px;align-items:center;gap:10px;padding:12px 14px;display:flex;position:absolute;box-shadow:0 17px 45px #082f4926}.floating-card svg{color:#0b8f87;background:#e8f7f4;border-radius:8px;width:27px;height:27px;padding:6px}.floating-card b,.floating-card small{display:block}.floating-card b{font-size:10px}.floating-card small{color:#71838a;margin-top:2px;font-size:8px}.attendance-float{bottom:38px;left:-35px}.payment-float{top:72px;right:-22px}.logo-strip{text-align:center;color:#799099;letter-spacing:.08em;text-transform:uppercase;max-width:1240px;margin:auto;padding:34px 24px;font-size:11px;font-weight:800}.logo-strip div{color:#37545f;letter-spacing:-.01em;text-transform:none;flex-wrap:wrap;justify-content:center;gap:42px;margin-top:20px;font-size:15px;display:flex}.marketing-section{max-width:1240px;margin:auto;padding:110px 24px}.section-heading{max-width:690px;margin-bottom:42px}.section-heading.center{margin-inline:auto}.section-heading h2{font-size:clamp(35px,4vw,52px);line-height:1.08}.section-heading p{color:#647a83;margin:16px 0 0;font-size:16px}.feature-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.feature-card{background:#fff;border:1px solid #deebea;border-radius:20px;padding:28px;box-shadow:0 12px 40px #082f490d}.feature-card>svg{color:#0b8f87;background:#e8f7f4;border-radius:12px;width:42px;height:42px;padding:10px}.feature-card h3{margin:22px 0 9px;font-size:19px}.feature-card p{color:#698089;margin:0;font-size:13px}.workflow-section{color:#fff;background:#082f49}.workflow-section .marketing-section{padding-block:105px}.workflow-section .section-heading p{color:#a8c0c9}.workflow-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.workflow-step{background:#ffffff0e;border:1px solid #ffffff1f;border-radius:19px;padding:29px;position:relative}.workflow-step>span{color:#062f46;background:#28c7b9;border-radius:10px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.workflow-step h3{margin:21px 0 8px;font-size:19px}.workflow-step p{color:#b3cad2;margin:0;font-size:13px}.form-note{color:var(--teal-dark);background:#e8f7f4;border-radius:10px;margin:0;padding:10px 12px;font-size:12px;font-weight:600}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.stat-tile b{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:clamp(20px,4.6vw,30px)}.stat-tile{border:1px solid var(--line);background:#fff;border-radius:16px;padding:20px}.stat-tile>svg{width:34px;height:34px;color:var(--teal-dark);background:#e8f7f4;border-radius:10px;padding:8px}.stat-tile small{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin:14px 0 4px;font-size:11px;font-weight:800;display:block}.stat-tile b{font:800 30px var(--font-display);line-height:1.05;display:block}.stat-tile span{color:var(--muted);margin-top:6px;font-size:11px;display:block}.signup-chart{border-bottom:1px solid var(--line);align-items:flex-end;gap:2px;height:150px;margin-top:6px;padding:10px 0;display:flex}.signup-bar{flex:1;align-items:flex-end;height:100%;display:flex;position:relative}.signup-fill{background:#0b8f87;border-radius:4px 4px 0 0;width:100%;display:block}.signup-bar:hover .signup-fill{background:#075f59}.signup-tip{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:5;background:#082f49;border-radius:8px;margin-bottom:7px;padding:6px 9px;font-size:11px;font-style:normal;transition:opacity .12s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.signup-bar:hover .signup-tip{opacity:1}.signup-axis{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.signup-table{margin-top:18px}.signup-table summary{color:var(--teal-dark);cursor:pointer;font-size:12px;font-weight:700}.signup-table .table-scroll{margin-top:12px}.calendar-empty-hint{border:1px dashed var(--line);background:#f7fbfb;border-radius:14px;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 16px;padding:16px 18px;display:flex}.calendar-empty-hint b{font-size:14px}.calendar-empty-hint span{color:var(--muted);flex:1;min-width:220px;font-size:13px}.qr-preview{justify-items:start;gap:12px;margin-bottom:14px;display:grid}.qr-preview img{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:14px;width:190px;height:190px;padding:8px}.upload-row{margin-top:4px;display:block}.upload-row input{font-size:12px}.support-line{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0;padding-top:14px;font-size:12px;display:flex}.support-line svg{color:var(--teal-dark);flex:none}.install-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.install-card{background:#fff;border:1px solid #deebea;border-radius:20px;padding:30px;box-shadow:0 12px 40px #082f490d}.install-head{align-items:center;gap:14px;margin-bottom:22px;display:flex}.install-head svg{color:#0b8f87;background:#e8f7f4;border-radius:12px;flex:none;width:42px;height:42px;padding:10px}.install-head h3{margin:0;font-size:19px}.install-head small{color:#7b9199;letter-spacing:.05em;text-transform:uppercase;margin-top:3px;font-size:11px;font-weight:800;display:block}.install-steps{counter-reset:step;gap:14px;margin:0;padding:0;list-style:none;display:grid}.install-steps li{color:#5f767f;counter-increment:step;padding-left:38px;font-size:13px;line-height:1.55;position:relative}.install-steps li:before{content:counter(step);color:#07776f;width:26px;height:26px;font:800 12px var(--font-display);background:#e8f7f4;border-radius:9px;place-items:center;display:grid;position:absolute;top:-1px;left:0}.install-steps b{color:#23414c}.install-note{color:#647a83;text-align:center;justify-content:center;align-items:center;gap:10px;margin:26px 0 0;font-size:13px;display:flex}.install-note svg{color:#0d9b8f;flex:none;width:18px}.saas-cta{color:#fff;background:radial-gradient(circle at 80% 0,#5be7d74d,#0000 36%),linear-gradient(125deg,#086e68,#0b3e58);border-radius:28px;justify-content:space-between;align-items:center;gap:32px;max-width:1192px;margin:110px auto;padding:65px;display:flex;box-shadow:0 28px 80px #082f4933}.saas-cta h2{font-size:clamp(34px,4vw,49px)}.saas-cta p{color:#c9e4e3;margin:11px 0 0}.marketing-v2 .marketing-footer{border-top:1px solid #dce8e7;grid-template-columns:1fr auto;align-items:center;gap:20px;max-width:1240px;margin:auto;padding:38px 24px;display:grid}.marketing-footer>div:last-child{color:#667c85;gap:22px;font-size:12px;display:flex}.register-page{background:#f4f9f8;grid-template-columns:minmax(420px,1fr) minmax(390px,.82fr);min-height:100vh;display:grid}.register-main{place-items:center;padding:44px 24px;display:grid}.register-card{background:#fff;border:1px solid #dce9e8;border-radius:25px;width:min(500px,100%);padding:40px;box-shadow:0 25px 80px #082f491a}.register-card>.logo{margin-bottom:35px}.register-card h1{font-size:34px}.register-card>p{color:var(--muted);margin:9px 0 27px}.auth-switch{text-align:center;color:var(--muted);margin:21px 0 0;font-size:12px}.register-proof{color:#fff;background:radial-gradient(circle at 85% 10%,#38d7c747,#0000 30%),linear-gradient(150deg,#083650,#06283c);align-content:center;padding:70px;display:grid}.register-proof>div{max-width:530px}.register-proof .eyebrow{color:#78e8dc;background:#ffffff14;border-color:#ffffff29}.register-proof h2{margin:22px 0;font-size:clamp(38px,4.2vw,58px);line-height:1.05}.register-proof>div>p{color:#bdd1d8;font-size:16px}.proof-list{gap:14px;margin-top:30px;display:grid}.proof-list span{align-items:center;gap:10px;font-size:13px;font-weight:700;display:flex}.proof-list svg{color:#50dacc;width:18px}.month-calendar{overflow:hidden}.calendar-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:17px 19px;display:flex}.calendar-toolbar h2{text-align:center;min-width:200px;font-size:18px}.calendar-weekdays,.calendar-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{border-bottom:1px solid var(--line);background:#f7fafb}.calendar-weekdays span{text-align:center;color:var(--muted);text-transform:uppercase;padding:11px 5px;font-size:10px;font-weight:800}.calendar-cell{background:#fff;border-bottom:1px solid #e8eff1;border-right:1px solid #e8eff1;min-width:0;min-height:132px;padding:9px}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell.outside{color:#aab7bc;background:#f8fafb}.calendar-cell.today{background:#f6fffd;box-shadow:inset 0 0 0 2px #27b9ac}.calendar-date-row{justify-content:space-between;align-items:center;gap:4px;display:flex}.calendar-date-row>small{color:#87979d;font-size:8px}.calendar-date{border-radius:8px;place-items:center;width:26px;height:26px;margin-bottom:5px;font-size:11px;font-weight:800;display:grid}.calendar-cell.today .calendar-date{color:#fff;background:#0b8f87}.calendar-events{gap:4px;display:grid}.calendar-chip{color:#29505a;background:#eaf7f5;border-left:3px solid #0f9f94;border-radius:6px;min-width:0;padding:6px 7px 6px 14px;position:relative}.calendar-chip b,.calendar-chip small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.calendar-chip b{font-size:9px}.calendar-chip small{color:#607881;margin-top:2px;font-size:8px}.calendar-dot{background:#7b8c92;border-radius:50%;width:4px;height:4px;position:absolute;top:9px;left:6px}.calendar-dot.completed{background:#0b9b7b}.calendar-dot.scheduled{background:#d28c10}.calendar-dot.cancelled,.calendar-dot.postponed{background:#d14343}.calendar-more{color:#087d75;padding-left:6px;font-size:9px;font-weight:800}@media (max-width:1100px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.stat-tile{padding:15px}.stat-tile small{letter-spacing:.04em;margin:11px 0 3px;font-size:10px}.stat-tile span{font-size:10.5px;line-height:1.4}.saas-hero{gap:40px}.feature-grid{grid-template-columns:repeat(2,1fr)}.register-proof{padding:45px}.saas-cta{margin-inline:24px}}@media (max-width:820px){.install-grid{grid-template-columns:1fr}.marketing-links{display:none}.saas-hero{grid-template-columns:1fr;min-height:auto;padding-block:70px}.product-stage{width:min(650px,100%);margin:auto}.product-window{transform:none}.workflow-grid{grid-template-columns:1fr}.saas-cta{flex-direction:column;align-items:flex-start;padding:42px}.register-page{grid-template-columns:1fr}.register-proof{min-height:auto;padding:55px 24px}.calendar-scroll{overflow-x:auto}.calendar-weekdays,.calendar-month-grid{min-width:770px}.calendar-cell{min-height:120px}}@media (max-width:600px){.marketing-v2 .marketing-nav{padding-inline:16px}.marketing-actions .ghost{display:none}.saas-hero{padding:55px 18px}.saas-hero h1{font-size:42px}.product-body{grid-template-columns:1fr}.product-body>aside,.floating-card{display:none}.product-body>section{padding:16px}.mock-week>div{height:74px}.logo-strip div{gap:19px;font-size:12px}.marketing-section{padding:80px 18px}.feature-grid{grid-template-columns:1fr}.saas-cta{margin:75px 16px;padding:35px 27px}.marketing-v2 .marketing-footer{grid-template-columns:1fr}.marketing-footer>div:last-child{flex-wrap:wrap}.register-main{padding:24px 14px}.register-card{padding:28px 22px}.register-proof h2{font-size:36px}.calendar-toolbar h2{min-width:150px;font-size:15px}}.plan-actions{flex-wrap:wrap;gap:9px;margin-top:6px;display:flex}.plan-notice{background:#fdfaf0;border:1px solid #e2ddc9;border-radius:14px;flex-wrap:wrap;align-items:center;gap:18px;margin:0 0 20px;padding:15px 18px;display:flex}.plan-notice>div{flex:1;min-width:260px}.plan-notice b{color:#5c4a1d;font-size:14px;display:block}.plan-notice span{color:#7a6a44;margin-top:4px;font-size:13px;line-height:1.55;display:block}.plan-notice .button{flex:none}@media (max-width:600px){.plan-notice{padding:14px}.plan-notice .button{width:100%}}.row-flag{color:#7a6a44;vertical-align:middle;background:#fdfaf0;border:1px solid #e2ddc9;border-radius:99px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:800;display:inline-block}.class-tutor{border-top:1px solid var(--line);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;gap:5px;margin-top:12px;padding-top:12px;font-size:11px;font-weight:800;display:grid}.class-tutor select{border:1px solid var(--line);min-height:38px;color:var(--ink);text-transform:none;letter-spacing:0;background:#fff;border-radius:9px;padding:0 9px;font-size:13px;font-weight:600}.pricing-grid{grid-template-columns:repeat(4,1fr);align-items:stretch;gap:16px;display:grid}.pricing-card{background:#fff;border:1px solid #deebea;border-radius:20px;flex-direction:column;padding:30px 26px;display:flex;position:relative;box-shadow:0 12px 40px #082f490d}.pricing-card.featured{border-color:#0b8f87;box-shadow:0 20px 55px #0b8f8729}.pricing-flag{color:#fff;letter-spacing:.04em;background:#0b8f87;border-radius:99px;padding:5px 11px;font-size:10px;font-weight:800;position:absolute;top:-12px;left:26px}.pricing-card h3{margin:0;font-size:21px}.pricing-tagline{color:#7b9199;margin:5px 0 0;font-size:12px;font-weight:700}.pricing-price{font:800 34px var(--font-display);color:#123;margin:18px 0 0;line-height:1}.pricing-price small{color:#7b9199;margin-left:5px;font:700 12px/1 inherit}.pricing-card ul{gap:10px;margin:22px 0 0;padding:0;list-style:none;display:grid}.pricing-card li{color:#5f767f;align-items:flex-start;gap:8px;font-size:13px;line-height:1.5;display:flex}.pricing-card li svg{color:#0d9b8f;flex:none;width:16px;margin-top:2px}.pricing-note{color:#7b9199;margin:16px 0 22px;font-size:12px}.pricing-card .button{justify-content:center;margin-top:auto}.pricing-foot{text-align:center;color:#7b9199;max-width:760px;margin:34px auto 0;font-size:12px;line-height:1.7}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:16px;display:grid}.plan-card{flex-direction:column;display:flex}.plan-card.current{border-color:#0b8f87}.plan-card h2{font-size:18px}.plan-card .button{margin-top:auto}.plan-foot{grid-column:1/-1;margin:4px 0 0;font-size:12px}@media (max-width:1100px){.pricing-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.pricing-grid{grid-template-columns:1fr}}.plan-strip{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:16px 20px;display:flex}.plan-strip small{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.plan-strip b{font:800 20px var(--font-display);margin-top:4px;display:block}.plan-strip span{color:var(--muted);margin-top:3px;font-size:12px;display:block}.invoice-public{background:var(--bg);place-items:start center;min-height:100vh;padding:34px 16px 60px;display:grid}.invoice-sheet{border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:30px}.invoice-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:18px;display:flex}.invoice-head>div{align-items:center;gap:11px;display:flex}.invoice-head svg{width:34px;height:34px;color:var(--teal-dark);background:#e8f7f4;border-radius:10px;flex:none;padding:8px}.invoice-head b{font-size:16px;display:block}.invoice-head small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.invoice-facts{grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0;display:grid}.invoice-facts dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.invoice-facts dd{margin:4px 0 0;font-size:14px;font-weight:600}.invoice-total{background:#f2fbf9;border:1px solid #cfeae5;border-radius:14px;padding:18px}.invoice-total span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.invoice-total b{font:800 32px var(--font-display);color:var(--ink);letter-spacing:-.01em;margin-top:5px;display:block}.invoice-total small{color:var(--muted);text-transform:none;letter-spacing:0;margin-top:6px;font-size:12px;font-weight:500;display:block}.invoice-note{color:var(--muted);margin:16px 0 0;font-size:13px}.invoice-pay,.invoice-upload,.invoice-sent{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.invoice-pay h2,.invoice-upload h2,.invoice-sent h2{align-items:center;gap:7px;margin:0 0 14px;font-size:15px;display:flex}.invoice-pay img{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:14px;width:200px;height:200px;padding:8px}.invoice-pay dl{gap:8px;margin:14px 0 0;display:grid}.invoice-pay dl>div{justify-content:space-between;gap:12px;font-size:13px;display:flex}.invoice-pay dt{color:var(--muted)}.invoice-pay dd{margin:0;font-weight:700}.invoice-pay p{color:var(--muted);margin:14px 0 0;font-size:13px}.invoice-pay.missing p{color:#7a5a12;background:#fff8e8;border:1px solid #f0dcae;border-radius:12px;margin:0;padding:13px}.invoice-settled{color:#087b6e;background:#e7f7f2;border:1px solid #bce9df;border-radius:12px;align-items:center;gap:8px;margin:20px 0 0;padding:14px;font-size:13px;font-weight:700;display:flex}.invoice-settled svg{flex:none;width:18px}.invoice-sent>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:9px 0;font-size:13px;display:flex}.invoice-sent small{color:var(--muted);font-size:12px}.invoice-foot{text-align:center;color:var(--muted);margin:26px 0 0;font-size:11px}.filter-toggle{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.filter-toggle input{width:16px;height:16px}.plan-notice.verify{background:#f4f9fc;border-color:#cfe0ea}.plan-notice.verify b{color:#1d4a63}.plan-notice.verify span{color:#4a6b7c}.receipt-queue{margin-bottom:16px}.receipt-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.receipt-row .grow{flex:1;min-width:220px}.receipt-row b{font-size:13px;display:block}.receipt-row small{color:var(--muted);margin-top:3px;font-size:12px;display:block}.parent-shell{background:var(--bg);align-content:start;gap:16px;max-width:760px;min-height:100vh;margin:auto;padding:26px 16px 70px;display:grid}.parent-shell.narrow{place-content:center;max-width:460px}.parent-head{justify-content:space-between;align-items:center;gap:12px;padding:4px 2px;display:flex}.parent-head small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.parent-head b{font:800 22px var(--font-display);margin-top:3px;display:block}.parent-children{flex-wrap:wrap;gap:8px;display:flex}.parent-children button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;align-items:center;gap:7px;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.parent-children button.active{border-color:var(--teal);background:#f2fbf9}.parent-children small{color:var(--muted);font-size:11px;font-weight:600}.parent-card{padding:20px}.parent-card h2{align-items:center;gap:8px;margin:0 0 14px;font-size:16px;display:flex}.parent-card table{border-collapse:collapse;width:100%}.parent-card td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 0;font-size:13px}.parent-card td:last-child{text-align:right}.parent-card small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.parent-outstanding{color:#5c4a1d;background:#fdfaf0;border:1px solid #e2ddc9;border-radius:11px;margin:0 0 12px;padding:11px 14px;font-size:13px}.parent-note{border-bottom:1px solid var(--line);padding:13px 0}.parent-note b{margin-right:8px;font-size:14px}.parent-note p{color:#4a616b;margin:8px 0 4px;font-size:13px;line-height:1.6}.parent-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:13px;display:flex}.parent-bookings{border-top:1px solid var(--line);margin-top:18px;padding-top:6px}.voided-row{opacity:.55}.voided-row td b{text-decoration:line-through}.voided-row small{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:11px;font-weight:700;display:block}.today-strip{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:18px 22px;display:flex}.today-figures{flex-wrap:wrap;gap:28px;display:flex}.today-figures span{display:block}.today-figures b{font:800 30px var(--font-display);line-height:1;display:block}.today-figures small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:3px;font-size:11px;font-weight:700;display:block}.today-flags{flex-wrap:wrap;gap:8px;display:flex}.today-flag{border:1px solid var(--line);color:var(--ink);background:#f7fafb;border-radius:99px;padding:8px 13px;font-size:12px;font-weight:700;display:inline-block}.today-flag.red{color:#a52f2f;background:#fff0ef;border-color:#ffd7d3}.today-flag.amber{color:#7a6a44;background:#fdfaf0;border-color:#e2ddc9}.today-flag.green{color:#087b6e;background:#e7f7f2;border-color:#bce9df}@media (max-width:600px){.today-figures{gap:18px}.today-figures b{font-size:24px}}.family-card .between{align-items:flex-start;gap:10px;margin-bottom:6px}.family-card h2{font-size:18px}.family-children{border-top:1px solid var(--line);gap:6px;margin-top:14px;padding-top:12px;display:grid}.family-children span{color:#3d565f;font-size:13px}.family-children span.inactive{color:var(--muted);text-decoration:line-through}.send-list{max-height:52vh;overflow-y:auto}.social-handle{color:#5b4bb5;background:#f0eefb;border-radius:99px;margin-right:8px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.broadcast-confirm{background:#fdfaf0;border:1px solid #e2ddc9;border-radius:13px;margin-top:16px;padding:16px 18px}.broadcast-confirm b{color:#5c4a1d;font-size:15px;display:block}.broadcast-confirm p{color:#7a6a44;margin:5px 0 0;font-size:13px}.broadcast-confirm .form-actions{justify-content:flex-start;margin-top:14px}.broadcast-preview{border:1px solid var(--line);background:#f7fafb;border-radius:13px;margin:0 0 16px;padding:15px 17px}.broadcast-preview b{font-size:14px;display:block}.broadcast-preview pre{white-space:pre-wrap;color:#4a616b;margin:10px 0 0;font:13px/1.6 inherit}.broadcast-preview small{color:var(--muted);margin-top:10px;font-size:11px;display:block}.doc-shell{background:var(--bg);min-height:100vh;padding:24px 16px 60px}.doc-toolbar{justify-content:space-between;align-items:center;gap:12px;width:min(820px,100%);margin:0 auto 16px;display:flex}.doc-toolbar .button{align-items:center;gap:7px;display:inline-flex}.doc-sheet{border:1px solid var(--line);width:min(820px,100%);box-shadow:var(--shadow);color:var(--ink);background:#fff;border-radius:14px;margin:0 auto;padding:44px 46px}.doc-head{border-bottom:2px solid var(--ink);justify-content:space-between;gap:26px;padding-bottom:22px;display:flex}.doc-issuer{align-items:flex-start;gap:14px;display:flex}.doc-logo{object-fit:contain;flex:none;width:64px;height:64px}.doc-issuer b{font:800 17px var(--font-display);letter-spacing:-.01em;display:block}.doc-issuer span{color:var(--muted);margin-top:3px;font-size:12px;line-height:1.5;display:block}.doc-address{white-space:pre-line;max-width:250px}.doc-meta{text-align:right;flex:none}.doc-meta h1{font:800 26px var(--font-display);letter-spacing:-.02em;text-transform:uppercase;margin:0 0 9px}.doc-meta dl{gap:3px;margin:0;display:grid}.doc-meta dl>div{justify-content:flex-end;gap:9px;font-size:12.5px;display:flex}.doc-meta dt{color:var(--muted)}.doc-meta dd{margin:0;font-weight:700}.doc-stamp{letter-spacing:.05em;text-transform:uppercase;border-radius:6px;margin-top:11px;padding:4px 11px;font-size:11px;font-weight:800;display:inline-block}.doc-stamp.paid{color:#087b6e;background:#e7f7f2;border:1px solid #bce9df}.doc-stamp.due{color:#7a5a12;background:#fff8e8;border:1px solid #f0dcae}.doc-parties{gap:40px;margin:22px 0 6px;display:flex}.doc-parties small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:800;display:block}.doc-parties b{margin-top:5px;font-size:14.5px;display:block}.doc-parties span{color:var(--muted);margin-top:2px;font-size:12.5px;display:block}.doc-lines{border-collapse:collapse;width:100%;min-width:0;margin-top:18px;font-size:13px}.doc-lines th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:10.5px;font-weight:800}.doc-lines th:last-child,.doc-lines td:last-child{text-align:right}.doc-lines th:nth-child(2),.doc-lines td:nth-child(2),.doc-lines th:nth-child(3),.doc-lines td:nth-child(3){text-align:right;white-space:nowrap}.doc-lines td{border-bottom:1px solid #f1f5f6;padding:10px}.doc-totals{width:min(300px,100%);margin:18px 0 0 auto;font-size:13px}.doc-totals>div{justify-content:space-between;gap:16px;padding:5px 0;display:flex}.doc-totals span{color:var(--muted)}.doc-total-row{border-top:1px solid var(--line);margin-top:5px;font-size:14px;padding-top:9px!important}.doc-balance{background:#f2fbf9;border:1px solid #cfeae5;border-radius:9px;margin-top:7px;padding:11px 13px!important}.doc-balance span{color:var(--ink);font-weight:700}.doc-balance b{font:800 17px var(--font-display)}.doc-block{margin-top:26px}.doc-block h2{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:800}.doc-pay{border:1px solid var(--line);background:#fbfdfd;border-radius:11px;padding:16px 18px}.doc-pay-body{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:22px;display:flex}.doc-pay dl{gap:6px;min-width:220px;margin:0;font-size:13px;display:grid}.doc-pay dl>div{justify-content:space-between;gap:14px;display:flex}.doc-pay dt{color:var(--muted)}.doc-pay dd{margin:0;font-weight:700}.doc-qr{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:10px;width:132px;height:132px;padding:6px}.doc-pay p{color:var(--muted);margin:12px 0 0;font-size:12.5px}.doc-foot{border-top:1px solid var(--line);margin-top:30px;padding-top:16px}.doc-foot p{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.doc-issued{margin-top:6px!important;font-size:11px!important}@media print{@page{size:A4;margin:14mm}html,body{background:#fff}.doc-shell{background:#fff;min-height:0;padding:0}.doc-toolbar{display:none}.doc-sheet{width:auto;box-shadow:none;border:0;border-radius:0;margin:0;padding:0}.doc-lines tr,.doc-totals,.doc-pay,.doc-foot{break-inside:avoid}.doc-qr,.doc-logo,.doc-stamp,.doc-balance,.doc-pay{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.topbar{padding-top:env(safe-area-inset-top);height:calc(74px + env(safe-area-inset-top));padding-left:max(28px,env(safe-area-inset-left));padding-right:max(28px,env(safe-area-inset-right))}.sidebar{padding-top:max(22px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(15px,env(safe-area-inset-left))}.app-content{padding-left:max(28px,env(safe-area-inset-left));padding-right:max(28px,env(safe-area-inset-right));padding-bottom:max(28px,env(safe-area-inset-bottom))}.toast{right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom))}.parent-shell{padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(40px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.doc-shell,.invoice-public{padding-bottom:max(60px,env(safe-area-inset-bottom))}.jobs-shell{max-width:760px;min-height:100vh;margin:auto;padding:32px 16px 70px}.jobs-head h1{font:800 30px var(--font-display);letter-spacing:-.02em;margin:0 0 6px}.jobs-head p{color:var(--muted);margin:0 0 16px;font-size:14px}.jobs-list{gap:11px;margin:0;padding:0;list-style:none;display:grid}.jobs-list a{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:13px;padding:15px 17px;text-decoration:none;display:block}.jobs-list a:hover{border-color:var(--teal);background:#fbfefe}.jobs-list b{font-size:15.5px}.jobs-org{color:var(--muted);margin-top:2px;font-size:13px;display:block}.jobs-meta{flex-wrap:wrap;gap:8px 14px;margin-top:9px;display:flex}.jobs-meta span{color:var(--muted);align-items:center;gap:5px;font-size:12.5px;display:inline-flex}.jobs-body{white-space:pre-line;margin:14px 0 0;font-size:14px;line-height:1.65}.jobs-empty{text-align:center;color:var(--muted);margin:26px 0;font-size:14px}.conflict-panel{background:#fffdf7;border-color:#f0dcae}.conflict-panel .integration-title svg{color:#b7791f}.attendance-hint{color:var(--muted);margin:0 0 14px;font-size:13px}.attendance-edit{cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;margin:-2px -6px;padding:2px 6px;display:inline-flex}.attendance-edit:hover{background:#eef6f6}.attendance-edit svg{color:var(--muted);flex:none}.attendance-select{border:1px solid var(--teal);background:#fff;border-radius:8px;padding:5px 8px;font-size:12.5px}.analytics-figures{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:30px;margin:6px 0 22px;padding-bottom:20px;display:flex}.analytics-figures span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:10.5px;font-weight:800;display:block}.analytics-figures b{font:800 24px var(--font-display);font-variant-numeric:tabular-nums;margin-top:5px;display:block}.analytics-figures b.owed{color:#b6413d}.analytics-bars{align-items:flex-end;gap:8px;min-height:190px;padding:4px 0 2px;display:flex;overflow-x:auto}.analytics-bar{text-align:center;flex-direction:column;flex:1;justify-content:flex-end;min-width:46px;display:flex}.analytics-bar>b{font-variant-numeric:tabular-nums;color:var(--ink);min-height:15px;margin-bottom:7px;font-size:11.5px;display:block}.analytics-bar.empty>b{color:var(--muted);font-weight:600}.analytics-track{background:#eef4f5;border-radius:8px 8px 3px 3px;flex-direction:column;justify-content:flex-end;height:120px;display:flex;overflow:hidden}.analytics-track .fill{background:linear-gradient(#0d9488,#087d75);transition:height .35s;display:block}.analytics-track .fill.history{background:#c3e3e0}.analytics-bar small{color:var(--muted);letter-spacing:.02em;margin-top:8px;font-size:10.5px;font-weight:700;display:block}.analytics-bar.peak .fill{background:linear-gradient(#0f766e,#065f58)}.analytics-legend{color:var(--muted);gap:18px;margin-top:16px;font-size:11.5px;display:flex}.analytics-legend i{vertical-align:-1px;border-radius:3px;width:11px;height:11px;margin-right:6px;display:inline-block}.analytics-legend i.now{background:#087d75}.analytics-legend i.was{background:#c3e3e0}@media (max-width:600px){.analytics-figures{gap:18px}.analytics-figures b{font-size:19px}.analytics-bar{min-width:40px}.analytics-track{height:96px}}.health-heading{letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:22px 0 2px;font-size:13px;font-weight:800}.health-note{margin:0 0 12px;font-size:12.5px}.day-group+.day-group{margin-top:26px}.day-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin:0 0 10px;font-size:12px;font-weight:800;display:flex}.day-heading:after{content:"";background:var(--border);flex:1;height:1px}.doc-notes{gap:14px;margin-top:20px;display:grid}.doc-note{page-break-inside:avoid;break-inside:avoid;border:1px solid #e6edf0;border-radius:10px;padding:14px 16px}.doc-note>header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:9px;display:flex}.doc-note>header b{font-size:14px}.doc-note-meta{color:var(--muted);white-space:nowrap;font-size:11px}.doc-note dl{gap:6px;margin:0;display:grid}.doc-note dl div{grid-template-columns:120px 1fr;gap:10px;font-size:12.5px;display:grid}.doc-note dt{color:var(--muted)}.doc-note-tutor{color:var(--muted);margin-top:9px;font-size:10.5px;display:block}.doc-empty{color:var(--muted);margin-top:24px;font-size:13px}.attendance-open{border:1px solid var(--line);font:inherit;color:var(--teal-dark);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:4px 9px;font-size:12px;display:inline-flex}.attendance-open:hover{border-color:var(--teal-dark)}.attendance-open b{font-size:13px}.attendance-mark-row td{background:#f7fbfc}.attendance-mark{gap:10px;padding:6px 2px;display:grid}.attendance-mark-item{border:1px solid var(--line);background:#fff;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:10px 13px;display:flex}.attendance-mark-item small{color:var(--muted);margin-top:3px;font-size:11px;display:block}.attendance-mark-actions{flex-wrap:wrap;gap:7px;display:flex}.attendance-mark-actions .button{padding:6px 13px;font-size:12.5px}.attendance-mark-note{color:var(--muted);font-size:11.5px}.doc-sessions{border-collapse:collapse;table-layout:fixed;width:100%;min-width:0;margin-top:18px;font-size:13px}.doc-sessions th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:10.5px;font-weight:800}.doc-sessions td{vertical-align:middle;border-bottom:1px solid #f2f6f7;padding:7px 10px;line-height:1.4}.doc-sessions tbody tr:nth-child(2n) td{background:#fafcfc}.doc-sessions tbody tr:last-child td{border-bottom:0}.doc-sessions .num{text-align:right}.doc-sessions small{color:var(--muted);font-size:11px}.doc-session-date{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}.doc-session-time{white-space:nowrap;font-variant-numeric:tabular-nums}.doc-sessions th:first-child,.doc-sessions td:first-child{width:88px}.doc-sessions th:nth-child(3),.doc-sessions td:nth-child(3){width:62px}.doc-sessions th:nth-child(4),.doc-sessions td:nth-child(4){width:74px}.doc-sessions tr{break-inside:avoid}.doc-sessions tfoot td{border-top:1.5px solid var(--ink);background:0 0;padding:11px 10px 0;font-weight:800}.doc-sessions tfoot .num{font-variant-numeric:tabular-nums}.doc-rate-missing{color:var(--muted);margin-top:10px}.usage-today{border:1px solid var(--teal);background:#f2fbf9;border-radius:14px;margin-bottom:16px;padding:16px}.usage-day-pill{color:var(--teal-dark);white-space:nowrap;background:#e7f7f4;border-radius:99px;padding:4px 9px;font-size:10px;font-weight:800}.usage-today-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px;display:grid}.usage-today-grid div{flex-direction:column;gap:3px;display:flex}.usage-today-grid b{font:800 24px var(--font-display);color:var(--ink)}.usage-today-grid span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:10.5px;font-weight:700}@media (max-width:600px){.usage-today-grid{grid-template-columns:repeat(2,1fr)}}.push-on{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.push-on p{margin:0}.cover-badge{color:#a24e17;letter-spacing:.03em;text-transform:uppercase;background:#fdf0e4;border-radius:99px;margin-top:5px;padding:2px 9px;font-size:10.5px;font-weight:800;display:inline-block}.sidebar nav{scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;flex-direction:column;flex:1;gap:2px;padding-bottom:14px;display:flex;overflow-y:auto}.nav-group{flex-direction:column;gap:2px;margin-top:18px;display:flex}.nav-heading{letter-spacing:.13em;text-transform:uppercase;color:#b9ced880;margin:0 0 6px 13px;font-size:10px;font-weight:800}.nav-parent>button{color:#b9ced8;width:100%;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;padding:11px 13px;font-size:14px;font-weight:600;display:flex}.nav-parent>button:hover{color:#fff;background:#ffffff12}.nav-parent>button.active{color:#fff}.nav-chevron{opacity:.6;margin-left:auto;transition:transform .18s}.nav-chevron.open{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.nav-chevron{transition:none}}.nav-children{border-left:1px solid #ffffff21;flex-direction:column;gap:1px;margin:2px 0 4px 26px;padding-left:12px;display:flex}.sidebar nav .nav-children a{border-radius:8px;padding:8px 11px;font-size:13.5px;font-weight:550}.sidebar nav .nav-children a.active{color:#fff;background:#ffffff1f;font-weight:700}.event-strip{flex-wrap:wrap;gap:9px;margin:0 0 16px;display:flex}.event-chip{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:inline-flex}.event-chip b{font-weight:700}.event-chip small{color:var(--muted);font-size:11.5px}.event-chip .icon-button{width:22px;height:22px;color:var(--muted);font-size:15px}.event-chip.holiday{border-left:3px solid #c2683a}.event-chip.closure{border-left:3px solid #b6413d}.event-chip.exam{border-left:3px solid #5b6cb8}.event-chip.event{border-left:3px solid #3f8f4a}.calendar-cell.has-event{background:#fdfaf6}.day-event{letter-spacing:.02em;color:#8a4415;text-overflow:ellipsis;white-space:nowrap;background:#f6e6da;border-radius:6px;margin-bottom:4px;padding:3px 7px;font-size:10.5px;font-weight:800;display:block;overflow:hidden}.day-event.closure{color:#8f302c;background:#f8e0df}.day-event.exam{color:#3f4d96;background:#e3e6f6}.day-event.event{color:#2f6b39;background:#e2f0e4}.faq-list{gap:10px;max-width:760px;margin:0 auto;display:grid}.faq-item{border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 20px}.faq-item summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:16px;font-weight:700;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:var(--muted);font-size:20px;font-weight:600}.faq-item[open] summary:after{content:"−"}.faq-item p{color:var(--muted);max-width:62ch;margin:0;padding:0 0 18px;font-size:15px;line-height:1.6}.day-picker{flex-wrap:wrap;gap:7px;display:flex}.day-chip{border:1px solid var(--line);cursor:pointer;min-width:52px;color:var(--muted);-webkit-user-select:none;user-select:none;background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:9px 12px;font-size:13px;font-weight:700;display:inline-flex}.day-chip input{opacity:0;width:0;height:0;position:absolute}.day-chip:hover{border-color:var(--teal)}.day-chip.on{background:var(--teal);border-color:var(--teal);color:#fff}.day-chip:focus-within{box-shadow:0 0 0 3px #0f9f9438}.today-none{flex-direction:column;gap:6px;padding:4px 0;display:flex}.today-none>b{font-size:17px}.today-none span{color:var(--muted);font-size:14px}@media (max-width:600px){table.compact-stats tbody tr{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;margin-bottom:10px;padding:14px 15px;display:grid}table.compact-stats tbody td{font-variant-numeric:tabular-nums;border:0;padding:0;font-size:15px;font-weight:700;display:block}table.compact-stats tbody td:before{content:attr(data-label);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:9.5px;font-weight:800;display:block}table.compact-stats tbody td:first-child{grid-column:1/-1;font-size:16px;font-weight:800}table.compact-stats tbody td:first-child:before{content:none}}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:.75rem;margin-bottom:1rem;display:grid}.photo-grid figure{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:.4rem;margin:0;display:flex;overflow:hidden}.photo-grid img{aspect-ratio:4/3;object-fit:cover;background:var(--muted-surface,#f1f1f1);width:100%;display:block}.photo-grid figcaption{flex-direction:column;gap:.15rem;padding:.5rem .6rem .65rem;font-size:.85rem;display:flex}.photo-grid figcaption small{color:var(--muted);font-size:.75rem}.photo-grid figcaption .text-button{align-self:flex-start;margin-top:.2rem;padding:0}.plan-notice.warn{background:#fff8e8;border-color:#f0dcae}.plan-notice.warn b{color:#7a5a12}.plan-notice.warn span{color:#8a7126}.plan-notice.upsell{background:#eefaf7;border-color:#bfe3da}.plan-notice.upsell b{color:#0b6e5f}.plan-notice.upsell span{color:#2f7b6d}.plan-notice .icon-button{color:inherit;opacity:.6;flex:none;align-self:flex-start;font-size:20px;line-height:1}.plan-notice .icon-button:hover{opacity:1}
