:root {
  --enterprise-transition-fast: 140ms;
  --enterprise-transition: 220ms;
  --enterprise-control-height: 40px;
  --enterprise-content-max: 1920px;
}

.application-progress {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--enterprise-transition-fast) ease;
}
.application-progress::after {
  content: '';
  display: block;
  width: 38%;
  height: 100%;
  border-radius: 0 999px 999px 0;
  background: linear-gradient(90deg,var(--teal),#53d4ce);
  box-shadow: 0 0 12px rgba(21,154,150,.5);
  transform: translateX(-110%);
}
.application-progress.active { opacity: 1; }
.application-progress.active::after { animation: enterprise-progress 1.1s ease-in-out infinite; }
@keyframes enterprise-progress { 50% { transform: translateX(170%); } 100% { transform: translateX(310%); } }

main { width: 100%; max-width: var(--enterprise-content-max); margin-inline: auto; }
.workspace-content { animation: workspace-enter var(--enterprise-transition) ease-out; }
@keyframes workspace-enter { from { opacity: .72; transform: translateY(4px); } }

.toolbar[role="toolbar"] { position: relative; }
.toolbar > button, .toolbar > .button, .tool-actions > button, .tool-actions > .button { flex: 0 0 auto; }
.toolbar input[type="search"], .toolbar input[placeholder*="Search" i], .toolbar input[placeholder*="Filter" i] { padding-left: 12px; }
input[type="date"] { min-width: 150px; color-scheme: light; }
input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .7; }

.workspace-tabs, .security-tabs, .report-tabs, [role="tablist"] {
  display: flex;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #edf3f6;
  scrollbar-width: thin;
}
[role="tab"] { white-space: nowrap; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font-weight: 800; cursor: pointer; }
[role="tab"][aria-selected="true"], [role="tab"].active { background: #fff; color: var(--navy); box-shadow: 0 2px 8px rgba(7,31,59,.08); }

.enterprise-loading-skeleton { display: grid; width: min(760px,100%); gap: 11px; margin: 18px auto 0; }
.enterprise-loading-skeleton span { height: 14px; border-radius: 7px; background: linear-gradient(90deg,#e4ebf0 20%,#f7fafc 46%,#e4ebf0 72%); background-size: 220% 100%; animation: enterprise-shimmer 1.25s linear infinite; }
.enterprise-loading-skeleton span:nth-child(2) { width: 86%; }
.enterprise-loading-skeleton span:nth-child(3) { width: 64%; }
@keyframes enterprise-shimmer { to { background-position: -220% 0; } }

.button, .standard-grid-button, .header-button, .header-link, input, select, textarea, dialog, .card {
  transition-duration: var(--enterprise-transition-fast);
  transition-timing-function: ease;
}
.button:active:not(:disabled), .standard-grid-button:active:not(:disabled), .header-button:active { transform: translateY(0) scale(.985); }
dialog[open] { animation: enterprise-dialog-in var(--enterprise-transition) ease-out; }
dialog::backdrop { animation: enterprise-backdrop-in var(--enterprise-transition-fast) ease-out; }
@keyframes enterprise-dialog-in { from { opacity: 0; transform: translateY(10px) scale(.985); } }
@keyframes enterprise-backdrop-in { from { opacity: 0; } }
details[open] > .standard-grid-column-panel, details[open] > .standard-grid-action-list { animation: enterprise-menu-in var(--enterprise-transition-fast) ease-out; transform-origin: top right; }
@keyframes enterprise-menu-in { from { opacity: 0; transform: translateY(-4px) scale(.98); } }

.unsaved-indicator { display: inline-flex; align-items: center; gap: 6px; color: var(--ui-warning); font-size: 10px; font-weight: 800; }
.unsaved-indicator::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #e39a1d; box-shadow: 0 0 0 3px var(--ui-warning-surface); }
form[data-unsaved="true"] { position: relative; }
form[data-unsaved="true"]::before { content: 'Unsaved changes'; position: sticky; top: 0; z-index: 3; display: block; width: max-content; margin: 0 0 8px auto; padding: 5px 8px; border-radius: 999px; background: var(--ui-warning-surface); color: var(--ui-warning); font-size: 9px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.unsaved-dialog { width: min(560px,calc(100vw - 30px)); }
.unsaved-dialog-content { display: grid; gap: 12px; padding: 21px 22px; }
.unsaved-dialog-content p { margin: 0; color: var(--muted); line-height: 1.55; }
.unsaved-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; padding: 14px 22px; border-top: 1px solid var(--line); background: #fafcfd; }

.validation-message, [aria-invalid="true"] + .field-help { color: var(--danger); font-size: 11px; }
[aria-invalid="true"] { border-color: #d87970; box-shadow: 0 0 0 3px rgba(184,45,33,.08); }
.notice.ui-toast.info { border-color: #b8ccec; background: var(--ui-info-surface); color: var(--ui-info); }
.notice.ui-toast.warning { border-color: #ead29c; background: var(--ui-warning-surface); color: var(--ui-warning); }
.notice.ui-toast::before { content: '✓'; display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; background: currentColor; color: #fff; font-size: 11px; }
.notice.ui-toast.error::before { content: '!'; }
.notice.ui-toast.info::before { content: 'i'; }
.notice.ui-toast.warning::before { content: '!'; }

.responsive-overflow { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.scroll-shadow { background-image: linear-gradient(to right,#fff,#fff),linear-gradient(to right,#fff,#fff),linear-gradient(to right,rgba(7,31,59,.08),rgba(255,255,255,0)),linear-gradient(to left,rgba(7,31,59,.08),rgba(255,255,255,0)); background-position: left center,right center,left center,right center; background-repeat: no-repeat; background-size: 24px 100%,24px 100%,12px 100%,12px 100%; background-attachment: local,local,scroll,scroll; }

.skip-link { position: fixed; z-index: 120; top: 8px; left: 8px; padding: 9px 12px; border-radius: 8px; background: var(--navy); color: #fff; font-weight: 800; text-decoration: none; transform: translateY(-150%); transition: transform var(--enterprise-transition-fast) ease; }
.skip-link:focus { transform: translateY(0); }

@media (max-width: 1180px) {
  .topbar { gap: 9px; }
  .header-link, .header-button { padding-inline: 9px; }
  .workspace-actions { max-width: 100%; }
}
@media (max-width: 980px) {
  .topbar { align-items: flex-start; }
  .topbar .header-link, .topbar .header-button { flex: 1 1 auto; }
  .workspace-content, .card { min-width: 0; }
  .detail-grid, .settings-info-grid, .dashboard-project-metrics { min-width: 0; }
}
@media (max-width: 680px) {
  .brand-mark { width: 38px; height: 38px; }
  .topbar h1 { font-size: 16px; }
  .project-context { align-items: stretch; flex-direction: column; }
  .project-context select { width: 100%; min-width: 0; }
  .unsaved-dialog-actions { display: grid; grid-template-columns: 1fr; }
  .unsaved-dialog-actions .button { width: 100%; }
  .activity-item, .reports-heading, .simulator-header { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .application-progress.active::after, .enterprise-loading-skeleton span, .workspace-content, dialog[open], dialog::backdrop, details[open] > .standard-grid-column-panel, details[open] > .standard-grid-action-list { animation: none; }
}
