/*
 * Crew-App 5.0 · UXR-15 Responsive / Accessibility Finish v1.0.0
 * Final non-functional frontend hardening. No business rules live here.
 */
:root {
  --uxr-touch-target: 44px;
  --uxr-safe-left: max(12px, env(safe-area-inset-left));
  --uxr-safe-right: max(12px, env(safe-area-inset-right));
  --uxr-safe-top: max(12px, env(safe-area-inset-top));
  --uxr-safe-bottom: max(12px, env(safe-area-inset-bottom));
}

/* Keyboard / focus */
.uxr-skip-link {
  position: fixed;
  z-index: 2000;
  top: var(--uxr-safe-top);
  left: var(--uxr-safe-left);
  transform: translateY(calc(-100% - 32px));
  padding: 10px 14px;
  border: 2px solid #fff;
  border-radius: 10px;
  background: #061d3b;
  color: #fff !important;
  font-weight: 800;
  text-decoration: none;
  box-shadow: var(--uxr-shadow-md);
  transition: transform var(--uxr-transition);
}
.uxr-skip-link:focus-visible { transform: translateY(0); outline: 3px solid #78b3ff; outline-offset: 3px; }
#main-content:focus { outline: none; }

:where(.uxr-btn,.uxr-sidebar__link,.uxr-sidebar__customize,.uxr-sidebar__collapse,.uxr-sidebar__logout,.uxr-sidebar-mobile-toggle,.uxr-drawer__close,.uxr-pager__page,.uxr-tabs a,.uxr-tabs button) {
  min-height: var(--uxr-touch-target);
}
.uxr-btn--icon,.uxr-drawer__close,.uxr-sidebar-mobile-toggle { min-width: var(--uxr-touch-target); }

/* Content may shrink, but must not escape its workspace. */
.uxr-workspace,
.uxr-card,
.uxr-card__body,
.uxr-table-wrap,
.uxr-filterbar,
.uxr-page-header,
.uxr-grid,
.uxr-stack { min-width: 0; max-width: 100%; }
.uxr-table-wrap { overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.uxr-tabs { overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; }
.uxr-tabs > :where(a,button) { scroll-snap-align: start; }

/* Generic mobile-card contract used by all migrated UXR tables. */
@media (max-width: 700px) {
  table[data-uxr-mobile-table] tr[data-mobile-card] { display: grid; gap: 0; margin: 10px; padding: 8px 12px; border: 1px solid var(--uxr-border); border-radius: var(--uxr-radius-md); background: var(--uxr-surface); box-shadow: var(--uxr-shadow-sm); }
  table[data-uxr-mobile-table] tr[data-mobile-card] > td { display: grid; grid-template-columns: minmax(104px,.8fr) minmax(0,1.2fr); gap: 10px; align-items: start; padding: 8px 0; border: 0; overflow-wrap: anywhere; }
  table[data-uxr-mobile-table] tr[data-mobile-card] > td + td { border-top: 1px solid var(--uxr-border); }
  table[data-uxr-mobile-table] tr[data-mobile-card] > td[data-label]::before { content: attr(data-label); color: var(--uxr-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
  table[data-uxr-mobile-table] tr[data-mobile-card] > td:not([data-label]) { grid-template-columns: 1fr; }
  table[data-uxr-mobile-table] thead { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; }
  .uxr-table-wrap[data-uxr-mobile-table-wrap] { border: 0; background: transparent; box-shadow: none; overflow: visible; }
}

/* 390x844 mobile target */
@media (max-width: 430px) {
  .uxr-workspace { padding: 16px var(--uxr-safe-right) calc(28px + env(safe-area-inset-bottom)) var(--uxr-safe-left); }
  .uxr-page-header__title { font-size: clamp(1.55rem,8vw,2rem); overflow-wrap: anywhere; }
  .uxr-page-header__actions,.uxr-btn-group { width: 100%; }
  .uxr-page-header__actions > .uxr-btn { flex: 1 1 145px; }
  .uxr-filterbar { padding: 12px; }
  .uxr-filterbar :where(input,select,.uxr-btn) { width: 100%; }
  .uxr-filterbar__actions { display: grid; grid-template-columns: 1fr; }
  .uxr-card__header,.uxr-card__body,.uxr-card__footer { padding-inline: 14px; }
  .uxr-drawer__panel { height: 100dvh; max-height: 100dvh; }
  .uxr-drawer__header { padding-top: calc(14px + env(safe-area-inset-top)); }
  .uxr-drawer__footer { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
  .uxr-drawer__footer > .uxr-btn { flex: 1 1 100%; }
}

/* Tablet target: preserve workspace width while drawers remain usable. */
@media (min-width: 431px) and (max-width: 1024px) {
  .uxr-workspace { padding-inline: 18px; }
  .uxr-drawer--wide { --uxr-drawer-width: min(760px, 88vw); }
  .uxr-page-header__actions { max-width: 100%; }
}

/* Stable desktop density at the fixed acceptance widths. */
@media (min-width: 1360px) {
  .uxr-workspace { padding-inline: 32px; }
}
@media (min-width: 1800px) {
  :root { --uxr-content-max: 1660px; }
  .uxr-workspace { padding-inline: 38px; }
}

/* Pointer/touch ergonomics. */
@media (pointer: coarse) {
  :where(button,.uxr-btn,.uxr-sidebar__link,.uxr-sidebar__customize,.uxr-tabs a,.uxr-tabs button,.uxr-pager__page) { min-height: 48px; }
  :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { min-height: 48px; }
}

/* User preference: motion. */
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* User preference: stronger contrast. */
@media (prefers-contrast: more) {
  :root { --uxr-border: #aab8cb; --uxr-border-strong: #8293aa; --uxr-muted: #4c5b72; --uxr-text-soft: #33435e; }
  .uxr-btn--secondary,.uxr-card,.uxr-table-wrap,.uxr-filterbar { border-width: 2px; }
  .uxr-badge { border-width: 2px; }
}

/* Windows high-contrast / forced colors. */
@media (forced-colors: active) {
  .uxr-btn,.uxr-card,.uxr-filterbar,.uxr-table-wrap,.uxr-badge,.uxr-sidebar__link,.uxr-sidebar__customize { forced-color-adjust: auto; }
  .uxr-sidebar__link.is-active { outline: 2px solid Highlight; }
  .uxr-badge::before { forced-color-adjust: none; background: currentColor; }
}

/* UXR-12 command palette belongs to the global shell (moved from an unreferenced legacy file). */
.uxr12-command[hidden]{display:none!important}
.uxr12-command{position:fixed;inset:0;z-index:1100;display:grid;place-items:start center;padding:8vh 18px 18px}
.uxr12-command__backdrop{position:absolute;inset:0;border:0;background:rgba(5,20,45,.55)}
.uxr12-command__panel{position:relative;width:min(760px,100%);max-height:82vh;display:grid;grid-template-rows:auto auto minmax(120px,1fr) auto;background:var(--uxr-surface);border-radius:16px;box-shadow:0 30px 80px rgba(4,20,45,.28);overflow:hidden;color:var(--uxr-text)}
.uxr12-command__panel>header,.uxr12-command__panel>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--uxr-border)}
.uxr12-command__panel>footer{border-bottom:0;border-top:1px solid var(--uxr-border)}
.uxr12-command__panel kbd{font:700 11px/1.2 inherit;padding:4px 7px;border:1px solid var(--uxr-border-strong);border-radius:6px;background:var(--uxr-surface-muted)}
.uxr12-command__input{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--uxr-border)}
.uxr12-command__input input{width:100%;border:0;outline:0;font-size:18px;background:transparent;color:var(--uxr-text)}
.uxr12-command__results{overflow:auto;padding:8px}
.uxr12-command__results>p{padding:18px;color:var(--uxr-muted)}
.uxr12-command-group{padding:6px}.uxr12-command-group>strong{display:block;padding:5px 8px;color:var(--uxr-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.uxr12-command-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:var(--uxr-touch-target);padding:10px 11px;border-radius:9px;text-decoration:none;color:var(--uxr-text)}
.uxr12-command-item:hover,.uxr12-command-item:focus-visible{background:var(--uxr-primary-soft)}
.uxr12-command-item span{display:block;color:var(--uxr-muted);font-size:12px;margin-top:2px}.uxr12-command-item b{font-size:18px;color:var(--uxr-muted)}
.uxr12-search-detail-drawer{--uxr-drawer-width:650px}
body.uxr12-command-open{overflow:hidden}
@media(max-width:640px){.uxr12-command{padding:0}.uxr12-command__panel{width:100%;height:100dvh;max-height:none;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.uxr12-command__panel kbd{display:none}}
