/* Scoped to migrated pages; third-party maps/charts keep their own controls. */
body.st-page{margin:0;background:var(--st-bg);color:var(--st-text);font:var(--st-body)/1.5 var(--st-font);min-height:100dvh}
.st-page *{box-sizing:border-box}
.st-page [hidden]{display:none!important}
body.st-page h1{font-size:var(--st-title);line-height:1.2;letter-spacing:normal}
body.st-page h2{font-size:var(--st-section);line-height:1.3}
body.st-page h3{font-size:var(--st-subtitle);line-height:1.4}
.st-page :where(input,select,textarea,button){font-family:var(--st-font)}
.st-page :where(button,.btn,.button,.portal-button,.st-button,.print-button,.ghost-button,.save-program-button,.new-program-button):not(.leaflet-control *){
  border-radius:var(--st-radius-control);font-size:var(--st-label);font-weight:600;min-height:var(--st-control-height);padding:8px 12px;line-height:1.3;
}
.st-page :where(button,.btn,.button,.portal-button,.st-button):not(.leaflet-control *):not(.nav):not(.day):not(.event){border-color:var(--st-control-border)}
.st-page :where(.primary,.btn-primary,.st-primary,button[type=submit],.save-program-button):not(.nav):not(.st-account *){background:var(--st-primary);border-color:var(--st-primary);color:var(--st-surface)}
.st-page :where(.primary,.btn-primary,.st-primary,button[type=submit],.save-program-button):not(.nav):hover:not(:disabled){background:var(--st-primary-hover)}
.st-page :where(.danger,.btn-danger,.st-danger){color:var(--st-danger);border-color:var(--st-danger);background:var(--st-surface)}
.st-page :where(.st-danger,.danger,.btn-danger):hover:not(:disabled){background:#fff0ee}
.st-page :where(.st-quiet){background:transparent;border-color:transparent;color:var(--st-text)}
.st-page :where(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea):not(.leaflet-control *){
  font-size:var(--st-body);color:var(--st-text);border:1px solid var(--st-control-border);border-radius:var(--st-radius-control);background:var(--st-surface);min-height:var(--st-control-height);padding:8px 10px;max-width:100%;
}
.st-page :where(input[type=checkbox],input[type=radio]){accent-color:var(--st-primary);width:18px;height:18px;flex-shrink:0}
.st-page :where(input[readonly],textarea[readonly]){background:var(--st-bg)}
.st-page :where(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.55}
.st-page :where(label){font-size:var(--st-label)}
.st-page :where(.muted,.help,.hint,.intro-text){color:var(--st-muted);font-size:var(--st-small)}
.st-page :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--st-focus);outline-offset:3px}
.st-page :where(dialog){border:1px solid var(--st-line);border-radius:var(--st-radius-panel);background:var(--st-surface);color:var(--st-text);box-shadow:0 16px 48px #172c4033;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
.st-page :where(dialog)::backdrop{background:#172c4077}
.st-page :where(.dialog-head,.dialog-heading,.modal-head){border-bottom:1px solid var(--st-line);padding-bottom:16px}
.st-page :where(.dialog-actions,.dialog-footer,.modal-actions){gap:12px;flex-wrap:wrap}
.st-page :where(.notice,.message,.alert){border-radius:var(--st-radius-control);font-size:var(--st-small)}
.st-page :where(.message.error,.error-message,[role=alert]:not(:empty)){color:var(--st-danger)}
.st-page :where(.message.success,.success-message){color:var(--st-success)}
.st-page :where(table):not(.calendar *){font-size:var(--st-small)}
.st-page :where(th){font-size:var(--st-small);font-weight:650}
.st-page :where(th,td){line-height:1.4}
.st-page :where(.st-panel){background:var(--st-surface);border:1px solid var(--st-line);border-radius:var(--st-radius-panel);padding:var(--st-space-4)}
.st-page .st-field-error{color:var(--st-danger);font-size:var(--st-small);margin:4px 0}
.st-page [aria-invalid=true]{border-color:var(--st-danger)}
.st-page .st-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:600px){body.st-page :is(input:not([type=checkbox]):not([type=radio]),select,textarea):not(.leaflet-control *){font-size:16px}.st-page :where(.form-row){flex-wrap:wrap}.st-page :where(.form-row)>label{min-width:0;flex-basis:100%}}
