diff --git a/nextjs-app/components/FilterBar.module.css b/nextjs-app/components/FilterBar.module.css index ffa79e4..8888402 100644 --- a/nextjs-app/components/FilterBar.module.css +++ b/nextjs-app/components/FilterBar.module.css @@ -88,30 +88,49 @@ .filters { display: flex; - gap: 0.75rem; + gap: 0.625rem; flex-wrap: wrap; + margin-top: 0.625rem; + padding-top: 0.625rem; + border-top: 1px solid var(--border-color, #e5dfd5); } .filterSelect { + appearance: none; + -webkit-appearance: none; flex: 1; - min-width: 200px; - padding: 0.75rem 1rem; - font-size: 0.95rem; - border: 1px solid var(--border-color, #e5dfd5); - border-radius: 6px; - background: var(--bg-card, white); + min-width: 180px; + padding: 0.625rem 2.25rem 0.625rem 1rem; + font-size: 0.875rem; + font-weight: 500; + font-family: inherit; + border: 1.5px solid var(--border-color, #e5dfd5); + border-radius: 8px; + background-color: var(--bg-card, white); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a847a' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 0.875rem center; + background-size: 10px 6px; cursor: pointer; outline: none; color: var(--text-primary, #1a1612); + transition: border-color 0.15s ease, box-shadow 0.15s ease; +} + +.filterSelect:hover { + border-color: var(--text-muted, #8a847a); } .filterSelect:focus { border-color: var(--accent-coral, #e07256); + box-shadow: 0 0 0 3px rgba(224, 114, 86, 0.12); } .clearButton { - padding: 0.75rem 1.25rem; - font-size: 0.95rem; + padding: 0.4rem 1rem; + font-size: 0.8125rem; + font-weight: 500; + border-radius: 999px; } @media (max-width: 768px) { @@ -157,29 +176,20 @@ } .radiusLabel { - font-size: 0.875rem; - color: var(--text-secondary); + font-size: 0.8125rem; + font-weight: 500; + color: var(--text-secondary, #5a554d); white-space: nowrap; } -.radiusSelect { - padding: 0.375rem 0.75rem; - border: 1px solid var(--border-color, #e0ddd8); - border-radius: var(--radius-md); - background: var(--bg-card); - color: var(--text-secondary); - font-size: 0.875rem; - cursor: pointer; -} - /* ── Controls row (radius + phase + advanced toggle) ─── */ .controlsRow { display: flex; align-items: center; - gap: 0.75rem; + gap: 0.5rem; flex-wrap: wrap; - margin-top: 0.75rem; - padding-top: 0.75rem; + margin-top: 0.875rem; + padding-top: 0.875rem; border-top: 1px solid var(--border-color, #e5dfd5); } @@ -194,19 +204,36 @@ flex-shrink: 0; } +/* Pill-style inline filter controls (radius + phase) */ .controlSelect { - padding: 0.375rem 0.75rem; - font-size: 0.875rem; - border: 1px solid var(--border-color, #e5dfd5); - border-radius: 6px; - background: var(--bg-card, white); + appearance: none; + -webkit-appearance: none; + padding: 0.4rem 2rem 0.4rem 0.875rem; + font-size: 0.8125rem; + font-weight: 500; + font-family: inherit; + border: 1.5px solid var(--border-color, #e5dfd5); + border-radius: 999px; + background-color: var(--bg-card, white); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a847a' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 0.65rem center; + background-size: 10px 6px; color: var(--text-primary, #1a1612); cursor: pointer; outline: none; + transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease; + white-space: nowrap; +} + +.controlSelect:hover { + border-color: var(--text-muted, #8a847a); + background-color: var(--bg-secondary, #f8f4ef); } .controlSelect:focus { border-color: var(--accent-coral, #e07256); + box-shadow: 0 0 0 3px rgba(224, 114, 86, 0.12); } /* ── Advanced filters toggle ─────────────────────────── */ @@ -216,17 +243,22 @@ align-items: center; gap: 0.375rem; background: none; - border: none; - padding: 0.375rem 0; + border: 1.5px solid var(--border-color, #e5dfd5); + border-radius: 999px; + padding: 0.4rem 0.875rem; font-size: 0.8125rem; - color: var(--text-muted, #8a847a); + font-weight: 500; + color: var(--text-secondary, #5a554d); cursor: pointer; font-family: inherit; - transition: color 0.15s ease; + transition: all 0.15s ease; + white-space: nowrap; } .advancedToggle:hover { - color: var(--text-secondary, #5a554d); + border-color: var(--text-muted, #8a847a); + background-color: var(--bg-secondary, #f8f4ef); + color: var(--text-primary, #1a1612); } .chevronDown, @@ -234,14 +266,14 @@ display: inline-block; width: 0; height: 0; - border-left: 4px solid transparent; - border-right: 4px solid transparent; + border-left: 3.5px solid transparent; + border-right: 3.5px solid transparent; } .chevronDown { - border-top: 5px solid currentColor; + border-top: 4.5px solid currentColor; } .chevronUp { - border-bottom: 5px solid currentColor; + border-bottom: 4.5px solid currentColor; }