/* Customer library and account surfaces, measured against Replit's light UI. */
.dashboard-body .studio-shell .dashboard {
  width: 100%; max-width: none; min-width: 0; margin: 0;
  padding: 28px clamp(24px, 6.111vw, 88px) 64px;
}
.dashboard-body .dashboard-head { align-items: center; gap: 16px; margin-bottom: 8px; }
.dashboard-body .dashboard-head h1 { margin: 0; font-size: 24px; line-height: 32px; font-weight: 500; letter-spacing: -.35px; }
.dashboard-body .dashboard-head :is(.studio-eyebrow,p) { display: none; }
.dashboard-body .dashboard-head .primary { min-height: 32px; padding: 6px 10px; font-size: 13px; }
.dashboard-body .library-tabs { display: flex; align-items: stretch; gap: 8px; height: 40px; border-bottom: 1px solid var(--repl-border); margin-bottom: 32px; }
.dashboard-body .library-tabs > :is(a,button,span) { display: inline-flex; align-items: center; gap: 7px; padding: 0 8px; font-size: 14px; color: var(--repl-secondary); border-bottom: 1px solid transparent; white-space: nowrap; }
.dashboard-body .library-tabs > :is(.active,[aria-selected="true"],[aria-current]) { color: var(--repl-text); border-bottom-color: var(--repl-text); }
.dashboard-body .library-tabs > :is(a,button):hover { background: var(--repl-hover); }
.dashboard-body .library-tabs svg { width: 16px; height: 16px; }
.dashboard-body .project-controls { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; min-width: 0; }
.dashboard-body .project-search { width: 190px; max-width: 100%; min-width: 0; height: 32px; padding: 0 10px; gap: 8px; border: 1px solid var(--repl-border); border-radius: 6px; background: var(--repl-panel); }
.dashboard-body .project-search svg { color: var(--repl-secondary); width: 16px; height: 16px; flex-shrink: 0; order: 1; }
.dashboard-body .project-search input { min-width: 0; padding: 0; height: 30px; font-size: 13px; color: var(--repl-text); }
.dashboard-body .project-search input::placeholder { color: var(--repl-muted); }
.dashboard-body #projectStatusFilter { min-width: 0; max-width: 190px; height: 32px; padding: 0 26px 0 8px; border: 1px solid transparent; border-radius: 6px; color: var(--repl-secondary); background-color: transparent; font-size: 13px; }
.dashboard-body #projectStatusFilter:hover { background-color: var(--repl-hover); }
.dashboard-body #projectCount { margin-left: auto; color: var(--repl-muted); font-size: 12px; white-space: nowrap; }
.dashboard-body .library-view-toggle { display: inline-flex; align-items: center; padding: 1px; gap: 1px; height: 32px; background: var(--repl-selected); border-radius: 6px; }
.dashboard-body .library-view-toggle button { display: grid; place-items: center; min-height: 30px; width: 32px; padding: 0; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--repl-muted); }
.dashboard-body .library-view-toggle button:is(.active,[aria-pressed="true"]) { background: var(--repl-panel); border-color: var(--repl-border); color: var(--repl-text); }
.dashboard-body .library-view-toggle button:hover { color: var(--repl-text); background: var(--repl-control); }
.dashboard-body .library-view-toggle svg { width: 16px; height: 16px; }
.dashboard-body .project-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.dashboard-body .project-tile { border: 1px solid var(--repl-border); background: var(--repl-sidebar); border-radius: 12px; box-shadow: none; transition: border-color .15s; }
.dashboard-body .project-tile:hover { border-color: var(--repl-border-strong); box-shadow: none; transform: none; }
.dashboard-body .project-tile > a { min-height: 0; height: 100%; padding: 0; }
.dashboard-body .project-tile > a:hover { background: var(--repl-control); }
.dashboard-body .project-tile .project-cover { height: 184px; background: var(--repl-selected); border-bottom: 1px solid var(--repl-border); }
.dashboard-body .project-tile .project-monogram { display: grid; place-items: center; width: 64px; height: 64px; margin: 0; border: 1px solid #d3d1cb; border-radius: 8px; background: var(--repl-hover); color: var(--repl-secondary); font: 500 24px/1 var(--repl-font); }
.dashboard-body .project-revision { display: none; }
.dashboard-body .project-tile-content { min-height: 69px; padding: 12px; }
.dashboard-body .project-tile h2 { display: block; min-height: 0; margin: 0 0 5px; font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dashboard-body .project-meta { color: var(--repl-muted); font-size: 12px; line-height: 18px; justify-content: flex-start; gap: 9px; }
.dashboard-body .project-status { gap: 5px; }
.dashboard-body .project-status i { width: 5px; height: 5px; background: #9b7d27; }
.dashboard-body .project-status.published i { background: var(--repl-success); }
.dashboard-body .project-status.archived i { background: var(--repl-muted); }
.dashboard-body .project-open { display: none; }
.dashboard-body .project-tile .tile-menu { width: 30px; height: 30px; top: 8px; right: 8px; color: var(--repl-secondary); background: var(--repl-control); border: 1px solid transparent; border-radius: 6px; }
.dashboard-body .project-tile .tile-menu:hover { background: var(--repl-panel); border-color: var(--repl-border); }
.dashboard-body .project-tile .tile-menu svg { width: 17px; height: 17px; }
.dashboard-body .project-list[data-project-layout="list"] { grid-template-columns: minmax(0,1fr); gap: 8px; }
.dashboard-body .project-list[data-project-layout="list"] .project-tile { border-radius: 8px; }
.dashboard-body .project-list[data-project-layout="list"] .project-tile > a { display: flex; align-items: center; gap: 16px; min-height: 72px; padding: 10px 48px 10px 12px; }
.dashboard-body .project-list[data-project-layout="list"] .project-cover { width: 48px; height: 48px; flex-shrink: 0; border: 1px solid var(--repl-border); border-radius: 7px; }
.dashboard-body .project-list[data-project-layout="list"] .project-monogram { width: auto; height: auto; background: transparent; border: 0; font-size: 20px; }
.dashboard-body .project-list[data-project-layout="list"] .project-tile-content { flex: 1; min-width: 0; min-height: 0; padding: 0; }
.dashboard-body .project-list[data-project-layout="list"] .tile-menu { top: 20px; }
.dashboard-body .empty-state { min-height: 300px; border: 1px dashed var(--repl-border-strong); border-radius: 8px; background: transparent; }
.dashboard-body .empty-state > svg { color: var(--repl-muted); }
.dashboard-body .empty-state h2 { font-size: 20px; font-weight: 500; letter-spacing: -.3px; }
.dashboard-body .empty-state p { color: var(--repl-muted); font-size: 14px; line-height: 1.6; }

/* Account, project options, model settings, history, and publication dialogs. */
:is(.dashboard-body,.workspace-body,.ops-body) .dialog-backdrop { background: #18191b66; backdrop-filter: blur(3px); }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog { padding: 24px; border: 1px solid var(--repl-border); border-radius: 12px; background: var(--repl-panel); color: var(--repl-text); font: 14px/1.5 var(--repl-font); box-shadow: 0 16px 48px #18191b26; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog h2 { margin-bottom: 10px; font-size: 20px; font-weight: 500; line-height: 1.3; letter-spacing: -.3px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog-heading { gap: 16px; padding-bottom: 8px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog-heading .icon-button { margin: -4px -4px 0 0; flex-shrink: 0; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog p { color: var(--repl-muted); font-size: 14px; line-height: 1.6; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.primary,.secondary,.subtle) { min-height: 32px; padding: 6px 10px; font-size: 13px; border-radius: 6px; font-weight: 400; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .icon-button { width: 32px; height: 32px; color: var(--repl-secondary); border-radius: 6px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .icon-button:hover { background: var(--repl-hover); color: var(--repl-text); }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .field { gap: 7px; margin: 16px 0; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .field label { color: var(--repl-secondary); font-size: 13px; font-weight: 500; }
:is(.dashboard-body,.workspace-body,.ops-body) :is(.dialog,.ops-body) .field :is(input,textarea,select) { border: 1px solid var(--repl-border-strong); border-radius: 6px; padding: 8px 10px; background: #fcfcfc; color: var(--repl-text); font-size: 14px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(input,textarea,select):focus-visible { outline: 2px solid var(--repl-blue); outline-offset: 2px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.publish-option,.version-row,.account-password) { border-color: var(--repl-border); }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.publish-option,.version-row) strong { color: var(--repl-text); font-size: 14px; font-weight: 500; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.publish-option p,.version-row small) { color: var(--repl-muted); font-size: 13px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .publish-url { background: #e6f2ff; color: var(--repl-blue-text); border: 1px solid #c2ddf7; border-radius: 6px; padding: 10px 12px; font-size: 13px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.notice,.auth-preserve) { border: 1px solid var(--repl-border); border-radius: 6px; background: var(--repl-sidebar); color: var(--repl-secondary); font-size: 13px; line-height: 1.6; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .text-link { color: var(--repl-blue-text); }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.danger,p.error-copy,.error-copy) { color: var(--repl-error); }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .account-password summary { color: var(--repl-text); font-size: 14px; font-weight: 500; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .briefing-data pre { color: var(--repl-muted); }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog .admin-stats > div { background: var(--repl-sidebar); border-color: var(--repl-border); border-radius: 8px; }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.admin-stats span,.admin-table-wrap th) { color: var(--repl-muted); }
:is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.admin-table-wrap th,.admin-table-wrap td) { border-color: var(--repl-border); }

/* Administrative views share the same neutral product palette. */
.ops-body .home-nav { height: 48px; background: var(--repl-bg); border-color: var(--repl-border); }
.ops-body .ops-heading h1 { font-size: 28px; font-weight: 500; letter-spacing: -.5px; }
.ops-body .ops-eyebrow { color: var(--repl-muted); font-size: 12px; letter-spacing: 0; text-transform: none; }
.ops-body .ops-nav { background: var(--repl-sidebar); border-color: var(--repl-border); border-radius: 8px; }
.ops-body .ops-nav button { color: var(--repl-secondary); border-radius: 6px; min-height: 36px; padding: 8px 10px; font-weight: 400; }
.ops-body .ops-nav button:hover { color: var(--repl-text); background: var(--repl-hover); }
.ops-body .ops-nav button[aria-current] { background: var(--repl-control); color: var(--repl-text); font-weight: 500; }
.ops-body :is(.ops-card,.ops-metric,.ops-table-scroll) { background: var(--repl-panel); border-color: var(--repl-border); border-radius: 8px; }
.ops-body .ops-metric:hover { border-color: var(--repl-border-strong); box-shadow: none; }
.ops-body :is(.ops-metric > span,.ops-metric small,.ops-table td small) { color: var(--repl-muted); }
.ops-body :is(.ops-key-values > div,.ops-table td) { border-color: var(--repl-border); }
.ops-body .ops-table th { background: var(--repl-sidebar); color: var(--repl-muted); border-color: var(--repl-border); }
.ops-body .ops-table tbody tr:hover { background: var(--repl-control); }
.ops-body .ops-table details summary { color: var(--repl-blue-text); }
.ops-body .ops-badge.neutral { background: var(--repl-selected); color: var(--repl-muted); }
.ops-body .ops-badge.success { background: #e5f4e8; color: var(--repl-success); }
.ops-body .ops-badge.danger { background: #fce9e9; color: var(--repl-error); }
.ops-body .ops-ok { color: var(--repl-success); }
.ops-body :is(.ops-alerts,.ops-empty p.error-copy,.ops-error-detail p) { color: var(--repl-error); }
.ops-body .ops-empty { background: transparent; border-color: var(--repl-border-strong); border-radius: 8px; }
.ops-body :is(.ops-empty > svg,.ops-search svg) { color: var(--repl-muted); }
.ops-body .ops-audit-data { border-color: var(--repl-border); background: var(--repl-sidebar); color: var(--repl-secondary); }
.ops-body .ops-loading .spinner { border-color: var(--repl-border); border-top-color: var(--repl-blue); }
.ops-body :is(.ops-toolbar select,.ops-search input,.field input,.field select,.field textarea) { border-color: var(--repl-border-strong); background: #fcfcfc; color: var(--repl-text); border-radius: 6px; }
.ops-body :is(.ops-toolbar select,.ops-search input) { min-height: 36px; padding-block: 7px; }
.ops-body .ops-search svg { top: 9px; }
.ops-body .ops-task-count { background: var(--repl-control); border-color: var(--repl-border); border-radius: 6px; }

@media (max-width: 1199px) {
  .dashboard-body .studio-shell .dashboard { padding-inline: 28px; }
  .dashboard-body .project-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .dashboard-body .studio-shell .dashboard { padding: 24px 16px 40px; }
  .dashboard-body .dashboard-head { flex-direction: row; align-items: center; gap: 12px; margin-bottom: 8px; }
  .dashboard-body .dashboard-head h1 { font-size: 24px; line-height: 32px; }
  .dashboard-body .dashboard-head .primary { min-height: 36px; padding: 7px 9px; font-size: 12px; }
  .dashboard-body .library-tabs { margin-bottom: 20px; }
  .dashboard-body .project-controls { flex-direction: row; align-items: center; gap: 8px; }
  .dashboard-body .project-search { width: 100%; height: 40px; max-width: none; }
  .dashboard-body .project-search input { height: 38px; font-size: 16px; }
  .dashboard-body #projectStatusFilter { height: 36px; max-width: 150px; font-size: 13px; }
  .dashboard-body #projectCount { margin-left: auto; font-size: 11px; }
  .dashboard-body .library-view-toggle { height: 38px; }
  .dashboard-body .library-view-toggle button { width: 36px; min-height: 36px; }
  .dashboard-body .project-list { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .dashboard-body .project-tile .project-cover { height: 184px; }
  .dashboard-body .project-tile .tile-menu { width: 36px; height: 36px; }
  .dashboard-body .project-list[data-project-layout="list"] .project-cover { height: 48px; }
  .dashboard-body .project-list[data-project-layout="list"] .tile-menu { top: 17px; }
  :is(.dashboard-body,.workspace-body,.ops-body) .dialog-backdrop { padding: 12px; }
  :is(.dashboard-body,.workspace-body,.ops-body) .dialog { padding: 20px; border-radius: 12px; max-height: calc(100dvh - 24px); }
  :is(.dashboard-body,.workspace-body,.ops-body) .dialog h2 { font-size: 20px; }
  :is(.dashboard-body,.workspace-body,.ops-body) .dialog :is(.primary,.secondary,.subtle,.icon-button) { min-height: 36px; }
  :is(.dashboard-body,.workspace-body,.ops-body) .dialog .field :is(input,textarea,select) { font-size: 16px; }
  .ops-body .home-nav { height: 48px; }
}
