:root {
    --gm-recovery-bg: #090b0d;
    --gm-recovery-panel: #111417;
    --gm-recovery-panel-2: #15191d;
    --gm-recovery-line: rgba(255, 255, 255, .10);
    --gm-recovery-line-soft: rgba(255, 255, 255, .065);
    --gm-recovery-text: #f0eee8;
    --gm-recovery-muted: #8f979e;
    --gm-recovery-gold: #c8a45f;
    --gm-recovery-gold-soft: #e0c789;
    --gm-recovery-danger: #e5a0a0;
    --gm-recovery-success: #afd3bd;
}

* { box-sizing: border-box; }
html { color-scheme: dark; scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at 50% 12%, rgba(200, 164, 95, .055), transparent 30%),
        linear-gradient(180deg, #0c0f12 0%, var(--gm-recovery-bg) 100%);
    color: var(--gm-recovery-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

button, input { font: inherit; }
a { color: inherit; }

.gm-recovery-skip {
    position: fixed;
    left: 16px;
    top: -80px;
    z-index: 100;
    padding: 10px 14px;
    border-radius: 8px;
    background: #fff;
    color: #111;
    text-decoration: none;
}
.gm-recovery-skip:focus { top: 16px; }

.gm-recovery-topbar {
    width: min(1040px, calc(100% - 40px));
    min-height: 74px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--gm-recovery-line-soft);
}

.gm-recovery-brand {
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    text-decoration: none;
}
.gm-recovery-brand span {
    color: #e7e3db;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px;
    letter-spacing: .02em;
}
.gm-recovery-brand small {
    color: #6f777e;
    font-size: 7px;
    font-weight: 850;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.gm-recovery-return {
    color: #a8afb4;
    font-size: 11px;
    font-weight: 750;
    text-decoration: none;
}
.gm-recovery-return:hover { color: #eeeae2; }

.gm-recovery-shell {
    width: min(1040px, calc(100% - 40px));
    min-height: calc(100vh - 142px);
    margin: 0 auto;
    padding: 44px 0 54px;
    display: grid;
    place-items: center;
}

.gm-recovery-card {
    width: min(100%, 520px);
    overflow: hidden;
    border: 1px solid var(--gm-recovery-line);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(22, 26, 30, .985), rgba(13, 16, 19, .985));
    box-shadow: 0 30px 90px rgba(0, 0, 0, .35);
}
.gm-recovery-card.is-reset { width: min(100%, 560px); }

.gm-recovery-step {
    padding: 22px 30px 0;
    display: grid;
    grid-template-columns: 26px 1fr 26px;
    align-items: center;
}
.gm-recovery-step span {
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    color: #737b82;
    font-size: 9px;
    font-weight: 900;
}
.gm-recovery-step i {
    height: 1px;
    background: rgba(255, 255, 255, .08);
}
.gm-recovery-step span.is-active {
    border-color: rgba(200, 164, 95, .68);
    background: rgba(200, 164, 95, .11);
    color: var(--gm-recovery-gold-soft);
}
.gm-recovery-step span.is-complete {
    border-color: rgba(175, 211, 189, .55);
    background: rgba(74, 130, 95, .12);
    color: var(--gm-recovery-success);
}
.gm-recovery-step i.is-complete { background: rgba(175, 211, 189, .35); }

.gm-recovery-heading {
    padding: 24px 30px 25px;
    border-bottom: 1px solid var(--gm-recovery-line-soft);
}
.gm-recovery-heading p {
    margin: 0 0 8px;
    color: var(--gm-recovery-gold);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.gm-recovery-heading h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 5vw, 38px);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -.035em;
}
.gm-recovery-heading span {
    display: block;
    margin-top: 10px;
    color: #838b92;
    font-size: 12px;
    line-height: 1.6;
}

.gm-recovery-messages {
    display: grid;
    gap: 8px;
    padding: 20px 30px 0;
}
.gm-recovery-alert {
    display: grid;
    gap: 5px;
    margin: 20px 30px 0;
    padding: 13px 14px;
    border: 1px solid rgba(200, 164, 95, .25);
    border-radius: 10px;
    background: rgba(200, 164, 95, .065);
    color: #c9c3b8;
    font-size: 12px;
    line-height: 1.5;
}
.gm-recovery-messages .gm-recovery-alert { margin: 0; }
.gm-recovery-alert strong { color: #efece5; }
.gm-recovery-alert.is-error,
.gm-recovery-alert.is-danger {
    border-color: rgba(210, 111, 111, .34);
    background: rgba(111, 43, 43, .13);
    color: var(--gm-recovery-danger);
}
.gm-recovery-alert.is-success {
    border-color: rgba(107, 181, 138, .34);
    background: rgba(44, 105, 68, .12);
    color: var(--gm-recovery-success);
}
.gm-recovery-alert.is-warning {
    border-color: rgba(216, 171, 85, .34);
    background: rgba(119, 83, 26, .12);
}
.gm-recovery-alert ul { margin: 2px 0 0; padding-left: 18px; }
.gm-recovery-alert li + li { margin-top: 4px; }

.gm-recovery-form { padding: 26px 30px 28px; }
.gm-recovery-field {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
}
.gm-recovery-field > span:first-child {
    color: #b2b7bb;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .085em;
    text-transform: uppercase;
}
.gm-recovery-field input {
    width: 100%;
    min-height: 50px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, .105);
    border-radius: 9px;
    outline: none;
    background: #0d1013;
    color: #f0eee8;
    caret-color: var(--gm-recovery-gold-soft);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.gm-recovery-field input:hover { border-color: rgba(255, 255, 255, .17); }
.gm-recovery-field input:focus {
    border-color: rgba(200, 164, 95, .7);
    background: #101316;
    box-shadow: 0 0 0 3px rgba(200, 164, 95, .09);
}
.gm-recovery-field input:-webkit-autofill {
    -webkit-text-fill-color: #f0eee8;
    box-shadow: 0 0 0 1000px #0d1013 inset;
}
.gm-recovery-code {
    letter-spacing: .3em;
    text-align: center;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 18px;
    font-weight: 800;
}
.gm-recovery-code::placeholder { color: #454c52; }

.gm-recovery-password-wrap { position: relative; display: block; }
.gm-recovery-password-wrap input { padding-right: 64px; }
.gm-recovery-password-wrap button {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    min-width: 46px;
    padding: 7px 8px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #b99a5d;
    cursor: pointer;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.gm-recovery-password-wrap button:hover { background: rgba(200, 164, 95, .08); }
.gm-recovery-password-wrap button:focus-visible { outline: 2px solid rgba(200, 164, 95, .55); }

.gm-recovery-strength { margin: -7px 0 17px; }
.gm-recovery-strength > div {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;
}
.gm-recovery-strength > div span {
    height: 3px;
    border-radius: 3px;
    background: rgba(255, 255, 255, .075);
}
.gm-recovery-strength[data-level="1"] > div span:nth-child(-n+1),
.gm-recovery-strength[data-level="2"] > div span:nth-child(-n+2),
.gm-recovery-strength[data-level="3"] > div span:nth-child(-n+3),
.gm-recovery-strength[data-level="4"] > div span:nth-child(-n+4) {
    background: var(--gm-recovery-gold);
}
.gm-recovery-strength p,
.gm-recovery-match {
    margin: 7px 0 0;
    color: #727a81;
    font-size: 10px;
    line-height: 1.5;
}
.gm-recovery-match { min-height: 15px; margin-top: -8px; margin-bottom: 16px; }
.gm-recovery-match.is-good { color: var(--gm-recovery-success); }
.gm-recovery-match.is-bad { color: var(--gm-recovery-danger); }

.gm-recovery-submit {
    width: 100%;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    border: 1px solid #c69d50;
    border-radius: 9px;
    background: linear-gradient(135deg, #d7b56f, #ad792e);
    color: #101214;
    cursor: pointer;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .085em;
    text-transform: uppercase;
    box-shadow: 0 12px 30px rgba(174, 121, 42, .15);
    transition: transform .18s ease, filter .18s ease, opacity .18s ease;
}
.gm-recovery-submit svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.gm-recovery-submit:hover { filter: brightness(1.06); transform: translateY(-1px); }
.gm-recovery-submit:focus-visible { outline: 3px solid rgba(216, 183, 113, .25); outline-offset: 3px; }
.gm-recovery-submit[disabled] { cursor: wait; opacity: .62; transform: none; }

.gm-recovery-privacy-note {
    margin: 0 30px 26px;
    padding: 14px;
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 11px;
    border: 1px solid var(--gm-recovery-line-soft);
    border-radius: 10px;
    background: rgba(255, 255, 255, .018);
}
.gm-recovery-privacy-note svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #9b8254;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.gm-recovery-privacy-note p { margin: 0; }
.gm-recovery-privacy-note strong,
.gm-recovery-privacy-note span { display: block; }
.gm-recovery-privacy-note strong { color: #bbb7af; font-size: 10px; }
.gm-recovery-privacy-note span { margin-top: 3px; color: #6f777d; font-size: 10px; line-height: 1.5; }

.gm-recovery-card-foot {
    padding: 17px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border-top: 1px solid var(--gm-recovery-line-soft);
    background: rgba(255, 255, 255, .018);
}
.gm-recovery-card-foot span { color: #757d83; font-size: 11px; }
.gm-recovery-card-foot a {
    color: #d2b16e;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}
.gm-recovery-card-foot a:hover { text-decoration: underline; text-underline-offset: 3px; }

.gm-recovery-footer {
    width: min(1040px, calc(100% - 40px));
    min-height: 68px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid var(--gm-recovery-line-soft);
    color: #666e75;
    font-size: 10px;
}
.gm-recovery-footer div { display: flex; gap: 16px; align-items: center; }
.gm-recovery-footer a { color: #7f878d; text-decoration: none; }
.gm-recovery-footer a:hover { color: #c7aa70; }

@media (max-width: 620px) {
    .gm-recovery-topbar,
    .gm-recovery-shell,
    .gm-recovery-footer { width: calc(100% - 28px); }
    .gm-recovery-topbar { min-height: 66px; }
    .gm-recovery-brand span { font-size: 14px; }
    .gm-recovery-brand small { font-size: 6px; }
    .gm-recovery-return { font-size: 10px; }
    .gm-recovery-shell { min-height: calc(100vh - 130px); padding: 26px 0 36px; }
    .gm-recovery-card { border-radius: 14px; }
    .gm-recovery-step { padding: 19px 20px 0; }
    .gm-recovery-heading { padding: 21px 20px 22px; }
    .gm-recovery-heading h1 { font-size: 31px; }
    .gm-recovery-form { padding: 23px 20px 25px; }
    .gm-recovery-messages { padding: 17px 20px 0; }
    .gm-recovery-alert { margin: 17px 20px 0; }
    .gm-recovery-privacy-note { margin: 0 20px 22px; }
    .gm-recovery-card-foot { padding: 16px 20px; }
    .gm-recovery-footer { min-height: 58px; }
}

@media (max-width: 430px) {
    .gm-recovery-card-foot { align-items: flex-start; flex-direction: column; gap: 7px; }
    .gm-recovery-footer { align-items: flex-start; flex-direction: column; justify-content: center; padding: 14px 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
