:root{--purple:#6654df;--purple-dark:#5040be;--ink:#24233c;--muted:#818297;--line:#ebecf3;--bg:#f7f8fc;--green:#328d71;--orange:#bd7a36;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.55}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--purple);text-decoration:none}button{cursor:pointer;color:inherit}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ab9ff3;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.2;letter-spacing:-.035em}h1{font-size:34px;font-weight:700;margin-bottom:10px}h2{font-size:20px;font-weight:650;margin-bottom:12px}h3{font-size:18px}small{font-size:12px;color:var(--muted)}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button svg{pointer-events:none}input,textarea,select{width:100%;border:1px solid #dddfe9;border-radius:10px;padding:11px 13px;background:#fff;color:var(--ink);min-width:0}input[type=checkbox]{width:17px;height:17px;accent-color:var(--purple);flex-shrink:0}textarea{resize:vertical;line-height:1.55}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;margin-bottom:16px}button{border:0;background:none}form p{font-size:13px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;padding:10px 17px;border:1px solid #e1e2eb;border-radius:9px;background:#fff;font-size:13px;font-weight:600;white-space:nowrap;min-height:40px;color:var(--ink);transition:background .18s,transform .18s}.btn:hover{background:#f4f2ff;border-color:#d3cbff}.btn.primary{background:var(--purple);border-color:var(--purple);color:white;box-shadow:0 4px 10px #6654df12}.btn.primary:hover{background:var(--purple-dark);transform:translateY(-1px)}.btn.large{padding:15px 25px;min-height:52px}.btn.light{background:#fff;color:var(--purple);border:0}.btn.tiny{min-height:31px;font-size:12px;padding:6px 11px}.btn.danger{color:#b3515c;border-color:#f0dfe2}.btn.text-link,.text-link{border:0;background:transparent;padding-left:0;color:var(--purple);font-weight:600}.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:8px;flex-shrink:0;padding:7px}.icon-btn:hover{background:#f0edf9}.brand{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:750;color:var(--ink);letter-spacing:-1px;white-space:nowrap}.brand-mark{position:relative;display:inline-flex;align-items:center;justify-content:center;background:var(--purple);color:white;font-size:27px;line-height:1;font-weight:800;width:39px;height:40px;border-radius:12px;letter-spacing:-3px;padding-right:3px;flex-shrink:0}.brand-mark>span{color:#c7f5b7;font-size:21px;position:absolute;bottom:3px;right:5px;line-height:.6}.brand.small{font-size:17px}.brand.small .brand-mark{width:30px;height:31px;font-size:21px}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:var(--purple);margin-bottom:12px;line-height:1.6}.pill{display:inline-flex;padding:4px 10px;border-radius:6px;font-size:10px;font-weight:650;white-space:nowrap}.violet{background:#efebfd;color:#7960ca}.green{background:#e7f4ed;color:#41896f}.orange{background:#fcf0e4;color:#bf844d}.blue{background:#e9f0fb;color:#5686b9}.pink{background:#f9eafa;color:#b778ab}.gray{background:#f0f1f6;color:#9293a3}.orange-text{color:var(--orange)}.green-text{color:var(--green)}.avatar{display:inline-flex;width:43px;height:43px;align-items:center;justify-content:center;flex-shrink:0;border-radius:14px;font-size:13px;font-weight:700}.status-dot,.saved-dot{width:7px;height:7px;background:#57a488;border-radius:50%;display:inline-block;flex-shrink:0}.wrap{max-width:1190px;padding-left:28px;padding-right:28px;margin:auto}.muted,.help-note{color:var(--muted)}.help-note{font-size:12px;line-height:1.65;margin:18px 0}.pre-wrap{white-space:pre-wrap;overflow-wrap:anywhere}.mt{margin-top:22px}.padded{padding:25px}.button-stack{display:flex;flex-direction:column;gap:10px}.notice{padding:13px 17px;background:#f0edfb;border:1px solid #e7e0fb;border-radius:10px;font-size:12px;display:flex;align-items:center;gap:10px;margin-bottom:22px}.link-button{padding:0;font-weight:650;text-align:left}.link-button:hover{color:var(--purple)}.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.inline-label{flex-direction:row;align-items:center;margin:0}.inline-label input{width:auto}.loading{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-align:center;padding:25px}.loading .brand-mark{width:58px;height:60px;font-size:38px}.loading h1{font-size:24px}.loading .btn{min-width:190px}
/* Public site */
.public-header{height:108px;display:flex;align-items:center;justify-content:space-between;gap:20px}.public-header nav{display:flex;gap:33px}.public-header nav a{font-size:13px;color:#656577}.public-header>.btn{padding:10px 22px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:45px;padding-top:68px;padding-bottom:100px;align-items:center}.hero h1{font-size:76px;line-height:1.04;letter-spacing:-4px;font-weight:750;margin:22px 0}.hero h1>span{color:var(--purple)}.hero-copy>p{color:#818195;font-size:17px;max-width:410px;line-height:1.8}.hero .eyebrow{display:flex;align-items:center;gap:9px;letter-spacing:1.8px;font-size:10px}.hero-actions{display:flex;align-items:center;gap:26px;margin:30px 0 20px}.hero-note{display:flex;gap:17px;flex-wrap:wrap;font-size:10px;color:#88899d}.hero-visual{position:relative;padding:30px 0 45px 12px}.orbit{position:absolute;background:#e9e4fb;z-index:0;border-radius:50%}.orbit.one{inset:0 -35px 0 0;transform:rotate(-15deg);border-radius:45% 55% 47% 53%}.orbit.two{width:390px;height:390px;border:1px solid #d9cff8;background:none;top:4%;left:8%;transform:rotate(40deg);border-radius:40% 60%}.preview-card{position:relative;z-index:1;background:#fff;border-radius:18px;box-shadow:0 24px 70px #44367514;transform:rotate(-3deg);padding:25px 23px}.preview-bar{display:flex;justify-content:space-between;align-items:center;padding-bottom:19px;border-bottom:1px solid var(--line)}.preview-heading{padding:22px 0 15px}.preview-heading>small{font-size:8px;letter-spacing:1px}.preview-heading h2{font-size:22px;margin:8px 0}.preview-heading h2 span{color:#aea2e7}.preview-heading p{font-size:11px;color:var(--muted);margin:0}.preview-stats{display:flex;gap:10px;margin-bottom:12px}.preview-stats>div{width:50%;background:#f8f8fc;padding:13px;border-radius:10px}.preview-stats span{display:block;font-size:9px;color:#8a8a9d}.preview-stats strong{display:block;font-size:23px;margin-top:3px}.preview-stats strong small{font-size:10px;font-weight:500}.preview-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.preview-row:last-child{border:0}.preview-row time{font-size:12px;font-weight:600}.preview-row small{display:block;font-size:9px;font-weight:400}.preview-row .avatar{width:34px;height:34px;border-radius:10px;font-size:10px}.preview-row>div{flex:1}.preview-row strong{font-size:11px}.preview-check{background:#e3f3e8;border-radius:50%;width:24px;height:24px;color:#4a9b77;text-align:center;line-height:24px}.float-card{position:absolute;z-index:3;display:flex;align-items:center;gap:12px;background:#fff;right:-12px;bottom:6px;border-radius:12px;box-shadow:0 12px 45px #3c346a1c;padding:17px 23px;transform:rotate(3deg)}.float-icon{background:#e8f5e9;color:#5c9d77;border-radius:50%;display:grid;place-items:center;width:33px;height:33px}.float-card strong{display:block;font-size:12px}.float-card small{font-size:10px}.scribble{position:absolute;bottom:-34px;left:30px;color:#9d95bc;font-size:14px;font-style:italic;transform:rotate(-6deg)}.benefit-strip{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e9e8f0;border-bottom:1px solid #e9e8f0;padding-top:27px;padding-bottom:27px;gap:15px}.benefit-strip>span:first-child{font-size:8px;letter-spacing:1.4px;color:#9997a8}.benefit-strip p{margin:0;font-size:14px;font-weight:600;color:#747287}.strip-dot{font-size:17px;color:#c0b8df}.features{padding-top:93px;padding-bottom:60px}.section-heading{display:flex;justify-content:space-between;gap:70px;align-items:end;margin-bottom:35px}.section-heading h2{font-size:40px;margin:0;line-height:1.18}.section-heading>p{max-width:340px;color:var(--muted);margin-bottom:5px}.feature-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.feature-card{padding:28px;border:1px solid #e9e6ef;border-radius:18px;background:#fff}.feature-card.featured{background:#efebfa;border-color:#efebfa}.feature-icon{display:grid;place-items:center;width:43px;height:43px;background:#e4ddf7;color:#7b63c5;border-radius:12px;font-size:23px;margin-bottom:25px}.feature-icon.green{background:#e7f4ed;color:#41896f}.feature-icon.orange{background:#fff0df;color:#c08b50}.feature-card h3{font-size:21px;margin-bottom:14px}.feature-card p{font-size:13px;color:#858093;line-height:1.8}.mini-week{display:flex;justify-content:space-between;margin-top:25px}.mini-week>span{display:flex;flex-direction:column;align-items:center;padding:9px 13px;color:#9690a7;font-size:9px}.mini-week strong{font-size:14px;margin-top:5px}.mini-week .selected{background:#7962d8;border-radius:9px;color:white;box-shadow:0 5px 13px #7962d83a}.mini-balance{border:1px solid #eeeef3;padding:15px;border-radius:10px;margin-top:22px}.mini-balance span{font-size:9px;color:var(--muted)}.mini-balance strong{font-size:12px;float:right}.mini-balance i{display:block;height:5px;background:linear-gradient(to right,#87b69a 70%,#eaf1ed 70%);border-radius:8px;margin-top:12px}.stacked-avatars{display:flex;align-items:center;margin-top:30px}.stacked-avatars .avatar{border:3px solid white;width:39px;height:39px;margin-right:-8px;border-radius:50%;font-size:9px}.stacked-avatars>span:last-child{font-size:11px;color:var(--muted);margin-left:20px}.steps{padding-top:45px;padding-bottom:90px}.steps h2{font-size:35px}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:35px}.steps-grid article>span{color:#b6a8ec;font-size:24px;font-weight:600;display:block;margin-bottom:18px}.steps-grid p{font-size:13px;color:var(--muted);max-width:280px}.signup-section{background:#eeebf8;border-radius:24px;padding:55px;display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.signup-section h2{font-size:47px;line-height:1.15}.signup-section>div>p{color:#827b96;line-height:1.8}.signup-detail{margin-top:30px;font-size:12px;color:#8b7cae;display:flex;gap:14px}.signup-detail>span{font-size:23px}.signup-card{background:white;padding:32px;border-radius:18px;box-shadow:0 8px 30px #47357906}.signup-card h3{font-size:24px}.signup-card>p{color:var(--muted)}.signup-card>.btn{width:100%;margin-top:10px}.signup-card>small{display:block;text-align:center;margin-top:12px;font-size:10px}.check-label{flex-direction:row;align-items:center;gap:8px;font-size:11px;font-weight:400}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.public-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-top:45px;padding-bottom:45px}.public-footer .brand{font-size:20px}.public-footer .brand-mark{width:31px;height:32px;font-size:22px}.public-footer>span,.public-footer>a:last-child{font-size:10px;color:#9693a7}.legal{max-width:800px;padding-top:40px;padding-bottom:60px}.legal .brand{margin-bottom:45px}.legal h2{margin-top:30px}.legal p{color:#6b687b}
/* Teacher workspace */
.shell{display:flex;min-height:100vh}.sidebar{width:235px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 20px 20px;display:flex;flex-direction:column;z-index:10;overflow-y:auto}.sidebar>.brand{font-size:24px;margin:0 8px 35px}.sidebar .brand-mark{width:35px;height:36px;font-size:25px}.workspace-label{border:1px solid var(--line);border-radius:10px;display:flex;gap:9px;align-items:center;padding:12px 9px;margin:0 0 28px}.workspace-icon{width:30px;height:30px;display:grid;place-items:center;background:#f2effb;border-radius:8px;font-size:10px;color:#8f7bc9;font-weight:700}.workspace-label>div{flex:1;min-width:0}.workspace-label strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-label small{display:block;font-size:9px}.workspace-label>span:last-child{color:#a6a3b4}.nav-label{font-size:9px;color:#b5b4c2;font-weight:700;letter-spacing:1.3px;padding:0 12px;margin-bottom:12px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;text-align:left;min-height:45px;border-radius:9px;padding:11px 13px;margin-bottom:4px;font-size:12px;color:#9090a3;font-weight:500}.nav-item:hover{background:#f7f6fc;color:#6b59cc}.nav-item.active{background:#efebfb;color:var(--purple);font-weight:650}.nav-item>svg{width:18px;height:18px}.nav-item>b{margin-left:auto;font-size:9px;background:#e4dcf7;padding:2px 7px;border-radius:5px}.sidebar-bottom{margin-top:auto;padding-top:30px}.trial-card{border:1px solid #eeebf6;border-radius:12px;padding:16px;margin-bottom:23px;background:linear-gradient(135deg,#faf9fe,#f6f5fc)}.trial-card>span:first-child{font-size:21px;color:#a493dc;display:block}.trial-card strong{font-size:11px;display:block;margin-top:7px}.trial-card p{font-size:10px;line-height:1.7;color:#9691a9;margin:7px 0 12px}.trial-card .pill{font-size:9px}.profile{display:flex;gap:10px;padding:18px 7px 0;border-top:1px solid var(--line);margin-top:15px}.profile .avatar{width:33px;height:33px;border-radius:50%;font-size:10px}.profile>div{min-width:0}.profile strong{display:block;font-size:10px;max-width:135px;overflow:hidden;text-overflow:ellipsis}.profile small{font-size:9px;display:block}.main-area{margin-left:235px;width:calc(100% - 235px);min-width:0}.topbar{height:74px;background:#ffffff9e;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;color:#9898aa;font-size:10px}.breadcrumb{display:flex;gap:12px}.breadcrumb>span{color:#d0cedb}.topbar>div{display:flex;align-items:center;gap:7px}.top-avatar{background:#eee9f9;color:#a28dc5;border-radius:50%;font-size:9px;padding:9px;margin-left:18px}.saved-dot{width:5px;height:5px;background:#83b79a}.content{max-width:1500px;margin:auto;padding:34px 38px 35px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.page-heading .eyebrow{font-size:8px;color:#b0a9c7;letter-spacing:1.3px;margin-bottom:9px}.page-heading h1{font-size:29px;margin-bottom:8px;letter-spacing:-1px}.page-heading p{font-size:12px;color:#9392a6;margin:0}.wave{color:#bfaedb;font-size:30px;margin-left:7px;display:inline-block;transform:rotate(10deg)}.heading-actions{display:flex;gap:10px;flex-wrap:wrap}.heading-actions .btn{font-size:11px;min-height:37px;padding:10px 13px}.welcome-banner{background:linear-gradient(110deg,#eee8fb 5%,#ece7fa 55%,#e3dbf4);border-radius:16px;min-height:188px;display:flex;justify-content:space-between;position:relative;padding:27px 30px;margin-bottom:24px;overflow:hidden}.welcome-banner .eyebrow{font-size:8px;color:#9787ba;margin-bottom:10px}.welcome-banner h2{font-size:23px;letter-spacing:-.65px;margin-bottom:8px;color:#5d4c85}.welcome-banner p{font-size:11px;color:#a294b9;margin-bottom:17px}.welcome-banner .btn{font-size:10px;min-height:31px;padding:7px 12px}.welcome-banner .btn svg{width:14px;height:14px}.banner-art{position:relative;width:235px;flex-shrink:0}.art-square{width:105px;height:123px;background:#fff9ff;position:absolute;top:0;right:62px;transform:rotate(12deg);border-radius:15px;z-index:2;box-shadow:10px 15px 20px #a895c918;display:flex;align-items:center;flex-direction:column;justify-content:center}.art-square>span{font-size:7px;letter-spacing:2px;color:#b9a3ca;margin-bottom:0}.art-square strong{font-size:57px;font-weight:600;color:#b69cd0;line-height:1.1}.art-square i{position:absolute;bottom:-7px;right:-18px;background:#dbe9d8;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;color:#8ea688;font-style:normal;font-size:25px}.art-orbit{position:absolute;right:10px;width:200px;height:120px;border:1px solid #d3c8e7;border-radius:50%;transform:rotate(-30deg);top:40px}.art-star{font-size:60px;color:#d3c4e8;position:absolute;right:0;top:-15px;transform:rotate(16deg)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin:0 0 26px}.stats.three{grid-template-columns:repeat(3,1fr)}.stat{background:white;border:1px solid var(--line);padding:18px 19px;border-radius:13px;min-width:0}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#9b99ad;margin-bottom:12px}.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;border-radius:9px;flex-shrink:0}.stat-icon svg{width:16px;height:16px}.stat>strong{display:block;font-size:26px;line-height:1.25;letter-spacing:-.7px;font-weight:650;margin-bottom:8px}.stat>small{display:block;font-size:9px;color:#afadbd}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:22px;align-items:start}.panel{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px 23px 17px}.panel-heading h2{font-size:14px;margin:0}.panel-heading p{font-size:10px;color:#b0aabc;margin:6px 0 0}.panel-heading input{width:auto;max-width:180px}.padded .panel-heading{padding:0 0 18px}.padded h2{font-size:17px}.lesson-row{display:flex;align-items:center;gap:14px;padding:19px 23px;border-top:1px solid #f0eff5}.lesson-time{min-width:40px}.lesson-time strong{display:block;font-size:11px;font-weight:650}.lesson-time small{display:block;font-size:9px;margin-top:2px;color:#b2adbe}.lesson-row .avatar{width:37px;height:37px;font-size:10px;border-radius:12px}.lesson-info{flex:1;min-width:0}.lesson-info .link-button{font-size:11px;overflow-wrap:anywhere}.lesson-info>small{display:block;font-size:9px;margin-top:3px}.lesson-meta{text-align:right}.lesson-meta>small{display:block;font-size:9px;margin-top:5px}.lesson-meta .pill{font-size:8px}.lesson-row .icon-btn{width:25px;height:27px;color:#b0a8bd}.lesson-row .icon-btn svg{width:14px;height:14px}.pending-card{display:flex;text-align:left;align-items:center;gap:12px;padding:18px 22px;width:100%;border-top:1px solid #f0eff5}.pending-card:hover{background:#fbfaff}.pending-card>span:nth-child(2){flex:1}.pending-card strong{display:block;font-size:11px}.pending-card small{display:block;font-size:9px;margin-top:3px}.pending-card>svg{width:14px;color:#b8afc5}.panel-bottom-link{display:flex;align-items:center;justify-content:space-between;padding:15px 22px;width:100%;border-top:1px solid var(--line);font-size:10px;color:#9c8bbb;text-align:left}.panel-bottom-link:hover{background:#faf8ff;color:var(--purple)}.panel-bottom-link svg{width:14px;height:14px}.empty{text-align:center;padding:40px 25px;color:var(--muted)}.empty h3{font-size:16px;color:#605a76;margin:15px 0 9px}.empty p{font-size:12px;max-width:320px;margin:0 auto 18px}.empty-icon{display:inline-grid;place-items:center;width:49px;height:49px;border-radius:15px;background:#f0ecf9;color:#b7a8d9}.empty-icon svg{width:22px;height:22px}.onboarding{margin-top:24px;display:flex;align-items:center;gap:12px;border:1px dashed #d8ceed;border-radius:13px;padding:22px}.onboarding>div{flex:1}.onboarding h3{font-size:14px;margin:0 0 6px}.onboarding p{font-size:11px;color:var(--muted);margin:0}.app-footer{padding:12px 38px 25px;display:flex;justify-content:space-between;color:#bfbbcc;font-size:9px;gap:20px}.app-footer a{color:#a7a0ba}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px;font-size:12px;color:var(--muted)}.search{position:relative;max-width:380px;width:100%;margin:0}.search svg{position:absolute;top:12px;left:13px;width:17px;color:#a8a1b7}.search input{padding-left:39px;background:white;font-size:12px}.student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.student-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.student-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 22px 18px}.student-card h2{font-size:18px;margin:0 22px 8px}.student-card>p{font-size:11px;color:var(--muted);margin:0 22px 23px}.student-card-data{margin:0 22px 22px;display:flex;justify-content:space-between;gap:15px}.student-card-data small{display:block;font-size:9px;margin-bottom:6px}.student-card-data strong{font-size:15px}.padded .student-card-top{padding:0 0 20px;justify-content:flex-start}.padded .student-card-top>strong{font-size:12px}dl dt{color:var(--muted);font-size:10px;margin-top:19px}dl dd{margin:5px 0 0;font-size:12px;overflow-wrap:anywhere}.pack-item{padding:17px 0;border-bottom:1px solid var(--line)}.pack-item>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.pack-item strong{font-size:12px}.pack-item>small{font-size:10px}.progress{height:6px;background:#ede8f8;border-radius:8px;margin:15px 0 9px;overflow:hidden}.progress>i{display:block;height:100%;background:#a591dc;border-radius:8px}.simple-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:17px 23px;font-size:12px}.simple-row small{display:block;font-size:10px;margin-top:4px}.padded .simple-row{padding:17px 0}.row-person{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}th{font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:#a5a0b6;font-weight:600;background:#fcfbfe;padding:13px 23px;border-top:1px solid var(--line)}td{padding:15px 23px;border-top:1px solid var(--line)}td small{display:block;white-space:normal;font-size:10px;max-width:220px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.calendar-toolbar>div{display:flex;align-items:center;gap:8px}.calendar-toolbar strong{font-size:12px;margin-left:10px}.calendar-toolbar input,.calendar-toolbar select{width:auto;font-size:11px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:410px}.week-day{border-right:1px solid var(--line);padding:0 7px 15px;min-width:0}.week-day:last-child{border:0}.week-heading{text-align:center;padding:18px 0}.week-heading small{display:block;text-transform:uppercase;font-size:9px;margin-bottom:6px}.week-heading strong{font-size:19px;font-weight:500}.is-today .week-heading strong{background:var(--purple);color:white;border-radius:10px;padding:6px 10px}.calendar-event{display:block;text-align:left;width:100%;border-radius:8px;border-left:3px solid currentColor;padding:11px 8px;margin:0 0 10px;overflow-wrap:anywhere}.calendar-event strong{font-size:8px;display:block;font-weight:500;opacity:.8}.calendar-event span{display:block;font-size:10px;font-weight:650;margin:7px 0 3px}.calendar-event small{font-size:8px;color:inherit;display:block;opacity:.7}.calendar-event em{font-style:normal;display:block;font-size:7px;margin-top:8px;opacity:.8}.calendar-event.cancelled{opacity:.5}.calendar-slot{width:100%;border:1px dashed #8fbea8;border-radius:8px;color:#70a389;font-size:9px;padding:9px 5px;margin-bottom:8px}.add-calendar{border:1px dashed #e4deed;width:100%;height:31px;border-radius:8px;color:#c2b6d5;margin-top:4px}.add-calendar:hover{background:#f5efff}.demo-banner{padding:10px 15px;border-radius:9px;background:#fff2d7;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;font-size:11px;gap:10px}.portal-shell{max-width:1100px;padding:0 25px 45px;margin:auto}.portal-shell .page-heading{margin-top:25px}.portal-shell .stat-top{font-size:12px}.portal-shell .stat>small{font-size:11px}.portal-shell .panel-heading h2{font-size:18px}.portal-shell .help-note{font-size:12px}.mobile-menu{display:none}.saving .saved-dot{background:#e6b573}.saving button[type=submit]{pointer-events:none;opacity:.6}
/* Dialogs and responsive layout */
body{overflow-x:clip}
dialog{border:1px solid var(--line);border-radius:19px;padding:26px;width:min(560px,calc(100% - 30px));max-height:90vh;color:var(--ink);box-shadow:0 20px 100px #28213d30}dialog::backdrop{background:#29243766;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:22px}.modal-head .eyebrow{font-size:8px;margin-bottom:8px}.modal-head h2{font-size:23px;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;margin-top:5px;border-top:1px solid var(--line)}.detail-hero{display:flex;gap:16px;align-items:center;background:#f7f5fc;padding:18px;border-radius:12px;margin-bottom:22px}.detail-hero strong{font-size:12px}.detail-hero p{margin:4px 0 0;color:var(--muted);font-size:11px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:10000;border-radius:12px;background:#34314c;color:white;box-shadow:0 10px 40px #302a3c20;max-width:calc(100% - 30px);padding:14px 22px;font-size:12px;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#9a4657}body:has(dialog[open]){overflow:hidden}
@media(min-width:1500px){.content{padding:45px 55px}.sidebar{width:255px;padding-left:25px;padding-right:25px}.main-area{margin-left:255px;width:calc(100% - 255px)}.page-heading h1{font-size:34px}.welcome-banner{min-height:210px}.stat>strong{font-size:31px}.stat-top{font-size:12px}.stat>small{font-size:11px}.lesson-info .link-button{font-size:13px}.lesson-info>small{font-size:11px}.panel-heading h2{font-size:17px}.pending-card strong{font-size:13px}.pending-card small{font-size:11px}.nav-item{font-size:14px}}
@media(max-width:1150px){.hero h1{font-size:62px}.hero{gap:25px}.hero-visual{padding-left:0}.float-card{right:0}.sidebar{width:210px;padding:25px 15px}.main-area{margin-left:210px;width:calc(100% - 210px)}.content{padding:28px 25px}.topbar{padding:0 25px}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr)}.stats{gap:10px}.stat{padding:15px}.stat>strong{font-size:23px}.student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-row{padding:16px;gap:10px}.lesson-meta .pill{max-width:90px;white-space:normal}.signup-section{gap:40px;padding:40px}.welcome-banner h2{font-size:21px}.banner-art{width:170px}.calendar-toolbar{flex-wrap:wrap}}
@media(max-width:900px){.public-header nav{display:none}.hero{padding-top:35px;grid-template-columns:1fr 1fr;gap:25px}.hero h1{font-size:51px;letter-spacing:-2.5px}.hero-copy>p{font-size:14px}.hero-actions{flex-direction:column;align-items:start;gap:15px}.hero-visual .preview-card{padding:17px 14px}.preview-bar>.pill{display:none}.preview-row{gap:8px}.preview-row .pill{font-size:8px}.preview-heading h2{font-size:19px}.float-card{padding:13px 15px}.benefit-strip{flex-wrap:wrap;justify-content:center}.benefit-strip>span:first-child{width:100%;text-align:center}.section-heading{gap:30px}.section-heading h2{font-size:31px}.feature-grid{gap:12px}.feature-card{padding:22px}.feature-card h3{font-size:18px}.mini-week>span{padding:8px}.signup-section{grid-template-columns:1fr 1fr;gap:25px;padding:30px}.signup-section h2{font-size:36px}.signup-card{padding:23px}.sidebar{width:190px;padding:22px 12px}.sidebar>.brand{font-size:20px}.sidebar>.brand .brand-mark{width:30px;height:31px;font-size:22px}.main-area{margin-left:190px;width:calc(100% - 190px)}.content{padding:25px 20px}.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.page-heading{align-items:start}.heading-actions{max-width:200px;justify-content:flex-end}.page-heading h1{font-size:26px}.welcome-banner{padding:23px}.welcome-banner h2{font-size:20px}.banner-art{width:125px}.art-square{right:12px;top:20px;width:75px;height:92px}.art-square strong{font-size:45px}.art-orbit{right:-15px;width:135px;height:90px}.art-star{font-size:40px;right:-15px;top:8px}.week-grid{overflow-x:auto;grid-template-columns:repeat(7,minmax(93px,1fr))}.topbar>div>span:nth-child(2){display:none}.onboarding{flex-wrap:wrap}.onboarding>div{flex-basis:100%}.stats.three{grid-template-columns:repeat(3,1fr)}.stats.three .stat>strong{font-size:21px}.app-footer{padding:12px 20px 25px}}
@media(max-width:650px){.wrap{padding-left:22px;padding-right:22px}.public-header{height:85px}.public-header .brand{font-size:22px}.public-header>.btn{min-height:35px;font-size:11px;padding:8px 13px}.hero{grid-template-columns:1fr;padding-top:32px;padding-bottom:65px;gap:32px}.hero h1{font-size:63px;line-height:1.02;margin:20px 0}.hero-copy>p{max-width:350px;font-size:15px}.hero-actions{flex-direction:row;align-items:center;gap:17px}.hero-actions>.text-link{font-size:12px}.hero-note{font-size:9px;gap:12px}.hero-visual{padding:25px 12px 35px}.orbit.one{inset:0 -5px 0 0}.orbit.two{width:280px;height:280px;left:10%}.preview-card{max-width:410px;margin:auto}.hero-visual .preview-card{padding:22px}.float-card{right:0;bottom:5px}.scribble{bottom:-19px;font-size:12px}.preview-bar>.pill{display:inline-flex}.preview-row{gap:12px}.preview-row .pill{font-size:9px}.preview-heading h2{font-size:22px}.benefit-strip p{font-size:11px}.benefit-strip{gap:13px;padding-top:20px;padding-bottom:20px}.features{padding-top:60px;padding-bottom:25px}.section-heading{display:block;margin-bottom:25px}.section-heading h2{font-size:32px}.section-heading>p{margin:20px 0 0;font-size:13px}.feature-grid{grid-template-columns:1fr;gap:15px}.feature-card{padding:25px}.feature-card p{font-size:14px}.feature-card h3{font-size:23px}.feature-icon{margin-bottom:18px}.mini-week{max-width:330px}.steps{padding-top:35px;padding-bottom:40px}.steps h2{font-size:30px}.steps-grid{grid-template-columns:1fr;gap:18px;margin-top:25px}.steps-grid article{display:grid;grid-template-columns:40px 1fr;gap:0 17px}.steps-grid article>span{grid-row:1/3}.steps-grid h3{margin:4px 0 10px}.steps-grid p{max-width:none}.signup-section{grid-template-columns:1fr;padding:30px 22px;border-radius:0;gap:30px}.signup-section h2{font-size:40px}.signup-card{padding:25px}.signup-detail{margin-top:15px}.public-footer{flex-wrap:wrap;gap:20px;padding-top:30px;padding-bottom:30px}.public-footer>span{display:none}.sidebar{transform:translateX(-100%);transition:transform .2s;width:240px;box-shadow:20px 0 70px #33284b20}.sidebar.open{transform:translateX(0)}.main-area{margin:0;width:100%}.mobile-menu{display:inline-grid}.topbar{padding:0 18px;height:58px;position:sticky;top:0;z-index:9;background:#fff}.breadcrumb{margin-right:auto;margin-left:12px;font-size:10px}.top-avatar{margin-left:3px}.content{padding:25px 17px}.page-heading{flex-wrap:wrap;gap:18px;margin-bottom:22px}.page-heading h1{font-size:27px}.page-heading p{font-size:12px}.heading-actions{max-width:none;justify-content:flex-start}.heading-actions .btn{font-size:12px;min-height:40px}.welcome-banner{padding:23px 20px;min-height:183px}.welcome-banner h2{font-size:20px;max-width:240px}.welcome-banner p{max-width:235px;line-height:1.6}.welcome-banner .eyebrow{max-width:220px;font-size:7px}.banner-art{width:65px;margin-right:-10px}.art-square{width:65px;height:78px;right:-10px;top:30px}.art-square strong{font-size:34px}.art-square>span{font-size:5px}.art-square i{width:25px;height:25px;font-size:16px;right:-5px}.art-star{font-size:30px;right:-13px;top:5px}.art-orbit{right:-38px;top:58px;width:100px;height:55px}.stats{gap:11px;margin-bottom:20px}.stat{padding:16px 14px;border-radius:12px}.stat-top{font-size:10px;margin-bottom:10px}.stat>strong{font-size:26px}.stat>small{font-size:9px}.stat-icon{width:27px;height:27px}.stats.three{grid-template-columns:1fr 1fr}.stats.three .stat:last-child{grid-column:1/-1}.stats.three .stat:last-child .stat-top{margin-bottom:5px}.dashboard-grid{gap:18px}.lesson-row{padding:16px 13px;gap:9px}.lesson-row .avatar{width:32px;height:32px;border-radius:10px;font-size:9px}.lesson-info .link-button{font-size:12px}.lesson-info>small{font-size:10px}.lesson-time strong{font-size:11px}.lesson-meta .pill{font-size:8px;padding:4px 6px;max-width:77px}.lesson-row .icon-btn{width:22px;padding:4px}.panel-heading{padding:20px 18px 16px}.panel-heading h2{font-size:16px}.panel-heading p{font-size:11px}.pending-card{padding:17px}.pending-card strong{font-size:12px}.pending-card small{font-size:10px}.panel-bottom-link{font-size:12px}.student-grid{grid-template-columns:1fr}.student-card-top{padding:20px 22px}.student-card h2{font-size:21px}.student-card>p{font-size:13px}.student-card-data small{font-size:11px}.student-card-data strong{font-size:18px}.toolbar{flex-wrap:wrap;gap:12px}.toolbar>span{font-size:11px}.search{max-width:none}.simple-row{padding:15px;gap:10px;flex-wrap:wrap}.simple-row strong{font-size:12px}.simple-row .btn{font-size:10px}.row-person .avatar{width:33px;height:33px;font-size:10px}.calendar-toolbar{gap:14px}.calendar-toolbar>div{flex-wrap:wrap}.calendar-toolbar strong{margin:0 0 0 8px;font-size:10px}.calendar-toolbar input{font-size:12px}.calendar-toolbar select{font-size:12px}.week-grid{min-height:390px;grid-template-columns:repeat(7,minmax(110px,1fr))}.calendar-event{padding:12px 8px}.calendar-event strong{font-size:9px}.calendar-event span{font-size:12px}.calendar-event small{font-size:10px}.calendar-event em{font-size:8px}.week-heading small{font-size:11px}.padded{padding:22px}.padded h2{font-size:18px}.app-footer{padding:10px 17px 25px;font-size:8px}.form-grid{gap:12px}.form-grid label{font-size:12px}dialog{padding:23px 20px;max-height:92dvh}.modal-head h2{font-size:23px}input,textarea,select{font-size:16px}.portal-shell{padding:0 17px 30px}.portal-shell .page-heading{margin-top:20px}.portal-shell .public-header{height:80px}.portal-shell .public-header .pill{font-size:9px}.notice{font-size:11px;align-items:start}.demo-banner{font-size:10px}.trial-card{padding:14px}.sidebar-bottom{padding-top:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.sidebar,.topbar,.app-footer,.heading-actions,button{display:none!important}.main-area{margin:0;width:100%}.content{padding:0}.panel{break-inside:avoid}body{background:white}}
.form-error{padding:14px 16px;border:1px solid #e5b5bc;border-radius:10px;background:#fff0f2;color:#842c3e;font-size:14px;line-height:1.5;margin:16px 0 0;}
.student-name-link{font:inherit;color:inherit;text-align:left;border:0;background:none;padding:0;cursor:pointer}.student-name-link:hover{color:var(--primary,#6654df);text-decoration:underline}.student-name-link:focus-visible{outline:2px solid #6654df;outline-offset:4px;border-radius:3px}
#toast.modal-toast{position:sticky;bottom:0;left:auto;transform:none;max-width:100%;width:fit-content;margin:16px auto 0;pointer-events:auto}#toast.modal-toast:not(.show){display:none}
#toast[hidden]{display:none!important}
