/* Shared discovery views. Emphasis uses full borders and backgrounds. */
.search-form { min-width: 0; flex: 1 1 180px; max-width: 270px; }
.search-form input[type="search"] { display: block; width: 100%; min-width: 0; min-height: 44px; padding: 10px 14px 10px 44px; border: 1px solid var(--line); border-radius: 8px; background: rgba(23,31,47,.88); color: var(--text); font: inherit; font-size: 14px; appearance: none; -webkit-appearance: none; outline: none; }
.search-form input[type="search"]:focus { border-color: rgba(255,90,102,.72); box-shadow: 0 0 0 3px rgba(255,90,102,.12); }
.search-form input[type="search"]::placeholder { color: var(--muted); opacity: 1; }
.search-form:before, .search-form:after { pointer-events: none; }
.favorites-nav { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; color: var(--text); font-size: 13px; text-underline-offset: 4px; }
.favorites-nav:focus-visible { outline: 3px solid var(--accent-2); outline-offset: 3px; }
.discovery-section { margin: 28px 0 36px; }
.discovery-section h2 { color: var(--text); font-size: 22px; line-height: 1.5; margin-bottom: 12px; }
.discovery-lede { max-width: 800px; color: var(--muted); font-size: 15px; line-height: 1.85; margin: 12px 0 24px; }
.discovery-intro { max-width: 800px; color: var(--muted); line-height: 1.85; margin: 12px 0 24px; }
.discovery-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; padding: 20px; margin: 20px 0; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.discovery-field { display: grid; gap: 8px; flex: 1 1 180px; min-width: 0; }
.discovery-field label { font-size: 13px; font-weight: 700; color: var(--muted); }
.discovery-field input, .discovery-field select { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--text); font: inherit; }
.discovery-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); color: var(--text); font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; text-align: center; cursor: pointer; }
.discovery-button:hover { border-color: var(--accent); background: #252c3d; }
.discovery-button.is-primary { background: var(--accent); border-color: var(--accent); color: #14090d; }
.discovery-button.is-quiet { background: transparent; font-weight: 400; color: var(--muted); }
.discovery-button:disabled { cursor: wait; opacity: .65; }
.discovery-button:focus-visible, .discovery-field input:focus-visible, .discovery-field select:focus-visible, .discovery-tabs a:focus-visible, .favorite-name a:focus-visible { outline: 3px solid var(--accent-2); outline-offset: 3px; }
.discovery-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin: 18px 0; }
.discovery-toolbar p { flex: 1 1 260px; }
form.discovery-toolbar { align-items: end; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
form.discovery-toolbar label { display: grid; gap: 8px; color: var(--muted); font-size: 13px; line-height: 1.5; }
form.discovery-toolbar label:has(input[type="search"]) { flex: 1 1 250px; }
form.discovery-toolbar input, form.discovery-toolbar select { min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--text); font: inherit; }
form.discovery-toolbar button { min-height: 44px; padding: 10px 18px; border: 1px solid var(--accent); border-radius: 8px; background: var(--accent); color: #14090d; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
form.discovery-toolbar input:focus-visible, form.discovery-toolbar select:focus-visible, form.discovery-toolbar button:focus-visible { outline: 3px solid var(--accent-2); outline-offset: 3px; }
.discovery-note, .discovery-status { color: var(--muted); font-size: 13px; line-height: 1.8; }
.discovery-status { min-height: 1.8em; }
.discovery-status.is-live { color: #ffb4bb; }
.discovery-meta { color: var(--muted); font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.discovery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 20px 0; }
.discovery-card { display: flex; flex-direction: column; align-items: start; gap: 10px; min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.discovery-card:hover { border-color: #647086; }
.discovery-card h2, .discovery-card h3 { font-size: 18px; line-height: 1.5; margin: 0; overflow-wrap: anywhere; }
.discovery-card a { text-underline-offset: 4px; overflow-wrap: anywhere; }
.discovery-card a:hover { color: var(--accent-2); }
.discovery-card .discovery-meta { margin-top: auto; }
.discovery-card .favorite-button { position: static; width: 38px; height: 38px; flex-shrink: 0; }
.discovery-note a { color: var(--accent-2); text-underline-offset: 3px; }
.discovery-tabs { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 8px; height: auto; margin: 18px 0; }
.discovery-tabs a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 8px 15px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--panel); font-size: 14px; text-decoration: none; }
.discovery-tabs a[aria-current], .discovery-tabs a.active { border-color: var(--accent); background: rgba(255,90,102,.14); color: var(--text); }
.discovery-tabs a.active:after { display: none; }
.discovery-badge { display: inline-flex; align-items: center; width: fit-content; min-height: 28px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.04); color: var(--muted); font-size: 12px; line-height: 1.5; }
.discovery-badge.is-live { border-color: rgba(255,90,102,.55); background: rgba(255,90,102,.13); color: #ffb4bb; }
.discovery-empty { grid-column: 1 / -1; border: 1px dashed var(--line); border-radius: 12px; padding: 32px 24px; color: var(--muted); line-height: 1.85; text-align: center; }
.discovery-empty h2 { color: var(--text); font-size: 20px; margin-bottom: 8px; }
.discovery-empty .discovery-button { margin-top: 18px; }
.discovery-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; height: auto; margin: 28px 0; color: var(--muted); font-size: 14px; }
.discovery-pagination a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--text); text-decoration: none; }
.discovery-pagination a:hover { border-color: var(--accent); }
.discovery-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.discovery-stat { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
.discovery-stat dt { color: var(--muted); font-size: 13px; line-height: 1.6; }
.discovery-stat dd { color: var(--text); font-size: 24px; font-weight: 700; line-height: 1.5; margin-top: 8px; overflow-wrap: anywhere; }
.discovery-stat small { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.6; }
.activity-summary { line-height: 1.85; color: var(--muted); margin: 12px 0 20px; }
.activity-summary strong { color: var(--text); }
.activity-calendar { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 5px; margin: 16px 0; }
.activity-calendar caption { text-align: start; color: var(--text); font-size: 17px; font-weight: 700; padding-bottom: 12px; }
.activity-calendar th { padding: 5px; color: var(--muted); font-size: 12px; font-weight: 500; }
.activity-calendar td { vertical-align: top; height: 72px; padding: 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); color: var(--muted); font-size: 12px; }
.activity-calendar td.is-observed { border-color: rgba(255,90,102,.6); background: rgba(255,90,102,.13); color: var(--text); }
.activity-calendar td.is-outside { border-color: transparent; background: transparent; }
.activity-calendar .day { display: block; font-size: 14px; font-weight: 700; }
.activity-calendar .day-detail { display: block; font-size: 11px; margin-top: 5px; }
.calendar-grid, .calendar-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.calendar-weekdays { margin: 14px 0 6px; color: var(--muted); font-size: 12px; text-align: center; }
.calendar-day { display: flex; flex-direction: column; gap: 5px; min-width: 0; min-height: 76px; padding: 9px 7px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); color: var(--muted); font-size: 12px; line-height: 1.4; }
.calendar-day.has-activity { border-color: rgba(255,90,102,.6); background: rgba(255,90,102,.13); color: var(--text); }
.calendar-day.is-empty, .calendar-day.empty { border-color: transparent; background: transparent; }
.calendar-day strong, .calendar-day time { font-size: 14px; font-weight: 700; }
.calendar-day small { font-size: 11px; }
.calendar-day small span { display: block; }
.calendar-legend { display: flex; gap: 16px; flex-wrap: wrap; color: var(--muted); font-size: 12px; line-height: 1.7; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 7px; }
.calendar-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; border: 1px solid var(--line); background: var(--panel); }
.calendar-legend .is-observed i { border-color: rgba(255,90,102,.6); background: rgba(255,90,102,.25); }
.favorite-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 20px 0 32px; }
.favorite-profile { display: flex; flex-direction: column; align-items: start; gap: 14px; min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: linear-gradient(145deg, var(--panel-2), var(--panel)); }
.favorite-name { font-size: 18px; line-height: 1.4; overflow-wrap: anywhere; }
.favorite-name a { text-underline-offset: 4px; text-decoration-thickness: 1px; }
.favorite-name a:hover { color: var(--accent-2); }
.favorite-details { display: grid; gap: 10px; width: 100%; }
.favorite-detail { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: 13px; line-height: 1.6; }
.favorite-detail dt { color: var(--muted); }
.favorite-detail dd { color: var(--text); }
.favorite-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 4px; }
.favorite-actions .discovery-button { font-size: 12px; padding: 8px 10px; }
.directory-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; margin: 20px 0; }
.directory-table { width: 100%; border-collapse: collapse; font-size: 14px; text-align: start; }
.directory-table th, .directory-table td { padding: 14px 16px; border-bottom: 1px solid var(--line); line-height: 1.6; }
.directory-table th { color: var(--muted); font-size: 12px; font-weight: 600; background: var(--panel); white-space: nowrap; }
.directory-table tr:last-child td { border-bottom: 0; }
.directory-table a { color: var(--text); text-underline-offset: 4px; overflow-wrap: anywhere; }
.directory-table a:hover { color: var(--accent-2); }
.discovery-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; margin: 20px 0; }
.discovery-table-wrap table { width: 100%; border-collapse: collapse; text-align: start; }
.discovery-table-wrap th, .discovery-table-wrap td { padding: 13px 16px; border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.7; }
.discovery-table-wrap th { background: var(--panel); color: var(--muted); font-size: 12px; white-space: nowrap; }
.discovery-table-wrap tr:last-child td { border-bottom: 0; }
.share-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0; }
.share-actions button, .share-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); color: var(--text); font: inherit; font-size: 14px; text-decoration: none; cursor: pointer; }
.share-actions button:hover, .share-actions a:hover { border-color: var(--accent); }
@media (max-width: 900px) {
  .discovery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .favorite-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .discovery-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .search-form input[type="search"] { font-size: 16px; }
}
@media (max-width: 600px) {
  .discovery-grid { grid-template-columns: 1fr; }
  form.discovery-toolbar > label, form.discovery-toolbar > input, form.discovery-toolbar > select, form.discovery-toolbar > button { width: 100%; }
  .favorite-grid { grid-template-columns: 1fr; }
  .favorite-profile { padding: 18px; }
  .discovery-controls { padding: 16px; gap: 12px; }
  .discovery-controls > .discovery-button { width: 100%; }
  .discovery-summary { gap: 8px; }
  .discovery-stat { padding: 14px 12px; }
  .discovery-stat dd { font-size: 21px; }
  .activity-calendar { border-spacing: 3px; }
  .activity-calendar td { height: 62px; padding: 6px 3px; }
  .activity-calendar .day-detail { font-size: 10px; }
  .calendar-grid, .calendar-weekdays { gap: 3px; }
  .calendar-day { min-height: 65px; padding: 7px 3px; font-size: 10px; }
  .calendar-day small { font-size: 10px; }
  .directory-table th, .directory-table td { padding: 12px 10px; }
}
