:root{--green:#1f6b4a;--green-dark:#154d35;--green-soft:#e8f4ee;--leaf:#3d9b6e;--ink:#163027;--muted:#5c7268;--line:#d5e4db;--white:#fff;--sand:#f7fbf8}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--ink);background:var(--white);font-family:"Source Sans 3",system-ui,sans-serif}h1,h2,h3,.serif{font-family:Cormorant Garamond,Georgia,serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.container{width:min(1120px,100% - 40px);margin:0 auto}.header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:16px;min-height:76px;display:flex}.logo{color:var(--green-dark);align-items:center;gap:10px;font-weight:700;display:flex}.logo-mark{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-family:Cormorant Garamond,serif;font-size:22px;display:grid}.nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nav a,.nav button.linkish{color:var(--green-dark);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 14px}.nav a.active,.nav a:hover{background:var(--green-soft)}.btn{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:11px 20px;font-weight:600;display:inline-flex}.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:var(--green-dark)}.btn-outline{color:var(--green);border:1px solid var(--green);background:#fff}.banner{color:#fff;background:linear-gradient(100deg,#154d35c7,#1f6b4a73),url(https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?auto=format&fit=crop&w=1800&q=80) 50%/cover no-repeat;place-items:center;min-height:520px;display:grid;position:relative}.banner-copy{text-align:left;width:min(720px,100% - 40px)}.banner-copy p.kicker{letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:13px}.banner-copy h1{margin:0 0 16px;font-size:clamp(42px,6vw,72px);line-height:.95}.section{padding:72px 0}.section.alt{background:var(--sand)}.section-head{justify-content:space-between;align-items:end;gap:16px;margin-bottom:32px;display:flex}.section-head h2{color:var(--green-dark);margin:0;font-size:42px}.muted{color:var(--muted)}.grid-3{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden}.card img.cover{object-fit:cover;width:100%;height:190px}.card-body{padding:18px 18px 22px}.price{color:var(--green);font-size:22px;font-weight:700}.price-btn{width:100%;margin-top:8px}.course-detail{grid-template-columns:1.1fr .9fr;align-items:start;gap:32px;display:grid}.course-hero{object-fit:cover;border-radius:18px;width:100%;height:380px}.course-points{color:var(--muted);padding-left:18px}.payment-layout{grid-template-columns:.9fr 1.1fr;align-items:start;gap:32px;display:grid}.review{border:1px solid var(--line);background:#fff;border-radius:18px;padding:22px}.stars{color:var(--leaf);letter-spacing:2px}.footer{background:var(--green-dark);color:#e8f4ee;padding:48px 0 24px}.footer h3{color:#fff;margin:0 0 10px}.footer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:28px;display:grid}.page-hero{background:var(--green-soft);padding:56px 0 20px}.form{gap:14px;max-width:560px;display:grid}.form label{color:var(--green-dark);gap:6px;font-weight:600;display:grid}.form input,.form textarea,.form select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px}.admin-shell{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.admin-side{background:var(--green-dark);color:#fff;padding:24px 16px}.admin-side a,.admin-side button{text-align:left;color:#fff;cursor:pointer;background:0 0;border:0;border-radius:10px;width:100%;margin-bottom:6px;padding:10px 12px;display:block}.admin-side a.active,.admin-side a:hover{background:#ffffff1f}.admin-main{background:var(--sand);padding:28px}.stats{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:14px;padding:16px}.table{border-collapse:collapse;background:#fff;border-radius:14px;width:100%;overflow:hidden}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:12px 14px;font-size:14px}.badge{text-transform:capitalize;border-radius:999px;padding:3px 8px;font-size:12px;display:inline-block}.badge.paid{color:#146b3a;background:#d9f3e5}.badge.pending{color:#8a5a00;background:#fff3d6}.badge.failed{color:#9a1f16;background:#ffd9d6}.admin-form{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px;padding:18px;display:grid}.admin-form .full{grid-column:1/-1}.trainer-photo{object-fit:cover;width:100%;height:260px}.notice{background:var(--green-soft);color:var(--green-dark);border-radius:10px;padding:12px 14px}.error{color:#9a1f16}.mode-row{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.panel{border:1px solid var(--line);background:var(--sand);border-radius:18px;margin-top:36px;padding:24px}.week-grid{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}.week-col{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:140px;padding:10px}.week-slot{border-top:1px solid var(--line);margin-top:8px;padding-top:8px;font-size:13px}.cal-nav{justify-content:space-between;align-items:center;margin:12px 0;display:flex}.cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-head{color:var(--green-dark);text-align:center;font-weight:600}.cal-cell{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;min-height:64px;padding:6px 8px;display:flex}.cal-cell.empty,.cal-cell:disabled{cursor:default;opacity:.55}.cal-cell.scheduled{border-color:var(--green)}.cal-cell.present{background:var(--green-soft)}@media (width<=900px){.grid-3,.footer-grid,.stats,.admin-shell,.admin-form,.course-detail,.payment-layout,.week-grid{grid-template-columns:1fr}.banner{min-height:420px}}
