/* Century Customer Portal: styles for the states portal.js sets.
   Webflow owns the header's look; this file only shows and hides things.
   Rule: green #8cc63e only ever sits on #1c1e1a. */

/* Menus stay closed until opened. (Without the script, Webflow shows them open so they can be styled.) */
.portal-js [data-portal-menu-panel] { display: none !important; }
.portal-js [data-portal-menu-panel].is-open { display: flex !important; }

/* Active tab: white text, green underline on the dark band. */
[data-portal-tab].is-active { color: #ffffff !important; font-weight: 600; box-shadow: inset 0 -3px 0 #8cc63e; }
[data-portal-menu-panel] a.is-current { background-color: #f5f5f4; }

/* Staff-only and permission-only items appear once the server says so. */
.portal-js [data-portal-requires]:not(.is-allowed) { display: none !important; }

/* Until we know who is signed in, show neither the signed-in nor the signed-out version of anything (no flash).
   In the header they keep their space (no jump); in the page they take no space until we know.
   The site head usually knows already (no Memberstack cookie = signed out; a recent check = signed in), so this rarely shows. */
.portal-js:not(.portal-ready) [data-portal-header] [data-portal-signed-in],
.portal-js:not(.portal-ready) [data-portal-header] [data-portal-signed-out] { visibility: hidden; }
.portal-js:not(.portal-ready):not(.portal-signed-in):not(.portal-signed-out) main [data-portal-signed-in],
.portal-js:not(.portal-ready):not(.portal-signed-in):not(.portal-signed-out) main [data-portal-signed-out],
.portal-js:not(.portal-ready):not(.portal-signed-in):not(.portal-signed-out) main [data-portal-pending],
.portal-js:not(.portal-ready):not(.portal-signed-in):not(.portal-signed-out) main [data-portal-access-only] { display: none !important; }
.portal-signed-in [data-portal-signed-out] { display: none !important; }
.portal-signed-out [data-portal-signed-in] { display: none !important; }

/* Signed in but not approved yet: only Home in the tabs. */
.portal-signed-in:not(.portal-has-access) [data-portal-tab]:not([data-portal-tab="home"]),
.portal-signed-in:not(.portal-has-access) [data-portal-menu="resources"] { display: none !important; }

/* Visible keyboard focus on the dark band and in menus. */
[data-portal-header] a:focus-visible,
[data-portal-header] button:focus-visible { outline: 2px solid #8cc63e; outline-offset: -2px; }
[data-portal-menu-panel] a:focus-visible { outline: 2px solid #1c1e1a; outline-offset: -2px; }

/* Signed in but not approved yet: show the status panel instead of the tools. */
[data-portal-pending] { display: none !important; }
.portal-signed-in:not(.portal-has-access) [data-portal-pending] { display: flex !important; }
.portal-signed-in:not(.portal-has-access) [data-portal-access-only] { display: none !important; }
[data-portal-unverified-only] { display: none !important; }
.portal-email-unverified [data-portal-unverified-only] { display: inline-flex !important; }

/* Request Access page: password checklist mark fills in when the rule is met. */
.su-rule.is-met .su-mark { background-color: #1c1e1a; border-color: #1c1e1a; }
.su-show { display: flex; align-items: center; text-decoration: none; }
[data-portal-pending] .ps-note { margin: 0 0 20px; }
/* Sign in / Request Access: fields have visible labels; hide Webflow's default "Example text" placeholder. */
.su-input::placeholder { color: transparent !important; opacity: 0 !important; }
/* Memberstack handles sign-in/sign-up results itself (redirect or its own error message);
   never show Webflow's generic "Thank you!" / "Oops!" boxes on those forms. */
.su-card .w-form-done, .su-card .w-form-fail { display: none !important; }
