*,:before,:after{box-sizing:border-box}:root{--color-bg:#fdfbf7;--color-surface:#fff;--color-surface-warm:#faf6ef;--color-border:#e8e2d6;--color-border-light:#f0ebe2;--color-text:#3d3b38;--color-text-light:#8a857a;--color-text-heading:#1c1b19;--color-primary:#c27b0a;--color-primary-light:#fef3e0;--color-accent:#d4920e;--font-display:"Instrument Serif", Georgia, serif;--font-body:"DM Sans", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "Cascadia Code", Consolas, monospace;--shadow-sm:0 1px 3px #3c321e0f;--shadow-md:0 4px 12px #3c321e14;--shadow-lg:0 8px 30px #3c321e1a;--shadow-glow:0 0 20px #d4920e26;--radius:10px;--radius-sm:6px}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}#root{max-width:1120px;margin:0 auto;padding:0 24px}h1,h2,h3{color:var(--color-text-heading);font-family:var(--font-display);margin:0;font-weight:400}a{color:var(--color-primary);text-decoration:none;transition:color .15s}a:hover{color:var(--color-accent)}::selection{background:var(--color-primary-light);color:var(--color-text-heading)}.app{flex-direction:column;min-height:100vh;display:flex}.header{text-align:center;padding:56px 0 40px;position:relative}.header h1{letter-spacing:-.5px;margin-bottom:12px;font-size:2.75rem;font-weight:400;line-height:1.15}.header h1 .header__accent{color:var(--color-primary)}.subtitle{color:var(--color-text-light);font-size:1.0625rem;font-family:var(--font-body);letter-spacing:.01em;margin:0}.main{flex-direction:column;flex:1;gap:36px;display:flex}.map-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:32px;position:relative}.map-section:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(#d4920e0f 0%,#0000 70%);width:80%;height:80%;position:absolute;top:-40%;left:50%;transform:translate(-50%)}.map-container{z-index:1;width:100%;position:relative}.us-map{width:100%;height:auto}.hex-state{cursor:pointer}.hex-state polygon{transition:opacity .15s,filter .15s}.map-loading{text-align:center;color:var(--color-text-light);padding:80px 0;font-size:1.125rem}.status-summary{border-top:1px solid var(--color-border-light);z-index:1;gap:4px;margin-top:24px;padding-top:20px;display:flex;position:relative}.status-summary__item{background:var(--color-surface-warm);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 8px 12px;display:flex}.status-summary__count{font-size:1.75rem;font-weight:700;font-family:var(--font-display);line-height:1}.status-summary__label-row{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);font-size:.6875rem;font-weight:600;font-family:var(--font-body);align-items:center;gap:5px;display:flex}.status-summary__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-summary__desc{color:var(--color-text-light);text-align:center;font-size:.6875rem;font-weight:400;line-height:1.4;font-family:var(--font-body)}@media (width<=640px){.status-summary{gap:3px}.status-summary__count{font-size:1.375rem}.status-summary__label-row{font-size:.5625rem}}.state-detail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:0;overflow:hidden}.state-detail--empty{text-align:center;color:var(--color-text-light);background:var(--color-surface-warm);box-shadow:none;border-style:dashed;padding:48px 24px}.state-detail--empty p{margin:0;font-size:.9375rem;font-style:italic}.state-detail__header{border-bottom:1px solid var(--color-border-light);flex-wrap:wrap;align-items:center;gap:16px;padding:24px 28px;display:flex}.state-detail__header h2{font-size:1.75rem;line-height:1.2}.status-badge{font-size:.75rem;font-weight:600;font-family:var(--font-body);letter-spacing:.03em;text-transform:uppercase;border-radius:100px;align-items:center;gap:6px;padding:5px 14px;display:inline-flex}.status-badge--light{color:var(--color-text-heading)}.status-badge--dark{color:#fff}.state-detail__body{padding:24px 28px}.state-detail__grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-bottom:24px;display:grid}.detail-item{flex-direction:column;gap:3px;display:flex}.detail-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-light);font-size:.6875rem;font-weight:700;font-family:var(--font-body)}.detail-value{color:var(--color-text-heading);font-size:1rem;font-weight:500}.detail-value a,.state-list__table a{font-weight:600}.detail-value a:hover,.state-list__table a:hover{text-decoration:underline}.state-detail__section{background:var(--color-surface-warm);border-left:3px solid var(--color-border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:12px;padding:14px 18px}.state-detail__section .detail-label{margin-bottom:6px;display:block}.state-detail__section p{margin:0;font-size:.9375rem;line-height:1.55}.state-detail__notes{background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius-sm);margin-bottom:12px;padding:14px 18px}.state-detail__notes p{color:var(--color-text-light);margin:0;font-size:.9375rem;line-height:1.55}.state-detail a{color:var(--color-primary);text-decoration:none}.state-detail a:hover{text-decoration:underline}.state-detail__verified{color:var(--color-text-light);border-top:1px solid var(--color-border-light);font-size:.75rem;font-family:var(--font-body);letter-spacing:.01em;padding-top:8px}.state-detail__progress-section{margin-bottom:16px}.progress-timeline{margin-bottom:12px}.progress-timeline__bill{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-light);font-size:.6875rem;font-weight:700;font-family:var(--font-body);margin-bottom:8px;display:block}.progress-timeline__track{gap:0;display:flex;position:relative}.progress-timeline__bar{background:var(--color-primary);z-index:0;height:2px;transition:width .3s;position:absolute;top:5px;left:0}.progress-milestone{z-index:1;flex-direction:column;flex:1;align-items:center;gap:4px;display:flex;position:relative}.progress-milestone__dot{background:var(--color-border);border:2px solid var(--color-surface);width:12px;height:12px;box-shadow:0 0 0 1px var(--color-border);border-radius:50%;transition:background .2s,box-shadow .2s}.progress-milestone--reached .progress-milestone__dot{background:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.progress-milestone__label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-light);font-size:.625rem;font-weight:600;font-family:var(--font-body);text-align:center}.progress-milestone--reached .progress-milestone__label{color:var(--color-text)}.progress-milestone__date{color:var(--color-text-light);font-size:.5625rem;font-family:var(--font-mono);text-align:center}.state-detail__proof-section{margin-bottom:12px}.proof-text{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);overflow:hidden}.proof-text+.proof-text{margin-top:8px}.proof-text__summary{color:var(--color-text);cursor:pointer;background:var(--color-surface-warm);font-size:.8125rem;font-weight:600;font-family:var(--font-body);padding:10px 14px}.proof-text__summary:hover{background:var(--color-border-light)}.proof-text__ref{color:var(--color-text-light);font-size:.75rem;font-weight:400}.proof-text__content{color:var(--color-text);font-size:.8125rem;line-height:1.6;font-family:var(--font-mono);background:var(--color-bg);border-top:1px solid var(--color-border-light);white-space:pre-wrap;margin:0;padding:14px 18px}.state-detail__failure{border-left:3px solid var(--color-failed,#b33a2b);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#fef2f2;margin-bottom:12px;padding:14px 18px}.state-detail__failure .detail-label{margin-bottom:6px;display:block}.state-detail__failure p{color:var(--color-text);margin:0;font-size:.875rem;line-height:1.55}@media (width<=640px){.progress-milestone__label{font-size:.5rem}.progress-milestone__date{display:none}}.list-section{padding-bottom:56px}.section-title{margin-bottom:20px;font-size:1.5rem}.state-list__controls{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.state-list__search{border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:200px;font-size:.9375rem;font-family:var(--font-body);background:var(--color-surface);color:var(--color-text);flex:1;padding:10px 16px;transition:border-color .2s,box-shadow .2s}.state-list__search:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #c27b0a40}.state-list__search::placeholder{color:var(--color-text-light)}.state-list__filter{border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9375rem;font-family:var(--font-body);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:10px 16px;transition:border-color .2s,box-shadow .2s}.state-list__filter:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #c27b0a40}.state-list__table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--color-surface);overflow-x:auto}.state-list__table{border-collapse:collapse;width:100%;font-size:.9375rem}.state-list__table thead{background:var(--color-surface-warm)}.state-list__table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-light);border-bottom:2px solid var(--color-border);font-size:.6875rem;font-weight:700;font-family:var(--font-body);padding:12px 18px}.state-list__table td{border-bottom:1px solid var(--color-border-light);white-space:nowrap;padding:11px 18px}.state-row{cursor:pointer;transition:background-color .12s}.state-row:hover{background:var(--color-surface-warm)}.state-row--selected,.state-row--selected:hover{background:var(--color-primary-light)}.state-name-cell{color:var(--color-text-heading);align-items:center;gap:8px;font-weight:500;display:flex}.state-abbr{width:28px;color:var(--color-text-light);font-size:.6875rem;font-weight:700;font-family:var(--font-mono);letter-spacing:.02em;display:inline-block}.status-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-right:8px;display:inline-block}.state-list__count{color:var(--color-text-light);margin-top:14px;font-size:.8125rem}.footer{text-align:center;border-top:1px solid var(--color-border);color:var(--color-text-light);padding:36px 0;font-size:.8125rem}.footer p{margin:4px 0}@media (width<=640px){.header{padding:36px 0 28px}.header h1{font-size:1.75rem}.subtitle{font-size:.9375rem}.map-section{padding:16px}.state-detail__header,.state-detail__body{padding:18px 20px}.state-detail__header h2{font-size:1.375rem}.state-detail__grid{grid-template-columns:repeat(2,1fr)}}
