/* Layout and spacing follow the supplied 石榴 AI login screen. */
body:has(.auth-page) { background:#fff; }
body:has(.auth-page) .sidebar,
body:has(.auth-page) .topbar,
body:has(.auth-page) .site-footer,
body:has(.auth-page) #mobile-navigation { display:none!important; }
body:has(.auth-page) .workspace { margin:0; }
#main:has(.auth-page) { padding:0;max-width:none;min-height:100dvh;animation:none; }
.auth-page { min-height:100dvh;background:#fff;color:#15151a; }
.auth-header { height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 4px 0;display:flex;align-items:center; }
.auth-back { width:44px;height:44px;display:grid;place-items:center;color:#111; }
.auth-back .icon { width:21px;height:21px; }
.auth-content { width:calc(100% - 76px);max-width:380px;margin:0 auto;padding-bottom:calc(40px + env(safe-area-inset-bottom)); }
.auth-brand { text-align:center;padding-top:24px; }
.auth-brand img { display:block;width:84px;height:84px;object-fit:contain;margin:0 auto; }
.auth-brand h1 { margin:8px 0 0;font-size:30px;line-height:38px;font-weight:700;letter-spacing:-.7px;color:#28232f; }
.auth-form { margin-top:26px; }
.auth-form[data-login-method="wechat"] { margin-top:44px; }
.auth-form [hidden] { display:none!important; }
.auth-one-click,.auth-alternate { display:block;width:100%;height:50px;border-radius:999px;font-size:16px;font-weight:500;transition:background .16s,transform .16s; }
.auth-one-click { border:0;background:#7560df;color:#fff; }
.auth-alternate { margin-top:12px;border:1px solid #e9e7ef;background:#fff;color:#25232c; }
.auth-one-click:active:not(:disabled),.auth-alternate:active:not(:disabled) { transform:scale(.99); }
.auth-one-click:disabled,.auth-alternate:disabled,.auth-switch:disabled { opacity:.65;cursor:wait; }
.auth-switch { display:block;margin:16px auto 0;padding:6px 12px;color:#6e60c9;font-size:14px; }
.auth-field { display:flex;align-items:center;height:55px;border:1px solid #dad9e1;border-radius:8px;background:#fff;transition:border-color .16s; }
.auth-field+.auth-field { margin-top:10px; }
.auth-field:focus-within { border-color:#7463dc; }
.auth-field input { width:100%;min-width:0;height:100%;padding:0 13px;border:0;border-radius:8px;outline:none;background:transparent;color:#25232c;font-size:16px;font-weight:400;box-shadow:none; }
.auth-field input::placeholder { color:#b7b8c3;font-size:14px;font-weight:500; }
.auth-send { flex:none;align-self:stretch;min-width:103px;padding:0 14px;color:#4d32e8;font-size:12px;font-weight:500;white-space:nowrap; }
.auth-send:disabled { color:#9996b0;cursor:default; }
.auth-agreement { display:flex;gap:6px;align-items:center;margin-top:24px;min-height:36px;font-size:14px;line-height:22px; }
.auth-agreement>div { min-width:0; }
.auth-agreement label { cursor:pointer; }
.auth-agreement button { padding:0;background:none;border:0;color:#4d32e8;font-size:inherit;line-height:inherit;text-decoration:underline;text-underline-offset:2px; }
.auth-check { flex:none;width:20px;height:32px;position:relative;display:flex;align-items:center; }
.auth-check input { position:absolute;inset:0;opacity:0;width:20px;height:32px;margin:0;cursor:pointer; }
.auth-check span { width:20px;height:20px;border:1px solid #cccbd3;border-radius:50%;display:grid;place-items:center;pointer-events:none; }
.auth-check input:checked+span { border-color:#7560df;background:#7560df; }
.auth-check input:checked+span:after { content:'';width:9px;height:5px;border-left:1.5px solid white;border-bottom:1.5px solid white;transform:translateY(-1px) rotate(-45deg); }
.auth-check input:focus-visible+span { outline:3px solid #d9d1ff;outline-offset:3px; }
.auth-submit { display:block;width:100%;height:56px;margin-top:30px;border:0;border-radius:7px;background:#a499df;color:#fff;font-size:15px;font-weight:500;transition:background .16s,transform .16s; }
.auth-submit.is-ready { background:#7560df; }
.auth-submit:active:not(:disabled) { transform:scale(.99); }
.auth-submit:disabled { cursor:wait; }
.auth-back:focus-visible,.auth-send:focus-visible,.auth-submit:focus-visible,.auth-one-click:focus-visible,.auth-alternate:focus-visible,.auth-switch:focus-visible,.auth-agreement button:focus-visible { outline:3px solid #d9d1ff;outline-offset:3px; }
@media(max-width:350px) { .auth-content { width:calc(100% - 48px); }.auth-agreement { font-size:12px; }.auth-send { min-width:94px;padding:0 10px; } }
@media(min-width:800px) { .auth-brand { padding-top:48px; } }
@media(prefers-reduced-motion:reduce) { .auth-field,.auth-submit,.auth-one-click,.auth-alternate { transition:none; } }
