:root{--color-primary: #4A9B8E;--color-primary-light: #6BB5A8;--color-primary-dark: #3A7D72;--color-secondary: #F5A623;--color-secondary-light: #F7BC5A;--color-bg: #F8F6F3;--color-surface: #FFFFFF;--color-surface-hover: #F0EEEB;--color-text-primary: #2D3436;--color-text-secondary: #636E72;--color-text-hint: #B2BEC3;--color-success: #27AE60;--color-warning: #F39C12;--color-danger: #E74C3C;--color-milestone: #9B59B6;--color-medal-gold: #FFD700;--color-medal-silver: #C0C0C0;--color-medal-bronze: #CD7F32;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-xxl: 28px}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font-family);font-size:var(--font-size-md);color:var(--color-text-primary);background-color:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page-container{padding:var(--spacing-md);padding-bottom:calc(50px + var(--spacing-md) + env(safe-area-inset-bottom));min-height:100vh}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--spacing-md);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-md)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-toast{max-width:78vw;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);line-height:1.5}.van-notify{padding-top:calc(var(--spacing-sm) + env(safe-area-inset-top));padding-bottom:var(--spacing-sm);font-size:var(--font-size-sm);line-height:1.5}.van-dialog{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.van-dialog .van-dialog__header{padding-top:var(--spacing-lg);color:var(--color-text-primary);font-weight:600}.van-dialog .van-dialog__message{color:var(--color-text-secondary);line-height:1.6}.van-dialog .van-dialog__footer .van-button{font-size:var(--font-size-md)}.van-dialog .van-dialog__footer .van-button:active{opacity:.82}.auth-page{min-height:100vh;min-height:100dvh;overflow-y:auto;padding:calc(var(--spacing-xl) + env(safe-area-inset-top)) var(--spacing-md) calc(var(--spacing-xl) + env(safe-area-inset-bottom));background:radial-gradient(circle at top left,rgba(107,181,168,.22),transparent 34%),linear-gradient(180deg,var(--color-bg) 0%,rgba(107,181,168,.1) 100%)}.auth-shell{width:100%;max-width:420px;min-height:calc(100vh - 64px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:calc(100dvh - 64px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:0 auto;display:flex;flex-direction:column;justify-content:center}.auth-header{margin-bottom:var(--spacing-lg);text-align:center}.auth-header .eyebrow{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 var(--spacing-md);margin-bottom:var(--spacing-sm);color:var(--color-primary-dark);background:#6bb5a829;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.auth-header h1{color:var(--color-primary);font-size:var(--font-size-xxl);line-height:1.25;margin-bottom:var(--spacing-sm)}.auth-header .subtitle{max-width:320px;margin:0 auto;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.6}.auth-card{width:100%;padding:var(--spacing-md) 0 var(--spacing-lg);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-card .van-cell-group--inset{margin:0;border-radius:var(--radius-md);overflow:hidden}.auth-card .van-cell{align-items:center;padding:14px var(--spacing-md)}.auth-card .van-field__label{color:var(--color-text-primary);font-weight:500}.auth-card .van-field__control{color:var(--color-text-primary)}.auth-card .van-field__control::placeholder{color:var(--color-text-hint)}.auth-card .van-field__right-icon{color:var(--color-text-secondary)}.auth-card .van-button{min-height:44px;font-size:var(--font-size-md);font-weight:600}.auth-form{width:100%}.auth-actions{margin-top:var(--spacing-lg);padding:0 var(--spacing-md)}.auth-link-row{margin-top:var(--spacing-lg);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-link-row button{border:0;padding:var(--spacing-xs);color:var(--color-primary);background:transparent;font:inherit;font-weight:600;cursor:pointer}.auth-segment{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xs);margin:0 var(--spacing-md) var(--spacing-md);padding:var(--spacing-xs);background:var(--color-surface-hover);border-radius:var(--radius-full)}.auth-segment button{min-height:40px;border:0;border-radius:var(--radius-full);color:var(--color-text-secondary);background:transparent;font:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}.auth-segment button.active{color:var(--color-primary-dark);background:var(--color-surface);box-shadow:var(--shadow-sm)}.password-checklist{display:grid;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-md) 0;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.password-checklist div{display:flex;align-items:center;gap:var(--spacing-xs)}.password-checklist .van-icon{color:var(--color-text-hint)}.password-checklist .valid,.password-checklist .valid .van-icon{color:var(--color-success)}.password-strength-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) 0;font-size:var(--font-size-xs)}.password-strength-bar .strength-track{flex:1;height:6px;overflow:hidden;background:var(--color-surface-hover);border-radius:var(--radius-full)}.password-strength-bar .strength-fill{display:block;height:100%;width:33%;background:var(--color-danger);border-radius:inherit;transition:width .2s ease,background-color .2s ease}.password-strength-bar .strength-label{min-width:52px;color:var(--color-danger);text-align:right}.password-strength-bar.medium .strength-fill{width:66%;background:var(--color-warning)}.password-strength-bar.medium .strength-label{color:var(--color-warning)}.password-strength-bar.strong .strength-fill{width:100%;background:var(--color-success)}.password-strength-bar.strong .strength-label{color:var(--color-success)}
