:root {
    --portal-ink: #0b1f33;
    --portal-text: #243747;
    --portal-muted: #63717d;
    --portal-paper: #f4f1ea;
    --portal-canvas: #faf9f6;
    --portal-line: #dce0df;
    --portal-coral: #c2413b;
    --portal-success: #206546;
    --portal-radius: 14px;
    color-scheme: light;
    font-family: Inter, "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
    color: var(--portal-text);
    background: var(--portal-canvas);
    font-synthesis: none;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
a { color: var(--portal-coral); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
button { cursor: pointer; }
button:disabled, input:disabled, select:disabled { cursor: not-allowed; opacity: .55; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, [tabindex="0"]:focus-visible { outline: 3px solid #c2413b; outline-offset: 4px; }
h1, h2, h3, p { margin: 0 0 1rem; }
h1, h2, h3 { color: var(--portal-ink); line-height: 1.2; letter-spacing: -.025em; }
h1 { font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 650; }
h2 { font-size: 1.3rem; font-weight: 650; }
h3 { font-size: 1.1rem; font-weight: 650; }
p { color: var(--portal-muted); }
img { display: block; max-width: 100%; height: auto; }
form { margin: 0; }
code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .8rem; }
.portal-skip { position: fixed; top: 12px; left: 12px; z-index: 10; transform: translateY(-150%); border-radius: 6px; padding: 10px 18px; background: #fff; color: var(--portal-ink); }
.portal-skip:focus { transform: translateY(0); }
.portal-local-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .45rem; min-height: 34px; padding: .35rem 1rem; background: #fff0d5; color: #64451a; border-bottom: 1px solid #e4d2b1; font-size: .73rem; font-weight: 600; text-align: center; }
.portal-local-dot { width: 6px; height: 6px; background: #966f28; border-radius: 50%; }
.portal-shell { display: flex; min-height: 100vh; }
body:has(.portal-local-banner) .portal-shell { min-height: calc(100vh - 34px); }
.portal-main-column { min-width: 0; display: flex; flex: 1; flex-direction: column; }
.portal-sidebar { display: flex; flex-direction: column; flex: 0 0 244px; background: var(--portal-ink); padding: 34px 22px 26px; color: #d0d9df; }
.portal-brand { display: block; padding: 0 10px; margin-bottom: 46px; color: #aebdc9; text-decoration: none; }
.portal-brand img { filter: brightness(0) invert(1); width: 166px; }
.portal-brand span { display: block; font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; margin-top: 16px; }
.portal-nav { display: flex; flex-direction: column; gap: 7px; }
.portal-nav a { display: flex; gap: 12px; align-items: center; color: #c4d0da; padding: 11px 13px; border-radius: 8px; text-decoration: none; font-size: .86rem; font-weight: 500; }
.portal-nav a:hover { color: #fff; background: #ffffff09; }
.portal-nav a[aria-current="page"] { color: #fff; background: #24364a; box-shadow: inset 3px 0 0 #e28c80; }
.portal-nav-icon { display: inline-flex; justify-content: center; align-items: center; width: 20px; font-size: 1.1rem; }
.portal-sidebar-bottom { margin-top: auto; padding: 60px 10px 0; display: flex; flex-direction: column; gap: 13px; }
.portal-sidebar-bottom a, .portal-sidebar-logout { display: flex; width: 100%; justify-content: space-between; background: none; border: 0; color: #c0cbd5; text-decoration: none; font-size: .78rem; padding: 0; }
.portal-sidebar-bottom a:hover, .portal-sidebar-logout:hover { color: #fff; }
.portal-sidebar-bottom form { border-top: 1px solid #ffffff20; padding-top: 20px; margin-top: 7px; }
.portal-topbar { min-height: 93px; padding: 20px clamp(22px, 3.8vw, 56px); display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #fff; border-bottom: 1px solid var(--portal-line); }
.portal-topbar-label { font-size: .8rem; color: var(--portal-muted); }
.portal-topbar-label span { padding: 0 12px; color: #b1b9bf; }
.portal-profile { display: inline-flex; gap: 11px; align-items: center; color: var(--portal-ink); text-decoration: none; font-size: .82rem; font-weight: 600; }
.portal-profile small { display: block; font-size: .65rem; font-weight: 400; color: var(--portal-muted); }
.portal-topbar-actions { display: flex; align-items: center; justify-content: flex-end; gap: 23px; min-width: 0; }
.portal-topbar-actions > form { flex-shrink: 0; }
.portal-topbar-logout { display: inline-flex; align-items: center; gap: 11px; padding: 9px 12px; min-height: 39px; border: 1px solid #cbd2d7; background: #fff; color: var(--portal-ink); border-radius: 6px; font-size: .72rem; font-weight: 600; white-space: nowrap; }
.portal-topbar-logout:hover { background: var(--portal-paper); border-color: #9aa8b3; }
.portal-avatar { background: var(--portal-paper); border: 1px solid #e6e0d5; border-radius: 50%; width: 37px; height: 37px; display: inline-flex; align-items: center; justify-content: center; font-size: .85rem; flex-shrink: 0; }
.portal-public-brand { width: 182px; }
.portal-back-link { font-size: .8rem; text-decoration: none; color: var(--portal-muted); white-space: nowrap; }
.portal-back-link span { margin-left: 8px; }
.portal-content { width: 100%; max-width: 1450px; margin: 0 auto; padding: clamp(28px, 4vw, 55px) clamp(22px, 3.8vw, 56px) 65px; }
.portal-content--public { max-width: 1260px; padding-top: clamp(48px, 7vw, 94px); }
.portal-footer { display: flex; justify-content: space-between; gap: 16px; margin-top: auto; padding: 20px clamp(22px, 3.8vw, 56px); color: var(--portal-muted); font-size: .7rem; border-top: 1px solid var(--portal-line); }
.portal-footer a { color: var(--portal-muted); text-decoration: none; }
.portal-login-layout { display: grid; grid-template-columns: 1fr .93fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
.portal-login-intro h1 { font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif; font-size: clamp(2.8rem, 4.3vw, 4.2rem); line-height: 1.07; font-weight: 500; margin-bottom: 24px; }
.portal-eyebrow { color: var(--portal-coral); text-transform: uppercase; font-size: .65rem; letter-spacing: .16em; font-weight: 750; margin-bottom: 17px; }
.portal-intro-copy { font-size: 1.04rem; max-width: 340px; }
.portal-intro-note { display: flex; gap: 15px; align-items: center; margin-top: 38px; }
.portal-intro-note p { margin: 0; font-size: .78rem; }
.portal-note-mark { display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; background: #e9e5dc; color: var(--portal-ink); border-radius: 12px; font-family: Georgia, serif; font-size: 1.65rem; }
.portal-card { background: #fff; border: 1px solid var(--portal-line); border-radius: var(--portal-radius); padding: 28px; }
.portal-card p:last-child { margin-bottom: 0; }
.portal-login-card { padding: clamp(26px, 3vw, 43px); box-shadow: 0 15px 50px #0b1f3305; }
.portal-kicker { display: block; font-size: .67rem; font-weight: 650; letter-spacing: .06em; color: var(--portal-muted); margin-bottom: 13px; }
.portal-login-card h2 { font-size: 1.85rem; margin-bottom: 13px; }
.portal-login-card > p { font-size: .88rem; margin-bottom: 28px; }
.portal-form { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.portal-form label, .portal-invitation-created label { display: block; color: var(--portal-text); font-size: .75rem; font-weight: 650; }
.portal-form label + input, .portal-form label + select { margin-top: -3px; }
input, select { color: var(--portal-ink); width: 100%; min-width: 0; border: 1px solid #cbd2d7; border-radius: 7px; padding: 11px 12px; background: #fff; font-size: .85rem; line-height: 1.4; min-height: 44px; }
input::placeholder { color: #858e97; }
select { padding-right: 25px; }
.portal-form input, .portal-form select { width: 100%; }
.portal-form .portal-field-help { font-size: .73rem; margin: 0 0 7px; line-height: 1.55; }
.portal-button { display: inline-flex; align-items: center; justify-content: center; gap: 17px; border-radius: 7px; min-height: 44px; padding: 11px 18px; border: 1px solid transparent; font-size: .78rem; font-weight: 650; line-height: 1.4; text-decoration: none; }
.portal-button:hover { text-decoration: none; }
.portal-button--primary { background: var(--portal-coral); color: #fff; border-color: var(--portal-coral); }
.portal-button--primary:hover { background: #a83430; border-color: #a83430; }
.portal-button--secondary { background: #fff; color: var(--portal-ink); border-color: #cbd2d7; }
.portal-button--secondary:hover { background: var(--portal-canvas); border-color: #9aa8b3; }
.portal-button--wide { width: 100%; justify-content: space-between; }
.portal-login-footnote { font-size: .7rem !important; text-align: center; margin: 15px 0 0 !important; }
.portal-divider { height: 1px; background: var(--portal-line); margin: 27px 0 21px; }
.portal-small { font-size: .74rem; color: var(--portal-muted); }
.portal-local-panel { background: var(--portal-paper); border: 1px dashed #cfc7b7; border-radius: var(--portal-radius); padding: 28px 32px; margin-top: 60px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 38px; }
.portal-local-panel h2 { font-size: 1.07rem; }
.portal-local-panel p { font-size: .77rem; }
.portal-local-panel .portal-eyebrow { color: #806038; font-size: .61rem; }
.portal-test-accounts { margin: 0; }
.portal-test-accounts > div { display: grid; grid-template-columns: 112px 1fr; gap: 15px; padding: 9px 0; border-bottom: 1px solid #ddd6ca; }
.portal-test-accounts > div:first-child { padding-top: 0; }
.portal-test-accounts > div:last-child { border: 0; padding-bottom: 0; }
.portal-test-accounts dt { font-size: .71rem; font-weight: 650; padding-top: 2px; }
.portal-test-accounts dd { margin: 0; min-width: 0; }
.portal-test-accounts code { overflow-wrap: anywhere; }
.portal-test-accounts dd span { display: block; font-size: .68rem; color: var(--portal-muted); }
.portal-page-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 38px; }
.portal-page-heading .portal-eyebrow { margin-bottom: 11px; }
.portal-page-heading h1 { margin-bottom: 12px; }
.portal-page-heading p:last-child { margin-bottom: 0; font-size: .9rem; }
.portal-page-heading > .portal-badge { margin-top: 7px; }
.portal-badge { display: inline-flex; align-items: center; padding: 5px 9px; background: var(--portal-paper); color: var(--portal-text); border: 1px solid #e5e1d9; border-radius: 5px; font-size: .65rem; font-weight: 600; white-space: nowrap; }
.portal-badge--success { background: #eaf4ee; border-color: #d4e8dc; color: var(--portal-success); }
.portal-badge--muted { background: #f2f3f4; border-color: #e4e7e9; color: var(--portal-muted); }
.portal-section-heading { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-bottom: 17px; }
.portal-section-heading h2 { margin: 0; font-size: 1.05rem; }
.portal-count { font-size: .73rem; color: var(--portal-muted); }
.portal-workspaces { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.portal-workspace { display: flex; gap: 20px; padding: 25px; border: 1px solid var(--portal-line); border-radius: var(--portal-radius); background: #fff; text-decoration: none; color: var(--portal-text); transition: border-color .15s, box-shadow .15s; }
.portal-workspace:hover { text-decoration: none; border-color: #a1acb4; box-shadow: 0 6px 24px #0b1f3305; }
.portal-workspace--selected { border-color: #bdc7cc; box-shadow: inset 0 3px 0 var(--portal-ink); }
.portal-company-mark { display: inline-flex; width: 45px; height: 45px; border: 1px solid #e9e2d7; border-radius: 11px; background: var(--portal-paper); align-items: center; justify-content: center; flex-shrink: 0; color: var(--portal-ink); font-family: Georgia, serif; font-size: 1.65rem; }
.portal-workspace-copy { min-width: 0; flex: 1; }
.portal-workspace-copy > small { font-size: .65rem; color: var(--portal-muted); display: block; margin-bottom: 7px; }
.portal-workspace h3 { margin-bottom: 23px; overflow-wrap: anywhere; }
.portal-workspace-copy > span { font-size: .73rem; font-weight: 600; display: flex; justify-content: space-between; }
.portal-workspace-detail { display: flex; justify-content: space-between; gap: 30px; align-items: center; margin-top: 24px; }
.portal-workspace-detail > div { max-width: 560px; }
.portal-workspace-detail p { font-size: .84rem; }
.portal-workspace-detail .portal-button { flex-shrink: 0; }
.portal-dashboard-bottom { display: grid; grid-template-columns: 1.2fr 1fr; gap: 20px; margin-top: 28px; }
.portal-dashboard-bottom h2 { font-size: 1.18rem; }
.portal-dashboard-bottom p { font-size: .82rem; }
.portal-muted-card { background: var(--portal-paper); border-color: #e1dccf; }
.portal-text-link { font-size: .8rem; font-weight: 650; display: inline-flex; align-items: center; gap: 16px; text-decoration: none; }
.portal-text-link:hover { text-decoration: underline; }
.portal-empty { text-align: center; padding: 45px 25px; }
.portal-empty-symbol { display: block; color: #6f817c; font-size: 2.5rem; margin-bottom: 12px; }
.portal-empty p { max-width: 410px; margin: 0 auto 22px; font-size: .86rem; }
.portal-account-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 28px; }
.portal-account-grid > .portal-card > p { font-size: .82rem; }
.portal-details { margin: 14px 0 25px; }
.portal-details > div { padding: 14px 0; border-bottom: 1px solid #edf0ef; display: grid; grid-template-columns: 125px 1fr; gap: 15px; }
.portal-details dt { font-size: .74rem; color: var(--portal-muted); }
.portal-details dd { margin: 0; font-size: .8rem; font-weight: 550; overflow-wrap: anywhere; }
.portal-session-marker { display: flex; align-items: center; gap: 12px; padding: 19px 0 24px; margin: 18px 0 23px; border-bottom: 1px solid var(--portal-line); }
.portal-session-marker > div { flex: 1; }
.portal-session-marker strong { display: block; font-size: .8rem; }
.portal-session-marker small { display: block; font-size: .7rem; color: var(--portal-muted); }
.portal-status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--portal-success); }
.portal-admin-forms { display: grid; grid-template-columns: .78fr 1.22fr; gap: 24px; margin-bottom: 30px; }
.portal-admin-forms h2 { margin-bottom: 22px; }
.portal-step-label { display: block; color: var(--portal-coral); font-size: .7rem; font-weight: 700; margin-bottom: 14px; }
.portal-step-label span { color: var(--portal-muted); font-weight: 450; margin-left: 10px; }
.portal-admin-forms .portal-button { margin-top: 9px; }
.portal-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; width: 100%; }
.portal-form-row > div { min-width: 0; }
.portal-form-row label { margin-bottom: 9px; }
.portal-table-card { padding: 0; overflow: hidden; margin-bottom: 28px; }
.portal-card-heading { padding: 25px 28px 21px; }
.portal-card-heading h2 { font-size: 1.1rem; margin-bottom: 8px; }
.portal-card-heading p { font-size: .78rem; margin-bottom: 0; max-width: 700px; }
.portal-table-scroll { overflow-x: auto; scrollbar-width: thin; }
table { border-collapse: collapse; width: 100%; text-align: left; font-size: .76rem; }
th { background: #f7f8f7; color: var(--portal-muted); font-size: .64rem; font-weight: 650; padding: 12px 20px; border-block: 1px solid var(--portal-line); white-space: nowrap; }
td { padding: 17px 20px; border-bottom: 1px solid #eaedeb; vertical-align: middle; }
th:first-child, td:first-child { padding-left: 28px; }
th:last-child, td:last-child { padding-right: 28px; }
tbody tr:last-child td { border-bottom: 0; }
td strong { font-weight: 600; }
td small { display: block; font-size: .68rem; color: var(--portal-muted); margin-top: 3px; }
.portal-row-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.portal-action-danger, .portal-action-link { background: none; border: none; padding: 2px 0; text-align: left; font-size: .71rem; line-height: 1.4; white-space: nowrap; color: #aa3c37; }
.portal-action-link { color: var(--portal-ink); }
.portal-action-danger:hover, .portal-action-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.portal-table-empty { font-size: .82rem; padding: 0 28px 28px; }
.portal-notice { padding: 16px 20px; border: 1px solid #d5dfe5; background: #eff4f7; color: #284454; border-radius: 9px; font-size: .84rem; margin-bottom: 24px; overflow-wrap: anywhere; }
.portal-notice--success { border-color: #cadecf; background: #edf6ee; color: #24543a; }
.portal-notice--error { border-color: #ecc7c1; background: #fff1ee; color: #91352d; }
.portal-invitation-created { padding: 23px 26px; }
.portal-invitation-created h2 { font-size: 1.1rem; }
.portal-invitation-created p { color: #446070; font-size: .8rem; }
.portal-invitation-created label { margin-bottom: 8px; }
.portal-invitation-created input { margin-bottom: 14px; font-size: .76rem; }
.portal-centered-card { width: 100%; max-width: 580px; margin: 22px auto 55px; padding: clamp(27px, 4vw, 47px); }
.portal-centered-card h1 { font-size: clamp(1.9rem, 3vw, 2.45rem); margin-bottom: 20px; }
.portal-centered-card > p { font-size: .89rem; }
.portal-centered-card .portal-eyebrow { font-size: .66rem; }
.portal-centered-card .portal-details { margin: 22px 0 27px; }
.portal-help-line { font-size: .77rem !important; margin-top: 22px; }
.portal-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.portal-sample-note { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 15px; padding: 14px 18px; border: 1px dashed #d6c9b2; border-radius: 8px; background: #f7f1e6; color: #756141; font-size: .73rem; margin-bottom: 26px; }
.portal-sample-label { font-weight: 700; color: #6e5330; }
.portal-file-filter { display: flex; align-items: flex-end; gap: 12px; margin-bottom: 25px; }
.portal-file-filter > div { width: min(340px, 100%); min-width: 0; }
.portal-file-filter label { display: block; font-size: .73rem; font-weight: 650; margin-bottom: 7px; }
.portal-files-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.portal-file-heading-mark { color: #a5b1b8; font-size: 1.65rem; line-height: 1; }
.portal-file-identity { display: flex; align-items: center; gap: 13px; }
.portal-file-identity > div { min-width: 0; }
.portal-file-identity strong { display: block; overflow-wrap: anywhere; color: var(--portal-ink); }
.portal-file-identity small { overflow-wrap: anywhere; line-height: 1.5; }
.portal-file-type { display: inline-flex; align-items: center; justify-content: center; width: 43px; height: 47px; flex-shrink: 0; border: 1px solid #e0dcd2; border-radius: 7px; background: #f5f2ec; color: #57645e; font-size: .56rem; font-weight: 700; letter-spacing: .025em; }
.portal-files-table th { padding-block: 13px; }
.portal-files-table td { padding-block: 23px; }
.portal-files-table .portal-file-name-cell { min-width: 250px; max-width: 530px; }
.portal-file-version, .portal-file-size, .portal-file-date { white-space: nowrap; }
.portal-download-button { padding: 9px 13px; min-height: 39px; font-size: .72rem; white-space: nowrap; }
.portal-files-help { font-size: .78rem; margin-top: -5px; }
.portal-files-empty { padding: 18px 28px 42px; text-align: center; }
.portal-files-empty .portal-empty-symbol { color: #9aa7a3; font-size: 2rem; }
.portal-files-empty h3 { font-size: 1.1rem; }
.portal-files-empty p { max-width: 405px; margin: 0 auto 18px; font-size: .83rem; }
.portal-file-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 28px; }
.portal-file-stats > div { display: flex; flex-direction: column; padding: 22px 24px; border: 1px solid var(--portal-line); border-radius: 11px; background: #fff; }
.portal-file-stats > div > span { font-size: .73rem; font-weight: 600; }
.portal-file-stats strong { color: var(--portal-ink); font-size: 2.1rem; font-weight: 600; line-height: 1.1; margin: 12px 0 9px; }
.portal-file-stats small { color: var(--portal-muted); font-size: .66rem; }
.portal-publishing-table td:first-child { min-width: 265px; max-width: 420px; }
.portal-publishing-table .portal-file-identity { align-items: flex-start; }
.portal-publishing-table .portal-date-cell { min-width: 110px; }
.portal-publishing-table .portal-row-actions { min-width: 147px; }
.portal-publish-actions { gap: 11px; }
.portal-publish-actions a { text-decoration: none; }
.portal-button--compact { padding: 8px 11px; min-height: 35px; font-size: .68rem; white-space: nowrap; gap: 12px; }
.portal-badge--draft { color: #816030; border-color: #e9daba; background: #fff6e6; }
.portal-roots-table td { min-width: 115px; }
.portal-roots-table td:first-child { min-width: 150px; }
.portal-roots-table td:nth-child(3) { min-width: 180px; max-width: 330px; }
.portal-source-path { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; font-size: .64rem; margin-top: 5px; }
.portal-source-status { display: flex; align-items: center; gap: 16px; border: 1px solid var(--portal-line); border-radius: 10px; padding: 20px 23px; margin-bottom: 27px; background: #f1f3f3; }
.portal-source-status > div { flex: 1; }
.portal-source-status strong { display: block; font-size: .81rem; margin-bottom: 5px; color: var(--portal-ink); }
.portal-source-status p { font-size: .74rem; margin: 0; }
.portal-root-setup { padding: 0 28px; border-top: 1px solid var(--portal-line); }
.portal-root-setup summary { padding: 20px 0; font-size: .8rem; font-weight: 600; color: var(--portal-ink); cursor: pointer; }
.portal-root-setup summary:focus-visible { outline: 3px solid var(--portal-coral); outline-offset: 4px; }
.portal-root-setup-content { padding: 0 0 28px; max-width: 740px; }
.portal-root-setup-content > p { font-size: .78rem; }
.portal-root-setup-content .portal-form { gap: 12px; }
.portal-drive-card { margin-bottom: 28px; border-color: #cddad4; background: #fff; box-shadow: inset 0 3px 0 #597968; }
.portal-drive-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.portal-drive-identity { display: flex; align-items: center; gap: 16px; min-width: 0; }
.portal-drive-identity > div { min-width: 0; }
.portal-drive-identity .portal-eyebrow { font-size: .6rem; color: #62766b; margin: 0 0 7px; }
.portal-drive-identity h2 { font-size: 1.5rem; margin-bottom: 5px; }
.portal-drive-identity p:last-child { margin: 0; font-size: .79rem; overflow-wrap: anywhere; }
.portal-drive-mark { display: inline-flex; align-items: center; justify-content: center; width: 53px; height: 57px; flex-shrink: 0; border: 1px solid #d7e3da; border-radius: 11px; background: #edf3ee; color: #476352; font-size: .8rem; letter-spacing: .025em; font-weight: 700; }
.portal-drive-description { font-size: .8rem; max-width: 660px; }
.portal-drive-refresh-row { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 24px; }
.portal-drive-refresh-row > form { flex-shrink: 0; }
.portal-drive-details { display: flex; flex-wrap: wrap; gap: 16px 35px; margin: 0; }
.portal-drive-details dt { font-size: .67rem; color: var(--portal-muted); margin-bottom: 6px; }
.portal-drive-details dd { font-size: .78rem; font-weight: 650; color: var(--portal-ink); margin: 0; }
.portal-drive-details dd span { display: block; font-size: .63rem; font-weight: 400; color: var(--portal-muted); margin-top: 3px; }
.portal-drive-steps { display: flex; flex-wrap: wrap; gap: 12px 28px; list-style: none; padding: 20px 0 0; margin: 25px 0 0; border-top: 1px solid var(--portal-line); }
.portal-drive-steps li { display: flex; align-items: center; gap: 8px; color: var(--portal-muted); font-size: .73rem; }
.portal-drive-steps li > span { display: inline-flex; align-items: center; justify-content: center; width: 21px; height: 21px; border-radius: 50%; background: var(--portal-paper); color: var(--portal-ink); font-size: .63rem; font-weight: 650; }
.portal-workspace-actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; min-width: 190px; flex-shrink: 0; }
.portal-workspace-actions .portal-button { justify-content: space-between; }
.portal-dashboard-bottom--projects { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portal-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.portal-preview-card { display: flex; flex-direction: column; min-width: 0; padding: 28px; }
.portal-preview-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 29px; }
.portal-preview-site-mark { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 12px; border: 1px solid #dedbd1; background: var(--portal-paper); color: var(--portal-ink); font-family: Georgia, serif; font-size: 1.8rem; }
.portal-preview-card .portal-kicker { margin-bottom: 9px; font-size: .71rem; }
.portal-preview-card h3 { font-size: 1.4rem; margin-bottom: 15px; overflow-wrap: anywhere; }
.portal-preview-card > p { font-size: .83rem; max-width: 350px; }
.portal-preview-card-action { margin-top: auto; padding-top: 17px; }
.portal-preview-caption { display: block; text-align: center; color: var(--portal-muted); font-size: .68rem; margin-top: 12px; }
.portal-preview-card--paused { background: #f7f7f5; }
.portal-preview-card--paused .portal-preview-site-mark { background: #efefeb; border-color: #dedfdb; color: #829087; }
.portal-staging-table td:first-child { min-width: 200px; max-width: 330px; }
.portal-staging-table td:nth-child(2) { min-width: 150px; }
.portal-staging-table td:nth-child(4) { min-width: 150px; font-size: .71rem; }
.portal-staging-table strong { overflow-wrap: anywhere; }
.portal-staging-actions { min-width: 130px; gap: 12px; }

@media (min-width: 1600px) {
    .portal-sidebar { flex-basis: 270px; padding-inline: 30px; }
}

@media (max-width: 1150px) {
    .portal-sidebar { flex-basis: 210px; padding-inline: 15px; }
    .portal-brand img { width: 156px; }
    .portal-admin-forms { grid-template-columns: 1fr; }
    .portal-admin-forms .portal-form { max-width: 650px; }
    .portal-account-grid { grid-template-columns: 1fr; }
    .portal-workspace { padding: 22px; gap: 14px; }
    .portal-workspace-detail { align-items: flex-start; flex-direction: column; gap: 20px; }
    .portal-login-layout { gap: 45px; }
    .portal-local-panel { grid-template-columns: 1fr 1.15fr; padding: 27px; gap: 27px; }
    .portal-test-accounts > div { grid-template-columns: 1fr; gap: 2px; }
    .portal-dashboard-bottom--projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-dashboard-bottom--projects > .portal-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
    .portal-shell { flex-direction: column; }
    .portal-sidebar { flex: none; flex-direction: row; flex-wrap: wrap; align-items: center; padding: 19px 22px 14px; gap: 20px; }
    .portal-brand { padding: 0; margin: 0 auto 0 0; }
    .portal-brand img { width: 139px; }
    .portal-brand span { font-size: .57rem; letter-spacing: .16em; margin-top: 9px; }
    .portal-nav { flex-direction: row; flex-wrap: wrap; gap: 5px; }
    .portal-nav a { padding: 9px 11px; font-size: .78rem; }
    .portal-nav-icon { display: none; }
    .portal-nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 #e28c80; }
    .portal-sidebar-bottom { display: none; }
    .portal-topbar { min-height: 77px; padding-block: 17px; }
    .portal-profile { font-size: .75rem; }
    .portal-profile small { font-size: .6rem; }
    .portal-topbar-actions { gap: 15px; }
    .portal-content { padding-top: 32px; }
    .portal-content--public { padding-top: 50px; }
    .portal-login-layout { gap: 32px; grid-template-columns: .95fr 1fr; }
    .portal-login-intro h1 { font-size: 2.7rem; }
    .portal-login-card { padding: 27px; }
    .portal-intro-copy { font-size: .9rem; }
    .portal-intro-note { margin-top: 27px; }
    .portal-intro-note p { font-size: .69rem; }
    .portal-login-card h2 { font-size: 1.55rem; }
    .portal-login-card > p { font-size: .79rem; }
}

@media (max-width: 620px) {
    .portal-sidebar { display: block; padding: 21px 22px 12px; }
    .portal-brand { display: flex; justify-content: space-between; align-items: center; }
    .portal-brand img { width: 142px; }
    .portal-brand span { margin-top: 0; }
    .portal-nav { margin-top: 23px; gap: 7px; }
    .portal-nav a { flex: 1 1 calc(33.333% - 7px); justify-content: center; font-size: .74rem; padding: 10px 8px; }
    .portal-topbar-label { font-size: .68rem; }
    .portal-topbar-label span { padding: 0 5px; }
    .portal-topbar { gap: 12px; }
    .portal-profile { gap: 7px; max-width: 100%; min-width: 0; }
    .portal-profile > span:last-child { min-width: 0; overflow-wrap: anywhere; }
    .portal-avatar { width: 29px; height: 29px; font-size: .7rem; }
    .portal-content { padding-inline: 20px; padding-bottom: 40px; }
    .portal-public .portal-topbar { min-height: 84px; padding-inline: 22px; }
    .portal-public-brand { width: 147px; }
    .portal-back-link { font-size: .68rem; }
    .portal-back-link span { margin-left: 3px; }
    .portal-login-layout { display: block; }
    .portal-login-intro { margin-bottom: 34px; }
    .portal-login-intro h1 { font-size: 2.8rem; }
    .portal-intro-copy { max-width: 340px; }
    .portal-intro-note { display: none; }
    .portal-local-panel { display: block; padding: 25px; margin-top: 30px; }
    .portal-test-accounts { margin-top: 25px; }
    .portal-test-accounts > div { grid-template-columns: 105px 1fr; gap: 10px; }
    .portal-page-heading { margin-bottom: 30px; gap: 15px; flex-direction: column; }
    .portal-page-heading > .portal-badge { margin-top: 0; }
    .portal-page-heading h1 { font-size: 2rem; }
    .portal-page-heading p:last-child { font-size: .82rem; }
    .portal-workspaces, .portal-dashboard-bottom { grid-template-columns: 1fr; gap: 16px; }
    .portal-card { padding: 24px; }
    .portal-workspace { padding: 24px; }
    .portal-workspace h3 { margin-bottom: 16px; }
    .portal-dashboard-bottom { margin-top: 23px; }
    .portal-details > div { grid-template-columns: 100px 1fr; gap: 10px; }
    .portal-form-row { grid-template-columns: 1fr; }
    .portal-admin-forms { gap: 18px; }
    .portal-account-grid { gap: 18px; }
    .portal-table-card { padding: 0; }
    .portal-card-heading { padding: 23px 24px 19px; }
    .portal-table-empty { padding-inline: 24px; }
    .portal-footer { font-size: .63rem; padding-inline: 20px; }
    .portal-centered-card { margin-top: 0; padding: 27px; }
    .portal-authenticated .portal-topbar { flex-wrap: wrap; gap: 13px; }
    .portal-authenticated .portal-topbar-label { display: none; }
    .portal-topbar-actions { justify-content: space-between; width: 100%; gap: 16px; }
    .portal-topbar-logout { min-height: 40px; font-size: .7rem; padding-inline: 12px; }
    .portal-file-filter { gap: 10px; }
    .portal-file-filter .portal-button { white-space: nowrap; padding-inline: 14px; }
    .portal-file-stats { gap: 9px; }
    .portal-file-stats > div { padding: 17px 13px; }
    .portal-file-stats > div > span { font-size: .65rem; }
    .portal-file-stats strong { font-size: 1.8rem; }
    .portal-file-stats small { font-size: .6rem; }
    .portal-files-table, .portal-files-table tbody { display: block; }
    .portal-files-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .portal-files-table tr { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 15px 8px; padding: 23px 24px; border-top: 1px solid var(--portal-line); }
    .portal-files-table td, .portal-files-table td:first-child, .portal-files-table td:last-child { display: block; padding: 0; border: 0; min-width: 0; max-width: none; }
    .portal-files-table .portal-file-name-cell, .portal-files-table .portal-file-download { grid-column: 1 / -1; }
    .portal-files-table td[data-label]::before { content: attr(data-label); display: block; color: var(--portal-muted); font-size: .62rem; margin-bottom: 2px; }
    .portal-file-identity { gap: 12px; }
    .portal-file-identity strong { font-size: .82rem; }
    .portal-file-identity small { font-size: .66rem; }
    .portal-file-download .portal-download-button { width: 100%; justify-content: space-between; }
    .portal-files-table .portal-file-date { white-space: normal; }
    .portal-source-status { flex-wrap: wrap; padding: 20px; gap: 12px; }
    .portal-source-status > .portal-badge { margin-left: 55px; }
    .portal-root-setup { padding-inline: 24px; }
    .portal-drive-heading { flex-direction: column; gap: 15px; }
    .portal-drive-card { padding: 23px; }
    .portal-drive-refresh-row { flex-direction: column; align-items: stretch; gap: 23px; }
    .portal-drive-refresh-row .portal-button { width: 100%; justify-content: space-between; }
    .portal-drive-details { gap: 17px 25px; }
    .portal-drive-details > div:first-child { flex-basis: 100%; }
    .portal-drive-steps { flex-direction: column; gap: 12px; }
    .portal-preview-grid, .portal-dashboard-bottom--projects { grid-template-columns: 1fr; }
    .portal-preview-grid { gap: 18px; }
    .portal-preview-card { padding: 25px; }
    .portal-preview-card-top { margin-bottom: 24px; }
    .portal-workspace-actions { width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
/* Private website releases and the isolated review viewer. */
.portal-preview-setup { padding: 26px; margin-bottom: 30px; }
.portal-preview-setup > p { color: var(--portal-muted, #5c7183); }
.portal-preview-assign { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 22px; }
.portal-preview-assign > div { min-width: 0; }
.portal-preview-assign select, .portal-preview-assign input, .portal-preview-assign textarea { width: 100%; }
.portal-preview-assign button { justify-self: start; }
.portal-preview-thumbnail { background: #f3f6f7; border-radius: 10px; height: 150px; display: grid; place-items: center; margin-bottom: 24px; overflow: hidden; }
.portal-preview-thumbnail img { max-width: 85%; max-height: 115px; object-fit: contain; }
.portal-preview-revision { font-size: 12px; color: #64798b; }
.portal-preview-feedback { display: inline-block; margin-top: 20px; font-size: 14px; }
.portal-preview-manage { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; border-top: 1px solid #e2e8ed; margin-top: 24px; padding-top: 20px; }
.portal-preview-manage details { flex: 1; min-width: 180px; }
.portal-preview-manage summary { cursor: pointer; font-size: 14px; }
.portal-preview-manage .portal-form { margin-top: 18px; }
.portal-preview-viewer { margin: 0; background: #e8edf1; color: #0b2235; height: 100dvh; display: flex; flex-direction: column; }
.portal-preview-toolbar { min-height: 68px; background: #0b2235; color: #fff; display: flex; align-items: center; gap: 24px; padding: 12px 24px; box-sizing: border-box; flex: 0 0 auto; }
.portal-preview-toolbar a { color: inherit; text-decoration: none; }
.portal-preview-title { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.portal-preview-title span { font-size: 12px; color: #bacad6; }
.portal-preview-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.portal-preview-tools button, .portal-preview-tools a { background: #213b50; color: #fff; border: 1px solid #536777; border-radius: 6px; padding: 8px 12px; cursor: pointer; font: inherit; font-size: 13px; }
.portal-preview-tools a { background: #fff; color: #0b2235; }
#portal-preview-session-note { color: #ffe4ac; font-size: 12px; }
.portal-preview-stage { flex: 1; min-height: 0; display: flex; flex-direction: column; align-items: center; position: relative; }
#portal-preview-frame { border: 0; width: 100%; height: 100%; min-height: 0; flex: 1; background: #fff; }
#portal-preview-frame.portal-preview-frame--mobile { width: min(100%, 390px); }
#portal-preview-status { margin: 0; padding: 12px 20px; font-size: 14px; text-align: center; }
#portal-preview-status:empty { display: none; }
@media (max-width: 700px) {
    .portal-preview-assign { grid-template-columns: 1fr; }
    .portal-preview-toolbar { padding: 10px 12px; gap: 12px; flex-wrap: wrap; }
    .portal-preview-tools { width: 100%; }
    .portal-preview-title strong { font-size: 14px; }
    .portal-preview-setup { padding: 20px; }
}
