.politicians-directory{min-height:100vh;background-color:#f9fafb}.politicians-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem}@media (min-width: 640px){.politicians-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.politicians-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.politicians-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1280px){.politicians-grid{grid-template-columns:repeat(5,1fr)}}.politician-card{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;overflow:hidden;transition:all .2s ease-in-out;display:flex;flex-direction:column}.politician-card:hover{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;transform:translateY(-2px)}.politician-photo-container{aspect-ratio:1;background:linear-gradient(to bottom right,#dbeafe,#e0e7ff);overflow:hidden;position:relative}.politician-photo{width:100%;height:100%;object-fit:cover;transition:transform .3s ease-in-out}.politician-card:hover .politician-photo{transform:scale(1.05)}.politician-card-content{padding:1.25rem;flex:1;display:flex;flex-direction:column}.politician-name{font-weight:700;font-size:1.125rem;color:#111827;margin-bottom:.5rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.politician-card:hover .politician-name{color:#2563eb}.politician-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem}.politician-state{font-size:.875rem;font-weight:500;color:#374151}.politician-district{font-size:.875rem;color:#6b7280}.politician-party-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:9999px}.politician-party-badge.republican{background-color:#fee2e2;color:#991b1b}.politician-party-badge.democrat{background-color:#dbeafe;color:#1e40af}.politician-party-badge.independent{background-color:#f3f4f6;color:#374151}.politician-position{font-size:.875rem;color:#6b7280;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.politician-link{margin-top:auto;color:#2563eb;font-size:.875rem;font-weight:600;display:flex;align-items:center;gap:.25rem;transition:gap .2s}.politician-card:hover .politician-link{gap:.5rem}.default-avatar{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(to bottom right,#dbeafe,#e0e7ff)}.default-avatar-circle{width:6rem;height:6rem;border-radius:9999px;background:linear-gradient(to bottom right,#3b82f6,#4f46e5);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.default-avatar-initials{color:#fff;font-size:1.5rem;font-weight:700}.empty-state{text-align:center;padding:4rem 1rem;background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a}.empty-state-icon{width:4rem;height:4rem;color:#9ca3af;margin:0 auto 1rem}.empty-state-title{color:#374151;font-size:1.125rem;margin-bottom:.5rem}.empty-state-message{color:#6b7280;font-size:.875rem}.navigation{background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:1000}.nav-container{max-width:1280px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:64px}.nav-logo{display:flex;align-items:center;text-decoration:none;height:100%;padding:.5rem 0}.logo-img{height:40px;width:auto;object-fit:contain}.nav-menu{display:flex;align-items:center;gap:1rem}.nav-item{position:relative;display:flex;align-items:center}.nav-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;color:#374151;font-size:.9375rem;font-weight:500;background:none;border:none;cursor:pointer;border-radius:.375rem;transition:all .2s;text-decoration:none}.nav-link:hover{background-color:#f3f4f6;color:#111827}.nav-item.active>.nav-link,.nav-link.active{color:#2563eb;background-color:#eff6ff}.dropdown{position:relative}.dropdown-arrow{transition:transform .2s}.dropdown:hover .dropdown-arrow{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;min-width:200px;padding:.5rem 0;z-index:1001}.dropdown-item{display:block;padding:.75rem 1rem;color:#374151;text-decoration:none;font-size:.9375rem;transition:all .2s}.dropdown-item:hover{background-color:#f3f4f6;color:#111827}.dropdown-item.active{background-color:#eff6ff;color:#2563eb;font-weight:500}.nav-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:#374151;text-decoration:none;border-radius:.375rem;transition:all .2s}.nav-icon:hover{background-color:#f3f4f6;color:#111827}.nav-icon.active{color:#2563eb;background-color:#eff6ff}.nav-icon svg{width:20px;height:20px}@media (max-width: 768px){.nav-container{padding:0 1rem}.nav-menu{gap:.5rem}.nav-link{padding:.5rem .75rem;font-size:.875rem}.dropdown-menu{min-width:180px}.logo-img{height:32px}}@tailwind base;@tailwind components;@tailwind utilities;body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
