@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes gentlePulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes floatSoft{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}:root{--primary:#ee9042;--primary-dark:#d47a2e;--primary-light:#fff3e8;--secondary:#6bbfea;--blue-light:#e8f6fd;--tertiary:#f7d752;--yellow-light:#fff9e0;--quaternary:#6d97de;--error:#ff4d4f;--surface:#f5f6f8;--surface-low:#eeeff1;--surface-high:#e0e3e5;--surface-white:#fff;--surface-dim:#d1d5d8;--text:#2c2f31;--text-secondary:#595c5e;--text-hint:#757779;--outline:#abadaf;--ghost-border:1px solid #abadaf26;--shadow-card:0 2px 8px #ee904214;--shadow-card-hover:0 8px 28px #ee904229;--shadow-lg:0 8px 24px #ee90421f;--radius:12px;--font:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--transition-smooth:all .25s cubic-bezier(.4, 0, .2, 1);--transition-bounce:all .3s cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;margin:0;padding:0}svg{vertical-align:middle}body{font-family:var(--font);background:var(--surface);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.5}body:before{content:"";pointer-events:none;z-index:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;position:fixed;inset:0}input,textarea,select,button{font-family:inherit;font-size:inherit;color:inherit;border:none;outline:none}a{color:inherit;text-decoration:none}.app-layout{z-index:1;min-height:100vh;display:flex;position:relative}.sidebar{background:linear-gradient(175deg,#fffaf5 0%,#fff7ef 40%,#fff 100%);flex-direction:column;flex-shrink:0;width:252px;padding:24px 0;display:flex;position:relative;box-shadow:4px 0 24px #ee90420f}.sidebar:before{content:"";pointer-events:none;opacity:.03;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");background-size:150px 150px;position:absolute;inset:0}.sidebar:after{content:"";background:linear-gradient(#0000 0%,#ee904226 30% 70%,#0000 100%);border-radius:1px;width:2px;position:absolute;top:24px;bottom:24px;right:0}.sidebar-brand{align-items:center;gap:10px;margin-bottom:36px;padding:0 24px;animation:.5s ease-out slideIn;display:flex}.sidebar-brand-paw{font-size:24px}.sidebar-brand-text{color:#934b00;letter-spacing:-.3px;font-size:23px;font-weight:800}.sidebar-nav{flex:1;padding:0 8px}.sidebar-item{cursor:pointer;color:var(--text-secondary);transition:var(--transition-smooth);border-radius:10px;align-items:center;gap:10px;margin:2px 4px;padding:11px 20px;font-size:14px;font-weight:500;display:flex;position:relative}.sidebar-item:hover{color:var(--text);background:#ee90420f}.sidebar-item.active{background:var(--primary-light);color:var(--primary);font-weight:700;box-shadow:0 2px 8px #ee90421a}.sidebar-item.active:before{content:"";background:var(--primary);border-radius:0 4px 4px 0;width:4px;height:20px;position:absolute;top:50%;left:-4px;transform:translateY(-50%)}.sidebar-item-icon{text-align:center;width:24px;font-size:18px}.sidebar-footer{margin-top:8px;padding:16px 16px 0;position:relative}.sidebar-footer:before{content:"";background:linear-gradient(90deg,#0000,#ee90421f,#0000);height:1px;position:absolute;top:0;left:24px;right:24px}.sidebar-user{cursor:pointer;transition:var(--transition-smooth);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.sidebar-user:hover{background:#ee90420f}.sidebar-avatar{background:linear-gradient(135deg, var(--primary-light), #ffe8d0);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex;box-shadow:0 2px 8px #ee90421f}.sidebar-username{font-size:14px;font-weight:600}.main-content{flex:1;max-width:1100px;padding:32px 40px;animation:.4s ease-out fadeInUp;overflow-y:auto}.card{background:var(--surface-white);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:var(--transition-smooth);padding:20px}.btn{border-radius:var(--radius);cursor:pointer;height:40px;transition:var(--transition-smooth);justify-content:center;align-items:center;gap:6px;padding:0 20px;font-size:14px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(135deg,#ffffff26 0%,#0000 60%);transition:opacity .2s;position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(165deg, #f0a050, var(--primary));color:#fff;box-shadow:0 4px 12px #ee904240}.btn-primary:hover{background:linear-gradient(165deg, var(--primary), var(--primary-dark));transform:translateY(-1px);box-shadow:0 6px 20px #ee90424d}.btn-primary:active{transform:scale(.96)translateY(0)}.btn-ghost{background:var(--surface-low);color:var(--text)}.btn-ghost:hover{background:var(--surface-high)}.btn-danger{color:var(--error);border:var(--ghost-border);background:0 0}.btn-danger:hover{background:#fff0f0;box-shadow:0 2px 8px #ff4d4f14}.form-field{margin-bottom:16px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input{background:var(--surface-low);border-radius:var(--radius);width:100%;height:44px;transition:var(--transition-smooth);padding:0 14px;font-size:15px}.form-input:focus{background:var(--primary-light);box-shadow:0 0 0 3px #ee90421a}.form-input.error{box-shadow:0 0 0 3px #ff4d4f26}.tag{letter-spacing:.01em;transition:var(--transition-smooth);border-radius:999px;align-items:center;padding:3px 11px;font-size:12px;font-weight:600;display:inline-flex}.tag-default{background:var(--primary-light);color:var(--primary)}.tag-health{background:var(--blue-light);color:#2e86ab}.home,.detail,.profile{animation:.45s cubic-bezier(.4,0,.2,1) fadeInUp}.main-content::-webkit-scrollbar{width:6px}.main-content::-webkit-scrollbar-track{background:0 0}.main-content::-webkit-scrollbar-thumb{background:#ee904226;border-radius:3px}.main-content::-webkit-scrollbar-thumb:hover{background:#ee904240}::selection{color:var(--text);background:#ee904233}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes loginLogoFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-6px)rotate(1deg)}}@keyframes loginGlowPulse{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.2;transform:scale(1.05)}}@keyframes loginBgDrift{0%{transform:translate(0)scale(1)}33%{transform:translate(20px,-15px)scale(1.05)}66%{transform:translate(-10px,10px)scale(.98)}to{transform:translate(0)scale(1)}}@keyframes loginCardReveal{0%{opacity:0;transform:translateY(30px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.login-page{background:linear-gradient(170deg, #fffbf7 0%, var(--surface) 40%, #f0f4f8 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;opacity:.02;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;position:fixed;inset:0}.login-bg-glow-1{filter:blur(80px);pointer-events:none;background:radial-gradient(circle,#ee90421a 0%,#0000 70%);border-radius:50%;width:500px;height:500px;animation:20s ease-in-out infinite loginBgDrift;position:fixed;top:-10%;right:-10%}.login-bg-glow-2{filter:blur(80px);pointer-events:none;background:radial-gradient(circle,#6bbfea1a 0%,#0000 70%);border-radius:50%;width:400px;height:400px;animation:25s ease-in-out infinite reverse loginBgDrift;position:fixed;bottom:5%;left:-5%}.login-topbar{z-index:50;-webkit-backdrop-filter:blur(16px);background:#fff9;align-items:center;gap:10px;padding:18px 36px;animation:.6s ease-out loginFadeIn;display:flex;position:fixed;top:0;left:0;right:0}.login-topbar-paw{font-size:24px}.login-topbar-brand{color:#934b00;letter-spacing:-.3px;font-size:24px;font-weight:800}.login-center{z-index:1;flex-direction:column;align-items:center;width:100%;max-width:440px;padding:80px 24px 40px;display:flex;position:relative}.login-brand{text-align:center;margin-bottom:36px;animation:.7s ease-out loginFadeIn;position:relative}.login-logo-glow{filter:blur(30px);background:radial-gradient(circle,#ee904226 0%,#0000 70%);border-radius:50%;animation:4s ease-in-out infinite loginGlowPulse;position:absolute;inset:-30px}.login-logo-box{background:linear-gradient(145deg,#fff,#fff8f0);border-radius:26px;justify-content:center;align-items:center;width:92px;height:92px;margin:0 auto 18px;font-size:48px;animation:5s ease-in-out infinite loginLogoFloat;display:flex;position:relative;box-shadow:0 8px 32px #ee90421f,0 2px 8px #ee90420f}.login-title{color:var(--text);letter-spacing:-.3px;margin-bottom:6px;font-size:28px;font-weight:700}.login-subtitle{color:var(--text-secondary);opacity:.7;font-size:15px}.login-card{-webkit-backdrop-filter:blur(20px);background:#ffffffd9;border-radius:24px;width:100%;padding:32px 28px;animation:.8s cubic-bezier(.4,0,.2,1) .15s both loginCardReveal;box-shadow:0 12px 40px #ee904214,0 2px 8px #ee90420a}.login-tabs{background:var(--surface-low);border-radius:999px;margin-bottom:26px;padding:3px;display:flex}.login-tab{height:40px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;flex:1;font-size:14px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1)}.login-tab.active{color:var(--primary);background:#fff;box-shadow:0 2px 8px #ee90421a}.login-tab:not(.active):hover{color:var(--text)}.login-field{margin-bottom:20px;animation:.6s ease-out both loginFadeIn}.login-field:first-child{animation-delay:.3s}.login-field:nth-child(2){animation-delay:.4s}.login-label{color:var(--text-secondary);margin:0 0 8px 10px;font-size:13px;font-weight:600;display:block}.login-input-wrap{background:var(--surface-low);border:2px solid #0000;border-radius:16px;align-items:center;height:50px;padding:0 16px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.login-input-wrap:focus-within{background:var(--primary-light);border-color:#ee904233;box-shadow:0 4px 16px #ee904214}.login-prefix{color:var(--text);margin-right:8px;font-size:15px;font-weight:600}.login-input{background:0 0;flex:1;height:100%;font-size:15px}.login-input::placeholder{color:var(--text-hint);opacity:.5}.login-input-icon{opacity:.3;flex-shrink:0;margin-left:8px;font-size:16px;transition:opacity .2s}.login-input-wrap:focus-within .login-input-icon{opacity:.5;color:var(--primary)}.login-code-btn{background:linear-gradient(165deg, #f0a050, var(--primary));color:#fff;cursor:pointer;border-radius:999px;flex-shrink:0;height:34px;margin-left:8px;padding:0 16px;font-size:12px;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #ee904233}.login-code-btn:hover{background:linear-gradient(165deg, var(--primary), var(--primary-dark));transform:translateY(-1px);box-shadow:0 4px 12px #ee90424d}.login-code-btn.disabled{background:var(--surface-dim);color:var(--outline);cursor:default;box-shadow:none;transform:none}.login-error{color:var(--error);margin:-10px 0 14px 10px;font-size:12px;animation:.3s ease-out fadeInUp}.login-submit{background:linear-gradient(165deg, #f0a050, var(--primary));color:#fff;cursor:pointer;border-radius:24px;width:100%;height:50px;font-size:17px;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 6px 20px #ee904240}.login-submit:after{content:"";pointer-events:none;background:linear-gradient(135deg,#fff3 0%,#0000 50%);position:absolute;inset:0}.login-submit:hover{background:linear-gradient(165deg, var(--primary), var(--primary-dark));transform:translateY(-2px);box-shadow:0 8px 28px #ee904259}.login-submit:active{transform:scale(.97)translateY(0);box-shadow:0 4px 12px #ee904233}.login-submit.loading{opacity:.7;cursor:wait;animation:1.5s ease-in-out infinite gentlePulse}.login-divider{align-items:center;padding:22px 0 14px;display:flex}.login-divider-line{background:linear-gradient(90deg,#0000,#abadaf26,#0000);flex:1;height:1px}.login-divider-text{color:#595c5e66;text-transform:uppercase;letter-spacing:2px;padding:0 14px;font-size:11px;font-weight:600}.login-social{justify-content:center;display:flex}.login-social-btn{background:var(--surface-low);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;font-size:24px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 2px 8px #ee90420f}.login-social-btn:hover{background:var(--primary-light);transform:translateY(-2px);box-shadow:0 4px 16px #ee90421f}.login-footer{color:var(--text-secondary);margin-top:32px;font-size:13px;animation:1s ease-out .5s both loginFadeIn}.login-footer a{color:var(--quaternary);font-weight:600;transition:color .2s}.login-footer a:hover{color:var(--primary);text-decoration:underline}.doc-modal-mask{z-index:2000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.doc-modal{background:#fff;border-radius:16px;flex-direction:column;width:520px;max-width:90vw;max-height:80vh;animation:.25s ease-out aboutSlideUp;display:flex;box-shadow:0 20px 60px #0003}.doc-modal-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.doc-modal-header h2{color:#2c2f31;margin:0;font-size:18px;font-weight:700}.doc-modal-close{color:#999;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px}.doc-modal-close:hover{color:#333}.doc-modal-body{flex:1;padding:20px 24px 28px;overflow-y:auto}.doc-modal-date{color:#9e9589;margin-bottom:16px;font-size:12px}.doc-h3{color:#2c2f31;margin:20px 0 6px;font-size:15px;font-weight:700}.doc-p{color:#666;white-space:pre-wrap;margin:0 0 12px;font-size:14px;line-height:1.8}@keyframes homeCardReveal{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes homeStatPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.home-loading{text-align:center;color:var(--text-hint);padding:80px;animation:1.5s ease-in-out infinite gentlePulse}.home-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:120px 0;animation:.6s ease-out fadeInUp;display:flex}.home-empty-icon{margin-bottom:20px;font-size:64px;animation:3s ease-in-out infinite floatSoft}.home-empty h2{letter-spacing:-.3px;margin-bottom:6px;font-size:26px;font-weight:800}.home-empty p{color:var(--text-secondary);font-size:15px}.home-header{justify-content:space-between;align-items:center;margin-bottom:28px;animation:.4s ease-out fadeInUp;display:flex}.home-title{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text) 0%, #4a3520 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:800}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;margin-bottom:40px;display:grid}.cat-card{cursor:pointer;align-items:center;gap:18px;padding:22px 24px;transition:all .3s cubic-bezier(.4,0,.2,1);animation:.5s cubic-bezier(.4,0,.2,1) both homeCardReveal;display:flex;position:relative;overflow:hidden}.cat-card:first-child{animation-delay:50ms}.cat-card:nth-child(2){animation-delay:.12s}.cat-card:nth-child(3){animation-delay:.19s}.cat-card:nth-child(4){animation-delay:.26s}.cat-card:nth-child(5){animation-delay:.33s}.cat-card:nth-child(6){animation-delay:.4s}.cat-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #ee904229}.cat-card-avatar{background:linear-gradient(145deg, var(--primary-light), #ffe8d0);border:3px solid #ee90421f;border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:32px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden;box-shadow:0 4px 12px #ee90421a}.cat-card-avatar img{object-fit:cover;width:100%;height:100%}.cat-card:hover .cat-card-avatar{border-color:#ee904240;transform:scale(1.04);box-shadow:0 6px 20px #ee90422e}.cat-card-info{flex:1;min-width:0}.cat-card-name{letter-spacing:-.2px;margin-bottom:3px;font-size:18px;font-weight:700}.cat-card-breed{color:var(--text-secondary);margin-bottom:8px;font-size:13px}.home-section{margin-bottom:36px;animation:.5s ease-out .2s both fadeInUp}.home-section-title{letter-spacing:-.2px;align-items:center;gap:8px;margin-bottom:16px;font-size:20px;font-weight:700;display:flex}.home-section-title:before{content:"";background:linear-gradient(180deg, var(--primary), var(--tertiary));border-radius:2px;width:4px;height:20px;display:inline-block}.overview-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.overview-card{text-align:center;flex-direction:column;align-items:center;padding:24px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);animation:.5s cubic-bezier(.34,1.56,.64,1) both homeStatPop;display:flex;position:relative;overflow:hidden}.overview-card:first-child{animation-delay:.15s}.overview-card:nth-child(2){animation-delay:.25s}.overview-card:nth-child(3){animation-delay:.35s}.overview-card:before{content:"";opacity:.06;border-radius:50%;width:80px;height:80px;transition:all .3s;position:absolute;top:-20px;right:-20px}.overview-card:first-child:before{background:var(--primary)}.overview-card:nth-child(2):before{background:var(--secondary)}.overview-card:nth-child(3):before{background:var(--quaternary)}.overview-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #ee90421f}.overview-card:hover:before{opacity:.1;transform:scale(1.2)}.overview-value{letter-spacing:-.5px;margin-bottom:6px;font-size:32px;font-weight:800;line-height:1}.overview-label{color:var(--text-secondary);letter-spacing:.02em;font-size:13px;font-weight:600}.tip-card{background:#fff9e0;border-radius:12px;align-items:flex-start;gap:12px;max-width:400px;margin-top:24px;padding:16px;display:flex}.tip-icon{font-size:20px}.tip-content{flex:1}.tip-content strong{color:#6f5d00;margin-bottom:4px;font-size:14px;display:block}.tip-content p{color:#8a7a3a;margin:0;font-size:13px;line-height:1.4}.encourage-bar{cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:12px;margin-bottom:24px;padding:16px 20px;transition:all .2s;display:flex;box-shadow:0 2px 8px #ee904214}.encourage-bar:hover{transform:translateY(-2px);box-shadow:0 4px 16px #ee904224}.encourage-icon{font-size:20px}.encourage-content{flex:1}.encourage-content strong{color:#2c2f31;font-size:14px;display:block}.encourage-content p{color:#9e9589;margin:2px 0 0;font-size:12px}.encourage-arrow{color:#ccc;font-size:20px}.cat-card-expense{color:#ee9042;margin-left:8px;font-size:12px}.section-header{justify-content:space-between;align-items:center;display:flex}.section-link{color:#ee9042;cursor:pointer;background:0 0;border:none;font-size:13px}.section-link:hover{text-decoration:underline}.timeline-list-home{padding-left:8px}.timeline-row-home{gap:14px;padding:10px 0;display:flex;position:relative}.timeline-dot-home{background:#ee9042;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px;box-shadow:0 0 0 3px #ee904226}.timeline-body-home{flex:1}.timeline-date-home{color:#9e9589;margin-bottom:4px;font-size:12px;display:block}.timeline-text-home{color:#2c2f31;margin:0;font-size:14px;line-height:1.5}.timeline-tags-home{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.timeline-thumb-home{object-fit:cover;border-radius:8px;width:100%;max-height:160px;margin-top:8px;display:block}.home-actions{align-items:center;gap:8px;display:flex}@keyframes detailSlideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes detailContentFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes detailCardReveal{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.detail-back{color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:4px;margin-bottom:20px;padding:6px 12px 6px 6px;font-size:14px;transition:all .2s cubic-bezier(.4,0,.2,1);animation:.4s ease-out detailSlideIn;display:inline-flex}.detail-back:hover{color:var(--primary);background:var(--primary-light)}.detail-header{align-items:center;gap:20px;margin-bottom:24px;padding:24px 28px;animation:.45s ease-out fadeInUp;display:flex;position:relative;overflow:hidden}.detail-header:before{content:"";background:linear-gradient(90deg, var(--primary), var(--tertiary), var(--secondary));border-radius:4px 4px 0 0;height:4px;position:absolute;top:0;left:0;right:0}.detail-avatar{background:linear-gradient(145deg, var(--primary-light), #ffe8d0);border:3px solid #ee90421a;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;width:84px;height:84px;font-size:42px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden;box-shadow:0 4px 16px #ee904226}.detail-avatar img{object-fit:cover;width:100%;height:100%}.detail-header:hover .detail-avatar{transform:scale(1.03);box-shadow:0 6px 24px #ee904233}.detail-name{letter-spacing:-.3px;margin-bottom:2px;font-size:26px;font-weight:800}.detail-breed{color:var(--text-secondary);font-size:14px}.detail-tabs{background:var(--surface-white);border-radius:var(--radius);box-shadow:var(--shadow-card);gap:2px;margin-bottom:24px;padding:4px;animation:.45s ease-out .1s both fadeInUp;display:flex}.detail-tab{cursor:pointer;color:var(--text-hint);letter-spacing:.01em;background:0 0;border-radius:10px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.detail-tab:hover{color:var(--text);background:var(--surface-low)}.detail-tab.active{background:linear-gradient(165deg, var(--primary-light), #fff0de);color:var(--primary);box-shadow:0 2px 8px #ee90421a}.detail-tab.active:after{content:"";background:var(--primary);border-radius:2px;width:16px;height:3px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.detail-content{animation:.4s ease-out .15s both detailContentFade}.profile-fields{padding:0;overflow:hidden}.profile-row{justify-content:space-between;align-items:center;padding:16px 24px;transition:background .2s;display:flex}.profile-row:hover{background:#ee904205}.profile-label{color:var(--text-hint);font-size:14px;font-weight:500}.profile-value{font-size:14px;font-weight:600}.empty-hint{text-align:center;color:var(--text-hint);padding:48px;font-size:14px}.timeline-list{flex-direction:column;gap:14px;display:flex}.timeline-item{padding:20px 24px;animation:.4s ease-out both detailCardReveal;position:relative}.timeline-item:first-child{animation-delay:50ms}.timeline-item:nth-child(2){animation-delay:.1s}.timeline-item:nth-child(3){animation-delay:.15s}.timeline-item:nth-child(4){animation-delay:.2s}.timeline-item:nth-child(5){animation-delay:.25s}.timeline-item:before{content:"";background:linear-gradient(180deg, var(--primary), #ee904233);border-radius:0 2px 2px 0;width:3px;position:absolute;top:16px;bottom:16px;left:0}.timeline-date{color:var(--text-hint);letter-spacing:.03em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.timeline-content{color:var(--text);font-size:15px;line-height:1.7}.timeline-tags{gap:6px;margin-top:10px;display:flex}.feeding-list{flex-direction:column;display:flex}.feeding-row{border-radius:10px;align-items:center;gap:14px;margin:0 -20px;padding:14px 20px;transition:background .2s;animation:.35s ease-out both detailContentFade;display:flex}.feeding-row:nth-child(odd){background:#ee904205}.feeding-row:hover{background:#ee90420d}.feeding-time{color:var(--text-secondary);font-variant-numeric:tabular-nums;width:52px;font-size:14px;font-weight:600}.feeding-brand{color:var(--text);flex:1;font-size:14px}.feeding-qty{color:var(--primary);background:var(--primary-light);border-radius:999px;padding:2px 10px;font-size:14px;font-weight:700}.weight-list{flex-direction:column;display:flex}.weight-row{border-radius:10px;align-items:center;gap:14px;margin:0 -20px;padding:14px 20px;transition:background .2s;animation:.35s ease-out both detailContentFade;display:flex}.weight-row:nth-child(odd){background:#6bbfea08}.weight-row:hover{background:#6bbfea0f}.weight-date{font-variant-numeric:tabular-nums;width:100px;font-size:14px;font-weight:600}.weight-val{flex:1;font-size:15px;font-weight:500}.weight-diff{border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.weight-diff.up{color:var(--primary);background:var(--primary-light)}.weight-diff.down{color:#2e86ab;background:var(--blue-light)}.timeline-item-header{justify-content:space-between;align-items:center;display:flex}.timeline-delete{color:#ccc;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:12px;transition:all .15s}.timeline-delete:hover{color:#ff4d4f;background:#ff4d4f14}.timeline-thumb{object-fit:cover;border-radius:8px;width:100%;max-height:180px;margin-top:8px;display:block}.tab-action-bar{justify-content:flex-end;margin-bottom:16px;display:flex}.btn-sm{gap:4px;padding:6px 16px;font-size:13px}.modal-mask{z-index:1000;background:#00000059;justify-content:center;align-items:center;animation:.2s ease-out aboutFadeIn;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:16px;width:420px;max-width:90vw;padding:28px;animation:.25s ease-out aboutSlideUp;box-shadow:0 20px 60px #00000026}.modal-field input,.modal-field textarea{color:#2c2f31;box-sizing:border-box;border:1px solid #e8e6e3;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-size:14px;transition:border-color .15s}.modal-field input:focus,.modal-field textarea:focus{border-color:#ee9042}.modal-field textarea{resize:vertical;font-family:inherit}.gallery-grid-web{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.gallery-item-web{aspect-ratio:1;border-radius:10px;position:relative;overflow:hidden}.gallery-img-web{object-fit:cover;width:100%;height:100%;display:block}.gallery-play-web{color:#fff;background:#0000004d;justify-content:center;align-items:center;font-size:24px;display:flex;position:absolute;inset:0}.gallery-delete-web{color:#fff;cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.gallery-item-web:hover .gallery-delete-web{opacity:1}.gallery-delete-web:hover{background:#ff4d4f}.cat-form-title{margin-bottom:20px;font-size:24px;font-weight:800}.cat-form-card{max-width:560px}.cf-field{margin-bottom:16px}.cf-field label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.cf-row{gap:12px;display:flex}.cf-row .cf-field{flex:1}.cf-gender{gap:8px;display:flex}.cf-gender-btn{background:var(--surface-high);color:#ccc;cursor:pointer;border:none;border-radius:999px;flex:1;height:40px;font-size:22px;font-weight:800;transition:all .15s}.cf-gender-btn.active.male{color:#4a9ec9;background:#6bbfea40}.cf-gender-btn.active.female{color:#d9637e;background:#f58da640}.cf-textarea{resize:vertical;min-height:80px;padding:10px 14px}.cf-error{color:var(--error);margin-bottom:12px;font-size:12px}.cf-save{width:100%;margin-top:8px}@keyframes profileReveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.profile-title{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text) 0%, #4a3520 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:28px;font-size:28px;font-weight:800;animation:.4s ease-out profileReveal}.profile-user-card{align-items:center;gap:18px;margin-bottom:24px;padding:24px 28px;animation:.45s ease-out 50ms both profileReveal;display:flex;position:relative;overflow:hidden}.profile-user-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#ee904214 0%,#0000 70%);border-radius:50%;width:80px;height:80px;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.profile-avatar{background:linear-gradient(145deg, var(--primary-light), #ffe8d0);z-index:1;border:3px solid #ee90421f;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 4px 16px #ee90421f}.profile-user-card:hover .profile-avatar{transform:scale(1.05);box-shadow:0 6px 24px #ee90422e}.profile-nickname{letter-spacing:-.2px;font-size:20px;font-weight:700}.profile-phone{color:var(--text-secondary);margin-top:2px;font-size:13px}.profile-stats{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}.profile-stat{flex-direction:column;align-items:center;padding:24px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);animation:.5s ease-out both profileReveal;display:flex;position:relative;overflow:hidden}.profile-stat:first-child{animation-delay:.1s}.profile-stat:nth-child(2){animation-delay:.18s}.profile-stat:before{content:"";opacity:.06;border-radius:50%;width:60px;height:60px;transition:all .3s;position:absolute;top:-15px;right:-15px}.profile-stat:first-child:before{background:var(--primary)}.profile-stat:nth-child(2):before{background:var(--secondary)}.profile-stat:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ee90421a}.profile-stat:hover:before{opacity:.1;transform:scale(1.3)}.profile-stat-value{letter-spacing:-.5px;margin-bottom:6px;font-size:32px;font-weight:800;line-height:1}.profile-stat-label{color:var(--text-secondary);font-size:13px;font-weight:600}.profile-menu{margin-bottom:24px;padding:0;animation:.5s ease-out .2s both profileReveal;overflow:hidden}.profile-menu-item{cursor:pointer;color:var(--text);align-items:center;gap:10px;padding:16px 24px;font-size:14px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.profile-menu-item:nth-child(2n){background:#ee904204}.profile-menu-item:hover{background:#ee90420d;padding-left:28px}.profile-menu-item:last-child{border-bottom:none}.profile-menu-value{color:var(--text-hint);margin-left:auto;font-size:13px;font-weight:500}.profile-logout{color:var(--error);opacity:.6;cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:6px;padding:12px 16px;font-size:14px;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);animation:.5s ease-out .3s both profileReveal;display:inline-flex}.profile-logout:hover{opacity:1;background:#ff4d4f0f}.about-mask{z-index:1000;background:#00000059;justify-content:center;align-items:center;animation:.2s ease-out aboutFadeIn;display:flex;position:fixed;inset:0}@keyframes aboutFadeIn{0%{opacity:0}to{opacity:1}}.about-modal{text-align:center;background:#fff;border-radius:16px;width:340px;padding:36px 32px 28px;animation:.25s ease-out aboutSlideUp;box-shadow:0 20px 60px #00000026}@keyframes aboutSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.about-logo{margin-bottom:12px}.about-title{color:#2c2f31;margin:0 0 4px;font-size:22px;font-weight:700}.about-version{color:#9e9589;background:#f5f6f8;border-radius:999px;padding:2px 10px;font-size:12px}.about-desc{color:#666;margin:16px 0 12px;font-size:14px;line-height:1.5}.about-features{color:#555;text-align:left;background:#fafafa;border-radius:10px;flex-direction:column;gap:6px;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.about-slogan{color:#9e9589;margin:0 0 20px;font-size:13px}.about-close{color:#fff;cursor:pointer;background:linear-gradient(135deg,#f0a54d,#ee9042);border:none;border-radius:10px;width:100%;height:40px;font-size:15px;font-weight:600;transition:opacity .15s}.about-close:hover{opacity:.9}.menu-icon-wrap{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.profile-menu-arrow{color:#ccc;margin-left:auto;font-size:18px}.expenses-page{max-width:800px;padding:32px}.expenses-header h1{color:#2c2f31;margin:0 0 24px;font-size:24px;font-weight:700}.expenses-summary{gap:16px;margin-bottom:24px;display:flex}.summary-card{background:#fff;border-radius:12px;flex:1;padding:20px 24px;box-shadow:0 2px 8px #ee904214}.summary-card.summary-main{flex:1.5}.summary-label{color:#9e9589;margin-bottom:4px;font-size:13px;display:block}.summary-amount{color:#2c2f31;font-size:28px;font-weight:700}.summary-amount.secondary{color:#ee9042;font-size:22px}.summary-mom{margin-left:8px;font-size:13px;font-weight:500}.summary-mom.up{color:#e8913c}.summary-mom.down{color:#5cb85c}.expenses-breakdown{background:#fff;border-radius:12px;margin-bottom:24px;padding:20px 24px;box-shadow:0 2px 8px #ee904214}.expenses-breakdown h3{color:#2c2f31;margin:0 0 16px;font-size:15px;font-weight:600}.breakdown-item{margin-bottom:12px}.breakdown-info{align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.breakdown-name{color:#2c2f31;flex:1}.breakdown-pct{color:#9e9589;text-align:right;min-width:40px}.breakdown-amt{color:#2c2f31;text-align:right;min-width:60px;font-weight:500}.breakdown-bar-bg{background:#f5f6f8;border-radius:3px;height:6px;overflow:hidden}.breakdown-bar-fill{border-radius:3px;height:100%;transition:width .3s}.cat-dot{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.expenses-list-section{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 2px 8px #ee904214}.expenses-list-section h3{color:#2c2f31;margin:0 0 16px;font-size:15px;font-weight:600}.expenses-loading,.expenses-empty{text-align:center;color:#9e9589;padding:40px;font-size:14px}.expense-group{margin-bottom:20px}.expense-group-header{border-bottom:1px solid #f5f6f8;justify-content:space-between;margin-bottom:8px;padding:8px 0;display:flex}.expense-group-date{color:#2c2f31;font-size:13px;font-weight:600}.expense-group-total{color:#9e9589;font-size:13px}.expense-row{align-items:center;gap:12px;padding:10px 0;display:flex}.expense-info{flex:1}.expense-name{color:#2c2f31;font-size:14px;display:block}.expense-cat{color:#9e9589;margin-top:2px;font-size:12px;display:block}.expense-amount{color:#2c2f31;font-size:15px;font-weight:600}.expenses-header{justify-content:space-between;align-items:center;display:flex}.expense-delete{color:#ccc;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;margin-left:8px;padding:4px 8px;font-size:16px;transition:all .15s}.expense-row:hover .expense-delete{opacity:1}.expense-delete:hover{color:#ff4d4f;background:#ff4d4f14}.expense-modal{width:480px}.ef-amount-row{align-items:baseline;gap:4px;margin-bottom:20px;display:flex}.ef-prefix{color:#ee9042;font-size:28px;font-weight:700}.ef-amount{color:#2c2f31;background:0 0;border:none;outline:none;width:200px;font-family:inherit;font-size:32px;font-weight:700}.ef-amount::placeholder{color:#ddd}.ef-cat-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;display:grid}.ef-cat-cell{cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;transition:all .15s;display:flex}.ef-cat-cell:hover{background:#f5f6f8}.ef-cat-cell.active{background:#fef0e1}.ef-cat-icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.ef-cat-label{color:#666;font-size:12px}.ef-cat-cell.active .ef-cat-label{color:#ee9042;font-weight:600}.modal-mask{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:16px;max-width:90vw;padding:28px;box-shadow:0 20px 60px #00000026}.modal-title{color:#2c2f31;margin:0 0 20px;font-size:18px;font-weight:700}.modal-field{margin-bottom:16px}.modal-field label{color:#9e9589;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.modal-field input{color:#2c2f31;box-sizing:border-box;border:1px solid #e8e6e3;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-size:14px}.modal-field input:focus{border-color:#ee9042}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}
