:root{--color-primary: #F0955E;--color-primary-light: #F5B88A;--color-primary-lighter: #FDE4D0;--color-primary-alpha10: rgba(240, 149, 94, .1);--color-primary-alpha20: rgba(240, 149, 94, .18);--color-vigna-dark: #3D2B1F;--color-vigna-red: #E07850;--color-vigna-accent: linear-gradient(135deg, #F0955E 0%, #E07850 60%, #3D2B1F 100%);--color-bg: #FFF5ED;--color-surface: #FFFCF8;--color-surface-hover: #FFF0E5;--color-text: #3D2B1F;--color-text-secondary: #6B5344;--color-text-hint: #B09888;--color-done: #C8B8A8;--color-diet: #5DBE89;--color-diet-bg: #E6F7ED;--color-exercise: #F0A05A;--color-exercise-bg: #FFF0E0;--color-study: #B085D8;--color-study-bg: #F2EAF9;--color-shopping: #E88AAF;--color-shopping-bg: #FDE8F1;--color-errand: #50C9A8;--color-errand-bg: #E2F8F1;--color-success: #5DBE89;--color-success-dark: #4AA873;--color-warning: #F2B84B;--color-error: #E86464;--color-border: #F0D8C4;--color-divider: #F5E5D5;--shadow-sm: 0 2px 8px rgba(61, 43, 31, .04);--shadow-md: 0 4px 16px rgba(61, 43, 31, .07);--shadow-lg: 0 8px 28px rgba(61, 43, 31, .09);--shadow-float: 0 6px 20px rgba(240, 149, 94, .22);--radius-xs: 10px;--radius-sm: 14px;--radius-md: 20px;--radius-lg: 26px;--radius-xl: 34px;--radius-full: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--font-xs: 11px;--font-sm: 13px;--font-base: 15px;--font-md: 17px;--font-lg: 20px;--font-xl: 24px;--font-2xl: 28px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--ease-default: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--header-height: 52px;--tabbar-height: 48px;--fab-size: 54px;--bottom-bar-height: 64px;--min-touch: 44px;--color-ai-primary: #F0955E;--color-ai-primary-light: #F5C8A0;--color-ai-primary-alpha10: rgba(240, 149, 94, .1);--color-ai-primary-alpha20: rgba(240, 149, 94, .18);--color-ai-secondary: #E8806A;--color-ai-secondary-light: #F0B8A8;--color-ai-bg: #FFF5ED;--color-ai-surface: #FFFCF8;--color-ai-bubble-user: linear-gradient(135deg, #F0955E 0%, #E8806A 100%);--color-ai-bubble-ai: #FFF0E5;--color-ai-text: #3D2B1F;--color-ai-text-secondary: #6B5344;--color-ai-character-bg: linear-gradient(180deg, #FDE8D4 0%, #FFF0E5 50%, #FFF5ED 100%);--color-ai-input-bg: #FFFCF8;--color-ai-input-border: #F0D0B8;--color-ai-card-bg: #FFFAF5;--color-ai-card-border: #F0D8C4;--color-ai-success: #5DBE89;--color-ai-check: #F0955E;--shadow-ai-sm: 0 2px 8px rgba(240, 149, 94, .08);--shadow-ai-md: 0 4px 16px rgba(240, 149, 94, .12);--shadow-ai-float: 0 6px 20px rgba(240, 149, 94, .18)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:16px;-webkit-text-size-adjust:100%;overflow:hidden;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:var(--font-base);color:var(--color-text);background:var(--color-bg);line-height:1.5;overflow:hidden;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100%;overflow:clip;position:relative}::-webkit-scrollbar{width:0;height:0}button{border:none;background:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;outline:none}input,textarea{border:none;outline:none;font-family:inherit;font-size:inherit;color:inherit;background:transparent}.text-done{color:var(--color-done)!important;text-decoration:line-through}.fade-in{animation:fadeIn var(--duration-normal) var(--ease-default)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes checkPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gentleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes starPop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes aiFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes aiBlink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes aiBreath{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d2b1f59;z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s var(--ease-default)}.confirm-dialog{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-2xl);width:290px;text-align:center;animation:scaleIn .25s var(--ease-bounce);box-shadow:var(--shadow-lg)}@keyframes aiTypingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes aiBubbleIn{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes aiShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes aiCheckPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes aiGlow{0%,to{box-shadow:0 0 8px #f0955e33}50%{box-shadow:0 0 20px #f0955e66}}
