/* Premium Fitness Club — ortak tema */
:root{
  --bg:#06100A; --surface:#0D1811; --surface2:#142219; --line:#1F3327; --line2:#2A4434;
  --text:#F1F6F2; --muted:#8FA295;
  --green:#14B227; --green-hi:#3FDB4E; --green-rgb:20,178,39; --ink:#03130A;
  --danger:#FF6B5E; --radius:20px;
  --font-h:'Montserrat',system-ui,sans-serif; --font-b:'Inter',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:var(--font-b);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{opacity:.35;cursor:default}
.wrap{max-width:560px;margin:0 auto;padding:0 16px}

/* Butonlar */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 18px;border-radius:14px;border:1px solid var(--line2);background:var(--surface2);font-weight:600;font-size:15px;text-decoration:none;color:var(--text);transition:transform .15s,background .2s,border-color .2s;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--green);border-color:var(--green);color:var(--ink);font-weight:700}
.btn.ghost{background:transparent}
.btn.sm{height:36px;padding:0 12px;font-size:13px;border-radius:10px}
.btn.block{width:100%}
.icon-btn{flex:none;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface2);display:grid;place-items:center;color:var(--muted);transition:color .2s,border-color .2s}
.icon-btn:hover{color:var(--text);border-color:var(--line2)}
.icon-btn.danger:hover{color:var(--danger)}

/* Form alanları */
.in{width:100%;height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--line2);background:var(--bg);color:var(--text);font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}
textarea.in{height:auto;min-height:76px;padding:10px 12px;resize:vertical;line-height:1.45}
select.in{appearance:none;-webkit-appearance:none;padding-right:26px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 19px,calc(100% - 9px) 19px;background-size:5px 5px;background-repeat:no-repeat}
.in:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(var(--green-rgb),.18)}
.in::placeholder{color:#5E7265}
.in.err{border-color:var(--danger);animation:shake .4s}

/* Animasyonlu figür */
.fig .near,.fig .far{fill:none;stroke-width:8.5;stroke-linecap:round;stroke-linejoin:round}
.fig .near{stroke:#EEF4EF}
.fig .far{stroke:#4A5D50}
.fig .head{fill:#EEF4EF}
.fig .db1{fill:var(--green-hi)}
.fig .db2{fill:var(--green-hi);opacity:.45}
.fig .ground{stroke:#34503E;stroke-width:2;stroke-linecap:round;stroke-dasharray:1 7}
.fig .shadow{fill:rgba(0,0,0,.4)}

/* Alttan açılan pencere */
.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.6);opacity:0;pointer-events:none;transition:opacity .25s}
.sheet.open{opacity:1;pointer-events:auto}
.sheet-inner{width:100%;max-width:560px;max-height:90vh;overflow:auto;background:var(--surface);border-radius:26px 26px 0 0;border-top:1px solid var(--line);padding:12px 16px calc(22px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .4s cubic-bezier(.2,.9,.2,1)}
.sheet.open .sheet-inner{transform:none}
.grab{width:40px;height:4px;border-radius:9px;background:var(--line2);margin:0 auto 14px}
.sheet-title{font:800 22px/1.1 var(--font-h);text-transform:uppercase;letter-spacing:.01em}
.sheet-sub{font-size:13px;color:var(--muted);margin-top:4px}

/* Bildirim */
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:90;width:max-content;max-width:calc(100% - 32px);background:var(--green);color:var(--ink);border-radius:16px;padding:12px 18px;font-weight:600;font-size:14px;display:flex;gap:10px;align-items:center;transform:translate(-50%,180%);transition:transform .45s cubic-bezier(.34,1.4,.5,1);box-shadow:0 20px 40px -10px rgba(0,0,0,.6)}
.toast.show{transform:translate(-50%,0)}

.anim-in{opacity:0;transform:translateY(24px);animation:rise .6s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i,0) * 80ms)}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@keyframes float{50%{transform:translate(-30px,30px) scale(1.08)}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
