/* SmartPaw v3 */
:root{--sp-bg:#1a1a2e;--sp-card:#1f1f38;--sp-surface:#25253e;--sp-input:#2a2a45;--sp-text:#f0f0f5;--sp-muted:#a0a0b8;--sp-accent:#6d4eec;--sp-accent2:#5b3ed4;--sp-blue:#3b82f6;--sp-purple:#8b5cf6;--sp-green:#10b981;--sp-orange:#f59e0b;--sp-red:#ef4444;--sp-border:rgba(255,255,255,0.08);--sp-r:10px;--sp-rl:16px;--sp-grad:linear-gradient(135deg,#6d4eec,#5b3ed4)}

/* ═══ BUTTONS — unified teal style ═══ */
.sp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 28px;font-size:.9rem;font-weight:600;border:none;border-radius:35px;cursor:pointer;transition:all .25s;background:var(--sp-grad);color:#fff!important;text-decoration:none!important;line-height:1.2}
.sp-btn:hover{background:linear-gradient(135deg,#5b3ed4,#4a2fc2);transform:translateY(-1px);box-shadow:0 6px 20px rgba(109,78,236,0.3);color:#fff!important}
.sp-btn-sm{padding:10px 22px;font-size:.82rem}
.sp-btn-full{display:block;width:100%;text-align:center}
.sp-btn-outline{background:transparent!important;border:2px solid var(--sp-accent);color:var(--sp-accent)!important}
.sp-btn-outline:hover{background:var(--sp-accent)!important;color:#fff!important}

/* ═══ PET CARDS ═══ */
.sp-pets-section{max-width:1200px;margin:0 auto}
.sp-filters{display:flex;gap:8px;justify-content:center;margin-bottom:28px;flex-wrap:wrap}
.sp-fbtn{padding:10px 22px;border-radius:24px;border:1px solid var(--sp-border);background:transparent;color:var(--sp-muted);font-size:.88rem;font-weight:500;cursor:pointer;transition:.2s;display:flex;align-items:center;gap:6px}
.sp-fbtn:hover,.sp-fbtn--on{background:var(--sp-accent);border-color:var(--sp-accent);color:#fff}
.sp-pgrid{display:grid;gap:24px}
.sp-c2{grid-template-columns:repeat(2,1fr)}.sp-c3{grid-template-columns:repeat(3,1fr)}.sp-c4{grid-template-columns:repeat(4,1fr)}

.sp-pcard{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);overflow:hidden;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.sp-pcard:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.3)}
.sp-pcard__img{position:relative;height:260px;overflow:hidden}
.sp-pcard__img img{width:100%;height:100%;object-fit:cover}
.sp-pcard__ph{width:100%;height:100%;background:var(--sp-surface);display:flex;align-items:center;justify-content:center;font-size:4rem}
.sp-pcard__sicon{position:absolute;top:12px;left:12px;width:36px;height:36px;border-radius:50%;background:rgba(31,31,56,0.85);display:flex;align-items:center;justify-content:center;font-size:1rem;backdrop-filter:blur(4px)}
.sp-pcard__badge{position:absolute;top:12px;right:12px;padding:5px 14px;border-radius:8px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.sp-bg-green{background:rgba(109,78,236,0.85);color:#fff}
.sp-bg-orange{background:rgba(245,158,11,0.85);color:#fff}
.sp-bg-red{background:rgba(239,68,68,0.85);color:#fff}
.sp-bg-def{background:rgba(139,92,246,0.85);color:#fff}
.sp-pcard__sup{position:absolute;bottom:12px;left:12px;background:rgba(0,0,0,0.65);backdrop-filter:blur(4px);padding:5px 14px;border-radius:20px;font-size:.75rem;color:#fff}
.sp-pcard__body{padding:20px;flex:1;display:flex;flex-direction:column}
.sp-pcard__body h3{font-size:1.2rem;font-weight:700;margin:0 0 6px;color:var(--sp-text)}
.sp-pcard__body h3 a{color:inherit;text-decoration:none}.sp-pcard__body h3 a:hover{color:var(--sp-accent)}
.sp-pcard__meta{display:flex;gap:12px;color:var(--sp-muted);font-size:.8rem;margin-bottom:10px;flex-wrap:wrap}
.sp-pcard__excerpt{color:var(--sp-muted);font-size:.85rem;line-height:1.55;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.sp-pcard__foot{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--sp-border);margin-top:auto}
.sp-cost-lbl{display:block;font-size:.7rem;color:var(--sp-muted)}.sp-cost-val{font-size:1.1rem;font-weight:700;color:var(--sp-accent)}

/* ═══ BADGES ═══ */
.sp-badge{display:inline-block;padding:5px 14px;border-radius:8px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.sp-badge-green{background:rgba(16,185,129,0.2);color:var(--sp-accent)}.sp-badge-orange{background:rgba(245,158,11,0.2);color:var(--sp-orange)}.sp-badge-red{background:rgba(239,68,68,0.2);color:var(--sp-red)}.sp-badge-default{background:rgba(139,92,246,0.2);color:var(--sp-purple)}

/* ═══ MAP ═══ */
.sp-map-wrap{max-width:1200px;margin:0 auto}
.sp-dfilters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.sp-dbtn{padding:8px 18px;border-radius:20px;border:1px solid var(--sp-border);background:transparent;color:var(--sp-muted);font-size:.82rem;cursor:pointer;transition:.2s}
.sp-dbtn:hover,.sp-dbtn--on{background:var(--sp-accent);border-color:var(--sp-accent);color:#fff}
.sp-map-layout{display:grid;grid-template-columns:1fr 380px;border-radius:var(--sp-rl);overflow:hidden;border:1px solid var(--sp-border)}
.sp-map-area{position:relative}
#sp-map{width:100%;background:var(--sp-surface)}
.sp-map-legend{position:absolute;bottom:12px;left:12px;background:rgba(31,31,56,0.92);backdrop-filter:blur(8px);padding:10px 14px;border-radius:var(--sp-r);font-size:.75rem;z-index:800}
.sp-map-legend strong{display:block;margin-bottom:4px;color:#fff}
.sp-map-legend span{display:block;color:var(--sp-muted);margin:3px 0}
.sp-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.sp-map-side{background:var(--sp-card);border-left:1px solid var(--sp-border);overflow-y:auto;max-height:600px}
.sp-side-empty{padding:40px 20px;text-align:center;color:var(--sp-muted)}
.sp-sc{padding:20px}
.sp-sc h3{font-size:1.15rem;font-weight:700;color:#fff;margin:0 0 2px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.sp-sc .sp-addr{color:var(--sp-muted);font-size:.82rem;margin-bottom:14px}
.sp-sc .sp-addr a{color:var(--sp-accent);text-decoration:none}.sp-sc .sp-addr a:hover{text-decoration:underline}
.sp-sc .sp-pinline{display:flex;align-items:center;gap:10px;background:var(--sp-surface);border-radius:var(--sp-r);padding:12px;margin-bottom:14px}
.sp-sc .sp-pinline img{width:32px;height:32px;border-radius:6px;object-fit:contain}
.sp-sc .sp-pinline a{color:var(--sp-accent);font-weight:600;text-decoration:none;font-size:.9rem}.sp-sc .sp-pinline a:hover{text-decoration:underline}
.sp-sc img.sp-sc-photo{width:100%;border-radius:var(--sp-r);margin-bottom:14px;max-height:160px;object-fit:cover}
.sp-fbar{margin-bottom:14px}.sp-fbar-head{display:flex;justify-content:space-between;margin-bottom:4px;font-size:.82rem;color:var(--sp-text)}.sp-fbar-track{height:8px;background:var(--sp-surface);border-radius:4px;overflow:hidden}.sp-fbar-fill{height:100%;border-radius:4px;transition:width .5s}
.sp-sc-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.sp-sc-stat{background:var(--sp-surface);border-radius:var(--sp-r);padding:12px}
.sp-sc-stat strong{font-size:1.3rem;color:var(--sp-accent);display:block}.sp-sc-stat span{font-size:.72rem;color:var(--sp-muted)}
.sp-sc-info{color:var(--sp-muted);font-size:.8rem;margin-bottom:14px;line-height:1.5}

/* ═══ DONATION PLANS ═══ */
.sp-plans-section{max-width:1200px;margin:0 auto}
.sp-plans-layout{display:grid;grid-template-columns:1fr 380px;gap:28px}
.sp-plans-title{font-size:1.6rem;font-weight:700;margin-bottom:24px;color:var(--sp-text)}
.sp-plans-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sp-plancard{background:var(--sp-card);border:2px solid var(--sp-border);border-radius:var(--sp-rl);padding:22px;cursor:pointer;transition:.2s;position:relative}
.sp-plancard:hover{border-color:var(--sp-accent)}.sp-plancard--on{border-color:var(--sp-accent);box-shadow:0 0 20px rgba(109,78,236,0.12)}
.sp-plancard__amt{font-size:1.6rem;font-weight:800;color:var(--sp-accent);margin-bottom:2px}
.sp-plancard__title{font-size:.95rem;font-weight:700;color:#fff;margin-bottom:10px}
.sp-plancard__desc{color:var(--sp-muted);font-size:.82rem;margin-bottom:6px}
.sp-plancard__info{color:var(--sp-muted);font-size:.75rem}
.sp-plancard__chk{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;background:var(--sp-accent);color:#fff;display:none;align-items:center;justify-content:center;font-size:.7rem}
.sp-plancard--on .sp-plancard__chk{display:flex}

.sp-checkout{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);padding:24px;position:sticky;top:100px}
.sp-checkout h3{font-size:1.15rem;font-weight:700;margin-bottom:18px;color:#fff}
.sp-chtoggle{display:flex;background:var(--sp-surface);border-radius:24px;padding:3px;margin-bottom:18px}
.sp-chtbtn{flex:1;padding:9px;border:none;background:transparent;color:var(--sp-muted);border-radius:22px;cursor:pointer;font-weight:600;font-size:.82rem;transition:.2s}
.sp-chtbtn--on{background:var(--sp-accent);color:#fff}
.sp-chsummary{background:linear-gradient(135deg,rgba(109,78,236,0.12),rgba(91,62,212,0.08));border-radius:var(--sp-r);padding:16px;margin-bottom:18px;text-align:center}
.sp-chlabel{display:block;color:var(--sp-muted);font-size:.8rem}.sp-chamt{font-size:1.8rem;font-weight:800;color:var(--sp-accent)}
.sp-chmethods{margin-bottom:18px}.sp-chmethods h4{color:var(--sp-muted);font-size:.78rem;font-weight:600;margin-bottom:8px}
.sp-chmethod{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:var(--sp-r);margin-bottom:6px;cursor:pointer;color:var(--sp-text);font-size:.88rem;transition:.2s}
.sp-chmethod:hover{border-color:var(--sp-accent)}.sp-chmethod input{accent-color:var(--sp-accent)}
.sp-chcta{font-size:1rem;padding:16px}
.sp-chtrust{margin-top:14px;font-size:.75rem;color:var(--sp-muted)}.sp-chtrust span{display:block;margin:3px 0}

/* ═══ PROFILE PAGES ═══ */
.sp-profile{max-width:820px;margin:0 auto}
.sp-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--sp-accent);font-size:.88rem;text-decoration:none;margin-bottom:18px}
.sp-profile-hero{border-radius:var(--sp-rl);overflow:hidden;margin-bottom:22px}.sp-profile-hero img{width:100%;max-height:400px;object-fit:cover}
.sp-profile-center{text-align:center;margin-bottom:24px}
.sp-profile-name{font-size:1.8rem;font-weight:800;margin:0 0 8px;color:var(--sp-text)}
.sp-profile-meta-row{display:flex;justify-content:center;gap:10px;align-items:center;color:var(--sp-muted);font-size:.88rem;flex-wrap:wrap}
.sp-address-link{color:var(--sp-accent)!important;text-decoration:none!important}.sp-address-link:hover{text-decoration:underline!important}
.sp-profile-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px}
.sp-info-item{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-r);padding:12px 16px}
.sp-info-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;color:var(--sp-muted);font-weight:600;margin-bottom:2px}
.sp-info-value{font-size:.95rem;font-weight:600;color:var(--sp-text)}.sp-info-value a{color:var(--sp-accent)}
.sp-profile-donate{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);padding:24px;text-align:center;margin-bottom:28px}
.sp-profile-donate h3{color:#fff;margin:0 0 12px}
.sp-profile-partner{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);padding:16px;margin-bottom:24px}
.sp-partner-inline{display:flex;align-items:center;gap:12px}
.sp-partner-logo-sm{width:40px;height:40px;border-radius:8px;object-fit:contain}
.sp-partner-link{color:var(--sp-accent);font-weight:600;text-decoration:none}.sp-partner-link:hover{text-decoration:underline}
.sp-partner-logo-lg{width:80px;height:80px;border-radius:12px;object-fit:contain;margin:0 auto 12px;display:block}
.sp-profile-section{margin-bottom:28px}
.sp-profile-section h2{font-size:1.15rem;font-weight:700;padding-bottom:8px;border-bottom:2px solid var(--sp-accent);color:var(--sp-text);margin-bottom:14px}
.sp-story{line-height:1.7;color:var(--sp-muted);font-size:.92rem}
.sp-muted{color:var(--sp-muted);font-style:italic;font-size:.88rem}

/* Feeder profile stats */
.sp-feeder-stats-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;margin-bottom:24px}
.sp-fstat{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-r);padding:14px}
.sp-fstat__bar{height:10px;background:var(--sp-surface);border-radius:5px;overflow:hidden;margin-bottom:6px}
.sp-fstat__fill{height:100%;border-radius:5px;transition:width .5s}
.sp-fstat__label{font-size:.8rem;color:var(--sp-muted)}.sp-fstat__label strong{color:inherit}
.sp-fstat-num{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-r);padding:14px;text-align:center;font-size:.78rem;color:var(--sp-muted)}
.sp-fstat-big{display:block;font-size:1.4rem;font-weight:700;color:var(--sp-accent);margin-bottom:2px}

/* Partner impact */
.sp-partner-impact{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.sp-impact-card{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-r);padding:20px;text-align:center}
.sp-impact-num{display:block;font-size:1.6rem;font-weight:800;color:var(--sp-accent);margin-bottom:4px}
.sp-impact-label{font-size:.78rem;color:var(--sp-muted)}
.sp-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.sp-mini-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-r);text-decoration:none;transition:.2s;text-align:center}
.sp-mini-card:hover{border-color:var(--sp-accent);transform:translateY(-2px)}
.sp-mini-card img{width:60px;height:60px;border-radius:50%;object-fit:cover}
.sp-mini-card span{color:var(--sp-text);font-size:.82rem;font-weight:600}

/* Partners grid */
.sp-partners-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;max-width:1200px;margin:0 auto}
.sp-partner-card{display:flex;align-items:center;gap:14px;padding:16px;background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);text-decoration:none;transition:.2s}
.sp-partner-card:hover{border-color:var(--sp-accent);transform:translateY(-2px)}
.sp-pcard-logo{width:48px;height:48px;border-radius:8px;object-fit:contain}
.sp-partner-card strong{color:var(--sp-text);font-size:.95rem}

/* ═══ SHARED ═══ */
.sp-progress{height:8px;background:var(--sp-surface);border-radius:4px;overflow:hidden;margin:8px 0 4px}
.sp-progress__bar{height:100%;background:var(--sp-grad);border-radius:4px;transition:width .6s}
.sp-progress__text{font-size:.75rem;color:var(--sp-muted)}
.sp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center;padding:16px 0;max-width:1200px;margin:0 auto}
.sp-st__n{font-size:1.8rem;font-weight:800;color:var(--sp-accent);display:block}.sp-st__l{font-size:.82rem;color:var(--sp-muted)}

.sp-table-wrap{overflow-x:auto}.sp-table{width:100%;border-collapse:collapse;font-size:.82rem}
.sp-table th{text-align:left;padding:10px 12px;background:var(--sp-surface);color:var(--sp-muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.3px}
.sp-table td{padding:10px 12px;border-bottom:1px solid var(--sp-border);color:var(--sp-text)}
.sp-type-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:.7rem;font-weight:600;background:rgba(109,78,236,0.12);color:var(--sp-accent)}
.sp-overdue{color:var(--sp-red);font-weight:600}.sp-upcoming{color:var(--sp-orange);font-weight:600}.sp-current{color:var(--sp-accent);font-weight:600}

/* Report form */
.sp-rform{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);padding:24px;max-width:480px}
.sp-rform h3{color:#fff;margin-bottom:16px;font-size:1.1rem}
.sp-field{margin-bottom:12px}.sp-field label{display:block;color:var(--sp-text);font-weight:500;font-size:.85rem;margin-bottom:4px}
.sp-field input,.sp-field select,.sp-field textarea{width:100%;padding:10px 14px;background:var(--sp-input);border:1px solid var(--sp-border);border-radius:var(--sp-r);color:var(--sp-text);font-size:.88rem}
.sp-field input:focus,.sp-field select:focus,.sp-field textarea:focus{outline:none;border-color:var(--sp-accent);box-shadow:0 0 0 3px rgba(109,78,236,0.12)}
.sp-fmsg{margin-top:10px;font-size:.88rem}.sp-fmsg.success{color:var(--sp-accent)}.sp-fmsg.error{color:var(--sp-red)}
.sp-dwidget{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);padding:22px;text-align:center}
.sp-dwidget h3{color:#fff;margin-bottom:10px}
.sp-empty{color:var(--sp-muted);text-align:center;padding:40px}

/* Leaflet popup */
.leaflet-popup-content-wrapper{background:var(--sp-card)!important;color:var(--sp-text)!important;border-radius:var(--sp-r)!important;border:1px solid var(--sp-border)!important;box-shadow:0 4px 20px rgba(0,0,0,0.4)!important}
.leaflet-popup-tip{background:var(--sp-card)!important}

/* ═══ DONATION POPUP ═══ */
.sp-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.sp-popup-overlay.sp-popup-open{opacity:1;pointer-events:all}
.sp-popup{background:var(--sp-card);border:1px solid var(--sp-border);border-radius:var(--sp-rl);padding:32px;max-width:420px;width:90%;text-align:center;transform:translateY(20px);transition:transform .25s}
.sp-popup-open .sp-popup{transform:translateY(0)}
.sp-popup h3{color:#fff;font-size:1.2rem;margin-bottom:6px}
.sp-popup p{color:var(--sp-muted);font-size:.88rem;margin-bottom:20px}
.sp-popup-amounts{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}
.sp-popup-amt{padding:10px 20px;border-radius:24px;border:2px solid var(--sp-border);background:transparent;color:var(--sp-text);font-size:.95rem;font-weight:600;cursor:pointer;transition:.2s}
.sp-popup-amt:hover,.sp-popup-amt.sp-popup-amt--on{border-color:var(--sp-accent);background:var(--sp-accent);color:#fff}
.sp-popup-custom{margin-bottom:20px}
.sp-popup-custom input{width:100%;padding:12px 16px;background:var(--sp-input);border:1px solid var(--sp-border);border-radius:var(--sp-r);color:var(--sp-text);font-size:1rem;text-align:center}
.sp-popup-custom input:focus{outline:none;border-color:var(--sp-accent);box-shadow:0 0 0 3px rgba(109,78,236,0.15)}
.sp-popup-custom input::placeholder{color:var(--sp-muted)}
.sp-popup-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--sp-muted);font-size:1.3rem;cursor:pointer;padding:4px}
.sp-popup-close:hover{color:#fff}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1024px){.sp-map-layout{grid-template-columns:1fr}.sp-map-side{border-left:none;border-top:1px solid var(--sp-border);max-height:380px}.sp-plans-layout{grid-template-columns:1fr}.sp-feeder-stats-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.sp-pgrid{grid-template-columns:1fr!important}.sp-plans-grid{grid-template-columns:1fr}.sp-stats{grid-template-columns:1fr 1fr}.sp-profile-info-grid{grid-template-columns:1fr}.sp-partner-impact{grid-template-columns:1fr}}
