/* Census component styles. Application shell and responsive panes follow below. */
:root, [data-bs-theme=light] {
  --canvas: #f0f3f8;
  --surface: #fafbfd;
  --sidebar: #eaf0f7;
  --ink: #253449;
  --muted: #63748b;
  --line: #dce4ef;
  --accent: #2c68ad;
  --accent-soft: #dfebfa;
  --subtle: #f0f5fc;
  --positive: #277758;
  --positive-soft: #e2f2e9;
  --warning: #93651c;
  --warning-soft: #fbf0d9;
  --shadow: 0 1px 3px #24385808;
  --action-bg: #2e6cb9;
  --action-hover: #255da3;
  --action-active: #1f4e89;
  --action-disabled: #7e9abe;
  --bs-body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--canvas);
  --bs-primary: #2e6cb9;
  --bs-primary-rgb: 46, 108, 185;
  --bs-border-color: var(--line);
  --bs-secondary-color: var(--muted);
  color-scheme: light;
}
[data-bs-theme=dark] {
  --canvas: #171717;
  --surface: #202020;
  --sidebar: #1b1b1b;
  --ink: #dedede;
  --muted: #a0a0a0;
  --line: #343434;
  --accent: #8cb8d8;
  --accent-soft: #28343d;
  --subtle: #262626;
  --positive: #8bbca2;
  --positive-soft: #26362d;
  --warning: #d1b477;
  --warning-soft: #383124;
  --shadow: none;
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--canvas);
  --bs-border-color: var(--line);
  --bs-secondary-color: var(--muted);
  color-scheme: dark;
}
[data-appearance=oled] {
  --canvas: #000;
  --surface: #000;
  --sidebar: #000;
  --ink: #d7d7d7;
  --muted: #969696;
  --line: #242424;
  --subtle: #0b0b0b;
  --accent-soft: #111c24;
  --positive-soft: #111c16;
  --warning-soft: #211c11;
  --shadow: none;
}

*{box-sizing:border-box}
body{margin:0;padding:28px;background:var(--canvas);font-size:14px;-webkit-font-smoothing:antialiased;letter-spacing:-.12px}
[data-bs-theme=dark] body{background:var(--canvas)}
button,a,input{touch-action:manipulation}
button,a{ -webkit-tap-highlight-color:transparent}
a{color:var(--accent)}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
[hidden]{display:none!important}
.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{position:fixed;top:12px;left:40px;width:auto;height:auto;clip-path:none;z-index:2000;background:var(--surface);padding:10px 20px;border-radius:8px}
.app-window{max-width:1500px;min-height:calc(100vh - 56px);margin:auto;display:flex;border:1px solid #fff9;border-radius:18px;overflow:clip;background:var(--canvas);box-shadow:0 24px 80px -32px #3c476e50,0 3px 10px #3c476e0a}
[data-bs-theme=dark] .app-window{border-color:#ffffff12}
.sidebar{width:242px;flex:0 0 242px;background:var(--sidebar);border-right:1px solid var(--line);padding:24px 16px 16px;display:flex;flex-direction:column;backdrop-filter:blur(30px)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-size:24px;font-weight:700;letter-spacing:-.8px;padding:0 10px;margin-bottom:46px;line-height:1.25}
.brand-icon{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;background:linear-gradient(140deg,#6795b5,#3c6789);color:#fff;border:1px solid #fff6;border-radius:12px;box-shadow:0 2px 5px #00000012,inset 0 1px #fff2;font-size:25px}
.sidebar-label{font-size:9px;color:var(--muted);letter-spacing:1.5px;font-weight:650;margin:0 13px 12px}
.resources-label{margin-top:32px}
.workspace-nav{display:flex;flex-direction:column;gap:5px}
.nav-item{display:flex;align-items:center;gap:10px;min-height:42px;border:0;border-radius:8px;background:transparent;padding:10px 12px;color:var(--muted);font-size:12px;font-weight:500;text-decoration:none;text-align:left;transition:background .15s,color .15s;white-space:nowrap}
.nav-item>.bi{font-size:16px}
.nav-item:hover{background:var(--subtle);color:var(--ink)}
.nav-item.active{background:var(--accent-soft);color:var(--accent);box-shadow:none}
.nav-item kbd{margin-left:auto;font:10px inherit;color:var(--accent);background:transparent;opacity:.7;padding:0}
.external-icon{font-size:10px!important;margin-left:auto;opacity:.6}
.sidebar-bottom{margin-top:auto;padding-top:100px}
.theme-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:14px 10px 2px;border:0;border-top:1px solid var(--line);background:none;color:var(--muted);font-size:11px}
.theme-toggle .bi{font-size:14px}
.app-content{min-width:0;flex:1}
.toolbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);background:var(--surface)}
.breadcrumb-label{display:flex;align-items:center;gap:13px;font-size:11px;color:var(--muted)}
.breadcrumb-label>.bi:first-child{font-size:15px;opacity:.7}
.breadcrumb-label>.bi-chevron-right{font-size:8px}
.breadcrumb-label strong{color:var(--ink);font-weight:500}
.toolbar-right{display:flex;align-items:center;gap:20px}
.local-badge{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}
.local-badge>span{width:5px;height:5px;border-radius:50%;background:#66ae8f}
.icon-button{display:grid;place-items:center;flex-shrink:0;border:0;background:none;border-radius:6px;color:var(--muted);width:28px;height:28px}
.icon-button:hover{background:var(--accent-soft);color:var(--accent)}
main{padding:34px 36px 0;outline:none}
.eyebrow{font-size:9px;font-weight:650;letter-spacing:1.7px;color:var(--accent);margin-bottom:11px}
.lookup-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1.05fr);gap:22px;align-items:start}
.surface{background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}
.address-panel,.upload-panel{padding:24px}
.panel-heading{display:flex;gap:11px;align-items:center;margin-bottom:25px}
.panel-icon{width:35px;height:35px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:inline-grid;place-items:center;font-size:17px;flex-shrink:0}
h2{font-size:15px;font-weight:600;letter-spacing:-.3px;margin:0}
.panel-heading p{font-size:11px;color:var(--muted);margin:5px 0 0}
.form-label{font-size:11px;font-weight:550;margin-bottom:7px;color:var(--ink)}
.required-dot{font-size:10px;color:var(--accent);margin-left:2px}
.optional{font-weight:400;color:var(--muted);font-size:9px;margin-left:5px}
.form-control{background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--ink);padding:10px 11px;font-size:12px;min-height:39px;box-shadow:0 1px 2px #00000002}
.form-control::placeholder{color:var(--muted);opacity:.65}
.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent);background:var(--surface);color:var(--ink)}
.field-divider{height:1px;background:var(--line);margin:3px 0 17px}
.btn-primary{--bs-btn-bg:var(--action-bg);--bs-btn-border-color:var(--action-bg);--bs-btn-hover-bg:var(--action-hover);--bs-btn-hover-border-color:var(--action-hover);--bs-btn-active-bg:var(--action-active);--bs-btn-active-border-color:var(--action-active);--bs-btn-disabled-bg:var(--action-disabled);--bs-btn-disabled-border-color:var(--action-disabled);--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff;font-size:12px;font-weight:500;border-radius:8px;padding:10px 16px;box-shadow:inset 0 1px #ffffff0d}
.lookup-button{margin-top:24px;min-height:42px}
.button-idle{display:flex;align-items:center;justify-content:center;gap:10px}
.button-idle>.bi-arrow-right{margin-left:auto}
.button-idle>.bi:first-child{margin-right:auto}
.button-busy{display:none;align-items:center;justify-content:center;gap:9px}
.htmx-request .button-idle{display:none}
.htmx-request .button-busy{display:flex}
.form-bottom{display:flex;justify-content:space-between;margin-top:16px}
.text-button{padding:0;border:0;background:none;color:var(--muted);font-size:10px}
.text-button:hover{color:var(--accent)}
.text-button .bi{margin-right:4px;color:var(--accent)}
.result-column{min-width:0}
.empty-result{overflow:hidden}
.small-label{font-size:8px;letter-spacing:1.4px;color:var(--muted);font-weight:600}
.loading-banner{display:flex;align-items:center;gap:10px;background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:13px 16px;font-size:11px;margin-bottom:15px}
.htmx-indicator{display:none}
.htmx-request.htmx-indicator{display:flex}
.spinner-border-sm{--bs-spinner-width:.85rem;--bs-spinner-height:.85rem;--bs-spinner-border-width:.12em}
.result-card{overflow:hidden;animation:appear .25s ease}
.result-status{display:flex;align-items:center;justify-content:space-between;padding:20px 23px 0}
.status-pill{display:inline-flex;align-items:center;gap:6px;background:var(--positive-soft);color:var(--positive);padding:5px 9px;border-radius:5px;font-size:9px;font-weight:600}
.status-pill.review{background:var(--warning-soft);color:var(--warning)}
.result-time{font-size:9px;color:var(--muted)}
.result-hero{padding:23px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at right bottom,var(--accent-soft),transparent 70%)}
.result-hero .small-label{display:block}
.result-number-line{display:flex;align-items:center;gap:10px;margin:12px 0 8px}
.result-number{font-size:clamp(22px,2.3vw,33px);font-weight:600;letter-spacing:1px;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.2;overflow-wrap:anywhere}
.code-parts{display:flex;gap:12px;font-size:9px;color:var(--muted);flex-wrap:wrap}
.code-parts b{color:var(--ink);font-weight:500;margin-right:3px}
.result-details{padding:22px 23px}
.matched-label{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-bottom:8px}
.matched-address{font-size:13px;line-height:1.8;font-weight:500;margin:0 0 19px}
.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.metric{background:var(--subtle);border:1px solid var(--line);border-radius:8px;padding:12px}
.metric>span{font-size:9px;color:var(--muted);display:block;margin-bottom:5px}
.metric>strong{font-size:16px;font-weight:600}
.metric>strong.address-type{font-size:12px}
.confidence-track{height:3px;background:var(--line);border-radius:3px;margin-top:10px;overflow:hidden}
.confidence-track>progress{display:block;width:100%;height:3px;border:0;appearance:none}
.confidence-track progress::-webkit-progress-bar{background:var(--line)}
.confidence-track progress::-webkit-progress-value{background:var(--positive)}
.confidence-track progress::-moz-progress-bar{background:var(--positive)}
.coordinates{display:flex;justify-content:space-between;gap:10px;margin-top:19px;font-size:10px;color:var(--muted)}
.coordinates b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.result-actions{display:flex;gap:10px;padding:0 23px 21px}
.btn-soft{border:1px solid var(--line);background:var(--surface);font-size:10px;color:var(--ink);border-radius:7px;padding:8px 11px}
.btn-soft:hover{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent)}
.btn-soft .bi{margin-right:5px}
.result-warnings{margin:0 23px 20px;padding:13px;background:var(--warning-soft);border-radius:8px;color:var(--warning);font-size:10px;line-height:1.7}
.result-warnings strong{display:block;margin-bottom:5px}
.result-warnings ul{padding-left:17px;margin:0}
.local-reference{font-size:10px;color:var(--muted);margin:18px 0 0;border-top:1px solid var(--line);padding-top:12px;overflow-wrap:anywhere}
.local-reference b{font-weight:500;color:var(--ink)}
.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:230px;background:var(--subtle);border:1.5px dashed var(--line);border-radius:10px;padding:25px;transition:background .15s,border-color .15s}
.dropzone.drag-over,.dropzone:focus-within{background:var(--accent-soft);border-color:var(--accent)}
.dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.upload-icon{display:grid;place-items:center;width:56px;height:56px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--accent);font-size:28px;box-shadow:var(--shadow);transform:rotate(-5deg);margin-bottom:19px}
.dropzone h3{font-size:15px;font-weight:550;margin-bottom:8px}
.dropzone p{font-size:11px;color:var(--muted);margin-bottom:18px}
.browse-label{color:var(--accent);font-weight:500}
.dropzone-hint{font-size:9px;color:var(--muted)}
.header-switch{margin:23px 0 0;padding-left:40px;display:flex;gap:11px;align-items:flex-start}
.form-switch .form-check-input{width:28px;height:17px;margin:1px 0 0 -40px;box-shadow:none;border-color:var(--line);cursor:pointer}
.form-check-input:checked{background-color:var(--action-bg);border-color:var(--action-bg)}
.header-switch label{display:block;font-size:10px}
.header-switch strong{font-weight:500;display:block}
.header-switch label span{display:block;color:var(--muted);font-size:9px;margin-top:5px}
.file-summary{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);background:var(--subtle);border-radius:9px;margin-top:15px}
.file-summary>.bi{font-size:26px;color:var(--accent)}
.file-summary>div{min-width:0;flex:1}
.file-summary strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}
.file-summary span{font-size:10px;color:var(--muted);display:block;margin-top:3px}
.format-panel{padding:25px}
.format-panel h2{font-size:17px;margin-bottom:10px}
.format-panel>p{font-size:11px;line-height:1.8;color:var(--muted);max-width:260px}
.column-list{list-style:none;counter-reset:column;padding:0;margin:18px 0 20px}
.column-list li{counter-increment:column;font-size:11px;padding:7px 0;display:flex;align-items:center;gap:10px}
.column-list li::before{content:counter(column,decimal-leading-zero);font-size:9px;color:var(--muted);min-width:15px}
.column-list li span{margin-left:auto;font-size:9px;color:var(--muted)}
.template-link{font-size:11px;font-weight:500;text-decoration:none}
.template-link .bi{margin-right:5px}
.format-tip{display:flex;gap:10px;color:var(--muted);font-size:9px;line-height:1.8;border-top:1px solid var(--line);padding-top:17px;margin-top:20px}
.format-tip>.bi{font-size:14px;color:#b39a71}
.batch-loading{margin-top:22px}
.batch-results{margin-top:23px;overflow:hidden;animation:appear .25s ease}
.batch-result-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:23px}
.batch-result-heading h2{font-size:17px;margin-bottom:7px}
.batch-result-heading p{margin:0;color:var(--muted);font-size:11px}
.export-actions{display:flex;gap:8px}
.export-actions .btn{font-size:10px}
.batch-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 23px 22px;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.batch-stat{padding:17px 20px;border-right:1px solid var(--line);background:var(--subtle)}
.batch-stat:last-child{border:0}
.batch-stat>span{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}
.batch-stat strong{font-size:23px;font-weight:550}
.batch-stat .bi{font-size:15px;margin-left:7px;color:var(--positive)}
.batch-stat:last-child .bi{color:var(--warning)}
.table-tools{padding:12px 23px;border-top:1px solid var(--line);display:flex;align-items:center;gap:18px}
.preview-label{font-size:10px;color:var(--muted);margin-right:auto}
.table-tools .form-check{min-height:0;margin:0;display:flex;gap:6px;align-items:center}
.table-tools .form-check-input{margin:0;width:12px;height:12px}
.table-tools label{font-size:10px;color:var(--muted)}
.table-search{position:relative;max-width:190px}
.table-search .bi{position:absolute;top:8px;left:10px;font-size:10px;color:var(--muted)}
.table-search input{padding:6px 10px 6px 28px;font-size:10px;min-height:29px}
.results-table{--bs-table-bg:transparent;--bs-table-color:var(--ink);margin:0;font-size:10px;vertical-align:middle}
.results-table thead{background:var(--subtle)}
.results-table th{color:var(--muted);font-size:8px;letter-spacing:.4px;font-weight:550;white-space:nowrap;padding:13px 18px;border-color:var(--line)}
.results-table td{padding:14px 18px;border-color:var(--line);max-width:300px;overflow-wrap:anywhere}
.results-table th:first-child,.results-table td:first-child{padding-left:23px}
.results-table tbody tr:last-child td{border-bottom:0}
.table-code{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--accent);font-weight:500}
.table-address small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
.table-footnote{padding:13px 23px;border-top:1px solid var(--line);font-size:9px;color:var(--muted);margin:0}
.error-card{padding:28px;display:flex;gap:15px}
.error-card>.bi{font-size:24px;color:var(--warning)}
.error-card h2{font-size:16px;margin-bottom:10px}
.error-card p{font-size:12px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere;margin:0}
.error-card .text-button{color:var(--accent);margin-top:14px;font-size:11px}
.modal-content{background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:0 20px 80px #0003;color:var(--ink)}
.modal-header,.modal-footer{border-color:var(--line);padding:25px 28px}
.modal-body{padding:25px 28px}
.modal-header .eyebrow{margin-bottom:6px}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.guide-grid h3{font-size:16px;margin:15px 0 10px}
.guide-grid p{color:var(--muted);font-size:12px;line-height:1.8}
.guide-callout{display:flex;gap:13px;background:var(--accent-soft);border-radius:10px;padding:18px;margin:15px 0 20px}
.guide-callout>.bi{font-size:20px;color:var(--accent)}
.guide-callout strong{font-size:12px}
.guide-callout p{font-size:11px;line-height:1.9;color:var(--muted);margin:6px 0 0}
.toast{background:var(--surface);border-color:var(--line);border-radius:10px;color:var(--ink);box-shadow:0 8px 30px #0001;font-size:12px}
.noscript-note{position:fixed;bottom:15px;left:15px;right:15px;padding:20px;background:var(--warning-soft);color:var(--warning);z-index:2000}
.modal-backdrop{--bs-backdrop-opacity:.25}
.htmx-settling{opacity:1}
@keyframes appear{from{opacity:0;transform:translateY(5px)}
to{opacity:1;transform:translateY(0)}
}

/* Viewport application shell. Only explicitly named regions may scroll. */
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; overscroll-behavior: none; }
body { padding: 0; background: var(--canvas); }
[data-bs-theme=dark] body { background: var(--canvas); }
.app-window { width: 100%; height: 100%; height: 100dvh; max-width: none; min-height: 0; margin: 0; border: 0; border-radius: 0; overflow: hidden; box-shadow: none; }
.sidebar { width: 218px; flex-basis: 218px; min-height: 0; padding: 24px 14px 16px; overflow-y: auto; overscroll-behavior: contain; }
.brand { padding: 0 10px; margin: 0 0 36px; font-size: 23px; gap: 10px; flex-shrink: 0; }
.brand-icon { width: 35px; height: 35px; border-radius: 10px; font-size: 22px; }
.sidebar-label { flex-shrink: 0; }
.workspace-nav { flex-shrink: 0; }
.nav-item { font-size: 12px; }
.sidebar-bottom { padding-top: 28px; flex-shrink: 0; }
.theme-toggle { font-size: 11px; }
.app-content { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
.toolbar { flex: 0 0 58px; height: 58px; padding: 0 24px; }
.breadcrumb-label { font-size: 12px; }
.mobile-theme { display: none; }
main { flex: 1; min-height: 0; min-width: 0; padding: 20px; overflow: hidden; }
.workspace-view { height: 100%; min-height: 0; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.pane-switcher { display: none; }
.lookup-layout { flex: 1; min-height: 0; min-width: 0; display: grid; grid-template-columns: minmax(300px, 370px) minmax(0, 1fr); gap: 18px; align-items: stretch; overflow: hidden; }
.surface { border-radius: 10px; box-shadow: 0 1px 3px #25325903; }
.panel-heading { flex-shrink: 0; padding: 17px 20px; margin: 0; border-bottom: 1px solid var(--line); gap: 10px; }
.panel-heading h2 { font-size: 13px; }
.panel-heading p { font-size: 10px; }
.panel-icon { width: 28px; height: 28px; border-radius: 7px; font-size: 15px; }
.address-panel { display: flex; flex-direction: column; min-height: 0; padding: 0; overflow: hidden; }
#lookup-form { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: hidden; }
.region-scroll { overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: color-mix(in srgb,var(--muted) 35%,transparent) transparent; }
.region-scroll:focus-visible { outline-offset: -3px; }
.form-fields { flex: 1; min-height: 0; padding: 20px; }
.form-fields .row { --bs-gutter-y: 17px; }
.form-label { font-size: 12px; }
.optional { font-size: 10px; }
.form-control { font-size: 13px; min-height: 40px; }
.form-actions { flex-shrink: 0; padding: 16px 20px; border-top: 1px solid var(--line); background: var(--surface); }
.form-actions .lookup-button { margin-top: 0; }
.form-bottom { margin-top: 12px; }
.text-button { font-size: 11px; }
.result-column { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.result-heading { margin: 0; }
#lookup-result { flex: 1; min-height: 0; min-width: 0; }
.empty-state { height: 100%; min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 28px; text-align: center; color: var(--muted); }
.empty-state > .bi { font-size: 27px; width: 58px; height: 58px; border: 1px solid var(--line); border-radius: 16px; background: var(--subtle); display: grid; place-items: center; color: var(--accent); margin-bottom: 3px; }
.empty-state h2 { color: var(--ink); font-size: 14px; }
.empty-state p { margin: 0; font-size: 12px; line-height: 1.7; }
.loading-banner { flex-shrink: 0; margin: 12px; font-size: 12px; }
.result-card { border: 0; border-radius: 0; box-shadow: none; min-width: 0; animation: appear .15s ease; }
.result-status { padding: 24px 26px 0; }
.result-hero { padding: 24px 26px; }
.result-number { font-size: clamp(25px, 3vw, 38px); }
.small-label { font-size: 10px; }
.code-parts { font-size: 11px; gap: 20px; }
.status-pill { font-size: 10px; }
.result-time { font-size: 10px; }
.result-details { padding: 24px 26px; }
.matched-label { font-size: 10px; }
.matched-address { font-size: 14px; }
.metric { padding: 16px; }
.metric > span { font-size: 11px; }
.metric > strong { font-size: 21px; }
.metric > strong.address-type { font-size: 14px; }
.coordinates { font-size: 12px; flex-wrap: wrap; }
.local-reference { font-size: 11px; }
.result-warnings { font-size: 12px; margin: 0 26px 20px; }
.result-actions { padding: 0 26px 24px; flex-wrap: wrap; }
.btn-soft { font-size: 11px; }
.batch-workspace { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 18px; flex: 1; min-height: 0; min-width: 0; overflow: hidden; }
.batch-setup { min-height: 0; min-width: 0; }
.upload-panel { padding: 0; overflow: hidden; }
#batch-form { padding: 20px; }
.dropzone { min-height: 180px; padding: 22px 12px; }
.dropzone h3 { font-size: 13px; }
.dropzone p { margin: 0; font-size: 12px; }
.upload-icon { width: 44px; height: 44px; font-size: 24px; margin-bottom: 17px; }
.header-switch { margin-top: 20px; }
.header-switch label { font-size: 11px; }
.header-switch label span { font-size: 10px; line-height: 1.7; }
.file-summary strong { font-size: 11px; }
.format-panel { padding: 0; margin-top: 14px; }
.format-panel > summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-size: 12px; font-weight: 500; padding: 16px 20px; list-style: none; }
.format-panel > summary::-webkit-details-marker { display: none; }
.format-panel[open] > summary { border-bottom: 1px solid var(--line); }
.format-panel[open] > summary .bi { transform: rotate(180deg); }
.format-body { padding: 18px 20px; }
.format-body > p { font-size: 11px; line-height: 1.8; color: var(--muted); margin: 0; }
.column-list { margin: 12px 0 18px; }
.format-tip { font-size: 10px; }
.batch-output { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
#batch-result { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
#batch-result > .error-card { overflow: auto; border: 0; }
.batch-results { flex: 1; display: flex; flex-direction: column; min-height: 0; min-width: 0; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.batch-result-heading { flex-shrink: 0; padding: 20px; flex-wrap: wrap; }
.batch-result-heading h2 { font-size: 14px; }
.batch-result-heading p { font-size: 11px; overflow-wrap: anywhere; }
.export-actions { flex-wrap: wrap; }
.export-actions .btn { font-size: 11px; }
.batch-stats { flex-shrink: 0; margin: 0 20px 18px; }
.batch-stat { padding: 13px; }
.batch-stat > span { font-size: 9px; }
.batch-stat strong { font-size: 22px; }
.table-tools { flex-shrink: 0; padding: 12px 20px; gap: 12px; flex-wrap: wrap; }
.preview-label { font-size: 10px; }
.table-tools label { font-size: 11px; }
.table-search input { font-size: 11px; }
.table-responsive { flex: 1; min-height: 0; min-width: 0; overflow: auto; }
.results-table { font-size: 12px; }
.results-table thead { position: sticky; top: 0; z-index: 1; background: var(--subtle); }
.results-table th { font-size: 9px; padding: 13px 16px; }
.results-table td { padding: 14px 16px; }
.table-address { min-width: 160px; }
.table-address small { font-size: 10px; }
.table-footnote { flex-shrink: 0; font-size: 10px; padding: 12px 20px; }
.review-detail summary { cursor: pointer; list-style: none; white-space: nowrap; }
.review-detail summary::-webkit-details-marker { display: none; }
.review-detail[open] { min-width: 180px; }
.review-detail[open] summary .bi-chevron-down { transform: rotate(180deg); }
.review-detail ul { padding-left: 14px; margin: 9px 0 0; font-size: 11px; color: var(--warning); line-height: 1.7; }
.error-card { border: 0; box-shadow: none; }
.modal { overflow: hidden; }
.modal-dialog-scrollable .modal-body { overscroll-behavior: contain; }
.toast-container { max-width: 100%; pointer-events: none; }
.toast { max-width: 100%; }

@media (max-width: 1150px) and (min-width: 761px) {
  .sidebar { width: 182px; flex-basis: 182px; padding-left: 10px; padding-right: 10px; }
  .nav-item { padding: 10px; font-size: 11px; gap: 8px; }
  .nav-item kbd, .external-icon { display: none; }
  .brand { padding: 0 8px; }
  main { padding: 14px; }
  .lookup-layout { grid-template-columns: 320px minmax(0, 1fr); gap: 14px; }
  .batch-workspace { grid-template-columns: 280px minmax(0, 1fr); gap: 14px; }
  .batch-result-heading { align-items: flex-start; flex-direction: column; }
  .preview-label { width: 100%; }
  .optional { font-size: 9px; margin-left: 3px; }
  .result-number { font-size: 25px; letter-spacing: .5px; }
  .metric-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .app-window { flex-direction: column; }
  .sidebar { width: 100%; flex: 0 0 58px; height: 58px; flex-direction: row; align-items: center; padding: 0 14px; gap: 20px; border: 0; border-bottom: 1px solid var(--line); overflow: hidden; background: var(--surface); }
  .brand { padding: 0; margin: 0; font-size: 19px; gap: 8px; }
  .brand-icon { width: 28px; height: 28px; font-size: 18px; border-radius: 8px; }
  .sidebar-label, .sidebar-bottom, .workspace-nav:nth-of-type(2), .nav-item kbd { display: none; }
  .workspace-nav { flex: 1; flex-direction: row; gap: 4px; justify-content: flex-end; }
  .nav-item { min-height: 34px; padding: 8px 10px; font-size: 11px; gap: 6px; }
  .nav-item > .bi { font-size: 13px; }
  .toolbar { flex-basis: 44px; height: 44px; padding: 0 16px; }
  .breadcrumb-label { font-size: 11px; gap: 8px; }
  .breadcrumb-label > span, .breadcrumb-label > .bi { display: none; }
  .toolbar-right { gap: 10px; }
  .mobile-theme { display: grid; }
  .local-badge { font-size: 9px; }
  main { padding: 12px; }
  .pane-switcher { display: flex; flex-shrink: 0; gap: 4px; padding: 3px; background: var(--line); border-radius: 8px; margin-bottom: 12px; }
  .pane-switcher button { flex: 1; border: 0; border-radius: 6px; padding: 7px 12px; background: transparent; color: var(--muted); font-size: 12px; }
  .pane-switcher button[aria-pressed=true] { color: var(--ink); background: var(--surface); box-shadow: 0 1px 3px #0000000a; }
  .lookup-layout, .batch-workspace { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #lookup-view[data-pane=form] .result-column, #lookup-view[data-pane=results] .address-panel,
  #batch-view[data-pane=form] .batch-output, #batch-view[data-pane=results] .batch-setup { display: none; }
  .panel-heading { padding: 13px 16px; }
  .panel-heading h2 { font-size: 13px; }
  .form-fields { padding: 17px; }
  .form-control { font-size: 16px; min-height: 43px; }
  .form-label { font-size: 12px; }
  .optional { font-size: 9px; }
  .form-actions { padding: 14px 17px; }
  .lookup-button { min-height: 43px; font-size: 12px; }
  .text-button { font-size: 11px; }
  .result-number { font-size: 29px; }
  .result-status { padding: 20px 20px 0; }
  .result-hero, .result-details { padding: 20px; }
  .code-parts { gap: 12px; font-size: 10px; }
  .metric { padding: 13px; }
  .metric > strong.address-type { font-size: 12px; }
  .coordinates { font-size: 10px; }
  .result-actions { padding: 0 20px 20px; gap: 8px; }
  .result-warnings { margin-left: 20px; margin-right: 20px; }
  .batch-result-heading { padding: 16px; align-items: flex-start; gap: 12px; }
  .batch-stats { margin: 0 16px 14px; }
  .batch-stat { padding: 10px; }
  .batch-stat > span { font-size: 8px; }
  .batch-stat strong { font-size: 20px; }
  .table-tools { padding: 10px 16px; gap: 10px; }
  .preview-label { width: 100%; }
  .table-footnote { padding: 10px 16px; font-size: 9px; }
  .table-search { max-width: 160px; }
  .guide-grid { grid-template-columns: 1fr; gap: 12px; }
  .modal-header, .modal-body, .modal-footer { padding: 20px; }
  .modal-footer { gap: 15px; }
}
@media (max-height: 500px) {
  .sidebar { padding-top: 12px; }
  .brand { margin-bottom: 18px; }
  .resources-label { margin-top: 18px; }
  .batch-stat { padding-top: 7px; padding-bottom: 7px; }
  .batch-stats { margin-bottom: 10px; }
  .batch-result-heading { padding-top: 12px; padding-bottom: 12px; }
}
@media (max-width: 760px) and (max-height: 500px) {
  .sidebar { padding-top: 0; flex-basis: 46px; height: 46px; }
  .brand { margin: 0; }
  .toolbar { flex-basis: 36px; height: 36px; }
  main { padding: 8px; }
  .pane-switcher { margin-bottom: 8px; }
  .panel-heading { padding-top: 8px; padding-bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Explicit appearance choices; Bootstrap uses dark controls for both dark palettes. */
.appearance-menu { --bs-dropdown-bg: var(--surface); --bs-dropdown-color: var(--ink); --bs-dropdown-border-color: var(--line); --bs-dropdown-link-color: var(--ink); --bs-dropdown-link-hover-color: var(--ink); --bs-dropdown-link-hover-bg: var(--subtle); --bs-dropdown-link-active-color: var(--accent); --bs-dropdown-link-active-bg: var(--accent-soft); min-width: 185px; padding: 5px; border-radius: 9px; box-shadow: 0 8px 28px #0002; }
.appearance-menu .dropdown-item { display: flex; align-items: center; gap: 10px; border-radius: 5px; padding: 9px 10px; font-size: 12px; }
.appearance-menu .choice-check { margin-left: auto; visibility: hidden; }
.appearance-menu [aria-checked=true] .choice-check { visibility: visible; }
.appearance-menu [aria-checked=true] { color: var(--accent); background: var(--accent-soft); }
.appearance-menu .dropdown-header { color: var(--muted); font-size: 10px; padding: 7px 10px; }
[data-appearance=oled] .result-hero { background: var(--surface); }
[data-appearance=oled] .surface, [data-appearance=oled] .sidebar { box-shadow: none; }

/* Light is the default: crisp controls on soft, cool surfaces. */
[data-bs-theme=light] .sidebar { background: linear-gradient(180deg, #edf2f9, #e8eef6); }
[data-bs-theme=light] .toolbar { background: #f7f9fc; }
[data-bs-theme=light] .brand-icon { background: linear-gradient(145deg, #5599e5, #326bb6); border-color: #ffffff80; box-shadow: 0 3px 8px #356cb526, inset 0 1px #ffffff50; }
[data-bs-theme=light] .nav-item.active { font-weight: 600; background: #dce9fa; box-shadow: inset 0 0 0 1px #cbdcf3; }
[data-bs-theme=light] .panel-heading { background: #f7f9fd; }
[data-bs-theme=light] .form-control { background: #fdfefe; border-color: #d6e0ed; box-shadow: 0 1px 2px #24385804; }
[data-bs-theme=light] .form-control:focus { border-color: #6b9bd3; box-shadow: 0 0 0 3px #3c7ac218; }
[data-bs-theme=light] .btn-primary { background-image: linear-gradient(180deg, #387bcd, #2d68b3); border-color: #2c65ac; box-shadow: 0 2px 4px #2e65a41c, inset 0 1px #ffffff20; }
[data-bs-theme=light] .btn-primary:hover { background-image: linear-gradient(180deg, #3070bc, #255c9f); }
[data-bs-theme=light] .btn-primary:active { background-image: none; }
[data-bs-theme=light] .btn-primary:disabled { background-image: none; }
[data-bs-theme=light] .empty-state > .bi { background: #eaf2fd; color: #5985bd; border-color: #dbe7f6; box-shadow: inset 0 1px #fff9, 0 3px 10px #2c68ad06; }
[data-bs-theme=light] .dropzone { background: #f1f6fd; border-color: #bdcfe7; }
[data-bs-theme=light] .dropzone.drag-over { background: #e3effe; border-color: var(--accent); }
[data-bs-theme=light] .results-table tbody tr:nth-child(even) { background: #f4f7fc; }
[data-bs-theme=light] .results-table tbody tr:hover { background: #edf3fc; }
[data-bs-theme=light] .results-table th { color: #586d88; background: #edf2fa; }
[data-bs-theme=light] .batch-stat { background: #f2f6fc; }

/* Batch results controls stay outside the scrolling table. */
.review-controls { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.threshold-control { width: 152px; flex-shrink: 0; }
.threshold-control label { display: flex; justify-content: space-between; gap: 10px; font-size: 10px; color: var(--muted); margin-bottom: 4px; }
.threshold-control output { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--accent); }
.threshold-control .form-range { display: block; height: 16px; margin: 0; accent-color: var(--accent); }
.form-range::-webkit-slider-thumb { background: var(--accent); }
.form-range::-moz-range-thumb { background: var(--accent); }
.form-range::-webkit-slider-runnable-track { background: var(--line); }
.form-range::-moz-range-track { background: var(--line); }
.table-tools .table-search { margin-left: auto; flex: 1; min-width: 130px; }
.threshold-help { flex-shrink: 0; font-size: 10px; color: var(--muted); margin: 0; padding: 0 20px 10px; }
.results-table th { padding: 0; }
.results-table th:first-child { padding-left: 8px; }
.results-table th button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 13px 16px; border: 0; color: inherit; background: transparent; font: inherit; letter-spacing: inherit; text-align: left; white-space: nowrap; }
.results-table th button:hover { color: var(--accent); background: var(--accent-soft); }
.results-table th[aria-sort=ascending], .results-table th[aria-sort=descending] { color: var(--accent); }
.results-table th .bi { font-size: 10px; opacity: .75; }
.table-matched { max-width: 290px; line-height: 1.5; }
.table-pagination { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; padding: 10px 16px; border-top: 1px solid var(--line); flex-shrink: 0; font-size: 10px; color: var(--muted); }
#result-range { margin-right: auto; font-variant-numeric: tabular-nums; }
.page-size-label { display: flex; align-items: center; gap: 7px; }
.page-size-label .form-select { width: 67px; min-height: 29px; font-size: 11px; border-color: var(--line); background-color: var(--surface); color: var(--ink); }
#batch-pagination { display: flex; gap: 3px; }
.page-button { width: 27px; height: 28px; padding: 0; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.page-button:hover:not(:disabled) { color: var(--accent); background: var(--accent-soft); }
.page-button[aria-current=page] { background: var(--accent-soft); color: var(--accent); border-color: color-mix(in srgb,var(--accent) 20%,transparent); font-weight: 600; }
.page-button:disabled { opacity: .3; }
.batch-result-heading > div:first-child { min-width: 0; }
.batch-result-heading p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
@media (max-width: 1150px) {
  .review-controls { gap: 12px; }
  .threshold-control { width: 136px; }
}
@media (max-width: 760px) {
  .batch-result-heading { flex-direction: row; flex-wrap: nowrap; padding: 12px 14px; gap: 8px; }
  .batch-result-heading h2 { font-size: 13px; }
  .batch-result-heading p { max-width: 140px; font-size: 10px; }
  .export-actions { gap: 4px; flex-wrap: nowrap; margin-left: auto; }
  .export-actions .export-label { display: none; }
  .export-actions .btn { width: 31px; height: 31px; padding: 6px; }
  .export-actions .bi { margin: 0; }
  .table-tools { gap: 8px; padding: 10px 14px 7px; }
  .review-controls { width: 100%; flex-wrap: nowrap; gap: 14px; }
  .threshold-control { width: 128px; }
  .table-tools .table-search { margin-left: 0; max-width: none; }
  .threshold-help { font-size: 9px; padding: 0 14px 8px; }
  .table-tools .form-check { gap: 5px; }
  .table-tools .form-check label { font-size: 10px; white-space: nowrap; }
  .table-pagination { gap: 6px 10px; padding: 8px 12px; font-size: 9px; }
  #batch-pagination { justify-content: center; width: 100%; }
  .page-size-label .form-select { min-height: 25px; padding-top: 2px; padding-bottom: 2px; }
}
