:root{--cream:#faf7ef;--ink:#253e3a;--teal:#296456;--coral:#ed805f;--muted:#65766e;--line:#dfe5db;--white:#fffefa;--mint:#e6eddf;--peach:#f5dfcf;--lilac:#ebe5f1;--shadow:0 8px 32px #263d3610}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,summary{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.2;letter-spacing:-.8px}h1{font-size:38px;font-weight:650}h2{font-size:23px;font-weight:600}h3{font-size:17px;font-weight:600}small,.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted);margin-bottom:12px}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:43px;height:43px;border-radius:14px;background:var(--teal);color:white;display:grid;place-items:center;font-size:29px}.brand b{font-size:17px;letter-spacing:-.4px;display:block}.brand small{display:block;font-size:10px;letter-spacing:2px}.button{border:0;border-radius:12px;padding:12px 18px;background:var(--teal);color:white;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px}.button:hover{background:#1b4d40}.button.secondary{border:1px solid var(--line);background:var(--white);color:var(--ink)}.button.secondary:hover{background:var(--mint)}.text-link{color:var(--teal);font-weight:600;border-bottom:1px solid #a9bcad}.skip-link{position:absolute;top:-100px}.skip-link:focus{top:8px;background:white;padding:12px;z-index:100}.preview-banner{padding:10px 24px;text-align:center;background:#f5dfcf;color:#6d4736;font-size:12px;border-bottom:1px solid #e3c3ad}.preview-banner strong{margin-right:8px}.login-header{padding:25px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}.login-layout{max-width:1100px;margin:25px auto 60px;display:grid;grid-template-columns:1fr 1fr;gap:75px;padding:35px 40px;align-items:center}.login-story h1{font-size:58px;letter-spacing:-2px;line-height:1.05;margin-bottom:24px}.login-story h1 em{font-style:normal;color:var(--teal)}.login-story>p{font-size:16px;color:var(--muted);max-width:380px}.music-art{height:220px;position:relative;background:var(--mint);border-radius:100px 100px 30px 30px;margin-top:35px;max-width:380px;display:grid;place-items:center}.piano{display:flex;width:78%;height:115px;gap:3px;background:var(--teal);padding:20px 13px 12px;border-radius:15px;transform:rotate(-8deg);box-shadow:8px 10px 0 #253e3a14}.piano i{flex:1;background:var(--cream);border-radius:0 0 4px 4px;position:relative}.piano i:nth-child(3n+1):after,.piano i:nth-child(3n+2):after{content:'';background:var(--ink);width:12px;height:45px;right:-7px;top:0;position:absolute;z-index:1;border-radius:0 0 3px 3px}.piano i:nth-child(4){background:var(--coral)}.piano i:nth-child(7){background:#dbbc70}.music-art>span{position:absolute;font-size:45px;color:var(--coral)}.music-art>span:first-child{top:0;left:15px;transform:rotate(-15deg)}.music-art>span:last-child{bottom:0;right:10px}.login-card{background:var(--white);border:1px solid var(--line);padding:35px;border-radius:23px;box-shadow:var(--shadow)}.login-card h2{font-size:27px}.login-card .button{width:100%;margin-top:8px}.login-card .sample-link{display:block;text-align:center;margin-top:22px;font-size:13px}.login-note{font-size:12px;padding:12px 14px;border-radius:10px;background:var(--mint);margin:20px 0}.status{font-size:13px;margin-top:14px;color:#87452c}.login-footer{text-align:center;color:var(--muted);font-size:12px;padding:15px}.form-stack{display:grid;gap:17px}label{font-size:12px;font-weight:600;display:flex;flex-direction:column;gap:7px}input,select,textarea{width:100%;min-width:0;background:#fafbf6;color:var(--ink);border:1px solid #cbd6c9;border-radius:10px;padding:12px 13px;font-size:14px}input:focus,textarea:focus,select:focus{outline:2px solid var(--teal);outline-offset:2px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--teal);margin:0}.checkbox{flex-direction:row;align-items:flex-start;font-weight:400;gap:10px}.field-hint{font-size:11px;font-weight:400;color:var(--muted)}.error{color:#974c37}.role-picker{max-width:750px;margin:70px auto;text-align:center;padding:25px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:35px 0}.role-card{text-align:left;padding:30px;border-radius:20px;border:1px solid var(--line);background:var(--white)}.role-card .role-icon{font-size:40px;display:block;margin-bottom:25px}.role-card p{color:var(--muted)}.app-layout{display:grid;grid-template-columns:235px 1fr;min-height:calc(100vh - 40px)}.sidebar{padding:30px 20px;background:#f0f3e9;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:35px}.sidebar .brand b{font-size:16px}.sidebar nav{display:grid;gap:7px}.nav-item{text-align:left;border:0;border-radius:12px;padding:13px 15px;background:transparent;color:var(--muted);font-weight:500;display:flex;gap:13px;align-items:center}.nav-item.active{background:var(--teal);color:white}.nav-item:not(.active):hover{background:#dfe8d9}.nav-icon{width:19px;text-align:center;font-size:18px}.sidebar-bottom{margin-top:auto;display:grid;gap:15px;font-size:12px;color:var(--muted)}.profile{display:flex;align-items:center;gap:10px;border-top:1px solid #d2ddcc;padding-top:18px}.avatar{width:37px;height:37px;background:#dbe7d2;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600}.profile b{display:block;color:var(--ink)}.profile small{font-size:10px}.workspace{min-width:0;padding:32px 40px 60px;max-width:1550px;width:100%;margin:auto}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.workspace-header h1{margin-bottom:0;font-size:32px}.workspace-header .eyebrow{margin-bottom:7px}.header-tools{display:flex;gap:10px;align-items:center}.child-select{width:auto;min-width:155px;background:var(--white);padding:10px 14px}.avatar.header-avatar{background:var(--peach);width:43px;height:43px}.welcome{padding:30px;background:var(--mint);border-radius:20px;display:flex;justify-content:space-between;gap:25px;align-items:center;margin-bottom:24px}.welcome h2{font-size:29px;margin-bottom:9px}.welcome p{color:var(--muted);max-width:500px;margin-bottom:0}.next-note{padding:18px 23px;border-radius:14px;background:#fffefa9c;min-width:200px}.next-note small{display:block;font-size:10px;letter-spacing:1.5px}.next-note b{display:block;margin:7px 0;font-size:17px}.next-note p{font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px}.stat{background:var(--white);border:1px solid var(--line);padding:22px;border-radius:16px}.stat span{font-size:12px;color:var(--muted)}.stat b{font-size:31px;display:block;margin:5px 0}.stat small{font-size:11px}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:23px}.panel{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:25px;min-width:0}.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:23px}.panel-head h2{font-size:18px;margin:0}.panel-head button{background:none;border:0;color:var(--teal);font-size:12px;font-weight:600;padding:5px}.lesson-row{display:flex;align-items:center;gap:17px;border-bottom:1px solid var(--line);padding:17px 0}.lesson-row:last-child{border-bottom:0}.date-tile{background:var(--mint);border-radius:11px;padding:9px;min-width:54px;text-align:center}.date-tile small{display:block;font-size:9px;text-transform:uppercase}.date-tile b{display:block;font-size:22px;line-height:1.2}.lesson-info{flex:1;min-width:0}.lesson-info b{display:block}.lesson-info small{display:block;font-size:11px;margin-top:5px}.badge{font-size:10px;font-weight:600;padding:5px 9px;background:var(--mint);border-radius:30px;white-space:nowrap;display:inline-block}.badge.completed{background:#dcebdc}.badge.no-show{background:var(--peach)}.badge.cancelled{background:#e8e9e5}.badge.rescheduled{background:var(--lilac)}.practice-card{background:#faf2e8;padding:20px;border-radius:12px}.practice-card h3{font-size:19px;margin:10px 0}.practice-card p{font-size:13px;color:var(--muted)}.practice-card .eyebrow{color:#936749}.teacher-note{margin-top:22px;font-size:13px}.teacher-note small{display:block;font-size:10px;margin-bottom:8px;letter-spacing:1px}.contact-card{padding:20px;background:var(--lilac);border-radius:13px;margin-top:20px}.contact-card p{font-size:12px;color:var(--muted);margin:7px 0 15px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.toolbar h2{margin:0}.toolbar p{font-size:12px;color:var(--muted);margin:7px 0 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:570px}th{text-align:left;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:600;padding:14px 12px;border-bottom:1px solid var(--line)}td{padding:16px 12px;border-bottom:1px solid var(--line);font-size:13px}tr:last-child td{border-bottom:0}td small{display:block;font-size:11px}td .button{padding:7px 11px;font-size:11px;min-height:34px}.amount-positive{color:var(--teal)}.amount-negative{color:#a1583b}.empty{padding:35px;text-align:center;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.student-card .avatar{width:48px;height:48px;margin-bottom:18px}.student-card h3{font-size:20px}.student-card p{font-size:12px;color:var(--muted)}.student-card .button{font-size:12px}.calendar-controls{display:flex;align-items:center;gap:12px;margin-bottom:22px;flex-wrap:wrap}.calendar-controls h3{margin:0 auto 0 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;overflow-x:auto}.calendar-day{min-height:220px;background:#f5f7ef;border:1px solid var(--line);border-radius:10px;padding:9px;min-width:110px}.calendar-day>small{font-size:10px;display:block}.calendar-day>b{font-size:19px;display:block;margin:5px 0 14px}.calendar-lesson{width:100%;border:0;background:#dce8d5;border-left:3px solid var(--teal);text-align:left;border-radius:6px;padding:10px 7px;margin:0 0 9px;font-size:11px}.calendar-lesson small{display:block;color:var(--ink);font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.span2{grid-column:1/-1}.settings-note{padding:20px;border-radius:12px;background:var(--mint);font-size:13px;margin-bottom:25px}.reminder{border-bottom:1px solid var(--line);padding:22px 0;display:flex;gap:25px;justify-content:space-between;align-items:center}.reminder:last-child{border:0}.reminder p{font-size:13px;color:var(--muted);margin:7px 0}.reminder .button{white-space:nowrap}.sample-notice{padding:12px 15px;border-radius:10px;background:var(--peach);font-size:12px;margin-bottom:20px}.activity-row{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px}.activity-row:last-child{border:0}.lesson-note{margin-top:25px}dialog{width:min(570px,92vw);border:1px solid var(--line);border-radius:20px;padding:35px;background:var(--cream);color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:#173b33aa}.dialog-close{position:absolute;right:16px;top:10px;font-size:27px;background:none;border:0;color:var(--ink)}dialog h2{margin-top:10px}dialog .form-grid{gap:15px}dialog .actions{display:flex;gap:12px;margin-top:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:12px;padding:13px 20px;z-index:20;max-width:90vw;display:none}#toast.visible{display:block}.mobile-brand{display:none}.privacy-copy{font-size:12px;color:var(--muted);margin-top:24px}.setup-list{margin:0;padding-left:20px;color:var(--muted);font-size:13px}.setup-list li{margin:12px 0}.back-link{font-size:13px;color:var(--muted)}.login-switch{font-size:12px;color:var(--muted);margin-top:22px;text-align:center}.portal-intro{color:var(--muted)}
@media(min-width:1450px){.workspace{padding:40px 60px}}@media(max-width:1100px){.app-layout{grid-template-columns:200px 1fr}.workspace{padding:25px}.sidebar{padding:25px 15px}.sidebar .brand b{font-size:14px}.cards{grid-template-columns:repeat(2,1fr)}.login-layout{gap:40px}.login-story h1{font-size:49px}.welcome{padding:25px}.dashboard-grid{grid-template-columns:1fr}.stats{gap:12px}.stat{padding:18px}}@media(max-width:750px){.app-layout{display:block}.sidebar{padding:17px 20px;gap:18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;overflow-x:auto;gap:5px}.nav-item{white-space:nowrap;padding:10px 13px;font-size:12px}.sidebar-bottom{display:none}.sidebar .brand b{font-size:17px}.workspace{padding:25px 18px 45px}.workspace-header{gap:10px;align-items:flex-start}.workspace-header h1{font-size:27px}.header-tools{flex-direction:column;align-items:flex-end}.header-avatar{display:none!important}.child-select{min-width:120px;max-width:145px;font-size:12px}.welcome{display:block;padding:22px}.welcome h2{font-size:25px}.next-note{margin-top:22px;min-width:0}.stats{grid-template-columns:1fr}.stat{display:grid;grid-template-columns:1fr auto;gap:0 20px;padding:17px 20px}.stat b{grid-column:2;grid-row:1/3;font-size:27px;margin:0;align-self:center}.stat small{grid-row:2}.panel{padding:20px}.lesson-row{gap:12px;flex-wrap:wrap}.lesson-row .badge{margin-left:auto}.cards{grid-template-columns:1fr 1fr;gap:12px}.student-card{padding:18px}.student-card h3{font-size:17px}.toolbar{align-items:flex-start}.toolbar h2{font-size:21px}.toolbar .button{font-size:12px;padding:10px 12px}.preview-banner{padding:10px 15px;text-align:left}.login-header{padding:20px}.login-header .back-link{font-size:11px}.login-layout{grid-template-columns:1fr;padding:15px 22px;gap:25px;margin:10px auto 35px;max-width:500px}.login-story h1{font-size:42px;margin:0 0 15px}.login-story>p{font-size:14px}.music-art{display:none}.login-card{padding:25px}.login-story .eyebrow{margin-bottom:10px}.role-picker{margin:35px auto}.role-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.reminder{display:block}.reminder .button{margin-top:12px}.calendar-grid{grid-template-columns:repeat(7,125px)}.lesson-info{min-width:130px}.calendar-day{min-height:190px}}@media(max-width:390px){.cards{grid-template-columns:1fr}.workspace-header{display:block}.header-tools{align-items:flex-start;margin-top:16px}.login-header .brand b{font-size:14px}.login-story h1{font-size:37px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
