/* Confirmation preserves the map view and is separate from the recorded claim. */
#claim-area-action[hidden],#claim-area-confirm[hidden],#claim-account-form[hidden],#claim-code-form[hidden]{display:none!important}
.claim-coming-soon{color:#81909d!important;opacity:.65}.claim-coming-soon small{font-size:10px}
.claim-area-action{position:fixed;z-index:33;bottom:22px;right:22px;max-width:min(240px,calc(100vw - 30px))}
.claim-area-action button{background:#1C4076;color:#fff;border:1px solid #1C4076;border-radius:7px;padding:11px 17px;min-height:44px;font:700 13px/1.25 'Noto Sans',sans-serif;box-shadow:0 3px 14px #00194333;cursor:pointer}
.claim-area-action button:disabled{opacity:1;background:#EEF2F4;color:#28536A;border-color:#BECBD4;cursor:default;box-shadow:none}
.claim-area-confirm{position:fixed;top:95px;left:50%;transform:translateX(-50%);width:min(610px,calc(100vw - 24px));box-sizing:border-box;z-index:38;display:flex;align-items:center;justify-content:space-between;gap:13px;padding:12px 15px;background:#fff;border:1px solid #CCD5DC;border-left:5px solid #DB4D2B;border-radius:7px;box-shadow:0 6px 22px #14245E35;color:#1C4076}
.claim-area-confirm strong{font-size:13px;line-height:1.4;font-weight:700}
.claim-area-confirm-buttons{display:flex;flex:none;gap:8px}
.claim-area-confirm button{min-width:57px;min-height:44px;border-radius:5px;padding:7px 12px;background:#fff;border:1px solid #889EAF;color:#1C4076;font:700 13px 'Noto Sans',sans-serif;cursor:pointer}
#claim-area-yes{background:#1C4076;color:#fff;border-color:#1C4076}
.claim-account-dialog{position:fixed;max-width:min(440px,calc(100vw - 24px));max-height:min(90dvh,740px);width:100%;padding:0;border-radius:10px;border:1px solid #BDC9D4;background:#fff;color:#1C4076;box-shadow:0 10px 35px #0B244444;overflow-y:auto;box-sizing:border-box}
.claim-account-dialog::backdrop{background:#152D45A8}
.claim-account-inner{padding:17px 18px 18px}
.claim-account-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.claim-account-kicker{color:#617386;font-size:10px;font-weight:800;letter-spacing:.1em}
#claim-account-close{border:1px solid #B7C7D3;border-radius:6px;color:#1C4076;background:#fff;min-width:42px;min-height:42px;font-size:23px;cursor:pointer}
.claim-account-dialog h2{font-family:'Noto Sans',sans-serif;margin:0 0 5px;font-size:20px;line-height:1.3}
.claim-account-description{font-size:12px;line-height:1.45;margin:0 0 12px;color:#42596C}
.claim-account-form,.claim-account-code{display:flex;flex-direction:column;gap:10px}
.claim-account-form>label,.claim-account-code>label,.claim-name-fields>label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700}
.claim-name-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.claim-name-fields input{min-width:0;max-width:100%}
.claim-account-form input:not([type=radio]):not([type=checkbox]),.claim-name-fields input,.claim-account-form select,.claim-account-code input:not([type=checkbox]){width:100%;min-height:44px;box-sizing:border-box;border:1px solid #9EAFC0;border-radius:5px;background:#fff;padding:9px;color:#1C4076;font:400 16px 'Noto Sans',sans-serif}
.claim-account-form>.claim-sms-consent,.claim-code-resend>.claim-sms-consent{display:flex;flex-direction:row;align-items:flex-start;gap:9px;font-size:11px;font-weight:400;line-height:1.5}
.claim-code-resend>summary{display:flex;align-items:center;min-height:44px;color:#1C4076;text-decoration:underline;font:700 12px 'Noto Sans',sans-serif;cursor:pointer;list-style:none}
.claim-code-resend>summary::-webkit-details-marker{display:none}
.claim-code-resend>summary:focus-visible{outline:2px solid #1C4076;outline-offset:3px}
.claim-code-resend[open]>summary{margin-bottom:8px}
.claim-sms-consent input{flex:none;width:18px;height:18px;margin:3px 0 0;accent-color:#1C4076}
.claim-sms-consent[hidden]{display:none}
.claim-account-form fieldset{display:flex;gap:14px;flex-wrap:wrap;margin:1px 0;border:1px solid #D1DAE2;border-radius:5px;padding:7px 9px 8px}
.claim-account-form legend{padding:0 4px;font-size:12px;font-weight:700}
.claim-account-form fieldset label{display:inline-flex;align-items:center;gap:7px;font-size:13px;min-height:35px;cursor:pointer}
.claim-account-form fieldset input{accent-color:#1C4076;min-width:17px;min-height:17px}
.claim-account-primary{background:#1C4076;color:#fff;border:1px solid #1C4076;border-radius:5px;min-height:46px;padding:9px 14px;font:700 13px 'Noto Sans',sans-serif;cursor:pointer}
.claim-account-link{align-self:flex-start;min-height:40px;padding:7px 1px;color:#1C4076;background:transparent;border:0;text-decoration:underline;font:700 12px 'Noto Sans',sans-serif;cursor:pointer}
.claim-account-primary:disabled,.claim-account-link:disabled{opacity:.65;cursor:wait}
.claim-account-status{font-size:12px;line-height:1.45;color:#355E70;min-height:17px;margin:12px 0 0}
.claim-account-status.is-error{color:#9E312C;font-weight:700}
.claim-account-privacy{border-top:1px solid #D9E1E6;margin:12px 0 0;padding-top:10px;font-size:10px;line-height:1.4;color:#627687}
@media(max-width:700px){
 .claim-area-action{right:8px;bottom:calc(var(--mobile-switch-height) + env(safe-area-inset-bottom,0px) + 17px)}
 .claim-area-action button{font-size:12px;padding:9px 13px;min-height:44px}
 .claim-area-confirm{top:calc(var(--header) + var(--scope) + var(--mobile-progress-size) + 4px);width:calc(100vw - 12px);border-radius:5px;padding:9px;gap:8px}
 .claim-area-confirm strong{font-size:11px}
 .claim-area-confirm-buttons{gap:5px}
 .claim-area-confirm button{min-width:49px;padding:6px 9px}
 .claim-account-inner{padding:12px 14px 16px}
 .claim-account-dialog{max-height:min(86dvh,690px)}
}

/* Unassigned is a household collection, not a claimable canvass area. */
.canvass-area-list .area-list-unassigned{border-top:1px solid #A8B6C1}
.canvass-area-list .area-list-unassigned button{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:3px}
.canvass-area-list .area-list-unassigned .area-number{font-size:10px;line-height:1.2;font-weight:700;white-space:normal;overflow-wrap:anywhere;text-decoration:none}
.canvass-area-list .area-list-unassigned strong{font-size:12px;font-weight:800}
.canvass-area-list .area-list-unassigned button[aria-pressed="true"]{background:#E7EEF3;box-shadow:inset 4px 0 #526A7A}
@media(max-width:700px){
 /* A scale is redundant with mobile map zoom and is hidden in ALL mobile views. */
 .mapboxgl-ctrl-scale{display:none!important}
 .canvass-area-list .area-list-unassigned button{min-height:44px!important;padding:7px 3px 7px 6px!important}
 .canvass-area-list .area-list-unassigned .area-number{font-size:9px}
}


/* Claimed-area working mode: status stays in the header instead of a map-covering toast. */
:root{--working-canvasser-height:36px;--working-list-height:58px}
.working-canvasser[hidden],.working-list-action[hidden]{display:none!important}
.working-canvasser{
  position:fixed;left:0;right:0;top:calc(var(--header) + var(--scope));
  height:var(--working-canvasser-height);box-sizing:border-box;z-index:25;
  background:#DB4D2B;color:#FFFFFF;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:4px 8px;font:700 13px/1.25 'Noto Sans',sans-serif;
}
.working-list-action{
  position:fixed;left:0;right:0;top:calc(var(--header) + var(--scope) + var(--working-canvasser-height));
  height:var(--working-list-height);box-sizing:border-box;z-index:25;
  background:#FFFFFF;border-bottom:1px solid #CAD7DF;
  display:flex;align-items:center;justify-content:center;padding:6px 10px;
}
.working-list-action button{
  background:#DB4D2B;color:white;border:1px solid #C84324;border-radius:6px;
  width:min(100%,650px);height:45px;min-height:44px;
  font:800 14px/1.3 'Noto Sans',sans-serif;cursor:pointer;box-shadow:0 2px 7px #8334192c;
}
.working-list-action button span{font-size:19px;margin-left:10px;vertical-align:-1px}
.working-list-action button:focus-visible{outline:3px solid #1C4076;outline-offset:2px}
body.is-working-area #canvass-area-list,
body.is-working-area #areas-reopen,
body.is-working-area #claim-area-action{display:none!important}
@media(min-width:701px){
  body.is-working-area #map{top:calc(var(--header) + var(--scope) + var(--working-canvasser-height) + var(--working-list-height))}
  body.is-working-area .map-buttons{top:calc(var(--header) + var(--scope) + var(--working-canvasser-height) + var(--working-list-height) + 28px)}
}
@media(max-width:700px){
  .working-canvasser{font-size:11px;letter-spacing:.05px}
  body.is-working-area .mobile-progress{top:calc(var(--header) + var(--scope) + var(--working-canvasser-height))}
  body.is-working-area #mobile-progress-fill{background:#DB4D2B}
  body.is-working-area #mobile-progress-text .working-visited-count{color:#DB4D2B;font-weight:900}
  body.is-working-area .mobile-progress-track{background:#F5F7F7;border-color:#D1B3A9}
  .working-list-action{
    top:calc(var(--header) + var(--scope) + var(--working-canvasser-height) + var(--mobile-progress-size));
  }
  body.is-working-area #map{
    top:calc(var(--header) + var(--scope) + var(--working-canvasser-height) + var(--mobile-progress-size) + var(--working-list-height));
  }
  body.is-working-area .map-buttons{
    top:calc(var(--header) + var(--scope) + var(--working-canvasser-height) + var(--mobile-progress-size) + var(--working-list-height) + 18px);
  }
  body.is-working-area .household-map-callout{bottom:calc(var(--mobile-switch-height) + env(safe-area-inset-bottom,0px) + 12px)!important}
}

/* Show a short name field only for a selected Other organization. */
#claim-other-institution-row[hidden]{display:none!important}
#claim-institution:disabled{background:#f1f4f6;color:#61768a;cursor:not-allowed}
#claim-other-institution-row input{width:100%;min-height:44px}
