
/* ShiftFlow 24.0 – Release Candidate foundation */
html, body { max-width:100%; overflow-x:hidden; }
.app-main { min-width:0; overflow-x:clip; }
.app-main > * { min-width:0; }
.dashboard-widget, .app-topbar, .widget-heading { min-width:0; }
img, video, canvas, svg { max-width:100%; }
input, select, textarea, button { max-width:100%; }

.sf-page-progress-v24 {
  position:fixed;z-index:12000;left:0;top:0;width:38%;height:3px;
  background:linear-gradient(90deg,var(--accent-a,#7657ff),var(--accent-b,#ff5fbf));
  box-shadow:0 0 24px color-mix(in srgb,var(--accent-b,#ff5fbf) 60%,transparent);
  transition:width .45s ease,opacity .18s ease;
}
.sf-page-progress-v24.loaded { width:100%;opacity:0; }

.sf-global-error-v24 {
  position:fixed;z-index:12001;right:18px;bottom:102px;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;
  align-items:start;width:min(430px,calc(100vw - 36px));padding:14px;
  border:1px solid color-mix(in srgb,#ff786d 50%,var(--app-border));
  border-radius:16px;color:var(--app-text);
  background:color-mix(in srgb,var(--app-surface) 96%,transparent);
  box-shadow:0 22px 70px rgba(0,0,0,.38);backdrop-filter:blur(20px);
}
.sf-global-error-v24 > span {
  display:grid;width:32px;height:32px;place-items:center;border-radius:10px;
  color:#ff9b93;background:rgba(255,120,109,.12);font-weight:900;
}
.sf-global-error-v24 strong,.sf-global-error-v24 p { display:block;margin:0; }
.sf-global-error-v24 p { margin-top:5px;color:var(--app-text-soft);font-size:10px;line-height:1.45; }
.sf-global-error-v24 button {
  width:30px;height:30px;border:0;border-radius:9px;cursor:pointer;
  color:var(--app-text-soft);background:var(--app-surface-2);font-size:18px;
}

.sf-rc-badge-v24 {
  margin-left:auto;padding:3px 6px;border-radius:999px;color:var(--accent-b);
  background:color-mix(in srgb,var(--accent-b) 12%,transparent);
  font-size:7px;font-weight:900;letter-spacing:.08em;
}

.nav-account-summary-v24 {
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;
  margin:10px 3px 2px;padding:10px;border:1px solid var(--app-border);
  border-radius:14px;color:var(--app-text);background:var(--app-surface-2);
  text-decoration:none;
}
.nav-account-avatar-v24 {
  display:grid;width:32px;height:32px;place-items:center;border-radius:11px;
  color:white;background:linear-gradient(135deg,var(--accent-a),var(--accent-b));
  font-size:10px;font-weight:900;
}
.nav-account-summary-v24 strong,.nav-account-summary-v24 small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.nav-account-summary-v24 strong { font-size:9px; }
.nav-account-summary-v24 small { margin-top:3px;color:var(--app-text-soft);font-size:7px; }

.app-sidebar nav { scrollbar-gutter:stable; }
.nav-group-toggle,.nav-child-link { width:100%; }
.nav-label { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

@media (max-width: 760px) {
  .app-topbar { align-items:flex-start!important;flex-direction:column!important;gap:16px!important; }
  .topbar-actions { width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .topbar-actions .button,.topbar-actions button,.topbar-actions a { width:100%;min-width:0;white-space:normal;text-align:center; }
  dialog { max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;overflow:auto!important; }
  .sf-global-error-v24 { right:10px;bottom:84px;width:calc(100vw - 20px); }
}

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