/* Action rows share sizes and spacing; calendar, editor and status controls
   keep their own compact geometry. Loaded after component styles. */
:root {
  --panel-action-height: 44px;
  --panel-action-compact-height: 40px;
  --panel-action-shadow: inset 0 1px 0 #ffffff18,
    0 2px 0 color-mix(in srgb, var(--border) 65%, transparent),
    0 3px 8px #00000012;
}

:is(.topbar-actions, .account-primary-actions, .admin-save-bar,
    .catalog-actions, .dash-filter-actions, .time-filter-actions,
    .panel-filter-actions, .board-setup-actions) > :is(button, .button),
.topbar-actions > form > button,
.topbar-actions .theme-trigger,
:is(.workspace-form, .time-review-card, .time-bulk-review,
    .account-removal) .form-actions > :is(button, .button) {
  box-sizing: border-box;
  min-height: var(--panel-action-height);
  margin: 0;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
  justify-content: center;
  box-shadow: var(--panel-action-shadow);
}

:is(.time-toolbar, .time-entry-actions, .board-catalog-toolbar,
    .board-catalog-panel, .department-toolbar, .department-member-add,
    .department-subcategory-action, .template-builder-actions) button,
.time-entry-actions > .button,
.time-toolbar > div > .button,
.board-catalog-panel .button,
.department-dialog footer > button {
  box-sizing: border-box;
  min-height: var(--panel-action-compact-height);
  margin: 0;
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
  box-shadow: var(--panel-action-shadow);
}

:is(.topbar-actions, .account-primary-actions, .admin-save-bar,
    .catalog-actions, .dash-filter-actions, .time-filter-actions,
    .panel-filter-actions, .time-entry-actions, .department-dialog footer)
    :is(button, .button):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.account-primary-actions,
.panel-filter-actions {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

.account-heading { flex-wrap: wrap; }
.account-heading-actions { flex-wrap: wrap; gap: 12px 20px; }
.account-heading-actions > .catalog-delete {
  white-space: nowrap;
  font-size: 11px;
  padding: 10px 0;
}
.account-primary-actions > :is(button, .button) { white-space: nowrap; }
.admin-save-bar, .catalog-actions { align-items: center; gap: 8px; flex-wrap: wrap; }
.dash-filter-actions { gap: 8px; height: auto; }
.dash-filter-actions > .reset-link { color: var(--text); text-decoration: none; }
.topbar-actions { min-width: 0; gap: 8px; }
.topbar-actions > form { display: flex; }

/* Keep the title above actions when the content area becomes narrow. */
@media (max-width: 960px) {
  .topbar > .workspace-heading { flex: 1 1 100%; }
  .topbar-actions { max-width: 100%; flex-wrap: wrap; margin-left: auto; }
}
@media (max-width: 760px) {
  body:has(.workspace-mobile-navigation) main { margin-left: 0; }
}

/* Align the bottom edges of fields and actions, including native selects. */
.department-member-add > label { margin: 0; min-width: 0; }
.department-member-add :is(input, select) { box-sizing: border-box; height: 40px; }
.department-member-add > button { flex: 0 0 auto; }
.board-catalog-panel > label { margin: 0; min-width: 0; }
.board-catalog-panel :is(input, .ui-select-trigger) { min-height: 40px; }
.board-catalog-panel > .panel-filter-actions { align-self: flex-end; }
.time-query .time-filters .time-filter-actions { gap: 8px; margin: 0; }
.time-query .time-filters > div:not(.time-filter-actions) {
  display: flex; flex-direction: column; gap: 6px; align-self: flex-end;
}
.time-query .time-filters > div > label { margin: 0; line-height: 16px; }
.time-query .time-filters :is(input:not([type=hidden]), .ui-select-trigger, .uk-month-trigger),
.time-query .time-filters .time-filter-actions > :is(button, .button) {
  box-sizing: border-box; height: 44px; min-height: 44px; margin: 0;
  padding: 8px 12px; font-size: 12px; line-height: 20px;
}
.time-query .ui-select-value.multi-value { font-size: 12px; }
.time-filter-actions > :is(button, .button),
.dash-filter-actions > :is(button, .button) { min-height: 40px; padding: 8px 12px; }
.manager-workspace .dash-filters :is(input, .ui-select-trigger),
.dash-filter-actions > :is(button, .button) { height: 40px; }
.time-entry-actions { gap: 8px; align-items: stretch; }
.time-entry-actions > form { display: flex; margin: 0; }
.time-entry-actions > form > button { width: 100%; }
.time-entry-actions .time-review-button { min-height: 40px; padding: 8px 12px; font-size: 12px; }
.notification-footer { gap: 10px 16px; }
.notification-footer .notification-actions { align-items: stretch; gap: 8px; }
.notification-actions > form { display: flex; }
.notification-actions button { box-shadow: var(--panel-action-shadow); }
.notification-actions .notification-read { flex-shrink: 0; }
.department-dialog footer { gap: 8px; }
.board-setup-actions { align-items: stretch; flex-wrap: wrap; gap: 8px; }
:is(.workspace-form, .time-review-card, .time-bulk-review,
    .account-removal) .form-actions { align-items: stretch; }
.department-toolbar > button { align-self: center; }

/* The deadline fits the summary card without breaking its date into lines. */
.work-detail .ticket-summary .ticket-stat[data-deadline] { gap: 8px; }
.work-detail .ticket-summary .ticket-stat[data-deadline] .stat-icon { display: none; }
.work-detail .ticket-summary .ticket-stat[data-deadline] > div { width: 100%; }
.work-detail .ticket-summary .deadline-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  gap: 8px;
  min-height: 40px;
  padding: 8px 10px;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 900px) {
  .account-heading-actions { width: 100%; justify-content: space-between; }
  .board-catalog-panel > .panel-filter-actions { flex-basis: 100%; }
}

@media (max-width: 760px) {
  .dash-filter-actions { width: 100%; }
  .dash-filter-actions > :is(button, .button) { flex: 1; }
  .board-catalog-panel > label { flex: 1 1 100%; }
  .board-catalog-panel > .panel-filter-actions > :is(button, .button) { flex: 1; }
}

@media (max-width: 700px) {
  .topbar-actions { flex-basis: 100%; }
  .topbar-actions:has(> .workspace-mobile-menu-button) {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: end;
  }
  .topbar-actions > .role-tag { grid-column: 1 / -1; order: 3; justify-self: end; }
  .account-heading-actions { flex-direction: column; align-items: stretch; gap: 8px; }
  .account-primary-actions { order: -1; width: 100%; }
  .account-primary-actions > :is(button, .button) {
    flex: 1 1 0;
    min-width: 0;
    white-space: normal;
  }
  .account-heading-actions > .catalog-delete { align-self: flex-start; padding: 6px 0; }
  .department-member-add { display: grid; grid-template-columns: minmax(0, 1fr); }
  .department-member-add > button { width: 100%; }
  .department-toolbar > button { width: 100%; }
  .time-toolbar > div { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .time-toolbar .time-bulk-trigger { grid-column: 1 / -1; white-space: normal; }
  .time-toolbar > div > button { width: 100%; }
  .time-entry-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .time-entry-actions > form { grid-column: 1 / -1; }
  .time-entry-actions > .button { white-space: normal; }
  .time-review-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .time-review-modes > a { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 40px; box-sizing: border-box; }
  .time-register .time-table-wrap td { padding-top: 6px; padding-bottom: 6px; }
  .time-register .time-table-wrap tr { padding: 12px; }
  .time-register .time-table-wrap td:first-child { padding-bottom: 10px; }
  .time-filter-actions > :is(button, .button) { flex: 1; }
  .notification-footer { align-items: flex-start; }
  .notification-footer > .notification-actions { flex-basis: 100%; }
  .department-dialog footer > button { min-width: 0; }
  .template-builder-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .template-builder-actions > button { white-space: normal; }
  .template-builder-actions > :is([data-preview-template], span) { grid-column: 1 / -1; }
  .board-setup-actions > :is(button, .button) { flex: 1; white-space: normal; }
  .time-bulk-confirm .form-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  :is(.workspace-form, .time-review-card, .time-bulk-review,
      .account-removal) .form-actions > :is(button, .button) {
    flex: 1 1 140px;
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(.account-primary-actions, .panel-filter-actions, .time-entry-actions)
      > :is(button, .button) { transition: none; }
}

@media (min-width:701px) and (max-width:1100px) {
  .time-query .time-filters > div:not(.time-filter-actions) {flex-basis:calc(50% - 10px)}
}
