*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;background:#f0f8ff;color:#333}
.header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:20px 0;text-align:center}
.header h1{font-size:28px;margin-bottom:6px}
.header p{font-size:14px;opacity:.85}
.container{max-width:1200px;margin:0 auto;padding:20px}
.banner{background:#fff;border-radius:12px;padding:20px;margin-bottom:24px;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.banner h2{color:#764ba2;font-size:20px;margin-bottom:8px}
.banner p{color:#666;font-size:14px;line-height:1.6}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.cat-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.08);transition:transform .2s}
.cat-card:hover{transform:translateY(-4px)}
.cat-card img{width:100%;height:200px;object-fit:cover}
.cat-info{padding:16px}
.cat-info h3{font-size:18px;color:#333;margin-bottom:8px}
.cat-info .tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.cat-info .tag{background:#f0f0ff;color:#667eea;padding:2px 10px;border-radius:20px;font-size:12px}
.cat-info .desc{color:#666;font-size:13px;line-height:1.5;margin-bottom:12px}
.cat-info .health{color:#52c41a;font-size:12px;margin-bottom:12px}
.btn-adopt{width:100%;padding:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:15px;cursor:pointer;transition:opacity .2s}
.btn-adopt:hover{opacity:.9}

/* 弹窗 */
.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);z-index:1000;justify-content:center;align-items:center}
.modal-overlay.active{display:flex}
.modal{background:#fff;border-radius:14px;width:92%;max-width:460px;max-height:88vh;overflow-y:auto;animation:modalIn .25s ease}
@keyframes modalIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid #f0f0f0;font-size:16px;color:#333}
.modal-close{font-size:22px;color:#999;cursor:pointer;line-height:1;padding:0 4px}
.modal-close:hover{color:#333}

/* 迷你表单 */
.mini-form{padding:16px 20px}
.mini-row{display:flex;gap:12px;margin-bottom:12px}
.mini-row.single{flex-direction:column}
.mini-col{flex:1;display:flex;flex-direction:column}
.mini-form label{font-size:12px;color:#888;margin-bottom:3px;font-weight:500}
.mini-form input[type="text"],.mini-form input[type="number"],.mini-form textarea{width:100%;padding:8px 10px;border:1px solid #e0e0e0;border-radius:6px;font-size:13px;outline:none;transition:border .2s;background:#fafafa}
.mini-form input:focus,.mini-form textarea:focus{border-color:#667eea;background:#fff}
.mini-form textarea{height:50px;resize:none}
.radio-inline{display:flex;gap:14px;padding:7px 0}
.radio-inline label{display:flex;align-items:center;gap:3px;cursor:pointer;font-size:13px;color:#555}
.radio-inline input[type="radio"]{margin:0;accent-color:#667eea}
.modal-btns{display:flex;gap:10px;padding:4px 0 6px}
.modal-btns button{flex:1;padding:9px;border-radius:8px;font-size:14px;cursor:pointer;border:none;font-weight:500}
.btn-cancel{background:#f5f5f5;color:#666}
.btn-cancel:hover{background:#eee}
.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}
.btn-submit:hover{opacity:.9}

.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:#52c41a;color:#fff;padding:12px 24px;border-radius:8px;z-index:2000;display:none;font-size:14px;box-shadow:0 4px 16px rgba(82,196,26,.3)}
.toast.show{display:block;animation:fadeInOut 3s forwards}
@keyframes fadeInOut{0%{opacity:0;top:10px}10%{opacity:1;top:20px}80%{opacity:1}100%{opacity:0}}
.footer{text-align:center;padding:30px 20px;color:#999;font-size:12px}

/* 手机端适配 */
@media(max-width:768px){
  .header h1{font-size:22px}
  .container{padding:12px}
  .cat-grid{grid-template-columns:1fr}
  .cat-card img{height:180px}
  .modal{width:95%;max-height:92vh}
  .mini-form{padding:12px 16px}
  .mini-row{flex-direction:column;gap:0;margin-bottom:0}
  .mini-col{margin-bottom:10px}
}
