.app-shell{min-height:100dvh;display:flex;flex-direction:column;max-width:430px;margin:0 auto;background:var(--color-bg);position:relative;box-shadow:0 0 40px #0000000f}.app-main{flex:1;overflow-y:auto;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px) + 12px);-webkit-overflow-scrolling:touch}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;height:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--color-border);z-index:100}.bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--color-text-muted);font-size:11px;transition:color .2s;-webkit-tap-highlight-color:transparent}.bottom-nav__item--active{color:var(--color-primary)}.bottom-nav__icon{font-size:22px;line-height:1;transition:transform .2s}.bottom-nav__item--active .bottom-nav__icon{transform:scale(1.1)}.bottom-nav__label{font-weight:500;letter-spacing:.02em}.app-main--full{padding-bottom:env(safe-area-inset-bottom,0px)}.home__pet-switch{display:flex;gap:8px;overflow-x:auto;margin-bottom:16px;padding-bottom:4px;-webkit-overflow-scrolling:touch}.home__pet-chip{flex-shrink:0;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;background:#fff;border:1px solid var(--color-border);color:var(--color-text-muted);-webkit-tap-highlight-color:transparent}.home__pet-chip--active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.home__banner{background:linear-gradient(135deg,#fff5ee,#fff 60%);margin-bottom:24px;cursor:pointer;transition:transform .15s}.home__banner:active{transform:scale(.98)}.home__banner-pet{display:flex;align-items:center;gap:14px;margin-bottom:12px}.home__banner-avatar{font-size:52px;line-height:1;width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);border-radius:50%}.home__banner-name{font-size:22px;font-weight:700}.home__banner-mood{font-size:13px;color:var(--color-text-muted);margin-top:2px;line-height:1.4}.home__banner-tags{display:flex;flex-wrap:wrap;gap:6px}.home__reminders{margin-bottom:24px}.home__reminder-list{display:flex;flex-direction:column;gap:10px}.home__reminder-item{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}.home__reminder-item:active{opacity:.85}.home__reminder-icon{font-size:24px;flex-shrink:0}.home__reminder-content{flex:1;min-width:0}.home__reminder-title{font-size:14px;font-weight:500}.home__reminder-pet{font-size:12px;color:var(--color-text-muted);margin-top:2px}.home__reminder-empty{text-align:center;padding:20px;font-size:14px;color:var(--color-text-muted)}.home__actions{margin-bottom:24px}.home__action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.home__action-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:4px;-webkit-tap-highlight-color:transparent}.home__action-item:active .home__action-icon{transform:scale(.92)}.home__action-icon{width:52px;height:52px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:24px;transition:transform .15s}.home__action-label{font-size:12px;color:var(--color-text);font-weight:500}.section-title__more{cursor:pointer}.pets__list{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.pets__card{padding:0;overflow:hidden}.pets__card-header{display:flex;align-items:center;gap:12px;padding:16px 16px 12px;cursor:pointer}.pets__avatar{font-size:40px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);border-radius:50%;flex-shrink:0}.pets__info{flex:1;min-width:0}.pets__name{font-size:18px;font-weight:700}.pets__breed{font-size:13px;color:var(--color-text-muted);margin-top:2px}.pets__age{font-size:13px;font-weight:600;color:var(--color-primary);background:var(--color-primary-light);padding:4px 10px;border-radius:12px;flex-shrink:0}.pets__details{padding:12px 16px;border-top:1px solid var(--color-border);margin-top:0}.pets__detail-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 0;font-size:13px}.pets__detail-label{color:var(--color-text-muted);flex-shrink:0}.pets__detail-value{text-align:right;line-height:1.4}.pets__tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px}.pets__actions{display:flex;border-top:1px solid var(--color-border)}.pets__action-btn{flex:1;padding:12px;font-size:14px;font-weight:500;color:var(--color-text-muted);transition:background .15s;-webkit-tap-highlight-color:transparent}.pets__action-btn:active{background:#00000008}.pets__action-btn--primary{color:var(--color-primary);border-left:1px solid var(--color-border)}.pets__action-btn--danger{color:#d9534f;border-left:1px solid var(--color-border);flex:.6}.pets__add-btn{width:100%;margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}.modal{width:100%;max-width:430px;max-height:85dvh;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden;animation:slideUp .25s ease}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--color-border)}.modal__title{font-size:17px;font-weight:600}.modal__close{width:32px;height:32px;font-size:22px;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center}.modal__body{padding:16px;overflow-y:auto;max-height:calc(85dvh - 56px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:13px;color:var(--color-text-muted);margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;font-family:inherit;background:var(--color-bg);color:var(--color-text)}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;gap:10px;margin-top:20px}.btn-secondary{flex:1;padding:12px;border-radius:24px;font-size:15px;font-weight:600;background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.form-actions .btn-primary{flex:2}.tabs{display:flex;gap:4px;background:#0000000a;border-radius:var(--radius-sm);padding:3px;margin-bottom:16px}.tab{flex:1;padding:8px 4px;font-size:13px;font-weight:500;color:var(--color-text-muted);border-radius:10px;transition:all .2s;-webkit-tap-highlight-color:transparent}.tab--active{background:#fff;color:var(--color-primary);box-shadow:0 1px 4px var(--color-shadow)}.list-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--color-border)}.list-item:last-child{border-bottom:none}.list-item__icon{font-size:24px;width:40px;text-align:center;flex-shrink:0}.list-item__content{flex:1;min-width:0}.list-item__title{font-size:15px;font-weight:500}.list-item__desc{font-size:12px;color:var(--color-text-muted);margin-top:2px}.list-item__extra{font-size:13px;color:var(--color-text-muted);flex-shrink:0}.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.badge--warn{background:#fff3e0;color:#e8875b}.badge--ok{background:#e8f4ea;color:var(--color-secondary)}.badge--muted{background:#0000000d;color:var(--color-text-muted)}.sub-page{min-height:100%;background:var(--color-bg)}.sub-page__header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 8px;background:#fff8f0f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.sub-page__back{width:40px;height:40px;font-size:28px;color:var(--color-text);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.sub-page__title{font-size:17px;font-weight:600;flex:1;text-align:center}.sub-page__right{width:40px;display:flex;align-items:center;justify-content:center}.sub-page__body{padding:16px 16px 24px}.pet-detail__edit{font-size:14px;color:var(--color-primary);font-weight:500}.pet-detail__hero{text-align:center;padding:24px 16px;margin-bottom:16px}.pet-detail__avatar{font-size:64px;display:block;margin-bottom:8px}.pet-detail__name{font-size:22px;font-weight:700}.pet-detail__meta{font-size:13px;color:var(--color-text-muted);margin-top:4px}.pet-detail__section-header{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px}.pet-detail__section-header h3{font-size:15px;font-weight:600}.pet-detail__section-header button{font-size:13px;color:var(--color-primary);font-weight:500}.pet-detail__section{margin-bottom:8px}.pet-detail__empty{text-align:center;padding:20px;font-size:14px;color:var(--color-text-muted)}.pet-detail__growth-list{display:flex;flex-direction:column;gap:10px}.pet-detail__growth-item{display:flex;gap:12px;align-items:flex-start}.pet-detail__growth-type{font-size:28px;flex-shrink:0}.pet-detail__growth-title{font-size:15px;font-weight:600}.pet-detail__growth-content{font-size:14px;color:var(--color-text-muted);margin-top:4px;line-height:1.5}.pet-detail__growth-date{font-size:12px;color:var(--color-text-muted);margin-top:6px}.pet-form__avatars{display:flex;flex-wrap:wrap;gap:8px}.pet-form__avatar-option input{display:none}.pet-form__avatar-option span{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:24px;border-radius:50%;border:2px solid transparent;background:var(--color-bg);cursor:pointer}.pet-form__avatar-option input:checked+span{border-color:var(--color-primary);background:var(--color-primary-light)}.reminders__list{display:flex;flex-direction:column;gap:10px}.reminders__item{display:flex;align-items:center;gap:12px;padding:14px 16px}.reminders__icon{font-size:28px;flex-shrink:0}.reminders__content{flex:1;min-width:0}.reminders__title{font-size:15px;font-weight:500}.reminders__meta{font-size:12px;color:var(--color-text-muted);margin-top:2px}.reminders__actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.reminders__done{font-size:12px;color:var(--color-secondary);font-weight:600}.reminders__tip{margin-top:20px;font-size:12px;color:var(--color-text-muted);text-align:center;line-height:1.6}.memorial__header{text-align:center}.memorial__hero{text-align:center;padding:28px 20px;margin-bottom:24px;background:linear-gradient(160deg,#f3eef8,#fff 70%)}.memorial__hero-icon{font-size:40px;display:block;margin-bottom:12px}.memorial__hero-text{font-size:14px;color:var(--color-text-muted);line-height:1.7;font-style:italic}.memorial__list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.memorial__card{border-left:3px solid #c4b5d4;cursor:pointer;transition:transform .15s}.memorial__card:active{transform:scale(.98)}.memorial__card-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}.memorial__emoji{font-size:32px;line-height:1}.memorial__title{font-size:16px;font-weight:600}.memorial__pet-name{font-size:12px;color:var(--color-text-muted);margin-top:2px}.memorial__excerpt{font-size:14px;line-height:1.6;color:var(--color-text);margin-bottom:10px}.memorial__stats{display:flex;gap:16px;font-size:13px;color:var(--color-text-muted)}.memorial__add-btn{width:100%}.memorial-form__intro{font-size:14px;color:var(--color-text-muted);line-height:1.6;margin-bottom:16px}.memorial-detail__share{font-size:14px;color:var(--color-primary);font-weight:500}.memorial-detail__toast{position:fixed;top:60px;left:50%;transform:translate(-50%);background:#2d2a26d9;color:#fff;padding:8px 20px;border-radius:20px;font-size:13px;z-index:300}.memorial-detail__hero{text-align:center;padding:24px 16px;margin-bottom:20px;background:linear-gradient(160deg,#f3eef8,#fff 70%)}.memorial-detail__avatar{font-size:56px;display:block;margin-bottom:8px}.memorial-detail__dates{font-size:13px;color:var(--color-text-muted);margin:4px 0 12px}.memorial-detail__bio{font-size:14px;line-height:1.7;text-align:left;margin-bottom:16px}.memorial-detail__actions{display:flex;gap:10px;justify-content:center}.memorial-detail__actions button{padding:8px 16px;border-radius:20px;background:#fff;border:1px solid var(--color-border);font-size:13px;font-weight:500;-webkit-tap-highlight-color:transparent}.memorial-detail__actions button:active{background:var(--color-primary-light)}.memorial-detail__section-title{font-size:15px;font-weight:600;margin:16px 0 8px}.memorial-detail__photos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.memorial-detail__photo{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:32px;background:var(--color-bg);border-radius:var(--radius-sm)}.memorial-detail__timeline{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.memorial-detail__timeline-item{border-left:3px solid #c4b5d4}.memorial-detail__timeline-date{font-size:12px;color:var(--color-text-muted)}.memorial-detail__timeline-title{font-size:15px;font-weight:600;margin:4px 0}.memorial-detail__timeline-content{font-size:14px;color:var(--color-text-muted);line-height:1.5}.memorial-detail__message-form{margin-bottom:12px}.memorial-detail__message-form textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;margin-bottom:10px;resize:vertical}.memorial-detail__message-form .btn-primary{width:100%}.memorial-detail__messages{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.memorial-detail__message-author{font-size:13px;font-weight:600}.memorial-detail__message-content{font-size:14px;margin:4px 0;line-height:1.5}.memorial-detail__message-date{font-size:12px;color:var(--color-text-muted)}.memorial-detail__poster{width:100%;padding:12px;border-radius:var(--radius-md);font-size:14px;font-weight:500}.shop__orders-link{font-size:14px;color:var(--color-primary);font-weight:500}.shop__intro{font-size:14px;color:var(--color-text-muted);margin-bottom:16px;line-height:1.5}.shop__categories{display:flex;gap:8px;overflow-x:auto;margin-bottom:16px;padding-bottom:4px;-webkit-overflow-scrolling:touch}.shop__cat{flex-shrink:0;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:500;background:#fff;border:1px solid var(--color-border);color:var(--color-text-muted)}.shop__cat--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.shop__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.shop__product{cursor:pointer;transition:transform .15s;padding:12px}.shop__product:active{transform:scale(.97)}.shop__product-img{font-size:48px;display:block;text-align:center;margin-bottom:8px}.shop__product-name{font-size:14px;font-weight:600;line-height:1.3}.shop__product-cat{font-size:11px;color:var(--color-text-muted);margin:4px 0}.shop__product-price{font-size:16px;font-weight:700;color:var(--color-primary)}.product-detail__hero{text-align:center;padding:24px 16px;margin-bottom:16px}.product-detail__image{font-size:80px;display:block;margin-bottom:12px}.product-detail__tags{display:flex;gap:6px;justify-content:center;margin-bottom:8px}.product-detail__name{font-size:20px;font-weight:700}.product-detail__price{font-size:24px;font-weight:700;color:var(--color-primary);margin-top:8px}.product-detail__desc h3{font-size:15px;font-weight:600;margin-bottom:8px}.product-detail__desc p{font-size:14px;line-height:1.7;color:var(--color-text-muted)}.product-detail__category{margin-top:12px;font-size:13px!important}.product-detail__buy{width:100%;margin-top:16px}.product-detail__success{text-align:center;margin-top:16px;padding:24px}.product-detail__success p{font-size:16px;font-weight:600;margin-bottom:16px}.product-detail__success .btn-primary{width:100%}.orders__list{display:flex;flex-direction:column;gap:12px}.orders__item{padding:14px 16px}.orders__top{display:flex;align-items:center;gap:12px}.orders__img{font-size:36px;flex-shrink:0}.orders__info{flex:1;min-width:0}.orders__name{font-size:15px;font-weight:500}.orders__price{font-size:14px;color:var(--color-primary);font-weight:600;margin-top:2px}.orders__bottom{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted)}.mine__profile{display:flex;align-items:center;gap:14px;margin-bottom:16px;cursor:pointer}.mine__avatar{width:56px;height:56px;border-radius:50%;background:var(--color-primary-light);display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}.mine__profile-info{flex:1;min-width:0}.mine__name{font-size:20px;font-weight:700}.mine__desc{font-size:13px;color:var(--color-text-muted);margin-top:2px}.mine__edit-btn{font-size:13px;color:var(--color-text-muted);padding:6px 12px;border:1px solid var(--color-border);border-radius:16px}.mine__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.mine__stat{text-align:center;padding:14px 8px;cursor:pointer}.mine__stat:active{opacity:.85}.mine__stat-num{display:block;font-size:22px;font-weight:700;color:var(--color-primary)}.mine__stat-label{font-size:12px;color:var(--color-text-muted);margin-top:2px}.mine__menu-section{margin-bottom:16px}.mine__menu-title{font-size:13px;color:var(--color-text-muted);margin-bottom:8px;padding-left:4px}.mine__menu{padding:0;overflow:hidden}.mine__menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;text-align:left;-webkit-tap-highlight-color:transparent}.mine__menu-item:active{background:#00000005}.mine__menu-item--border{border-bottom:1px solid var(--color-border)}.mine__menu-icon{font-size:20px;width:28px;text-align:center}.mine__menu-label{flex:1;font-size:15px}.mine__menu-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.mine__menu-arrow{font-size:18px;color:var(--color-text-muted)}.mine__version{text-align:center;font-size:12px;color:var(--color-text-muted);padding:16px 0 8px}.login__hero{text-align:center;padding:32px 0 24px}.login__logo{font-size:56px;display:block;margin-bottom:12px}.login__hero h2{font-size:22px;font-weight:700}.login__hero p{font-size:14px;color:var(--color-text-muted);margin-top:4px}.login__methods{display:flex;flex-direction:column;gap:12px}.login__method{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#fff;border-radius:var(--radius-md);box-shadow:0 2px 12px var(--color-shadow);font-size:15px;font-weight:500;-webkit-tap-highlight-color:transparent}.login__method:active{opacity:.85}.login__method-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:700}.login__tip{margin-top:24px;font-size:12px;color:var(--color-text-muted);text-align:center;line-height:1.6}.messages__read-all{font-size:13px;color:var(--color-primary);font-weight:500}.messages__list{display:flex;flex-direction:column;gap:10px}.messages__item{cursor:pointer}.messages__item--unread{border-left:3px solid var(--color-primary)}.messages__top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.messages__icon{font-size:18px}.messages__title{flex:1;font-size:15px;font-weight:600}.messages__dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.messages__content{font-size:14px;color:var(--color-text-muted);line-height:1.5}.messages__date{font-size:12px;color:var(--color-text-muted);margin-top:6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #fff8f0;--color-surface: #ffffff;--color-primary: #e8875b;--color-primary-light: #fff0e8;--color-secondary: #7eb89a;--color-text: #2d2a26;--color-text-muted: #9a9590;--color-border: rgba(45, 42, 38, .08);--color-shadow: rgba(45, 42, 38, .06);--nav-height: 56px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--color-text);background:#f0ebe4;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100dvh}button{font-family:inherit;cursor:pointer;border:none;background:none}img{max-width:100%;display:block}.page{padding:16px 16px 8px}.page-header{margin-bottom:20px}.page-header__greeting{font-size:14px;color:var(--color-text-muted);margin-bottom:4px}.page-header__title{font-size:26px;font-weight:700;letter-spacing:-.02em}.page-header__subtitle{font-size:14px;color:var(--color-text-muted);margin-top:4px}.section-title{font-size:17px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.section-title__more{font-size:13px;font-weight:400;color:var(--color-primary)}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:16px;box-shadow:0 2px 12px var(--color-shadow)}.tag{display:inline-block;font-size:11px;padding:3px 8px;border-radius:20px;background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.tag--green{background:#e8f4ea;color:var(--color-secondary)}.empty-state{text-align:center;padding:40px 20px;color:var(--color-text-muted)}.empty-state__icon{font-size:48px;margin-bottom:12px;opacity:.6}.empty-state__text{font-size:14px;line-height:1.6}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 24px;background:var(--color-primary);color:#fff;border-radius:24px;font-size:15px;font-weight:600;transition:opacity .2s,transform .15s;-webkit-tap-highlight-color:transparent}.btn-primary:active{opacity:.85;transform:scale(.97)}
