/* Authenticated PLM Studio application shell
   PLM OS is the source of truth for these product tokens and interaction patterns. */

.plm-studio-body {
  --studio-bg: #020406;
  --studio-surface: rgba(255, 255, 255, 0.055);
  --studio-surface-strong: rgba(255, 255, 255, 0.085);
  --studio-surface-hover: rgba(255, 255, 255, 0.105);
  --studio-border: rgba(255, 255, 255, 0.11);
  --studio-border-soft: rgba(255, 255, 255, 0.075);
  --studio-text: #f7fbff;
  --studio-muted: #a8b4c2;
  --studio-subtle: #758393;
  --studio-cyan: #1bbcff;
  --studio-cyan-strong: #6fd6ff;
  --studio-green: #47f7a5;
  --studio-amber: #ffcc66;
  --studio-red: #ff6f8a;
  --studio-sidebar: 240px;
  --studio-topbar: 64px;
  --studio-radius: 8px;
  --studio-radius-lg: 12px;
  --studio-shadow: 0 20px 60px rgba(0, 0, 0, 0.34);
  margin: 0;
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  color: var(--studio-text);
  background:
    radial-gradient(circle at 78% -18%, rgba(27, 188, 255, 0.09), transparent 35rem),
    var(--studio-bg);
}

.plm-studio-body *,
.plm-studio-body *::before,
.plm-studio-body *::after {
  box-sizing: border-box;
}

.plm-studio-body a {
  color: inherit;
}

.plm-studio-body :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--studio-cyan-strong);
  outline-offset: 3px;
}

.plm-studio-skip-link {
  position: fixed;
  z-index: 200;
  top: 8px;
  left: 8px;
  padding: 10px 14px;
  border-radius: var(--studio-radius);
  color: #00121a;
  background: var(--studio-cyan-strong);
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform 160ms ease;
}

.plm-studio-skip-link:focus {
  transform: translateY(0);
}

.plm-studio-topbar {
  position: fixed;
  z-index: 70;
  inset: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(220px, var(--studio-sidebar)) minmax(0, 1fr) auto;
  align-items: center;
  min-height: var(--studio-topbar);
  padding: 0 20px;
  border-bottom: 1px solid var(--studio-border-soft);
  background: rgba(2, 4, 6, 0.9);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.plm-studio-brand,
.plm-studio-topbar-actions,
.plm-studio-context {
  display: flex;
  align-items: center;
  min-width: 0;
}

.plm-studio-brand {
  gap: 10px;
  text-decoration: none;
  font-weight: 760;
  letter-spacing: 0;
}

.plm-studio-brand img,
.plm-studio-brand svg {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.plm-studio-brand-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.plm-studio-brand-product {
  color: var(--studio-cyan-strong);
}

.plm-studio-context {
  gap: 10px;
  padding-inline: 20px;
}

.plm-studio-context-label {
  color: var(--studio-subtle);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.plm-studio-context-title {
  overflow: hidden;
  color: var(--studio-text);
  font-size: 0.9rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.plm-studio-topbar-actions {
  justify-content: flex-end;
  gap: 6px;
}

.plm-studio-icon-button,
.plm-studio-topbar-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--studio-radius);
  color: var(--studio-muted);
  background: transparent;
  text-decoration: none;
  cursor: pointer;
}

.plm-studio-icon-button:hover,
.plm-studio-topbar-link:hover {
  color: var(--studio-text);
  border-color: var(--studio-border-soft);
  background: var(--studio-surface);
}

.plm-studio-icon-button svg,
.plm-studio-topbar-link svg {
  width: 19px;
  height: 19px;
}

.plm-studio-menu-button {
  display: none;
}

.plm-studio-connection {
  position: fixed;
  z-index: 90;
  top: calc(var(--studio-topbar) + 10px);
  right: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: min(360px, calc(100vw - 32px));
  padding: 9px 12px;
  border: 1px solid rgba(255, 204, 102, 0.35);
  border-radius: var(--studio-radius);
  color: #ffe3a6;
  background: rgba(42, 32, 10, 0.96);
  box-shadow: var(--studio-shadow);
  font-size: 0.84rem;
}

.plm-studio-connection[hidden] {
  display: none;
}

.plm-studio-shell,
.dashboard-layout,
.account-layout {
  display: grid;
  grid-template-columns: var(--studio-sidebar) minmax(0, 1fr);
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: var(--studio-topbar);
}

.plm-studio-sidebar,
.dashboard-sidebar,
.account-sidebar {
  position: fixed;
  z-index: 60;
  top: var(--studio-topbar);
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  width: var(--studio-sidebar);
  padding: 16px 12px max(16px, env(safe-area-inset-bottom));
  overflow-y: auto;
  border-right: 1px solid var(--studio-border-soft);
  background: #070a0e;
  overscroll-behavior: contain;
}

.plm-studio-sidebar-header {
  display: none;
}

.plm-studio-nav {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  gap: 18px;
}

.plm-studio-nav-group {
  display: grid;
  gap: 3px;
}

.plm-studio-nav-label {
  margin: 0 10px 6px;
  color: var(--studio-subtle);
  font-size: 0.69rem;
  font-weight: 760;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.plm-studio-nav a,
.plm-studio-nav button,
.dashboard-nav-link,
.account-nav-link {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: var(--studio-radius);
  color: var(--studio-muted);
  background: transparent;
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.plm-studio-nav a:hover,
.plm-studio-nav button:hover,
.dashboard-nav-link:hover,
.account-nav-link:hover {
  color: var(--studio-text);
  border-color: var(--studio-border-soft);
  background: var(--studio-surface);
}

.plm-studio-nav :is(a, button).is-active,
.dashboard-nav-link.is-active,
.account-nav-link.is-active,
.plm-studio-nav :is(a, button)[aria-current="page"] {
  color: var(--studio-text);
  border-color: rgba(27, 188, 255, 0.2);
  background: rgba(27, 188, 255, 0.1);
  box-shadow: inset 3px 0 0 var(--studio-cyan);
}

.plm-studio-nav svg {
  width: 19px;
  height: 19px;
  color: currentColor;
}

.plm-studio-nav-footer {
  display: grid;
  gap: 3px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--studio-border-soft);
}

.plm-studio-main,
.dashboard-main,
.account-main {
  grid-column: 2;
  width: 100%;
  min-width: 0;
  max-width: 1500px;
  margin: 0 auto;
  padding: 32px clamp(20px, 3vw, 48px) 72px;
}

.plm-studio-body .dashboard-section,
.plm-studio-body .account-section {
  min-width: 0;
}

.plm-studio-body .dashboard-section[hidden],
.plm-studio-body .account-section[hidden] {
  display: none !important;
}

.plm-studio-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--studio-border-soft);
}

.plm-studio-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 0 0 9px;
  color: var(--studio-subtle);
  font-size: 0.8rem;
}

.plm-studio-breadcrumbs a {
  color: var(--studio-muted);
  text-decoration: none;
}

.plm-studio-breadcrumbs a:hover {
  color: var(--studio-cyan-strong);
}

.plm-studio-body :where(.dashboard-title, .account-title, h1) {
  margin: 0;
  color: var(--studio-text);
  font-size: clamp(1.65rem, 3vw, 2.3rem);
  line-height: 1.13;
  letter-spacing: 0;
}

.plm-studio-body :where(.dashboard-subtitle, .account-subtitle) {
  max-width: 68ch;
  margin: 8px 0 0;
  color: var(--studio-muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

.plm-studio-status,
.plm-studio-body .status-badge,
.plm-studio-body .cms-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid var(--studio-border);
  border-radius: 999px;
  color: var(--studio-muted);
  background: var(--studio-surface);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.plm-studio-status::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--studio-green);
  box-shadow: 0 0 0 3px rgba(71, 247, 165, 0.1);
  content: "";
}

.plm-studio-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 24px;
  padding: 14px 16px;
  border: 1px solid rgba(255, 204, 102, 0.28);
  border-radius: var(--studio-radius);
  color: #ffe3a6;
  background: rgba(255, 204, 102, 0.07);
}

.plm-studio-notice[hidden] {
  display: none;
}

.plm-studio-notice p {
  margin: 0;
  line-height: 1.5;
}

.plm-studio-identity,
.dashboard-account-card,
.account-profile-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  margin-bottom: 24px;
  padding: 18px 20px;
  border: 1px solid var(--studio-border-soft);
  border-radius: var(--studio-radius-lg);
  background: linear-gradient(120deg, rgba(27, 188, 255, 0.06), var(--studio-surface));
}

.plm-studio-identity-main {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 14px;
}

.plm-studio-identity-copy {
  min-width: 0;
}

.plm-studio-identity-copy :where(h2, p) {
  overflow-wrap: anywhere;
}

.plm-studio-identity-copy h2 {
  margin: 0;
  color: var(--studio-text);
  font-size: 1.08rem;
  line-height: 1.25;
}

.plm-studio-identity-copy p {
  margin: 4px 0 0;
  color: var(--studio-muted);
  font-size: 0.86rem;
}

.plm-studio-identity-actions,
.plm-studio-quick-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.plm-studio-quick-actions {
  justify-content: flex-start;
  margin-bottom: 24px;
}

.plm-studio-body .dashboard-grid,
.plm-studio-body .account-grid,
.plm-studio-body .cms-grid,
.plm-studio-body .stats-grid,
.plm-studio-body .project-grid,
.plm-studio-body .files-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

.plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .stat-card, .project-card, .file-card, .support-card, .billing-card, .activity-card, .team-card, .contract-card) {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--studio-border-soft);
  border-radius: var(--studio-radius-lg);
  color: var(--studio-text);
  background: var(--studio-surface);
  box-shadow: none;
}

.plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .project-card, .file-card, .support-card, .billing-card) {
  grid-column: span 4;
}

.plm-studio-body :where(.stat-card) {
  grid-column: span 3;
}

.plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .project-card, .file-card, .support-card, .billing-card, .activity-card):hover {
  border-color: rgba(111, 214, 255, 0.24);
  background: var(--studio-surface-strong);
}

.plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .stat-card, .project-card, .file-card, .support-card, .billing-card) :where(h2, h3, h4) {
  margin-top: 0;
  color: var(--studio-text);
  letter-spacing: 0;
}

.plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .project-card, .file-card, .support-card, .billing-card) :where(p, small) {
  color: var(--studio-muted);
  line-height: 1.55;
}

.plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .project-card, .file-card, .support-card, .billing-card) :where(h2, h3, h4, p, a, span, strong) {
  overflow-wrap: anywhere;
}

.plm-studio-body .cms-empty-state,
.plm-studio-body .empty-state,
.plm-studio-body .loading-state {
  display: grid;
  place-items: center;
  min-height: 160px;
  padding: 28px 20px;
  border: 1px dashed var(--studio-border);
  border-radius: var(--studio-radius);
  color: var(--studio-muted);
  background: rgba(255, 255, 255, 0.025);
  text-align: center;
}

.plm-studio-body .is-loading {
  position: relative;
  overflow: hidden;
}

.plm-studio-body .is-loading::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.055) 48%, transparent 76%);
  transform: translateX(-100%);
  animation: studio-shimmer 1.4s ease-in-out infinite;
  content: "";
}

@keyframes studio-shimmer {
  to { transform: translateX(100%); }
}

.plm-studio-body :where(button, .button, .btn, .cms-button, .account-button, .dashboard-button) {
  min-height: 42px;
  border-radius: var(--studio-radius);
  letter-spacing: 0;
}

.plm-studio-body :where(.button-primary, .btn-primary, .cms-button-primary, .account-button-primary, .dashboard-button-primary) {
  border-color: var(--studio-cyan);
  color: #00121a;
  background: var(--studio-cyan);
  box-shadow: none;
}

.plm-studio-body :where(.button-primary, .btn-primary, .cms-button-primary, .account-button-primary, .dashboard-button-primary):hover {
  border-color: var(--studio-cyan-strong);
  background: var(--studio-cyan-strong);
}

.plm-studio-body :where(.button-secondary, .btn-secondary, .cms-button-secondary, .account-button-secondary, .dashboard-button-secondary) {
  border-color: var(--studio-border);
  color: var(--studio-text);
  background: var(--studio-surface);
}

.plm-studio-body :where(.button-secondary, .btn-secondary, .cms-button-secondary, .account-button-secondary, .dashboard-button-secondary):hover {
  background: var(--studio-surface-hover);
}

.plm-studio-body :where(button, .button, .btn, .cms-button, .account-button, .dashboard-button):disabled,
.plm-studio-body :where(button, .button, .btn, .cms-button, .account-button, .dashboard-button)[aria-disabled="true"] {
  opacity: 0.48;
  cursor: not-allowed;
}

.plm-studio-body :where(input, select, textarea) {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--studio-border);
  border-radius: var(--studio-radius);
  color: var(--studio-text);
  background: #0b1016;
}

.plm-studio-body textarea {
  min-height: 120px;
  resize: vertical;
}

.plm-studio-body :where(input, select, textarea)::placeholder {
  color: var(--studio-subtle);
}

.plm-studio-body :where(label, .form-label) {
  color: var(--studio-muted);
  font-weight: 650;
}

.plm-studio-body :where(.form-error, .error-message) {
  color: var(--studio-red);
}

.plm-studio-body :where(.success-message) {
  color: var(--studio-green);
}

.plm-studio-body :where(.warning-message) {
  color: var(--studio-amber);
}

.plm-studio-body :where(table) {
  width: 100%;
  border-collapse: collapse;
}

.plm-studio-body :where(th, td) {
  padding: 12px;
  border-bottom: 1px solid var(--studio-border-soft);
  text-align: left;
  overflow-wrap: anywhere;
}

.plm-studio-body th {
  color: var(--studio-subtle);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.plm-studio-body :where(.avatar, .account-avatar, .profile-avatar) {
  overflow: hidden;
  flex: 0 0 auto;
  border: 1px solid var(--studio-border);
  color: var(--studio-text);
  background: rgba(27, 188, 255, 0.12);
}

.plm-studio-body :where(.avatar, .account-avatar, .profile-avatar) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.plm-studio-body .account-avatar-preview {
  width: 88px;
  height: 88px;
  border-radius: 50%;
}

.plm-studio-body :where(.toggle, .switch) {
  min-width: 44px;
  min-height: 24px;
}

.plm-studio-backdrop {
  display: none;
}

@media (max-width: 1180px) {
  .plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .project-card, .file-card, .support-card, .billing-card) {
    grid-column: span 6;
  }

  .plm-studio-body :where(.stat-card) {
    grid-column: span 6;
  }
}

@media (max-width: 1023px) {
  .plm-studio-topbar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 64px;
    padding: 0 12px;
  }

  .plm-studio-menu-button {
    display: inline-flex;
    margin-right: 2px;
  }

  .plm-studio-brand-name {
    max-width: 150px;
  }

  .plm-studio-context {
    display: none;
  }

  .plm-studio-topbar-link-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .plm-studio-shell,
  .dashboard-layout,
  .account-layout {
    display: block;
    padding-top: var(--studio-topbar);
  }

  .plm-studio-sidebar,
  .dashboard-sidebar,
  .account-sidebar {
    z-index: 82;
    top: 0;
    width: min(320px, calc(100vw - 40px));
    padding-top: max(14px, env(safe-area-inset-top));
    transform: translateX(-105%);
    visibility: hidden;
    transition: transform 180ms ease, visibility 180ms ease;
    box-shadow: var(--studio-shadow);
  }

  .plm-studio-sidebar.is-open,
  .dashboard-sidebar.is-open,
  .account-sidebar.is-open {
    transform: translateX(0);
    visibility: visible;
  }

  .plm-studio-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 50px;
    margin-bottom: 12px;
    padding: 0 2px 12px 8px;
    border-bottom: 1px solid var(--studio-border-soft);
  }

  .plm-studio-sidebar-header strong {
    font-size: 0.92rem;
  }

  .plm-studio-backdrop {
    position: fixed;
    z-index: 80;
    inset: 0;
    display: block;
    border: 0;
    background: rgba(0, 0, 0, 0.66);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
  }

  .plm-studio-backdrop.is-open {
    opacity: 1;
    visibility: visible;
  }

  .plm-studio-main,
  .dashboard-main,
  .account-main {
    width: 100%;
    max-width: none;
    padding: 24px clamp(16px, 4vw, 28px) 64px;
  }

  .plm-studio-body.studio-nav-open {
    overflow: hidden;
  }
}

@media (max-width: 680px) {
  .plm-studio-brand-name {
    max-width: 122px;
    font-size: 0.88rem;
  }

  .plm-studio-topbar-actions {
    gap: 0;
  }

  .plm-studio-topbar-link {
    padding: 0 10px;
  }

  .plm-studio-page-header,
  .plm-studio-identity,
  .dashboard-account-card,
  .account-profile-card {
    grid-template-columns: 1fr;
  }

  .plm-studio-page-header {
    display: grid;
    gap: 14px;
  }

  .plm-studio-identity-actions,
  .plm-studio-quick-actions {
    justify-content: stretch;
  }

  .plm-studio-identity-actions > *,
  .plm-studio-quick-actions > * {
    flex: 1 1 auto;
    justify-content: center;
  }

  .plm-studio-body .dashboard-grid,
  .plm-studio-body .account-grid,
  .plm-studio-body .cms-grid,
  .plm-studio-body .stats-grid,
  .plm-studio-body .project-grid,
  .plm-studio-body .files-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .stat-card, .project-card, .file-card, .support-card, .billing-card) {
    grid-column: 1;
  }

  .plm-studio-notice {
    align-items: stretch;
    flex-direction: column;
  }

  .plm-studio-notice button {
    width: 100%;
  }

  .plm-studio-body :where(th, td) {
    padding: 10px 8px;
  }
}

@media (max-width: 390px) {
  .plm-studio-topbar {
    padding-inline: 8px;
  }

  .plm-studio-brand-name {
    max-width: 104px;
  }

  .plm-studio-topbar-link {
    min-width: 44px;
    padding: 0 8px;
  }

  .plm-studio-main,
  .dashboard-main,
  .account-main {
    padding-inline: 14px;
  }

  .plm-studio-body :where(.dashboard-card, .account-card, .cms-card, .stat-card, .project-card, .file-card, .support-card, .billing-card) {
    padding: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .plm-studio-body *,
  .plm-studio-body *::before,
  .plm-studio-body *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
/* Exact bindings for the authenticated Studio markup. */
.plm-studio-body .is-hidden { display: none !important; }

.plm-studio-brand-mark {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(111, 214, 255, .3);
  border-radius: var(--studio-radius);
  color: var(--studio-cyan-strong);
  background: rgba(27, 188, 255, .09);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .06em;
}

.plm-studio-brand-copy,
.dashboard-sidebar-brand > span:last-child {
  display: grid;
  min-width: 0;
  line-height: 1.15;
}

.plm-studio-brand-copy strong,
.dashboard-sidebar-brand strong { color: var(--studio-text); font-size: .88rem; }
.plm-studio-brand-copy small,
.dashboard-sidebar-brand small { margin-top: 3px; color: var(--studio-subtle); font-size: .67rem; font-weight: 600; }

.plm-studio-header-context {
  display: flex;
  align-items: baseline;
  min-width: 0;
  gap: 10px;
  padding-inline: 20px;
}

.plm-studio-header-context > span {
  color: var(--studio-subtle);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.plm-studio-header-context > strong {
  overflow: hidden;
  color: var(--studio-text);
  font-size: .9rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.plm-studio-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
}

.plm-studio-header-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 11px;
  border: 1px solid transparent;
  border-radius: var(--studio-radius);
  color: var(--studio-muted);
  text-decoration: none;
}

.plm-studio-header-actions a:hover {
  border-color: var(--studio-border-soft);
  color: var(--studio-text);
  background: var(--studio-surface);
}

.plm-studio-header-actions svg { width: 18px; height: 18px; }
.plm-studio-nav-backdrop { display: none; }

.plm-studio-body > .dashboard-page {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
}

.plm-studio-body > .dashboard-page > .dashboard-access-section {
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: var(--studio-topbar);
}

.plm-studio-body .dashboard-workspace {
  display: grid;
  grid-template-columns: var(--studio-sidebar) minmax(0, 1fr);
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: var(--studio-topbar);
}

.plm-studio-body .dashboard-workspace.is-hidden { display: none !important; }
.plm-studio-sidebar-head { display: none; }

.plm-studio-body .dashboard-sidebar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin: 0 4px 16px;
  padding: 0 6px 14px;
  border-bottom: 1px solid var(--studio-border-soft);
  color: var(--studio-text);
  text-decoration: none;
}

.plm-studio-body .dashboard-sidebar-nav {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  gap: 3px;
}

.plm-studio-body .dashboard-sidebar-nav :is(a, button) {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: var(--studio-radius);
  color: var(--studio-muted);
  background: transparent;
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.plm-studio-body .dashboard-sidebar-nav :is(a, button):hover {
  border-color: var(--studio-border-soft);
  color: var(--studio-text);
  background: var(--studio-surface);
}

.plm-studio-body .dashboard-sidebar-nav :is(a, button).is-active {
  border-color: rgba(27, 188, 255, .2);
  color: var(--studio-text);
  background: rgba(27, 188, 255, .1);
  box-shadow: inset 3px 0 0 var(--studio-cyan);
}

.plm-studio-nav-icon,
.plm-studio-nav-icon svg { display: block; width: 19px; height: 19px; }

.plm-studio-sidebar-foot {
  display: grid;
  gap: 2px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--studio-border-soft);
}

.plm-studio-sidebar-foot a {
  min-height: 40px;
  padding: 10px;
  border-radius: var(--studio-radius);
  color: var(--studio-subtle);
  font-size: .78rem;
  text-decoration: none;
}

.plm-studio-sidebar-foot a:hover { color: var(--studio-text); background: var(--studio-surface); }

.plm-studio-system-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 20px;
  padding: 14px 16px;
  border: 1px solid rgba(255, 204, 102, .3);
  border-radius: var(--studio-radius);
  color: #ffe3a6;
  background: rgba(255, 204, 102, .07);
}

.plm-studio-system-notice[hidden] { display: none; }
.plm-studio-system-notice > div { display: grid; gap: 3px; min-width: 0; }
.plm-studio-system-notice strong { color: #fff1c9; font-size: .86rem; }
.plm-studio-system-notice span { color: #dbc99d; font-size: .8rem; overflow-wrap: anywhere; }

.plm-studio-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.plm-studio-secure-status,
.plm-studio-availability { color: var(--studio-muted); font-size: .77rem; }

.plm-studio-secure-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding-top: 5px;
  white-space: nowrap;
}

.plm-studio-secure-status i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--studio-green);
  box-shadow: 0 0 0 3px rgba(71, 247, 165, .1);
}

.plm-studio-body .dashboard-top-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  align-items: stretch;
  gap: 20px;
  margin-bottom: 24px;
}

.plm-studio-body .dashboard-identity-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--studio-border-soft);
  border-radius: var(--studio-radius-lg);
  background: var(--studio-surface);
}

.plm-studio-identity-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--studio-border-soft);
  color: var(--studio-subtle);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.plm-studio-identity-head a { color: var(--studio-cyan-strong); text-transform: none; text-decoration: none; }
.plm-studio-body .dashboard-user-line { margin: 0 0 8px; color: var(--studio-muted); font-size: .84rem; overflow-wrap: anywhere; }
.plm-studio-body .dashboard-user-line strong { color: var(--studio-text); }

.plm-studio-body .dashboard-section-head {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--studio-border-soft);
}

.plm-studio-body .dashboard-section-head h2 {
  margin: 8px 0 4px;
  color: var(--studio-text);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  letter-spacing: 0;
}

.plm-studio-body .dashboard-section-head p {
  max-width: 68ch;
  margin: 0;
  color: var(--studio-muted);
  line-height: 1.55;
}

.plm-studio-body .dashboard-section-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

.plm-studio-body .dashboard-section-grid > * { grid-column: span 6; min-width: 0; }

.plm-studio-body .dashboard-panel {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--studio-border-soft);
  border-radius: var(--studio-radius-lg);
  background: var(--studio-surface);
}

.plm-studio-body .dashboard-panel h2 { margin-top: 0; color: var(--studio-text); letter-spacing: 0; }
.plm-studio-body .dashboard-panel :where(p, a, span, strong) { overflow-wrap: anywhere; }
.plm-studio-body :is(.dashboard-section, .account-section):not(.is-active) { display: none; }
.plm-studio-body :is(.dashboard-section, .account-section).is-active { display: block; }

@media (max-width: 1023px) {
  .plm-studio-header-context { display: none; }
  .plm-studio-header-actions a { min-width: 44px; padding-inline: 9px; }
  .plm-studio-header-actions a:not(.plm-studio-account-link) { display: none; }

  .plm-studio-header-actions .plm-studio-account-link span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .plm-studio-body .dashboard-workspace { display: block; }

  .plm-studio-sidebar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 50px;
    margin-bottom: 12px;
    padding: 0 2px 12px 8px;
    border-bottom: 1px solid var(--studio-border-soft);
  }

  .plm-studio-body .dashboard-sidebar-brand { margin: 0; padding: 0; border: 0; }

  .plm-studio-nav-backdrop {
    position: fixed;
    z-index: 80;
    inset: 0;
    display: block;
    border: 0;
    background: rgba(0, 0, 0, .66);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
  }

  .plm-studio-nav-backdrop.is-open { opacity: 1; visibility: visible; }
  .plm-studio-body .dashboard-top-panel { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 680px) {
  .plm-studio-header-actions a { display: none; }
  .plm-studio-title-row,
  .plm-studio-system-notice { align-items: stretch; flex-direction: column; }
  .plm-studio-title-row { display: flex; }
  .plm-studio-system-notice button { width: 100%; }
  .plm-studio-body .dashboard-section-grid { grid-template-columns: minmax(0, 1fr); }
  .plm-studio-body .dashboard-section-grid > * { grid-column: 1; }
}

/* PLM Studio client support workspace */
#dashboardSupportList > .studio-support-workspace {
  grid-column: 1 / -1;
  min-width: 0;
}

.studio-support-workspace,
.studio-support-workspace * { box-sizing: border-box; }

.studio-support-workspace {
  min-width: 0;
  display: grid;
  border: 1px solid var(--studio-border, rgba(255, 255, 255, 0.1));
  border-radius: 14px;
  background: rgba(8, 17, 23, 0.76);
  overflow: hidden;
}

.studio-support-toolbar {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(150px, 210px) auto;
  align-items: end;
  gap: 10px;
  padding: 14px;
  border-bottom: 1px solid var(--studio-border, rgba(255, 255, 255, 0.1));
}

.studio-support-toolbar label,
.studio-support-reply label {
  min-width: 0;
  display: grid;
  gap: 6px;
  color: var(--studio-muted, #9cafb9);
  font-size: 0.75rem;
  font-weight: 800;
}

.studio-support-toolbar input,
.studio-support-toolbar select,
.studio-support-reply textarea {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 10px 12px;
  color: var(--studio-text, #edf7fb);
  font: inherit;
  border: 1px solid var(--studio-border, rgba(255, 255, 255, 0.12));
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.045);
}

.studio-support-toolbar input:focus,
.studio-support-toolbar select:focus,
.studio-support-reply textarea:focus {
  border-color: rgba(50, 196, 238, 0.55);
  outline: 2px solid rgba(50, 196, 238, 0.18);
  outline-offset: 1px;
}

.studio-support-summary {
  margin: 0;
  padding: 10px 14px;
  color: var(--studio-muted, #9cafb9);
  font-size: 0.78rem;
  border-bottom: 1px solid var(--studio-border, rgba(255, 255, 255, 0.08));
}

.studio-support-list { min-width: 0; display: grid; }

.studio-support-ticket {
  width: 100%;
  min-width: 0;
  min-height: 94px;
  display: grid;
  grid-template-columns: 5px minmax(0, 1fr) minmax(135px, auto) 18px;
  align-items: center;
  gap: 13px;
  padding: 14px 16px;
  color: var(--studio-text, #edf7fb);
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--studio-border, rgba(255, 255, 255, 0.08));
  background: transparent;
}

.studio-support-ticket:last-child { border-bottom: 0; }
.studio-support-ticket:hover,
.studio-support-ticket:focus-visible {
  background: rgba(50, 196, 238, 0.055);
  outline: none;
}
.studio-support-ticket:focus-visible { box-shadow: inset 0 0 0 2px rgba(72, 205, 243, 0.5); }
.studio-support-ticket.is-waiting { background: rgba(238, 180, 72, 0.035); }

.studio-support-ticket-marker {
  width: 5px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
}
.studio-support-ticket.is-unread .studio-support-ticket-marker {
  background: #31c4ee;
  box-shadow: 0 0 14px rgba(49, 196, 238, 0.32);
}

.studio-support-ticket-content { min-width: 0; display: grid; gap: 7px; }
.studio-support-ticket-heading {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.studio-support-ticket-heading strong {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  color: var(--studio-text, #edf7fb);
  font-size: 0.94rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-support-ticket-copy {
  min-width: 0;
  overflow: hidden;
  color: var(--studio-muted, #9cafb9);
  font-size: 0.82rem;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.studio-support-ticket-meta,
.studio-support-ticket-date {
  color: var(--studio-muted, #9cafb9);
  font-size: 0.72rem;
  text-transform: capitalize;
}
.studio-support-ticket-date { text-align: right; line-height: 1.4; }

.studio-support-status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  color: #bfefff;
  font-size: 0.69rem;
  font-weight: 850;
  line-height: 1.2;
  border: 1px solid rgba(49, 196, 238, 0.24);
  border-radius: 999px;
  background: rgba(49, 196, 238, 0.09);
}
.studio-support-status[data-status="waiting_on_client"] {
  color: #ffe4a6;
  border-color: rgba(238, 180, 72, 0.3);
  background: rgba(238, 180, 72, 0.09);
}
.studio-support-status[data-status="resolved"] {
  color: #bef5d5;
  border-color: rgba(77, 210, 139, 0.28);
  background: rgba(77, 210, 139, 0.08);
}

.studio-support-state {
  min-height: 170px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  padding: 24px;
  text-align: center;
}
.studio-support-state h3,
.studio-support-state p { margin: 0; }
.studio-support-state h3 { color: var(--studio-text, #edf7fb); font-size: 1rem; }
.studio-support-state p { max-width: 520px; color: var(--studio-muted, #9cafb9); line-height: 1.6; }

.studio-support-pagination {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 9px 14px;
  border-top: 1px solid var(--studio-border, rgba(255, 255, 255, 0.08));
}
.studio-support-pagination span { color: var(--studio-muted, #9cafb9); font-size: 0.78rem; font-weight: 800; }

.studio-support-dialog-layer { position: fixed; inset: 0; z-index: 240; }
.studio-support-dialog-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  border: 0;
  background: rgba(0, 3, 5, 0.75);
  opacity: 0;
  transition: opacity 180ms ease;
}
.studio-support-dialog {
  position: absolute;
  inset: 0 0 0 auto;
  width: min(720px, calc(100vw - 40px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  color: var(--studio-text, #edf7fb);
  border-left: 1px solid var(--studio-border, rgba(255, 255, 255, 0.12));
  background: #071015;
  box-shadow: -30px 0 80px rgba(0, 0, 0, 0.46);
  transform: translateX(102%);
  transition: transform 180ms ease;
  outline: none;
}
.studio-support-dialog-layer.is-open .studio-support-dialog-backdrop { opacity: 1; }
.studio-support-dialog-layer.is-open .studio-support-dialog { transform: translateX(0); }
.studio-support-dialog-open { overflow: hidden; }

.studio-support-dialog > header {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: calc(18px + env(safe-area-inset-top)) 18px 18px;
  border-bottom: 1px solid var(--studio-border, rgba(255, 255, 255, 0.1));
}
.studio-support-dialog > header > div { min-width: 0; }
.studio-support-dialog > header span {
  color: #55d3f6;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.studio-support-dialog > header h2 {
  margin: 5px 0 0;
  overflow-wrap: anywhere;
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  line-height: 1.2;
}
.studio-support-close {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--studio-text, #edf7fb);
  font-size: 1.4rem;
  border: 1px solid var(--studio-border, rgba(255, 255, 255, 0.12));
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
}
.studio-support-close:focus-visible { outline: 2px solid #55d3f6; outline-offset: 2px; }

.studio-support-dialog-body {
  min-width: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 18px;
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
}

.studio-support-attention,
.studio-support-detail-summary,
.studio-support-conversation,
.studio-support-reply {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--studio-border, rgba(255, 255, 255, 0.1));
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.025);
}
.studio-support-attention {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
  color: #ffe4a6;
  border-color: rgba(238, 180, 72, 0.28);
  background: rgba(238, 180, 72, 0.07);
}
.studio-support-attention span { color: var(--studio-muted, #9cafb9); font-size: 0.83rem; line-height: 1.55; }
.studio-support-conversation,
.studio-support-reply { margin-top: 12px; }

.studio-support-detail-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; color: var(--studio-muted, #9cafb9); font-size: 0.76rem; }
.studio-support-request-copy {
  margin: 16px 0;
  overflow-wrap: anywhere;
  color: var(--studio-text, #edf7fb);
  font-size: 0.9rem;
  line-height: 1.7;
  white-space: pre-wrap;
}
.studio-support-detail-summary dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid var(--studio-border, rgba(255, 255, 255, 0.08));
}
.studio-support-detail-summary dt { color: var(--studio-muted, #9cafb9); font-size: 0.68rem; font-weight: 800; text-transform: uppercase; }
.studio-support-detail-summary dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: 0.78rem; line-height: 1.45; }
.studio-support-resolution { margin-top: 14px; padding: 14px; border: 1px solid rgba(77, 210, 139, 0.22); border-radius: 10px; background: rgba(77, 210, 139, 0.06); }
.studio-support-resolution h3,
.studio-support-conversation h3 { margin: 0; font-size: 0.95rem; }
.studio-support-resolution p { margin: 7px 0 0; color: var(--studio-muted, #9cafb9); line-height: 1.65; white-space: pre-wrap; }

.studio-support-conversation ol { display: grid; gap: 0; margin: 14px 0 0; padding: 0; list-style: none; }
.studio-support-conversation li { position: relative; min-width: 0; display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 10px; padding-bottom: 18px; }
.studio-support-conversation li::before { content: ""; position: absolute; left: 6px; top: 13px; bottom: 0; width: 1px; background: var(--studio-border, rgba(255, 255, 255, 0.1)); }
.studio-support-conversation li:last-child::before { display: none; }
.studio-support-event-dot { position: relative; z-index: 1; width: 9px; height: 9px; margin: 4px 0 0 2px; border-radius: 50%; background: #31c4ee; box-shadow: 0 0 0 2px #071015, 0 0 0 4px rgba(49, 196, 238, 0.2); }
.studio-support-conversation li header { min-width: 0; display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; }
.studio-support-conversation li header strong { font-size: 0.82rem; }
.studio-support-conversation li time { margin-left: auto; color: var(--studio-muted, #9cafb9); font-size: 0.69rem; }
.studio-support-conversation li p { margin: 6px 0 0; overflow-wrap: anywhere; color: var(--studio-muted, #9cafb9); font-size: 0.83rem; line-height: 1.6; white-space: pre-wrap; }

.studio-support-reply { display: grid; gap: 10px; }
.studio-support-reply textarea { min-height: 104px; resize: vertical; line-height: 1.55; }
.studio-support-reply .btn { justify-self: start; min-height: 44px; }
.studio-support-reply > p { min-height: 1.2em; margin: 0; color: var(--studio-muted, #9cafb9); font-size: 0.78rem; }

@media (max-width: 1023px) {
  .studio-support-toolbar { grid-template-columns: minmax(0, 1fr) minmax(140px, 190px); }
  .studio-support-toolbar .btn { grid-column: 1 / -1; justify-self: start; }
  .studio-support-dialog { width: min(680px, calc(100vw - 20px)); }
}

@media (max-width: 680px) {
  .plm-studio-body .dashboard-two-column:has(#dashboardSupportForm) { grid-template-columns: minmax(0, 1fr); }
  .studio-support-toolbar { grid-template-columns: minmax(0, 1fr); }
  .studio-support-toolbar .btn { width: 100%; }
  .studio-support-ticket { grid-template-columns: 4px minmax(0, 1fr) 16px; gap: 10px; padding: 14px; }
  .studio-support-ticket-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .studio-support-ticket-heading strong,
  .studio-support-ticket-copy { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
  .studio-support-ticket-date { grid-column: 2; text-align: left; }
  .studio-support-ticket > span:last-child { grid-column: 3; grid-row: 1 / span 2; }
  .studio-support-dialog { inset: 0; width: 100%; border-left: 0; }
  .studio-support-dialog > header,
  .studio-support-dialog-body { padding-inline: 14px; }
  .studio-support-detail-summary,
  .studio-support-conversation,
  .studio-support-reply { padding: 14px; }
  .studio-support-detail-summary dl { grid-template-columns: minmax(0, 1fr); }
  .studio-support-conversation li header time { width: 100%; margin-left: 0; }
  .studio-support-reply .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .studio-support-dialog,
  .studio-support-dialog-backdrop { transition: none; }
}

/* PLM Studio spatial workspace */
.plm-studio-spatial {
  --studio-rail-size: 92px;
  --studio-inspector-size: 306px;
  --studio-shell-gap: 16px;
  --studio-surface: rgba(14, 18, 24, 0.88);
  --studio-surface-strong: rgba(18, 23, 31, 0.96);
  --studio-border: rgba(174, 204, 225, 0.13);
  --studio-border-bright: rgba(47, 195, 255, 0.26);
  --studio-accent: #35c5ff;
  --studio-accent-soft: rgba(53, 197, 255, 0.12);
  --studio-text: #f4f8fb;
  --studio-muted: #94a5b5;
  --studio-radius: 24px;
  background: radial-gradient(circle at 52% -12%, rgba(24, 112, 157, 0.18), transparent 36rem),
    radial-gradient(circle at 96% 55%, rgba(42, 83, 118, 0.11), transparent 30rem), #070a0e;
  color: var(--studio-text);
  min-width: 0;
}

.plm-studio-spatial::before {
  background-image: linear-gradient(rgba(255, 255, 255, 0.016) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.016) 1px, transparent 1px);
  background-size: 36px 36px;
  content: "";
  inset: 0;
  mask-image: linear-gradient(to bottom, black, transparent 78%);
  pointer-events: none;
  position: fixed;
  z-index: -1;
}

.plm-studio-spatial .plm-studio-topbar {
  align-items: center;
  backdrop-filter: blur(18px) saturate(130%);
  background: rgba(11, 15, 20, 0.82);
  border: 1px solid var(--studio-border);
  border-radius: 20px;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.32);
  display: grid;
  gap: 12px;
  grid-template-columns: auto minmax(150px, 230px) minmax(220px, 1fr) auto auto;
  height: 66px;
  inset: 14px 14px auto 14px;
  padding: 9px 12px;
  position: fixed;
  width: auto;
  z-index: 80;
}

.plm-studio-spatial .plm-studio-topbar-brand { align-items: center; display: flex; gap: 9px; min-width: 0; }
.plm-studio-spatial .plm-studio-topbar-brand img,
.plm-studio-spatial .dashboard-sidebar-brand img { border-radius: 9px; height: 34px; object-fit: contain; width: 34px; }
.plm-studio-spatial .plm-studio-topbar-brand strong { font-size: 0.84rem; letter-spacing: 0.08em; white-space: nowrap; }
.studio-workspace-select, .studio-workspace-search, .studio-profile-button { min-width: 0; }
.studio-workspace-select select,
.studio-workspace-search input {
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--studio-border);
  border-radius: 13px;
  color: var(--studio-text);
  font: inherit;
  height: 42px;
  outline: 0;
  padding: 0 13px;
  width: 100%;
}
.studio-workspace-select select:focus-visible,
.studio-workspace-search input:focus-visible,
.studio-profile-button:focus-visible { border-color: var(--studio-accent); box-shadow: 0 0 0 3px rgba(53, 197, 255, 0.17); }
.studio-workspace-search { position: relative; }
.studio-workspace-search::before { color: var(--studio-muted); content: "?"; font-size: 1.25rem; left: 13px; position: absolute; top: 8px; }
.studio-workspace-search input { padding-left: 38px; }
.studio-workspace-context { max-width: 210px; min-width: 0; }
.studio-workspace-context small, .studio-workspace-context strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.studio-workspace-context small { color: var(--studio-muted); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; }
.studio-workspace-context strong { font-size: 0.92rem; margin-top: 2px; }
.studio-profile-wrap { position: relative; }
.studio-profile-button {
  align-items: center;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid var(--studio-border);
  border-radius: 14px;
  color: var(--studio-text);
  display: flex;
  gap: 9px;
  height: 42px;
  padding: 5px 10px 5px 6px;
}
.studio-profile-avatar, .dashboard-sidebar-avatar {
  align-items: center;
  background: linear-gradient(145deg, #287c9f, #142a38);
  border: 1px solid rgba(83, 213, 255, 0.38);
  border-radius: 10px;
  color: #e9faff;
  display: inline-flex;
  font-size: 0.7rem;
  font-weight: 800;
  height: 30px;
  justify-content: center;
  width: 30px;
}
.studio-profile-menu {
  background: var(--studio-surface-strong);
  border: 1px solid var(--studio-border);
  border-radius: 16px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.48);
  min-width: 220px;
  padding: 8px;
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  z-index: 90;
}
.studio-profile-menu[hidden] { display: none; }
.studio-profile-email { color: var(--studio-muted); display: block; font-size: 0.75rem; overflow: hidden; padding: 8px 10px 10px; text-overflow: ellipsis; }
.studio-profile-menu a { border-radius: 10px; color: var(--studio-text); display: block; padding: 9px 10px; text-decoration: none; }
.studio-profile-menu a:hover, .studio-profile-menu a:focus-visible { background: var(--studio-accent-soft); }

.plm-studio-spatial .dashboard-layout {
  display: grid;
  gap: var(--studio-shell-gap);
  grid-template-columns: var(--studio-rail-size) minmax(0, 1fr) var(--studio-inspector-size);
  min-height: 100vh;
  padding: 94px 14px 22px;
}
.plm-studio-spatial .dashboard-sidebar {
  align-self: start;
  backdrop-filter: blur(18px) saturate(120%);
  background: rgba(12, 16, 22, 0.89);
  border: 1px solid var(--studio-border);
  border-radius: 26px;
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.38);
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: calc(100vh - 116px);
  inset: 94px auto auto 14px;
  overflow-y: auto;
  padding: 12px 9px;
  position: fixed;
  width: var(--studio-rail-size);
  z-index: 55;
}
.plm-studio-spatial .dashboard-sidebar-brand { align-items: center; color: var(--studio-text); display: flex; justify-content: center; min-height: 40px; text-decoration: none; }
.plm-studio-spatial .dashboard-sidebar-brand-copy,
.plm-studio-spatial .dashboard-sidebar-intro { display: none; }
.plm-studio-spatial .dashboard-sidebar nav { display: grid; gap: 5px; }
.plm-studio-spatial .dashboard-sidebar nav a {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 15px;
  color: var(--studio-muted);
  display: flex;
  flex-direction: column;
  font-size: 0.64rem;
  gap: 3px;
  justify-content: center;
  min-height: 50px;
  padding: 5px 3px;
  text-align: center;
  text-decoration: none;
}
.plm-studio-spatial .dashboard-sidebar nav a::before { color: currentColor; content: "?"; font-size: 1rem; line-height: 1; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#overview"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#website"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#projects"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#files"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#support"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#billing"]::before { content: "$"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#hosting"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#automations"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a[href="#settings"]::before { content: "?"; }
.plm-studio-spatial .dashboard-sidebar nav a:hover,
.plm-studio-spatial .dashboard-sidebar nav a:focus-visible,
.plm-studio-spatial .dashboard-sidebar nav a.is-active {
  background: var(--studio-accent-soft);
  border-color: var(--studio-border-bright);
  color: #dcf7ff;
  box-shadow: inset 0 0 24px rgba(53, 197, 255, 0.06);
}
.plm-studio-spatial .plm-studio-sidebar-foot { display: grid; gap: 7px; margin-top: auto; }
.plm-studio-spatial .studio-edit-site-action {
  align-items: center;
  background: linear-gradient(145deg, rgba(51, 193, 249, 0.22), rgba(32, 104, 139, 0.12));
  border: 1px solid rgba(53, 197, 255, 0.34);
  border-radius: 15px;
  color: #e8faff;
  display: flex;
  font-size: 0.65rem;
  justify-content: center;
  min-height: 48px;
  padding: 6px;
  text-align: center;
  text-decoration: none;
}
.plm-studio-spatial .dashboard-sidebar-profile { align-items: center; border-radius: 13px; display: flex; justify-content: center; min-height: 42px; }
.plm-studio-spatial .dashboard-sidebar-profile-copy { display: none; }
.plm-studio-spatial .dashboard-main { grid-column: 2; min-width: 0; padding: 0; }
.plm-studio-spatial .dashboard-section { animation: studioSectionIn 260ms ease both; }
@keyframes studioSectionIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.plm-studio-spatial .dashboard-welcome,
.plm-studio-spatial .dashboard-panel,
.plm-studio-spatial .dashboard-stat {
  background: linear-gradient(150deg, rgba(21, 27, 36, 0.92), rgba(12, 16, 22, 0.86));
  border-color: var(--studio-border);
  box-shadow: 0 16px 54px rgba(0, 0, 0, 0.22);
}
.plm-studio-spatial .dashboard-welcome, .plm-studio-spatial .dashboard-panel { border-radius: var(--studio-radius); }
.plm-studio-spatial .dashboard-stat { border-radius: 20px; }
.plm-studio-spatial .dashboard-welcome { overflow: hidden; padding: clamp(22px, 3vw, 38px); position: relative; }
.plm-studio-spatial .dashboard-welcome::after {
  background: radial-gradient(circle, rgba(53, 197, 255, 0.19), transparent 68%);
  content: "";
  height: 260px;
  pointer-events: none;
  position: absolute;
  right: -70px;
  top: -120px;
  width: 260px;
}
.plm-studio-spatial .dashboard-grid, .plm-studio-spatial .dashboard-overview-grid { gap: 16px; }
.plm-studio-spatial .dashboard-stat strong { font-variant-numeric: tabular-nums; }
.plm-studio-spatial .cms-error-state { background: rgba(255, 111, 111, 0.07); border: 1px solid rgba(255, 128, 128, 0.24); border-radius: 14px; color: #ffd6d6; padding: 14px; }
.studio-context-panel {
  align-self: start;
  backdrop-filter: blur(18px) saturate(120%);
  background: rgba(12, 16, 22, 0.89);
  border: 1px solid var(--studio-border);
  border-radius: 24px;
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.32);
  grid-column: 3;
  max-height: calc(100vh - 116px);
  overflow-y: auto;
  padding: 18px;
  position: sticky;
  top: 94px;
}
.studio-context-head { align-items: flex-start; display: flex; justify-content: space-between; }
.studio-context-head p, .studio-context-section p { color: var(--studio-muted); font-size: 0.82rem; }
.studio-context-panel h2 { font-size: 1.05rem; margin: 2px 0 4px; }
.studio-context-section { border-top: 1px solid var(--studio-border); margin-top: 18px; padding-top: 18px; }
.studio-context-section h3 { font-size: 0.74rem; letter-spacing: 0.1em; margin: 0 0 10px; text-transform: uppercase; }
.plm-studio-activity-snapshot { display: grid; gap: 10px; }
.plm-studio-activity-snapshot article { background: rgba(255, 255, 255, 0.028); border: 1px solid var(--studio-border); border-radius: 14px; padding: 11px; }
.plm-studio-activity-snapshot p { color: var(--studio-text); margin: 0 0 5px; }
.plm-studio-activity-snapshot time { color: var(--studio-muted); font-size: 0.72rem; }
.studio-context-actions { display: grid; gap: 8px; }
.studio-context-actions a { border: 1px solid var(--studio-border); border-radius: 12px; color: var(--studio-text); padding: 10px 12px; text-decoration: none; }
.studio-context-actions a:hover, .studio-context-actions a:focus-visible { background: var(--studio-accent-soft); border-color: var(--studio-border-bright); }
.studio-inspector-close, .studio-mobile-nav { display: none; }

@media (max-width: 1240px) {
  .plm-studio-spatial { --studio-inspector-size: 0px; }
  .plm-studio-spatial .dashboard-layout { grid-template-columns: var(--studio-rail-size) minmax(0, 1fr); }
  .studio-context-panel {
    bottom: 14px;
    grid-column: auto;
    max-height: calc(100vh - 28px);
    max-width: min(390px, calc(100vw - 28px));
    position: fixed;
    right: 14px;
    top: 14px;
    transform: translateX(calc(100% + 30px));
    transition: transform 220ms ease;
    width: 100%;
    z-index: 100;
  }
  .studio-context-panel.is-open { transform: translateX(0); }
  .studio-inspector-close { display: inline-flex; }
}

@media (max-width: 1023px) {
  .plm-studio-spatial .plm-studio-topbar { grid-template-columns: auto auto minmax(0, 1fr) auto; }
  .plm-studio-spatial .plm-studio-topbar-brand strong, .studio-workspace-context { display: none; }
  .studio-workspace-select { max-width: 210px; }
  .plm-studio-spatial .dashboard-layout { display: block; padding: 94px 14px 88px; }
  .plm-studio-spatial .dashboard-main { width: 100%; }
  .plm-studio-spatial .dashboard-sidebar {
    height: 100%;
    inset: 0 auto 0 0;
    max-width: min(320px, calc(100vw - 36px));
    padding: 18px 14px;
    transform: translateX(calc(-100% - 20px));
    transition: transform 220ms ease;
    width: 100%;
    z-index: 110;
  }
  .plm-studio-spatial .dashboard-sidebar.is-open { transform: translateX(0); }
  .plm-studio-spatial .dashboard-sidebar-brand { justify-content: flex-start; }
  .plm-studio-spatial .dashboard-sidebar-brand-copy,
  .plm-studio-spatial .dashboard-sidebar-intro,
  .plm-studio-spatial .dashboard-sidebar-profile-copy { display: block; }
  .plm-studio-spatial .dashboard-sidebar nav a {
    flex-direction: row;
    font-size: 0.83rem;
    justify-content: flex-start;
    min-height: 42px;
    padding: 8px 12px;
    text-align: left;
  }
  .plm-studio-spatial .dashboard-sidebar-profile { gap: 9px; justify-content: flex-start; }
  .studio-mobile-nav {
    align-items: center;
    backdrop-filter: blur(18px);
    background: rgba(12, 16, 22, 0.94);
    border: 1px solid var(--studio-border);
    border-radius: 19px;
    bottom: max(12px, env(safe-area-inset-bottom));
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.42);
    display: grid;
    gap: 3px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    left: 14px;
    padding: 6px;
    position: fixed;
    right: 14px;
    z-index: 70;
  }
  .studio-mobile-nav a, .studio-mobile-nav button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 12px;
    color: var(--studio-muted);
    display: flex;
    font: inherit;
    font-size: 0.66rem;
    justify-content: center;
    min-height: 44px;
    padding: 5px 3px;
    text-decoration: none;
  }
  .studio-mobile-nav a.is-active,
  .studio-mobile-nav a:hover,
  .studio-mobile-nav a:focus-visible,
  .studio-mobile-nav button:focus-visible { background: var(--studio-accent-soft); color: #e5faff; }
}

@media (max-width: 680px) {
  .plm-studio-spatial .plm-studio-topbar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    height: 62px;
    inset: 10px 10px auto;
    padding: 8px;
  }
  .plm-studio-spatial .plm-studio-topbar-brand { justify-content: center; }
  .studio-workspace-select, .studio-workspace-search,
  .studio-profile-button > span:not(.studio-profile-avatar) { display: none; }
  .studio-profile-button { padding: 5px; width: 42px; }
  .plm-studio-spatial .dashboard-layout { padding: 82px 10px 88px; }
  .plm-studio-spatial .dashboard-welcome, .plm-studio-spatial .dashboard-panel { border-radius: 20px; }
  .plm-studio-spatial .dashboard-grid, .plm-studio-spatial .dashboard-overview-grid { gap: 11px; }
  .studio-context-panel {
    border-radius: 22px 22px 0 0;
    bottom: 0;
    left: 0;
    max-height: min(82vh, 720px);
    max-width: none;
    right: 0;
    top: auto;
    transform: translateY(calc(100% + 18px));
  }
  .studio-context-panel.is-open { transform: translateY(0); }
  .studio-mobile-nav { bottom: max(8px, env(safe-area-inset-bottom)); left: 8px; right: 8px; }
}

@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
  .plm-studio-spatial .plm-studio-topbar,
  .plm-studio-spatial .dashboard-sidebar,
  .studio-context-panel,
  .studio-mobile-nav { background: #10151c; }
}

@media (prefers-reduced-motion: reduce) {
  .plm-studio-spatial .dashboard-section { animation: none; }
  .plm-studio-spatial .dashboard-sidebar, .studio-context-panel { transition: none; }
}

/* PLM Studio mobile shell hardening.
   This final layer binds the authenticated dashboard markup to one responsive
   header/drawer model and intentionally supersedes the older overlapping rules. */
.plm-studio-skip-link {
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  transform: none;
  transition: none;
}

.plm-studio-skip-link:focus,
.plm-studio-skip-link:focus-visible {
  top: calc(8px + env(safe-area-inset-top));
  left: calc(8px + env(safe-area-inset-left));
  width: auto;
  height: auto;
  margin: 0;
  padding: 10px 14px;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
}

.plm-studio-header-utility { display: contents; }
.plm-studio-mobile-tools,
.plm-studio-search-close { display: none; }
.plm-studio-workspace-selector { min-width: 0; }
.plm-studio-workspace-selector label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.plm-studio-spatial .studio-workspace-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}
.plm-studio-spatial .studio-workspace-search::before { content: none; }
.plm-studio-spatial .studio-workspace-search > svg {
  position: absolute;
  z-index: 1;
  left: 13px;
  width: 18px;
  height: 18px;
  color: var(--studio-muted);
  pointer-events: none;
}
.plm-studio-spatial .studio-workspace-search input { min-width: 0; }
.plm-studio-spatial .studio-profile-menu {
  right: 12px;
  top: calc(100% + 10px);
  width: min(280px, calc(100vw - 28px));
}
.plm-studio-spatial .studio-profile-menu > strong,
.plm-studio-spatial .studio-profile-menu > span {
  display: block;
  min-width: 0;
  padding: 8px 10px 4px;
  overflow-wrap: anywhere;
}
.plm-studio-spatial .studio-profile-menu > span {
  padding-top: 0;
  padding-bottom: 10px;
  color: var(--studio-muted);
  font-size: 0.75rem;
}
.plm-studio-spatial .dashboard-sidebar nav a::before { content: none !important; }
.plm-studio-bottom-nav { display: none !important; }

@media (max-width: 1023px) {
  .plm-studio-body.studio-overlay-open,
  .plm-studio-body.studio-nav-open { overflow: hidden; }

  .plm-studio-spatial .plm-studio-topbar {
    position: sticky;
    z-index: 80;
    top: 0;
    inset: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 10px calc(12px + env(safe-area-inset-left));
    gap: 8px;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    grid-template-areas:
      "menu brand actions"
      "utility utility utility"
      "search search search"
      "profile profile profile";
    border: 0;
    border-bottom: 1px solid var(--studio-border);
    border-radius: 0;
    background: rgba(7, 10, 14, 0.97);
    box-shadow: 0 10px 32px rgba(0, 0, 0, 0.24);
    transform: none;
  }

  .plm-studio-spatial .plm-studio-menu-button {
    grid-area: menu;
    display: inline-flex;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    justify-self: start;
  }

  .plm-studio-spatial .plm-studio-topbar-brand {
    grid-area: brand;
    width: min-content;
    max-width: 100%;
    min-width: 0;
    justify-self: start;
    overflow: hidden;
  }
  .plm-studio-spatial .plm-studio-topbar-brand img {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
  }
  .plm-studio-spatial .plm-studio-brand-copy {
    min-width: 0;
    overflow: hidden;
  }
  .plm-studio-spatial .plm-studio-topbar-brand strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .plm-studio-spatial .plm-studio-topbar-brand small { display: none; }

  .plm-studio-spatial .plm-studio-header-actions {
    grid-area: actions;
    width: 44px;
    min-width: 44px;
    justify-self: end;
  }
  .plm-studio-spatial #studioInspectorToggle { display: none; }
  .plm-studio-spatial .studio-profile-button {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 6px;
    justify-content: center;
  }
  .plm-studio-spatial .studio-profile-button > b {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .plm-studio-spatial .plm-studio-header-utility {
    grid-area: utility;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 8px;
    width: 100%;
    min-width: 0;
  }
  .plm-studio-spatial .studio-workspace-select {
    width: 100%;
    max-width: none;
    min-width: 0;
  }
  .plm-studio-spatial .studio-workspace-select select {
    width: 100%;
    min-width: 0;
    height: 44px;
    padding-inline: 12px 34px;
    text-overflow: ellipsis;
  }
  .plm-studio-spatial .plm-studio-mobile-tools {
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .plm-studio-spatial .plm-studio-mobile-tools > * {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
  }

  .plm-studio-spatial .studio-workspace-search {
    grid-area: search;
    display: none;
    grid-template-columns: 22px minmax(0, 1fr) 44px;
    align-items: center;
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 2px 2px 2px 12px;
    border: 1px solid var(--studio-border-bright);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    box-shadow: inset 0 0 22px rgba(53, 197, 255, 0.04);
  }
  .plm-studio-spatial .studio-workspace-search.is-open { display: grid; }
  .plm-studio-spatial .studio-workspace-search[aria-hidden="true"] { display: none; }
  .plm-studio-spatial .studio-workspace-search > svg {
    position: static;
    width: 18px;
    height: 18px;
  }
  .plm-studio-spatial .studio-workspace-search input {
    height: 44px;
    min-width: 0;
    padding: 0 10px;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .plm-studio-spatial .plm-studio-search-close {
    display: inline-flex;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
  }

  .plm-studio-spatial .studio-workspace-context { display: none; }
  .plm-studio-spatial .studio-profile-menu {
    grid-area: profile;
    position: static;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: min(50dvh, 340px);
    margin: 0;
    overflow-y: auto;
    border-radius: 14px;
  }
  .plm-studio-spatial .studio-profile-menu:not([hidden]) { display: grid; }
  .plm-studio-spatial .studio-profile-menu a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  .plm-studio-spatial .dashboard-layout,
  .plm-studio-body .dashboard-workspace {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: none;
    min-height: calc(100dvh - 110px);
    margin: 0;
    padding: 0;
  }

  .plm-studio-spatial .dashboard-sidebar {
    position: fixed;
    z-index: 92;
    inset: 0 auto 0 0;
    width: min(326px, calc(100vw - 36px));
    max-width: calc(100vw - 36px);
    height: 100dvh;
    min-height: 0;
    padding: calc(12px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));
    overflow-y: auto;
    border: 0;
    border-right: 1px solid var(--studio-border-bright);
    border-radius: 0 22px 22px 0;
    background: #0c1016;
    box-shadow: 22px 0 60px rgba(0, 0, 0, 0.52);
    transform: translateX(-105%);
    visibility: hidden;
    transition: transform 180ms ease, visibility 180ms ease;
  }
  .plm-studio-spatial .dashboard-sidebar.is-open {
    transform: translateX(0);
    visibility: visible;
  }
  .plm-studio-spatial .dashboard-sidebar nav {
    display: grid;
    overflow: visible;
    padding: 0;
  }
  .plm-studio-spatial .dashboard-sidebar nav a {
    flex: none;
    min-height: 44px;
  }
  .plm-studio-spatial .plm-studio-sidebar-head { display: flex; }
  .plm-studio-spatial .plm-studio-sidebar-close {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
  .plm-studio-spatial .plm-studio-sidebar-foot a { min-height: 44px; }

  .plm-studio-spatial .plm-studio-nav-backdrop {
    position: fixed;
    z-index: 88;
    inset: 0;
    display: block;
    background: rgba(0, 0, 0, 0.68);
  }

  .plm-studio-spatial .dashboard-main {
    display: grid;
    grid-column: auto;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: clamp(14px, 4vw, 24px) clamp(12px, 4vw, 24px) calc(44px + env(safe-area-inset-bottom));
    gap: 14px;
  }
  .plm-studio-spatial .dashboard-main > *,
  .plm-studio-spatial .dashboard-section,
  .plm-studio-spatial .dashboard-section > *,
  .plm-studio-spatial .dashboard-top-panel > *,
  .plm-studio-spatial .dashboard-content-grid > *,
  .plm-studio-spatial .dashboard-stat-grid > * {
    min-width: 0;
    max-width: 100%;
  }
  .plm-studio-spatial .dashboard-top-panel {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin: 0 0 14px;
    padding: clamp(18px, 5vw, 28px);
    border-radius: 22px;
  }
  .plm-studio-spatial .dashboard-top-panel h1 {
    max-width: 100%;
    margin-top: 10px;
    font-size: clamp(2rem, 8vw, 3.25rem);
    line-height: 1.02;
    overflow-wrap: anywhere;
  }
  .plm-studio-spatial .dashboard-top-panel p,
  .plm-studio-spatial .dashboard-stat-card p,
  .plm-studio-spatial .dashboard-panel :where(p, a, span, strong) {
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .plm-studio-spatial .plm-studio-title-row {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 12px;
  }
  .plm-studio-spatial .plm-studio-secure-status { white-space: normal; }
  .plm-studio-spatial .plm-studio-quick-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
  .plm-studio-spatial .plm-studio-quick-actions > *,
  .plm-studio-spatial .plm-studio-identity-actions > * {
    min-height: 44px;
  }

  .plm-studio-spatial .dashboard-identity-card {
    width: 100%;
    min-width: 0;
    padding: 16px;
    border-radius: 18px;
  }
  .plm-studio-spatial .plm-studio-identity-head {
    align-items: center;
    flex-wrap: wrap;
  }
  .plm-studio-spatial .plm-studio-identity-head a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-block: -8px;
  }
  .plm-studio-spatial .dashboard-user-line,
  .plm-studio-spatial .dashboard-user-line strong {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .plm-studio-spatial .plm-studio-identity-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .plm-studio-spatial .dashboard-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .plm-studio-spatial .dashboard-stat-card {
    width: 100%;
    min-width: 0;
    min-height: 132px;
    padding: 17px;
    border-radius: 18px;
  }
  .plm-studio-spatial .dashboard-stat-card strong {
    max-width: 100%;
    font-size: clamp(1.25rem, 5vw, 2rem);
    overflow-wrap: anywhere;
  }
  .plm-studio-spatial .dashboard-content-grid,
  .plm-studio-spatial .dashboard-section-grid,
  .plm-studio-spatial .dashboard-two-column {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  .plm-studio-spatial .dashboard-panel,
  .plm-studio-spatial .dashboard-panel-large,
  .plm-studio-spatial .dashboard-section-grid > * {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    padding: 17px;
    border-radius: 18px;
  }
  .plm-studio-spatial .dashboard-workspace :where(input, select, textarea, button, .btn) {
    max-width: 100%;
  }

  .plm-studio-spatial .studio-context-panel { display: none; }
  .plm-studio-spatial .plm-studio-connection {
    top: calc(116px + env(safe-area-inset-top));
    right: calc(12px + env(safe-area-inset-right));
    left: calc(12px + env(safe-area-inset-left));
    max-width: none;
  }
}

@media (max-width: 680px) {
  .plm-studio-spatial .dashboard-main {
    padding-inline: clamp(10px, 3.5vw, 16px);
  }
  .plm-studio-spatial .plm-studio-quick-actions,
  .plm-studio-spatial .plm-studio-identity-actions,
  .plm-studio-spatial .dashboard-stat-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .plm-studio-spatial .plm-studio-quick-actions > *,
  .plm-studio-spatial .plm-studio-identity-actions > * { width: 100%; }
  .plm-studio-spatial .dashboard-top-panel { padding: 18px; }
  .plm-studio-spatial .dashboard-top-panel h1 { font-size: clamp(1.9rem, 10vw, 2.7rem); }
  .plm-studio-spatial .dashboard-stat-card { min-height: 118px; padding: 16px; }
  .plm-studio-spatial .plm-studio-system-notice {
    align-items: stretch;
    flex-direction: column;
  }
  .plm-studio-spatial .plm-studio-system-notice button {
    width: 100%;
    min-height: 44px;
  }
}

@media (max-width: 390px) {
  .plm-studio-spatial .plm-studio-topbar {
    padding-right: calc(8px + env(safe-area-inset-right));
    padding-left: calc(8px + env(safe-area-inset-left));
    column-gap: 6px;
  }
  .plm-studio-spatial .plm-studio-topbar-brand { gap: 7px; }
  .plm-studio-spatial .plm-studio-topbar-brand strong { font-size: 0.78rem; }
  .plm-studio-spatial .dashboard-main { padding-inline: 10px; }
  .plm-studio-spatial .dashboard-top-panel,
  .plm-studio-spatial .dashboard-identity-card,
  .plm-studio-spatial .dashboard-stat-card,
  .plm-studio-spatial .dashboard-panel { border-radius: 16px; }
}

@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
  .plm-studio-spatial .plm-studio-topbar,
  .plm-studio-spatial .studio-profile-menu,
  .plm-studio-spatial .dashboard-sidebar { background: #0c1016; }
}

@media (prefers-reduced-motion: reduce) {
  .plm-studio-spatial .dashboard-sidebar,
  .plm-studio-spatial .plm-studio-nav-backdrop { transition: none; }
}
@media (max-width: 1023px) {
  .plm-studio-body > .dashboard-page > .dashboard-access-section {
    padding-top: 0;
  }
}

/* PLM Studio shell and surface polish.
   Keep icons legible and give authenticated workspace containers one consistent rhythm. */
.plm-studio-body .plm-studio-icon-button,
.plm-studio-body .plm-studio-topbar-link { color: #eef8fc; }

.plm-studio-body .plm-studio-nav-icon { color: #f4f8fb; opacity: 0.9; }

.plm-studio-body :is(.plm-studio-nav-icon, .plm-studio-icon-button, .plm-studio-topbar-link) svg {
  color: inherit;
  fill: currentColor;
}

.plm-studio-body :is(.plm-studio-nav-icon, .plm-studio-icon-button, .plm-studio-topbar-link) svg path { fill: currentColor; }

.plm-studio-body .dashboard-sidebar-nav :is(a, button):hover .plm-studio-nav-icon,
.plm-studio-body .dashboard-sidebar-nav :is(a, button):focus-visible .plm-studio-nav-icon,
.plm-studio-body .dashboard-sidebar-nav :is(a, button).is-active .plm-studio-nav-icon {
  color: #ffffff;
  opacity: 1;
}

.plm-studio-spatial .dashboard-sidebar nav a::before { content: none; }

.plm-studio-spatial .studio-workspace-search::before {
  top: 13px;
  left: 14px;
  width: 12px;
  height: 12px;
  border: 2px solid #dce8ee;
  border-radius: 50%;
  color: transparent;
  content: '';
}

.plm-studio-spatial .studio-workspace-search::after {
  position: absolute;
  top: 26px;
  left: 26px;
  width: 7px;
  height: 2px;
  border-radius: 999px;
  background: #dce8ee;
  content: '';
  pointer-events: none;
  transform: rotate(45deg);
  transform-origin: left center;
}

.plm-studio-body :is(.dashboard-section, .account-section).is-active {
  display: grid;
  gap: 20px;
}

.plm-studio-body .dashboard-section-head,
.plm-studio-body .dashboard-top-panel { margin-bottom: 0; }

.plm-studio-body :is(.dashboard-panel, .dashboard-record-card, .dashboard-form, .account-card) { border-radius: 18px; }
.plm-studio-body .dashboard-form { gap: 18px; }
.plm-studio-body .dashboard-form :is(input, select, textarea) { border-radius: 10px; }

.plm-studio-spatial {
  --studio-radius: 18px;
  --studio-shell-gap: 20px;
}

.plm-studio-spatial .dashboard-layout { padding: 94px 18px 28px; }
.plm-studio-spatial .dashboard-main { gap: 20px; }

.plm-studio-spatial .dashboard-top-panel {
  grid-template-columns: minmax(0, 1.35fr) minmax(270px, 0.75fr);
  gap: clamp(24px, 3vw, 34px);
  padding: clamp(26px, 3vw, 38px);
  border-radius: 22px;
}

.plm-studio-spatial .plm-studio-page-intro { min-width: 0; }

.plm-studio-spatial .dashboard-top-panel h1 {
  max-width: 680px;
  font-size: clamp(2.65rem, 4.5vw, 4rem);
  line-height: 0.98;
  text-wrap: balance;
}

.plm-studio-spatial .dashboard-top-panel > .dashboard-identity-card {
  align-self: stretch;
  padding: 8px 0 8px clamp(22px, 2.6vw, 30px);
  border: 0;
  border-left: 1px solid var(--studio-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.plm-studio-spatial .plm-studio-identity-actions {
  margin-top: auto;
  padding-top: 14px;
}

.plm-studio-spatial .plm-studio-quick-actions { margin: 22px 0 0; }

.plm-studio-spatial .dashboard-stat-grid {
  grid-template-columns: repeat(auto-fit, minmax(172px, 1fr));
  gap: 14px;
}

.plm-studio-spatial .dashboard-stat-card {
  min-width: 0;
  min-height: 154px;
  gap: 12px;
  padding: 20px;
  border-radius: 18px;
}

.plm-studio-spatial .dashboard-stat-card span { line-height: 1.35; }

.plm-studio-spatial .dashboard-stat-card strong {
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.12;
  overflow-wrap: normal;
  word-break: normal;
}

.plm-studio-spatial .dashboard-stat-card p { margin: 0; }

.plm-studio-spatial .dashboard-content-grid,
.plm-studio-spatial .dashboard-section-grid,
.plm-studio-spatial .dashboard-two-column { gap: 16px; }

.plm-studio-spatial .dashboard-panel { border-radius: 18px; }

.plm-studio-inspector-head,
.plm-studio-inspector-label {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
}

.plm-studio-inspector-head > div,
.plm-studio-health-card > div { min-width: 0; }

.plm-studio-inspector-head span,
.plm-studio-inspector-kicker {
  display: block;
  color: var(--studio-muted);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.plm-studio-inspector-head h2 { margin: 5px 0 0; font-size: 1.12rem; }

.plm-studio-health-card {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  margin-top: 18px;
  padding: 13px;
  border: 1px solid var(--studio-border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.028);
}

.plm-studio-health-dot {
  width: 8px;
  height: 8px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--studio-green);
  box-shadow: 0 0 0 4px rgba(71, 247, 165, 0.1);
}

.plm-studio-health-card :is(strong, small) { display: block; overflow-wrap: anywhere; }
.plm-studio-health-card strong { color: var(--studio-text); font-size: 0.82rem; }

.plm-studio-health-card small {
  margin-top: 4px;
  color: var(--studio-muted);
  font-size: 0.76rem;
  line-height: 1.45;
}

.plm-studio-inspector-section {
  display: grid;
  gap: 11px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--studio-border);
}

.plm-studio-inspector-label { align-items: center; color: var(--studio-muted); font-size: 0.74rem; }
.plm-studio-inspector-label a { color: var(--studio-accent); text-decoration: none; }
.plm-studio-inspector-section :is(h3, p) { margin: 0; }
.plm-studio-inspector-section h3 { font-size: 1rem; line-height: 1.35; }
.plm-studio-inspector-section p { color: var(--studio-muted); font-size: 0.84rem; line-height: 1.55; }
.plm-studio-inspector-section .cms-empty-state { min-height: 126px; padding: 18px 14px; }

@media (min-width: 901px) and (max-width: 1420px) {
  .plm-studio-spatial { --studio-inspector-size: 0px; }
  .plm-studio-spatial .dashboard-layout { grid-template-columns: var(--studio-rail-size) minmax(0, 1fr); }

  .plm-studio-spatial .studio-context-panel {
    position: fixed;
    z-index: 100;
    top: 14px;
    right: 14px;
    bottom: 14px;
    grid-column: auto;
    width: min(360px, calc(100vw - 28px));
    max-width: calc(100vw - 28px);
    max-height: calc(100vh - 28px);
    transform: translateX(calc(100% + 30px));
    transition: transform 220ms ease;
  }

  .plm-studio-spatial .studio-context-panel.is-open { transform: translateX(0); }
  .plm-studio-spatial .studio-inspector-close { display: inline-flex; }
}

@media (max-width: 1023px) {
  .plm-studio-spatial .dashboard-top-panel { grid-template-columns: minmax(0, 1fr); }
  .plm-studio-spatial .dashboard-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .plm-studio-spatial .dashboard-top-panel > .dashboard-identity-card {
    padding: 22px 0 0;
    border-top: 1px solid var(--studio-border);
    border-left: 0;
  }

  .plm-studio-spatial .dashboard-top-panel h1 { font-size: clamp(2.2rem, 8vw, 3.4rem); }
}

@media (max-width: 680px) {
  .plm-studio-body :is(.dashboard-section, .account-section).is-active { gap: 14px; }
  .plm-studio-spatial .dashboard-top-panel { gap: 20px; padding: 20px; }
  .plm-studio-spatial .dashboard-stat-grid { grid-template-columns: minmax(0, 1fr); }
  .plm-studio-spatial .dashboard-stat-card { min-height: 0; }
}

/* PLM Studio compact rail alignment.
   Mirrors the proportions and row rhythm of the collapsed PLM OS sidebar. */
.plm-studio-spatial { --studio-rail-size: 76px; }

.plm-studio-spatial .dashboard-sidebar {
  gap: 10px;
  padding: 10px 7px;
  border-radius: 18px;
}

.plm-studio-spatial .dashboard-sidebar nav {
  align-content: start;
  grid-auto-rows: max-content;
  gap: 4px;
}

.plm-studio-spatial .plm-studio-nav-label { display: none; }

.plm-studio-spatial .dashboard-sidebar nav a {
  position: relative;
  min-height: 48px;
  gap: 4px;
  padding: 6px 2px;
  border-radius: 10px;
  color: rgba(247, 251, 255, 0.72);
  font-size: 0.61rem;
  line-height: 1.1;
}

.plm-studio-spatial .dashboard-sidebar nav a:hover,
.plm-studio-spatial .dashboard-sidebar nav a:focus-visible,
.plm-studio-spatial .dashboard-sidebar nav a.is-active {
  border-color: transparent;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.065);
  box-shadow: none;
}

.plm-studio-spatial .dashboard-sidebar nav a.is-active::before {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 0;
  width: 2px;
  border-radius: 999px;
  background: var(--studio-accent);
  box-shadow: 0 0 14px rgba(53, 197, 255, 0.6);
  content: '';
}

.plm-studio-spatial .plm-studio-nav-icon,
.plm-studio-spatial .plm-studio-nav-icon svg {
  width: 18px;
  height: 18px;
}

.plm-studio-spatial .plm-studio-sidebar-foot {
  width: 100%;
  gap: 4px;
  padding-top: 10px;
}

.plm-studio-spatial .plm-studio-sidebar-foot a {
  width: 100%;
  min-height: 42px;
  padding: 0;
  border-radius: 10px;
}

.plm-studio-spatial .plm-studio-edit-site {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--studio-muted);
  font-size: 0.62rem;
  text-align: center;
}

.plm-studio-spatial .plm-studio-edit-site:hover,
.plm-studio-spatial .plm-studio-edit-site:focus-visible,
.plm-studio-spatial .plm-studio-rail-profile:hover,
.plm-studio-spatial .plm-studio-rail-profile:focus-visible {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.065);
}

.plm-studio-spatial .plm-studio-rail-profile {
  display: grid;
  place-items: center;
  color: var(--studio-text);
  text-decoration: none;
}

.plm-studio-spatial .plm-studio-rail-profile > span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(83, 213, 255, 0.38);
  border-radius: 8px;
  color: #e9faff;
  background: linear-gradient(145deg, #287c9f, #142a38);
  font-size: 0.66rem;
  font-weight: 800;
}

.plm-studio-spatial .plm-studio-rail-profile > b {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.plm-studio-spatial .plm-studio-rail-profile > small { display: none; }

@media (max-width: 1023px) {
  .plm-studio-spatial .dashboard-sidebar {
    gap: 12px;
    padding: calc(12px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));
    border-radius: 0 22px 22px 0;
  }

  .plm-studio-spatial .plm-studio-nav-label {
    display: block;
    margin: 4px 10px 6px;
  }

  .plm-studio-spatial .dashboard-sidebar nav a {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    min-height: 48px;
    gap: 8px;
    padding: 5px 9px;
    border-radius: 10px;
    font-size: 0.86rem;
    text-align: left;
  }

  .plm-studio-spatial .dashboard-sidebar nav a .plm-studio-nav-icon { justify-self: center; }

  .plm-studio-spatial .plm-studio-sidebar-foot a {
    min-height: 48px;
    padding: 5px 9px;
  }

  .plm-studio-spatial .plm-studio-edit-site {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    font-size: 0.82rem;
    text-align: left;
  }

  .plm-studio-spatial .plm-studio-rail-profile {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 8px;
    text-align: left;
  }

  .plm-studio-spatial .plm-studio-rail-profile > span {
    grid-row: 1 / 3;
    justify-self: center;
  }

  .plm-studio-spatial .plm-studio-rail-profile > b {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip-path: none;
    white-space: normal;
  }

  .plm-studio-spatial .plm-studio-rail-profile > small {
    display: block;
    color: var(--studio-muted);
    font-size: 0.7rem;
  }
}
