/* Portal Studio — shared workspace design. Scoped away from the admin and public site. */
.portal-studio {
    --ps-ink:#242927; --ps-muted:#747a76; --ps-canvas:#fafbf9; --ps-surface:#fff;
    --ps-soft:#f3f5f1; --ps-line:#e5e8e1; --ps-green:#176753; --ps-green-soft:#eaf3ed;
    --ps-purple:#f1edf8; --ps-peach:#faf0e6; --ps-blue:#ecf2f8;
    --theme-accent:#176753; --theme-accent-rgb:23,103,83;
    --theme-link-color:#176753; --theme-link-hover:#11503f; --theme-link-hover-color:#11503f;
    --theme-header-active:#242927; --theme-header-active-rgb:36,41,39;
    --theme-sidebar-bg:#eef3ea; --theme-sidebar-bg-rgb:238,243,234;
    --theme-header-bg:#fafbf9; --theme-header-surface:#fafbf9; --theme-header-surface-rgb:250,251,249;
    --theme-border-color:#e5e8e1; --theme-border-color-rgb:229,232,225; --theme-shell-border-color:#e5e8e1;
    --theme-muted-text-color:#747a76; --theme-sidebar-text-color:#535b55; --theme-header-text-color:#242927;
    --theme-surface-base:#fff; --theme-surface-base-rgb:255,255,255; --theme-surface-overlay:#fff; --theme-surface-overlay-rgb:255,255,255;
    --theme-surface-soft:#f4f6f2; --theme-surface-soft-rgb:244,246,242; --theme-surface-subtle:#f4f6f2;
    --theme-input-surface:#fff; --theme-input-text:#242927; --theme-input-placeholder:#92988f;
    --theme-button-soft-bg:#f0f3ed; --theme-button-soft-text:#354638; --theme-button-outline-hover:#f3f5f0;
    --theme-table-head-bg:#f8f9f6; --theme-table-row-hover-bg:#f7f9f4; --theme-chart-surface:#f5f7f2;
    --theme-empty-bg:#fafbf8; --theme-empty-icon-bg:#f0f4ed;
    --theme-card-radius:12px; --theme-button-radius:8px; --theme-input-radius:8px; --theme-page-max-width:1500px;
    --theme-font-sans:'Inter',sans-serif;
    background:var(--ps-canvas)!important; color:var(--ps-ink); font-size:14px; -webkit-font-smoothing:antialiased;
}
html.dark .portal-studio {
    --ps-ink:#e9eee7; --ps-muted:#a0a99f; --ps-canvas:#171c18; --ps-surface:#202721;
    --ps-soft:#283129; --ps-line:#354036; --ps-green:#8bc8a8; --ps-green-soft:#293c30;
    --ps-purple:#332d41; --ps-peach:#40372b; --ps-blue:#283642;
    --theme-accent:#8bc8a8; --theme-accent-rgb:139,200,168;
    --theme-link-color:#8bc8a8; --theme-link-hover:#b2e5c9; --theme-link-hover-color:#b2e5c9;
    --theme-header-active:#c8dcc9; --theme-header-active-rgb:200,220,201;
    --theme-sidebar-bg:#1b211c; --theme-sidebar-bg-rgb:27,33,28;
    --theme-header-bg:#171c18; --theme-header-surface:#171c18; --theme-header-surface-rgb:23,28,24;
    --theme-border-color:#354036; --theme-border-color-rgb:53,64,54; --theme-shell-border-color:#354036;
    --theme-muted-text-color:#a0a99f; --theme-sidebar-text-color:#b5beb2; --theme-header-text-color:#e9eee7;
    --theme-surface-base:#202721; --theme-surface-base-rgb:32,39,33; --theme-surface-overlay:#202721; --theme-surface-overlay-rgb:32,39,33;
    --theme-surface-soft:#283129; --theme-surface-soft-rgb:40,49,41; --theme-surface-subtle:#283129;
    --theme-input-surface:#202721; --theme-input-text:#e9eee7; --theme-input-placeholder:#919b8f;
    --theme-button-soft-bg:#29342b; --theme-button-soft-text:#c8dcc9; --theme-button-outline-hover:#29342b;
    --theme-table-head-bg:#232b24; --theme-table-row-hover-bg:#29322a; --theme-chart-surface:#283129;
    --theme-empty-bg:#202721; --theme-empty-icon-bg:#29342b;
}
.portal-studio :focus-visible {outline:2px solid var(--ps-green);outline-offset:3px}
.portal-studio ::selection {background:var(--ps-green-soft);color:var(--ps-ink)}
.portal-studio .app-theme-content[data-workspace="page"] {padding:30px 32px 64px}
.portal-studio .app-theme-content {min-width:0}
.portal-studio .app-theme-content > :where(div,section) {width:100%}
.portal-studio .app-theme-content h1 {font-size:28px;line-height:1.25;font-weight:600;letter-spacing:-1px}
.portal-studio .app-theme-content :where(h2,h3) {letter-spacing:-.025em}
.portal-studio .app-theme-content .uppercase {letter-spacing:.075em}
.portal-studio .app-theme-content :where(section,article,aside).border {border-radius:12px;border-color:var(--ps-line)!important;box-shadow:none}
.portal-studio .app-theme-content :where(section,article)[style*="radial-gradient"] {background:var(--ps-surface)!important}
.portal-studio .app-theme-content :where(.ps-card,.ps-surface-card) {border-color:var(--ps-line);box-shadow:none!important}
.portal-studio .app-theme-content .af-depth-card {box-shadow:none;background:var(--ps-surface);transform:none}
.portal-studio .app-theme-content table {font-size:13px;border-collapse:collapse}
.portal-studio .app-theme-content thead {background:var(--theme-table-head-bg)}
.portal-studio .app-theme-content th {font-size:11px;font-weight:600;letter-spacing:.045em;color:var(--ps-muted);padding-top:13px;padding-bottom:13px}
.portal-studio .app-theme-content td {padding-top:16px;padding-bottom:16px}
.portal-studio .app-theme-content tbody tr {border-color:var(--ps-line)}
.portal-studio .app-theme-content tbody tr:hover {background:var(--theme-table-row-hover-bg)}
.portal-studio .app-theme-content :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea) {border-color:var(--ps-line);border-radius:8px;box-shadow:none}
.portal-studio .ps-button {font-size:13px;font-weight:500;box-shadow:none!important;transition:background .15s,border-color .15s,opacity .15s}
.portal-studio .ps-button:hover {transform:none}
.portal-studio .ps-button--primary {background:#263d2e;color:#fff;border-color:#263d2e}
.portal-studio .ps-button--primary:hover {background:#35513d;border-color:#35513d}
.portal-studio .ps-button--outline {background:var(--ps-surface)!important}
.portal-studio .ps-subheader {padding-bottom:8px}
.portal-studio .ps-subheader h1 {margin:0}
.portal-studio .ps-subheader p {line-height:1.65}
.portal-studio .ps-page-hero {padding:0 0 22px!important;background:transparent!important;border:0;border-bottom:1px solid var(--ps-line);border-radius:0!important}
.portal-studio .ps-page-hero > div > div > span:first-child {height:44px;width:44px;font-size:18px;background:var(--ps-green-soft)!important;box-shadow:none}
.portal-studio .ps-page-intro {position:relative;overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important;padding:0 0 22px!important;box-shadow:none!important;border-bottom:1px solid var(--ps-line)!important}
.portal-studio .ps-page-intro > .grid {display:block!important}
.portal-studio .ps-page-intro > .grid > div:first-child > :first-child:is(span) {padding:0;background:transparent!important;border:0;font-size:10px;color:var(--ps-muted)!important;letter-spacing:.1em}
.portal-studio .ps-page-intro > .grid > div:first-child > div:has(> h1) {margin-top:10px;padding-right:155px;align-items:center}
.portal-studio .ps-page-intro > .grid > div:first-child > p {font-size:13px;line-height:1.75;margin-top:9px;max-width:800px}
.portal-studio .ps-page-intro > .grid > div:first-child > .flex {gap:8px}
.portal-studio .ps-page-intro > .grid > div:first-child > .flex:has(> a,> button,> [x-data]) {margin-top:18px}
/* Modal triggers have two wrappers; keep their geometry aligned with adjacent links. */
.portal-studio .ps-page-intro > .grid > div:first-child > .flex > :is(a,button),
.portal-studio .ps-page-intro > .grid > div:first-child > .flex > [x-data] > div > :is(a,button) {height:40px;box-sizing:border-box;font-size:13px;line-height:20px;border:1px solid transparent;border-radius:var(--theme-button-radius);box-shadow:none;transform:none}
.portal-studio .ps-page-intro > .grid > div:first-child > .flex:has(> span) {margin-top:14px}
.portal-studio .ps-page-intro > .grid > div:first-child > .flex:has(> span) > span {border:0;padding:3px 8px;background:var(--ps-soft)!important;font-size:11px}
.portal-studio .ps-page-insights {position:absolute;right:0;top:8px;z-index:40;font-size:12px}
.portal-studio .ps-page-insights > summary {display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;border:1px solid var(--ps-line);border-radius:8px;padding:9px 12px;background:var(--ps-surface);color:var(--ps-muted)}
.portal-studio .ps-page-insights > summary::-webkit-details-marker {display:none}
.portal-studio .ps-page-insights[open] > summary {color:var(--ps-green);border-color:var(--ps-green)}
.portal-studio .ps-page-insights > aside {position:absolute;right:0;top:calc(100% + 8px);width:340px;max-width:calc(100vw - 32px);max-height:70vh;overflow:auto;background:var(--ps-surface)!important;box-shadow:0 12px 40px #17271c1a!important}
.portal-studio .ps-page-insights aside h2 {font-size:15px}
.portal-studio .ps-operational-summary {margin-top:14px;max-width:800px}
.portal-studio .ps-operational-summary summary {display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--ps-muted);font-size:12px;list-style:none}
.portal-studio .ps-operational-summary summary::-webkit-details-marker {display:none}
.portal-studio .ps-operational-summary summary > i:first-child {color:var(--ps-green)}
.portal-studio .ps-operational-summary summary > i:last-child {font-size:9px}
.portal-studio .ps-operational-summary[open] summary {color:var(--ps-ink)}
.portal-studio .ps-operational-summary > div {margin-top:10px;border-left:2px solid var(--ps-green);padding:0 0 0 14px}
.portal-studio .ps-operational-summary p {font-size:12px;line-height:1.7}
.portal-studio .ps-operational-summary .ps-summary-metrics {display:flex;gap:20px;margin-top:8px;font-size:12px;color:var(--ps-muted)}
.portal-studio .ps-operational-summary strong {color:var(--ps-ink);font-weight:600}
.portal-studio .app-theme-content section > .grid.divide-y > article {padding:19px 22px}
.portal-studio .ps-metric-strip > div {border-radius:12px}
.portal-studio .ps-empty {background:var(--ps-soft);border-color:var(--ps-line);border-radius:12px;box-shadow:none}
.portal-studio .ps-header {
    border-color:color-mix(in srgb,var(--ps-line) 90%,transparent)!important;
    background:color-mix(in srgb,var(--ps-canvas) 94%,transparent)!important;
    box-shadow:0 1px 0 rgba(31,45,36,.025),0 18px 40px -38px rgba(31,45,36,.42);
    backdrop-filter:blur(18px) saturate(1.12);
}
.portal-studio .ps-header-inner {display:flex;min-height:72px;gap:20px;padding:11px 32px}
.portal-studio .ps-header-start:empty {display:none}
.portal-studio .ps-global-search {
    flex:0 1 680px;
    height:46px;
    max-width:680px!important;
    margin-right:auto;
    border-color:color-mix(in srgb,var(--ps-line) 92%,#bac7bd)!important;
    border-radius:12px;
    background:color-mix(in srgb,var(--ps-surface) 80%,var(--ps-soft))!important;
    box-shadow:0 1px 2px rgba(31,45,36,.035)!important;
    transform:none!important;
}
.portal-studio .ps-global-search:hover {border-color:color-mix(in srgb,var(--ps-green) 25%,var(--ps-line))!important;background:var(--ps-surface)!important}
.portal-studio .ps-global-search:focus-within {border-color:color-mix(in srgb,var(--ps-green) 58%,var(--ps-line))!important;background:var(--ps-surface)!important;box-shadow:0 0 0 3px rgba(48,108,79,.08),0 8px 24px -20px rgba(31,45,36,.48)!important}
.portal-studio .ps-global-search-mark {height:32px;width:32px;border-radius:9px;background:var(--ps-green)!important;box-shadow:none!important}
.portal-studio .ps-global-search-input {font-size:13px;font-weight:500;letter-spacing:-.01em}
.portal-studio .ps-global-search-input:focus-visible {outline:0}
.portal-studio .ps-global-search-shortcut {height:24px;border-radius:6px;padding:0 7px;background:transparent!important;color:var(--ps-muted)!important;letter-spacing:.08em}
.portal-studio .ps-global-search-ai {height:32px;width:32px;border:0!important;border-radius:9px;background:var(--ps-green-soft)!important;box-shadow:none!important}
.portal-studio .ps-global-search-ai:hover {transform:none!important;background:color-mix(in srgb,var(--ps-green-soft) 76%,var(--ps-green))!important}
.portal-studio .ps-global-search-panel {border-radius:14px!important;border-color:var(--ps-line)!important;background:var(--ps-surface)!important;box-shadow:0 28px 70px -34px rgba(23,39,28,.52)!important}
.portal-studio .ps-header-end {margin-left:auto;min-width:0}
.portal-studio .ps-header-tools {gap:4px;padding:4px;border:1px solid var(--ps-line);border-radius:14px;background:color-mix(in srgb,var(--ps-surface) 84%,var(--ps-soft));box-shadow:0 1px 2px rgba(31,45,36,.025)}
.portal-studio .ps-header-team-switcher {margin-right:3px}
.portal-studio .ps-header-team-button {height:38px!important;width:208px!important;gap:9px;border:0!important;border-radius:10px!important;padding:0 10px!important;background:var(--ps-soft)!important;box-shadow:none!important}
.portal-studio .ps-header-team-button:hover {background:color-mix(in srgb,var(--ps-soft) 75%,var(--ps-green-soft))!important}
.portal-studio .ps-header-team-icon {height:30px;width:30px;border-radius:8px;background:var(--ps-green-soft)!important;color:var(--ps-green)!important}
.portal-studio .ps-header-team-status {position:absolute;right:-1px;bottom:-1px;width:8px;height:8px;border:2px solid var(--ps-soft);border-radius:999px;background:#24a66a}
.portal-studio .ps-header-team-copy > span:first-child {font-size:8px;line-height:1.1;letter-spacing:.16em}
.portal-studio .ps-header-team-name {margin-top:2px;font-size:12px;line-height:1.15}
.portal-studio .ps-header-utility--appearance {margin-left:0;padding-left:0;border-left:0}
.portal-studio .ps-header-utility--language {margin-right:3px;padding-right:7px;border-right:1px solid var(--ps-line)}
.portal-studio .ps-header-utility-button,
.portal-studio .ps-header-notification-button,
.portal-studio .ps-header-user-button {height:38px!important;width:38px!important;border-color:transparent!important;border-radius:10px!important;background:transparent!important;box-shadow:none!important;transform:none!important}
.portal-studio .ps-header-utility-button:hover,
.portal-studio .ps-header-notification-button:hover,
.portal-studio .ps-header-user-button:hover {background:var(--ps-soft)!important;color:var(--ps-ink)!important}
.portal-studio .ps-header-user-button {background:color-mix(in srgb,var(--ps-green-soft) 72%,var(--ps-surface))!important}
.portal-studio .ps-header-user-button [class*="h-"] {box-shadow:0 0 0 2px var(--ps-surface)}
.portal-studio .ps-header-notification-button [id$="badge"] {right:-2px;top:-3px;min-width:18px;height:18px;padding:0 5px;font-size:9px;box-shadow:0 0 0 2px var(--ps-surface)}
html.dark .portal-studio .ps-header {background:color-mix(in srgb,var(--ps-canvas) 92%,transparent)!important}
html.dark .portal-studio .ps-header-tools,
html.dark .portal-studio .ps-global-search {background:color-mix(in srgb,var(--ps-surface) 88%,var(--ps-canvas))!important}
@media(max-width:1280px){
    .portal-studio .ps-header-inner {gap:12px;padding-left:20px;padding-right:20px}
    .portal-studio .ps-global-search {flex-basis:620px}
    .portal-studio .ps-header-team-button {width:42px!important;padding:0 6px!important;justify-content:center}
    .portal-studio .ps-header-team-copy,
    .portal-studio .ps-header-team-button > .fa-chevron-down {display:none}
}
@media(max-width:1023px){
    .portal-studio .ps-header-inner {min-height:0;flex-wrap:wrap;align-items:center;row-gap:9px;padding:9px 16px 11px}
    .portal-studio .ps-header-start {order:1;flex:1 1 auto}
    .portal-studio .ps-header-end {order:2;margin-left:0}
    .portal-studio .ps-global-search {order:3;display:flex!important;flex:1 0 100%;height:43px;max-width:none!important;margin:0}
    .portal-studio .ps-global-search-panel {min-width:0;max-width:100%}
    .portal-studio .ps-header-tools {padding:3px}
    .portal-studio .ps-header-team-button,
    .portal-studio .ps-header-utility-button,
    .portal-studio .ps-header-notification-button,
    .portal-studio .ps-header-user-button {height:34px!important;width:34px!important}
    .portal-studio .ps-header-team-icon {height:27px;width:27px}
}
@media(max-width:520px){
    .portal-studio .ps-header-inner {padding:8px 12px 10px}
    .portal-studio .ps-header-tools {border-color:transparent;background:transparent;box-shadow:none}
    .portal-studio .ps-header-utility--appearance {margin-left:0;padding-left:0;border-left:0}
    .portal-studio .ps-header-utility--language {margin-right:0;padding-right:0;border-right:0}
    .portal-studio .ps-global-search {height:41px;padding-left:6px;padding-right:6px}
    .portal-studio .ps-global-search-mark,
    .portal-studio .ps-global-search-ai {height:29px;width:29px}
    .portal-studio .ps-global-search-input {font-size:12px}
    .portal-studio .ps-global-search-shortcut {display:none!important}
    .portal-studio .ps-global-search-panel {width:calc(100vw - 24px);max-width:calc(100vw - 24px)}
}
.portal-studio aside.fixed > div {background:var(--theme-sidebar-bg)}
.portal-studio aside.fixed > div > div:first-child {height:76px;padding:16px 20px}
.portal-studio aside.fixed img {max-width:160px}
.portal-studio aside.fixed > div > .border-t {padding:16px;border-color:var(--ps-line)!important}
.portal-studio aside.fixed .app-sidebar-scroll {padding:8px 12px 12px}
.portal-studio aside.fixed .app-sidebar-scroll:hover {scrollbar-width:thin}
.portal-studio aside.fixed > div > .border-t .ps-button {height:40px;justify-content:center;border:1px solid var(--ps-line);border-radius:8px;background:color-mix(in srgb,var(--ps-surface) 34%,transparent)!important;font-size:12px;padding:0 12px}
.portal-studio .portal-nav-label {display:flex;align-items:center;justify-content:space-between;margin:1px 8px 12px;padding:0 7px;color:#78837c;font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.portal-studio .portal-nav :is(a,button) {border-radius:8px!important}
.portal-studio .portal-nav :is(a,button):hover {transform:none!important}
.portal-studio .portal-nav section {scroll-margin-top:12px}
.portal-studio .portal-nav section > div:first-child p {color:#78837c!important;font-size:9px!important;font-weight:700!important;letter-spacing:.16em!important}
.portal-studio .portal-nav section + section {border-color:color-mix(in srgb,var(--ps-line) 92%,transparent)!important}
.portal-studio .portal-nav a,
.portal-studio .portal-nav button {font-size:13px}
.portal-studio .portal-nav a:hover,
.portal-studio .portal-nav button:hover {background:color-mix(in srgb,var(--ps-surface) 48%,transparent)}
.ps-nav {display:flex;flex-direction:column;gap:18px}
.ps-nav a {min-height:35px;border-radius:7px;display:flex;align-items:center;gap:11px;padding:7px 10px;color:var(--theme-sidebar-text-color);font-size:12px;line-height:1.4;transition:background .15s}
.ps-nav a:hover {background:var(--ps-line);color:var(--ps-ink)}
.ps-nav a[aria-current=page] {background:#e5eddf;color:#29482f;font-weight:600}
html.dark .ps-nav a[aria-current=page] {background:#354a36;color:#d3e8d2}
.ps-nav a > i {font-size:15px;width:17px;text-align:center;flex-shrink:0}
.ps-nav a > span {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-nav .ps-nav-heading {font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--ps-muted);font-weight:500;padding:0 10px 7px}
.ps-nav .ps-nav-section {border:0}
.ps-nav .ps-nav-badge {font-size:8px;border:1px solid var(--ps-line);padding:1px 3px;border-radius:3px;margin-left:auto;opacity:.75}
.ps-nav .ps-nav-child {padding-left:38px}
.ps-plan {border:1px solid var(--ps-line);border-radius:10px;padding:12px;background:var(--ps-surface)}
.ps-plan-top {display:flex;align-items:center;justify-content:space-between;gap:8px}
.ps-plan-top strong {font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-plan-top i {color:var(--ps-green)}
.ps-plan p {font-size:10px;color:var(--ps-muted);margin:7px 0 0}
.ps-plan a {display:flex;align-items:center;justify-content:space-between;color:var(--ps-green);font-size:11px;font-weight:500;margin-top:11px;padding-top:10px;border-top:1px solid var(--ps-line)}
.portal-studio .af-ai-dock {right:20px;bottom:18px}
.portal-studio .af-ai-dock-button {border:1px solid var(--ps-line);border-radius:12px;background:#263d2e;color:#fff;box-shadow:0 4px 16px #17341b19;padding:12px 16px;font-size:12px}
.portal-studio .af-ai-dock-button:hover {transform:none}
.portal-studio .af-ai-dock-panel {background:var(--ps-surface);border-color:var(--ps-line)}
.ps-overview {display:grid;gap:25px}
.ps-welcome {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:1px 0 4px}
.ps-kicker {font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.11em;color:var(--ps-muted)}
.ps-welcome h1 {margin:9px 0 10px}
.ps-welcome p:not(.ps-kicker) {color:var(--ps-muted);font-size:13px}
.ps-welcome-actions {display:flex;gap:8px;flex-shrink:0}
.ps-stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ps-stat {border:1px solid var(--ps-line);border-radius:12px;background:var(--ps-surface);padding:20px;min-width:0;transition:border-color .15s}
.ps-stat:hover {border-color:var(--ps-green)}
.ps-stat-top {display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--ps-muted)}
.ps-stat-icon {display:grid;place-items:center;width:33px;height:33px;border-radius:9px;color:var(--ps-green);background:var(--ps-green-soft)}
.ps-stat:nth-child(2) .ps-stat-icon {background:var(--ps-purple);color:#8a75a4}
.ps-stat:nth-child(3) .ps-stat-icon {background:var(--ps-peach);color:#b58c60}
.ps-stat:nth-child(4) .ps-stat-icon {background:var(--ps-blue);color:#7297b0}
.ps-stat strong {display:block;font-size:32px;line-height:1.2;font-weight:500;letter-spacing:-1.2px;margin:11px 0}
.ps-stat-bottom {display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--ps-muted)}
.ps-stat-bottom > span {min-width:0;line-height:1.45}
.ps-overview-grid {display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}
.ps-panel {background:var(--ps-surface);border:1px solid var(--ps-line);border-radius:12px;overflow:hidden;min-width:0}
.ps-panel-head {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px}
.ps-panel-head > div {min-width:0}
.ps-panel-head h2,.ps-panel-head h3 {font-size:15px;font-weight:600;margin:0;color:var(--ps-ink)}
.ps-panel-head p {font-size:11px;color:var(--ps-muted);margin-top:5px}
.ps-health-grid {align-items:stretch}
.ps-health-card {display:flex;min-height:205px;flex-direction:column}
.ps-health-card .ps-panel-head {align-items:flex-start}
.ps-health-score {flex-shrink:0;color:var(--ps-ink);font-weight:600;line-height:1}
.ps-health-card[data-state=empty] .ps-health-score {color:var(--ps-muted)}
.ps-health-card > .ps-progress {margin:0 22px}
.ps-health-metrics {margin-top:auto;padding:17px 22px 20px}
.ps-health-metrics > div {min-width:0}
.ps-health-metrics strong {display:block;color:var(--ps-ink);font-size:15px;line-height:1.2}
.ps-health-metrics p {margin-top:5px;color:var(--ps-muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.ps-health-body {margin-top:auto;padding:0 22px 22px;color:var(--ps-muted);line-height:1.6}
.ps-insights-grid {padding:0 22px 22px}
.ps-text-link {font-size:11px;font-weight:500;color:var(--ps-green);white-space:nowrap}
.ps-project-row {display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:13px;align-items:center;padding:16px 22px;border-top:1px solid var(--ps-line)}
.ps-project-icon {height:36px;width:36px;display:grid;place-items:center;border-radius:9px;background:var(--ps-purple);color:#8a75a4}
.ps-project-row:nth-child(3n) .ps-project-icon {background:var(--ps-peach);color:#b58c60}
.ps-project-row:nth-child(3n + 1) .ps-project-icon {background:var(--ps-blue);color:#7297b0}
.ps-project-title {font-size:13px;font-weight:500;display:block;color:var(--ps-ink)}
.ps-project-meta {font-size:11px;color:var(--ps-muted);margin-top:5px}
.ps-status {font-size:10px;padding:5px 8px;border-radius:5px;color:var(--ps-green);background:var(--ps-green-soft);white-space:nowrap}
.ps-status[data-status=review],.ps-status[data-status=planning] {background:var(--ps-peach);color:#9f783c}
.ps-focus {background:var(--ps-green-soft)}
.ps-focus .ps-panel-head {padding-bottom:10px}
.ps-focus-item {display:flex;align-items:center;gap:10px;margin:0 16px;padding:13px 6px;border-bottom:1px solid color-mix(in srgb,var(--ps-green) 12%,transparent)}
.ps-focus-item:last-child {border-bottom:0;margin-bottom:10px}
.ps-focus-item > i {font-size:15px;color:var(--ps-green)}
.ps-focus-item div {flex:1;min-width:0}
.ps-focus-item strong {display:block;font-size:12px;font-weight:500}
.ps-focus-item p {font-size:11px;color:var(--ps-muted);margin-top:4px}
.ps-focus-count {font-size:18px;font-weight:500}
.ps-empty-projects {display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 22px 38px}
.ps-empty-art {width:72px;height:72px;border-radius:20px;background:var(--ps-soft);display:grid;place-items:center;margin-bottom:18px;color:var(--ps-green);font-size:27px;transform:rotate(-6deg)}
.ps-empty-projects h3 {font-size:16px;font-weight:500;margin-bottom:8px}
.ps-empty-projects p {color:var(--ps-muted);font-size:12px;max-width:330px;line-height:1.7;margin-bottom:20px}
.ps-activity {padding:0 22px 6px}
.ps-activity-item {display:flex;gap:12px;position:relative;padding:13px 0}
.ps-activity-item + .ps-activity-item {border-top:1px solid var(--ps-line)}
.ps-activity-dot {margin-top:6px;width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--ps-green)}
.ps-activity-item div {min-width:0;flex:1}
.ps-activity-item p {font-size:12px;font-weight:500;line-height:1.6}
.ps-activity-item small {font-size:10px;color:var(--ps-muted);display:block;margin-top:4px}
.ps-onboarding {background:var(--ps-purple);border-color:transparent;padding:20px 22px;margin-top:18px}
.ps-onboarding > i {font-size:21px;color:#8a75a4}
.ps-onboarding h3 {font-size:15px;font-weight:600;margin:12px 0 8px}
.ps-onboarding p {font-size:12px;line-height:1.7;color:var(--ps-muted)}
.ps-onboarding .ps-progress {margin:15px 0 9px}
.ps-progress {height:4px;background:var(--ps-line);border-radius:3px;overflow:hidden}
.ps-progress span {display:block;height:100%;background:var(--ps-green);border-radius:3px}
.ps-onboarding a {display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;margin-top:14px;color:var(--ps-ink)}
.ps-capacity > summary {display:flex;justify-content:space-between;gap:15px;cursor:pointer;list-style:none;padding:17px 21px;color:var(--ps-muted);font-size:12px}
.ps-capacity > summary strong {color:var(--ps-ink);font-weight:500}
.ps-capacity > summary::-webkit-details-marker {display:none}
.ps-capacity > summary i {margin-left:5px;transition:transform .16s ease}
.ps-capacity[open] > summary {border-bottom:1px solid var(--ps-line)}
.ps-capacity[open] > summary i {transform:rotate(180deg)}
.ps-capacity-content {padding:20px 21px 22px}
.ps-capacity-heading {display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px}
.ps-capacity-heading h2 {color:var(--ps-ink);font-size:15px;font-weight:600}
.ps-capacity-heading p {color:var(--ps-muted);font-size:11px}
.ps-capacity-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ps-capacity-item {min-width:0;border:1px solid var(--ps-line);border-radius:10px;background:var(--ps-soft);padding:14px}
.ps-capacity-grid p {font-size:11px;color:var(--ps-muted)}
.ps-capacity-grid strong {font-size:14px;font-weight:500;display:block;margin:7px 0 8px;color:var(--ps-ink)}
.ps-storage-strip {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px}
.ps-storage-strip h2 {font-size:15px;font-weight:600}
.ps-storage-strip p {font-size:11px;color:var(--ps-muted);margin-top:5px}
.ps-storage-values {display:flex;gap:28px}
.ps-storage-values strong {display:block;font-size:18px;font-weight:500}
.ps-storage-values span {font-size:10px;color:var(--ps-muted)}
.ps-layout-feedback {position:fixed;bottom:24px;left:50%;z-index:100}
@media(min-width:1600px){.portal-studio .app-theme-content[data-workspace="page"]{padding-left:42px;padding-right:42px}}
@media(max-width:1200px){.ps-overview-grid{grid-template-columns:minmax(0,1fr) 280px}.ps-stat{padding:16px}.ps-welcome{align-items:flex-start}.ps-welcome-actions{flex-direction:column}}
@media(max-width:1023px){.portal-studio .app-theme-content[data-workspace="page"]{padding:25px 24px 70px}.ps-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ps-overview-grid{grid-template-columns:1fr}.ps-welcome-actions{flex-direction:row}.ps-onboarding{margin-top:0}.ps-capacity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.portal-studio .app-theme-content[data-workspace="page"]{padding:22px 18px 76px}.portal-studio .app-theme-content h1{font-size:25px}.ps-welcome{flex-direction:column;gap:16px}.ps-welcome-actions{width:100%;flex-direction:row;flex-wrap:wrap}.ps-welcome-actions > *{flex:1;justify-content:center}.ps-stat strong{font-size:28px}.ps-capacity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ps-stat-top{font-size:11px}.ps-stat-icon{height:27px;width:27px}.ps-panel-head{padding:18px}.ps-project-row{padding:15px 18px}.ps-health-card > .ps-progress{margin:0 18px}.ps-health-metrics{padding:16px 18px 18px}.ps-health-body{padding:0 18px 18px}.ps-insights-grid{padding:0 18px 18px}.portal-studio .ps-page-intro > .grid > div:first-child > div:has(>h1){padding-right:0}.portal-studio .ps-page-insights{position:relative;top:auto;right:auto;margin-top:14px;width:max-content;max-width:100%}.portal-studio .ps-page-insights > aside{left:0;right:auto}.portal-studio .ps-page-intro > .grid > div:first-child > p{font-size:12px}.ps-storage-strip{align-items:flex-start}.ps-storage-values{gap:22px}.portal-studio .ps-page-hero > div > div > span:first-child{display:none}}
@media(max-width:440px){.ps-stats{grid-template-columns:1fr}.ps-stat{padding:14px}.ps-stat-bottom{font-size:10px}.ps-project-row{gap:10px;grid-template-columns:32px minmax(0,1fr)}.ps-project-row > .ps-status{grid-column:2;justify-self:start}.ps-capacity-content{padding:17px}.ps-capacity-heading{align-items:flex-start;flex-direction:column;gap:5px}.ps-capacity-grid{grid-template-columns:1fr}.ps-storage-strip{align-items:stretch}.ps-storage-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%}.portal-studio .af-ai-dock{right:14px;bottom:14px}.portal-studio .af-ai-dock-button{padding:10px 12px}.ps-panel-head{gap:8px}}
@media(prefers-reduced-motion:reduce){.portal-studio *, .portal-studio *::before,.portal-studio *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Secondary guidance stays available without displacing working content. */
.portal-studio .ps-assistant-disclosure {border:1px solid var(--ps-line);border-radius:10px;background:var(--ps-surface);font-size:12px}
.portal-studio .ps-assistant-disclosure > summary {display:flex;align-items:center;gap:15px;list-style:none;padding:15px 18px;cursor:pointer}
.portal-studio .ps-assistant-disclosure > summary::-webkit-details-marker {display:none}
.portal-studio .ps-assistant-title {display:flex;align-items:center;gap:10px;color:var(--ps-green);font-weight:500}
.portal-studio .ps-assistant-description {color:var(--ps-muted)}
.portal-studio .ps-assistant-toggle {margin-left:auto;color:var(--ps-muted);font-size:11px;white-space:nowrap}
.portal-studio .ps-assistant-disclosure > section {border:0;border-top:1px solid var(--ps-line)!important;border-radius:0!important;background:var(--ps-surface)!important}
.portal-studio .ps-page-intro {background:transparent!important}
.portal-studio .app-theme-content article > div[style*="linear-gradient"] {background:var(--ps-soft)!important}
.portal-studio[data-page="portal.files.index"] .app-theme-content header {top:var(--app-shell-header-height,73px);padding:14px 0;background:var(--ps-canvas)!important}
.portal-studio[data-page="portal.files.index"] .app-theme-content header h1 {font-size:25px}
.portal-studio[data-page="portal.projects.index"] .app-theme-content article > .h-20 {height:64px}
.portal-studio[data-page="portal.projects.index"] .app-theme-content article:hover {transform:none;border-color:var(--ps-green)!important}
@media(max-width:640px){.portal-studio .ps-assistant-description{display:none}.portal-studio .ps-assistant-disclosure > summary{padding:13px 15px;gap:10px}}

.portal-studio .app-theme-content section.ps-page-intro {background:transparent!important}
.portal-studio .af-modal-shell {z-index:200}
.portal-studio .af-modal-shell > .absolute {background:rgba(26,36,29,.35)}
.portal-studio .af-modal-panel > div {max-height:calc(100dvh - 32px);display:flex;flex-direction:column;border-radius:14px;border-color:var(--ps-line)!important}
.portal-studio .af-modal-panel > div > div {flex-shrink:0}
.portal-studio .af-modal-panel > div > .overflow-y-auto {min-height:0;flex-shrink:1}
.portal-studio .af-modal-panel p {font-size:13px;line-height:1.7}
.portal-studio a.ps-project-title:hover {color:var(--ps-green)}
@media(max-width:1023px){.portal-studio .ps-nav a{min-height:42px;font-size:13px}.portal-studio .ps-nav-heading{min-height:35px}}

.portal-studio .ps-header > div > div:last-child {margin-left:auto}
.ps-mobile-heading {display:none}
.portal-studio .ps-quick-create > summary {display:flex;align-items:center;gap:12px;list-style:none;padding:17px 20px;cursor:pointer;font-size:13px;font-weight:500}
.portal-studio .ps-quick-create > summary::-webkit-details-marker {display:none}
.portal-studio .ps-quick-create > summary > i:first-child {color:var(--ps-green)}
.portal-studio .ps-quick-create > summary > i:last-child {margin-left:auto;font-size:10px;color:var(--ps-muted)}
.portal-studio .ps-quick-create > summary > small {font-size:11px;color:var(--ps-muted);font-weight:400}
.portal-studio .ps-quick-create > section {border:0;border-top:1px solid var(--ps-line);border-radius:0!important}
@media(max-width:1023px){.ps-mobile-heading{display:inline-block;font-size:13px;font-weight:600;margin-left:10px;vertical-align:middle}.portal-studio .ps-header > div > div:first-child > div{display:flex;align-items:center}}
@media(max-width:480px){.ps-mobile-heading{font-size:12px;margin-left:8px}.portal-studio .ps-quick-create > summary > small{display:none}}

.portal-studio .app-theme-content .grid > * {min-width:0}
@media(max-width:640px){
    .portal-studio .app-theme-content [class*="group-hover:opacity-100"] {opacity:1}
    .portal-studio[data-page*="roles"] .app-theme-content .inline-flex:has(> button) {flex-wrap:wrap;max-width:100%}
    .portal-studio[data-page*="roles"] .app-theme-content article .flex:has(> .opacity-0) {flex-wrap:wrap}
}
.portal-studio [data-file-grid-item] p:not(.truncate) {overflow-wrap:anywhere}
html.dark .portal-studio {--theme-header-active:#35513d;--theme-header-active-rgb:53,81,61}
html.dark .portal-studio :is(a,button).text-white[style*="background: var(--theme-accent)"] {background:#35513d!important;color:#fff!important}

/* Portal usability: clear next actions and compact secondary information. */
.portal-studio .ps-setup{display:flex;align-items:center;gap:20px;padding:22px;border:1px solid var(--ps-line);border-radius:14px;background:var(--ps-soft)}
.portal-studio .ps-setup-icon{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;border-radius:13px;background:var(--ps-surface);color:var(--ps-green);font-size:21px}
.portal-studio .ps-setup-copy{flex:1;min-width:0}
.portal-studio .ps-setup h2{font-size:19px;font-weight:550;letter-spacing:-.025em;margin:6px 0}
.portal-studio .ps-setup-copy>p:not(.ps-kicker){font-size:13px;color:var(--ps-muted);line-height:1.6}
.portal-studio .ps-setup .ps-progress{max-width:300px;margin-top:13px}
.portal-studio .ps-overview-empty{grid-template-columns:minmax(0,1fr)}
.portal-studio .ps-overview-empty .ps-empty-projects{padding:24px}
.portal-studio :is(.ps-secondary-summary,.ps-list-summary)>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;cursor:pointer;font-size:13px;font-weight:500;list-style:none}
.portal-studio :is(.ps-secondary-summary,.ps-list-summary)>summary::-webkit-details-marker{display:none}
.portal-studio :is(.ps-secondary-summary,.ps-list-summary)>summary i{font-size:10px;color:var(--ps-muted);transition:transform .18s}
.portal-studio :is(.ps-secondary-summary,.ps-list-summary)[open]>summary i{transform:rotate(180deg)}
.portal-studio .ps-secondary-summary>.ps-health-grid{padding:0 16px 16px;gap:12px}
.portal-studio .ps-secondary-summary>.ps-panel{margin:0 16px 16px}
.portal-studio .ps-list-summary>section{border:0!important;border-top:1px solid var(--ps-line)!important;border-radius:0!important;box-shadow:none!important}
.portal-studio .ps-company-toggle{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.6;cursor:pointer}
.portal-studio .ps-company-toggle input{width:17px;height:17px;accent-color:var(--ps-green);flex-shrink:0}
.portal-studio .ps-form-note{padding:14px;border-radius:10px;background:var(--ps-soft);font-size:13px;line-height:1.7;color:var(--ps-muted)}
.portal-studio .app-theme-content :is(h2,h3){letter-spacing:-.02em}
.portal-studio .ps-page-intro .mt-5.flex.flex-wrap.gap-2{display:none}
.portal-studio .ps-page-intro> .grid>div:first-child>p{max-width:68ch;line-height:1.7}
.portal-studio .ps-nav a{font-size:13px;font-weight:450}
.portal-studio .ps-nav a[aria-current="page"]{font-weight:550}
.portal-studio .ps-nav-heading:focus-visible,.portal-studio summary:focus-visible{outline:2px solid var(--ps-green);outline-offset:3px}
@media(max-width:640px){
 .portal-studio .ps-setup{align-items:flex-start;gap:12px;padding:18px;flex-wrap:wrap}
 .portal-studio .ps-setup-icon{width:36px;height:36px;font-size:18px}
 .portal-studio .ps-setup-copy{flex-basis:calc(100% - 48px)}
 .portal-studio .ps-setup>a{width:100%;justify-content:center}
 .portal-studio .ps-setup h2{font-size:17px}
 .portal-studio .ps-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .portal-studio .ps-stat{padding:13px}
 .portal-studio .ps-stat-top{align-items:flex-start;gap:5px;font-size:11px;line-height:1.5}
 .portal-studio .ps-stat-icon{width:22px;height:22px;flex-shrink:0;font-size:11px}
 .portal-studio .ps-stat strong{font-size:26px;margin:10px 0}
 .portal-studio .ps-stat-bottom{line-height:1.5;align-items:flex-start;font-size:10px}
 .portal-studio .ps-stat-bottom>i{display:none}
 .portal-studio .ps-overview{gap:18px}
 .portal-studio .ps-page-intro .ps-page-insights{margin-top:8px}
}

/* Workflow navigation and page hierarchy. */
.portal-studio .ps-nav {gap:15px}
.portal-studio .ps-nav a {min-height:34px;font-size:12px;padding:7px 10px;gap:10px}
.portal-studio .ps-nav .ps-nav-heading {font-size:11px;text-transform:none;letter-spacing:.015em;font-weight:500;padding:0 10px 5px;color:var(--ps-muted)}
.portal-studio .ps-nav a[aria-current=page] {background:var(--ps-green-soft);color:var(--ps-green);box-shadow:inset 3px 0 0 var(--ps-green)}
.portal-studio .portal-nav-label {display:none}
.ps-context-nav {display:flex;flex-wrap:wrap;gap:4px;margin:0 0 24px;padding:0 0 12px;border-bottom:1px solid var(--ps-line)}
.ps-context-nav a {display:inline-flex;align-items:center;min-height:35px;padding:7px 13px;border-radius:8px;color:var(--ps-muted);font-size:13px;font-weight:500;line-height:1.4}
.ps-context-nav a:hover {background:var(--ps-soft);color:var(--ps-ink)}
.ps-context-nav a[aria-current=page] {background:var(--ps-green-soft);color:var(--ps-green)}
.portal-studio .ps-workspace-tools {border:1px solid var(--ps-line);border-radius:10px;background:var(--ps-surface);overflow:hidden}
.portal-studio .ps-workspace-tools > summary {display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:10px 14px;font-size:12px;font-weight:500;color:var(--ps-muted)}
.portal-studio .ps-workspace-tools > summary > i:last-child {margin-left:auto;font-size:10px}
.portal-studio .ps-workspace-tools > summary::-webkit-details-marker {display:none}
.portal-studio .ps-workspace-tools[open] > summary {border-bottom:1px solid var(--ps-line);color:var(--ps-green)}
.portal-studio .ps-workspace-tools > section {border:0!important;border-radius:0!important}
.portal-studio .ps-workspace-tools .ps-summary-content {border-top:1px solid var(--ps-line)}
.portal-studio .ps-page-metrics article {padding:17px 20px;gap:12px}
.portal-studio .ps-page-metrics article > span {height:34px;width:34px;border-radius:9px}
.portal-studio .ps-page-metrics article .text-3xl {font-size:25px;font-weight:500;letter-spacing:-.03em}
.portal-studio .ps-page-metrics article .mt-4:has(> .h-1\.5) {display:none}
.portal-studio .ps-page-intro {padding-bottom:18px!important}
.portal-studio .ps-page-intro > .grid > div:first-child > .flex:has(> a,> button,> [x-data]) {margin-top:14px}
.portal-studio [data-empty-workspace=true] .ps-page-insights,
.portal-studio [data-empty-workspace=true] .ps-page-intro > .grid > div:first-child > .flex:has(>span):not(:has(h1)) {display:none}
.portal-studio .ps-draft-notice {font-size:12px;line-height:1.65;color:var(--ps-muted);padding:12px 15px;border:1px solid var(--ps-line);border-radius:10px;background:var(--ps-soft)}
.portal-studio .app-theme-content h1 {font-size:27px;font-weight:600;letter-spacing:-.035em}
.portal-studio .app-theme-content h2 {font-weight:600;letter-spacing:-.02em}
@media(max-width:760px){
 .portal-studio .app-theme-content[data-workspace=page] {padding:18px 16px 70px}
 .portal-studio .ps-context-nav {gap:3px;flex-wrap:nowrap;overflow-x:auto;max-width:100%;margin-bottom:18px;padding-bottom:10px;scrollbar-width:thin}
 .portal-studio .ps-context-nav a {flex-shrink:0;font-size:12px;min-height:34px;padding:7px 10px}
 .portal-studio .ps-page-intro > .grid > div:first-child > div:has(>h1) {padding-right:0;margin-top:5px}
 .portal-studio .ps-page-intro > .grid > div:first-child > :first-child:is(span) {display:none}
 .portal-studio .ps-page-intro > .grid > div:first-child > p {font-size:13px;line-height:1.6}
 .portal-studio .ps-page-intro > .grid > div:first-child > .flex:has(>a,>button,>[x-data]) {gap:7px;margin-top:12px}
 .portal-studio .ps-page-intro > .grid > div:first-child > .flex > a {height:34px;font-size:11px;padding-left:10px;padding-right:10px}
 .portal-studio .ps-page-intro {padding-bottom:15px!important}
 .portal-studio .ps-page-metrics article {padding:14px 16px}
 .portal-studio .app-theme-content h1 {font-size:24px}
 .portal-studio .ps-nav a {min-height:38px;font-size:13px}
 .portal-studio .ps-nav {gap:16px}
}

.portal-studio [data-empty-workspace=true] .ps-page-intro .ps-operational-summary {display:none}
.portal-studio .ps-page-intro :is(a,button).text-white {background:#176753!important;color:#fff!important}
html.dark .portal-studio .ps-page-intro :is(a,button).text-white {background:#9ed3b8!important;color:#193128!important}
