/* ============================================================
   business.css - Business directory styles
   ============================================================ */

/* ---- Knowledge panel (search results) ---- */
.biz-panel {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.biz-panel-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.biz-panel-name { font-size:1.3rem; font-weight:700; color:#111827; margin:0 0 .2rem; }
.biz-panel-category { font-size:.8rem; color:#6b7280; text-transform:uppercase; letter-spacing:.06em; }
.biz-panel-claimed { display:inline-flex; align-items:center; gap:.3rem; font-size:.75rem; padding:.2rem .6rem; border-radius:20px; }
.biz-panel-claimed.is-claimed { background:#d1fae5; color:#065f46; }
.biz-panel-claimed.not-claimed { background:#fef3c7; color:#92400e; }
.biz-panel-claimed.not-claimed a { color:#92400e; font-weight:600; }
.biz-panel-body { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin-top:1rem; }
@media (max-width:600px) { .biz-panel-body { grid-template-columns:1fr; } }
.biz-info-row { display:flex; gap:.5rem; font-size:.88rem; margin-bottom:.5rem; color:#374151; }
.biz-info-row a { color:#1d4ed8; }
.biz-open-now   { color:#059669; font-weight:600; font-size:.85rem; }
.biz-closed-now { color:#dc2626; font-weight:600; font-size:.85rem; }
.biz-hours-table { font-size:.8rem; width:100%; border-collapse:collapse; }
.biz-hours-table td { padding:.12rem .35rem; }
.biz-hours-table .today td { font-weight:700; background:#f9fafb; border-radius:4px; }
.biz-map-links { display:flex; gap:.6rem; margin-top:1rem; flex-wrap:wrap; }
.biz-map-btn { display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .9rem; border-radius:8px; font-size:.82rem; font-weight:600; text-decoration:none; transition:opacity .15s; }
.biz-map-btn:hover { opacity:.85; }
.biz-map-btn.google { background:#4285f4; color:#fff; }
.biz-map-btn.apple  { background:#1a1a1a; color:#fff; }
.biz-website-btn { display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .9rem; border-radius:8px; font-size:.82rem; font-weight:600; text-decoration:none; background:#f3f4f6; color:#374151; border:1px solid #e5e7eb; }
.biz-disclaimer { font-size:.72rem; color:#9ca3af; margin-top:.75rem; border-top:1px solid #f3f4f6; padding-top:.6rem; line-height:1.5; }

/* ---- Submit form ---- */
.biz-submit-wrap { max-width:700px; margin:2rem auto; padding:0 1.5rem 4rem; }
.biz-submit-wrap h1 { font-size:1.75rem; margin-bottom:.25rem; }
.biz-section { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:1.5rem; margin-bottom:1.25rem; }
.biz-section h2 { font-size:1rem; font-weight:700; margin:0 0 1rem; color:#374151; border-bottom:1px solid #f3f4f6; padding-bottom:.5rem; }
.biz-form label { display:block; font-size:.85rem; font-weight:600; color:#374151; margin-bottom:.75rem; }
.biz-form label input,.biz-form label select,.biz-form label textarea { display:block; width:100%; margin-top:.3rem; padding:.55rem .75rem; border:1px solid #d1d5db; border-radius:8px; font:inherit; box-sizing:border-box; }
.biz-form label input:focus,.biz-form label select:focus,.biz-form label textarea:focus { outline:none; border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.15); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.field-row-3 { grid-template-columns:2fr 1fr 1fr; }
@media (max-width:500px) { .field-row,.field-row-3 { grid-template-columns:1fr; } }
.req { color:#dc2626; }
.btn-submit { width:100%; padding:.75rem; font-size:1rem; margin-top:.5rem; }
.hours-grid { display:grid; gap:.4rem; }
.hours-header { display:grid; grid-template-columns:120px 60px 1fr 1fr; gap:.5rem; font-size:.75rem; font-weight:700; color:#6b7280; text-transform:uppercase; padding:0 .25rem; }
.hours-row { display:grid; grid-template-columns:120px 60px 1fr 1fr; gap:.5rem; align-items:center; }
.day-label { font-size:.88rem; font-weight:600; }
.closed-check { width:20px; height:20px; cursor:pointer; justify-self:center; }
.time-input { padding:.4rem .5rem; border:1px solid #d1d5db; border-radius:6px; font:inherit; font-size:.85rem; width:100%; box-sizing:border-box; }
.back-link { color:#6b7280; font-size:.9rem; text-decoration:none; display:inline-block; margin-bottom:1.25rem; }

/* ---- OSM map embed ---- */
.biz-osm-wrap { margin-top:1rem; border-radius:10px; overflow:hidden; border:1px solid #e5e7eb; }
.biz-osm-wrap iframe { width:100%; height:200px; display:block; border:none; }
.biz-map-btn.directions-smart { background:#10b981; color:#fff; }

/* ---- Reviews ---- */
.review-summary { display:flex; align-items:center; gap:.75rem; margin-bottom:1.5rem; font-size:1rem; }
.stars-large { font-size:1.5rem; color:#f59e0b; letter-spacing:2px; }
.star-picker-wrap { margin-bottom:.75rem; }
.field-label { font-size:.85rem; font-weight:600; color:#374151; display:block; margin-bottom:.4rem; }
.star-picker { display:flex; flex-direction:row-reverse; gap:.2rem; width:fit-content; }
.star-picker input { display:none; }
.star-picker label { font-size:2rem; color:#d1d5db; cursor:pointer; transition:color .1s; }
.star-picker input:checked ~ label,
.star-picker label:hover,
.star-picker label:hover ~ label { color:#f59e0b; }
.reviews-list { margin-top:1.5rem; display:flex; flex-direction:column; gap:1rem; }
.review-card { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:1rem 1.25rem; }
.review-header { display:flex; align-items:center; gap:.75rem; margin-bottom:.5rem; flex-wrap:wrap; }
.review-stars { color:#f59e0b; font-size:1rem; letter-spacing:1px; }
.review-date { font-size:.78rem; color:#9ca3af; margin-left:auto; }
.review-title { font-weight:700; margin-bottom:.35rem; }
.review-body { font-size:.88rem; color:#374151; line-height:1.65; }

/* ---- Category browse ---- */
.category-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:.75rem; margin-top:1rem; }
.category-card { display:flex; justify-content:space-between; align-items:center; padding:.75rem 1rem; background:#fff; border:1px solid #e5e7eb; border-radius:10px; text-decoration:none; transition:all .15s; }
.category-card:hover { border-color:#3b82f6; box-shadow:0 2px 8px rgba(59,130,246,.1); }
.cat-name { font-size:.88rem; font-weight:600; color:#374151; }
.cat-count { font-size:.78rem; color:#6b7280; background:#f3f4f6; padding:.15rem .5rem; border-radius:10px; }
.biz-category-list { display:flex; flex-direction:column; gap:.75rem; }
.biz-list-card { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:1rem 1.25rem; }
.biz-list-name { font-size:1rem; font-weight:700; color:#1d4ed8; text-decoration:none; display:block; margin-bottom:.3rem; }
.biz-list-name:hover { text-decoration:underline; }
.biz-list-stars { color:#f59e0b; font-size:.85rem; }
.biz-list-address { font-size:.82rem; color:#6b7280; margin-top:.2rem; }

/* ---- Nearby businesses panel ---- */
.nearby-section { margin-top:1.5rem; }
.nearby-section h3 { font-size:.85rem; text-transform:uppercase; letter-spacing:.07em; color:#6b7280; font-weight:700; margin-bottom:.75rem; }
.nearby-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px,1fr)); gap:.6rem; }
.nearby-card { background:#f9fafb; border:1px solid #e5e7eb; border-radius:8px; padding:.75rem; text-decoration:none; display:block; transition:all .15s; }
.nearby-card:hover { border-color:#3b82f6; background:#eff6ff; }
.nearby-name { font-size:.85rem; font-weight:600; color:#1d4ed8; display:block; margin-bottom:.2rem; }
.nearby-cat { font-size:.75rem; color:#6b7280; }
.nearby-dist { font-size:.72rem; color:#9ca3af; float:right; }
.nearby-stars { color:#f59e0b; font-size:.75rem; }

/* ---- Owner responses ---- */
.owner-response { margin-top:.75rem; padding:.75rem 1rem; background:#f0f9ff; border-left:3px solid #3b82f6; border-radius:0 6px 6px 0; }
.owner-response-label { display:flex; align-items:center; gap:.75rem; margin-bottom:.4rem; font-size:.82rem; }
.owner-response-label strong { color:#1d4ed8; }
.owner-response-body { font-size:.85rem; color:#374151; line-height:1.6; }
.owner-respond-form { margin-top:.75rem; }
.owner-respond-input { width:100%; padding:.5rem .75rem; border:1px solid #d1d5db; border-radius:6px; font-size:.85rem; resize:vertical; font-family:inherit; }
.owner-respond-input:focus { outline:none; border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,.15); }
.btn-small { padding:.3rem .75rem; border-radius:6px; font-size:.8rem; font-weight:600; text-decoration:none; cursor:pointer; border:1px solid #e5e7eb; background:#f3f4f6; color:#374151; }
.btn-small.btn-primary { background:#3b82f6; color:#fff; border-color:#3b82f6; }
.btn-small.btn-primary:hover { background:#2563eb; }

/* ---- Hours copy button ---- */
.copy-hours-btn { padding:.2rem .5rem; font-size:.72rem; background:#f3f4f6; border:1px solid #d1d5db; border-radius:5px; cursor:pointer; color:#374151; white-space:nowrap; }
.copy-hours-btn:hover { background:#e5e7eb; }
.hours-header { display:grid; grid-template-columns:100px 60px 1fr 1fr 90px; gap:.5rem; align-items:center; font-size:.8rem; font-weight:600; color:#6b7280; padding:.4rem 0; }
.hours-row    { display:grid; grid-template-columns:100px 60px 1fr 1fr 90px; gap:.5rem; align-items:center; padding:.3rem 0; border-bottom:1px solid #f3f4f6; }
/* ===========================================
   MOBILE RESPONSIVE - append to respective CSS files
   Breakpoints: 768px (tablet), 480px (phone)
   =========================================== */

/* ============================================
   style.css additions
   ============================================ */

/* ---- Search results header ---- */
@media (max-width: 768px) {
  .results-header { flex-direction: column; align-items: flex-start; gap: .5rem; padding: .75rem 1rem; }
  .search-form-top { width: 100%; max-width: none; }
  .search-form-top input[type="text"] { font-size: 16px; } /* prevent iOS zoom */
  .results-main { padding: .75rem 1rem; flex-direction: column; }
  .results-col { width: 100%; }
  .biz-panel { margin-bottom: 1rem; width: 100%; }
  .result-item { padding: .75rem 0; }
  .result-title { font-size: 1rem; }
  .result-url { font-size: .75rem; }
  .search-filters { gap: .3rem; }
  .filter-chip { font-size: .75rem; padding: .2rem .55rem; }
  /* Home page */
  .home-wrap { padding: 1.5rem 1rem; }
  .logo-large { font-size: 2.2rem; }
  .search-box { flex-direction: row; }
  .search-box input { font-size: 16px; }
  /* Pagination */
  .pagination { flex-wrap: wrap; gap: .3rem; justify-content: center; }
}

@media (max-width: 480px) {
  .logo-large { font-size: 1.8rem; }
  .results-header { padding: .5rem .75rem; }
  .results-main { padding: .5rem .75rem; }
  .biz-listing-row { flex-direction: column; align-items: flex-start; }
  .biz-listing-btns { width: 100%; }
  .biz-listing-btns a { flex: 1; text-align: center; }
}

/* ============================================
   admin.css additions
   ============================================ */

@media (max-width: 768px) {
  /* Collapse sidebar to top nav on mobile */
  .admin-layout { flex-direction: column; }
  .sidebar {
    width: 100%;
    height: auto;
    position: relative;
    flex-direction: row;
    flex-wrap: wrap;
    overflow-y: visible;
    padding: .5rem;
  }
  .sidebar-logo { padding: .5rem .75rem; border-bottom: none; flex: 0 0 auto; }
  .sidebar-nav { display: flex; flex-direction: row; flex-wrap: wrap; gap: .25rem; padding: .25rem; width: 100%; }
  .sidebar-nav a { padding: .35rem .7rem; font-size: .78rem; border-radius: 6px; }
  .sidebar-footer { display: none; }
  .admin-main { padding: 1rem; min-height: auto; }
  .admin-topbar { flex-wrap: wrap; gap: .5rem; padding: .75rem 1rem; }
  /* Stats grid */
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: .5rem; }
  .stat-card { padding: .75rem; }
  .stat-num { font-size: 1.5rem; }
  /* Tables */
  .users-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .users th, .users td { padding: .4rem .5rem; font-size: .78rem; white-space: nowrap; }
  /* Tab nav */
  .tab-nav { gap: .25rem; }
  .tab-link { padding: .3rem .6rem; font-size: .75rem; }
  /* Search bar */
  .admin-search-form { flex-wrap: wrap; }
  .admin-search-form input { width: 100%; }
  /* Crawl activity */
  .crawl-grid { grid-template-columns: 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  /* Action buttons */
  .actions { flex-wrap: wrap; gap: .25rem; }
  .act-btn { padding: .25rem .5rem; font-size: .72rem; }
}

@media (max-width: 480px) {
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .admin-main { padding: .75rem; }
  .sidebar-nav a { font-size: .72rem; padding: .3rem .5rem; }
}

/* ============================================
   user.css additions
   ============================================ */

@media (max-width: 768px) {
  /* Dashboard header */
  .dash-header { flex-wrap: wrap; gap: .5rem; padding: .75rem 1rem; }
  .dash-nav { gap: .5rem; }
  .dash-nav a { font-size: .82rem; }
  /* Welcome section */
  .dash-welcome { padding: 1rem; }
  .dash-container { padding: 1rem; }
  /* Grid */
  .dash-grid { grid-template-columns: 1fr; gap: .75rem; }
  .dash-card { padding: 1rem; }
  .dash-card-wide { grid-column: 1; }
  /* Business listing */
  .biz-listing-row { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .biz-listing-btns { width: 100%; display: grid; grid-template-columns: repeat(2, 1fr); }
  .biz-listing-btns a { text-align: center; }
  /* Auth forms */
  .auth-card { padding: 1.5rem 1rem; margin: 1rem; }
  .form-row { grid-template-columns: 1fr; }
  /* Buttons */
  .btn-primary, .btn-secondary { width: 100%; text-align: center; padding: .65rem 1rem; }
}

@media (max-width: 480px) {
  .dash-header { padding: .5rem .75rem; }
  .dash-container { padding: .75rem; }
  .dash-welcome h1 { font-size: 1.25rem; }
  .biz-listing-btns { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================
   business.css additions
   ============================================ */

@media (max-width: 768px) {
  /* Knowledge panel */
  .biz-panel { padding: 1rem; }
  .biz-panel-header { flex-direction: column; gap: .5rem; }
  .biz-map-links { flex-wrap: wrap; gap: .4rem; }
  .biz-map-btn { flex: 1; text-align: center; min-width: 100px; }
  /* Hours table */
  .biz-hours-table { font-size: .82rem; }
  .biz-hours-table td, .biz-hours-table th { padding: .3rem .4rem; }
  /* OSM map */
  .biz-osm-wrap iframe { height: 160px; }
  /* Submit/manage forms */
  .biz-submit-wrap { padding: 1rem; }
  .biz-form label { font-size: .88rem; }
  .field-row { flex-direction: column; gap: .5rem; }
  /* Hours grid */
  .hours-header { grid-template-columns: 80px 50px 1fr 1fr 70px; font-size: .72rem; }
  .hours-row    { grid-template-columns: 80px 50px 1fr 1fr 70px; }
  .copy-hours-btn { font-size: .65rem; padding: .15rem .3rem; }
  /* Category grid */
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  /* Nearby grid */
  .nearby-grid { grid-template-columns: 1fr 1fr; }
  /* Reviews */
  .review-header { flex-wrap: wrap; gap: .3rem; }
  .star-picker label { font-size: 1.6rem; }
  /* Nearby controls */
  .nearby-controls { flex-direction: column; align-items: stretch; }
  .nearby-controls select { width: 100%; }
}

@media (max-width: 480px) {
  .biz-panel { padding: .75rem; }
  .biz-map-links { flex-direction: column; }
  .biz-map-btn, .biz-website-btn { width: 100%; text-align: center; }
  .hours-header { display: none; } /* hide header, labels on inputs instead */
  .hours-row { grid-template-columns: 1fr 40px 1fr 1fr; gap: .25rem; }
  .copy-hours-btn { display: none; } /* too small, use copy all buttons instead */
  .category-grid { grid-template-columns: 1fr; }
  .nearby-grid { grid-template-columns: 1fr; }
  .biz-category-list .biz-list-card { flex-direction: column; align-items: flex-start; }
}

/* ============================================
   search_enhancements.css additions
   ============================================ */

@media (max-width: 768px) {
  #suggest-box { border-radius: 0 0 8px 8px; }
  #suggest-box li { padding: .7rem 1rem; font-size: .88rem; }
  .related-searches { padding: .75rem 1rem; margin: 1rem 0; }
  .related-chip { font-size: .78rem; padding: .25rem .65rem; }
  .search-filters { padding: 0 .25rem; }
}

/* ============================================
   Global mobile utilities
   ============================================ */

/* Prevent horizontal scroll */
@media (max-width: 768px) {
  html, body { overflow-x: hidden; max-width: 100vw; }
  img { max-width: 100%; height: auto; }
  table { max-width: 100%; }

  /* Touch-friendly tap targets */
  button, a, input[type="checkbox"], input[type="radio"] { min-height: 36px; }
  input[type="checkbox"], input[type="radio"] { min-height: auto; width: 18px; height: 18px; }

  /* Prevent iOS font size adjustment */
  * { -webkit-text-size-adjust: 100%; }

  /* Better scrollable tables */
  .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 8px; }
}
