@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap";.portal-shell .portal-shortcuts{z-index:20;background:var(--surface,#fff);border:1px solid var(--line);white-space:normal;border-radius:14px;flex-wrap:wrap;gap:8px;min-width:0;margin:0 0 20px;padding:10px;display:flex;position:sticky;top:8px;overflow:visible;box-shadow:0 4px 16px #24342d0c}.portal-shell .portal-shortcuts a{border:1px solid var(--line);background:var(--sage,#e9ece3);min-width:0;min-height:46px;color:var(--green);text-align:center;white-space:normal;border-radius:9px;flex:130px;justify-content:center;align-items:center;gap:7px;padding:10px 12px;font-size:14px;font-weight:700;line-height:1.3;text-decoration:none;display:flex}.portal-shell .portal-shortcuts a span{overflow-wrap:anywhere;min-width:0;max-width:100%}.portal-shell .portal-shortcuts a:hover{background:var(--lime);border-color:var(--green)}.portal-shell .portal-shortcuts a:focus-visible{outline:3px solid var(--green);outline-offset:2px}.portal-shortcuts svg{flex-shrink:0}.portal-jump-target{scroll-margin-top:100px}.portal-jump-target:focus-visible{outline:3px solid var(--green);outline-offset:4px}@media (max-width:600px){.portal-shell .portal-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px;display:grid;top:4px}.portal-shell .portal-shortcuts a{flex-direction:column;gap:6px;min-height:70px;padding:10px 6px;font-size:13px}.portal-jump-target{scroll-margin-top:200px}}@media (max-width:359px){.portal-shell .portal-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-jump-target{scroll-margin-top:280px}}@media (prefers-reduced-motion:no-preference){html:has(.portal-shortcuts){scroll-behavior:smooth}}:root{--green:#254d3c;--ink:#25392e;--muted:#6e786c;--line:#dce3d6;--bg:#f4f5ee;--lime:#dbeaac}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:15px DM Sans,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;padding:11px 15px}button:hover{border-color:var(--green);background:#edf3e6}button:disabled{opacity:.5;cursor:default}input,select,textarea{width:100%;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:7px;padding:12px}:is(button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible){outline-offset:2px;outline:3px solid #9eb671}header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:23px 5%;display:flex}.brand{letter-spacing:1px;align-items:center;gap:14px;font-size:13px;font-weight:700;display:flex}.brand small{color:var(--muted);margin-top:5px;font-size:9px;display:block}.mark{background:var(--green);color:var(--lime);border-radius:50%;place-items:center;width:50px;height:50px;display:grid}.cloud{color:var(--green);font-size:12px}main{max-width:1400px;margin:auto;padding:32px 5%}.intro{justify-content:space-between;align-items:center;gap:20px;display:flex}.eyebrow{color:var(--green);letter-spacing:2px;font-size:11px;font-weight:700}h1{letter-spacing:-2px;margin:7px 0;font:800 clamp(38px,5vw,58px) Manrope,sans-serif}h1 span{color:#839455}p{color:var(--muted);line-height:1.6}h2{margin:8px 0;font:800 24px Manrope,sans-serif}h3{margin:0 0 6px;font:700 17px Manrope,sans-serif}.primary,.active{background:var(--green)!important;border-color:var(--green)!important;color:#fff!important}nav{border-bottom:1px solid var(--line);gap:6px;margin-bottom:24px;padding:20px 0;display:flex}nav button{background:0 0;border:0}.metrics{grid-template-columns:repeat(4,1fr);gap:13px;margin:24px 0;display:grid}.metrics>div{border:1px solid var(--line);background:#fff;border-radius:12px;padding:19px}.metrics span{color:var(--muted);margin-bottom:10px;font-size:11px;display:block}.metrics strong{font:800 clamp(20px,2.8vw,32px) Manrope,sans-serif}.toolbar{border:1px solid var(--line);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:18px;padding:19px;display:flex}.toolbar label{flex:1}.toolbar input{min-width:140px}.switch{gap:6px;margin-bottom:1px;display:flex}.switch button{padding:13px;font-size:12px}label{font-size:12px;font-weight:600;display:block}.sectiontitle{justify-content:space-between;align-items:center;gap:15px;margin:27px 0 18px;display:flex}.sectiontitle p{margin:5px 0;font-size:13px}.sectiontitle>span{color:var(--muted);font-size:12px}.roster{flex-direction:column;gap:10px;display:flex}.studentcard{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:18px;padding:20px;display:flex}.studentcard.checked{background:#edf3e7;border-color:#bbcea4}.avatar{color:var(--green);background:#e9eedd;border-radius:50%;flex-shrink:0;place-items:center;width:47px;height:47px;font-weight:700;display:grid}.studentinfo{flex:1;min-width:0}.studentinfo p{margin:3px 0;font-size:12px}.badges{flex-wrap:wrap;gap:6px;display:flex}.badge{color:#5a6a4b;background:#eff1e9;border-radius:5px;padding:5px 8px;font-size:11px;display:inline-block}.badge.member{color:#295337;background:#d9e9cc}.badge.trial{color:#79662c;background:#f3eccf}.badge.unpaid{color:#8e4c30;background:#f7e0d5}.buttons{flex-wrap:wrap;gap:8px;display:flex}.buttons button{font-size:12px}.empty{text-align:center;border:1px dashed #b9c7b1;border-radius:13px;margin:20px 0;padding:48px 20px}.help{margin-top:20px;font-size:12px;line-height:1.7}.tablewrap{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:15px}th{text-transform:uppercase;color:var(--muted);letter-spacing:.6px;background:#edf1e7;font-size:11px}td button{padding:8px;font-size:11px}footer{color:var(--muted);margin:35px 0;font-size:11px}.settingsgrid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:13px;padding:25px}.panel p,.panel li{font-size:13px;line-height:1.8}.panel h3{margin-top:28px}fieldset{border:1px solid var(--line);border-radius:8px;margin:20px 0;padding:15px}legend{padding:0 5px;font-size:12px;font-weight:700}.formgrid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.filebutton{cursor:pointer;border:1px solid var(--line);border-radius:9px;align-items:center;padding:11px 15px;font-size:12px;font-weight:400;display:inline-flex;position:relative}.filebutton input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.overlay{z-index:80;background:#152b20aa;justify-content:center;align-items:flex-start;padding:5vh 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:#fff;border-radius:18px;width:100%;max-width:520px;padding:29px;box-shadow:0 20px 90px #0003}.close{float:right;border:0;padding:0 9px;font-size:25px}.modal form>label{margin:16px 0}.modal form>.primary{width:100%;margin-top:15px}.checkbox{align-items:center;gap:9px;display:flex;margin:10px 0!important}.checkbox input{width:18px;height:18px;accent-color:var(--green);margin:0}textarea{resize:vertical;min-height:75px}.status{color:var(--green);font-size:12px}.alert{z-index:100;color:#75402c;background:#fae4da;border:1px solid #d9a38b;border-radius:10px;max-width:900px;margin:auto;padding:14px 18px;position:fixed;bottom:20px;left:5%;right:5%;box-shadow:0 5px 30px #0002}.alert button,.alert a{color:#75402c;margin-left:12px;font-size:12px}@media (max-width:800px){header{padding:17px}.brand,.cloud{font-size:10px}.mark{width:40px;height:40px}main{padding:24px 16px}.metrics{grid-template-columns:1fr 1fr}.settingsgrid{grid-template-columns:1fr}nav{white-space:nowrap;overflow:auto}nav button{flex-shrink:0;font-size:12px}.toolbar{align-items:stretch;gap:12px}.switch{width:100%}.switch button{flex:1}.studentcard{flex-wrap:wrap;gap:12px;padding:16px}.studentcard>button,.studentcard>.buttons{width:100%}.studentcard>button{min-height:45px}.studentinfo h3{font-size:16px}.sectiontitle{flex-wrap:wrap;align-items:flex-start}.intro .primary{white-space:nowrap;padding:12px;font-size:12px}.intro p:not(.eyebrow){font-size:13px}.overlay{padding-top:16px}.modal{padding:23px}}@media print{header,nav,.intro>button,.toolbar,.buttons,button,footer{display:none}main{padding:0}.metrics{grid-template-columns:repeat(4,1fr)}body{background:#fff}}.studentportal{max-width:1100px}.studentportal>h1{font-size:clamp(32px,4vw,48px)}.portaltools{justify-content:flex-end;align-items:center;gap:10px;margin:25px 0;display:flex}.portaltools span{color:var(--muted);margin-right:auto;font-size:12px}.portalclasses{grid-template-columns:1fr 1fr;gap:20px;display:grid}.portalbalance{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:25px 0;padding:21px 0}.portalbalance strong{color:var(--green);font:800 40px Manrope,sans-serif;display:block}.portalbalance span{color:var(--muted);font-size:13px}.nextclass{margin:24px 0;font-size:13px}.nextclass span{color:var(--muted);margin-bottom:7px;font-size:11px;display:block}.checkbutton{width:100%;min-height:50px}.attendancepanel{margin-top:24px}.portalcontact{text-align:center;padding:35px 0}.portalcontact a{color:var(--green)}.portalcontact p{font-size:13px}.portalerror{color:#804b31;background:#f7e1d7;border-radius:10px;margin:20px 0;padding:16px}.success{color:var(--green);background:#e1efcf;border-radius:10px;margin:20px 0;padding:16px}.linkbutton{border:1px solid var(--line);color:var(--green);border-radius:9px;padding:12px 16px;font-size:13px;text-decoration:none;display:inline-block}.portalwelcome{max-width:650px;margin:30px 0}.issued{background:#edf3e7;margin:20px 0}.issued input{font-size:12px}.issued .buttons{margin-top:14px}.portalroster{margin-top:20px}@media (max-width:800px){.portalclasses{grid-template-columns:1fr}.portaltools{flex-wrap:wrap}.portaltools span{width:100%;margin-bottom:8px}.studentportal .panel{padding:22px}.studentportal h2{font-size:22px}.portalbalance strong{font-size:35px}}.portal-shell{--green:#2d482d;--ink:#273426;--muted:#5f6b5b;--line:#dce2d4;--bg:#f5f4ee;--lime:#e4e9d5;background:var(--bg);min-height:100vh;font-size:17px}.portal-shell .portal-header{background:#faf9f6;border-bottom:0;gap:24px;max-width:1300px;margin:auto;padding:14px 7%}.portal-logo-frame{flex-shrink:0;width:300px;height:150px;display:block;position:relative;overflow:hidden}.portal-logo-frame img{width:565px;max-width:none;height:auto;position:absolute;top:-82px;left:-132px}.portal-header-label{letter-spacing:1.5px;color:var(--green);border:1px solid var(--line);border-radius:30px;align-items:center;gap:8px;padding:12px 15px;font-size:11px;font-weight:700;display:flex}.portal-shell .studentportal{max-width:1300px;padding:18px 7% 0}.portal-hero{background:var(--green);color:#faf9f2;border-radius:18px;justify-content:space-between;align-items:center;gap:26px;padding:40px 42px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #2d482d10}.portal-hero:after{content:"";pointer-events:none;border:1px solid #eff5df20;border-radius:50%;width:340px;height:340px;position:absolute;top:-90px;right:-210px}.portal-shell .portal-hero h1{letter-spacing:-1.6px;margin:12px 0;font-family:Manrope,sans-serif;font-size:clamp(29px,4vw,46px);font-weight:700;line-height:1.2}.portal-hero h1 span{color:#cbd4ac}.portal-hero p{color:#e2e8d9;margin-bottom:0;font-size:16px}.portal-hero .eyebrow{color:#d4ddbf;letter-spacing:2.5px;margin:0;font-size:10px}.portal-hero-note{letter-spacing:2px;color:#d5dfc3;border-left:1px solid #e5eddd45;flex-direction:column;flex-shrink:0;gap:11px;padding:8px 0 8px 24px;font-size:10px;display:flex}.portal-shell .panel{border-color:var(--line);border-radius:16px;box-shadow:0 5px 18px #273d2110}.portal-shell .panel h2{letter-spacing:-.6px;font-size:25px;font-weight:700}.portal-shell .panel p{color:var(--muted);font-size:16px}.portal-shell .panel .eyebrow{letter-spacing:1.8px;font-size:10px;font-weight:700}.portal-shell .portaltools{margin:21px 0;padding:8px 0}.portal-shell .portaltools span{font-size:14px}.portal-shell .portaltools button{background:0 0;align-items:center;gap:7px;min-height:44px;font-size:13px;display:flex}.portal-shell .classpanel{border-top:4px solid var(--green);padding:29px;position:relative}.class-card-top{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.class-icon,.welcome-icon{width:48px;height:48px;color:var(--green);background:#ecf0e3;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.class-pill{letter-spacing:1.3px;color:var(--green);border:1px solid #d9e0cf;border-radius:20px;padding:7px 10px;font-size:9px;font-weight:700}.portal-shell .classpanel>h2{margin:6px 0 15px}.portal-shell .classpanel>.eyebrow{display:none}.class-meta p{align-items:center;gap:8px;margin:7px 0;display:flex;font-size:13px!important}.class-meta p svg{color:#708166;flex-shrink:0}.class-meta p span{color:#89917d}.portal-shell .portalbalance{background:#f3f5ed;border:0;border-radius:12px;align-items:center;gap:17px;min-height:98px;margin:22px 0;padding:21px;display:flex}.portal-shell .portalbalance strong{letter-spacing:-2px;font-size:47px;font-weight:800;line-height:1}.portal-shell .portalbalance span{color:#4e6045;max-width:110px;font-size:14px;line-height:1.5}.portal-shell .badge{padding:7px 10px;font-size:12px}.portal-shell .nextclass{margin:22px 0;font-size:15px}.portal-shell .nextclass span{align-items:center;gap:7px;margin-bottom:9px;font-size:12px;display:flex}.portal-shell .checkbutton{border-radius:10px;justify-content:center;align-items:center;gap:10px;min-height:54px;font-size:16px;font-weight:600;display:flex}.portal-shell .checkbutton:disabled{opacity:1;color:#66775b!important;background:#e8eddf!important;border-color:#e8eddf!important}.portal-shell .classpanel .help{color:#5c6954;font-size:13px;line-height:1.7}.portal-shell .attendancepanel{margin-top:25px;padding:29px}.history-heading{align-items:center;gap:14px;margin-bottom:23px;display:flex}.history-heading p{margin:0 0 6px}.history-heading h2{margin:0}.portal-shell table{font-size:15px}.portal-shell th{letter-spacing:1px;background:#f2f4eb;font-size:10px}.portal-shell td{padding:18px 15px}.portal-shell .portalcontact{background:#eeefe6;border-radius:16px;flex-direction:column;align-items:center;margin-top:25px;padding:35px 20px;display:flex}.portalcontact .welcome-icon{background:#e1e7d3;margin-bottom:17px}.portal-shell .portalcontact h3{text-align:center;max-width:400px;font-size:19px;line-height:1.5}.portal-shell .portalcontact a{color:var(--green);align-items:center;gap:8px;padding:8px;font-size:16px;font-weight:600;display:flex}.portal-shell .portalcontact p{margin-bottom:0;font-size:13px}.portal-shell .portalwelcome{max-width:none;margin:28px 0;padding:34px}.portalwelcome .welcome-icon{margin-bottom:21px}.portal-shell .portalwelcome p{max-width:650px}.portal-shell .portalwelcome .linkbutton{align-items:center;gap:9px;min-height:49px;margin-top:9px;font-size:15px;display:inline-flex}.portal-shell .portalwelcome .admin-entry{margin-top:23px;font-size:12px}.portal-shell a{color:var(--green);text-underline-offset:4px}.portal-shell .portal-footer{text-align:center;color:#6d7565;margin:0;padding:35px 10px}.portal-footer .footer-tagline{letter-spacing:1.6px;color:var(--green);font-size:10px;font-weight:700}.footer-tagline span{color:#8c9975;padding:0 8px}.portal-footer p{font-size:11px;line-height:1.8}.portal-footer>div{justify-content:center;gap:24px;margin-top:18px;font-size:11px;display:flex}.portal-shell .portalerror,.portal-shell .success{font-size:15px;line-height:1.6}:is(.portal-shell button:focus-visible,.portal-shell a:focus-visible){outline-offset:4px;outline:3px solid #a1b87b}@media (max-width:800px){.portal-shell .portal-header{gap:10px;padding:12px 18px}.portal-logo-frame{width:240px;height:120px}.portal-logo-frame img{width:452px;top:-66px;left:-106px}.portal-header-label{letter-spacing:.8px;border:0;gap:5px;max-width:70px;padding:0;font-size:9px;line-height:1.6}.portal-header-label svg{display:none}.portal-shell .studentportal{padding:12px 16px 0}.portal-hero{border-radius:14px;padding:29px 25px}.portal-hero-note{display:none}.portal-shell .portal-hero h1{letter-spacing:-1.1px;font-size:31px}.portal-hero p{font-size:15px}.portal-shell .portaltools{flex-wrap:nowrap;gap:6px}.portal-shell .portaltools span{width:auto;max-width:140px;margin-bottom:0;font-size:11px}.portal-shell .portaltools button{padding:9px;font-size:11px}.portal-shell .classpanel,.portal-shell .attendancepanel{padding:24px}.portal-shell .panel h2{font-size:23px}.portal-shell .portalwelcome{padding:28px 24px}.portal-shell table{font-size:13px}.portal-shell td{padding:14px 10px}.portal-shell .portalcontact h3{font-size:18px}.portal-shell .portalcontact p{text-align:center}.portal-shell .portal-footer{padding:30px 0}.portal-footer .footer-tagline{letter-spacing:1px;font-size:9px}.footer-tagline span{padding:0 5px}}@media (max-width:360px){.portal-logo-frame{width:210px;height:105px}.portal-logo-frame img{width:395.5px;top:-57px;left:-92px}.portal-shell .portal-header{padding:10px}.portal-header-label{font-size:8px}.portal-shell .portaltools button svg{display:none}}@media (prefers-reduced-motion:no-preference){.portal-shell button,.portal-shell a{transition:background-color .15s,color .15s,box-shadow .15s}.portal-shell .checkbutton:not(:disabled):hover{box-shadow:0 4px 14px #2d482d20;background:#3d5d35!important}}.portal-shell .portalbalance strong{overflow-wrap:anywhere;min-width:0}.portal-shell .portalbalance span{flex:1;min-width:90px}.portal-shell .portalbalance:has(strong:first-child:last-of-type){flex-wrap:wrap}@media (max-width:800px){.portal-shell .portalbalance strong{font-size:40px}.portal-shell .portalbalance span{max-width:none}}.admin-shell .portal-header{max-width:1500px;padding-left:5%;padding-right:5%}.admin-header-tools{flex-direction:column;align-items:flex-end;gap:9px;display:flex}.admin-header-tools .portal-header-label{font-size:10px}.admin-portal-link{font-size:12px}.admin-shell .admin-main{max-width:1500px;padding-top:18px}.admin-shell .admin-hero{background:var(--green);color:#faf9f2;border-radius:18px;gap:22px;padding:33px 35px}.admin-hero .eyebrow{color:#d4ddbf;letter-spacing:1.9px;font-size:10px}.admin-shell .admin-hero h1{letter-spacing:-1.5px;font-size:clamp(33px,4.4vw,50px);font-weight:700}.admin-hero h1 span{color:#cbd4ac}.admin-hero p{color:#e2e8d9;font-size:15px}.admin-shell .admin-hero>.primary{min-height:48px;font-weight:600;color:#2d482d!important;background:#f4f6e9!important;border-color:#f4f6e9!important}.admin-shell nav{border-bottom:0;flex-wrap:wrap;gap:7px;margin-bottom:10px;padding:19px 0;display:flex;overflow:visible}.admin-shell nav button{background:#fff;border:1px solid #dce2d4;border-radius:9px;min-height:44px;padding:12px 17px;font-size:13px}.admin-shell nav button.active{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}.admin-shell .metrics{margin:15px 0 25px}.admin-shell .metrics>div{border-radius:14px;padding:22px;box-shadow:0 4px 15px #273d2108}.admin-shell .metrics span{color:#65715c;font-size:12px}.admin-shell .metrics strong{color:var(--green);font-size:30px}.admin-shell .toolbar{border-radius:14px;padding:21px;box-shadow:0 4px 15px #273d2108}.admin-shell .toolbar label{font-size:13px}.admin-shell .switch button{min-height:47px;font-size:13px;font-weight:500}.admin-shell .studentcard{border-radius:14px;padding:21px;box-shadow:0 4px 15px #273d2108}.admin-shell .avatar{color:var(--green);background:#e7edda;width:49px;height:49px}.admin-shell .studentinfo h3{color:var(--ink);font-size:18px}.admin-shell .studentinfo p{font-size:13px}.admin-shell .studentcard>button{min-height:46px;font-size:14px}.admin-shell .buttons button{min-height:42px;font-size:13px}.admin-shell .sectiontitle h2{font-size:24px}.admin-shell .sectiontitle p{font-size:14px}.admin-shell .empty{background:#f8f9f3;border-radius:14px;padding:45px 20px}.admin-shell .help{font-size:13px;line-height:1.8}.admin-shell .panel{box-shadow:0 4px 15px #273d2108}.admin-shell .tablewrap table{font-size:14px}.admin-shell .tablewrap th{background:#edf1e5;font-size:10px}.admin-shell .tablewrap td{padding:16px 13px}.admin-shell .modal{color:var(--ink);background:#fafbf6;border-radius:17px}.admin-shell .modal input,.admin-shell .modal select,.admin-shell .modal textarea{background:#fff;min-height:44px}.admin-shell .modal h2{font-size:25px}.admin-shell .modal p{font-size:14px}.admin-shell .modal button.primary{min-height:48px;font-size:15px}.admin-shell .checkbox input{min-height:18px}.admin-shell footer{text-align:center;border-top:1px solid var(--line);letter-spacing:.4px;padding:24px 0;font-size:10px}.admin-shell .status{font-size:13px}@media (max-width:800px){.admin-shell .portal-header{padding:12px 16px}.admin-header-tools{gap:7px;max-width:100px}.admin-header-tools .portal-header-label{text-align:right;letter-spacing:.5px;border:0;max-width:none;padding:0;font-size:8px}.admin-save-status{text-align:right;font-size:9px}.admin-portal-link{font-size:10px}.admin-shell .admin-main{padding:12px 16px 0}.admin-shell .admin-hero{border-radius:14px;flex-direction:column;align-items:flex-start;gap:12px;padding:26px 24px}.admin-shell .admin-hero h1{font-size:36px}.admin-hero .eyebrow{letter-spacing:1.3px;font-size:9px}.admin-shell .admin-hero p{margin-bottom:0;font-size:14px}.admin-shell .admin-hero>.primary{padding:12px 18px;font-size:14px}.admin-shell nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:8px 0 0;display:grid}.admin-shell nav button{white-space:normal;text-align:center;width:100%;padding:11px 5px;font-size:11px}.admin-shell .metrics{gap:10px}.admin-shell .metrics>div{padding:17px}.admin-shell .metrics strong{font-size:25px}.admin-shell .metrics span{font-size:11px;line-height:1.5}.admin-shell .toolbar{padding:16px}.admin-shell .toolbar label{flex-basis:100%;min-width:0}.admin-shell .toolbar input{min-width:0}.admin-shell .switch{gap:7px}.admin-shell .switch button{white-space:normal;padding:12px 7px;font-size:12px}.admin-shell .studentcard{padding:17px}.admin-shell .studentinfo h3{font-size:17px}.admin-shell .studentinfo p{font-size:12px}.admin-shell .sectiontitle h2{font-size:23px}.admin-shell .tablewrap table{font-size:13px}.admin-shell .panel{padding:23px}.admin-shell footer{font-size:9px;line-height:1.8}.admin-shell .formgrid{grid-template-columns:1fr}.admin-shell .overlay{padding-top:18px}}@media (max-width:390px){.admin-shell .portal-logo-frame{width:210px;height:105px}.admin-shell .portal-logo-frame img{width:395.5px;top:-57px;left:-92px}.admin-shell .portal-header{padding:10px}.admin-header-tools{max-width:90px}.admin-shell nav button{font-size:10px}.admin-shell .admin-hero h1{font-size:33px}}@media print{.admin-shell .admin-hero,.admin-header-tools{display:none!important}}.pt-balance-details p{align-items:center;gap:8px;display:flex}.pt-balance-details p svg{flex-shrink:0}.pt-balance-details .checkbutton{margin-top:22px;text-decoration:none}.admin-shell .switch{flex-wrap:wrap}.admin-shell .switch button{flex:1}@media (max-width:800px){.admin-shell .switch button:last-child{flex-basis:100%}}.portal-shell .upcoming-panel{border-top:4px solid var(--green);margin-bottom:25px;padding:29px}.schedule-heading{align-items:center;gap:15px;margin-bottom:23px;display:flex}.schedule-heading h2{margin:3px 0}.schedule-heading .eyebrow{margin:0}.portal-shell .schedule-subtitle{margin:7px 0 0;font-size:13px}.appointment-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:560px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.appointment-card{border:1px solid var(--line);background:#fcfcf8;border-radius:12px;min-width:0;padding:22px}.appointment-card.next-appointment{background:#f0f4e7;border-color:#aabc91}.appointment-date{color:var(--green);flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.appointment-date .badge{margin-left:auto}.portal-shell .appointment-card h3{margin:17px 0 12px;font-size:20px}.portal-shell .appointment-card p{align-items:flex-start;gap:9px;margin:8px 0;font-size:14px;line-height:1.6;display:flex}.appointment-card svg{flex-shrink:0;margin-top:2px}.portal-shell .appointment-card .appointment-time{color:var(--ink);font-size:18px}.portal-shell .schedule-updated{margin:18px 0 0;font-size:12px}.schedule-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin-top:19px;padding-top:19px;font-size:13px;display:flex}.schedule-footer .linkbutton{align-items:center;gap:8px;min-height:44px;display:flex}.schedule-empty{background:#f5f6ef;border-radius:12px;padding:22px}.schedule-empty h3{margin-top:12px}.portal-shell .schedule-empty p{font-size:14px}.portal-shell .schedule-notice{color:#745d29;background:#fff3d5;border-radius:8px;padding:12px;font-size:14px}@media (max-width:800px){.portal-shell .upcoming-panel{padding:24px}.appointment-list{grid-template-columns:1fr;max-height:680px}.appointment-card{padding:19px}.schedule-heading{align-items:flex-start}.schedule-heading .welcome-icon{width:42px;height:42px}.portal-shell .schedule-heading h2{font-size:21px}.appointment-date{font-size:13px}.appointment-date .badge{font-size:10px}.schedule-footer{flex-direction:column;align-items:flex-start}}.schedule-heading{flex-wrap:wrap}.schedule-booking{white-space:nowrap;justify-content:center;align-items:center;gap:9px;min-height:48px;margin-left:auto;font-weight:700;display:inline-flex}.schedule-booking:hover{filter:brightness(1.1)}.schedule-booking:focus-visible{outline-offset:3px;outline:3px solid #9eb671}.schedule-booking svg{flex-shrink:0}@media (max-width:800px){.schedule-booking{width:100%;margin-left:0}}.time-setting>span{font-size:12px;font-weight:600}.time-selects{align-items:center;gap:7px;display:flex}.time-selects select{flex:1;min-width:0}.time-selects>span{margin-top:7px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auto-sync-info{color:#405536;background:#edf2e3;border-radius:12px;margin:20px 0;padding:18px 22px;font-size:13px}.auto-sync-info p{margin:8px 0;font-size:12px;line-height:1.8}.auto-sync-info summary{cursor:pointer;padding:10px 0}.appointment-cancellation{border-top:1px solid var(--line);margin-top:18px;padding-top:17px}.appointment-cancellation button{min-height:44px}.portal-shell .appointment-cancellation .cancellation-note{margin:10px 0 0;font-size:13px;line-height:1.6}.appointment-cancellation button:focus-visible{outline-offset:3px;outline:3px solid #9eb671}:root,.portal-shell{--green:#2e432b;--ink:#2c3528;--muted:#646958;--line:#ddd6c5;--bg:#f5f0e5;--lime:#eae0c9;--cream:#eee4ce;--surface:#fffdf7;--sage:#e3e7d7}.portal-shell .portal-header{background:0 0;flex-wrap:wrap;align-items:center;gap:0;max-width:1500px;padding:24px 5% 0;display:flex}.brand-cover{background:var(--cream);border:1px solid #d9d0bb;border-radius:16px;width:100%;line-height:0;display:block;overflow:hidden;box-shadow:0 8px 28px #2e432b0b}.brand-cover img{aspect-ratio:2060/763;width:100%;height:auto;display:block}.portal-shell .portal-header-label{letter-spacing:1.6px;color:var(--green);border:0;border-radius:0;padding:0;font-size:11px}.portal-header>.portal-header-label{margin:19px 0 2px}.admin-header-tools{flex-flow:wrap;flex:1;align-items:center;gap:12px 20px;max-width:none;padding:18px 0 2px}.admin-header-tools .portal-header-label{margin-right:auto;font-size:11px}.admin-save-status{color:var(--muted);font-size:12px}.admin-portal-link{color:var(--green);text-underline-offset:4px;font-size:13px}.portal-shell .studentportal,.portal-shell .admin-main{max-width:1500px;padding-left:5%;padding-right:5%}.portal-shell .portal-hero,.portal-shell .admin-hero{background:var(--green);box-shadow:none;border:1px solid #243922}.portal-hero h1 span,.admin-hero h1 span{color:var(--cream)}.portal-shell .portal-hero p,.admin-shell .admin-hero p{color:#eee8d8}.admin-shell .admin-hero>.primary{background:var(--cream)!important;border-color:var(--cream)!important;color:var(--green)!important}.portal-shell .panel,.portal-shell .metrics>div,.portal-shell .toolbar,.portal-shell .studentcard,.portal-shell .tablewrap,.portal-shell .modal{background:var(--surface);border-color:var(--line);box-shadow:0 3px 14px #2e432b06}.portal-shell input,.portal-shell select,.portal-shell textarea,.admin-shell .modal input,.admin-shell .modal select,.admin-shell .modal textarea{background:#fffefa;border-color:#cec8b7}.portal-shell nav button{background:var(--surface);border-color:var(--line)}.portal-shell button:hover:not(:disabled):not(.primary):not(.active){background:#eee8d8;border-color:#78846b}.portal-shell .primary:hover:not(:disabled),.portal-shell button.active:hover:not(:disabled){filter:brightness(1.12)}.portal-shell .avatar,.portal-shell .class-icon,.portal-shell .welcome-icon{background:var(--sage);color:var(--green)}.portal-shell .appointment-card{background:var(--surface)}.portal-shell th,.admin-shell .tablewrap th{color:#545f4c;background:#ede6d6}.portal-shell .badge,.portal-shell .class-pill{color:#516044;background:#ede8d9}.portal-shell .badge.member{color:#304b28;background:#dce7ce}.portal-shell .metrics span{color:var(--muted)}.portal-shell .portal-footer,.admin-shell footer{border-color:var(--line)}a:focus-visible{outline-offset:4px;outline:3px solid #8d9c68}@media (max-width:800px){.portal-shell .portal-header{gap:0;padding:16px 16px 0}.brand-cover{border-radius:10px}.portal-shell .studentportal,.portal-shell .admin-main{padding-left:16px;padding-right:16px}.admin-header-tools{gap:10px;max-width:none;padding:16px 0 4px}.admin-header-tools .portal-header-label,.portal-shell .portal-header-label{letter-spacing:1px;text-align:left;max-width:none;font-size:10px}.admin-save-status{text-align:left;font-size:10px}.admin-portal-link{font-size:12px}.portal-header>.portal-header-label{margin-top:16px}}@media print{.brand-cover{display:none}}.action-summary{background:var(--green);color:var(--cream);border-radius:14px;align-items:center;gap:24px;margin-bottom:20px;padding:23px 26px;display:flex}.action-summary>div{white-space:nowrap;align-items:baseline;gap:10px;display:flex}.action-summary strong{font:800 38px Manrope,sans-serif}.action-summary span{font-size:13px}.action-summary p{color:#eee8d8;margin:0;font-size:14px}.action-filters{flex-wrap:wrap;gap:8px;margin:20px 0;display:flex}.action-filters button{min-height:44px;font-size:13px}.action-filters button span{margin-left:6px;font-weight:700}.action-search{max-width:460px;font-size:13px}.action-card-labels{align-items:center;gap:10px;margin-bottom:10px;display:flex}.action-priority{color:#8e4c30;font-size:11px;font-weight:700}.action-card .action-title{margin:7px 0;font-size:14px;font-weight:600;display:block}.action-card.action-urgent{border-left:4px solid #a1603d}.action-card .buttons .linkbutton{background:var(--surface);min-height:42px;font-size:13px}.action-card .studentinfo p{overflow-wrap:anywhere}.action-list .help{max-width:950px}.action-list .sectiontitle{margin-top:20px}@media (max-width:800px){.action-summary{flex-direction:column;align-items:flex-start;gap:10px;padding:21px}.action-summary strong{font-size:32px}.action-filters{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.action-filters button{padding:12px 7px;font-size:12px}.action-card .buttons{width:100%;display:flex}.action-card .buttons>*{text-align:center;flex:1}.action-summary p{font-size:13px}}.portal-shell .group-booking{border:1px solid var(--line);background:#f1ecdf;border-radius:10px;margin-top:16px;padding:16px}.portal-shell .group-booking .badge{margin:0;font-size:13px;line-height:1.5;display:inline-block}.portal-shell .group-booking p{margin:10px 0 0;font-size:13px;line-height:1.7}.portal-shell .nextclass>b{line-height:1.6;display:block}.admin-shell .admin-refresh{background:var(--surface);justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 14px;font-size:13px;display:inline-flex}.admin-refresh[aria-busy=true] svg{animation:1s linear infinite admin-refresh-spin}@keyframes admin-refresh-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.admin-refresh[aria-busy=true] svg{animation:none}}@media (max-width:800px){.admin-shell .admin-refresh{padding:10px 12px;font-size:12px}}.adjustment-preview{background:var(--cream);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:20px 0;padding:18px;display:flex}.adjustment-preview span{font-size:12px}.adjustment-preview strong{color:var(--green);margin-top:5px;font-size:28px;display:block}.adjustment-history{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.adjustment-history summary{cursor:pointer;font-size:13px;font-weight:600}.adjustment-history>div{border-bottom:1px solid var(--line);padding:14px 0;font-size:13px}.adjustment-history p{overflow-wrap:anywhere;margin:6px 0}.reschedule-request{margin-bottom:16px}.reschedule-request form{gap:14px;margin-top:12px;display:grid}.reschedule-request label{gap:6px;display:grid}.reschedule-request input,.reschedule-request textarea{width:100%;max-width:100%;font:inherit;color:#30382b;background:#fffef9;border:1px solid #c8cdbc;border-radius:10px;padding:12px}.reschedule-request textarea{min-height:90px}.reschedule-request p{line-height:1.55}.reschedule-actions{border-bottom:1px solid #d9d8ca;margin:22px 0;padding:18px 0}.reschedule-actions .buttons{flex-wrap:wrap}.portal-contact-actions{flex-wrap:wrap;gap:10px;margin:0 0 24px;display:flex}.portal-contact-actions .linkbutton{flex:1;justify-content:center;align-items:center;gap:8px;min-width:120px;min-height:48px;text-decoration:none;display:inline-flex}.portal-shell .appointment-list{max-height:none;overflow:visible}.show-appointments{min-height:44px;margin:18px auto 0;display:block}.action-card .buttons>p{flex-basis:100%}:root{--green:#254d3c;--ink:#24342d;--muted:#657168;--line:#dce2d9;--bg:#f5f5ef;--cream:#f5f5ef;--surface:#fff;--sage:#e9ece3;--lime:#d9e9ad}body,.portal-shell{background:var(--bg);color:var(--ink)}.brand-cover{border-color:var(--line)}.portal-shell input,.portal-shell select,.portal-shell textarea,.admin-shell .modal input,.admin-shell .modal select,.admin-shell .modal textarea{border-color:var(--line);background:#fff}.portal-shell .auto-sync-info,.portal-shell .issued,.portal-shell .empty,.portal-shell .schedule-empty{color:var(--green);background:#edf2e7}.portal-shell .badge,.portal-shell .class-pill,.portal-shell th,.admin-shell .tablewrap th{color:#536245;background:#eef2e8}.portal-shell .badge.member{background:var(--lime);color:var(--green)}.portal-shell .badge.trial{color:#855b33;background:#f7e8dc}.portal-shell .badge.unpaid{color:#8e4c30;background:#f7e0d5}.portal-shell .studentcard.checked,.portal-shell .appointment-card.next-appointment,.portal-shell .success{background:#edf2e7;border-color:#bdcfab}.portal-shell .portal-hero,.portal-shell .admin-hero{border-color:var(--green)}.portal-shell .portal-hero .eyebrow,.admin-hero .eyebrow{color:var(--lime)}.portal-shell .portal-hero p,.admin-shell .admin-hero p,.action-summary p{color:#e9ece3}.portal-shell button:hover:not(:disabled):not(.primary):not(.active){border-color:var(--green);background:#edf2e7}.portalbalance{background:#eef2e8}.portal-shell .portalbalance strong{color:var(--green)}.portal-shell .modal,.admin-shell .modal{background:#fff}.portal-shell .portaltools,.portal-shell .schedule-subtitle,.portal-shell .schedule-updated{color:var(--muted)}.admin-shell nav .studio-nav-link{border:1px solid var(--line);min-height:44px;color:var(--green);background:#fff;border-radius:9px;justify-content:center;align-items:center;padding:12px 17px;font-size:13px;text-decoration:none;display:flex}.admin-shell nav .studio-nav-link:hover{background:#edf2e7}@media (max-width:800px){.admin-shell nav{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shell nav .studio-nav-link{padding:11px 5px;font-size:11px}}.portal-shell .checkbutton:not(:disabled):hover{background:var(--green)!important}.portal-shell .portalbalance{background:#eef2e8}.portal-shell .portalbalance span{color:var(--muted)}.portal-studio-entry{flex-wrap:wrap;align-items:center;gap:16px;margin:0 0 22px;display:flex}.portal-studio-entry .linkbutton{justify-content:center;align-items:center;gap:9px;min-height:48px;text-decoration:none;display:inline-flex}.portal-shell .portal-studio-entry p{color:var(--muted);margin:0;font-size:14px}@media (max-width:800px){.portal-studio-entry{gap:10px}.portal-studio-entry .linkbutton{width:100%}}.training-plan-panel .sectiontitle{flex-wrap:wrap;align-items:flex-start;gap:16px}.training-plan-panel .sectiontitle h2{margin:0}.training-progress{margin:24px 0}.training-progress>div{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.training-progress span{color:var(--muted,#68705e)}.training-progress progress{accent-color:#536b4b;border:0;border-radius:20px;width:100%;height:12px;margin-top:12px;display:block;overflow:hidden}.training-progress progress::-webkit-progress-bar{background:#e9ecdf;border-radius:20px}.training-progress progress::-webkit-progress-value{background:#536b4b;border-radius:20px}.training-payment{background:#f1f2e9;border-radius:20px;grid-template-columns:1fr 1fr;align-items:center;gap:24px;padding:24px;display:grid}.training-payment strong{color:#30392b;font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.2}.training-payment p{margin:8px 0}.training-payment .eyebrow{font-size:.75rem}.training-payment-timing{font-size:1rem;line-height:1.6}.training-last-payment{border-top:1px solid #dcded1;flex-wrap:wrap;gap:8px 20px;margin-top:20px;padding-top:20px;display:flex}.training-last-payment span{color:#69725f}.training-price-preview{background:#f1f2e9;border-radius:12px;padding:16px}.training-plan-panel>.help{margin-top:20px}@media (max-width:600px){.training-payment{grid-template-columns:1fr;gap:12px;padding:20px}.training-last-payment{flex-direction:column}.training-progress>div{flex-direction:column;gap:6px}}.payment-options h2{margin-top:0}.payment-fee-notice{background:#f1f2e9;border:1px solid #b8c6ab;border-left:5px solid #536b4b;border-radius:14px;padding:20px;line-height:1.65}.payment-fee-notice strong{color:#30392b;display:block}.payment-comparison{border:1px solid #dcded1;border-radius:16px;margin:24px 0;padding:20px}.payment-comparison dl{margin:0}.payment-comparison dl>div{justify-content:space-between;gap:20px;padding:10px 0;display:flex}.payment-comparison dd{white-space:nowrap;margin:0;font-weight:700}.payment-total{border-top:1px solid #dcded1;font-weight:700}.payment-methods{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px;display:grid}.payment-methods>div{background:#f7f7f0;border:1px solid #dcded1;border-radius:16px;min-width:0;padding:20px}.payment-methods h3{flex-wrap:wrap;align-items:center;gap:10px;margin-top:0;display:flex}.payment-methods p{line-height:1.6}.payment-methods .help[role=status]{margin-top:8px;display:block}.zelle-id{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}@media (max-width:850px){.payment-methods{grid-template-columns:1fr}}@media (max-width:480px){.payment-comparison{padding:16px}.payment-comparison dl>div{gap:12px}.payment-methods>div{padding:16px}}
