.app-layout[data-v-956987c4]{min-height:100vh;display:flex;flex-direction:column}.app-header[data-v-956987c4]{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 48px;height:64px;background:#fcf8f2eb;backdrop-filter:blur(12px);border-bottom:1px solid var(--divider)}.app-header .logo[data-v-956987c4]{font-family:var(--font-title);font-size:24px;font-weight:700;color:var(--title);text-decoration:none;display:flex;align-items:center;gap:4px}.app-header .logo span[data-v-956987c4]{color:var(--accent)}.app-header nav[data-v-956987c4]{display:flex;gap:28px;align-items:center}.nav-link[data-v-956987c4]{color:var(--body);font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}.nav-link[data-v-956987c4]:hover,.nav-link.router-link-active[data-v-956987c4]{color:var(--accent)}.nav-user[data-v-956987c4]{display:flex;align-items:center;gap:10px}.nav-name[data-v-956987c4]{font-size:13px;color:var(--body)}.nav-login[data-v-956987c4]{font-size:14px;color:var(--accent);font-weight:600;text-decoration:none}.nav-avatar[data-v-956987c4]{width:36px;height:36px;border-radius:50%;border:none;background:linear-gradient(135deg,#e67e22,#f39c12);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600;cursor:default;user-select:none}.nav-avatar.guest[data-v-956987c4]{cursor:default}.nav-logout[data-v-956987c4]{border:1px solid var(--divider);background:#fff;color:var(--body);font-size:13px;font-family:var(--font-body);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.nav-logout[data-v-956987c4]:hover{border-color:var(--accent);color:var(--accent)}.app-main[data-v-956987c4]{flex:1;max-width:1120px;width:100%;margin:0 auto;padding:32px 24px 80px}.app-footer[data-v-956987c4]{display:flex;align-items:center;justify-content:space-between;padding:24px 48px;border-top:1px solid var(--divider);font-size:13px;color:var(--secondary)}.footer-links[data-v-956987c4]{display:flex;gap:20px;align-items:center}.footer-links a[data-v-956987c4]{font-size:13px;color:var(--secondary);text-decoration:none;transition:color .2s}.footer-links a[data-v-956987c4]:hover{color:var(--accent)}@media(max-width:640px){.app-header[data-v-956987c4]{padding:0 16px}.app-header nav[data-v-956987c4]{gap:14px}.nav-name[data-v-956987c4]{display:none}.app-main[data-v-956987c4]{padding:16px 12px 60px}.app-footer[data-v-956987c4]{padding:16px}}:root{--font-title: "Songti SC", "STSong", "Noto Serif SC", Georgia, "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}html{font-family:var(--font-body);text-rendering:optimizeLegibility}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400 700;font-display:swap;src:local("Noto Serif SC"),local("Songti SC"),local("STSong")}:root{--bg: #FCF8F2;--card: #FFFFFF;--accent: #E67E22;--accent-dark: #D35400;--accent-light: #FDF0E6;--title: #3D2E22;--body: #5C4A3E;--secondary: #9B8B7D;--divider: #EDE5D9;--radius-lg: 20px;--radius-md: 12px;--radius-sm: 8px;--shadow: 0 8px 30px rgba(160, 120, 80, .08);--shadow-hover: 0 12px 40px rgba(160, 120, 80, .14);--font-title: "Songti SC", "STSong", "Noto Serif SC", Georgia, serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--color-bg: var(--bg);--color-surface: var(--card);--color-primary: var(--accent);--color-primary-dark: var(--accent-dark);--color-text: var(--title);--color-text-light: var(--secondary);--color-border: var(--divider);--radius: var(--radius-md)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}@keyframes slide-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes bounce-in{0%{opacity:0;transform:translateY(16px) scale(.96)}60%{opacity:1;transform:translateY(-4px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes input-pulse-glow{0%,to{box-shadow:0 0 #e67e222e;border-color:var(--divider)}50%{box-shadow:0 0 0 6px #e67e221a;border-color:#e67e2273}}@keyframes pulse-soft{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}@keyframes shake-tag{0%,to{transform:translate(0)}20%{transform:translate(-4px) rotate(-2deg)}40%{transform:translate(4px) rotate(2deg)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10px) rotate(0)}to{opacity:0;transform:translateY(70vh) rotate(360deg)}}.anim-slide-in{animation:slide-in .3s ease both}.anim-bounce-in{animation:bounce-in .4s ease both}.anim-slide-up{animation:slide-up .45s ease both}.input-pulse{animation:input-pulse-glow 2.4s ease-in-out infinite}.input-pulse:focus{animation:none}.btn-pulse:hover:not(:disabled){animation:pulse-soft .7s ease-in-out infinite}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 24px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all .2s}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 14px #e67e2240}.btn-primary:hover{background:var(--accent-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-outline{background:var(--bg);color:var(--accent);border:1px solid var(--accent)}.btn-outline:hover{background:var(--accent-light)}.btn-ghost{background:var(--bg);color:var(--body);border:1px solid var(--divider)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.card{background:var(--card);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow)}input[type=text],input[type=number],textarea,select{width:100%;padding:8px 12px;border:1px solid var(--divider);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-body);color:var(--body);background:var(--bg);outline:none;transition:border-color .2s}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:56px}.section-title{font-family:var(--font-title);font-size:20px;font-weight:600;color:var(--title);display:flex;align-items:center;gap:8px}.recipe-content{white-space:pre-wrap;line-height:1.8}.recipe-content h1,.recipe-content h2,.recipe-content h3{margin:16px 0 8px;color:var(--title);font-family:var(--font-title)}@media(max-width:640px){.card{padding:16px}}
