/* Feedback Floating Button and Modal */
.feedback-fab { position: fixed; bottom: 20px; right: 20px; background-color: var(--primary-color); color: white; padding: 10px 15px; border-radius: 30px; box-shadow: 0 4px 6px rgba(0,0,0,0.2); cursor: pointer; font-weight: bold; z-index: 9999; display: flex; align-items: center; gap: 8px; border: none; transition: transform 0.2s, background-color 0.2s; }
.feedback-fab:hover { transform: scale(1.05); background-color: var(--primary-dark); }
.feedback-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 10000; align-items: center; justify-content: center; }
.feedback-modal.active { display: flex; }
.feedback-content { background: var(--bg-card); width: 90%; max-width: 500px; border-radius: var(--radius-lg); padding: var(--spacing-lg); box-shadow: 0 10px 25px rgba(0,0,0,0.2); position: relative; max-height: 90vh; overflow-y: auto; }
.feedback-close { position: absolute; top: 15px; left: 15px; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--text-muted); }
.feedback-content h3 { margin-bottom: var(--spacing-md); color: var(--primary-dark); }
.feedback-form label { display: block; margin-bottom: 5px; font-weight: bold; }
.feedback-form select, .feedback-form textarea, .feedback-form input[type="text"] { width: 100%; padding: 10px; margin-bottom: 15px; border: 1px solid var(--border-color); border-radius: var(--radius-md); font-family: var(--font-family); background: var(--bg-main); color: var(--text-main); }
.feedback-form button { width: 100%; padding: 12px; background-color: var(--primary-color); color: white; border: none; border-radius: var(--radius-md); font-weight: bold; cursor: pointer; }
.feedback-form button:hover { background-color: var(--primary-dark); }
.feedback-success { display: none; text-align: center; padding: 20px; color: var(--primary-color); font-weight: bold; }

/* Directory data notice */
.directory-notice { position: fixed; inset: 0; z-index: 11000; display: flex; align-items: center; justify-content: center; padding: 18px; background: rgba(0,0,0,.48); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; }
.directory-notice.active { opacity: 1; visibility: visible; }
.directory-notice-card { position: relative; width: min(92vw,500px); max-height: min(88vh,620px); overflow-y: auto; box-sizing: border-box; padding: 26px 24px 22px; text-align: center; direction: rtl; background: #fff; color: var(--text-main,#263238); border: 2px solid var(--primary-color,#007A5E); border-radius: 18px; box-shadow: 0 18px 45px rgba(0,0,0,.22); transform: translateY(12px) scale(.98); transition: transform .22s ease; }
.directory-notice.active .directory-notice-card { transform: translateY(0) scale(1); }
.directory-notice-icon { width: 52px; height: 52px; margin: 0 auto 10px; display: grid; place-items: center; border-radius: 50%; background: #e8f6f1; color: var(--primary-color,#007A5E); font-size: 1.35rem; }
.directory-notice-card h3 { margin: 0 0 12px; color: var(--primary-dark,#006b52); font-size: 1.25rem; }
.directory-notice-card p { margin: 8px 0; line-height: 1.75; font-size: .94rem; }
.directory-notice-card strong { color: var(--primary-dark,#006b52); }
.directory-notice-close { position: absolute; top: 10px; left: 10px; width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #fff1f1; color: #d32f2f; font-size: 1.45rem; line-height: 1; cursor: pointer; }
.directory-notice-feedback,.directory-notice-dismiss { width: 100%; border: 0; border-radius: 10px; padding: 11px 14px; margin-top: 12px; font-family: inherit; font-weight: 700; cursor: pointer; transition: transform .15s ease,opacity .15s ease; }
.directory-notice-feedback:hover,.directory-notice-dismiss:hover { transform: translateY(-1px); }
.directory-notice-feedback { background: var(--primary-color,#007A5E); color: #fff; }
.directory-notice-dismiss { margin-top: 8px; background: #d32f2f; color: #fff; }
.directory-notice-card small { display: block; margin-top: 12px; color: var(--text-muted,#68747b); font-size: .78rem; }

/* Directory card controls: favorite on top-right, verification on top-left. */
.favorite-card { position: relative; }
.favorite-card > .favorite-toggle,.favorite-card > .data-verification-badge { position: absolute; top: 12px; z-index: 3; }
.favorite-card > .favorite-toggle { right: 12px; left: auto; }
.favorite-card > .data-verification-badge { left: 12px; right: auto; }
.data-verification-badge { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: var(--bg-card,#fff); box-shadow: 0 2px 7px rgba(0,0,0,.10); font-size: 1rem; cursor: help; }
.data-verification-badge.verification-verified { color: var(--primary-color,#007A5E); background: #e8f6f1; }
.data-verification-badge.verification-review { color: #c77700; background: #fff5df; }
.data-verification-badge.verification-pending { color: #68747b; background: #f1f3f4; }
.data-verification-badge:focus-visible { outline: 2px solid var(--primary-color,#007A5E); outline-offset: 2px; }

@media (max-width:480px) {
    .directory-notice { padding: 12px; }
    .directory-notice-card { width: 100%; padding: 23px 17px 17px; border-radius: 16px; }
    .directory-notice-card p { font-size: .88rem; line-height: 1.65; }
    .directory-notice-icon { width: 46px; height: 46px; font-size: 1.2rem; }
    .favorite-card > .favorite-toggle { right: 10px; left: auto; }
    .favorite-card > .data-verification-badge { left: 10px; right: auto; }
}
