/* Shared role-aware workspace. Authorization is enforced before navigation is projected. */
.workspace-layout { background: #f6f6f3; }
.workspace-layout .site-header { position: sticky; top: 0; z-index: 40; min-height: 58px; padding: 6px 20px; gap: 20px; }
.workspace-layout .brand { gap: 9px; flex-shrink: 0; }.workspace-layout .brand-mark { width: 34px; height: 34px; }
.workspace-layout .brand strong { font-size: .82rem; }.workspace-layout .brand small { font-size: .68rem; }
.workspace-layout .site-nav { display: flex; flex: 1; gap: 8px; padding: 0; border: 0; background: transparent; }
.workspace-layout .site-nav a { color: white; padding: 8px 12px; font-size: .85rem; border: 0; }
.workspace-layout .site-nav a:hover, .workspace-layout .site-nav a:focus-visible { background: #444b50; }
.workspace-layout .account { gap: 12px; }.workspace-layout .account strong { font-size: .8rem; }.workspace-layout .account small { font-size: .65rem; }
.workspace-layout .account form { margin: 0; }.workspace-layout .account button { font-size: .8rem; padding: 8px 12px; }
.workspace-frame { display: grid; grid-template-columns: 248px minmax(0,1fr); align-items: start; }
.workspace-sidebar { position: sticky; top: 58px; height: calc(100dvh - 58px); overflow-y: auto; padding: 20px 14px; background: #eeefeb; border-right: 1px solid #d4d7d0; font-size: .83rem; }
.sidebar-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 16px; }.sidebar-heading span { color: #616a63; font-size: .7rem; }
.project-search label { display: block; font-size: .72rem; margin-bottom: 6px; }.project-search > div { display: flex; gap: 4px; }
.project-search input { min-width: 0; font-size: .75rem; padding: 8px; }.project-search button { font-size: .75rem; padding: 8px; }
.project-switcher, .project-nav { display: flex; flex-direction: column; align-items: stretch; gap: 3px; }
.project-switcher { max-height: 190px; overflow-y: auto; }.project-switcher a, .project-nav a { display: flex; justify-content: flex-start; min-height: 44px; padding: 10px 12px; color: #303833; border-radius: 5px; text-decoration: none; line-height: 1.4; }
.project-switcher a[aria-current], .project-nav a[aria-current] { border-left: 3px solid #b4232d; background: white; color: #841b23; font-weight: 750; padding-left: 9px; }
.project-switcher a:hover, .project-nav a:hover { background: #fff; }.project-register { display: flex; min-height: 44px; align-items: center; padding: 8px 12px; font-size: .75rem; }
.sidebar-current { border-top: 1px solid #d4d7d0; padding: 18px 8px 12px; margin-top: 8px; }.sidebar-current small, .sidebar-current strong { display: block; }.sidebar-current small { color: #616a63; margin-bottom: 7px; font-size: .7rem; }
.sidebar-hint { color: #616a63; padding: 12px 8px; }
.workspace-layout .page-shell, body.workspace-layout:has(.hub-prototype) .page-shell { width: 100%; min-width: 0; padding: 24px 28px 48px; margin: 0; }
.project-context { display: flex; flex-wrap: wrap; gap: 8px 20px; padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid #d9ddd6; font-size: .85rem; }.project-context span { color: #667069; font-size: .75rem; }
.review-banner { display: flex; flex-wrap: wrap; gap: 4px 16px; background: #fff6e8; color: #69491c; border-left: 3px solid #a57627; padding: 10px 14px; margin-bottom: 20px; font-size: .8rem; }
.workspace-layout h1 { max-width: none; font-size: clamp(1.5rem, 2.2vw, 2rem); letter-spacing: -.025em; margin: 0 0 12px; }
.workspace-layout h2 { font-size: 1.15rem; line-height: 1.35; }.workspace-layout h3 { font-size: 1rem; }.workspace-layout .lede { font-size: .93rem; line-height: 1.5; }
.workspace-layout .page-heading { max-width: none; margin-bottom: 20px; }.workspace-layout .eyebrow { font-size: .68rem; }
.workspace-layout .panel { box-shadow: none; padding: 20px; border: 1px solid #d9ddd6; border-radius: 7px; margin-bottom: 16px; }.workspace-layout .card-grid { gap: 16px; }
.workspace-layout .record-list { font-size: .88rem; }.workspace-layout .record-list li { padding: 8px 0; gap: 4px 16px; }.workspace-layout .record-list a { padding-block: 6px; }
.workspace-layout .page-heading p:has(.button) { background: white; padding: 6px; border: 1px solid #d9ddd6; border-radius: 6px; gap: 4px 8px; }
.workspace-layout .button, .workspace-layout button { font-size: .85rem; }.workspace-layout .button-primary { width: auto; }
.workspace-layout .site-footer { padding: 12px 20px; margin-left: 248px; font-size: .72rem; }
.workspace-layout .filter-form .form-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); gap: 12px; }.workspace-layout .filter-form .form-fields > div { margin: 0; }
.workspace-layout .filter-form label { font-size: .8rem; }.workspace-layout .filter-form input, .workspace-layout .filter-form select { font-size: .85rem; }
.workspace-layout table { border-collapse: collapse; }.table-scroll { overflow: auto; max-width: 100%; }
.navigation-toggle { display: none; }
.summary-strip { display: flex; flex-wrap: wrap; border: 1px solid #d9ddd6; border-radius: 7px; background: white; padding: 12px 18px; gap: 18px 28px; margin-bottom: 20px; }.summary-strip div { display: grid; gap: 4px; }.summary-strip dt { font-size: .72rem; color: #616a63; }.summary-strip dd { margin: 0; font-size: 1rem; font-weight: 750; }
.workspace-columns { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 20px; }.workspace-columns > * { min-width: 0; }
.workspace-layout .hub-heading { margin: 16px 0 24px; }.workspace-layout .hub-prototype h1 { font-size: 2rem; }.workspace-layout .hub-prototype h2 { font-size: 1.45rem; }
.workspace-layout .hub-prototype .phase-card { padding: 16px; }.workspace-layout .hub-prototype .phase-body h3 { font-size: 1rem; }.workspace-layout .hub-prototype .phase-body p { font-size: .8rem; }
.workspace-layout .hub-prototype .phase-toggle { font-size: .9rem; }.workspace-layout .hub-prototype .phase-journey { margin-bottom: 24px; }
@media(max-width:1100px) { .workspace-layout .brand strong { max-width: 145px; }.workspace-layout .account > span { display: none; }.workspace-frame { grid-template-columns: 220px minmax(0,1fr); }.workspace-layout .site-footer { margin-left: 220px; }.workspace-columns { grid-template-columns: 1fr; } }
@media(max-width:800px) {
 .workspace-layout .site-header { padding: 8px 12px; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; position: relative; }
 .workspace-layout .brand { margin-right: auto; }.workspace-layout .site-nav { display: none; }.workspace-layout .account { width: auto; }
 .navigation-toggle { display: inline-flex; min-height: 44px; padding: 8px; background: transparent; color: white; border: 1px solid #859087; }
 .workspace-frame { display: block; }.workspace-sidebar { position: static; width: 100%; height: auto; max-height: 70dvh; }
 .workspace-enhanced .workspace-sidebar:not(.is-open) { display: none; }.workspace-layout .site-footer { margin-left: 0; }
 .workspace-layout .page-shell, body.workspace-layout:has(.hub-prototype) .page-shell { padding: 18px 12px 32px; }
 .workspace-layout .panel { padding: 16px; }.project-context { font-size: .8rem; }.summary-strip { gap: 16px 24px; }
 .workspace-layout .hub-prototype h1 { font-size: 1.6rem; }
}

.project-search button { flex-shrink: 0; white-space: nowrap; }
.workspace-global { border-top: 1px solid #d4d7d0; margin-top: 16px; padding-top: 12px; }
.workspace-layout .metric { font-size: 1.3rem; margin: 6px 0; }

/* Existing-screen interiors; approved overview/journey compositions stay separate. */
.workspace-layout .site-nav a[aria-current] { background: #41474b; border-bottom: 2px solid #e64b54; }
.admin-nav { border-bottom: 1px solid #d4d7d0; padding-bottom: 14px; margin-bottom: 18px; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: -8px 0 16px; font-size: .78rem; color: #59645d; }
.breadcrumbs a { color: #7d2028; }.breadcrumbs [aria-current] { font-weight: 700; }
.consistency-page .page-heading { display: flex; flex-wrap: wrap; align-items: center; column-gap: 20px; row-gap: 6px; }
.consistency-page .page-heading h1 { flex: 1 1 300px; margin: 0; }
.consistency-page .page-heading > p { flex-basis: 100%; margin: 4px 0; }
.page-actions, .form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.page-actions { margin-block: 8px; }.form-actions { margin-top: 18px; }
.consistency-page .form-panel { max-width: 860px; }
.consistency-page .form-panel form { max-width: 720px; }
.consistency-page .form-fields > div { margin-block: 16px; }
.consistency-page .form-fields input:not([type=checkbox]):not([type=radio]), .consistency-page .form-fields select, .consistency-page .form-fields textarea { max-width: 100%; }
.consistency-page .form-fields textarea { min-height: 110px; }
.consistency-page .form-fields .helptext, .form-guidance { font-size: .82rem; color: #59645d; line-height: 1.5; }
.consistency-page .form-fields > div:has([required]) > label::after { content: " (required)"; font-size: .75rem; font-weight: 400; }
.consistency-page .filter-form .form-actions { margin-top: 12px; }
.consistency-page .filter-form .form-fields > div { margin-block: 4px; }
.consistency-page .record-list > li { padding: 12px 0; gap: 6px 18px; }
.consistency-page .record-list > li > p { flex-basis: 100%; margin: 4px 0; }
.consistency-page .record-list > li > strong:first-child { flex-basis: 100%; }
.consistency-page .record-list > li > form { margin: 0; }
.consistency-page .panel > h2 { margin-bottom: 16px; }
.consistency-page .panel > h3 { border-top: 1px solid #e1e4df; padding-top: 16px; margin-top: 20px; }
.consistency-page .empty-state { border: 1px dashed #cbd1c8; border-radius: 6px; padding: 20px; background: #fafbf8; }
.consistency-page .empty-state h3 { margin: 0 0 8px; }.consistency-page .empty-state p { margin: 6px 0 12px; color: #59645d; font-size: .9rem; }
.data-table { width: 100%; text-align: left; font-size: .85rem; }
.data-table caption { text-align: left; font-size: 1.05rem; font-weight: 750; padding-bottom: 14px; }
.data-table th, .data-table td { padding: 12px; border-bottom: 1px solid #d9ddd6; vertical-align: top; }
.data-table thead th { color: #4c5850; background: #f0f2ed; font-size: .75rem; }
.data-table tbody th { font-weight: 650; }.data-table td p { margin: 4px 0; }
.data-table tbody tr:hover { background: #fafbf8; }.data-table form { margin: 4px 0; }
.table-scroll { overflow-x: auto; max-width: 100%; border-radius: 5px; }
.table-scroll .data-table { min-width: 620px; }.table-scroll:focus-visible { outline: 3px solid #ae2530; outline-offset: 3px; }
.record-meta { display: grid; grid-template-columns: minmax(110px,auto) minmax(0,1fr); gap: 8px 18px; font-size: .9rem; }
.record-meta dt { color: #59645d; }.record-meta dd { margin: 0; }
.secondary-action { color: #303833; background: white; border-color: #9ca79e; }
@media(max-width:800px) {
 .consistency-page .page-heading h1 { flex-basis: 100%; }
 .consistency-page .page-actions, .consistency-page .form-actions { width: 100%; gap: 10px; }
 .consistency-page .form-actions .button { flex: 1 1 auto; }
 .consistency-page .form-panel { padding: 16px; }
 .breadcrumbs { gap: 3px 8px; font-size: .75rem; }
 .record-meta { grid-template-columns: 1fr; gap: 4px; }.record-meta dd { margin-bottom: 10px; }
}

.consistency-page .page-actions > a:not(.button) { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 14px; border: 1px solid #9ca79e; border-radius: 5px; text-decoration: none; }
.consistency-page .form-actions .button-secondary { background: white; color: #303833; border: 1px solid #9ca79e; }
.consistency-page .form-actions .button-secondary:hover { background: #eeefeb; }
.consistency-page .page-heading .page-actions > a:first-child { color: white; background: #b4232d; border: 1px solid #b4232d; padding: 10px 14px; border-radius: 5px; }
.consistency-page .page-heading .page-actions > a:first-child:hover { background: #8a1b23; }
.data-table .status-alert { display: block; margin-top: 4px; }
.table-scroll::before { content: "Scroll table horizontally to see all columns"; display: block; font-size: .75rem; color: #59645d; margin-bottom: 10px; }
@media(min-width:801px) { .table-scroll::before { display: none; } }

.data-table .table-caption { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
