@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

:root {
    color-scheme: light;
    --access-ink: #18352d;
    --access-muted: #66756f;
    --access-paper: #f5f7f3;
    --access-white: #ffffff;
    --access-line: #dce4dd;
    --access-coral: #dc7058;
    --access-mint: #b4d3c0;
    font-family: 'DM Sans', sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--access-paper); color: var(--access-ink); }
.access-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(320px, 0.92fr) minmax(460px, 1.08fr); }
.access-aside { display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; padding: 36px clamp(28px, 5vw, 72px); color: #f5f7f3; background-color: #173d34; background-image: linear-gradient(135deg, rgba(23, 61, 52, .98), rgba(23, 61, 52, .88)), url('/home-manager-icon.svg'); background-position: center, right 6vw bottom 12vh; background-repeat: no-repeat; background-size: cover, min(30vw, 360px); }
.access-brand { display: inline-flex; align-items: center; gap: 12px; width: fit-content; color: inherit; text-decoration: none; }
.access-brand img { width: 42px; height: 42px; padding: 7px; border-radius: 10px; background: rgba(255,255,255,.11); }
.access-brand strong, .access-brand small { display: block; }
.access-brand strong { font-family: Manrope, sans-serif; font-size: 17px; font-weight: 800; }
.access-brand small { margin-top: 2px; color: #a9c5b5; font-size: 9px; font-weight: 700; }
.access-aside-copy { max-width: 470px; margin: auto 0; padding: 72px 0; }
.access-kicker { margin: 0 0 13px; color: var(--access-coral); font-size: 11px; font-weight: 700; }
.access-aside .access-kicker { color: #e9a18e; }
.access-aside h1 { max-width: 440px; margin: 0; font-family: Manrope, sans-serif; font-size: clamp(36px, 4.5vw, 58px); line-height: 1.08; }
.access-lead { max-width: 380px; margin: 20px 0 0; color: #c0d2c8; font-size: 16px; line-height: 1.6; }
.access-aside-footer { display: flex; align-items: center; gap: 9px; color: #bfd1c7; font-size: 12px; }
.access-status-dot { width: 8px; height: 8px; border-radius: 50%; background: #90c3a1; box-shadow: 0 0 0 4px rgba(144,195,161,.14); }
.access-main { display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 100vh; padding: 48px 30px 28px; }
.access-card { width: min(100%, 420px); padding: 8px 0; }
.access-card h2 { margin: 0; font-family: Manrope, sans-serif; font-size: 28px; line-height: 1.2; }
.access-subtitle { margin: 10px 0 28px; color: var(--access-muted); font-size: 14px; line-height: 1.55; }
.access-form { display: grid; gap: 17px; }
.access-form label { display: grid; gap: 8px; color: #34483f; font-size: 12px; font-weight: 700; }
.access-form input { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--access-line); border-radius: 5px; outline: none; background: var(--access-white); color: var(--access-ink); font: inherit; font-size: 14px; }
.access-form input:focus { border-color: #397863; box-shadow: 0 0 0 3px rgba(57,120,99,.14); }
.access-submit { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: 4px; padding: 0 16px; border: 0; border-radius: 5px; background: var(--access-ink); color: white; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.access-submit:hover { background: #245444; }
.access-submit span { color: #f0a18b; font-size: 19px; }
.access-divider { display: flex; align-items: center; gap: 14px; margin: 23px 0; color: #87928d; font-size: 11px; }
.access-divider::before, .access-divider::after { height: 1px; flex: 1; background: var(--access-line); content: ''; }
.google-button { display: flex; align-items: center; justify-content: center; gap: 11px; min-height: 47px; border: 1px solid var(--access-line); border-radius: 5px; background: var(--access-white); color: #283b33; font-size: 13px; font-weight: 700; text-decoration: none; }
.google-button:hover { border-color: #9aaba1; background: #fbfcfa; }
.google-mark { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid #e1e6e2; border-radius: 50%; color: #4285f4; font-family: Arial, sans-serif; font-size: 14px; font-weight: 700; }
.google-disabled { color: #7f8984; cursor: not-allowed; }
.access-privacy { margin: 13px 0 0; color: #738079; font-size: 11px; line-height: 1.5; text-align: center; }
.access-first-run { margin: 24px 0; padding: 17px; border-left: 3px solid var(--access-coral); background: #fff; }
.access-first-run p { margin: 7px 0 0; color: var(--access-muted); font-size: 13px; line-height: 1.55; }
.access-step { color: var(--access-ink); font-size: 12px; font-weight: 700; }
.access-error { margin: 0 0 19px; padding: 11px 13px; border: 1px solid #f0d1c9; border-radius: 5px; background: #fff6f2; color: #9d422f; font-size: 13px; line-height: 1.5; }
.access-guidance { margin: 0 0 17px; color: var(--access-muted); font-size: 12px; line-height: 1.5; }
.access-footer { margin-top: 42px; color: #8a9690; font-size: 11px; }
.access-footer span { padding: 0 5px; color: var(--access-coral); }
.access-cancel { display: block; margin-top: 17px; color: var(--access-muted); font-size: 13px; text-align: center; text-decoration: none; }
.access-cancel:hover { color: var(--access-ink); }
.access-logout-shell .access-card h2 { margin-bottom: 26px; }

@media (max-width: 760px) {
    .access-shell { grid-template-columns: 1fr; }
    .access-aside { min-height: 0; padding: 22px 24px; background-position: center, right 2vw center; background-size: cover, 150px; }
    .access-aside-copy { margin: 0; padding: 35px 0 25px; }
    .access-aside h1 { font-size: 34px; }
    .access-lead { margin-top: 10px; font-size: 14px; }
    .access-aside-footer { display: none; }
    .access-main { min-height: 0; padding: 34px 24px 22px; }
    .access-card { width: min(100%, 440px); }
    .access-footer { margin-top: 32px; }
}