:root{--g: #16a34a;--gd: #15803d;--gl: #dcfce7;--bg: #f6f8f7;--card: #fff;--tx: #14231a;--mu: #6b7c72;--bd: #e3e9e5;--red: #dc2626}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--tx)}main{max-width:920px;margin:0 auto;padding:20px 16px 120px}h1,h2,h3{margin:.2em 0}a{color:inherit;text-decoration:none}.muted{color:var(--mu)}.error{color:var(--red)}.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;padding:12px 20px;background:#fff;border-bottom:1px solid var(--bd)}.logo{font-weight:800;font-size:18px;color:var(--gd)}.navLinks{display:flex;gap:4px;flex:1}.navLinks a{padding:6px 12px;border-radius:8px;color:var(--mu);font-weight:500}.navLinks a.active{background:var(--gl);color:var(--gd)}.navUser{display:flex;align-items:center;gap:10px}.btn{display:inline-block;padding:10px 18px;border:0;border-radius:10px;background:var(--g);color:#fff;font-weight:600;font-size:14px;cursor:pointer}.btn:hover{background:var(--gd)}.btn:disabled{opacity:.6;cursor:wait}.btn.ghost{background:none;color:var(--gd);border:1px solid var(--bd)}.btn.ghost:hover{background:var(--gl)}.btn.danger{color:var(--red)}input,select{padding:10px 12px;border:1px solid var(--bd);border-radius:10px;font-size:14px;width:100%;background:#fff}input:focus{outline:2px solid var(--gl);border-color:var(--g)}label{font-size:12px;color:var(--mu)}.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:18px}.auth{max-width:380px;margin:8vh auto;display:flex;flex-direction:column;gap:12px}.hero{padding:28px 0 20px}.hero h1{font-size:30px}.hero p{color:var(--mu)}.turfGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.turf{transition:.15s;display:block}.turf:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0001;border-color:var(--g)}.turfIcon{font-size:34px;background:var(--gl);width:60px;height:60px;border-radius:14px;display:grid;place-items:center;margin-bottom:10px}.turf p{margin:4px 0;font-size:14px}.price{margin-top:12px;font-size:20px;font-weight:700;color:var(--gd)}.price small{font-weight:400;color:var(--mu);font-size:13px}.tag{display:inline-block;padding:2px 10px;border-radius:99px;background:var(--gl);color:var(--gd);font-size:12px;font-weight:600}.tag.red{background:#fee2e2;color:var(--red)}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}.live{font-size:13px;color:var(--mu);padding:4px 12px;border:1px solid var(--bd);border-radius:99px;background:#fff}.live.on{color:var(--g);border-color:var(--g)}.dates{display:flex;gap:8px;overflow-x:auto;padding:10px 0;align-items:center}.dates input{width:auto;flex:none}.chip{flex:none;display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 14px;border:1px solid var(--bd);border-radius:12px;background:#fff;cursor:pointer;min-width:62px}.chip b{font-size:18px}.chip small{color:var(--mu)}.chip.active{background:var(--g);border-color:var(--g);color:#fff}.chip.active small{color:#dcfce7}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--mu);margin:8px 0 14px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:12px;height:12px;border-radius:4px;border:1px solid var(--bd);display:inline-block}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}.slot{padding:12px 6px;border-radius:10px;border:1px solid var(--g);background:#fff;color:var(--gd);font-weight:600;font-size:13px;cursor:pointer;transition:.12s}.slot.available:hover{background:var(--gl)}.slot.selected,.dot.selected{background:var(--g);color:#fff;border-color:var(--g)}.slot.booked,.dot.booked{background:#fee2e2;color:#b91c1c;border-color:#fecaca;cursor:not-allowed}.slot.mine,.dot.mine{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe;cursor:not-allowed}.slot.past,.dot.past{background:#f1f3f2;color:#a3aea7;border-color:var(--bd);cursor:not-allowed}.dot.available{border-color:var(--g);background:#fff}.summary{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;background:#fff;border-top:1px solid var(--bd);box-shadow:0 -6px 20px #0001;transform:translateY(110%);transition:.2s}.summary.show{transform:none}.total{font-size:20px;font-weight:800;color:var(--gd)}.tabs{display:flex;gap:8px;margin:12px 0}.tabs button{padding:8px 16px;border:1px solid var(--bd);border-radius:99px;background:#fff;cursor:pointer}.tabs .active{background:var(--g);color:#fff;border-color:var(--g)}.booking{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0}.booking p{margin:4px 0;font-size:14px}.right{display:flex;align-items:center;gap:12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.wide{grid-column:1/-1}.toasts{position:fixed;top:70px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{padding:12px 16px;border-radius:10px;background:#14231a;color:#fff;box-shadow:0 6px 18px #0003;max-width:320px;font-size:14px}.toast.success{background:var(--gd)}.toast.error{background:var(--red)}@media (max-width: 640px){.nav{flex-wrap:wrap;gap:8px}.navLinks{order:3;width:100%}.grid{grid-template-columns:1fr}.booking{flex-direction:column;align-items:flex-start}.hero h1{font-size:24px}.summary{padding:12px 16px}}
