:root {
    --ash-auth-navy: #10263f;
    --ash-auth-blue: #1468c5;
    --ash-auth-blue-dark: #0e4f99;
    --ash-auth-ink: #172231;
    --ash-auth-muted: #607086;
    --ash-auth-line: #d8e0e9;
    --ash-auth-bg: #eef3f8;
    --ash-auth-white: #fff;
    --ash-auth-danger: #a92626;
    --ash-auth-success: #196b3a;
}

html, body.ash-servicehub-auth-page,
body.login {
    min-height: 100%;
    margin: 0;
    background:
        radial-gradient(circle at 8% 8%, rgba(20,104,197,.12), transparent 32rem),
        linear-gradient(145deg, #f7f9fc 0%, var(--ash-auth-bg) 100%);
    color: var(--ash-auth-ink);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ash-auth-shell {
    min-height: 100vh;
    min-height: 100dvh;
    display: grid;
    place-content: center;
    padding: max(28px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));
    box-sizing: border-box;
}

.ash-auth-card {
    width: min(100%, 430px);
    box-sizing: border-box;
    padding: 38px;
    border: 1px solid rgba(16,38,63,.12);
    border-radius: 22px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 24px 70px rgba(16,38,63,.14);
}

.ash-auth-brand {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 38px;
}

.ash-auth-brand > span:last-child { display: grid; line-height: 1; }
.ash-auth-brand strong { color: var(--ash-auth-navy); font-size: 22px; letter-spacing: -.02em; }
.ash-auth-brand small { margin-top: 5px; color: var(--ash-auth-blue); font-size: 12px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.ash-auth-mark { display: inline-flex; align-items: end; gap: 3px; width: 38px; height: 34px; padding: 7px; box-sizing: border-box; border-radius: 10px; background: var(--ash-auth-navy); }
.ash-auth-mark i { display: block; flex: 1; background: #fff; border-radius: 2px 2px 0 0; }
.ash-auth-mark i:nth-child(1) { height: 55%; }
.ash-auth-mark i:nth-child(2) { height: 100%; }
.ash-auth-mark i:nth-child(3) { height: 76%; background: #4fa0f2; }

.ash-auth-eyebrow { margin: 0 0 8px; color: var(--ash-auth-blue); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ash-auth-card h1 { margin: 0; color: var(--ash-auth-navy); font-size: clamp(27px, 6vw, 36px); line-height: 1.12; letter-spacing: -.035em; }
.ash-auth-intro { margin: 13px 0 27px; color: var(--ash-auth-muted); font-size: 15px; line-height: 1.6; }
.ash-auth-form { display: grid; gap: 10px; }
.ash-auth-form label { margin-top: 6px; color: #344156; font-size: 13px; font-weight: 700; }
.ash-auth-form input[type="text"],
.ash-auth-form input[type="email"],
.ash-auth-form input[type="password"] {
    width: 100%;
    min-height: 50px;
    box-sizing: border-box;
    border: 1px solid var(--ash-auth-line);
    border-radius: 11px;
    background: #fff;
    color: var(--ash-auth-ink);
    padding: 0 14px;
    font: inherit;
    outline: none;
    transition: border-color .16s, box-shadow .16s;
}
.ash-auth-form input:focus { border-color: var(--ash-auth-blue); box-shadow: 0 0 0 4px rgba(20,104,197,.13); }
.ash-auth-check { display: flex; align-items: center; gap: 9px; margin: 7px 0 5px !important; font-weight: 550 !important; }
.ash-auth-check input { width: 18px; height: 18px; accent-color: var(--ash-auth-blue); }
.ash-auth-button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    margin-top: 8px;
    border: 0;
    border-radius: 11px;
    background: var(--ash-auth-blue);
    color: #fff !important;
    padding: 0 20px;
    font: inherit;
    font-weight: 780;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(20,104,197,.22);
}
.ash-auth-button:hover, .ash-auth-button:focus { background: var(--ash-auth-blue-dark); }
.ash-auth-secondary-link { display: block; margin-top: 19px; color: var(--ash-auth-blue-dark); font-size: 14px; font-weight: 700; text-align: center; text-decoration: none; }
.ash-auth-secondary-link:hover { text-decoration: underline; }
.ash-auth-message { margin: 0 0 18px; border-radius: 10px; padding: 12px 14px; font-size: 14px; line-height: 1.5; }
.ash-auth-error { border: 1px solid #efc4c4; background: #fff1f1; color: var(--ash-auth-danger); }
.ash-auth-success { border: 1px solid #bbdfc9; background: #eefaf2; color: var(--ash-auth-success); }
.ash-auth-footer { margin: 18px auto 0; color: #65758a; font-size: 12px; text-align: center; }

/* Native reset/login fallback — fully branded with no platform logo or links. */
body.login { display: grid; place-items: center; box-sizing: border-box; padding: 24px; }
body.login #login { width: min(100%, 420px); box-sizing: border-box; padding: 0; }
body.login h1 a {
    display: block;
    width: auto;
    height: auto;
    margin: 0 0 24px;
    background: none !important;
    color: var(--ash-auth-navy);
    font-size: 0;
    font-weight: 800;
    line-height: 1.1;
    text-indent: 0;
}
body.login h1 a::before { content: "Alliance"; display: block; font-size: 28px; letter-spacing: -.03em; }
body.login h1 a::after { content: "ServiceHub"; display: block; margin-top: 6px; color: var(--ash-auth-blue); font-size: 13px; letter-spacing: .13em; text-transform: uppercase; }
body.login form { border: 1px solid rgba(16,38,63,.12); border-radius: 18px; padding: 30px; box-shadow: 0 24px 70px rgba(16,38,63,.14); }
body.login label { color: #344156; font-weight: 650; }
body.login input[type="text"], body.login input[type="password"] { border-color: var(--ash-auth-line); border-radius: 10px; min-height: 48px; }
body.login .button-primary { min-height: 42px; border: 0; border-radius: 9px; background: var(--ash-auth-blue); font-weight: 750; }
body.login .button-primary:hover { background: var(--ash-auth-blue-dark); }
body.login #nav { text-align: center; }
body.login #nav a { color: var(--ash-auth-blue-dark); font-weight: 650; }
body.login #backtoblog, body.login .privacy-policy-page-link, body.login .language-switcher { display: none !important; }
body.login .message, body.login #login_error { border-left-color: var(--ash-auth-blue); border-radius: 8px; }

@media (max-width: 520px) {
    .ash-auth-shell { place-content: stretch; padding: 0; background: #fff; }
    .ash-auth-card { width: 100%; min-height: 100vh; min-height: 100dvh; border: 0; border-radius: 0; padding: max(32px, env(safe-area-inset-top)) 24px max(28px, env(safe-area-inset-bottom)); box-shadow: none; }
    .ash-auth-brand { margin-bottom: 46px; }
    .ash-auth-footer { display: none; }
}

/* v0.19.0 — configurable Alliance authentication branding */
.ash-auth-brand{display:block;margin-bottom:34px}
.ash-auth-logo{display:block;width:min(100%,245px);height:auto;max-height:92px;object-fit:contain;object-position:left center}
.ash-auth-card{border-top:5px solid var(--ash-auth-blue)}
.ash-auth-button{background:var(--ash-auth-blue)}
.ash-auth-eyebrow{color:var(--ash-auth-blue)}
@media(max-width:520px){.ash-auth-logo{width:min(100%,220px)}.ash-auth-card{border-top:0}}
