:root{--ink:#193c40;--muted:#6b7d7b;--paper:#f6f7f2;--line:#e2e8e0;--accent:#d7ee83;--dark:#173e3c;--white:#fff;--radius:20px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 'Segoe UI',Arial,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid var(--dark);border-radius:11px;background:var(--dark);color:white;text-decoration:none;padding:12px 20px;font-weight:600;cursor:pointer;min-height:46px}button:hover,.button:hover{background:#2c5853}.secondary{background:transparent;color:var(--ink);border-color:#cad5ca}.secondary:hover{background:#e8eee3}.text-button{background:transparent;border:0;color:var(--muted);padding:0;min-height:34px}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);background:#fff;padding:36px 25px;display:flex;flex-direction:column}.brand{font-size:35px;font-weight:700;letter-spacing:-1.8px;text-decoration:none;position:relative;padding-left:54px;line-height:1.2}.brand-mark{position:absolute;left:0;top:2px;background:var(--dark);color:var(--accent);width:43px;height:43px;border-radius:12px;font-size:32px;line-height:35px;text-align:center}.brand-caption{display:block;font-size:9px;letter-spacing:1px;margin-top:8px;color:var(--muted);text-transform:uppercase}.nav-label{font-size:10px;letter-spacing:1.7px;color:var(--muted);margin:54px 10px 15px}.sidebar nav{display:grid;gap:7px;margin-top:20px}.sidebar nav a{padding:12px 14px;display:flex;gap:15px;text-decoration:none;font-size:14px;border-radius:10px}.sidebar nav a:hover,.sidebar nav a[aria-current]{background:#edf2e8}.sidebar-bottom{margin-top:auto;padding:28px 10px 0;border-top:1px solid var(--line);font-size:13px}.sidebar-bottom small,.sidebar-bottom strong,.sidebar-bottom>a{display:block}.sidebar-bottom small{color:var(--muted);margin:4px 0 12px}.avatar{float:left;margin:0 10px 5px 0;background:#eee4d6;width:34px;height:34px;border-radius:50%;text-align:center;padding-top:5px}.workspace{margin-left:246px}.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;padding:0 46px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.status-dot:before{content:'●';color:#72a47c;margin-right:9px}main{max-width:1300px;margin:auto;padding:38px 46px 70px}h1{font-size:36px;line-height:1.2;letter-spacing:-1.3px;margin:9px 0 14px;font-weight:600}h2{font-size:21px;line-height:1.3;letter-spacing:-.45px;margin:0 0 10px}h3{font-size:16px;margin:3px 0 6px;font-weight:600}p{margin:9px 0}.accent{color:#89aa3f}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;text-transform:uppercase}.muted,small{color:var(--muted)}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:24px}.page-heading{margin-bottom:34px}.page-heading .button{flex-shrink:0}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 18px}.section-heading h2{margin:0}.section-heading>a,.section-heading>span{font-size:12px}.student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}.student-card{max-width:650px}.student-card h2{margin:20px 0 6px}.student-card h2 a{text-decoration:none}.student-card .muted{font-size:12px}.student-avatar{display:flex;align-items:center;justify-content:center;width:47px;height:47px;border-radius:15px;background:#eee7db;font-size:22px;font-weight:600}.pill{display:inline-block;padding:4px 10px;border-radius:7px;background:#eef1eb;font-size:11px;font-weight:600}.balance-row{display:grid;grid-template-columns:1fr 1fr 1fr;padding:20px 0 15px;margin-top:20px;border-top:1px solid var(--line)}.balance-row small{font-size:11px;display:block}.balance-row strong{font-size:29px;font-weight:500;display:block}.covered,.low-balance{font-size:11px}.covered{color:#49714e}.low-balance{color:#986821}.card-link{display:flex;justify-content:space-between;text-decoration:none;border-top:1px solid var(--line);padding-top:17px;margin-top:20px;font-size:13px;font-weight:600}.lesson-list{display:grid;gap:12px}.lesson{display:flex;align-items:center;gap:22px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px 25px;border-left:4px solid #bfd4be}.date-tile{min-width:59px;text-align:center;border-right:1px solid #dbe4d8;padding-right:22px}.date-tile strong{font-size:28px;line-height:1.2;display:block;font-weight:500}.date-tile span{font-size:11px}.lesson-info{flex:1}.lesson-info p{margin:4px 0 0}.lesson-date{font-size:11px;color:var(--muted);margin-bottom:4px}.funded{background:#fcfdf9}.funded-pill{background:#ebf1df;color:#4c6842}.lesson-actions{display:flex;flex-direction:column;gap:10px;font-size:12px}.unfunded{background:#f0f1ed;border-left-color:#bec4ba}.unfunded .lesson-date{text-decoration:line-through}.locked{font-size:12px;color:#677168}.completed{background:#e3f1e4;border-left-color:#4d925e}.student_no_show{background:#f9e7e4;border-left-color:#be5b4c}.teacher_no_show{background:#eee8f6;border-left-color:#8d6eb2}.canceled_agreed{background:#384645;color:#fff;border-left-color:#182724}.canceled_agreed .lesson-date,.canceled_agreed .date-tile{color:#d8e2dc}.canceled_agreed .pill{color:#233531}.rescheduled{border-left-color:#879ba7}.warning{color:#a65c19;font-size:12px;font-weight:600}.ticket-total{background:var(--accent);padding:20px 24px;border-radius:16px;white-space:nowrap;font-size:16px}.ticket-total strong{font-size:32px;margin-left:10px}.ticket-total small{display:block;color:#3c522e;font-size:11px}.back{font-size:12px;display:inline-block;margin-bottom:25px}.toolbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:20px 0}.toolbar>a:not(.button){font-size:12px}.purchase-panel{background:var(--dark);color:#fff;padding:26px 30px;border-radius:20px;display:flex;align-items:center;gap:25px;flex-wrap:wrap}.purchase-panel h2{font-size:23px}.purchase-panel p{color:#c6d9cc;font-size:12px}.purchase-panel form{display:flex;align-items:center;gap:10px;margin-left:auto}.purchase-panel form label{position:absolute;width:1px;height:1px;overflow:hidden}.purchase-panel button{background:var(--accent);color:var(--dark);border-color:var(--accent)}.purchase-panel small{color:#c6d9cc;width:100%;font-size:11px}.purchase-panel select{width:auto}.form-panel{max-width:650px}.form-panel form>p{margin:0 0 22px}label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}input,select,textarea{width:100%;padding:12px;border:1px solid #cbd7cc;border-radius:9px;background:#fcfdfb;color:var(--ink);min-height:44px}input[type=checkbox]{width:20px;min-height:20px;vertical-align:middle}textarea{height:100px;resize:vertical}.helptext{display:block;font-size:11px;color:var(--muted);margin-top:6px}.helptext ul{padding-left:18px}.errorlist{color:#a2322a;font-size:13px;padding-left:20px}.form-foot{border-top:1px solid var(--line);padding-top:24px;margin-top:30px;font-size:13px}.notice{padding:16px 20px;background:#edf1dd;border:1px solid #dce5bf;border-radius:12px;margin:15px 0;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px}.table-wrap{padding:0;overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}td,th{padding:17px 22px;border-bottom:1px solid var(--line)}th{font-size:11px;color:var(--muted);font-weight:500}tr:last-child td{border:0}.empty{padding:50px;text-align:center;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.metric-grid small{display:block;font-size:11px}.metric-grid strong{display:block;margin-top:12px;font-size:24px;font-weight:500}.filter-bar{display:flex;align-items:end;gap:20px}.filter-bar label{flex:1;margin:0}.application{margin-bottom:18px}.application .button{margin-top:15px}.welcome{max-width:720px;margin:50px auto;padding:55px}.large-symbol{font-size:70px;color:#7f9a5f}.prose{max-width:800px;padding:36px}.prose h2{margin-top:30px}.prose h2:first-child{margin-top:0}footer{padding:24px 46px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.skip{position:fixed;top:-100px;left:10px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}:focus-visible{outline:3px solid #8ca947;outline-offset:4px}@media(min-width:1500px){main{padding-top:55px}}@media(max-width:1050px){.sidebar{width:205px;padding:30px 16px}.workspace{margin-left:205px}main{padding:30px 25px}.topbar{padding:0 25px}h1{font-size:30px}.heading-row{flex-wrap:wrap}.metric-grid{grid-template-columns:repeat(2,1fr)}.purchase-panel form{margin-left:0}}@media(max-width:720px){.sidebar{position:static;width:100%;padding:18px 20px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:29px;align-self:flex-start}.brand-mark{height:38px;width:38px;font-size:29px}.brand-caption{font-size:8px}.nav-label,.sidebar-bottom,.topbar{display:none}.sidebar nav{display:flex;overflow:auto;gap:5px;margin-top:20px}.sidebar nav a{padding:9px 12px;white-space:nowrap;font-size:12px}.workspace{margin:0}main{padding:28px 18px 45px}h1{font-size:29px;letter-spacing:-.8px}.page-heading{margin-bottom:25px}.heading-row{gap:15px}.page-heading .button{font-size:12px;min-height:40px;padding:8px 14px}.student-grid{grid-template-columns:1fr}.panel{padding:22px}.section-heading h2{font-size:19px}.section-heading{align-items:baseline}.lesson{padding:17px 14px;gap:14px;flex-wrap:wrap}.date-tile{padding-right:12px;min-width:48px}.lesson-info{min-width:190px}.lesson-actions{width:100%;flex-direction:row;border-top:1px solid var(--line);padding-top:12px;gap:22px}.lesson-date{font-size:10px}.ticket-total{width:100%;padding:14px 20px}.ticket-total strong{font-size:28px}.purchase-panel{padding:24px 20px;gap:15px}.purchase-panel form{width:100%;gap:8px}.purchase-panel select{flex:1;min-width:0}.purchase-panel button{padding:12px}.filter-bar{flex-wrap:wrap;gap:12px}.filter-bar label{min-width:110px}.filter-bar button{width:100%}.metric-grid{gap:10px}.metric-grid .panel{padding:17px}.metric-grid strong{font-size:19px}.table-wrap{padding:0}td,th{padding:13px 15px;white-space:nowrap}.welcome{margin:0;padding:28px}.toolbar{gap:12px}.toolbar .button{font-size:12px}.prose{padding:25px}footer{padding:20px;display:block}footer a{display:block;margin-top:8px}.notice{padding:14px;font-size:12px}.form-panel{padding:22px}}
