/* Main workspace: the same typography, controls and density as Cockpit.
   Keep long records reachable; constrain data regions instead of clipping content. */
.portal-page [hidden] { display: none !important; }
.portal-page { background: var(--cc-bg-section); }
.portal-page, .portal-page button, .portal-page input, .portal-page select,
.portal-page textarea, .portal-page h1, .portal-page h2, .portal-page h3,
.portal-page .card-title, .portal-page .table-wrap__head {
  font-family: var(--skin-font,var(--cc-font));
}
.portal-page .site-header { padding: 0 1.5rem; }
.portal-page .site-header__top { min-height: 64px; padding: 0; }
.portal-page:not(.has-side-rail) .cc-logo__img { height: 32px; width: auto; }
.portal-page .site-header__nav { padding: 0.2rem 0 0.45rem; gap: 0.35rem; }
.portal-page .nav-item { min-height: 34px; padding: 0.35rem 0.75rem; font-size: 0.82rem; }
.portal-page:not(.has-workspace-canvas) .content { max-width: 1480px; padding: 0.9rem 1.5rem 1rem; }
.portal-page .btn { min-height: 34px; padding: 0.45rem 0.8rem; border-radius: var(--skin-radius,8px); font-size: 0.82rem; }
.portal-page .btn-sm { min-height: 31px; padding: 0.34rem 0.65rem; font-size: 0.78rem; }
.portal-page :is(button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--cc-accent); outline-offset: 2px;
}
.portal-page .card, .portal-page .creative-panel, .portal-page .table-wrap {
  border-radius: var(--cc-radius); box-shadow: var(--cc-shadow);
}
.portal-page .card, .portal-page .creative-panel { padding: 0.95rem; margin-bottom: 0.75rem; }
.portal-page .card-title, .portal-page .card h2 { font-size: 1.08rem; line-height: 1.25; margin: 0 0 0.35rem; }
.portal-page .card-sub, .portal-page .field-help { font-size: 0.82rem; line-height: 1.45; margin: 0.25rem 0 0.65rem; }
.portal-page .banner { padding: 0.58rem 0.75rem; border-radius: var(--skin-radius,8px); font-size: 0.8rem; line-height: 1.4; margin-bottom: 0.65rem; }
.portal-page .admin-field { gap: 0.25rem; margin-bottom: 0; min-width: 0; }
.portal-page .admin-field > span, .portal-page .field > label { font-size: 0.68rem; letter-spacing: 0.04em; }
.portal-page input:not([type=checkbox]):not([type=radio]), .portal-page select, .portal-page textarea {
  min-height: 34px; padding: 0.45rem 0.6rem; border: 1px solid var(--cc-border);
  border-radius: var(--skin-radius,8px); font-size: 0.84rem; max-width: 100%; color: var(--cc-text); background: var(--cc-bg);
}
.portal-page input[type=checkbox], .portal-page input[type=radio] { width: auto; min-height: 0; margin: 0 0.35rem 0 0; accent-color: var(--cc-accent); }
.portal-page .form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.65rem 1rem; margin-bottom: 0.75rem; }
.portal-page fieldset.admin-field { display: block; }
.portal-page fieldset.admin-field label { display: flex; align-items: baseline; font-size: 0.82rem; line-height: 1.45; margin: 0.25rem 0; }
.portal-page fieldset.admin-field br { display: none; }
.portal-page .admin-field label { font-size: 0.82rem; line-height: 1.45; }
.portal-page .table, .portal-page table.data { font-size: 0.82rem; line-height: 1.35; width: 100%; }
.portal-page :is(.table, table.data) :is(th, td) { padding: 0.48rem 0.7rem; overflow-wrap: anywhere; }
.portal-page .table-wrap__head { padding: 0.7rem 0.9rem; font-size: 0.9rem; }
.portal-page .table-wrap { overflow: auto; }
.portal-page .table thead th { position: sticky; top: 0; z-index: 1; background: var(--cc-bg-subtle); }
.portal-page .client-admin-tabs { margin-top: 0.55rem; }
.portal-page .client-admin-tab, .portal-page .registry-filter { font-size: 0.78rem; min-height: 31px; padding: 0.34rem 0.65rem; }
.portal-page .client-admin-tab.is-active, .portal-page .registry-filter.is-active {
  color: var(--cc-accent); border-color: var(--cc-accent); background: var(--cc-accent-soft);
}
.portal-page .setup-steps { margin: 0.65rem 0; }
.portal-page .setup-step { padding: 0.55rem 0.7rem; text-align: left; }
.portal-page .setup-step .step-num { width: 22px; height: 22px; float: left; margin: 0 0.5rem 0 0; }
.portal-page .setup-step .step-label { font-size: 0.82rem; }
.portal-page .setup-step .step-hint { font-size: 0.74rem; margin-top: 0.25rem; }
.portal-page .advanced-panel summary { font-size: 0.82rem; cursor: pointer; }
.portal-page .advanced-panel[open] summary { margin-bottom: 0.75rem; }
.portal-page .knowledge-sub { display: none; }
.portal-page .knowledge-sub.active { display: block; }
.portal-page .split { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr); gap: 0.75rem; }
.portal-page .ask-input { display: block; width: 100%; min-height: 90px; margin: 0.5rem 0; resize: vertical; }
.portal-page .answer-box { padding: 0.95rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); background: var(--cc-bg); font-size: 0.84rem; overflow: auto; }
.portal-page .creative-overview { gap: 0.55rem; }
.portal-page .creative-overview__hero { padding: 0.75rem 1rem; margin: 0; }
.portal-page .creative-overview__title, .portal-page .hero h2 { font-size: 1.65rem; line-height: 1.2; margin-bottom: 0.4rem; }
.portal-page .creative-overview__lead, .portal-page .hero .lead { font-size: 0.9rem; line-height: 1.45; margin: 0; }
.portal-page .creative-overview__eyebrow { font-size: 0.68rem; margin-bottom: 0.35rem; }
.portal-page .creative-overview__actions { margin-top: 0.65rem; }
.portal-page .creative-overview__stats { gap: 0.65rem; margin: 0; }
.portal-page .creative-stat { padding: 0.65rem 0.9rem; display: flex; align-items: center; gap: 0.75rem; }
.portal-page .creative-stat__val { font-size: 1.4rem; margin: 0; }
.portal-page .creative-stat__val--sm { font-size: 1rem; }
.portal-page .creative-stat__lbl { font-size: 0.78rem; }
.portal-page .creative-overview__grid { gap: 0.75rem; }
.portal-page .creative-panel__title { font-size: 0.92rem; margin-bottom: 0.4rem; }
.portal-page .creative-panel summary { cursor: pointer; }
.portal-page .creative-overview .creative-panel { margin-bottom: 0; }
.portal-page .creative-overview__eyebrow, .portal-page .creative-stat__val { font-family: var(--skin-font,var(--cc-font)); }
.portal-page .client-admin-panel > .card:last-child { margin-bottom: 0; }
.portal-page .creative-panel__copy, .portal-page .creative-workflow { font-size: 0.8rem; line-height: 1.4; }
.portal-page .creative-workflow { gap: 0.4rem; }
.portal-page .creative-quick-actions { gap: 0.4rem; margin-top: 0.6rem; }
.portal-page .creative-action-card { padding: 0.55rem; }
.portal-page .agent-catalog { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.65rem; }
.portal-page .agent-tile { padding: 0.8rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); background: var(--cc-bg); }
.portal-page .agent-id { font-size: 0.65rem; font-weight: 700; color: var(--cc-accent); }
.portal-page .agent-tile h3 { font-size: 0.92rem; margin: 0.4rem 0; }
.portal-page .agent-tile p { font-size: 0.8rem; line-height: 1.4; margin: 0.35rem 0; }
.portal-page .agent-tile small { display: block; font-size: 0.72rem; color: var(--cc-muted); }
.portal-page .workbench-pagination { display: flex; align-items: center; justify-content: space-between; gap: 0.65rem; padding: 0.55rem 0.7rem; font-size: 0.78rem; background: var(--cc-bg); }
.portal-page .workbench-pagination button { font: inherit; min-height: 31px; padding: 0.34rem 0.65rem; border: 1px solid var(--cc-border); border-radius: var(--skin-radius,8px); background: var(--cc-bg); cursor: pointer; }
.portal-page .workbench-pagination button:disabled { opacity: 0.45; cursor: default; }
.portal-page .workbench-add { float: right; margin-left: 0.75rem; }
.portal-page .app-footer { padding: 0.5rem 1.5rem; font-size: 0.74rem; }

html:has(body.portal-page.has-workspace-canvas),
html:has(body.portal-page.has-workspace-canvas) body {
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
}

body.portal-page.has-workspace-canvas .app-shell {
  height: 100dvh;
  max-height: 100dvh;
  min-height: 0;
  overflow: hidden;
}

@media (min-width: 1000px) {
  .portal-page .app-shell { height: 100dvh; min-height: 0; overflow: hidden; }
  .portal-page .site-header, .portal-page .app-footer { flex: none; }
  .portal-page .app-body { flex: 1; min-height: 0; display: flex; overflow: hidden; }
  .portal-page .app-main { min-height: 0; display: flex; overflow: hidden; }
  .portal-page.has-workspace-canvas .content { flex: 1; min-width: 0; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
  .portal-page:not(.has-workspace-canvas) .content { flex: 1; min-width: 0; min-height: 0; overflow: auto; }
  .portal-page .content:has(#panel-brand-registry.active) {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .portal-page #panel-brand-registry.workspace-canvas.active {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: auto;
    height: auto;
  }
  .portal-page #panel-brand-registry .registry-shell {
    flex: none;
    min-height: 0;
    max-height: none;
    margin: 0;
  }
  .portal-page #panel-client-admin.workspace-canvas.active { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
  .portal-page .client-admin-panel { min-height: 0; overflow: auto; }
  .portal-page #client-admin-panel-mappings:not([hidden]) { display: flex; flex-direction: column; }
  .portal-page .content:has(#panel-creative-brief.active) {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .portal-page #panel-creative-brief.active {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    height: auto;
    background: var(--cc-bg, var(--skin-surface,#fff));
  }
  .portal-page .agent-embed-panel.active,
  .portal-page .creative-studio-panel.active { height: 100%; min-height: 0; }
  .portal-page .creative-studio-shell { height: 100%; min-height: 0; }
  .portal-page .creative-studio-root-shell { height: 100%; min-height: 0; }
  .portal-page #panel-creative-brief.active .creative-studio-root.portal-mounted {
    flex: 1;
    min-height: 0;
  }
  .portal-page .content:has(#panel-knowledge.active) {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .portal-page #panel-knowledge.workspace-canvas.active {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    height: auto;
  }
}
@media (max-width: 999px) {
  .portal-page:not(.has-workspace-canvas) .content { padding: 0.75rem; }
  .portal-page .site-header { padding: 0 0.75rem; }
  .portal-page .site-header__nav { flex-wrap: wrap; }
  .portal-page .form-grid, .portal-page .agent-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-page .registry-shell { max-height: none; }
}
@media (max-width: 600px) {
  .portal-page .split { grid-template-columns: 1fr; }
  .portal-page .form-grid, .portal-page .agent-catalog, .portal-page .creative-overview__stats { grid-template-columns: 1fr; }
  .portal-page .site-header__top { flex-wrap: wrap; gap: 0.5rem; padding: 0.5rem 0; }
  .portal-page .cc-logo__img { max-width: 48vw; height: auto; }
  .portal-page .setup-steps { flex-wrap: wrap; }
  .portal-page .setup-step { min-width: 100%; }
}
