*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}
html,body{height:100%}
body{font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:#0d2b33;color:#12333d}
.stage{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:18px 10px 8px;background:radial-gradient(1200px 700px at 50% -10%,#1d5b6b,#0d2b33)}
.phone{position:relative;width:min(420px,100%);height:min(860px,calc(100vh - 90px));min-height:560px;background:#eaf7f4 url("assets/bg.png") center/cover no-repeat;border-radius:28px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.5);display:flex;flex-direction:column}
.notch{height:10px;flex:0 0 auto}
.caption{max-width:420px;text-align:center;color:#9fd4c8;font-size:12px;line-height:1.5;margin-top:10px;padding:0 6px}
.appbar{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:8px 10px;background:rgba(255,255,255,.82);border-bottom:2px solid #abd8a2;z-index:5}
.barlogo{height:30px;width:auto}
.bartitle{flex:1;text-align:center;font-weight:700;font-size:16px;color:#14532d;letter-spacing:.2px}
.iconbtn{background:none;border:0;cursor:pointer;padding:4px}
.iconbtn img{height:24px;width:auto;display:block}
.screen{flex:1 1 auto;overflow-y:auto;padding:16px 16px 22px;scrollbar-width:thin}
.tabbar{flex:0 0 auto;display:flex;background:rgba(255,255,255,.92);border-top:2px solid #abd8a2;z-index:5}
.tabbar button{flex:1;background:none;border:0;padding:7px 2px 5px;cursor:pointer;font-size:10.5px;color:#38606b;display:flex;flex-direction:column;align-items:center;gap:2px}
.tabbar button img{height:22px;width:auto}
.tabbar button.on{color:#14532d;font-weight:700}
.drawer{position:absolute;top:56px;left:10px;z-index:9;background:#ffffff;border:2px solid #abd8a2;border-radius:14px;box-shadow:0 14px 30px rgba(0,0,0,.25);padding:8px;min-width:190px}
.drawer button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:9px 8px;font-size:15px;color:#12333d;cursor:pointer;border-radius:8px;text-align:left}
.drawer button:hover{background:#eefaf0}
.drawer button img{height:20px;width:auto}
.center{text-align:center}
.logoBig{width:210px;max-width:70%;height:auto;margin:26px auto 4px;display:block}
.splashLogo{width:250px;max-width:80%;height:auto;margin:70px auto 10px;display:block}
h1.t{font-size:24px;color:#14532d;margin:8px 0 6px}
h2.t{font-size:19px;color:#14532d;margin:4px 0 8px}
p.sub{color:#38606b;font-size:14px;line-height:1.55}
.card{background:rgba(255,255,255,.92);border:1.5px solid #cfe8d2;border-radius:16px;padding:14px;margin:12px 0;box-shadow:0 4px 14px rgba(20,83,45,.08)}
label.f{display:block;font-size:13px;font-weight:600;color:#14532d;margin:12px 0 5px}
input[type=text],input[type=email],input[type=password],select,textarea{width:100%;padding:11px 12px;border:1.5px solid #bcd8c2;border-radius:10px;font-size:15px;background:#fff;color:#12333d}
textarea{min-height:74px;resize:vertical}
.btn{display:block;width:100%;border:0;border-radius:999px;background:#57a773;color:#fff;font-size:16.5px;font-weight:700;padding:13px 16px;cursor:pointer;margin:14px 0 8px;box-shadow:0 5px 14px rgba(38,110,66,.3)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:#fff;color:#2c7a4b;border:2px solid #57a773;box-shadow:none}
.btn.small{font-size:14.5px;padding:10px 12px}
.imgbtn{display:block;margin:10px auto;cursor:pointer;background:none;border:0}
.imgbtn img{height:56px;width:auto;max-width:100%}
.imgbtn.wide img{height:64px}
.note{font-size:12.5px;color:#5b7d87;line-height:1.5}
.badge{display:inline-block;background:#e7f6e9;color:#2c7a4b;border:1px solid #abd8a2;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}
.headshot{width:92px;height:92px;border-radius:50%;object-fit:cover;border:3px solid #abd8a2;background:#dfeeea}
.headshot.sm{width:58px;height:58px}
.row{display:flex;gap:12px;align-items:center}
.col{flex:1}
.kv{font-size:14px;line-height:1.65;color:#22444e}
.kv b{color:#14532d}
.tabs{display:flex;gap:6px;margin:12px 0 4px;flex-wrap:wrap}
.tabs button{flex:1;border:1.5px solid #57a773;background:#fff;color:#2c7a4b;border-radius:999px;padding:8px 4px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.tabs button.on{background:#57a773;color:#fff}
.slots{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.slots button{border:1.5px solid #57a773;background:#fff;color:#2c7a4b;border-radius:10px;padding:9px 11px;font-size:13.5px;cursor:pointer}
.slots button.on{background:#57a773;color:#fff}
.days{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.days button{width:44px;height:44px;border-radius:50%;border:1.5px solid #57a773;background:#fff;color:#2c7a4b;font-weight:700;cursor:pointer}
.days button.on{background:#57a773;color:#fff}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px}
.cal .dow{font-size:11px;text-align:center;color:#5b7d87;font-weight:700;padding:3px 0}
.cal .d{aspect-ratio:1;border-radius:9px;background:rgba(255,255,255,.75);border:1px solid #d8ecdc;font-size:12.5px;display:flex;align-items:center;justify-content:center;position:relative;color:#22444e}
.cal .d.booked{background:#cdeccd;font-weight:700;border-color:#57a773;cursor:pointer}
.cal .d.booked::after{content:"";position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background:#2c7a4b}
.cal .d.today{outline:2px solid #57a773}
.check{width:110px;height:auto;margin:16px auto;display:block}
.divider{height:1px;background:#cfe8d2;margin:14px 0}
a.link{color:#2c7a4b;font-weight:600}
.foot{margin-top:18px;text-align:center}
.foot button{background:none;border:0;color:#5b7d87;font-size:12.5px;text-decoration:underline;cursor:pointer}
.modal{position:absolute;inset:0;background:rgba(10,40,48,.45);display:flex;align-items:center;justify-content:center;z-index:20;padding:20px}
.modal .box{background:#fff;border-radius:18px;padding:20px 18px;max-width:330px;width:100%;text-align:center;box-shadow:0 20px 40px rgba(0,0,0,.3)}
.modal .yn{display:flex;gap:12px;justify-content:center;margin-top:12px}
.modal .yn img{height:52px;width:auto;cursor:pointer}
.toast{position:absolute;left:50%;bottom:86px;transform:translateX(-50%);background:#14532d;color:#fff;padding:9px 16px;border-radius:999px;font-size:13.5px;z-index:30;box-shadow:0 8px 20px rgba(0,0,0,.3)}
input[type=file]{font-size:13px}
