/* ===== 豆豆宠物分享平台 - 全局样式 ===== */
:root {
  --primary: #ff7043;
  --primary-dark: #e64a19;
  --accent: #26a69a;
  --accent-dark: #00897b;
  --bg: #fff8f0;
  --bg2: #f5f5f5;
  --text: #333;
  --text-light: #888;
  --border: #e0e0e0;
  --card-bg: #fff;
  --shadow: 0 2px 12px rgba(0,0,0,.08);
  --shadow-lg: 0 8px 30px rgba(0,0,0,.12);
  --radius: 16px;
  --radius-sm: 10px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'PingFang SC','Helvetica Neue',Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;font-size:15px;}
a{color:var(--primary);text-decoration:none;}
a:hover{text-decoration:underline;}

/* ── 通用布局 ── */
.container{max-width:1100px;margin:0 auto;padding:0 20px;}
.section{padding:60px 0;}
.section-title{font-size:1.6rem;text-align:center;margin-bottom:36px;color:var(--primary);position:relative;}
.section-title::after{content:'';display:block;width:48px;height:3px;background:var(--primary);margin:12px auto 0;border-radius:2px;}
.cards{display:grid;gap:20px;}
.cards.two-col{grid-template-columns:repeat(2,1fr);}
.cards.three-col{grid-template-columns:repeat(3,1fr);}
.cards.four-col{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}

/* ── 卡片 ── */
.card{background:var(--card-bg);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.card-icon{font-size:2.8rem;margin-bottom:14px;}
.card h3{font-size:1.15rem;margin-bottom:10px;}
.card p{color:var(--text-light);font-size:.9rem;line-height:1.8;margin-bottom:16px;}
.card-feature{text-align:center;border:1px solid transparent;}
.card-feature h3{font-size:1.15rem;color:#444;}
.card-feature p{font-size:.88rem;min-height:72px;}

/* ── 按钮 ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 24px;border-radius:50px;border:none;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;text-decoration:none;white-space:nowrap;}
.btn-sm{padding:7px 16px;font-size:.8rem;border-radius:50px;}
.btn-accent{background:var(--primary);color:#fff;}
.btn-accent:hover{background:var(--primary-dark);text-decoration:none;color:#fff;}
.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary);}
.btn-outline:hover{background:var(--primary);color:#fff;text-decoration:none;}
.btn-primary{background:var(--primary);color:#fff;padding:13px 24px;border-radius:10px;border:none;cursor:pointer;font-size:.95rem;}
.btn-outline-sm{border:2px solid var(--primary);color:var(--primary);padding:7px 16px;border-radius:50px;background:transparent;cursor:pointer;font-size:.8rem;}

/* ── 头部导航 ── */
.site-header{background:linear-gradient(135deg,#fff 0%,#fff5f2 100%);border-bottom:3px solid var(--primary);box-shadow:0 2px 12px rgba(255,112,67,.15);position:sticky;top:0;z-index:100;}
.header-inner{max-width:1200px;margin:0 auto;padding:0 16px;display:flex;align-items:center;gap:16px;}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0;padding:10px 18px;background:linear-gradient(135deg,#fff5f2 0%,#ffe0d6 100%);border-radius:50px;box-shadow:0 2px 8px rgba(255,112,67,.2);transition:transform .2s,box-shadow .2s;border:2px solid var(--primary);}
.logo:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(255,112,67,.3);text-decoration:none;}
.logo-icon{font-size:1.6rem;filter:drop-shadow(0 2px 4px rgba(255,112,67,.3));}
.logo-text{font-size:1rem;font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.logo-text small{display:none;}
.site-nav{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;flex:1;}
.site-nav::-webkit-scrollbar{display:none;}
.nav-link{padding:16px 8px;color:#444;font-size:.82rem;font-weight:600;transition:all .2s;border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0;}
.nav-link:hover{color:var(--primary);text-decoration:none;border-bottom-color:var(--primary);background:rgba(255,112,67,.05);}
.nav-link.active{color:var(--primary);border-bottom-color:var(--primary);}
.nav-toggle{display:none;background:none;border:none;font-size:1.4rem;cursor:pointer;margin-left:auto;padding:14px;}
@media(max-width:768px){
  .nav-toggle{display:block;}
  .site-nav{display:none;flex-direction:column;width:100%;position:absolute;top:100%;left:0;background:linear-gradient(180deg,#fff 0%,#fff5f2 100%);box-shadow:0 6px 20px rgba(255,112,67,.2);padding:16px 20px;gap:0;border-top:2px solid var(--primary);}
  .site-nav.open{display:flex;}
  .nav-link{padding:14px 0;border-bottom:1px solid #ffe0d6;font-size:.9rem;}
}

/* ── Hero ── */
.hero{background:linear-gradient(135deg,#ff7043 0%,#ff8a65 50%,#ffab91 100%);color:#fff;padding:40px 20px 40px;text-align:center;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='.08'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");}
.hero-inner{position:relative;max-width:700px;margin:0 auto;}
.hero-title{font-size:2rem;font-weight:800;margin-bottom:10px;line-height:1.3;}
.hero-title .highlight{background:rgba(255,255,255,.2);padding:0 8px;border-radius:8px;}
.hero-sub{font-size:.9rem;opacity:.95;margin-bottom:14px;line-height:1.6;}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:10px;}
.hero-inner{display:flex;align-items:center;gap:40px;max-width:1100px;margin:0 auto;position:relative;}
.hero-content{flex:1;text-align:left;}
.hero-image{flex:0 0 340px;max-width:340px;position:relative;}
.hero-image img{width:100%;height:100%;object-fit:cover;border-radius:18px;box-shadow:0 12px 32px rgba(0,0,0,.3);border:4px solid rgba(255,255,255,.95);}
.hero-image-badge{position:absolute;bottom:10px;left:10px;background:rgba(255,255,255,.95);color:var(--primary);padding:5px 10px;border-radius:50px;font-size:.7rem;font-weight:700;box-shadow:0 3px 8px rgba(0,0,0,.15);}
@media(max-width:768px){
  .hero-inner{flex-direction:column;gap:24px;}
  .hero-content{text-align:center;}
  .hero-image{max-width:150px;}
}
.btn-hero{background:#fff;color:var(--primary);padding:13px 28px;border-radius:50px;font-weight:700;font-size:.95rem;border:none;cursor:pointer;text-decoration:none;transition:transform .15s;}
.btn-hero:hover{transform:scale(1.04);text-decoration:none;color:var(--primary-dark);}
.btn-hero.outline{background:rgba(255,255,255,.15);color:#fff;border:2px solid #fff;}
.btn-hero.outline:hover{background:rgba(255,255,255,.25);color:#fff;}

/* ── 宠物档案页 ── */
.profile-tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;}
.tab-btn{padding:9px 18px;border-radius:50px;border:2px solid var(--border);background:#fff;color:#555;font-size:.85rem;cursor:pointer;transition:all .2s;font-weight:500;}
.tab-btn.active,.tab-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary);}
.pet-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:28px;}
.pet-card{background:#fff;border-radius:var(--radius);padding:20px;text-align:center;box-shadow:var(--shadow);cursor:pointer;transition:all .2s;border:2px solid transparent;position:relative;}
.pet-card:hover{border-color:var(--primary);transform:translateY(-2px);}
.pet-card.selected{border-color:var(--primary);background:#fff5f2;}
.pet-card-avatar{font-size:3rem;margin-bottom:10px;}
.pet-card-name{font-weight:700;font-size:1rem;margin-bottom:4px;}
.pet-card-breed{font-size:.8rem;color:var(--text-light);}
.pet-card-actions{position:absolute;top:10px;right:10px;}
.profile-form{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);}
.form-section{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid #f0f0f0;}
.form-section:last-of-type{border-bottom:none;margin-bottom:0;}
.form-section h3{font-size:1rem;margin-bottom:16px;color:var(--primary);}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;}
.form-group{display:flex;flex-direction:column;gap:5px;}
.form-group label{font-size:.8rem;font-weight:600;color:#666;}
.form-group input,.form-group select,.form-group textarea{padding:9px 12px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;transition:border-color .2s;outline:none;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);}
.form-group textarea{min-height:80px;resize:vertical;}
.share-empty{background:#fff;border-radius:var(--radius);padding:48px;text-align:center;color:var(--text-light);}
.share-empty p{font-size:1.05rem;margin-bottom:8px;}
.share-empty span{font-size:.85rem;}
.record-list{margin-bottom:10px;}
.record-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f8f8;border-radius:8px;margin-bottom:6px;font-size:.85rem;}
.rec-text{flex:1;}
.rec-date{color:var(--text-light);font-size:.8rem;}
.rec-del{background:none;border:none;color:#e74c3c;cursor:pointer;font-size:.85rem;padding:0 4px;}
.share-form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.btn-add{background:var(--accent);color:#fff;border:none;padding:8px 14px;border-radius:50px;font-size:.8rem;cursor:pointer;}

/* ── 分享社区 ── */
.badge{display:inline-block;padding:2px 10px;background:#f0f0f0;border-radius:50px;font-size:.75rem;color:#555;margin:2px;}
.share-form{background:#fff;border-radius:var(--radius);padding:24px;margin-bottom:28px;box-shadow:var(--shadow);}
.share-form h3{font-size:1rem;margin-bottom:16px;color:var(--primary);}
.share-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.share-form-full{grid-column:1/-1;}
.share-form input,.share-form select,.share-form textarea{padding:10px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;width:100%;outline:none;transition:border-color .2s;}
.share-form input:focus,.share-form textarea:focus{border-color:var(--primary);}
.share-form textarea{min-height:100px;resize:vertical;}
.share-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;}
.share-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s;}
.share-card:hover{transform:translateY(-2px);}
.share-card-img{background:linear-gradient(135deg,#ff7043,#ffab91);height:120px;display:flex;align-items:center;justify-content:center;font-size:3.5rem;}
.share-card-body{padding:18px;}
.share-card-body h3{font-size:1rem;margin-bottom:8px;}
.share-card-meta{display:flex;gap:10px;font-size:.78rem;color:var(--text-light);margin-bottom:10px;flex-wrap:wrap;}
.share-card-body p{font-size:.88rem;color:#555;line-height:1.7;margin-top:8px;}
.share-card-footer{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid #f0f0f0;}
.like-btn{background:#f5f5f5;border:none;padding:6px 14px;border-radius:50px;cursor:pointer;font-size:.82rem;color:#888;transition:all .2s;}
.like-btn:hover{background:#fce4ec;color:var(--primary);}
.like-btn.liked{background:#fce4ec;color:var(--primary);font-weight:600;}
.btn-del{background:none;border:1px solid #e0e0e0;padding:5px 12px;border-radius:50px;cursor:pointer;font-size:.8rem;color:#999;transition:all .2s;}
.btn-del:hover{border-color:#e74c3c;color:#e74c3c;}

/* ── 寻宠 ── */
.lost-form{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);margin-bottom:28px;}
.lost-form h3{font-size:1rem;margin-bottom:20px;color:var(--primary);}
.lost-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.lost-form-full{grid-column:1/-1;}
.lost-form input,.lost-form select,.lost-form textarea,.lost-form file{padding:10px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;width:100%;outline:none;}
.lost-form input:focus,.lost-form textarea:focus{border-color:var(--primary);}
.lost-form textarea{min-height:100px;resize:vertical;}
.lost-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;}
.lost-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;gap:0;}
.lost-card-icon{background:linear-gradient(135deg,#e74c3c,#ff6b6b);width:90px;min-width:90px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;flex-shrink:0;}
.lost-card-body{padding:16px;flex:1;}
.lost-card-body h4{font-size:1rem;margin-bottom:6px;}
.lost-card-body p{font-size:.82rem;color:#666;line-height:1.6;}
.lost-contact{color:var(--primary) !important;font-weight:600;}
.lost-note{font-style:italic;}
.section-lost{background:#fff5f5;}
.section-lost .section-title{color:#e74c3c;}
.section-lost .section-title::after{background:#e74c3c;}

/* ── 宠物友好地图 ── */
.map-page{padding:20px;}
.map-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.filter-btn{padding:7px 14px;border-radius:50px;border:2px solid var(--border);background:#fff;font-size:.82rem;cursor:pointer;transition:all .2s;color:#555;}
.filter-btn.active,.filter-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
#map{height:480px;border-radius:var(--radius);box-shadow:var(--shadow);background:#e8f5e9;}
.map-list{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
.map-item{background:#fff;border-radius:var(--radius-sm);padding:16px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:flex-start;}
.map-item-icon{font-size:1.8rem;flex-shrink:0;}
.map-item h4{font-size:.9rem;margin-bottom:4px;}
.map-item p{font-size:.78rem;color:var(--text-light);}
.map-item .tag{display:inline-block;padding:2px 8px;background:#e8f5e9;color:#2e7d32;border-radius:50px;font-size:.72rem;margin-top:4px;}

/* ── 健康AI初筛 ── */
.health-page{max-width:700px;margin:0 auto;padding:20px;}
.health-hero{background:linear-gradient(135deg,#26a69a,#4db6ac);color:#fff;border-radius:var(--radius);padding:36px;text-align:center;margin-bottom:28px;}
.health-hero h1{font-size:1.6rem;margin-bottom:12px;}
.health-hero p{opacity:.85;font-size:.9rem;line-height:1.7;}
.health-hero .disclaimer{background:rgba(255,255,255,.2);border-radius:8px;padding:12px;margin-top:16px;font-size:.82rem;line-height:1.7;}
.symptom-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:28px;}
.symptom-btn{padding:14px 12px;border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;text-align:center;cursor:pointer;transition:all .2s;font-size:.88rem;}
.symptom-btn:hover{border-color:var(--accent);color:var(--accent);}
.symptom-btn.selected{background:var(--accent);color:#fff;border-color:var(--accent);}
.symptom-btn .emoji{font-size:1.8rem;display:block;margin-bottom:6px;}
.symptom-btn .label{font-weight:600;display:block;}
.symptom-btn .sub{font-size:.75rem;opacity:.8;margin-top:2px;display:block;}
.health-result{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-lg);margin-bottom:28px;border-top:4px solid var(--primary);}
.result-risk-high{border-top-color:#e74c3c;}
.result-risk-mid{border-top-color:#f39c12;}
.result-risk-low{border-top-color:#27ae60;}
.result-level{font-size:1.4rem;font-weight:800;margin-bottom:10px;text-align:center;}
.result-risk-high .result-level{color:#e74c3c;}
.result-risk-mid .result-level{color:#f39c12;}
.result-risk-low .result-level{color:#27ae60;}
.result-action{margin-top:16px;padding:16px;background:#fff8f0;border-radius:var(--radius-sm);font-size:.88rem;line-height:1.8;}
.result-action strong{color:var(--primary);}

/* ── 健康初筛：持续时间选择 + 历史记录 ── */
.duration-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px;}
.duration-row .dur-label{font-size:.86rem;color:#666;font-weight:600;}
.duration-chip{padding:6px 14px;border:2px solid var(--border);border-radius:20px;background:#fff;cursor:pointer;font-size:.82rem;color:#555;transition:all .2s;}
.duration-chip:hover{border-color:var(--accent);color:var(--accent);}
.duration-chip.selected{background:var(--accent);color:#fff;border-color:var(--accent);}
.risk-meter{height:10px;border-radius:6px;background:#eee;overflow:hidden;margin:12px 0;}
.risk-meter .fill{height:100%;border-radius:6px;transition:width .4s;}
.risk-fill-high{width:100%;background:linear-gradient(90deg,#ff7043,#e74c3c);}
.risk-fill-mid{width:60%;background:linear-gradient(90deg,#ffb74d,#f39c12);}
.risk-fill-low{width:28%;background:linear-gradient(90deg,#81c784,#27ae60);}
.history-list{margin-top:8px;}
.history-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid #eee;border-radius:var(--radius-sm);margin-bottom:8px;background:#fff;cursor:pointer;transition:all .2s;}
.history-item:hover{border-color:var(--accent);background:#fff8f0;}
.history-item .h-left{flex:1;min-width:0;}
.history-item .h-title{font-weight:600;font-size:.88rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.history-item .h-meta{font-size:.75rem;color:#999;margin-top:2px;}
.history-item .h-badge{flex-shrink:0;font-size:.72rem;padding:3px 8px;border-radius:10px;font-weight:600;}
.h-badge-high{background:#fdecea;color:#e74c3c;}
.h-badge-mid{background:#fef3e2;color:#f39c12;}
.h-badge-low{background:#e8f5e9;color:#27ae60;}
.history-empty{padding:20px;text-align:center;color:#bbb;font-size:.84rem;}

/* ── 健康初筛：AI 智能分诊 ── */
.ai-triage-card{background:linear-gradient(135deg,#fff8f0,#fff);border:2px dashed #ffb74d;border-radius:var(--radius);padding:20px;margin-bottom:20px;}
.ai-triage-card h4{margin:0 0 4px 0;color:#e67e22;font-size:.98rem;}
.ai-triage-card .ai-triage-sub{margin:0 0 12px 0;font-size:.8rem;color:#999;}
.ai-triage-card textarea{width:100%;padding:12px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;resize:vertical;min-height:90px;outline:none;box-sizing:border-box;font-family:inherit;}
.ai-triage-card textarea:focus{border-color:#ffb74d;}
.ai-triage-actions{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap;}
.ai-triage-btn{background:linear-gradient(135deg,#ff7043,#ff5722);color:#fff;border:none;padding:10px 20px;border-radius:25px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s;}
.ai-triage-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,87,34,.4);}
.ai-triage-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none;}
.ai-triage-result{margin-top:16px;padding:16px;background:#fff;border-radius:var(--radius-sm);border:1px solid #ffe0d6;font-size:.88rem;line-height:1.9;white-space:pre-wrap;word-break:break-word;}
.ai-triage-loading{color:#ff7043;font-size:.85rem;display:inline-flex;align-items:center;gap:6px;}
.ai-triage-loading::after{content:'';width:12px;height:12px;border:2px solid #ffb74d;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── 电子宠物动画 ── */
.pet-egg-wrapper{display:flex;flex-direction:column;align-items:center;gap:20px;margin-bottom:24px;}
.pet-egg-container{width:160px;height:160px;position:relative;cursor:pointer;}
.pet-egg-shell{width:160px;height:160px;background:radial-gradient(ellipse at 40% 35%,#fff8e1 0%,#ffecb3 40%,#ffd54f 100%);border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;box-shadow:0 8px 30px rgba(255,193,7,.3),inset -10px -10px 30px rgba(255,152,0,.15);position:relative;overflow:hidden;transition:transform .3s;}
.pet-egg-shell.shake{animation:egg-shake 0.4s ease-in-out;}
@keyframes egg-shake{0%,100%{transform:rotate(0deg)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}
.pet-egg-shell.wiggle{animation:egg-wiggle 0.6s ease-in-out;}
@keyframes egg-wiggle{0%,100%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-8px) rotate(-4deg)}75%{transform:translateY(-8px) rotate(4deg)}}
.egg-face{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);font-size:2.8rem;transition:all .3s;}
.egg-status{position:absolute;bottom:-28px;left:0;right:0;text-align:center;font-size:.8rem;color:var(--text-light);}
.pet-egg-happiness,.pet-egg-hunger{position:absolute;background:#fff;border-radius:20px;padding:4px 8px;font-size:.7rem;box-shadow:var(--shadow);white-space:nowrap;}
.pet-egg-happiness{top:-10px;right:-20px;}
.pet-egg-hunger{bottom:-10px;left:-10px;}
.egg-progress{width:100%;max-width:320px;margin:0 auto;}
.egg-progress-bar{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.progress-row{display:flex;align-items:center;gap:10px;font-size:.82rem;}
.progress-label{min-width:48px;color:#666;}
.progress-bar-bg{flex:1;height:8px;background:#eee;border-radius:4px;overflow:hidden;}
.progress-bar-fill{height:100%;border-radius:4px;transition:width .5s;}
.bar-happy{background:linear-gradient(90deg,#ff7043,#ffab91);}
.bar-hunger{background:linear-gradient(90deg,#26a69a,#80cbc4);}
.egg-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;}

/* ── 底部 ── */
.site-footer{background:#333;color:#ccc;padding:48px 0 24px;margin-top:60px;}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;margin-bottom:28px;}
.footer-grid h4{color:#fff;margin-bottom:10px;font-size:.95rem;}
.footer-grid a{color:#aaa;font-size:.85rem;line-height:2;}
.footer-grid a:hover{color:#fff;}
.footer-copy{text-align:center;font-size:.8rem;color:#777;padding-top:20px;border-top:1px solid #444;}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr;}}
.back-top{position:fixed;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;font-size:1.2rem;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;z-index:99;}
.text-muted{color:var(--text-light);text-align:center;padding:32px 0;font-size:.9rem;}

/* ── 宠物友好地图 ── */
.map-canvas{background:linear-gradient(135deg,#e8f5e9 0%,#f1f8e9 100%);border-radius:16px;padding:24px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.map-canvas::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(76,175,80,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(76,175,80,.08) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;}
.map-canvas-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:16px;position:relative;z-index:1;}
.map-canvas-head h3{font-size:1.05rem;color:#2e7d32;}
.map-hint{font-size:.72rem;color:#81c784;}
.map-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;position:relative;z-index:1;}
.map-card{background:#fff;border:2px solid #eee;border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px rgba(0,0,0,.05);transition:transform .2s;}
.map-card:hover{transform:translateY(-3px);}
.map-card-emoji{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;}
.map-card-name{font-weight:600;font-size:.92rem;}
.map-card-meta{font-size:.78rem;color:var(--text-light);margin:2px 0 6px;}
.map-controls{display:flex;gap:8px;flex-wrap:wrap;}
.map-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.map-item{background:#fff;border-radius:12px;padding:16px;display:flex;gap:14px;align-items:flex-start;box-shadow:var(--shadow);}
.map-item-icon{width:44px;height:44px;border-radius:12px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0;}
.map-item h4{font-size:.98rem;margin-bottom:4px;}
.map-item p{font-size:.82rem;color:var(--text-light);}

/* ── 移动端响应式 ── */
@media(max-width:768px){
  /* 全局 */
  body{font-size:14px;line-height:1.6;}
  .container{padding:0 14px;}
  .section{padding:40px 0;}
  .section-title{font-size:1.3rem;margin-bottom:24px;}

  /* 导航 */
  .header-inner{padding:0 12px;gap:10px;}
  .logo{padding:8px 14px;}
  .logo-icon{font-size:1.3rem;}
  .logo-text{font-size:.88rem;}

  /* Hero */
  .hero{padding:40px 16px 30px;}
  .hero-title{font-size:1.5rem;}
  .hero-sub{font-size:.9rem;margin-bottom:20px;}
  .hero-inner{flex-direction:column;gap:20px;padding:0;max-width:100%;}
  .hero-content{text-align:center;width:100%;}
  .hero-image{max-width:150px;width:150px;}
  .hero-actions{gap:10px;}
  .hero-actions .btn{padding:10px 20px;font-size:.85rem;}
  .hero-image-badge{font-size:.68rem;padding:4px 8px;bottom:8px;left:8px;}

  /* 卡片 */
  .card{padding:20px;}
  .card-icon{font-size:2.2rem;}
  .card h3{font-size:1rem;}
  .card p{font-size:.85rem;}
  .cards.two-col,.cards.three-col{grid-template-columns:1fr;}

  /* 表单 */
  .form-grid{grid-template-columns:1fr;}
  .profile-form{padding:20px;}
  .form-section h3{font-size:.95rem;}

  /* 分享 */
  .share-form{padding:20px;}
  .share-form-grid{grid-template-columns:1fr;}
  .share-grid{grid-template-columns:1fr;}

  /* 寻宠 */
  .lost-form{padding:20px;}
  .lost-form-grid{grid-template-columns:1fr;}
  .lost-grid{grid-template-columns:1fr;}
  .lost-card{flex-direction:column;}
  .lost-card-icon{width:100%;height:80px;}

  /* 页脚 */
  .footer-grid{grid-template-columns:1fr;gap:20px;}
  .site-footer{padding:36px 0 20px;}

  /* 按钮 */
  .btn{padding:10px 20px;font-size:.88rem;}
  .btn-sm{padding:6px 14px;font-size:.78rem;}
}

@media(max-width:480px){
  /* 更小屏幕 */
  .section-title{font-size:1.15rem;}
  .hero-title{font-size:1.3rem;}
  .hero-sub{font-size:.85rem;}
  .hero-image{max-width:135px;width:135px;}
  .logo{padding:7px 12px;gap:5px;}
  .logo-icon{font-size:1.2rem;}
  .logo-text{font-size:.8rem;}
  .cards.four-col{grid-template-columns:1fr;}
  .card{padding:16px;}
  .section{padding:32px 0;}
}}

/* ===== 全宽Hero Banner ===== */
.hero-banner{
  position:relative;
  height:480px;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero-banner-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-banner-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,rgba(20,8,4,.72) 0%,rgba(20,8,4,.35) 55%,rgba(20,8,4,.15) 100%);
}
.hero-banner-inner{
  position:relative;
  z-index:2;
  padding:40px 0;
  max-width:560px;
}
.hero-banner-title{
  font-size:2.4rem;
  font-weight:900;
  color:#fff;
  line-height:1.25;
  margin-bottom:14px;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.hero-banner-title .highlight{color:#ffab91;}
.hero-banner-sub{
  font-size:1rem;
  color:rgba(255,255,255,.92);
  margin-bottom:26px;
  line-height:1.7;
  text-shadow:0 1px 6px rgba(0,0,0,.3);
}
.hero-banner-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.hero-btn-outline{
  display:inline-block;
  padding:11px 26px;
  border:2px solid rgba(255,255,255,.85);
  color:#fff;
  background:rgba(255,255,255,.1);
  border-radius:12px;
  font-weight:600;
  font-size:.9rem;
  text-decoration:none;
  backdrop-filter:blur(4px);
  transition:all .2s;
}
.hero-btn-outline:hover{
  background:rgba(255,255,255,.22);
  border-color:#fff;
  transform:translateY(-1px);
}
@media(max-width:768px){
  .hero-banner{height:340px;}
  .hero-banner-title{font-size:1.6rem;}
  .hero-banner-sub{font-size:.88rem;}
  .hero-banner-actions{gap:10px;}
}
@media(max-width:480px){
  .hero-banner{height:280px;}
  .hero-banner-title{font-size:1.3rem;}
  .hero-banner-inner{padding:30px 0;}
}

/* ── 全站移动端抽屉菜单（所有页面共享） ── */
.mobile-nav{display:none;}
@media(max-width:900px){
  .mobile-nav{display:block;}
  .mobile-nav-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .3s;z-index:998;}
  .mobile-nav-panel{position:fixed;top:0;right:0;bottom:0;width:82%;max-width:320px;background:#fff;z-index:999;transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.15);}
  .mobile-nav.open .mobile-nav-mask{opacity:1;visibility:visible;}
  .mobile-nav.open .mobile-nav-panel{transform:translateX(0);}
  .mobile-nav-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #f0ebe5;font-weight:700;color:#4a3728;font-size:16px;}
  .mobile-nav-close{background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:4px;}
  .mobile-nav-list{flex:1;overflow-y:auto;padding:8px 0 24px;}
  .mnav-group{padding:14px 18px 6px;font-size:12px;color:#bbb;font-weight:600;letter-spacing:.5px;}
  .mnav-item{display:flex;align-items:center;gap:8px;padding:13px 18px;color:#4a3728;text-decoration:none;font-size:15px;border-left:3px solid transparent;}
  .mnav-item:active{background:#fff5eb;}
  .mnav-home{border-left:3px solid #ff8c42;font-weight:700;}
  .mnav-home:active,.mnav-item:active{background:#fff5eb;}
}
