.page-module__o_0UsW__loginPage{background:var(--landing-bg);justify-content:center;align-items:center;min-height:calc(100vh - 132px);padding:40px 24px;display:flex}.page-module__o_0UsW__loginCard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:32px;transition:transform .2s,box-shadow .2s;box-shadow:0 12px 40px #0000000a}html[data-theme=dark] .page-module__o_0UsW__loginCard{box-shadow:none;background:var(--color-surface-container)}.page-module__o_0UsW__header{text-align:center;margin-bottom:28px}.page-module__o_0UsW__brandIcon{border-radius:var(--radius-md);background:var(--accent-soft);width:48px;height:48px;color:var(--accent);justify-content:center;align-items:center;margin-bottom:16px;font-size:24px;display:inline-flex}.page-module__o_0UsW__title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;margin:0 0 6px;font-size:24px;font-weight:800}.page-module__o_0UsW__subtitle{color:var(--text-secondary);margin:0;font-size:14px}.page-module__o_0UsW__errorAlert{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-md);border:1px solid #ef444433;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;font-size:13px;line-height:1.4;display:flex}.page-module__o_0UsW__successAlert{color:#059669;border-radius:var(--radius-md);background:#10b9811a;border:1px solid #10b98133;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:13px;line-height:1.4;display:flex}.page-module__o_0UsW__formGroup{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.page-module__o_0UsW__label{color:var(--text-primary);font-size:13.5px;font-weight:600}.page-module__o_0UsW__inputWrapper{align-items:center;display:flex;position:relative}.page-module__o_0UsW__inputIcon{color:var(--text-tertiary);pointer-events:none;font-size:16px;position:absolute;left:12px}.page-module__o_0UsW__input{width:100%;font-size:14px;font-family:var(--font-body);background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);outline:none;padding:10px 38px;transition:border-color .15s,box-shadow .15s}.page-module__o_0UsW__toggleVisibilityBtn{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:16px;transition:color .15s;display:flex;position:absolute;right:12px}.page-module__o_0UsW__toggleVisibilityBtn:hover{color:var(--text-primary)}.page-module__o_0UsW__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.page-module__o_0UsW__signInBtn{cursor:pointer;justify-content:center;align-items:center;gap:8px;width:100%;height:42px;margin-top:8px;font-size:14px;font-weight:700;transition:background .15s,transform .1s;display:flex}.page-module__o_0UsW__signInBtn:active{transform:scale(.98)}.page-module__o_0UsW__divider{text-align:center;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;align-items:center;margin:24px 0;font-size:12px;font-weight:550;display:flex}.page-module__o_0UsW__divider:before,.page-module__o_0UsW__divider:after{content:"";border-bottom:1px solid var(--border);flex:1}.page-module__o_0UsW__divider:not(:empty):before{margin-right:12px}.page-module__o_0UsW__divider:not(:empty):after{margin-left:12px}.page-module__o_0UsW__demoSection{background:var(--color-surface-container-low);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.page-module__o_0UsW__demoTitle{color:var(--text-primary);margin:0 0 4px;font-size:13.5px;font-weight:700}.page-module__o_0UsW__demoDesc{color:var(--text-secondary);margin:0 0 12px;font-size:12px;line-height:1.4}.page-module__o_0UsW__demoButtons{flex-direction:column;gap:8px;display:flex}.page-module__o_0UsW__demoRoleCard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;padding:10px 12px;transition:all .15s;display:flex}.page-module__o_0UsW__demoRoleCard:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.page-module__o_0UsW__demoRoleLeft{flex-direction:column;gap:2px;display:flex}.page-module__o_0UsW__roleLabel{color:var(--text-primary);font-size:13px;font-weight:700}.page-module__o_0UsW__demoEmail{color:var(--text-secondary);font-size:11px;font-family:var(--font-mono)}.page-module__o_0UsW__rolePill{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:9.5px;font-weight:700}.page-module__o_0UsW__pillAdmin{color:var(--accent);background:#6050af1f}.page-module__o_0UsW__pillOwner{color:var(--accent-2);background:#95416e1f}.page-module__o_0UsW__pillMember{color:var(--success);background:#0068761f}.page-module__o_0UsW__backHomeLink{color:var(--text-secondary);justify-content:center;align-items:center;gap:6px;width:100%;margin-top:24px;font-size:13px;font-weight:600;text-decoration:none;transition:color .15s;display:inline-flex}.page-module__o_0UsW__backHomeLink:hover{color:var(--accent)}.page-module__o_0UsW__forgotPasswordRow{justify-content:flex-end;margin-top:-10px;margin-bottom:12px;display:flex}.page-module__o_0UsW__forgotPasswordLink{color:var(--text-secondary);font-size:12.5px;font-weight:600;text-decoration:none;transition:color .15s}.page-module__o_0UsW__forgotPasswordLink:hover{color:var(--accent)}.page-module__o_0UsW__signupBox{margin-top:4px}.page-module__o_0UsW__signupRow{flex-direction:column;align-items:center;gap:10px;display:flex}.page-module__o_0UsW__signupText{color:var(--text-secondary);font-size:13px}.page-module__o_0UsW__signUpLinkBtn{background:var(--surface-container-low,var(--color-surface-container-low,#6050af0f));width:100%;color:var(--primary,#483795);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.page-module__o_0UsW__signUpLinkBtn:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
