.hub-public-contacts{align-items:stretch}
.hub-public-contact{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:10px;align-items:stretch;padding:12px;border:1px solid #dedbd4;border-radius:11px;background:#faf9f6}
.hub-public-contact.wide{grid-column:1/-1}
.hub-public-contact .hub-field{align-self:center}
.hub-public-toggle{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #d8d5ce;border-radius:8px;background:#fff;cursor:pointer}
.hub-public-toggle input{width:18px;height:18px;accent-color:#168447}
.hub-public-toggle span{display:grid;gap:2px}
.hub-public-toggle b{font-size:10px;text-transform:uppercase}
.hub-public-toggle small{color:#777;font-size:9px;line-height:1.3}
.hub-yesno{display:grid;gap:9px;padding:13px;border:1px solid #dedbd4;border-radius:11px;background:#faf9f6}
.hub-yesno>b{font-size:11px;line-height:1.45;text-transform:uppercase}
.hub-yesno>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.hub-yesno label{position:relative;cursor:pointer}
.hub-yesno input{position:absolute;opacity:0;pointer-events:none}
.hub-yesno span{display:grid;place-items:center;min-height:39px;border:1px solid #cac7bf;border-radius:8px;background:#fff;font-size:11px;font-weight:900}
.hub-yesno input:checked+span{border-color:#111;background:#111;color:#fff;box-shadow:inset 0 -3px 0 #e3262e}

.hub-profile-form .hub-locations{border:2px solid #111;box-shadow:0 8px 22px rgba(0,0,0,.06)}
.hub-locations>summary{background:#fff}
.hub-locations-body{padding:0 22px 24px;border-top:1px solid #f0efec;background:linear-gradient(180deg,#fbfbf9 0,#fff 170px)}
.hub-location-mode{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 0}
.hub-location-mode>div:first-child b{font-size:15px}
.hub-location-mode p{margin:5px 0 0;color:#6e6c67;font-size:11px}
.hub-location-mode>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:7px;min-width:170px}
.hub-location-mode button{border:1px solid #bbb8b0;border-radius:8px;background:#fff;color:#111;padding:11px 17px;font-weight:900;cursor:pointer}
.hub-location-mode button.active{border-color:#111;background:#111;color:#fff;box-shadow:inset 0 -3px 0 #e3262e}
.hub-location-mode button:disabled{opacity:.5;cursor:wait}
.hub-location-mode-note{margin:0 0 15px;padding:12px 14px;border-left:4px solid #e49a1c;border-radius:7px;background:#fff3d6;color:#654914;font-size:11px;line-height:1.5}
.hub-location-list{display:grid;gap:10px}
.hub-location-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid #dcd9d2;border-radius:11px;background:#fff}
.hub-location-card.primary{border-color:#e3262e;box-shadow:0 7px 18px rgba(227,38,46,.08)}
.hub-location-marker{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-size:18px;font-weight:900}
.hub-location-card.primary .hub-location-marker{background:#e3262e}
.hub-location-copy{min-width:0}
.hub-location-copy h4{margin:7px 0 4px;font-size:15px}
.hub-location-copy p{margin:0;color:#484744;font-size:12px;line-height:1.45}
.hub-location-copy>small{display:block;margin-top:5px;color:#797772;font-size:10px}
.hub-location-badges{display:flex;flex-wrap:wrap;gap:5px}
.hub-location-badges span{border-radius:999px;background:#efeeea;color:#4b4a46;padding:5px 7px;font-size:8px;font-weight:900;letter-spacing:.03em}
.hub-location-badges span.primary{background:#111;color:#fff}
.hub-location-badges span.public{background:#dff4e6;color:#176b37}
.hub-location-badges span.private{background:#f1e9e9;color:#7d3333}
.hub-location-actions{display:flex;gap:7px}
.hub-location-actions button{border:1px solid #aaa69d;border-radius:7px;background:#fff;padding:9px 11px;font-size:10px;font-weight:900;cursor:pointer}
.hub-location-actions button:hover{border-color:#111;background:#111;color:#fff}
.hub-location-actions button.delete{border-color:#e1b7b9;color:#a51f25}
.hub-location-actions button.delete:hover{border-color:#e3262e;background:#e3262e;color:#fff}
.hub-location-empty{display:grid;justify-items:center;gap:6px;padding:27px;border:1px dashed #bbb8b0;border-radius:10px;background:#fff;text-align:center}
.hub-location-empty>span{font-size:30px;color:#e3262e}
.hub-location-empty p{margin:0;color:#777;font-size:11px}
.hub-add-location{margin-top:12px;border:1px solid #111;border-radius:8px;background:#111;color:#fff;padding:12px 15px;font-weight:900;cursor:pointer}
.hub-add-location:hover{background:#e3262e;border-color:#e3262e}

.hub-location-dialog{width:min(900px,calc(100vw - 32px));max-height:calc(100vh - 32px);margin:auto;padding:0;border:0;border-radius:16px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.36);overflow:auto}
.hub-location-dialog::backdrop{background:rgba(0,0,0,.66);backdrop-filter:blur(3px)}
.hub-location-form{position:relative;padding:28px}
.hub-location-form h3{margin:5px 0 22px;font:32px/1.05 Georgia,serif;letter-spacing:-.025em}
.hub-location-close{position:absolute;right:18px;top:18px;width:38px;height:38px;border:1px solid #d0cdc5;border-radius:50%;background:#fff;font-size:24px;line-height:1;cursor:pointer}
.hub-location-close:hover{border-color:#e3262e;background:#e3262e;color:#fff}
.hub-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hub-location-grid>label,.hub-location-specific>label{display:grid;align-content:start;gap:7px;color:#222;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.hub-location-grid .wide{grid-column:1/-1}
.hub-location-grid input,.hub-location-grid select,.hub-location-grid textarea,.hub-location-specific input{width:100%;border:1px solid #d2cfc7;border-radius:8px;background:#fbfbf9;padding:12px 13px;color:#111;font:14px/1.45 Arial,sans-serif;letter-spacing:normal;text-transform:none}
.hub-location-grid textarea{resize:vertical}
.hub-location-grid input:focus,.hub-location-grid select:focus,.hub-location-grid textarea:focus,.hub-location-specific input:focus{outline:3px solid rgba(227,38,46,.13);border-color:#e3262e;background:#fff}
.hub-location-grid label>small{color:#777;font-size:9px;font-weight:400;letter-spacing:normal;text-transform:none}
.hub-switch{display:flex!important;align-items:center;gap:10px;padding:12px;border:1px solid #d8d5ce;border-radius:9px;background:#faf9f6;cursor:pointer;text-transform:none!important}
.hub-switch>input{width:19px!important;height:19px;flex:0 0 19px;padding:0;accent-color:#168447}
.hub-switch>span{display:grid;gap:3px}
.hub-switch b{font-size:11px}
.hub-switch small{color:#777;font-size:9px;line-height:1.35}
.hub-switch.public{border-color:#bcdcc7;background:#f2fbf5}
.hub-location-specific{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:15px;border:1px solid #dcd9d2;border-radius:10px;background:#f4f2ed}
.hub-location-specific[hidden]{display:none}
.hub-location-form-state{min-height:20px;margin:13px 0 0;color:#a51f25;font-size:11px;font-weight:900}
.hub-location-form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:15px;border-top:1px solid #e4e1da}
.hub-location-form-actions button{border:1px solid #aaa69d;border-radius:8px;background:#fff;padding:12px 16px;font-weight:900;cursor:pointer}
.hub-location-form-actions button[type=submit]{border-color:#e3262e;background:#e3262e;color:#fff}
.hub-location-form-actions button:disabled{opacity:.45;cursor:wait}

@media(max-width:760px){
  .hub-public-contact{grid-template-columns:1fr}
  .hub-location-mode{align-items:stretch;flex-direction:column}
  .hub-location-mode>div:last-child{min-width:0}
  .hub-location-card{grid-template-columns:40px minmax(0,1fr)}
  .hub-location-actions{grid-column:1/-1;justify-content:flex-end}
  .hub-location-grid,.hub-location-specific{grid-template-columns:1fr}
  .hub-location-grid .wide{grid-column:auto}
  .hub-location-form{padding:22px 17px}
  .hub-location-form h3{padding-right:38px;font-size:27px}
}
@media(max-width:520px){
  .hub-locations-body{padding:0 15px 18px}
  .hub-location-card{grid-template-columns:1fr;padding:14px}
  .hub-location-marker{width:36px;height:36px}
  .hub-location-actions{grid-column:auto;justify-content:stretch}
  .hub-location-actions button{flex:1}
  .hub-location-dialog{width:calc(100vw - 18px);max-height:calc(100vh - 18px);border-radius:12px}
  .hub-location-form-actions{align-items:stretch;flex-direction:column-reverse}
  .hub-location-form-actions button{width:100%}
}
