/* Shared control and card contract. Loaded last. Uses the accent and theme tokens. */

:root{
  --btn-h:40px;
  --btn-h-sm:32px;
  --btn-h-lg:44px;
  --btn-radius:.65rem;
  --card-radius:.9rem;
}

:is(
  .primary-button,
  .secondary-button,
  .text-button,
  .approve-button,
  .inline-action,
  a.primary-button,
  a.secondary-button,
  a.text-button,
  button.primary-button,
  button.secondary-button,
  button.text-button,
  summary.primary-button
){
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  height:var(--btn-h);
  min-height:var(--btn-h);
  max-height:none;
  margin:0;
  padding:0 .9rem;
  border-radius:var(--btn-radius);
  font:inherit;
  font-size:.875rem;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  vertical-align:middle;
  white-space:nowrap;
}

:is(.btn-sm,.inline-action,.lr-actions,.doc-row-actions) :is(
  .primary-button,.secondary-button,.text-button,button,a
){
  height:var(--btn-h-sm);
  min-height:var(--btn-h-sm);
  padding:0 .7rem;
  font-size:.8rem;
}

:is(.btn-lg,.public-hero-actions) :is(.primary-button,.secondary-button,a.primary-button,a.secondary-button){
  height:var(--btn-h-lg);
  min-height:var(--btn-h-lg);
  padding:0 1.1rem;
}

@media (pointer:coarse){
  :is(.primary-button,.secondary-button,.text-button,.approve-button,summary.primary-button){
    height:var(--btn-h-lg);
    min-height:var(--btn-h-lg);
  }
}

.header-actions,
.surface-header-actions,
.dashboard-asset-actions,
.context-guide-actions,
.section-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
}
.header-actions>form,
.header-actions>.create-drawer{
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:0;
  border:0;
}
.header-actions summary.primary-button{
  padding:0 .9rem;
}

:is(
  .metric-card,
  .hub-card,
  .quote-card,
  .plan-card,
  .role-card,
  .simple-card,
  .register-plan-card,
  .surface,
  .admin-section,
  .roles-section
){
  background:var(--card-bg);
  color:var(--card-fg);
  border:1px solid var(--border);
  border-radius:var(--card-radius);
  box-shadow:var(--shadow-sm,0 1px 2px rgba(16,24,20,.06));
}

.metric-card,
.hub-card{
  min-height:8.5rem;
}

.metric-card :is(span,small),
.hub-card :is(span,small,p){
  color:var(--card-muted);
}
.metric-card strong,
.hub-card strong,
.role-card strong,
.plan-card strong{
  color:var(--card-fg);
}

.metric-card.featured{
  background:var(--card-bg);
  color:var(--card-fg);
  border-color:var(--card-border);
  box-shadow:none;
}
.metric-card.featured :is(span,small){
  color:var(--card-muted);
}
.metric-card.featured strong{
  color:var(--card-fg);
}
.metric-card.featured .metric-icon{
  color:var(--accent,var(--pine));
  background:var(--accent-soft);
}

:is(a.metric-card,a.hub-card):hover,
:is(a.metric-card,a.hub-card):focus-visible,
.farm-row.is-selected{
  box-shadow:var(--focus-ring);
}

:is(button,a,.primary-button,.secondary-button,summary):focus-visible{
  outline:2px solid var(--accent,var(--pine));
  outline-offset:2px;
}

html[data-theme=dark] :is(.metric-card,.hub-card,.surface,.quote-card,.plan-card,.role-card,.simple-card){
  background:var(--card-bg);
  color:var(--card-fg);
  border-color:var(--card-border);
}
html[data-theme=dark] .metric-card.featured{
  background:var(--card-bg);
  color:var(--card-fg);
  border-color:var(--card-border);
}
html[data-theme=dark] .metric-card.featured :is(span,small){
  color:var(--card-muted);
}
html[data-theme=dark] .metric-card.featured strong{
  color:var(--card-fg);
}

:is(.primary-button,.secondary-button,.text-button,.approve-button,a.primary-button,a.secondary-button,a.text-button,button.primary-button,button.secondary-button,button.text-button,summary.primary-button){
  height:var(--btn-h) !important;
  min-height:var(--btn-h) !important;
  padding:0 .9rem !important;
  border-radius:var(--btn-radius) !important;
  line-height:1.2 !important;
}
:is(.btn-sm,.inline-action,.lr-actions,.doc-row-actions) :is(.primary-button,.secondary-button,.text-button,button,a){
  height:var(--btn-h-sm) !important;
  min-height:var(--btn-h-sm) !important;
  padding:0 .7rem !important;
}
:is(.btn-lg,.public-hero-actions) :is(.primary-button,.secondary-button,a.primary-button,a.secondary-button){
  height:var(--btn-h-lg) !important;
  min-height:var(--btn-h-lg) !important;
}
@media (pointer:coarse){
  :is(.primary-button,.secondary-button,.text-button,.approve-button,summary.primary-button){
    height:var(--btn-h-lg) !important;
    min-height:var(--btn-h-lg) !important;
  }
}

/* Public hero CTAs are real buttons. Keep the primary action visibly distinct
   from the green hero even when the selected accent palette overrides buttons. */
body.public-home .public-hero-actions button.public-cta-button{
  font:inherit;
  padding-inline:1.1rem !important;
}
body.public-home .public-hero-actions button.primary-button.public-cta-button{
  background:#fff !important;
  border:1px solid #fff !important;
  color:#123d32 !important;
  box-shadow:0 .6rem 1.4rem rgba(0,0,0,.18);
}
body.public-home .public-hero-actions button.primary-button.public-cta-button:hover{
  background:#f4f8f6 !important;
  border-color:#f4f8f6 !important;
  color:#0d3027 !important;
}

/* Section action grids must wrap. The shared button contract otherwise forces nowrap and a fixed height. */
.section-action-grid > :is(
  a.primary-button,
  a.secondary-button,
  a.text-button,
  button.primary-button,
  button.secondary-button,
  button.text-button,
  a.section-action-button,
  button.section-action-button
){
  height:auto !important;
  min-height:var(--btn-h-lg) !important;
  padding-block:.45rem !important;
  padding-inline:.85rem !important;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.3 !important;
}

.header-actions>details.create-drawer,
.page-title details.create-drawer{
  position:relative;
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.header-actions>details.create-drawer>.compact-form,
.page-title details.create-drawer>.compact-form{
  position:absolute;
  z-index:30;
  inset-inline-end:0;
  top:calc(100% + .35rem);
  display:grid;
  gap:.35rem;
  min-width:12rem;
  padding:.55rem;
  background:var(--card-bg);
  color:var(--card-fg);
  border:1px solid var(--border);
  border-radius:var(--card-radius);
  box-shadow:var(--shadow-sm);
}
.header-actions>details.create-drawer>.compact-form :is(.primary-button,.secondary-button),
.page-title details.create-drawer>.compact-form :is(.primary-button,.secondary-button){
  width:100%;
}

:is(
  .metric-card,
  .metric-card.featured,
  .hub-card,
  .quote-card,
  .plan-card,
  .role-card,
  .simple-card,
  .register-plan-card,
  .surface,
  .admin-section,
  .roles-section,
  .cc-card,
  .cc-panel,
  .farm-row,
  .farm-row-link,
  .farm-panel,
  .dashboard-setup,
  .readiness-strip
){
  background:var(--card-bg) !important;
  color:var(--card-fg) !important;
  border-style:solid !important;
  border-width:1px !important;
  border-color:var(--card-border) !important;
  border-radius:var(--card-radius) !important;
  transition-property:background-color,color,box-shadow,transform,opacity !important;
}
html .metric-card.featured{
  background:var(--card-bg) !important;
  color:var(--card-fg) !important;
  border-color:var(--card-border) !important;
}
.metric-card.featured :is(span,small),
.metric-card :is(span,small),
.hub-card :is(span,small,p){
  color:var(--card-muted) !important;
}
.metric-card strong,
.hub-card strong,
.metric-card.featured strong{
  color:var(--card-fg) !important;
}
.metric-card.featured .metric-icon{
  color:var(--accent,var(--pine)) !important;
  background:var(--accent-soft) !important;
}
.farm-row.is-selected,
:is(a.metric-card,a.hub-card):hover{
  box-shadow:var(--focus-ring) !important;
}

:is(.farm-workspace,.inventory-workspace,.procurement-workspace,.sales-workspace,.compliance-workspace,.documents-workspace,.workforce-workspace,.assets-workspace){
  background:var(--bg);
}

html[data-theme=dark] :is(.primary-button,a.primary-button,button.primary-button,summary.primary-button,.approve-button){
  background:var(--accent,var(--pine)) !important;
  border-color:var(--pine-2) !important;
  color:var(--accent-on,#fff) !important;
}
html:not([data-theme=dark]) :is(.primary-button,a.primary-button,button.primary-button,summary.primary-button,.approve-button){
  background:var(--accent,var(--pine)) !important;
  border-color:var(--accent,var(--pine)) !important;
  color:var(--accent-on,#fff) !important;
}
html:not([data-theme=dark]) :is(.secondary-button,a.secondary-button,button.secondary-button,.text-button,a.text-button,button.text-button){
  background:var(--card-bg) !important;
  color:var(--accent,var(--pine)) !important;
  border-color:var(--border) !important;
}

/* Shared filter bar: labels beside controls, fields share the row. Narrow containers stack. */
form.filter-grid,
form.compact-form.filter-bar{
  container-type:inline-size;
  container-name:filter-grid;
  display:flex;
  flex-flow:row wrap;
  align-items:end;
  gap:.65rem .85rem;
  min-width:0;
  width:100%;
}
.filter-field,
form.compact-form.filter-bar > label.field-stack,
form.compact-form.filter-bar > .form-field-label-wrap{
  display:grid;
  flex:1 1 14rem;
  grid-template-columns:max-content minmax(0,1fr);
  align-items:center;
  gap:.35rem .4rem;
  width:auto;
  max-width:none;
  min-width:0;
}
.filter-field > .filter-label,
form.compact-form.filter-bar > label.field-stack > span:first-child,
form.compact-form.filter-bar > .form-field-label-wrap > .form-field-label{
  grid-column:1;
  grid-row:1;
  width:auto;
  max-width:100%;
  margin:0;
  white-space:normal;
  writing-mode:horizontal-tb;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.3;
  text-align:start;
}
.filter-field > :is(input:not([type=hidden]),select,textarea,.entity-picker),
form.compact-form.filter-bar > label.field-stack > :is(input:not([type=hidden]),select,.entity-picker),
form.compact-form.filter-bar > .form-field-label-wrap > :is(input:not([type=hidden]),select,textarea,.entity-picker){
  grid-column:2;
  grid-row:1;
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:2.75rem;
  box-sizing:border-box;
}
.filter-field:has(textarea),
form.compact-form.filter-bar > label.field-stack:has(textarea){
  grid-column:1 / -1;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
}
.filter-field:has(textarea) > *,
form.compact-form.filter-bar > label.field-stack:has(textarea) > *{
  grid-column:1;
  grid-row:auto;
}
.filter-field > input[type=checkbox]{
  width:1.25rem;
  min-height:1.25rem;
  justify-self:start;
}
.filter-grid > .filter-actions,
form.filter-grid > .filter-actions,
form.compact-form.filter-bar > :is(button,.secondary-button,.primary-button,.filter-actions){
  align-self:end;
  flex:0 0 auto;
  width:auto;
  max-width:100%;
  min-width:0;
  margin-inline-start:auto;
}
.filter-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
}
.filter-actions > :is(a,button){
  min-height:2.75rem;
}
@container filter-grid (max-width:52rem){
  .filter-field,
  form.filter-grid > .filter-field,
  form.filter-grid:has(> .filter-break) > .filter-field[data-filter-row="1"],
  form.filter-grid:has(> .filter-break) > .filter-field[data-filter-row="2"],
  form.compact-form.filter-bar > label.field-stack,
  form.compact-form.filter-bar > .form-field-label-wrap{
    flex-basis:100%;
    max-width:100%;
    grid-template-columns:minmax(0,1fr);
  }
  form.filter-grid > .filter-actions{
    margin-inline-start:0;
    width:100%;
  }
  form.filter-grid > .filter-field > .filter-label,
  form.filter-grid > .filter-field > :is(input:not([type=hidden]),select,textarea,.entity-picker),
  form.compact-form.filter-bar > label.field-stack > span:first-child,
  form.compact-form.filter-bar > label.field-stack > :is(input:not([type=hidden]),select,.entity-picker),
  form.compact-form.filter-bar > .form-field-label-wrap > .form-field-label,
  form.compact-form.filter-bar > .form-field-label-wrap > :is(input:not([type=hidden]),select,textarea,.entity-picker){
    grid-column:1;
    grid-row:auto;
    width:100%;
    max-width:100%;
    white-space:normal;
  }
  .filter-field > input[type=checkbox]{
    width:1.25rem;
    min-height:1.25rem;
  }
  .filter-grid > .filter-actions,
  form.compact-form.filter-bar > :is(button,.secondary-button,.primary-button){
    grid-column:1;
  }
}
.filter-card > .filter-card-body{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:.75rem;
  container-type:inline-size;
  container-name:filter-card;
}
.filter-card .active-filters{
  width:100%;
  margin-top:0;
}
form.filter-grid > .filter-field{
  max-width:none;
}
form.filter-grid:has(> .filter-break){
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  row-gap:.85rem;
  align-items:end;
}
form.filter-grid > .filter-break{
  display:none;
}
form.filter-grid:has(> .filter-break) > .filter-field[data-filter-row="1"],
form.filter-grid:has(> .filter-break) > .filter-field[data-filter-row="2"]{
  flex:none;
  width:auto;
  min-width:0;
  max-width:none;
}
form.filter-grid:has(> .filter-break) > .filter-field[data-filter-row="2"]{
  grid-column:span 2;
}
form.filter-grid:has(> .filter-break) > .filter-actions{
  grid-column:auto;
  margin-inline-start:0;
  width:auto;
}
@container filter-card (max-width:52rem){
  form.filter-grid:has(> .filter-break){
    grid-template-columns:minmax(0,1fr);
  }
  form.filter-grid:has(> .filter-break) > .filter-field[data-filter-row="1"],
  form.filter-grid:has(> .filter-break) > .filter-field[data-filter-row="2"],
  form.filter-grid:has(> .filter-break) > .filter-actions{
    grid-column:1;
    max-width:100%;
    width:100%;
  }
}
.app-frame :is(.usage-table,.data-table) :is(th,td){
  vertical-align:middle;
}
.table-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
}
.table-pagination-summary{margin:0}
.table-page-buttons :is(a,span,button){
  min-height:2.45rem;
  min-width:2.45rem;
}
.sidebar .sidebar-nav :is(.nav-group,.nav-subgroup,a.nav-item,summary.nav-item){
  border-inline-start-width:3px;
  box-sizing:border-box;
}
.sidebar .sidebar-nav a.nav-item>.flow-no,
.sidebar .sidebar-nav :is(a.nav-item,summary.nav-item)>span[aria-hidden="true"]{
  justify-self:center;
  align-self:center;
}
.row-actions,
.doc-row-actions,
.farm-list-actions,
.cell-actions-nowrap{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.35rem;
  min-width:0;
}
.row-actions :is(button,a),
.doc-row-actions :is(a,button,summary),
.farm-list-actions :is(a,button),
.cell-actions-nowrap :is(a,button){
  min-height:2.2rem;
  padding:.15rem .55rem;
  border:1px solid var(--border);
  border-radius:.45rem;
  background:var(--bg-elevated,transparent);
  color:var(--text);
  font-weight:650;
  line-height:1.2;
  white-space:nowrap;
  text-decoration:none;
  box-sizing:border-box;
}
.doc-row-actions :is(a,button,summary):disabled,
.row-actions :is(button,a):disabled{
  opacity:.55;
  cursor:not-allowed;
}
.record-action-more{position:relative}
.record-action-more>summary{list-style:none;cursor:pointer}
.record-action-more>summary::-webkit-details-marker{display:none}
.record-action-more[open]>.doc-row-actions{
  position:absolute;
  z-index:5;
  inset-inline-end:0;
  top:calc(100% + .25rem);
  min-width:10rem;
  padding:.4rem;
  border:1px solid var(--border);
  border-radius:.55rem;
  background:var(--bg-elevated,var(--card-bg,#fff));
  box-shadow:0 .4rem 1rem rgba(0,0,0,.12);
}
.row-editor{
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:.45rem .6rem;
  min-width:0;
}
.row-editor label{
  display:flex;
  flex-direction:column;
  gap:.15rem;
  min-width:0;
  flex:1 1 8rem;
  font-size:.75rem;
}
.row-editor :is(input,select){
  min-height:2.2rem;
  min-width:0;
  width:100%;
}
.row-editor label.choice-field{
  flex-direction:row;
  align-items:center;
  flex:1 1 12rem;
}
tr.is-busy{opacity:.72}
.inline-status{min-height:1.4rem;margin:.4rem 0 0}
.login-forget{margin:.2rem 0 0}
.login-forget .text-button{padding-inline:0;min-height:2.4rem}
/* Workspace refinement: readable navigation and consistent record layouts. */
@media(min-width:901px){
  .app-frame{--agri-sidebar-width:clamp(22rem,24vw,26rem)}
  html:not([data-sidebar=collapsed]) .app-frame > #app-sidebar{
    width:var(--agri-sidebar-width);
    min-width:var(--agri-sidebar-width);
  }
}
@media(max-width:900px){
  html:not([data-sidebar=collapsed]) .app-frame > #app-sidebar{
    width:min(25rem,calc(100vw - 3rem))!important;
    max-width:calc(100vw - 3rem)!important;
  }
}
#app-sidebar .sidebar-nav a.nav-item b{
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  overflow:hidden;
  text-overflow:ellipsis;
}
#app-sidebar .sidebar-nav a.nav-item:has(>.flow-no){
  grid-template-columns:1.4rem 1.2rem minmax(0,1fr);
  column-gap:.4rem;
}
#app-sidebar .sidebar-nav a.nav-item>.flow-no{width:1.4rem;min-width:1.4rem}
#app-sidebar .sidebar-nav a.nav-item>.nav-dot{width:1.2rem;height:1.2rem}

.app-frame-main .page > main{
  width:min(100%,var(--content-max,90rem));
  box-sizing:border-box;
  margin-inline:auto;
  padding:clamp(1rem,2vw,2rem);
}
.app-frame-main .page-header{margin-bottom:1.25rem}
.app-frame-main .page-header h1{margin:.35rem 0 .5rem;font-size:clamp(1.4rem,2vw,2rem);line-height:1.25}
.app-frame-main .page-header p{margin:.35rem 0;line-height:1.5}
.app-frame-main .stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));
  gap:.75rem;
  margin:1rem 0;
}
.app-frame-main .stat-grid > article{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  padding:1rem;
  border:1px solid var(--border);
  border-radius:.75rem;
  background:var(--bg-elevated);
}
.app-frame-main .stat-grid > article b{font-size:1.5rem;line-height:1.2}
.app-frame-main ul:has(a[href^="/certification/records?"]){
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));
  gap:.75rem;
  padding:0;
  list-style:none;
}
.app-frame-main ul:has(a[href^="/certification/records?"]) a{
  display:flex;
  align-items:center;
  min-height:3rem;
  padding:.8rem 1rem;
  border:1px solid var(--border);
  border-radius:.7rem;
  background:var(--bg-elevated);
  color:var(--text);
  text-decoration:none;
}

#main-content form.compact-form.workspace-form-grid,
#main-content #insp-drop{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))!important;
  align-items:start;
  gap:1rem;
  padding:1.25rem;
  margin:0;
  box-sizing:border-box;
}
#main-content #insp-drop{border:1px solid var(--border);border-radius:.8rem;background:var(--bg-elevated);margin-bottom:1rem}
#main-content form.compact-form.workspace-form-grid > :is(label,.form-field-label-wrap,.aligned-field),
#main-content #insp-drop > label{
  display:flex!important;
  flex-direction:column;
  align-items:stretch!important;
  gap:.35rem;
  grid-column:auto!important;
  width:100%;
  min-width:0;
  margin:0;
}
#main-content form.compact-form.workspace-form-grid > :is(label,.form-field-label-wrap,.aligned-field) > *,
#main-content #insp-drop > label > *{grid-column:auto!important;grid-row:auto!important;max-inline-size:none;min-width:0;width:100%;box-sizing:border-box}
#main-content form.compact-form.workspace-form-grid > :is(.form-actions,.aligned-field-full,p,h2,h3),
#main-content #insp-drop > :is(.insp-drop,p){grid-column:1/-1!important}
#main-content form.compact-form.workspace-form-grid > :is(button,.form-actions),
#main-content #insp-drop > button{grid-column:1/-1;justify-self:end;width:auto;margin:0}
#main-content form.compact-form.workspace-form-grid > :is(label,.form-field-label-wrap):has(textarea){grid-column:1/-1!important}

.app-frame-main form.filter-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));
  gap:.85rem;
  align-items:end;
}
.app-frame-main form.filter-grid > .filter-field{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:.35rem;
  min-width:0;
}
.app-frame-main form.filter-grid .filter-label{margin:0;min-height:1.35rem;line-height:1.35;white-space:normal}
.app-frame-main form.filter-grid :is(.filter-control,.entity-picker){min-width:0;width:100%;box-sizing:border-box}
.app-frame-main form.filter-grid .entity-picker-search{width:100%;height:var(--control-h,2.75rem);box-sizing:border-box}
.app-frame-main form.filter-grid .filter-actions{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:0}

/* An action cell must remain a table cell; flex belongs inside the cell. */
.app-frame-main :is(.usage-table,.data-table) td:is(.doc-row-actions,.row-actions,.cell-actions-nowrap){
  display:table-cell;
  vertical-align:middle;
  white-space:nowrap;
}
.app-frame-main :is(.usage-table,.data-table) td:is(.doc-row-actions,.row-actions) > form{
  display:inline-flex;
  margin:0;
  vertical-align:middle;
}
.app-frame-main :is(.usage-table,.data-table) td:is(.doc-row-actions,.row-actions) > :is(a,form){margin-inline-end:.35rem}
.app-frame-main :is(.usage-table,.data-table) td:is(.doc-row-actions,.row-actions) :is(a.record-action,form > button){
  display:inline-flex;align-items:center;justify-content:center;
  min-height:2.2rem;padding:.35rem .65rem;
  border:1px solid var(--border);border-radius:.45rem;
  background:var(--bg-elevated);color:var(--text);white-space:nowrap;
}
.app-frame-main :is(.usage-table,.data-table):has(td.doc-row-actions) th:last-child{min-width:11rem}
.app-frame-main .workspace-view-tools{
  display:flex;
  align-items:center;
  gap:.65rem;
  flex-wrap:wrap;
  min-width:0;
}
.app-frame-main .workspace-view-tools > :is(input,select,.form-field-label-wrap){flex:0 1 15rem;min-width:0;max-width:100%}
.app-frame-main .workspace-view-tools :is(input,select){
  min-height:var(--control-h,2.75rem);
  padding:.55rem .75rem;
  border:1px solid var(--border);
  border-radius:.6rem;
  background:var(--control-bg,var(--bg-elevated));
  color:var(--text);
  box-sizing:border-box;
}
.app-frame-main .offline-shell .page-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
.app-frame-main .offline-shell #sync-feedback{grid-column:1/-1;margin:0}
.app-frame-main .offline-shell #sync-feedback:empty{display:none}
.app-frame-main .planning-shell .create-drawer{margin-top:.75rem}
.app-frame-main .planning-shell .create-drawer > summary{padding:.8rem 1rem;min-height:2.75rem;box-sizing:border-box;line-height:1.35}
.app-frame-main .planning-shell .surface-header{align-items:center;flex-wrap:wrap;gap:.75rem}
@media(max-width:600px){
  #main-content form.compact-form.workspace-form-grid,#main-content #insp-drop{grid-template-columns:minmax(0,1fr)!important;padding:1rem}
  .app-frame-main .offline-shell .page-title{grid-template-columns:minmax(0,1fr)}
  .app-frame-main .offline-shell #btn-sync-now{justify-self:start}
}

/* Shared vertical rhythm for page sections, cards, and actions. */
:root{--section-space:1.25rem;--action-space:.875rem}
:is(.management-main,.workspace,.public-main,.portal-main,.dashboard-main,[id$="-pane"],.workspace-content,.surface-body) >
 :is(.surface,.filter-card,.admin-grid,.metric-grid,.hub-grid,.section-action-group,.page-title,.page-action-bar,.compact-form,.table-pagination):not([hidden]) ~
 :is(.surface,.filter-card,.admin-grid,.metric-grid,.hub-grid,.section-action-group,.page-title,.page-action-bar,.compact-form,.table-pagination):not([hidden]){
  margin-block-start:var(--section-space);
}
:is(.management-main,.workspace,.public-main,.portal-main,.dashboard-main,[id$="-pane"],.workspace-content,.surface-body) >
 :is(.surface,.filter-card,.admin-grid,.metric-grid,.hub-grid) +
 :is(.form-actions,.action-row,.button-row,.primary-button,.secondary-button,button){
  margin-block-start:var(--section-space);
}
.app-frame .management-shell > .report-toolbar.is-docked{
  padding-block-end:var(--section-space);
}
:is(.surface,.form-card,.cc-panel) >
 :is(.usage-table-wrap,.data-table-wrap,.metric-grid,.admin-grid,.compact-form,.form-grid):not([hidden]) +
 :is(.form-actions,.action-row,.button-row,.section-action-group,.table-pagination):not([hidden]){
  margin-block-start:var(--action-space);
}
:is(.form-actions,.action-row,.button-row,.page-action-bar,.page-action-bar-group){
  align-items:center;
  gap:.75rem;
  row-gap:var(--action-space);
}
:is(form.compact-form,form.aligned-form,form.form-grid):not(.filter-bar):not(.filter-grid) >
 :is(.form-actions,.action-row,.button-row,button[type=submit]){
  margin-block-start:var(--action-space);
}
/* Filter controls and action buttons share the same bottom edge and height. */
:is(form.filter-grid,form.compact-form.filter-bar){
  align-items:end;
  row-gap:var(--action-space);
}
.app-frame-main form.filter-grid > .filter-field{
  justify-content:flex-end;
}
.app-frame-main form.filter-grid .filter-label{
  display:block;
  min-height:1.35rem;
  margin:0;
  line-height:1.35;
}
.app-frame-main form.filter-grid .filter-field > :is(input:not([type=hidden]),select),
.app-frame-main form.filter-grid .entity-picker-search,
:is(form.filter-grid,form.compact-form.filter-bar) .filter-actions > :is(a,button){
  height:var(--control-h,2.75rem);
  min-height:var(--control-h,2.75rem);
  margin-block:0;
  box-sizing:border-box;
}
.app-frame-main form.filter-grid .filter-field > .entity-picker{
  min-height:0;
  align-self:end;
}
/* Empty lookup hints must not add an invisible row below their input. */
.entity-picker .entity-picker-status:empty{display:none}
/* Override the shared fixed button height only for buttons beside filter inputs. */
:is(form.filter-grid,form.compact-form.filter-bar) .filter-actions > :is(a,button){
  height:var(--control-h,2.75rem)!important;
  min-height:var(--control-h,2.75rem)!important;
}
form.compact-form.filter-bar > :is(button,.primary-button,.secondary-button){
  height:var(--control-h,2.75rem)!important;
  min-height:var(--control-h,2.75rem)!important;
  align-self:end;
  margin-block:0;
}
.app-frame-main form.filter-grid > .filter-actions{
  align-self:end;
  min-height:var(--control-h,2.75rem);
  gap:.5rem;
  margin-block:0;
}
@media(max-width:600px){
  :root{--section-space:1rem;--action-space:.75rem}
  :is(.form-actions,.action-row,.button-row,.page-action-bar,.page-action-bar-group){flex-wrap:wrap}
  .app-frame .report-toolbar:not(.is-inline) .section-action-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .app-frame .report-toolbar:not(.is-inline) .section-action-grid > .section-action-button:nth-child(n):nth-child(n){
    grid-column:auto;
    height:auto!important;
    min-height:2.75rem!important;
    white-space:normal;
    overflow-wrap:anywhere;
  }
}
