/* Member access uses the same visual language as Nightwall Studio. */
.nwe-member-shell,
.nwe-member-shell *,
.nwe-member-shell *::before,
.nwe-member-shell *::after { box-sizing: border-box; }
.nwe-member-shell {
    --nwe-member-accent: #526d30;
    --nwe-member-lime: #d3f269;
    --nwe-member-bg: #12252b;
    --nwe-member-card: #ffffff;
    --nwe-member-text: #172b30;
    --nwe-member-muted: #60706b;
    --nwe-member-border: #dce3d5;
    width: min(1180px, calc(100% - 32px));
    margin: clamp(24px, 6vw, 70px) auto;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.65;
    color: var(--nwe-member-text);
    color-scheme: light;
    overflow-wrap: anywhere;
}
.nwe-member-shell [hidden] { display: none !important; }
.nwe-member-shell :is(a,button,input,select,textarea):focus-visible { outline: 3px solid #577c21; outline-offset: 4px; }
.nwe-member-card {
    min-width: 0;
    background: var(--nwe-member-card);
    border: 1px solid var(--nwe-member-border);
    border-radius: 22px;
    padding: clamp(24px, 4vw, 42px);
    box-shadow: 0 16px 56px rgba(18,37,43,.07);
}
.nwe-member-shell > .nwe-member-card { max-width: 620px; margin: 0 auto; }
.nwe-member-shell > .nwe-member-card--wide { max-width: 840px; }
.nwe-member-card--hero {
    background: linear-gradient(125deg, #12252b, #203f43);
    color: #f4f7ee;
    border-color: #2e4c4f;
}
.nwe-member-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #12252b !important;
    text-decoration: none !important;
    font-weight: 850;
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: .13em;
    margin-bottom: 30px;
}
.nwe-member-brand::before {
    content: "N";
    display: grid;
    place-items: center;
    width: 34px;
    height: 38px;
    border-radius: 11px 11px 11px 3px;
    color: #12252b;
    background: #d3f269;
    font-size: 25px;
    font-weight: 900;
    font-style: italic;
    letter-spacing: -.1em;
    padding-right: 3px;
}
.nwe-member-card p { margin: 0 0 18px; color: var(--nwe-member-muted); line-height: 1.8; font-size: 14px; }
.nwe-member-card .nwe-member-kicker {
    margin: 0 0 12px;
    color: #526d30;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.nwe-member-card--hero p { color: #c6d5cf; }
.nwe-member-card--hero .nwe-member-kicker { color: #d3f269; }
.nwe-member-card h1,
.nwe-member-card h2 { margin: 0 0 16px; line-height: 1.18; letter-spacing: -.04em; color: inherit; font-weight: 750; }
.nwe-member-card h1 { font-size: clamp(29px, 4vw, 46px); }
.nwe-member-card h2 { font-size: clamp(22px, 2.8vw, 30px); }
.nwe-member-form { display: grid; gap: 19px; margin-top: 25px; }
.nwe-member-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nwe-member-form label { display: grid; gap: 8px; min-width: 0; margin: 0; }
.nwe-member-form label > span:not(.nwe-member-password) { font-size: 12px; color: #354c43; font-weight: 700; line-height: 1.65; }
.nwe-member-form input,
.nwe-member-form select,
.nwe-member-form textarea {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    margin: 0;
    border: 1px solid #cbd7c7;
    border-radius: 10px;
    padding: 12px 14px;
    background: #fafcf7;
    color: #172b30;
    font: inherit;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: normal;
    text-transform: none;
    box-shadow: none;
}
.nwe-member-form input:disabled { color: #596b62; background: #eef2e8; opacity: 1; }
.nwe-member-form textarea { resize: vertical; }
.nwe-member-form input:focus,
.nwe-member-form select:focus,
.nwe-member-form textarea:focus { border-color: #709449; background: #fff; }
.nwe-member-form button[type="submit"],
.nwe-member-button,
.nwe-member-links button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    max-width: 100%;
    padding: 12px 22px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: #d3f269;
    color: #172b30 !important;
    text-decoration: none !important;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 750;
    text-align: center;
    cursor: pointer;
    transition: background-color .16s ease, border-color .16s ease;
}
.nwe-member-form button[type="submit"]:hover,
.nwe-member-button:hover { background: #c5e35c; }
.nwe-member-button--ghost,
.nwe-member-links button { background: #f7f9f2; color: #294337 !important; border-color: #cdd7c3; }
.nwe-member-card--hero .nwe-member-button--ghost { background: transparent; color: #edf4df !important; border-color: #637b68; }
.nwe-member-card--hero .nwe-member-button--ghost:hover { background: #2b4848; }
.nwe-member-primary-links { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 26px !important; }
.nwe-member-check { grid-template-columns: 22px minmax(0,1fr); align-items: start; gap: 10px !important; }
.nwe-member-check input { width: 18px; height: 18px; min-height: 18px; margin-top: 4px; padding: 0; accent-color: #526d30; }
.nwe-member-check span { color: #42564c !important; font-size: 13px !important; line-height: 1.7 !important; font-weight: 500 !important; letter-spacing: normal !important; text-transform: none !important; }
.nwe-member-check a,
.nwe-member-alt a,
.nwe-member-links a { color: #426626; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.nwe-member-alt { margin-top: 22px !important; }
.nwe-member-alt a { display: inline-block; padding: 5px 0; }
.nwe-member-dashboard { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.nwe-member-dashboard .nwe-member-card--hero { grid-column: 1 / -1; }
.nwe-member-statuses { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 22px; }
.nwe-member-statuses span { display: inline-flex; align-items: center; min-height: 34px; max-width: 100%; padding: 6px 12px; border-radius: 8px; background: #2b4448; border: 1px solid #496361; color: #f2f6ec; font-size: 12px; font-weight: 650; line-height: 1.6; }
.nwe-member-statuses .is-ok { background: #254a37; border-color: #50795a; }
.nwe-member-statuses .is-warn { background: #54462c; border-color: #8d7848; }
.nwe-member-links { display: flex; gap: 10px; flex-wrap: wrap; margin: 18px 0; }
.nwe-member-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 13px; border-radius: 9px; border: 1px solid #d1dcc8; font-size: 13px; line-height: 1.6; text-decoration: none; }
.nwe-member-muted { color: var(--nwe-member-muted) !important; font-size: 13px; }
.nwe-member-notice { margin: 20px 0; padding: 15px 17px; border: 1px solid transparent; border-radius: 11px; font-size: 14px; font-weight: 600; line-height: 1.8; overflow-wrap: anywhere; scroll-margin-top: 32px; }
.nwe-member-notice--success { background: #eef5e2; border-color: #cbdcb3; color: #355525; }
.nwe-member-notice--error { background: #fff1e8; border-color: #e3bea5; color: #813d24; }
.nwe-member-notice[role="alert"]:focus { outline: 3px solid #9c5639; outline-offset: 3px; }
.nwe-member-password { position: relative; display: block; min-width: 0; }
.nwe-member-password input { padding-right: 58px; }
.nwe-member-password-toggle {
    position: absolute;
    inset-inline-end: 4px;
    top: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    width: 44px;
    height: 42px;
    min-height: 42px;
    margin: 0;
    padding: 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #46643e;
    cursor: pointer;
    line-height: 1;
}
.nwe-member-password-toggle:hover,
.nwe-member-password-toggle[aria-pressed="true"] { background: #e8efd9; color: #243d2c; }
.nwe-member-password-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.nwe-member-password-toggle:focus-visible { outline-offset: 1px !important; }
.nwe-member-password-toggle[hidden] { display: none !important; }
.nwe-member-password:has(.nwe-member-password-toggle:not([hidden])) input::-ms-reveal { display: none; }
.nwe-member-form[aria-busy="true"] [type="submit"] { opacity: .7; cursor: progress; }
.nwe-member-form-status { margin: 0 !important; color: #426626 !important; font-size: 13px !important; }
.nwe-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width:820px) {
    .nwe-member-shell { width: calc(100% - 24px); margin: 24px auto 64px; }
    .nwe-member-card { border-radius: 18px; padding: 25px 22px; }
    .nwe-member-form__grid,
    .nwe-member-dashboard { grid-template-columns: 1fr; }
    .nwe-member-dashboard { gap: 18px; }
    .nwe-member-form input,
    .nwe-member-form select,
    .nwe-member-form textarea { font-size: 16px; }
}
@media (max-width:400px) {
    .nwe-member-shell { width: calc(100% - 20px); }
    .nwe-member-card { padding: 23px 18px; }
    .nwe-member-brand { margin-bottom: 24px; }
    .nwe-member-primary-links { align-items: stretch; flex-direction: column; }
    .nwe-member-primary-links .nwe-member-button { width: 100%; }
}
@media (prefers-reduced-motion:reduce) {
    .nwe-member-shell *,
    .nwe-member-shell *::before,
    .nwe-member-shell *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
