.icon-button { width: 34px; height: 34px; border-radius: 8px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); color: var(--fb-dark-text); cursor: pointer; font-weight: 900; }
.compact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.input { width: 100%; border: 1px solid rgba(255,255,255,.14); background: rgba(0,0,0,.25); color: #fff; padding: 11px 12px; border-radius: 8px; outline: none; }
.filter-drawer .input { background: #06100d; border-color: rgba(255,255,255,.24); color: #f7fff8; box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.filter-drawer .input:focus { border-color: rgba(123,213,111,.72); box-shadow: 0 0 0 3px rgba(123,213,111,.14); }
select,
select.input,
.stacked-form select,
.project-site-filter-bar select,
.project-filter-bar select,
.crm-filter-grid select,
.building-attribute-filters select,
.ownership-report-filters select,
.planning-decision-filter-grid select,
.council-filter-grid select { background-color: #07130d; color: #f7fff8; color-scheme: dark; }
select option,
select optgroup { background-color: #07130d; color: #f7fff8; }
select option:checked,
select option:hover { background-color: #243128; color: #ffffff; }
.range { width: 100%; accent-color: #7bd56f; }
.range-value { color: #e8b34f; font-size: 12px; text-align: right; }
.check-row { display: flex !important; align-items: center; gap: 10px; line-height: 1.3; }
.primary-button, .ghost-button { display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; padding: 11px 16px; font-weight: 800; cursor: pointer; text-decoration: none; }
.primary-button { border: 0; background: linear-gradient(135deg, #7bd56f, #e8b34f); color: #07100b; }
.primary-button:disabled { cursor: wait; opacity: .68; filter: saturate(.8); }
.ghost-button { border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); color: var(--fb-dark-text); }
.ghost-link-button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; border-radius: 8px; padding: 0 12px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); color: var(--fb-dark-text); text-decoration: none; font-size: 12px; font-weight: 800; white-space: nowrap; }
.sample-evidence-button { gap: 8px; min-width: 0; }
.sample-evidence-button small { padding: 3px 6px; border-radius: 999px; background: rgba(255,255,255,.10); color: #dff7ff; font-size: 10px; font-weight: 950; text-transform: uppercase; }
.sample-evidence-button.selected { border-color: rgba(123,213,111,.62); background: rgba(123,213,111,.14); box-shadow: inset 0 0 0 1px rgba(123,213,111,.18); }
.sample-evidence-button.selected small { background: rgba(123,213,111,.22); color: #cfffbd; }
.sample-evidence-button.loading { border-color: rgba(112,229,255,.42); background: rgba(112,229,255,.10); }
.sample-evidence-button:disabled { opacity: .72; cursor: wait; }
.stacked-form { display: grid; gap: 13px; }
.stacked-form label { display: grid; gap: 7px; color: var(--fb-dark-secondary); font-size: 12px; font-weight: 760; }
.stacked-form input,
.stacked-form select,
.stacked-form textarea { width: 100%; min-height: 44px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; background: rgba(0,0,0,.26); color: #eef7f0; padding: 11px 12px; font: inherit; outline: none; box-shadow: inset 0 0 0 1px rgba(255,255,255,.02); }
.stacked-form textarea { min-height: 112px; resize: vertical; line-height: 1.45; }
.stacked-form input:focus,
.stacked-form select:focus,
.stacked-form textarea:focus { border-color: rgba(123,213,111,.62); box-shadow: 0 0 0 3px rgba(123,213,111,.12); }
.stacked-form option { background: #101816; color: #eef7f0; }
.inline-check { display: flex !important; grid-template-columns: none !important; align-items: center; gap: 10px !important; }
.inline-check input { width: 18px !important; min-height: 18px !important; accent-color: #7bd56f; }
.admin-role-picker { display: grid; gap: 9px; padding: 12px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; background: rgba(0,0,0,.18); }
.admin-role-picker > span { color: var(--fb-dark-secondary); font-size: 12px; font-weight: 850; }
.admin-role-picker .inline-check { margin: 0; padding: 8px 10px; border-radius: 8px; background: rgba(255,255,255,.04); }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 8px; }
.compact-actions { margin-top: 0; gap: 8px; }
.primary-action,
.secondary-action,
.mini-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; border-radius: 8px; padding: 0 16px; font-weight: 900; cursor: pointer; border: 1px solid transparent; text-decoration: none; }
.primary-action { background: linear-gradient(135deg, #7bd56f, #e8b34f); color: #07100b; border-color: rgba(255,255,255,.08); }
.primary-action:disabled { cursor: wait; opacity: .74; filter: saturate(.86); }
.primary-action.is-loading { gap: 9px; }
.secondary-action,
.mini-button { background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.14); color: var(--fb-dark-text); }
.mini-button { min-height: 32px; padding: 0 10px; font-size: 11px; }
.status-message { margin: 0 0 14px; padding: 12px 14px; border-radius: 8px; border: 1px solid rgba(123,213,111,.24); background: rgba(123,213,111,.11); color: #cff7c6; font-weight: 760; }
.status-message.warning { border-color: rgba(239,107,107,.3); background: rgba(239,107,107,.12); color: #ffc6c6; }
.map-alert-status { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.map-alert-status span { margin-right: auto; }
