/* Original auth UI, 2026-10-28. Existing unmodified Pretendard (OFL 1.1).
   Asset/branding review and source links: /test/auth-setup.html#asset-record. */
.auth-route { background:#FFFEFB; color:#3E2F31; }
.auth-route .landing { min-height:100vh; }
.auth-page { --auth-muted:#71605B; --auth-line:#E9DED2; padding-top:26px; padding-bottom:64px; }
.auth-page *, .auth-guide * { box-sizing:border-box; }
.auth-page a:focus-visible,.auth-page button:focus-visible,.auth-guide a:focus-visible,.auth-guide summary:focus-visible { outline:3px solid #9B4B3A; outline-offset:4px; }
.auth-page [hidden] { display:none!important; }
.auth-breadcrumb { display:flex; gap:11px; align-items:center; margin-bottom:28px; color:var(--auth-muted); font-size:12px; }
.auth-breadcrumb a { display:inline-flex; align-items:center; min-height:36px; }
.auth-layout { display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1fr); max-width:940px; margin:0 auto; border:1px solid var(--auth-line); border-radius:20px; overflow:hidden; background:#FFF; box-shadow:0 12px 36px #3E2F3105; }
.auth-story { display:flex; flex-direction:column; padding:42px 36px 30px; min-width:0; background:#FFF5E4; border-right:1px solid var(--auth-line); }
.auth-eyebrow { display:block; color:#875442; font-size:10px; font-weight:750; letter-spacing:1.8px; line-height:1.7; }
.auth-story-copy { margin:auto 0; padding:56px 0 64px; }
.auth-story-line { display:block; width:36px; height:5px; border-radius:4px; background:#E6AF43; margin-bottom:24px; }
.auth-story h2 { font-size:29px; font-weight:780; letter-spacing:-1.2px; line-height:1.5; word-break:keep-all; }
.auth-story-copy p { margin-top:22px; color:#71605B; font-size:13px; line-height:1.95; word-break:keep-all; }
.auth-story-foot { font-size:11px; line-height:1.8; color:#796257; }
.auth-card { min-width:0; padding:40px 36px 25px; }
.auth-card h1 { margin:10px 0 18px; font-size:26px; line-height:1.45; font-weight:800; letter-spacing:-1.2px; word-break:keep-all; }
.auth-intro { color:var(--auth-muted); font-size:13px; line-height:1.85; margin-bottom:25px; word-break:keep-all; }
.auth-providers { display:grid; gap:15px; }
.auth-provider { width:100%; min-height:50px; border:1px solid #CBB9AC; border-radius:9px; background:#FFF; color:#3E2F31; font-size:14px; font-weight:700; font-family:inherit; padding:12px 18px; }
.auth-provider:hover:enabled { background:#FFF9EF; border-color:#9B4B3A; }
.auth-provider:disabled { cursor:not-allowed; color:#756862; background:#F5F0EA; border-color:#DFD4C9; }
.auth-provider-note { margin:7px 3px 0; color:var(--auth-muted); font-size:11px; line-height:1.65; }
.auth-notice,.auth-error { background:#FFF7E9; border:1px solid #E9D9BE; padding:13px 15px; border-radius:9px; margin:18px 0; font-size:12px; color:#6D5241; line-height:1.85; overflow-wrap:anywhere; }
.auth-error { background:#FFF0EC; border-color:#E8C5B9; color:#8A3726; }
.auth-status { padding:6px 0 14px; font-size:12px; color:#765345; }
.auth-membership-note { border-top:1px solid var(--auth-line); padding-top:20px; margin-top:23px; color:var(--auth-muted); font-size:11px; line-height:1.85; word-break:keep-all; }
.auth-switch { text-align:center; font-size:12px; color:var(--auth-muted); margin:23px 0 25px; }
.auth-switch a { display:inline-flex; align-items:center; min-height:36px; color:#8D4231; font-weight:750; margin-left:7px; }
.auth-card-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 14px; border-top:1px solid var(--auth-line); padding-top:14px; margin-top:23px; color:var(--auth-muted); font-size:10px; }
.auth-card-bottom a { display:inline-flex; align-items:center; gap:7px; min-height:36px; text-decoration:underline; text-underline-offset:3px; }
.auth-primary,.auth-secondary { display:flex; align-items:center; justify-content:center; gap:18px; min-height:46px; padding:11px 18px; border-radius:8px; font:inherit; font-size:13px; font-weight:650; }
.auth-primary { background:#3E2F31; color:#FFF8ED; margin-top:22px; }
.auth-secondary { border:1px solid #D5C6BB; color:#614A42; background:#FFFEFB; margin-top:18px; }
.auth-secondary:disabled { color:#756862; background:#F5F0EA; cursor:wait; }
.auth-secondary:hover:enabled { background:#FFF8ED; }
.auth-anonymous { padding:13px 0 8px; }
.auth-section-label { display:block; font-size:11px; font-weight:650; color:#8D5640; line-height:1.8; }
.auth-anonymous p { font-size:14px; line-height:1.9; margin-top:14px; color:var(--auth-muted); }
.auth-inline-link { display:block; min-height:44px; padding:15px 0 7px; text-align:center; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.auth-profile { padding-top:5px; overflow-wrap:anywhere; }
.auth-profile h2 { font-size:24px; line-height:1.6; letter-spacing:-.8px; margin:8px 0 20px; }
.auth-profile h2 small { font-size:14px; font-weight:450; margin-left:5px; }
.auth-profile>p:not(.auth-section-label) { color:var(--auth-muted); font-size:12px; line-height:1.8; }
.auth-profile-details { margin:10px 0 16px; border-top:1px solid var(--auth-line); }
.auth-profile-details>div { display:grid; grid-template-columns:76px minmax(0,1fr); gap:10px; border-bottom:1px solid var(--auth-line); padding:14px 0; font-size:12px; line-height:1.8; }
.auth-profile-details dt { color:var(--auth-muted); }
.auth-profile-details dd { margin:0; }
.auth-roles { display:flex; flex-wrap:wrap; gap:6px; }
.auth-role { display:inline-block; border:1px solid #E6D8C8; background:#FFF8ED; border-radius:5px; padding:2px 8px; font-size:11px; font-weight:600; }
.auth-small { font-size:11px!important; }
.auth-creator-invite { padding:19px; margin:24px 0; border:1px solid #E8D8C1; border-radius:10px; background:#FFF8ED; }
.auth-creator-invite h3 { margin:7px 0; font-size:15px; letter-spacing:-.4px; }
.auth-creator-invite p { color:var(--auth-muted); font-size:12px; line-height:1.85; }
.auth-creator-invite a { display:inline-flex; align-items:center; gap:10px; min-height:38px; font-size:12px; font-weight:700; color:#8D4231; margin-top:8px; }
.auth-linking { border-top:1px solid var(--auth-line); padding-top:20px; margin-top:22px; }
.auth-linking h3 { font-size:15px; margin-bottom:8px; }
.auth-linking p { font-size:11px; color:var(--auth-muted); line-height:1.85; margin:10px 0 15px; }
.auth-linking a { text-decoration:underline; text-underline-offset:3px; }
.auth-loading { padding:30px 0; display:grid; gap:14px; }
.auth-loading span { display:block; height:44px; border-radius:8px; background:#F5F0EA; }
.auth-loading span:last-child { width:65%; height:14px; }
/* Guide is independently readable without scripts or an authenticated account. */
.auth-guide { --auth-muted:#71605B; --auth-line:#E9DED2; margin:0; background:#FFFEFB; color:#3E2F31; font:14px/1.9 Pretendard,system-ui,sans-serif; }
.auth-guide-header,.auth-guide-main,.auth-guide-footer { width:calc(100% - 48px); max-width:940px; margin:auto; }
.auth-guide-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:26px 0; border-bottom:1px solid var(--auth-line); }
.auth-guide-brand { font-size:25px; font-weight:850; letter-spacing:-1px; }
.auth-guide-brand span { color:#9B4B3A; }
.auth-guide a { text-underline-offset:4px; text-decoration:underline; }
.auth-guide-header a { min-height:44px; display:inline-flex; align-items:center; }
.auth-guide-header>a:last-child { font-size:12px; }
.auth-guide-main { padding:45px 0 60px; }
.auth-guide-main h1 { font-size:34px; line-height:1.5; letter-spacing:-1.4px; margin:13px 0 22px; word-break:keep-all; }
.auth-guide-main h2 { margin:0 0 14px; font-size:21px; line-height:1.6; letter-spacing:-.6px; }
.auth-guide-main h3 { font-size:15px; margin:20px 0 9px; }
.auth-guide-main p { margin:12px 0; }
.auth-guide-main section { padding:30px 0; border-top:1px solid var(--auth-line); scroll-margin-top:25px; }
.auth-guide-intro { max-width:720px; color:var(--auth-muted); margin-bottom:30px!important; }
.auth-guide-nav { display:flex; flex-wrap:wrap; gap:8px 20px; margin:20px 0 30px; font-size:12px; }
.auth-guide-nav a { display:flex; align-items:center; min-height:36px; }
.auth-guide-main ul,.auth-guide-main ol { margin:12px 0; padding-left:22px; }
.auth-guide-main li { padding-left:4px; margin:10px 0; }
.auth-guide-main code { font-family:ui-monospace,monospace; font-size:.88em; background:#F6F0E8; padding:2px 5px; border-radius:4px; overflow-wrap:anywhere; word-break:break-word; }
.auth-guide-table { width:100%; border-collapse:collapse; margin:16px 0; font-size:12px; table-layout:fixed; }
.auth-guide-table th,.auth-guide-table td { text-align:left; vertical-align:top; padding:13px 12px; border:1px solid var(--auth-line); overflow-wrap:anywhere; }
.auth-guide-table th { background:#FFF7E9; width:26%; font-weight:650; }
.auth-guide-footer { padding:22px 0 35px; border-top:1px solid var(--auth-line); color:var(--auth-muted); font-size:11px; }
.auth-guide-skip { position:absolute; top:-100px; left:20px; padding:10px; background:#3E2F31; color:#FFF; z-index:10; }
.auth-guide-skip:focus { top:10px; }
@media(max-width:1100px) { .auth-card { padding:34px 27px 24px; }.auth-story { padding:35px 28px 26px; }.auth-story h2 {font-size:26px;} }
@media(max-width:760px) {
  .auth-route .spot-buddy .auth-page { width:calc(100% - 32px); }
  .auth-page { padding-top:15px; padding-bottom:38px; }
  .auth-breadcrumb { margin-bottom:16px; font-size:11px; }
  .auth-layout { grid-template-columns:1fr; max-width:500px; border-radius:14px; }
  .auth-story { padding:23px 25px; border-right:0; border-bottom:1px solid var(--auth-line); }
  .auth-story-copy { padding:14px 0 0; }
  .auth-story h2 { font-size:23px; line-height:1.45; }
  .auth-story-copy p { font-size:12px; margin-top:11px; }
  .auth-story-copy p br { display:none; }
  .auth-story-line,.auth-story-foot { display:none; }
  .auth-card { padding:28px 25px 20px; }
  .auth-card h1 { font-size:25px; }
  .auth-guide-main { padding-top:30px; }
  .auth-guide-main h1 { font-size:28px; }
  .auth-guide-main h2 { font-size:20px; }
}
@media(max-width:380px) { .auth-card {padding:25px 19px 18px;} .auth-story {padding:21px 19px;} .auth-card h1 {font-size:23px;} .auth-guide-header,.auth-guide-main,.auth-guide-footer {width:calc(100% - 36px);} .auth-guide-table th,.auth-guide-table td {padding:9px 7px;} }
@media(prefers-reduced-motion:reduce) { .auth-route,.auth-guide {scroll-behavior:auto;} }
body.auth-route .spot-rail{display:none!important}
