/* Places module — BusFinder */
:root { --pl-green:#16a34a; --pl-dark:#0f172a; --pl-gray:#64748b; }

.pl-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.pl-card { display:flex; flex-direction:column; background:#fff; border:2px solid #f1f5f9; border-radius:16px; overflow:hidden; text-decoration:none; color:inherit; transition:all .25s; height:100%; }
.pl-card:hover { border-color:var(--pl-green); transform:translateY(-4px); box-shadow:0 12px 30px rgba(22,163,74,.15); color:inherit; }
.pl-card-premium { border-color:#fbbf24; box-shadow:0 6px 22px rgba(245,158,11,.18); }
.pl-card-img { position:relative; aspect-ratio:16/10; background:#f1f5f9; overflow:hidden; }
.pl-card-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.pl-card:hover .pl-card-img img { transform:scale(1.05); }
.pl-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3rem; opacity:.85; }
.pl-cat-pill { position:absolute; left:10px; top:10px; font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:20px; }
.pl-sponsor-pill { position:absolute; right:10px; top:10px; font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:20px; background:rgba(15,23,42,.8); color:#fff; letter-spacing:.3px; }
.pl-sponsor-pill.premium { background:linear-gradient(135deg,#f59e0b,#d97706); }
.pl-card-body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:6px; flex:1; }
.pl-card-title { font-size:1.02rem; font-weight:800; margin:0; color:var(--pl-dark); line-height:1.3; }
.pl-card-loc { font-size:.82rem; color:var(--pl-gray); }
.pl-card-meta { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:auto; padding-top:8px; border-top:1px solid #f1f5f9; flex-wrap:wrap; }
.pl-card-price { color:var(--pl-green); font-weight:800; font-size:.92rem; }
.pl-card-price small { font-weight:500; color:var(--pl-gray); }
.pl-stars { color:#f59e0b; letter-spacing:1px; }
.pl-stars-sm { font-size:.75rem; }

/* category tiles + filters */
.pl-cat-tile { display:flex; align-items:center; gap:12px; background:#fff; border:2px solid #f1f5f9; border-radius:14px; padding:14px 16px; text-decoration:none; color:var(--pl-dark); font-weight:700; transition:all .2s; }
.pl-cat-tile:hover { border-color:var(--pl-green); transform:translateY(-3px); box-shadow:0 8px 22px rgba(0,0,0,.07); color:var(--pl-dark); }
.pl-cat-ico { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; }
.pl-chip { display:inline-flex; align-items:center; gap:6px; padding:7px 16px; border-radius:30px; border:2px solid #e2e8f0; background:#fff; font-weight:600; font-size:.86rem; color:var(--pl-dark); text-decoration:none; transition:all .15s; }
.pl-chip:hover { border-color:var(--pl-green); color:var(--pl-green); }
.pl-chip.active { background:var(--pl-green); border-color:var(--pl-green); color:#fff; }
.pl-hero { background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 55%,#0f4c2a 100%); color:#fff; padding:42px 0 34px; }
.pl-filter { background:#fff; border-radius:16px; box-shadow:0 10px 30px rgba(0,0,0,.18); padding:14px; margin-top:22px; }

/* detail page */
.pl-gallery { display:grid; grid-template-columns:2fr 1fr; gap:8px; border-radius:16px; overflow:hidden; }
.pl-gallery .main { aspect-ratio:16/10; background:#f1f5f9; }
.pl-gallery img { width:100%; height:100%; object-fit:cover; display:block; cursor:zoom-in; }
.pl-gallery .side { display:grid; grid-template-rows:1fr 1fr; gap:8px; }
.pl-gallery .side > div { background:#f1f5f9; overflow:hidden; }
@media (max-width:767px){ .pl-gallery{grid-template-columns:1fr;} .pl-gallery .side{grid-template-rows:none;grid-template-columns:repeat(2,1fr);} .pl-gallery .side>div{aspect-ratio:16/10;} }
.pl-box { background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:20px; }
.pl-amenity { display:inline-flex; align-items:center; gap:6px; background:#f0fdf4; color:#166534; border-radius:20px; padding:5px 12px; font-size:.8rem; font-weight:600; margin:0 6px 8px 0; }
.pl-review { border-bottom:1px solid #f1f5f9; padding:14px 0; }
.pl-review:last-child { border-bottom:0; }
.pl-avatar { width:38px; height:38px; border-radius:50%; background:#dcfce7; color:#15803d; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pl-star-input { display:inline-flex; flex-direction:row-reverse; gap:4px; }
.pl-star-input input { display:none; }
.pl-star-input label { font-size:1.7rem; color:#cbd5e1; cursor:pointer; transition:color .12s; line-height:1; }
.pl-star-input input:checked ~ label, .pl-star-input label:hover, .pl-star-input label:hover ~ label { color:#f59e0b; }
.pl-bar { height:8px; background:#f1f5f9; border-radius:6px; overflow:hidden; }
.pl-bar > span { display:block; height:100%; background:#f59e0b; }

/* add place form */
.pl-cat-radio { position:relative; }
.pl-cat-radio input { position:absolute; opacity:0; }
.pl-cat-radio label { display:flex; flex-direction:column; align-items:center; gap:6px; padding:16px 8px; border:2px solid #e2e8f0; border-radius:14px; cursor:pointer; font-weight:700; font-size:.88rem; text-align:center; transition:all .15s; background:#fff; }
.pl-cat-radio label i { font-size:1.5rem; }
.pl-cat-radio input:checked + label { border-color:var(--pl-green); background:#f0fdf4; box-shadow:0 0 0 4px rgba(22,163,74,.12); }
.pl-thumb { position:relative; width:92px; height:72px; border-radius:10px; overflow:hidden; border:1px solid #e2e8f0; }
.pl-thumb img { width:100%; height:100%; object-fit:cover; }
.pl-thumb label { position:absolute; inset:auto 0 0 0; background:rgba(15,23,42,.75); color:#fff; font-size:.65rem; text-align:center; padding:2px; cursor:pointer; }
.pl-section-title { font-size:1.6rem; font-weight:800; color:var(--pl-dark); position:relative; padding-bottom:.5rem; }
.pl-section-title::after { content:''; position:absolute; bottom:0; left:0; width:50px; height:4px; background:var(--pl-green); border-radius:2px; }

/* user dashboard */
.dash-stat { background:#fff; border-radius:14px; padding:16px; display:flex; align-items:center; gap:14px; border:1px solid #eef2f7; height:100%; }
.dash-stat .ico { width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; }
.dash-stat .num { font-size:1.5rem; font-weight:800; line-height:1; }
.dash-action { display:flex; align-items:center; gap:10px; padding:12px 14px; border:2px dashed #cbd5e1; border-radius:12px; text-decoration:none; color:var(--pl-dark); font-weight:600; font-size:.9rem; transition:all .15s; }
.dash-action:hover { border-color:var(--pl-green); background:#f0fdf4; color:var(--pl-green); }
