/* Layout shared across modules; keep legacy colors, Noto Sans and icon fonts. */
#app,.home-grid>*,.columns>*,.three>*,.territory-grid>*,.candidate-menu{min-width:0}
#nav{display:flex;flex-wrap:wrap;width:fit-content;max-width:100%}
#nav a{min-height:44px;display:flex;align-items:center;justify-content:center}
.menu-toggle{display:none;background:#009688;min-height:44px}
.actions{align-items:center;gap:10px}
.actions button{min-height:40px}
.row>*{min-width:0;max-width:100%}
.row label{flex:1 1 180px}
.filter-line{flex-wrap:wrap}
.columns,.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.table-wrap table{min-width:600px}
td,th{overflow-wrap:anywhere}
button,input,select,textarea{max-width:100%}
textarea{font:inherit;width:100%}
.result-top strong{min-width:0;overflow-wrap:anywhere}
.result-top>span{flex-shrink:0}
.actual-map,.home-map{height:65vh;height:65svh;min-height:320px;max-height:720px}
.home-map{height:440px}
.pagination{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}
.pagination span{font-size:12px;text-align:center}
.pagination button{min-width:90px;min-height:44px}
#amendment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
#amendment-summary .metric{font-size:clamp(18px,2.5vw,30px);overflow-wrap:anywhere}
.table-wrap:focus-visible{outline:3px solid #e4a038;outline-offset:2px}
@media(max-width:1000px){.profile-image{width:90px;height:90px}.candidate-menu{padding-top:0}.home-grid,.columns{grid-template-columns:1fr}.planning{grid-template-columns:minmax(0,1fr)}}
@media(max-width:768px){
 header{margin:12px}.header-top{display:flex;flex-wrap:wrap;gap:10px}.brand img{max-width:100%;height:auto}.brand{max-width:100%}.account{margin:0;flex-wrap:wrap;gap:0}.account a{min-height:44px;display:flex;align-items:center}
 .candidate-header{flex-direction:row;gap:12px;margin-top:12px;align-items:start}.profile-image{width:48px;height:48px;margin:0}.candidate-menu{padding:0}.candidate-menu .welcome,.candidate-menu .city{text-align:left}.city label{margin:0}.city select{width:100%;margin-top:5px}
 .menu-toggle{display:block;width:100%;margin-top:12px;text-align:left}
 #nav{display:none;margin-top:6px;width:100%;flex-direction:row;box-shadow:0 1px 3px #0003}
 #nav.is-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #nav a{font-size:14px;padding:10px 6px;white-space:normal;width:100%}#nav small{position:static;margin-left:4px;width:auto;padding:2px}
 main{margin:18px 12px}.local-strip{min-height:0;padding:8px;font-size:12px}.local-strip a{margin-left:5px;font-size:12px;padding:5px 8px}
 .three,.summary,#amendment-summary{grid-template-columns:1fr}.section{padding:16px;margin-bottom:18px}.section:first-child{padding-top:16px}.section>h2:first-child{margin:-16px -16px 16px;padding:16px}.home-map{margin:12px -16px;width:calc(100% + 32px)}
 input:not([type=checkbox]),select,textarea{font-size:16px;min-height:44px}button{min-height:44px}.tabs{gap:5px}.tabs button{flex:1 1 auto}.actions{gap:8px}.actions button{flex:1 1 auto}.pagination{justify-content:space-between}.pagination span{flex:1 1 100%;order:3}
 .actual-map,.home-map{height:55svh;min-height:300px}.territory-grid{gap:12px}.panel{padding:14px}.metric{font-size:28px}.filter-line>*{max-width:100%}.map-legend{max-width:220px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.menu-toggle{display:none!important}.table-wrap table{min-width:0}.actual-map,.home-map{max-height:none}}
