/* Shared control geometry. Keep text roles in typography.css. */
:root{
  --control-height:40px;
  --control-pad-y:8px;
  --control-pad-x:12px;
  --control-gap:8px;
  --control-embedded-height:calc(var(--control-height) - 6px);
  --control-query-width:52px;
  --control-grid-pad-x:4px;
  --control-page-height:36px;
  --control-page-pad-x:8px;
}
@media(max-width:800px){:root{
  --control-height:38px;
  --control-pad-y:6px;
  --control-pad-x:10px;
  --control-gap:6px;
  --control-page-height:32px;
  --control-page-pad-x:2px;
}}
button{min-height:var(--control-height);padding:var(--control-pad-y) var(--control-pad-x)}

/* Standard actions and navigation; multiline labels may grow. */
.admin-tabs a,
.brand-button-ghost,
.brand-button-light,
.brand-local-nav a,
.category-scroll a,
.favorite-button:not(.favorite-button-compact),
.favorite-first-guide-confirm,
.favorite-help-button,
.favorite-mail-guide-actions a,
.festival-directory-entry .secondary-button,
.fuel-sort a,
.home-filter button,
.home-region-badges a,
.home-search-regions a,
.main-nav a,
.member-danger>summary,
.member-menu-panel a,
.member-menu-panel button,
.member-menu>summary,
.member-social-button,
.mobile-account-links a,
.mobile-account-links button,
.mobile-menu .outing-menu-panel a,
.mobile-menu .outing-menu>summary,
.mobile-menu a,
.mobile-menu>a,
.outing-menu-panel a,
.outing-menu>summary,
.outing-tabs a,
.parking-search button,
.portal-search-section .home-search-regions a,
.portal-search-section .portal-shortcuts a,
.portal-shortcuts a,
.primary-button,
.report-menu summary,
.secondary-button,
.trip-page .trip-section-nav a,
.trip-section-menu.is-enhanced .trip-section-toggle,
.trip-section-nav a,
[aria-labelledby="home-current-festivals"] .home-filter button{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  min-width:0;min-height:var(--control-height);height:auto;
  padding:var(--control-pad-y) var(--control-pad-x);
  gap:var(--control-gap);font-size:var(--font-control);line-height:1.5;
}
.mobile-menu>a,.mobile-menu a,.mobile-menu .outing-menu>summary,.member-menu-panel a,.member-menu-panel button,.mobile-account-links a,.mobile-account-links button{justify-content:flex-start}
.trip-section-menu.is-enhanced .trip-section-toggle,.mobile-menu .outing-menu>summary{justify-content:space-between}
.mobile-menu .outing-menu>summary{width:100%}
.favorite-button-compact{min-height:56px}

/* Inputs align with regular buttons; native choice controls keep their own size. */
.admin-action input:where(:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file])),
.admin-filter input:where(:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file])),
.admin-filter select,
.discover-form input:where(:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file])),
.discover-form select,
.fuel-form input:where(:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file])),
.fuel-form select,
.home-filter select,
.outing-filter input:where(:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file])),
.outing-filter select,
[aria-labelledby="home-current-festivals"] .home-filter select,
input:where(:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file])),
select{
  box-sizing:border-box;height:var(--control-height);min-height:var(--control-height);
  padding:0 var(--control-pad-x);font-size:var(--font-input);line-height:1.5;
}
textarea{padding:var(--control-pad-y) var(--control-pad-x)}
.discover-query input,.fuel-query input{padding-right:calc(var(--control-query-width) + 10px)}

/* Search controls sit inside a regular-height field. */
.page-search,
.portal-search,
.portal-search-section .portal-search{
  box-sizing:border-box;height:var(--control-height);min-height:var(--control-height);
  padding:2px;border-width:1px;gap:4px;align-items:center;
}
.page-search input,
.portal-search input,
.portal-search-section .portal-search input{
  height:var(--control-embedded-height);min-height:var(--control-embedded-height);
  padding:0 var(--control-pad-x);line-height:1.5;
}
.discover-query button,
.fuel-query button,
.page-search button,
.portal-search button,
.portal-search-section .portal-search button{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  flex:none;width:var(--control-query-width);min-width:var(--control-query-width);
  height:var(--control-embedded-height);min-height:var(--control-embedded-height);
  padding:0 var(--control-pad-x);line-height:1.5;
}
.discover-query button,.fuel-query button{right:3px;bottom:3px}
.discover-types{padding:2px;gap:4px}
.discover-types span{min-height:var(--control-embedded-height);padding:4px var(--control-pad-x);line-height:1.5}

/* Shared pagination uses compact squares on every listing. */
.pagination a,
.pagination-pages [aria-current=page],
.pagination-pages a,
.pagination>span,
.portal-pagination .pagination-direction{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  min-width:var(--control-page-height);min-height:var(--control-page-height);height:auto;
  padding:4px var(--control-page-pad-x);line-height:1.5;
}
@media(max-width:800px){
  .home-region-badges a,.home-search-regions a,.portal-shortcuts a,.portal-search-section .home-search-regions a,.portal-search-section .portal-shortcuts a{padding-inline:var(--control-grid-pad-x)}
  .discover-form,.fuel-form,.outing-filter,.parking-search{gap:var(--control-gap)}
  .category-scroll,.outing-tabs,.fuel-sort,.admin-tabs,.mobile-account-links{gap:var(--control-gap)}
  .portal-pagination{gap:4px}
  .pagination-pages-mobile{gap:3px}
}
@media(max-width:360px){:root{--control-grid-pad-x:1px}}

/* Navigation stays visible at every width; do not turn menus into scroll strips. */
.category-scroll,.brand-local-nav .section-shell,.outing-tabs,.fuel-sort,.admin-tabs,.trip-section-nav{
  flex-wrap:wrap;min-width:0;max-width:100%;overflow:visible;
}
.category-scroll>a,.brand-local-nav a,.outing-tabs>a,.fuel-sort>a,.admin-tabs>a,.trip-section-nav>a{
  min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;
}

/* Compact fuel controls share the existing narrow-grid padding and hit heights. */
.fuel-price-cell{padding:var(--control-pad-y) var(--control-grid-pad-x)}
.fuel-price-cell>i{padding-inline:var(--control-grid-pad-x)}
@media(max-width:700px){
  .fuel-sort>a{padding-inline:var(--control-grid-pad-x);gap:calc(var(--control-gap) / 2)}
  .fuel-sort>a::before{margin-right:0}
}

/* Detail prices reuse the compact fuel label spacing without shrinking numbers. */
.station-price-grid>div{padding:var(--control-pad-y) var(--control-grid-pad-x)}
.station-price-grid>div>span{padding-inline:var(--control-grid-pad-x)}
@media(max-width:700px){
  .fuel-station-content>.portal-panel:has(.station-price-grid){padding:var(--control-pad-x)}
}
