*{box-sizing:border-box}:root{color-scheme:light;--bg: #f5f6f8;--surface: #ffffff;--border: #e5e7eb;--row-hover: #f3f4f6;--text: #111827;--text-muted: #6b7280;--accent: #4f46e5;--accent-strong: #4338ca;--accent-soft: #eef2ff;--highlight: #fef3c7;--highlight-border: #f59e0b;--success: #059669;--success-soft: #ecfdf5;--danger: #dc2626;--danger-soft: #fef2f2;--overlay: rgba(17, 24, 39, .4);--shadow-sm: 0 1px 2px rgba(17, 24, 39, .05), 0 1px 3px rgba(17, 24, 39, .06);--shadow-lg: -16px 0 40px rgba(17, 24, 39, .14);--skeleton-base: #eceef1;--skeleton-shine: #f6f7f9;--page-pad-y: 28px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{height:100vh;height:100dvh;max-width:1360px;margin:0 auto;padding:var(--page-pad-y) 24px 0;display:flex;flex-direction:column;gap:20px}.app-header{flex:none}.app-header h1{font-size:1.4rem;font-weight:700;letter-spacing:-.01em;margin:0}.app-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:.9rem}.lists-row{flex:1 1 auto;min-height:480px;padding-bottom:var(--page-pad-y);display:flex;gap:20px}.list-column{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;gap:12px}.detail-column{flex:1.5 1 0;min-width:0;min-height:0;display:flex}.state-list{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:var(--shadow-sm)}.state-list-head{display:flex;align-items:center;justify-content:space-between;margin:2px 4px 12px}.state-list-title{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0}.state-list-count{font-size:.72rem;font-weight:600;color:var(--accent-strong);background:var(--accent-soft);padding:2px 9px;border-radius:999px}.state-list-scroll{list-style:none;margin:0;padding:2px;flex:1 1 auto;min-height:0;overflow-y:auto}.state-list-scroll li{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:9px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.92rem;color:var(--text);transition:background .12s ease,color .12s ease}.state-list-scroll li+li{margin-top:2px}.state-list-scroll li:hover{background:var(--row-hover)}.state-list-scroll li.highlighted{background:var(--highlight)}.state-list-scroll li.active,.state-list-scroll li.active.highlighted{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.state-list-scroll li.highlighted:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--highlight-border);flex:none;margin-left:10px}.search-wrap{flex:none;position:relative;width:100%}.search-box{width:100%;padding:11px 38px;border:1px solid var(--border);border-radius:10px;font-size:.92rem;background-color:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="%239ca3af" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><circle cx="7" cy="7" r="4.5"/><line x1="14" y1="14" x2="10.5" y2="10.5"/></svg>');background-repeat:no-repeat;background-position:13px center}.search-box::placeholder{color:var(--text-muted)}.search-box:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-clear{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-muted);font-size:1.2rem;line-height:1;cursor:pointer;border-radius:6px;transition:background .12s ease,color .12s ease}.search-clear:hover{background:var(--row-hover);color:var(--text)}.detail-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.detail-panel-head{flex:none;padding:15px 20px;border-bottom:1px solid var(--border)}.detail-panel-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:16px;padding:20px;overflow:hidden}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:10}.drawer-overlay.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:92vw;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);transform:translate(100%);transition:transform .28s cubic-bezier(.22,1,.36,1);z-index:11;display:flex;flex-direction:column}.drawer.open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);flex:none}.drawer-eyebrow{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.drawer-close{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--text-muted);padding:2px 8px;border-radius:8px;transition:background .12s ease,color .12s ease}.drawer-close:hover{background:var(--row-hover);color:var(--text)}.drawer-content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:16px;padding:20px;overflow:hidden}.detail{display:flex;flex-direction:column;gap:16px;min-height:0;flex:1 1 auto}.detail-name{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.01em}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:11px}.stat-card--wide{grid-column:1 / -1}.stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.stat-value{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.match-banner{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:11px;font-size:.9rem;font-weight:600}.match-banner--ok{background:var(--success-soft);color:var(--success)}.match-banner--bad{background:var(--danger-soft);color:var(--danger)}.match-banner__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:.8rem;font-weight:700;flex:none}.match-banner--ok .match-banner__icon{background:var(--success)}.match-banner--bad .match-banner__icon{background:var(--danger)}.county-section{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.county-head{display:flex;align-items:center;justify-content:space-between;margin:2px 2px 8px}.county-head h4{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.county-count{font-size:.72rem;font-weight:600;color:var(--accent-strong);background:var(--accent-soft);padding:2px 9px;border-radius:999px}.county-list{flex:1 1 auto;min-height:0;overflow-y:auto;list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:11px}.county-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 13px;font-size:.88rem}.county-list li:nth-child(2n){background:var(--bg)}.county-name{color:var(--text)}.county-population{color:var(--text-muted);font-variant-numeric:tabular-nums}.detail-empty,.detail-error,.list-error{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:24px}.detail-empty-icon,.detail-error-icon{font-size:2rem;line-height:1}.detail-empty-title{margin:0;font-weight:600;color:var(--text)}.detail-empty-hint{margin:0;font-size:.9rem;color:var(--text-muted);max-width:260px}.detail-error-title{margin:0;font-weight:600;color:var(--danger);max-width:300px}.list-error-text{margin:0;font-size:.9rem;color:var(--text-muted);max-width:240px}.retry-button{margin-top:4px;padding:8px 16px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--accent-strong);font-weight:600;font-size:.88rem;cursor:pointer;transition:background .12s ease,border-color .12s ease}.retry-button:hover{background:var(--accent-soft);border-color:var(--accent)}@keyframes shimmer{0%{background-position:-240px 0}to{background-position:calc(240px + 100%) 0}}.skeleton{display:block;background-color:var(--skeleton-base);background-image:linear-gradient(90deg,var(--skeleton-base) 0,var(--skeleton-shine) 40px,var(--skeleton-base) 80px);background-size:240px 100%;background-repeat:no-repeat;border-radius:6px;animation:shimmer 1.2s ease-in-out infinite}.skeleton-line{height:12px;width:100%}.skeleton-line.short{width:45%}.skeleton-title{height:26px;width:45%}.skeleton-banner{height:46px;width:100%;border-radius:11px}.state-list-scroll li.skeleton-row{cursor:default;padding:10px 12px}.state-list-scroll li.skeleton-row:hover{background:transparent}.skeleton-row .skeleton-line{width:65%}.skeleton-row:nth-child(3n) .skeleton-line{width:80%}.skeleton-row:nth-child(3n+2) .skeleton-line{width:52%}.skeleton-county{display:flex;justify-content:space-between;gap:12px;padding:10px 13px}.skeleton-county .skeleton-line{width:45%}.skeleton-county .skeleton-line.short{width:22%}.state-list-scroll::-webkit-scrollbar,.county-list::-webkit-scrollbar{width:9px}.state-list-scroll::-webkit-scrollbar-thumb,.county-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:5px;border:2px solid transparent;background-clip:padding-box}.state-list-scroll::-webkit-scrollbar-thumb:hover,.county-list::-webkit-scrollbar-thumb:hover{background:#9ca3af;background-clip:padding-box}@media (min-width: 769px){.drawer,.drawer-overlay{display:none}}@media (max-width: 768px){.app{--page-pad-y: 16px;padding:var(--page-pad-y) 14px 0;gap:14px}.app-header h1{font-size:1.2rem}.lists-row{gap:0}.list-column--primary,.detail-column{display:none}.drawer{width:100vw;max-width:100vw;border-left:none}}
