/* MiMascota - Full CSS */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:'DM Sans',sans-serif;background:#fff;color:#0D0D1A;height:100vh;overflow:hidden}
:root{--bg:#fff;--fg:#0D0D1A;--card:#fff;--primary:#030213;--primary-fg:#fff;--secondary-bg:#F0F0F5;--muted:#ECECF0;--muted-fg:#717182;--border:rgba(0,0,0,.1);--radius:.625rem;--radius-lg:1rem;--radius-xl:1.25rem;--shadow:0 2px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.14);--green:#22C55E;--blue:#3B82F6;--red:#ef4444}
.hidden{display:none!important}.w-full{width:100%}.mt-4{margin-top:1rem}.mt-2{margin-top:.5rem}.flex-1{flex:1}.mobile-only{display:none!important}.desktop-only{display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-xl);border:none;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:500;transition:all .18s;line-height:1}
.btn-primary{background:var(--primary);color:var(--primary-fg)}.btn-primary:hover{opacity:.88}
.btn-outline{background:transparent;border:2px solid var(--border);color:var(--fg)}.btn-outline:hover{background:var(--muted)}
.btn-sm{padding:.375rem .875rem;font-size:.825rem}.btn-lg{padding:1rem 1.5rem;font-size:1.05rem;height:3.25rem}
.icon-btn{background:none;border:none;cursor:pointer;width:2.25rem;height:2.25rem;border-radius:var(--radius-lg);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;color:var(--muted-fg);transition:background .15s}
.icon-btn:hover{background:var(--muted)}
.link-btn{background:none;border:none;cursor:pointer;color:var(--primary);font-size:.875rem;font-family:inherit}
.link-btn--white{color:rgba(255,255,255,.8);background:none;border:none;cursor:pointer;font-size:.825rem;font-family:inherit}
input,select,textarea{width:100%;padding:.75rem 1rem;border:2px solid var(--border);border-radius:var(--radius-xl);font-family:inherit;font-size:.95rem;background:#F3F3F5;outline:none;transition:border .2s}
input:focus,select:focus,textarea:focus{border-color:var(--primary);background:#fff}
textarea{resize:vertical}
.badge{background:var(--red);color:#fff;font-size:.7rem;font-weight:700;border-radius:99px;padding:.1rem .4rem;min-width:1.2rem;text-align:center}
.toggle{position:relative;display:inline-block;width:44px;height:24px}
.toggle input{opacity:0;width:0;height:0}
.slider{position:absolute;inset:0;background:#CBCED4;border-radius:99px;cursor:pointer;transition:.3s}
.slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}
.toggle input:checked+.slider{background:var(--primary)}
.toggle input:checked+.slider::before{transform:translateX(20px)}
/* AUTH */
.auth-screen{display:flex;height:100vh;width:100vw;overflow:hidden}
.auth-left{width:45%;flex-shrink:0;position:relative;overflow:hidden;display:flex;flex-direction:column}
.auth-left-bg{position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1509205477838-a534e43a849f?w=800') center/cover;opacity:.2}
.auth-left-overlay{position:absolute;inset:0;background:linear-gradient(135deg,#030213 0%,#1A1060 60%,#4F1A8C 100%);opacity:.85}
.auth-left-content{position:relative;z-index:1;padding:2.5rem;flex:1;display:flex;flex-direction:column}
.auth-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:3rem}
.brand-icon-white{font-size:1.5rem}
.brand-name-white{font-size:1.3rem;font-weight:700;color:#fff}
.auth-hero{margin-bottom:2rem}
.auth-hero h1{font-family:'DM Serif Display',serif;font-size:clamp(2rem,3vw,2.75rem);color:#fff;line-height:1.2;margin-bottom:.75rem}
.hero-accent{color:#FDE047}
.auth-hero p{color:rgba(255,255,255,.75);font-size:1rem;line-height:1.6}
.auth-features{display:flex;flex-direction:column;gap:.875rem;margin-top:auto}
.feature-item{display:flex;align-items:flex-start;gap:1rem;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-xl);padding:.875rem 1rem}
.feature-icon{font-size:1.2rem;flex-shrink:0}
.feature-item strong{color:#fff;font-size:.875rem;display:block;margin-bottom:.15rem}
.feature-item p{color:rgba(255,255,255,.65);font-size:.775rem}
.auth-footer{color:rgba(255,255,255,.4);font-size:.8rem;margin-top:1.5rem}
.auth-right{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:2rem}
.auth-mobile-brand{display:none;justify-content:center;align-items:center;gap:.75rem;padding-bottom:2rem;font-weight:700;font-size:1.25rem}
.auth-form-wrap{flex:1;display:flex;align-items:center;justify-content:center}
.login-form{width:100%;max-width:440px}
.login-form h2{font-size:1.875rem;font-weight:600;margin-bottom:.375rem}
.form-subtitle{color:var(--muted-fg);margin-bottom:1.75rem}
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.375rem}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.input-wrap{position:relative}
.input-wrap input{padding-left:2.75rem;padding-right:2.5rem}
.input-icon{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);font-size:.95rem}
.input-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:.9rem}
.form-forgot{text-align:right;margin-top:-.5rem;margin-bottom:1rem}
.divider{position:relative;text-align:center;margin:1.5rem 0}
.divider::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border)}
.divider span{background:#fff;position:relative;z-index:1;padding:0 1rem;font-size:.825rem;color:var(--muted-fg)}
.alert-error{background:#FEE2E2;color:#B91C1C;padding:.75rem 1rem;border-radius:var(--radius-xl);margin-bottom:1rem;font-size:.875rem}
.alert-success{background:#DCFCE7;color:#166534;padding:.75rem 1rem;border:1px solid #BBF7D0;border-radius:var(--radius-xl);margin-bottom:1rem;font-size:.875rem;font-weight:700}
.account-terms-link{margin-top:.65rem}
.auth-social-separator{display:flex;align-items:center;gap:.75rem;margin:1.15rem 0 .85rem;color:var(--muted-fg);font-size:.76rem;font-weight:700}.auth-social-separator::before,.auth-social-separator::after{content:"";height:1px;background:var(--border);flex:1}.auth-social-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.auth-social-button{min-height:46px;border:1px solid var(--border);border-radius:.8rem;background:#fff;color:#1F2937;display:flex;align-items:center;justify-content:center;gap:.55rem;font:inherit;font-weight:800;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.auth-social-button:not(:disabled):hover{border-color:#7AA68F;box-shadow:0 8px 20px rgba(23,51,38,.1);transform:translateY(-1px)}.auth-social-button:disabled{opacity:.45;cursor:not-allowed}.auth-provider-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900}.auth-social-google .auth-provider-icon{color:#4285F4;border:1px solid #E5E7EB}.auth-social-facebook .auth-provider-icon{background:#1877F2;color:#fff;font-family:Arial,sans-serif}.auth-social-unavailable{display:block;text-align:center;color:var(--muted-fg);margin-top:.65rem}.external-auth-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:linear-gradient(135deg,#F4FAF7,#E1F0E8)}.external-auth-card{width:min(430px,100%);padding:2.5rem;text-align:center;background:#fff;border:1px solid #DDE9E2;border-radius:1.5rem;box-shadow:0 24px 60px rgba(23,51,38,.14)}.external-auth-brand{width:58px;height:58px;margin:0 auto 1rem;border-radius:18px;display:grid;place-items:center;background:#173326;color:#fff;font-size:1.7rem}.external-auth-card h1{font-family:'DM Serif Display',serif;color:#173326;font-size:1.8rem;margin:.8rem 0}.external-auth-card p{color:#64746B;line-height:1.55;margin-bottom:1.25rem}.external-auth-spinner{width:34px;height:34px;margin:1.2rem auto;border:3px solid #DCE9E1;border-top-color:#198754;border-radius:50%;animation:external-auth-spin .75s linear infinite}@keyframes external-auth-spin{to{transform:rotate(360deg)}}html[data-theme="dark"] .auth-social-button,html[data-theme="dark"] .external-auth-card{background:#17231D;color:#F4FAF7;border-color:#35463D}html[data-theme="dark"] .external-auth-page{background:#0D1511}html[data-theme="dark"] .external-auth-card h1{color:#F4FAF7}
@media(max-width:520px){.auth-social-grid{grid-template-columns:1fr}}
.form-hint{display:block;text-align:right;color:var(--muted-fg);font-size:.75rem;margin-top:.25rem}
/* APP SHELL */
.app-shell{display:flex;height:100vh;width:100vw;overflow:hidden}
.sidebar{width:240px;flex-shrink:0;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column}
.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1rem;border-bottom:1px solid var(--border)}
.brand-icon{width:2.25rem;height:2.25rem;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem}
.brand-name{font-size:1.1rem;font-weight:700;color:var(--fg)}
.sidebar-nav{flex:1;padding:.75rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}
.sidebar-footer{padding:.75rem;border-top:1px solid var(--border)}
.nav-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;border-radius:var(--radius-lg);border:none;background:none;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:500;color:var(--muted-fg);width:100%;text-align:left;transition:all .15s}
.nav-item:hover{background:var(--muted);color:var(--fg)}
.nav-item--active{background:var(--primary);color:#fff}
.nav-item--logout:hover{background:#FEE2E2;color:var(--red)}
.nav-icon{font-size:1.1rem}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:.7rem;font-weight:700;border-radius:99px;padding:.1rem .4rem;min-width:1.2rem;text-align:center}
.mobile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}
.main-col{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;position:relative}
.top-header{height:3.5rem;border-bottom:1px solid var(--border);background:var(--card);display:flex;align-items:center;gap:.75rem;padding:0 1rem;flex-shrink:0;z-index:10;position:relative}
.header-title{font-size:1.1rem;font-weight:600}
.header-spacer{flex:1}
.header-search{position:relative;max-width:280px;width:100%}
.header-search input{padding:.5rem .75rem .5rem 2.25rem;height:2.25rem;font-size:.85rem}
.search-icon-sm{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);font-size:.85rem}
.header-mobile-brand{display:flex;align-items:center;gap:.5rem;font-weight:700}
.brand-icon-sm{font-size:1rem}
.notif-wrapper{position:relative}
.notif-btn{position:relative}
.notif-badge{position:absolute;top:0;right:0;background:var(--red);color:#fff;font-size:.6rem;font-weight:700;border-radius:99px;width:1.1rem;height:1.1rem;display:flex;align-items:center;justify-content:center}
.avatar-btn{width:2.25rem;height:2.25rem;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;font-size:1rem}
.notif-panel{position:absolute;top:calc(100% + .5rem);right:0;width:320px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden}
.notif-header{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;border-bottom:1px solid var(--border)}
.notif-list{max-height:340px;overflow-y:auto}
.notif-item{display:flex;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.notif-item:hover{background:var(--muted)}
.notif-item--unread{background:#F0F4FF}
.notif-icon{font-size:1.5rem;flex-shrink:0}
.notif-item strong{font-size:.875rem;display:block;margin-bottom:.15rem}
.notif-item p{font-size:.8rem;color:var(--muted-fg);margin-bottom:.15rem}
.notif-item small{font-size:.725rem;color:var(--muted-fg)}
.content-area{flex:1;overflow:hidden}
.mobile-nav{border-top:1px solid var(--border);background:var(--card);flex-shrink:0;display:none}
.mob-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.625rem .25rem;background:none;border:none;cursor:pointer;font-size:.65rem;color:var(--muted-fg);font-family:inherit}
.mob-icon{font-size:1.25rem}
.mob-nav-btn--active{color:var(--primary)}
.floating-menu{position:fixed;bottom:5rem;right:1.25rem;z-index:50}
.fab-items{position:absolute;bottom:4rem;right:0;display:flex;flex-direction:column;gap:.875rem}
.fab-item{display:flex;align-items:center;gap:.75rem}
.fab-label{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:.375rem .875rem;font-size:.875rem;box-shadow:var(--shadow);white-space:nowrap}
.fab-btn{width:3rem;height:3rem;border-radius:50%;border:none;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);flex-shrink:0}
.fab-btn--blue{background:var(--blue)}.fab-btn--green{background:var(--green)}
.fab-main{width:3.5rem;height:3.5rem;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:transform .2s,background .2s}
.fab-main--open{background:var(--red);transform:rotate(45deg)}
/* TIKTOK */
.tiktok-container{height:100%;outline:none;overflow:hidden;position:relative}
.tiktok-card{height:100%;width:100%;position:relative;overflow:hidden;display:flex;align-items:flex-end;background-size:cover;background-position:center}
.tiktok-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000;z-index:0}
.tiktok-media--video{cursor:pointer}
.tiktok-gradient{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 60%);z-index:1;pointer-events:none}
.post-indicators{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:3}
.post-indicator{width:.25rem;height:2rem;background:rgba(255,255,255,.3);border-radius:99px;transition:all .3s}
.post-indicator--active{background:#fff}
.controls-hint{position:absolute;top:1.5rem;left:1.5rem;background:rgba(0,0,0,.3);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);border-radius:.625rem;padding:.5rem .875rem;color:rgba(255,255,255,.8);font-size:.8rem;z-index:3}
.tiktok-nav-arrows{position:absolute;right:4rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.75rem;z-index:3}
.tiktok-nav-btn{width:3rem;height:3rem;border-radius:50%;background:rgba(0,0,0,.3);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.tiktok-nav-btn:hover{background:rgba(0,0,0,.5)}.tiktok-nav-btn:disabled{opacity:.3;cursor:not-allowed}
.play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:5rem;height:5rem;border-radius:50%;background:rgba(0,0,0,.3);backdrop-filter:blur(4px);border:2px solid rgba(255,255,255,.3);color:#fff;font-size:1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3}
.tiktok-info{position:relative;z-index:2;width:100%;padding:1.5rem;padding-bottom:4rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.tiktok-info-left{flex:1}
.tiktok-author{display:flex;align-items:center;gap:.875rem;margin-bottom:.875rem}
.author-avatar{width:3rem;height:3rem;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.5)}
.author-name{color:#fff;font-weight:600;font-size:.95rem}
.author-meta{color:rgba(255,255,255,.7);font-size:.75rem}
.btn-follow{background:#fff;color:#000;border:none;padding:.3rem .875rem;border-radius:99px;font-size:.825rem;font-weight:600;cursor:pointer;margin-left:.5rem}
.tiktok-desc{color:#fff;font-size:.9rem;line-height:1.5;margin-bottom:.5rem}
.tiktok-desc--clamped{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tiktok-hashtags{display:flex;flex-wrap:wrap;gap:.5rem}
.hashtag{color:#93C5FD;font-size:.8rem;cursor:pointer}
.tiktok-actions{display:flex;flex-direction:column;gap:1.5rem;align-items:center}
.action-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;background:rgba(0,0,0,.25);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);border-radius:50%;width:3.5rem;height:3.5rem;justify-content:center;cursor:pointer;color:#fff;font-size:1.5rem;transition:transform .15s}
.action-btn:hover{transform:scale(1.1)}.action-btn small{font-size:.65rem;color:#fff}.action-btn--liked{color:#ef4444}
/* ADOPTIONS */
.adoptions-page{height:100%;overflow-y:auto}
.adoptions-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:5}
.adoptions-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.adoptions-title-row h2{font-size:1.5rem;font-weight:600}
.count-label{font-size:.85rem;color:var(--muted-fg)}
.search-bar{position:relative;display:flex;align-items:center;margin-bottom:.875rem}
.search-bar input{padding-left:2.5rem;padding-right:2.5rem}
.search-icon{position:absolute;left:.85rem;font-size:.95rem;z-index:1;pointer-events:none}
.search-bar .icon-btn{position:absolute;right:.25rem}
.filter-row{display:flex;gap:.5rem;flex-wrap:wrap}
.filter-chip{padding:.375rem .875rem;border-radius:99px;border:2px solid var(--border);background:none;cursor:pointer;font-size:.8rem;font-family:inherit;transition:all .15s}
.filter-chip:hover{background:var(--muted)}.filter-chip--active{background:var(--primary);color:#fff;border-color:var(--primary)}
.filter-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1rem;margin-top:.75rem}
.filter-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}
.pets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;padding:1.5rem}
.pet-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;cursor:pointer;transition:box-shadow .2s,transform .15s}
.pet-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.pet-card-img{position:relative;aspect-ratio:1}.pet-card-img img{width:100%;height:100%;object-fit:cover}
.like-btn{position:absolute;top:.625rem;right:.625rem;width:2rem;height:2rem;border-radius:50%;background:rgba(255,255,255,.85);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .15s}
.pet-card-body{padding:.875rem}.pet-card-body h3{font-size:.95rem;font-weight:600;margin-bottom:.2rem}
.pet-card-body p{font-size:.8rem;color:var(--muted-fg);margin-bottom:.1rem}
.pet-card-loc{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--muted-fg);margin-top:.5rem}
.empty-state{grid-column:1/-1;text-align:center;padding:4rem 1rem;color:var(--muted-fg)}
.empty-icon{font-size:3rem;display:block;margin-bottom:1rem}
/* MAP */
.map-layout{display:flex;height:100%}.map-area{flex:1;position:relative;overflow:hidden}
.map-bg{width:100%;height:100%;background:#E8F0E8;background-image:linear-gradient(rgba(100,140,100,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(100,140,100,.15) 1px,transparent 1px);background-size:40px 40px}
.map-pin{position:absolute;cursor:pointer;transform:translate(-50%,-50%)}
.pin-dot{width:1.25rem;height:1.25rem;border-radius:50%;background:var(--primary);border:3px solid #fff;box-shadow:var(--shadow);animation:pinPulse 2s ease-in-out infinite}
@keyframes pinPulse{0%,100%{box-shadow:0 0 0 0 rgba(3,2,19,.3)}50%{box-shadow:0 0 0 6px rgba(3,2,19,0)}}
.pin-tooltip{position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;font-size:.75rem;padding:.3rem .65rem;border-radius:var(--radius-lg);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.pin-tooltip--visible,.map-pin:hover .pin-tooltip{opacity:1}
.map-search-overlay{position:absolute;top:1rem;left:50%;transform:translateX(-50%);width:min(320px,90%)}
.map-search-input{border-radius:99px!important;box-shadow:var(--shadow);background:#fff!important}
.map-controls{position:absolute;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:.5rem}
.map-ctrl-btn{width:2.5rem;height:2.5rem;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--border);cursor:pointer;font-size:1.1rem;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}
.nearby-panel{width:280px;border-left:1px solid var(--border);overflow-y:auto;background:var(--card)}
.nearby-panel h3{padding:1rem 1rem .5rem;font-size:1rem;font-weight:600;border-bottom:1px solid var(--border)}
.nearby-list{padding:.75rem;display:flex;flex-direction:column;gap:.5rem}
.nearby-item{display:flex;gap:.875rem;align-items:center;padding:.75rem;border-radius:var(--radius-lg);cursor:pointer;transition:background .15s;border:1px solid var(--border)}
.nearby-item:hover{background:var(--muted)}.nearby-item img{width:3rem;height:3rem;border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0}
.nearby-item strong{display:block;font-size:.9rem;margin-bottom:.1rem}.nearby-item p{font-size:.8rem;color:var(--muted-fg)}.dist-tag{font-size:.75rem;color:var(--blue)}
.map-popup{position:absolute;bottom:5rem;left:1rem;background:#fff;border-radius:var(--radius-xl);padding:1rem;box-shadow:var(--shadow-lg);min-width:200px}
.map-popup-close{position:absolute;top:.5rem;right:.5rem;background:none;border:none;cursor:pointer;color:var(--muted-fg)}
/* CHATS */
.chats-layout{display:flex;height:100%}
.chat-list-panel{width:300px;border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}
.chat-list-header{padding:1rem;border-bottom:1px solid var(--border)}.chat-list-header h2{font-size:1.25rem;font-weight:600}
.chat-list{flex:1;overflow-y:auto}
.chat-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border)}
.chat-item:hover{background:var(--muted)}.chat-item--active{background:var(--secondary-bg)}.chat-item--unread{background:#F0F4FF}
.chat-avatar{width:2.5rem;height:2.5rem;border-radius:50%;object-fit:cover;flex-shrink:0}
.chat-avatar-wrap{position:relative;display:inline-block}
.online-dot{position:absolute;bottom:0;right:0;width:.75rem;height:.75rem;border-radius:50%;background:#22C55E;border:2px solid #fff}
.chat-item-info{flex:1;min-width:0}.chat-item-top{display:flex;justify-content:space-between;margin-bottom:.2rem}
.chat-item-top strong{font-size:.875rem}.chat-item-top span{font-size:.75rem;color:var(--muted-fg)}
.chat-item-info p{font-size:.8rem;color:var(--muted-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-convo-panel{flex:1;display:flex;flex-direction:column;height:100%}
.chat-convo-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--card)}
.online-status{font-size:.75rem;color:var(--green)}
.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:#F8F8FC}
.msg{display:flex;flex-direction:column;max-width:70%}
.msg--in{align-self:flex-start}.msg--out{align-self:flex-end}
.msg-bubble{padding:.625rem .9rem;border-radius:1.125rem;font-size:.9rem;line-height:1.45}
.msg--in .msg-bubble{background:#fff;border:1px solid var(--border);border-bottom-left-radius:.25rem}
.msg--out .msg-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:.25rem}
.msg-meta{display:flex;gap:.35rem;font-size:.7rem;color:var(--muted-fg);margin-top:.2rem}
.msg--out .msg-meta{justify-content:flex-end}.msg-status{color:var(--blue)}
.typing-bubble{display:flex;gap:.3rem;align-items:center;padding:.625rem .875rem}
.typing-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--muted-fg);animation:typingPulse 1.4s ease-in-out infinite}
.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}
@keyframes typingPulse{0%,100%{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}
.emoji-picker{display:flex;flex-wrap:wrap;gap:.25rem;padding:.875rem;border-top:1px solid var(--border);background:var(--card)}
.emoji-btn{background:none;border:none;cursor:pointer;font-size:1.3rem;padding:.25rem;border-radius:.5rem;transition:transform .15s}
.emoji-btn:hover{transform:scale(1.2);background:var(--muted)}
.chat-input{flex:1;border-radius:99px;padding:.625rem 1.25rem;border:2px solid var(--border);background:#F3F3F5;outline:none;font-family:inherit}
.chat-input:focus{border-color:var(--primary);background:#fff}
.chat-input-row{display:flex;gap:.75rem;padding:.875rem;border-top:1px solid var(--border);background:var(--card)}
.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--muted-fg)}
.chat-empty-icon{font-size:3rem}.chat-list-panel--hidden-mobile{display:flex}
/* DETAIL */
.detail-page{height:100%;display:flex;flex-direction:column}
.detail-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--border);font-weight:600}
.detail-header-actions{display:flex;gap:.5rem}.detail-scroll{flex:1;overflow-y:auto}
.detail-hero{position:relative;aspect-ratio:1}.detail-hero img{width:100%;height:100%;object-fit:cover}
.detail-type-badge{position:absolute;bottom:.75rem;left:.75rem;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);color:#fff;padding:.3rem .75rem;border-radius:99px;font-size:.8rem}
.detail-content{padding:1.25rem}
.detail-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375rem}
.detail-title-row h2{font-size:1.75rem}
.gender-badge{padding:.3rem .875rem;border-radius:99px;font-size:.825rem}
.gender-badge--male{background:#DBEAFE;color:#1D4ED8}.gender-badge--female{background:#FCE7F3;color:#9D174D}
.detail-breed{color:var(--muted-fg);font-size:1rem;margin-bottom:.625rem}
.detail-meta{display:flex;gap:1.25rem;color:var(--muted-fg);font-size:.875rem;margin-bottom:1.25rem}
.detail-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:.875rem;margin-bottom:1.5rem}
.chip{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:.875rem;text-align:center}
.chip span{display:block;font-size:1.1rem;margin-bottom:.25rem;font-weight:600}.chip small{color:var(--muted-fg);font-size:.75rem}
.detail-section{margin-bottom:1.25rem}.detail-section h3{font-size:1rem;font-weight:600;margin-bottom:.625rem}
.detail-section p{color:var(--muted-fg);font-size:.875rem;line-height:1.6}
.contact-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1rem;margin-bottom:1.25rem}
.contact-card h3{font-size:1rem;font-weight:600;margin-bottom:.875rem}
.contact-row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.875rem}
.contact-row:last-child{border-bottom:none}
.warning-card{background:#FEFCE8;border:1px solid #FDE047;border-radius:var(--radius-xl);padding:1rem;margin-bottom:1.5rem}
.warning-card strong{display:block;color:#30704E;margin-bottom:.375rem;font-size:.875rem}
.warning-card p{color:#30704E;font-size:.825rem;line-height:1.5}
.detail-footer{padding:1.25rem;border-top:1px solid var(--border)}.liked{color:#ef4444}
/* PROFILE */
.profile-wrap{max-width:680px;margin:0 auto;padding:2rem 1.5rem;overflow-y:auto;height:100%}
.profile-header{display:flex;align-items:flex-start;gap:1.5rem;margin-bottom:2rem}
.profile-avatar{width:5rem;height:5rem;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}
.profile-info h2{font-size:1.5rem;margin-bottom:.25rem}
.profile-location,.profile-bio{font-size:.875rem;color:var(--muted-fg)}
.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1rem;text-align:center;cursor:pointer;transition:box-shadow .2s}
.stat-card:hover{box-shadow:var(--shadow)}.stat-val{display:block;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}
.stat-label{font-size:.8rem;color:var(--muted-fg)}
.profile-section-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.25rem;margin-bottom:1rem}
.profile-section-card h3{font-size:1rem;font-weight:600;margin-bottom:1rem}
.profile-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.875rem}
.profile-row:last-child{border-bottom:none}
.pref-toggle{display:flex;align-items:center;justify-content:space-between;padding:.625rem 0;border-bottom:1px solid var(--border);font-size:.875rem}
.pref-toggle:last-child{border-bottom:none}
.sub-page{height:100%;overflow-y:auto;padding:1.25rem}
.sub-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.sub-header h2{font-size:1.25rem;font-weight:600}
.pubs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.pub-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden}
.pub-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.pub-body{padding:.875rem}
.pub-body p{font-size:.875rem;margin-bottom:.625rem}
.pub-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted-fg);margin-bottom:.5rem}
.pub-stats{display:flex;gap:1rem;font-size:.8rem}
.reactions-list{display:flex;flex-direction:column;gap:.875rem}
.reaction-item{display:flex;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:.875rem}
.reaction-item img{width:3.5rem;height:3.5rem;border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0}
.reaction-info{flex:1}.reaction-info strong{display:block;margin-bottom:.2rem}
.reaction-info p{font-size:.825rem;color:var(--muted-fg)}.reaction-info span{font-size:.75rem;color:var(--muted-fg)}
.reaction-badge--super{background:#DBEAFE;color:#1D4ED8;font-size:.75rem;padding:.3rem .7rem;border-radius:99px;font-weight:600}
.reaction-badge--like{background:#FEE2E2;color:#B91C1C;font-size:.75rem;padding:.3rem .7rem;border-radius:99px;font-weight:600}
/* MODALS */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:flex;align-items:flex-end}
.modal-sheet{position:relative;width:100%;max-width:520px;margin:0 auto;background:var(--card);border-radius:1.5rem 1.5rem 0 0;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 -8px 32px rgba(0,0,0,.2);animation:slideUp .25s ease}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal-sheet--form{max-width:600px}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);font-weight:600}
.modal-body{flex:1;overflow-y:auto;padding:1.25rem}
.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-xl);padding:2rem;text-align:center;color:var(--muted-fg);cursor:pointer;background:var(--muted);font-size:.9rem}
.upload-zone:hover{border-color:var(--primary);color:var(--primary)}
.sr-only-file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.upload-zone--video{padding:2.5rem;font-size:1.5rem}
.video-modal{width:min(600px,calc(100vw - 2rem));overflow:hidden}
.video-modal .modal-body{min-width:0}
.video-modal .upload-zone--video{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;min-height:8.5rem;padding:1.5rem;font-size:1rem;line-height:1.35;overflow:hidden}
.video-modal .upload-zone--video span{font-size:2rem}
.video-modal .upload-zone--video strong,.video-modal .upload-zone--video small{max-width:100%;overflow-wrap:anywhere}
.video-modal .upload-zone--video strong{font-size:1.05rem;color:var(--fg)}
.video-modal .upload-zone--video small{font-size:.9rem;color:var(--muted-fg)}
.video-modal .form-btn-row{min-width:0}
.video-modal .form-btn-row .btn{min-width:0}
@media(max-width:520px){
  .video-modal{width:100%;max-width:none}
  .video-modal .upload-zone--video{padding:1.25rem;font-size:.95rem}
  .video-modal .form-btn-row{flex-direction:column}
}
.video-selected-card{display:flex;align-items:center;gap:.75rem;border:1px solid var(--border);background:#F8FAFC;border-radius:var(--radius-xl);padding:.85rem 1rem;margin-bottom:1rem}
.video-selected-card>span{font-size:1.55rem}
.video-selected-card>div{flex:1;min-width:0}
.video-selected-card strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.video-selected-card small{color:var(--muted-fg)}
.adoption-uploader{border:1px solid var(--border);border-radius:1.25rem;background:linear-gradient(180deg,#FBFDFC,#F8FAFC);padding:.75rem;margin-bottom:1rem}
.adoption-upload-hero{min-height:8.5rem;border:2px dashed #86EFAC;border-radius:1rem;background:linear-gradient(135deg,#F0FDF4,#FBFDFC);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;text-align:center;cursor:pointer;color:#166534;transition:transform .16s,border-color .16s,box-shadow .16s}
.adoption-upload-hero:hover{transform:translateY(-1px);border-color:#22C55E;box-shadow:0 14px 30px rgba(22,163,74,.13)}
.upload-hero-icon{width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;background:#DCFCE7;font-size:1.45rem;margin-bottom:.25rem}
.adoption-upload-hero strong{font-size:1rem}.adoption-upload-hero small{color:#4B5563}
.adoption-preview-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.85rem .15rem .55rem;font-size:.86rem}
.adoption-preview-head label{color:#16A34A;font-weight:800;cursor:pointer}
.adoption-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:.55rem}
.adoption-preview-grid figure{position:relative;aspect-ratio:1;border-radius:.85rem;overflow:hidden;background:#F1F5F9;border:1px solid var(--border);margin:0}
.adoption-preview-grid img{width:100%;height:100%;object-fit:cover;display:block}
.adoption-preview-grid figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);color:#fff;font-size:.66rem;padding:1rem .35rem .3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.report-uploader .report-upload-hero{border-color:#FECACA;background:linear-gradient(135deg,#FFF1F2,#FBFDFC);color:#991B1B}
.report-uploader .report-upload-hero:hover{border-color:#FB7185;box-shadow:0 14px 30px rgba(239,68,68,.13)}
.report-uploader .upload-hero-icon{background:#FEE2E2}
.form-btn-row{display:flex;gap:.875rem;padding-top:1rem}.tag-row{display:flex;flex-wrap:wrap;gap:.5rem}
.privacy-options{display:flex;flex-direction:column;gap:.5rem}
.privacy-option{display:flex;justify-content:space-between;align-items:center;padding:.875rem;border:2px solid var(--border);border-radius:var(--radius-xl);background:none;cursor:pointer;text-align:left;width:100%;font-family:inherit}
.privacy-option--active{border-color:var(--primary)}
.privacy-option strong{display:block;margin-bottom:.15rem;font-size:.9rem}.privacy-option p{font-size:.8rem;color:var(--muted-fg)}
@media(max-width:768px){
  .mobile-only{display:flex!important}.desktop-only{display:none}.sidebar{display:none}
  .mobile-nav{display:flex}
  .auth-left{display:none}.auth-right{flex:1}.auth-mobile-brand{display:flex}
  .chat-list-panel{width:100%;border-right:none}.map-layout{flex-direction:column}
  .nearby-panel{width:100%;height:220px;border-left:none;border-top:1px solid var(--border)}
  .pets-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:1rem}
  .profile-wrap{padding:1rem}.profile-header{flex-direction:column;align-items:center;text-align:center}
  .notif-panel{right:.5rem;width:calc(100vw - 1rem)}
}

.hint-box{background:#F0F4FF;border:1px solid #C7D2FE;border-radius:var(--radius-xl);padding:.75rem 1rem;font-size:.85rem;color:#3730A3;margin-bottom:1rem}
.hint-box code{background:#E0E7FF;border-radius:.375rem;padding:.1rem .4rem;font-family:monospace;font-size:.85rem;color:#1E1B4B}

/* Política de privacidad y eliminación de cuenta */
.privacy-page{min-height:100vh;background:linear-gradient(180deg,#f1f8f3 0,#fff 22rem);color:#173326}
.privacy-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;max-width:1120px;margin:auto;padding:1rem 1.25rem;background:rgba(248,252,249,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(35,122,77,.12)}
.privacy-brand{display:flex;align-items:center;gap:.65rem;color:#173326;text-decoration:none;font-size:1.15rem}.privacy-brand span{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:#237a4d;color:#fff}
.privacy-document{max-width:900px;margin:0 auto;padding:3.5rem 1.25rem 4rem}.privacy-hero{padding:2rem 0 2.5rem;border-bottom:1px solid #dce9df}.privacy-hero>span{display:inline-block;padding:.35rem .75rem;border-radius:99px;background:#dff1e4;color:#17643e;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.privacy-hero h1{font-family:"DM Serif Display",serif;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1;margin:.9rem 0}.privacy-hero p{max-width:700px;font-size:1.08rem;color:#526f5d}.privacy-hero small{display:block;margin-top:1rem;color:#6b7f71}
.privacy-index{display:flex;flex-wrap:wrap;gap:.55rem;padding:1.5rem 0}.privacy-index a{padding:.55rem .8rem;border:1px solid #cfe1d3;border-radius:99px;color:#237a4d;text-decoration:none;font-size:.85rem;font-weight:600;background:#fff}
.privacy-document section{scroll-margin-top:6rem;padding:1.7rem 0;border-bottom:1px solid #e3ece5}.privacy-document section h2{font-size:1.35rem;margin-bottom:.75rem;color:#173326}.privacy-document section p,.privacy-document section li{line-height:1.75;color:#3f5948}.privacy-document section p+p{margin-top:.8rem}.privacy-document ul{display:grid;gap:.55rem;padding-left:1.25rem}.privacy-document a{color:#176e43}.privacy-actions{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:2rem}.privacy-footer{text-align:center;padding:1.5rem;color:#65786b;border-top:1px solid #dce9df}
.account-privacy-card p{color:var(--muted-fg);font-size:.88rem;margin:.35rem 0 1rem}.account-delete-button{margin-top:.65rem!important;border-color:#dc2626!important;color:#b91c1c!important}.account-delete-button:hover{background:#fef2f2!important}.account-delete-modal{max-width:500px}.account-delete-warning{display:flex;gap:.85rem;padding:1rem;border:1px solid #fecaca;border-radius:1rem;background:#fff1f2;color:#991b1b}.account-delete-warning>span{display:grid;place-items:center;flex:0 0 2rem;height:2rem;border-radius:50%;background:#dc2626;color:#fff;font-weight:800}.account-delete-warning p{margin:.25rem 0 0;font-size:.86rem;line-height:1.5}.account-delete-input{width:100%;padding:.85rem 1rem;border:2px solid #fecaca;border-radius:.75rem;font-weight:800;letter-spacing:.08em}.account-delete-input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}.account-delete-confirm{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important}.account-delete-confirm:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:640px){.privacy-document{padding-top:2rem}.privacy-header{padding:.8rem 1rem}.privacy-actions>*{width:100%;text-align:center}}

/* Demo product expansion: dashboard, community, administration and landing */
.landing-menu-toggle{display:none;width:2.55rem;height:2.55rem;border:0;border-radius:50%;background:#132D1F;color:#fff;font-size:1.15rem;cursor:pointer}
.landing-mobile-menu{display:none}
.landing-module-detail-section{padding-top:5.75rem;padding-bottom:5.75rem}
.landing-module-detail-section .landing-section-head{align-items:flex-end;margin-bottom:2.25rem}
.landing-module-detail-section .landing-section-head>div{max-width:670px}
.landing-module-detail-section .landing-section-head>p{max-width:390px;margin:0;font-size:.98rem;line-height:1.55;text-align:right}
.landing-module-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.landing-module-detail-card{min-width:0;min-height:310px;padding:1.4rem;border:1px solid rgba(42,93,66,.13);border-radius:1.25rem;box-shadow:0 18px 46px rgba(16,37,26,.07);display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.landing-module-detail-card:hover{transform:translateY(-4px);border-color:rgba(62,144,100,.28);box-shadow:0 24px 58px rgba(16,37,26,.12)}
.landing-module-detail-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:start}
.landing-module-detail-top>span{width:3.25rem;height:3.25rem;display:grid;place-items:center;border-radius:1rem;background:#E9F5EF;color:#2B6446;font-size:1.4rem;line-height:1;flex-shrink:0}
.landing-module-detail-card h3{font-size:1.22rem;line-height:1.2;margin:.15rem 0 .45rem}
.landing-module-detail-card p{font-size:.91rem;line-height:1.5;margin:0;color:#536A5E}
.landing-detail-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.2rem 0}
.landing-detail-tags span{display:inline-flex;align-items:center;min-height:1.8rem;padding:.32rem .62rem;border:1px solid rgba(62,144,100,.16);border-radius:999px;background:#EDF7F2;color:#2C6647;font-size:.72rem;font-weight:800;line-height:1.15;white-space:normal}
.landing-module-detail-card>small{display:block;margin-top:auto;padding-top:1rem;border-top:1px solid rgba(42,93,66,.1);color:#5E796B;font-size:.78rem;line-height:1.5}
.landing-product-showcase{width:min(1120px,calc(100vw - 2rem));margin:1rem auto 5rem;padding:3.5rem;border-radius:2rem;background:linear-gradient(135deg,#132D1F,#2B6546);color:#fff;display:grid;grid-template-columns:minmax(0,.85fr) minmax(480px,1.15fr);gap:3rem;align-items:center;overflow:hidden}
.landing-showcase-copy h2,.landing-stories h2{font-size:clamp(2.2rem,4vw,4.1rem);line-height:1;margin:.35rem 0 1rem}.landing-showcase-copy>p{color:rgba(255,255,255,.72);font-size:1.05rem;line-height:1.65}.landing-showcase-copy ul{list-style:none;padding:0;margin:1.35rem 0 1.75rem;display:grid;gap:.7rem}.landing-showcase-copy li{display:flex;gap:.6rem;align-items:center}.landing-showcase-copy li span{width:1.45rem;height:1.45rem;border-radius:50%;display:grid;place-items:center;background:#D9EDBD;color:#315027;font-size:.75rem;font-weight:900}.landing-showcase-copy .landing-section-label{background:rgba(255,255,255,.12);color:#fff}
.landing-app-preview{position:relative}.preview-window{min-height:390px;background:#F7FBF9;border:8px solid rgba(255,255,255,.16);border-radius:1.5rem;display:grid;grid-template-columns:66px 1fr;color:#132D1F;box-shadow:0 30px 80px rgba(0,0,0,.3);overflow:hidden;transform:rotate(1.5deg)}.preview-sidebar{background:#D1EBDD;display:flex;flex-direction:column;align-items:center;gap:1.3rem;padding:1.25rem .8rem}.preview-sidebar b{width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;background:#3E9064;color:#fff}.preview-sidebar span{width:1.7rem;height:.45rem;border-radius:99px;background:#85C9A5}.preview-content{padding:1.35rem}.preview-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.preview-top i{width:2rem;height:2rem;border-radius:50%;background:#D9EDBD}.preview-pets{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.preview-pets article{background:#fff;border:1px solid #C6E7D5;border-radius:1rem;overflow:hidden}.preview-pets article:first-child{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}.preview-pets img{width:100%;height:125px;object-fit:cover}.preview-pets article:first-child img{height:155px}.preview-pets article div{padding:.75rem}.preview-pets small{display:block;color:#5D7568;margin-top:.2rem}.preview-float-card{position:absolute;right:-1rem;bottom:-1.2rem;padding:.9rem 1.1rem;border-radius:1rem;background:#EFF8E5;color:#315027;display:flex;gap:.7rem;align-items:center;box-shadow:0 18px 50px rgba(0,0,0,.24)}.preview-float-card>span{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:#78A251;color:#fff}.preview-float-card small{display:block}
.landing-audiences{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.landing-audiences article{padding:1.45rem;border:1px solid rgba(42,93,66,.13);border-radius:1.25rem;background:#FBFDFC;box-shadow:0 18px 46px rgba(16,37,26,.07)}.landing-audiences article>span{font-size:1.75rem}.landing-audiences h3{font-size:1.2rem;margin:1rem 0 .5rem}.landing-audiences p{font-size:.95rem}.landing-audiences small{display:block;margin-top:1rem;color:#3E9064;font-weight:900}
.landing-stories{width:min(1120px,calc(100vw - 2rem));margin:0 auto;padding:4rem 0}.landing-story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.landing-story-grid article{padding:1.5rem;border-radius:1.25rem;background:#DBEFE4;border:1px solid #BDE3CF}.story-quote{font-family:serif;font-size:3rem;height:2.2rem;color:#3E9064}.landing-story-grid article>p{font-size:1.05rem;line-height:1.65}.landing-story-grid footer{display:flex;gap:.75rem;align-items:center;margin-top:1.25rem}.landing-story-grid footer>span{width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;background:#132D1F;color:#fff;font-weight:900}.landing-story-grid small{display:block;color:#5D7568}
.landing-faq{max-width:900px}.faq-list{display:grid;gap:.75rem}.faq-list article{border:1px solid #C6E7D5;border-radius:1rem;background:#FBFDFC;overflow:hidden}.faq-list button{width:100%;border:0;background:transparent;padding:1.2rem 1.35rem;display:flex;justify-content:space-between;gap:1rem;text-align:left;color:#132D1F;font:inherit;cursor:pointer}.faq-list button span{font-size:1.35rem;color:#3E9064}.faq-list p{padding:0 1.35rem 1.25rem;font-size:.98rem}.faq-open{box-shadow:0 15px 40px rgba(24,55,38,.08)}
.landing-footer{width:min(1120px,calc(100vw - 2rem));margin:3.5rem auto 0;padding:2.5rem 0 1.5rem;border-top:1px solid #C6E7D5;display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:2rem}.landing-footer>div:not(.landing-footer-brand){display:flex;flex-direction:column;gap:.55rem}.landing-footer a,.landing-footer button{border:0;background:transparent;padding:0;text-align:left;color:#5D7568;text-decoration:none;font:inherit;cursor:pointer}.landing-footer a:hover,.landing-footer button:hover{color:#3E9064}.landing-footer-brand{display:flex;gap:.75rem}.landing-footer-brand>span{width:2.7rem;height:2.7rem;border-radius:50%;display:grid;place-items:center;background:#3E9064;color:#fff}.landing-footer-brand small,.landing-footer>div small{display:block;color:#5D7568;margin-top:.25rem}.landing-footer>p{grid-column:1/-1;color:#6B8979;font-size:.82rem;padding-top:1rem;border-top:1px solid #D3EADE}

.demo-dashboard,.community-page,.admin-page{background:linear-gradient(180deg,#F7FBF9,#E5F4EC);color:var(--fg)}.demo-page-hero{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;max-width:1180px;margin:0 auto 1.25rem}.demo-page-hero h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1;margin:.25rem 0 .4rem}.demo-page-hero p{color:var(--muted-fg);max-width:680px}.demo-eyebrow{color:#3E9064;text-transform:uppercase;letter-spacing:.08em;font-weight:900;font-size:.72rem}.demo-state-pill{background:#D4ECDF;border:1px solid #ABDBC1;color:#2E6A4A;border-radius:99px;padding:.55rem .8rem;font-size:.78rem;font-weight:900;white-space:nowrap}
.demo-kpi-grid{max-width:1180px;margin:0 auto 1.25rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.demo-kpi-grid article{border:1px solid var(--border);background:var(--card);border-radius:1.1rem;padding:1.15rem;box-shadow:var(--shadow);position:relative}.demo-kpi-grid article>span{width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:.75rem;background:#E9F5EF;color:#3E9064}.demo-kpi-grid strong{display:block;font-size:1.8rem;margin:.75rem 0 .1rem}.demo-kpi-grid small,.demo-kpi-grid em{display:block;color:var(--muted-fg);font-style:normal}.demo-kpi-grid em{font-size:.72rem;margin-top:.3rem;color:#70884D}
.demo-tabs{max-width:1180px;margin:0 auto 1.25rem;display:flex;gap:.35rem;border-bottom:1px solid var(--border);overflow-x:auto}.demo-tabs button{border:0;background:transparent;padding:.85rem 1rem;font:inherit;font-weight:800;color:var(--muted-fg);white-space:nowrap;cursor:pointer;border-bottom:3px solid transparent}.demo-tabs .demo-tab--active{color:#3E9064;border-bottom-color:#3E9064}
.demo-panel{max-width:1180px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:1.15rem;padding:1.25rem;box-shadow:var(--shadow)}.demo-panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.demo-panel-head h3{font-size:1.2rem}.demo-panel-head p{color:var(--muted-fg);font-size:.85rem;margin-top:.2rem}
.activity-timeline{display:grid}.activity-timeline article{display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border)}.activity-timeline article:last-child{border-bottom:0}.activity-icon{width:2.5rem;height:2.5rem;border-radius:.8rem;display:grid;place-items:center;background:#E9F5EF;color:#3E9064;font-weight:900}.activity-timeline small{display:block;color:var(--muted-fg);margin-top:.2rem}.status-pill{display:inline-flex;width:max-content;border-radius:99px;padding:.3rem .6rem;background:#DBF0E5;color:#387554;font-size:.72rem;font-weight:900}.status-aceptada,.status-resuelta{background:#E7F5D9;color:#4B682F}.status-enviada,.status-en-revision{background:#E4F3EB;color:#2F6F4D}
.demo-card-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.demo-content-card{background:var(--card);border:1px solid var(--border);border-radius:1.1rem;padding:1.15rem;box-shadow:var(--shadow)}.demo-card-top{display:flex;justify-content:space-between;align-items:center}.demo-content-card h3{margin:1rem 0 .5rem}.demo-content-card>p{color:var(--muted-fg);line-height:1.5}.demo-content-card dl{display:grid;gap:.5rem;margin-top:1rem}.demo-content-card dl div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--border);padding-top:.5rem}.demo-content-card dt{color:var(--muted-fg);font-size:.8rem}.demo-content-card dd{text-align:right;font-size:.8rem;font-weight:800}.demo-favorite-card{padding:0;overflow:hidden}.demo-favorite-card>img{width:100%;height:180px;object-fit:cover}.demo-favorite-card>div{padding:0 1rem}.demo-favorite-card>button{margin:1rem}.preferences-panel{max-width:760px}.pref-control{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border)}.pref-control span small{display:block;color:var(--muted-fg);margin-top:.25rem}.pref-control input{width:2.6rem;height:1.35rem;accent-color:#3E9064}.preferences-panel>.btn{margin-top:1.25rem}.inline-success{display:inline-flex;margin:.75rem 0 0;color:#56743B;font-size:.82rem;font-weight:900}
.adoption-detail-actions{gap:.65rem}.adoption-request-sheet,.canil-contact-sheet{width:min(560px,calc(100vw - 2rem))}.request-intro{display:flex;gap:.8rem;align-items:center;padding:1rem;border-radius:1rem;background:#E9F5EF;margin-bottom:1rem}.request-intro>span{font-size:2rem}.request-intro p{font-size:.82rem;color:var(--muted-fg);margin-top:.2rem}.request-consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.85rem;margin:1rem 0}.request-consent input{margin-top:.2rem}.demo-toast{position:fixed;right:1.5rem;bottom:1.5rem;z-index:300;background:#263C1D;color:#fff;border-radius:1rem;padding:1rem 1.15rem;display:flex;gap:.75rem;align-items:center;box-shadow:0 22px 60px rgba(0,0,0,.3)}.demo-toast>span{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:#8DBB63}.demo-toast small{display:block;color:rgba(255,255,255,.72);margin-top:.2rem}
.auth-recovery-box{margin:0 0 1rem;padding:.85rem;border:1px solid var(--border);border-radius:.9rem;background:var(--secondary-bg)}.auth-recovery-box p{font-size:.78rem;color:var(--muted-fg);margin:.2rem 0 .65rem}.auth-recovery-box>div{display:flex;gap:.4rem}.auth-recovery-box input{flex:1;min-width:0}.auth-recovery-box button{border:0;border-radius:.6rem;background:#132D1F;color:#fff;padding:0 .8rem;font-weight:800}.auth-recovery-box small{display:block;color:#56743B;margin-top:.55rem;font-weight:800}.profile-edit-sheet{width:min(520px,calc(100vw - 2rem))}
.sighting-history{margin-top:1rem}.sighting-timeline{display:grid}.sighting-timeline article{display:flex;gap:.8rem;padding:.85rem 0;border-top:1px solid var(--border)}.sighting-timeline article>span{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:#E9F5EF;color:#3E9064}.sighting-timeline p{margin:.25rem 0;color:var(--muted-fg)}.sighting-timeline small{color:var(--muted-fg)}.empty-copy{color:var(--muted-fg);font-size:.9rem}.canil-source-link,.report-info-btn{text-align:center!important}.report-info-btn{color:#A33B2B!important}

.community-layout{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1.25rem}.community-feed{display:grid;gap:1rem}.community-post{background:var(--card);border:1px solid var(--border);border-radius:1.15rem;padding:1.15rem;box-shadow:var(--shadow)}.community-post>header{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center}.community-avatar{width:2.7rem;height:2.7rem;border-radius:50%;display:grid;place-items:center;background:#3E9064;color:#fff;font-weight:900}.community-post header small{display:block;color:var(--muted-fg);font-size:.74rem}.community-post>p{line-height:1.55;margin:1rem 0}.community-post-image{width:100%;max-height:430px;object-fit:cover;border-radius:1rem}.community-actions{display:flex;gap:.35rem;padding-top:.75rem}.community-actions button{border:0;background:transparent;color:var(--muted-fg);padding:.5rem .65rem;border-radius:.65rem;font:inherit;font-weight:800;cursor:pointer}.community-actions button:hover{background:var(--secondary-bg)}.community-actions .liked{color:#B73535}.community-actions .report-action{margin-left:auto}.community-comments{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.community-comments>p{font-size:.86rem;margin:.55rem 0}.community-comments>p small{color:var(--muted-fg);margin-left:.35rem}.community-comments>div{display:flex;gap:.5rem;margin-top:.75rem}.community-comments input{flex:1}.community-sidebar{display:grid;gap:1rem;align-content:start}.community-sidebar .demo-panel{margin:0}.org-mini-card{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--border)}.org-mini-card>span{width:2.3rem;height:2.3rem;border-radius:.75rem;display:grid;place-items:center;background:#E9F5EF}.org-mini-card small{display:block;color:var(--muted-fg)}.org-mini-card button{width:2rem;height:2rem;border:1px solid var(--border);border-radius:50%;background:var(--card);cursor:pointer}.safety-card>span{font-size:2rem}.safety-card p{color:var(--muted-fg);font-size:.85rem;line-height:1.5;margin-top:.5rem}.community-composer{margin-bottom:1rem}.community-composer textarea{width:100%;margin:.75rem 0}.community-composer>div{display:flex;justify-content:flex-end;gap:.5rem}
.map-search-overlay{display:flex;gap:.5rem}.map-search-zone-btn{border:0;border-radius:.75rem;background:#132D1F;color:#fff;padding:0 .9rem;font:inherit;font-size:.78rem;font-weight:900;white-space:nowrap;cursor:pointer}.map-advanced-filters{display:grid;gap:.55rem;padding:.75rem;border-bottom:1px solid var(--border)}.map-advanced-filters select{width:100%;font-size:.78rem}.map-advanced-filters label{display:flex;gap:.45rem;align-items:center;font-size:.78rem;color:var(--muted-fg)}.map-advanced-filters>span{font-size:.72rem;color:#617D42;font-weight:800}.map-user-location{position:absolute;z-index:7;left:51%;top:52%;display:flex;align-items:center;gap:.35rem;color:#155E75;font-size:.7rem;font-weight:900;transform:translate(-50%,-50%)}.map-user-location i{width:1rem;height:1rem;border:3px solid #fff;border-radius:50%;background:#0EA5E9;box-shadow:0 0 0 8px rgba(14,165,233,.18)}.map-user-location b{background:#fff;padding:.25rem .4rem;border-radius:.35rem;box-shadow:var(--shadow)}
.admin-table{display:grid}.admin-row{display:grid;grid-template-columns:minmax(260px,1.5fr) .55fr .7fr .7fr 1fr;gap:1rem;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--border);font-size:.84rem}.admin-row>span:first-child small{display:block;color:var(--muted-fg);margin-top:.2rem}.admin-row--head{color:var(--muted-fg);font-weight:900;font-size:.74rem;text-transform:uppercase}.admin-actions{display:flex;gap:.35rem}.admin-actions button{border:1px solid var(--border);background:var(--card);border-radius:.55rem;padding:.4rem .55rem;cursor:pointer}.priority-alta{color:#B13D31;font-weight:900}.priority-media{color:#367E58;font-weight:900}.admin-user-row{grid-template-columns:minmax(250px,1fr) .5fr .7fr .8fr}.admin-check{display:flex;gap:.4rem;align-items:center}.admin-metrics-layout{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.5fr .8fr;gap:1rem}.admin-metrics-layout .demo-panel{margin:0}.chart-card>p{color:var(--muted-fg)}.bar-chart{height:260px;display:flex;gap:1rem;align-items:end;border-bottom:1px solid var(--border);padding:1rem 0 0;margin-top:1rem}.bar-chart>div{flex:1;height:100%;display:flex;align-items:end}.bar-chart span{display:block;width:100%;border-radius:.65rem .65rem 0 0;background:linear-gradient(#64BC8D,#3E9064)}.chart-labels{display:flex;justify-content:space-around;color:var(--muted-fg);font-size:.74rem;padding-top:.5rem}.impact-list>div{display:flex;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border)}.impact-list>div strong{font-size:1.25rem;color:#3E9064}

html[data-theme="dark"] .demo-dashboard,html[data-theme="dark"] .community-page,html[data-theme="dark"] .admin-page{background:linear-gradient(180deg,#0E2016,#173326)}html[data-theme="dark"] .demo-state-pill,html[data-theme="dark"] .activity-icon,html[data-theme="dark"] .request-intro,html[data-theme="dark"] .org-mini-card>span{background:#1E4530;color:#BEDCC8;border-color:rgba(165,216,189,.2)}

@media(max-width:1050px){
  .landing-product-showcase{grid-template-columns:1fr;padding:2.5rem}.landing-app-preview{max-width:680px}.landing-audiences{grid-template-columns:repeat(2,1fr)}
  .landing-module-details{grid-template-columns:repeat(2,minmax(0,1fr))}
  .demo-card-grid{grid-template-columns:repeat(2,1fr)}.community-layout{grid-template-columns:1fr}.community-sidebar{grid-template-columns:repeat(2,1fr)}.admin-row{grid-template-columns:1.4fr .6fr .7fr 1fr}.admin-row>span:nth-child(4){display:none}
}
@media(max-width:768px){
  .landing-menu-toggle{display:grid;place-items:center}.landing-nav{grid-template-columns:auto 1fr}.landing-nav>nav:not(.landing-mobile-menu){display:none}.landing-nav-actions{justify-self:end}.landing-mobile-menu{position:absolute;display:grid!important;left:0;right:0;top:calc(100% + .6rem);padding:.65rem;background:#F7FBF9;border:1px solid #C6E7D5;border-radius:1.25rem;box-shadow:0 20px 60px rgba(17,39,27,.2)}.landing-mobile-menu a,.landing-mobile-menu button{display:block;border:0;background:transparent;text-align:left;padding:.85rem 1rem;color:#132D1F;font:inherit;font-weight:800;text-decoration:none}.landing-mobile-menu button{background:#132D1F;color:#fff;border-radius:.75rem}
  .landing-product-showcase{padding:1.5rem;margin-bottom:2.5rem}.preview-window{min-height:300px;grid-template-columns:48px 1fr}.preview-content{padding:.8rem}.preview-pets img{height:90px}.preview-pets article:first-child img{height:110px}.preview-float-card{right:.4rem}.landing-audiences,.landing-story-grid{grid-template-columns:1fr}.landing-footer{grid-template-columns:1fr 1fr}.landing-footer-brand{grid-column:1/-1}
  .landing-module-detail-section{padding-top:3.75rem;padding-bottom:3.75rem}.landing-module-detail-section .landing-section-head{display:block;margin-bottom:1.5rem}.landing-module-detail-section .landing-section-head>p{text-align:left;margin-top:1rem}.landing-module-details{grid-template-columns:1fr}.landing-module-detail-card{min-height:0}
  .demo-page-hero{display:block}.demo-page-hero .btn,.demo-state-pill{display:inline-flex;margin-top:1rem}.demo-kpi-grid{grid-template-columns:repeat(2,1fr)}.demo-card-grid{grid-template-columns:1fr}.community-sidebar{grid-template-columns:1fr}.admin-metrics-layout{grid-template-columns:1fr}.admin-row,.admin-user-row{grid-template-columns:1fr 1fr}.admin-row--head{display:none}.admin-row>span:first-child{grid-column:1/-1}.admin-row>span:nth-child(4){display:block}.adoption-detail-actions{flex-wrap:wrap}.adoption-detail-actions .flex-1{flex-basis:100%}
  .mobile-nav{overflow-x:auto;justify-content:flex-start}.mob-nav-btn{min-width:4.5rem;flex:0 0 auto}
}
@media(max-width:480px){
  .landing-footer{grid-template-columns:1fr}.landing-footer-brand{grid-column:auto}.preview-pets{grid-template-columns:1fr}.preview-pets article:first-child{grid-column:auto;display:block}.preview-pets article:nth-child(3){display:none}.demo-kpi-grid{grid-template-columns:1fr 1fr}.demo-kpi-grid article{padding:.85rem}.community-actions{overflow-x:auto}.community-actions button{white-space:nowrap}.admin-row,.admin-user-row{grid-template-columns:1fr}.admin-row>*{grid-column:1!important}.demo-toast{left:1rem;right:1rem;bottom:5.5rem}
}

/* Final palette lock - must stay at EOF */
:root{
  --pet-tan:#BEDCC8;
  --pet-chestnut:#237A4D;
  --pet-coffee:#173326;
  --pet-bark:#245C3C;
  --pet-cream:#F2F9F5;
  --pet-sand:#CFEBDC;
  --bg:#F2F9F5;
  --fg:#173326;
  --card:#F5FBF8;
  --primary:#173326;
  --primary-fg:#F2F9F5;
  --secondary-bg:#CFEBDC;
  --muted:#C4E6D4;
  --muted-fg:#417B5C;
  --border:rgba(24,55,38,.16);
  --accent:#237A4D;
  --accent-soft:#CFEBDC;
  --green:#367D57;
  --blue:#3B8B60;
  --red:#8F2F18;
}
html,body{background:var(--bg)!important;color:var(--fg)!important}
.app-shell,.content-area,.adoptions-page,.profile-wrap,.sub-page,.detail-page,.chats-layout,.map-layout,.caniles-page,.landing-page,.auth-screen--modern{
  background:linear-gradient(180deg,#F2F9F5 0%,#DBEFE4 48%,#C4E6D4 100%)!important;
}
.sidebar,.top-header,.mobile-nav,.notif-panel,.filter-panel,.pet-card,.stat-card,.profile-section-card,.pub-card,.reaction-item,.modal-sheet,.nearby-panel,.chat-list-panel,.chat-convo-header,.contact-card,.chip,.canil-card,.caniles-side-panel,.canil-detail-drawer,.map-detail-panel,.lost-stat,.auth-card,.landing-stats article,.landing-modules article,.landing-steps article{
  background:rgba(245,251,248,.96)!important;
  border-color:var(--border)!important;
  color:var(--fg)!important;
}
.sidebar-brand,.adoptions-header,.chat-list-header,.detail-header,.modal-header,.notif-header,.profile-tabs,.insta-profile-tabs{
  background:linear-gradient(135deg,#F2F9F5,#CFEBDC)!important;
  border-color:var(--border)!important;
}
.brand-icon,.avatar-btn,.nav-item--active,.filter-chip--active,.btn-primary,.fab-main,.auth-tabs .auth-tab--active,.landing-btn--dark,.profile-avatar,.insta-avatar-placeholder{
  background:linear-gradient(135deg,var(--pet-coffee),var(--pet-bark))!important;
  color:var(--primary-fg)!important;
  border-color:transparent!important;
}
input,select,textarea,.chat-input,.btn-outline,.map-ctrl-btn,.landing-btn--outline{
  background:#F5FBF8!important;
  border-color:var(--border)!important;
  color:var(--fg)!important;
}
input:focus,select:focus,textarea:focus,.chat-input:focus{
  border-color:var(--pet-chestnut)!important;
  box-shadow:0 0 0 4px rgba(76,177,123,.16)!important;
}
.link-btn,.mob-nav-btn--active,.hashtag,.dist-tag,.landing-section-label,.auth-form-kicker,.hashtag-item-detail span{
  color:var(--pet-chestnut)!important;
}
.landing-section-label,.auth-form-kicker,.auth-demo-box,.hint-box,.warning-card,.adoption-upload-hero,.report-upload-hero,.video-selected-card,.profile-post-extra div,.profile-post-metrics span,.profile-social-link,.settings-logout,.map-legend,.reward-badge{
  background:#CFEBDC!important;
  border-color:rgba(76,177,123,.26)!important;
  color:var(--pet-coffee)!important;
}
.hint-box code{background:#BEDCC8!important;color:var(--pet-coffee)!important}
.count-label,.form-subtitle,.pet-card-body p,.pet-card-loc,.detail-breed,.detail-meta,.detail-section p,.profile-location,.profile-bio,.stat-label,.reaction-info p,.reaction-info span,.notif-item p,.notif-item small,.caniles-subtitle,.canil-detail-hero small,.landing-section p,.landing-modules p,.landing-steps p{
  color:var(--muted-fg)!important;
}
.sidebar .nav-item:hover,.mob-nav-btn:hover,.notif-item:hover,.nearby-item:hover,.chat-item:hover,.filter-chip:hover,.icon-btn:hover{
  background:rgba(165,216,189,.45)!important;
  color:var(--pet-coffee)!important;
}
.adoptions-title-row h2,.header-title,.detail-content h2,.profile-name h2,.landing-section h2,.landing-final h2,.auth-card h2,.caniles-header h2{
  color:var(--pet-coffee)!important;
}
.badge,.notif-badge,.nav-badge,.lost-badge--lost,.fab-btn--red,.map-pin--perdida .pin-dot,.legend-dot--lost{
  background:#8F2F18!important;
  color:#F2F9F5!important;
}
.fab-btn--blue,.fab-btn--green,.suggestion-follow-btn:not(.suggestion-follow-btn--active),.btn-follow:not(.btn-follow--active),.canil-status--open,.adoption-badge,.map-pin--adopcion .pin-dot,.legend-dot--adoption{
  background:var(--pet-chestnut)!important;
  color:#F2F9F5!important;
  border-color:#BEDCC8!important;
}
.pet-card--premium,.lost-card--lost,.lost-card--found{
  border-color:rgba(76,177,123,.30)!important;
  box-shadow:0 16px 38px rgba(76,177,123,.18)!important;
}
.pet-card--premium::before,.filter-chip--premium.filter-chip--active,.reward-filter.filter-chip--active,.premium-badge,.hashtag-featured span,.online-dot{
  background:linear-gradient(135deg,var(--pet-chestnut),var(--pet-bark))!important;
  border-color:rgba(165,216,189,.72)!important;
  color:#F2F9F5!important;
}
.filter-chip--found,.filter-chip--adoption,.filter-chip--premium,.gender-badge--male,.gender-badge--female,.reaction-badge--super,.reaction-badge--like,.canil-status,.pet-type-badge{
  background:#CFEBDC!important;
  border-color:rgba(76,177,123,.26)!important;
  color:var(--pet-bark)!important;
}
.like-btn,.premium-badge,.canil-icon,.nearby-fallback,.upload-hero-icon{
  background:#BEDCC8!important;
  color:var(--pet-coffee)!important;
}
.pin-dot,.map-pin--canil .pin-dot,.pin-tooltip,.map-pin--encontrada .pin-dot,.legend-dot--found{
  background:var(--pet-coffee)!important;
  color:#F2F9F5!important;
}
.map-bg,.map-bg--hybrid{
  background-color:#C4E6D4!important;
  background-image:linear-gradient(rgba(41,96,67,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(41,96,67,.10) 1px,transparent 1px),radial-gradient(circle at 25% 24%,rgba(165,216,189,.34),transparent 12rem),radial-gradient(circle at 72% 62%,rgba(76,177,123,.16),transparent 14rem)!important;
}
.map-park,.map-water{
  background:rgba(165,216,189,.42)!important;
  border-color:rgba(76,177,123,.22)!important;
  color:var(--pet-bark)!important;
}
.road--highway,.road--main{stroke:#F2F9F5!important}
.road--street{stroke:rgba(41,96,67,.22)!important}
.tiktok-container{background:linear-gradient(135deg,#173326,#245C3C)!important}
.discover-feed-tabs,.discover-suggestions-head,.discover-suggestion-card,.suggestion-profile-btn,.tiktok-info-left,.controls-hint,.tiktok-nav-btn,.play-btn,.action-btn,.tiktok-empty-feed{
  background:rgba(24,55,38,.58)!important;
  border-color:rgba(165,216,189,.25)!important;
  color:#F2F9F5!important;
}
.discover-feed-tabs .discover-feed-tab--active{background:#BEDCC8!important;color:var(--pet-coffee)!important}
.tiktok-gradient{
  background:linear-gradient(90deg,rgba(24,55,38,.64) 0%,rgba(24,55,38,.12) 44%,rgba(24,55,38,.50) 100%),linear-gradient(to top,rgba(24,55,38,.90) 0%,rgba(24,55,38,.26) 56%,transparent 78%)!important;
}
.landing-nav{background:rgba(242,249,245,.82)!important;border-color:rgba(24,55,38,.12)!important}
.landing-brand span,.landing-final,.auth-demo-box>span{
  background:linear-gradient(135deg,var(--pet-coffee),var(--pet-bark))!important;
  color:#F2F9F5!important;
}
.landing-hero-shade{
  background:linear-gradient(90deg,rgba(24,55,38,.86) 0%,rgba(24,55,38,.52) 44%,rgba(24,55,38,.20) 100%),linear-gradient(to top,rgba(24,55,38,.76),transparent 58%)!important;
}
.auth-showcase .auth-left-overlay{background:linear-gradient(145deg,rgba(24,55,38,.88),rgba(41,96,67,.66) 52%,rgba(76,177,123,.42))!important}
.auth-metrics div,.feature-item,.landing-hero-card,.landing-kicker,.landing-btn--ghost{
  background:rgba(165,216,189,.18)!important;
  border-color:rgba(165,216,189,.30)!important;
}
.insta-avatar-ring{background:linear-gradient(135deg,var(--pet-coffee),var(--pet-bark),var(--pet-chestnut))!important}
html[data-theme="dark"]{
  --bg:#0E2016;
  --fg:#F2F9F5;
  --card:#132C1F;
  --primary:#BEDCC8;
  --primary-fg:#173326;
  --secondary-bg:#173326;
  --muted:#1E4530;
  --muted-fg:#92D0AF;
  --border:rgba(165,216,189,.18);
  --accent:#BEDCC8;
  --accent-soft:#1E4530;
}
html[data-theme="dark"] .app-shell,html[data-theme="dark"] .content-area,html[data-theme="dark"] .adoptions-page,html[data-theme="dark"] .profile-wrap,html[data-theme="dark"] .sub-page,html[data-theme="dark"] .detail-page,html[data-theme="dark"] .chats-layout,html[data-theme="dark"] .map-layout,html[data-theme="dark"] .caniles-page{
  background:linear-gradient(180deg,#0E2016 0%,#11281C 52%,#173326 100%)!important;
}
html[data-theme="dark"] .sidebar,html[data-theme="dark"] .top-header,html[data-theme="dark"] .mobile-nav,html[data-theme="dark"] .notif-panel,html[data-theme="dark"] .filter-panel,html[data-theme="dark"] .pet-card,html[data-theme="dark"] .stat-card,html[data-theme="dark"] .profile-section-card,html[data-theme="dark"] .pub-card,html[data-theme="dark"] .reaction-item,html[data-theme="dark"] .modal-sheet,html[data-theme="dark"] .nearby-panel,html[data-theme="dark"] .chat-list-panel,html[data-theme="dark"] .chat-convo-header,html[data-theme="dark"] .contact-card,html[data-theme="dark"] .chip,html[data-theme="dark"] .canil-card,html[data-theme="dark"] .caniles-side-panel,html[data-theme="dark"] .canil-detail-drawer,html[data-theme="dark"] .map-detail-panel,html[data-theme="dark"] .lost-stat,html[data-theme="dark"] .auth-card{
  background:rgba(19,44,31,.94)!important;
  border-color:rgba(165,216,189,.18)!important;
  color:#F2F9F5!important;
}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .chat-input,html[data-theme="dark"] .btn-outline,html[data-theme="dark"] .map-ctrl-btn{
  background:#132C1F!important;
  color:#F2F9F5!important;
  border-color:rgba(165,216,189,.18)!important;
}
html[data-theme="dark"] .adoptions-title-row h2,html[data-theme="dark"] .header-title,html[data-theme="dark"] .detail-content h2,html[data-theme="dark"] .profile-name h2,html[data-theme="dark"] .landing-section h2,html[data-theme="dark"] .landing-final h2,html[data-theme="dark"] .auth-card h2,html[data-theme="dark"] .caniles-header h2{
  color:#F2F9F5!important;
}

/* MiMascota palette refresh: Tan / Golden Chestnut / Dark Coffee / Brown Bark */
:root{
  --pet-tan:#BEDCC8;
  --pet-chestnut:#237A4D;
  --pet-coffee:#173326;
  --pet-bark:#245C3C;
  --pet-cream:#F2F9F5;
  --pet-sand:#CFEBDC;
  --pet-foam:#E6F4ED;
  --pet-line:rgba(24,55,38,.16);
  --bg:#F2F9F5;
  --fg:#173326;
  --card:#F5FBF8;
  --primary:#173326;
  --primary-fg:#F2F9F5;
  --secondary-bg:#CFEBDC;
  --muted:#C4E6D4;
  --muted-fg:#417B5C;
  --border:rgba(24,55,38,.16);
  --accent:#237A4D;
  --accent-soft:#CFEBDC;
  --green:#367D57;
  --blue:#3B8B60;
  --red:#8F2F18;
  --shadow:0 10px 30px rgba(24,55,38,.10);
  --shadow-lg:0 24px 70px rgba(24,55,38,.22);
}

html,body{
  background:var(--bg)!important;
  color:var(--fg);
}

.app-shell,
.content-area,
.adoptions-page,
.profile-wrap,
.sub-page,
.detail-page,
.chats-layout,
.map-layout,
.caniles-page{
  background:
    radial-gradient(circle at 8% 8%,rgba(165,216,189,.32),transparent 28rem),
    radial-gradient(circle at 92% 12%,rgba(76,177,123,.12),transparent 24rem),
    linear-gradient(180deg,#F2F9F5 0%,#DBEFE4 48%,#C4E6D4 100%)!important;
}

.sidebar,
.top-header,
.mobile-nav,
.notif-panel,
.filter-panel,
.pet-card,
.stat-card,
.profile-section-card,
.pub-card,
.reaction-item,
.modal-sheet,
.nearby-panel,
.chat-list-panel,
.chat-convo-header,
.contact-card,
.chip,
.canil-card,
.caniles-side-panel,
.canil-detail-drawer,
.map-detail-panel,
.lost-stat,
.auth-card,
.landing-stats article,
.landing-modules article,
.landing-steps article{
  background:rgba(245,251,248,.94)!important;
  border-color:var(--border)!important;
  color:var(--fg);
  box-shadow:var(--shadow);
}

.sidebar-brand,
.adoptions-header,
.chat-list-header,
.detail-header,
.modal-header,
.notif-header,
.profile-tabs,
.insta-profile-tabs{
  background:linear-gradient(135deg,#F2F9F5,#CFEBDC)!important;
  border-color:var(--border)!important;
}

.brand-icon,
.avatar-btn,
.nav-item--active,
.filter-chip--active,
.btn-primary,
.fab-main,
.auth-tabs .auth-tab--active,
.landing-btn--dark,
.profile-avatar,
.insta-avatar-placeholder{
  background:linear-gradient(135deg,var(--pet-coffee),var(--pet-bark))!important;
  color:var(--primary-fg)!important;
  border-color:transparent!important;
  box-shadow:0 14px 34px rgba(24,55,38,.22)!important;
}

.btn-outline,
.filter-chip,
.icon-btn,
.map-ctrl-btn,
.landing-btn--outline{
  border-color:var(--border)!important;
  color:var(--fg)!important;
}

.btn-outline,
.map-ctrl-btn,
.landing-btn--outline,
input,
select,
textarea,
.chat-input{
  background:#F5FBF8!important;
}

input:focus,
select:focus,
textarea:focus,
.chat-input:focus{
  border-color:var(--pet-chestnut)!important;
  box-shadow:0 0 0 4px rgba(76,177,123,.16)!important;
}

.link-btn,
.mob-nav-btn--active,
.hashtag,
.dist-tag,
.landing-section-label,
.auth-form-kicker{
  color:var(--pet-chestnut)!important;
}

.landing-section-label,
.auth-form-kicker,
.auth-demo-box,
.hint-box,
.warning-card,
.adoption-upload-hero,
.report-upload-hero,
.video-selected-card,
.profile-post-extra div,
.profile-post-metrics span{
  background:#CFEBDC!important;
  border-color:rgba(76,177,123,.26)!important;
  color:var(--pet-coffee)!important;
}

.hint-box code{
  background:#BEDCC8!important;
  color:var(--pet-coffee)!important;
}

.count-label,
.form-subtitle,
.pet-card-body p,
.pet-card-loc,
.detail-breed,
.detail-meta,
.detail-section p,
.profile-location,
.profile-bio,
.stat-label,
.reaction-info p,
.reaction-info span,
.notif-item p,
.notif-item small,
.caniles-subtitle,
.canil-detail-hero small,
.landing-section p,
.landing-modules p,
.landing-steps p{
  color:var(--muted-fg)!important;
}

.sidebar .nav-item:hover,
.mob-nav-btn:hover,
.notif-item:hover,
.nearby-item:hover,
.chat-item:hover,
.filter-chip:hover,
.icon-btn:hover{
  background:rgba(165,216,189,.45)!important;
  color:var(--pet-coffee)!important;
}

.adoptions-title-row h2,
.header-title,
.detail-content h2,
.profile-name h2,
.landing-section h2,
.landing-final h2,
.auth-card h2,
.caniles-header h2{
  color:var(--pet-coffee)!important;
}

.like-btn,
.reward-badge,
.premium-badge,
.canil-icon,
.nearby-fallback,
.upload-hero-icon{
  background:#BEDCC8!important;
  color:var(--pet-coffee)!important;
}

.badge,
.notif-badge,
.nav-badge,
.lost-badge--lost,
.fab-btn--red{
  background:#8F2F18!important;
  color:#F2F9F5!important;
}

.fab-btn--blue,
.fab-btn--green,
.suggestion-follow-btn:not(.suggestion-follow-btn--active),
.btn-follow:not(.btn-follow--active){
  background:var(--pet-chestnut)!important;
  color:#F2F9F5!important;
}

.gender-badge--male,
.gender-badge--female,
.reaction-badge--super,
.reaction-badge--like,
.canil-status,
.pet-type-badge{
  background:#CFEBDC!important;
  color:var(--pet-bark)!important;
}

.canil-status--open,
.adoption-badge,
.filter-chip--adoption,
.lost-badge--found,
.map-pin--adopcion .pin-dot,
.legend-dot--adoption{
  background:var(--pet-chestnut)!important;
  color:#F2F9F5!important;
  border-color:#BEDCC8!important;
}

.map-pin--perdida .pin-dot,
.legend-dot--lost{
  background:#8F2F18!important;
}

.map-pin--encontrada .pin-dot,
.legend-dot--found{
  background:#245C3C!important;
}

.pin-dot,
.map-pin--canil .pin-dot,
.pin-tooltip{
  background:var(--pet-coffee)!important;
  color:#F2F9F5!important;
}

.map-bg,
.map-bg--hybrid{
  background-color:#C4E6D4!important;
  background-image:
    linear-gradient(rgba(41,96,67,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(41,96,67,.10) 1px,transparent 1px),
    radial-gradient(circle at 25% 24%,rgba(165,216,189,.34),transparent 12rem),
    radial-gradient(circle at 72% 62%,rgba(76,177,123,.16),transparent 14rem)!important;
}

.map-park,
.map-water{
  background:rgba(165,216,189,.42)!important;
  border-color:rgba(76,177,123,.22)!important;
  color:var(--pet-bark)!important;
}

.road--highway,
.road--main{
  stroke:#F2F9F5!important;
}

.road--street{
  stroke:rgba(41,96,67,.22)!important;
}

.tiktok-container{
  background:linear-gradient(135deg,#173326,#245C3C)!important;
}

.discover-feed-tabs,
.discover-suggestions-head,
.discover-suggestion-card,
.suggestion-profile-btn,
.tiktok-info-left,
.controls-hint,
.tiktok-nav-btn,
.play-btn,
.action-btn,
.tiktok-empty-feed{
  background:rgba(24,55,38,.58)!important;
  border-color:rgba(165,216,189,.25)!important;
  color:#F2F9F5!important;
}

.discover-feed-tabs .discover-feed-tab--active{
  background:#BEDCC8!important;
  color:var(--pet-coffee)!important;
}

.tiktok-gradient{
  background:
    linear-gradient(90deg,rgba(24,55,38,.64) 0%,rgba(24,55,38,.12) 44%,rgba(24,55,38,.50) 100%),
    linear-gradient(to top,rgba(24,55,38,.90) 0%,rgba(24,55,38,.26) 56%,transparent 78%)!important;
}

.landing-page,
.auth-screen--modern{
  background:
    radial-gradient(circle at 74% 18%,rgba(76,177,123,.18),transparent 28%),
    linear-gradient(135deg,#F2F9F5 0%,#CFEBDC 48%,#BEDCC8 100%)!important;
  color:var(--pet-coffee)!important;
}

.landing-nav{
  background:rgba(242,249,245,.82)!important;
  border-color:rgba(24,55,38,.12)!important;
}

.landing-brand span,
.landing-final,
.auth-demo-box>span,
.auth-tabs .auth-tab--active{
  background:linear-gradient(135deg,var(--pet-coffee),var(--pet-bark))!important;
  color:#F2F9F5!important;
}

.landing-hero-shade{
  background:
    linear-gradient(90deg,rgba(24,55,38,.86) 0%,rgba(24,55,38,.52) 44%,rgba(24,55,38,.20) 100%),
    linear-gradient(to top,rgba(24,55,38,.76),transparent 58%)!important;
}

.auth-showcase .auth-left-overlay{
  background:linear-gradient(145deg,rgba(24,55,38,.88),rgba(41,96,67,.66) 52%,rgba(76,177,123,.42))!important;
}

.auth-metrics div,
.feature-item,
.landing-hero-card,
.landing-kicker,
.landing-btn--ghost{
  background:rgba(165,216,189,.18)!important;
  border-color:rgba(165,216,189,.30)!important;
}

.auth-register-summary{
  background:#CFEBDC!important;
  border-color:rgba(76,177,123,.24)!important;
  color:var(--pet-coffee)!important;
}

.auth-register-summary span{
  background:var(--pet-chestnut)!important;
  color:#F2F9F5!important;
}

html[data-theme="dark"]{
  --bg:#0E2016;
  --fg:#F2F9F5;
  --card:#132C1F;
  --primary:#BEDCC8;
  --primary-fg:#173326;
  --secondary-bg:#173326;
  --muted:#1E4530;
  --muted-fg:#92D0AF;
  --border:rgba(165,216,189,.18);
  --accent:#BEDCC8;
  --accent-soft:#1E4530;
}

html[data-theme="dark"] .app-shell,
html[data-theme="dark"] .content-area,
html[data-theme="dark"] .adoptions-page,
html[data-theme="dark"] .profile-wrap,
html[data-theme="dark"] .sub-page,
html[data-theme="dark"] .detail-page,
html[data-theme="dark"] .chats-layout,
html[data-theme="dark"] .map-layout,
html[data-theme="dark"] .caniles-page{
  background:
    radial-gradient(circle at 8% 8%,rgba(76,177,123,.18),transparent 28rem),
    radial-gradient(circle at 92% 12%,rgba(165,216,189,.08),transparent 24rem),
    linear-gradient(180deg,#0E2016 0%,#11281C 52%,#173326 100%)!important;
}

html[data-theme="dark"] .sidebar,
html[data-theme="dark"] .top-header,
html[data-theme="dark"] .mobile-nav,
html[data-theme="dark"] .notif-panel,
html[data-theme="dark"] .filter-panel,
html[data-theme="dark"] .pet-card,
html[data-theme="dark"] .stat-card,
html[data-theme="dark"] .profile-section-card,
html[data-theme="dark"] .pub-card,
html[data-theme="dark"] .reaction-item,
html[data-theme="dark"] .modal-sheet,
html[data-theme="dark"] .nearby-panel,
html[data-theme="dark"] .chat-list-panel,
html[data-theme="dark"] .chat-convo-header,
html[data-theme="dark"] .contact-card,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .canil-card,
html[data-theme="dark"] .caniles-side-panel,
html[data-theme="dark"] .canil-detail-drawer,
html[data-theme="dark"] .map-detail-panel,
html[data-theme="dark"] .lost-stat,
html[data-theme="dark"] .auth-card{
  background:rgba(19,44,31,.94)!important;
  border-color:rgba(165,216,189,.18)!important;
  color:#F2F9F5!important;
}

html[data-theme="dark"] .sidebar-brand,
html[data-theme="dark"] .adoptions-header,
html[data-theme="dark"] .chat-list-header,
html[data-theme="dark"] .detail-header,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .notif-header{
  background:linear-gradient(135deg,#132C1F,#173326)!important;
}

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .chat-input,
html[data-theme="dark"] .btn-outline,
html[data-theme="dark"] .map-ctrl-btn{
  background:#132C1F!important;
  color:#F2F9F5!important;
  border-color:rgba(165,216,189,.18)!important;
}

html[data-theme="dark"] .adoptions-title-row h2,
html[data-theme="dark"] .header-title,
html[data-theme="dark"] .detail-content h2,
html[data-theme="dark"] .profile-name h2,
html[data-theme="dark"] .landing-section h2,
html[data-theme="dark"] .landing-final h2,
html[data-theme="dark"] .auth-card h2,
html[data-theme="dark"] .caniles-header h2{
  color:#F2F9F5!important;
}

.pet-card--premium{
  border-color:var(--pet-chestnut)!important;
  box-shadow:0 16px 42px rgba(76,177,123,.24)!important;
}

.pet-card--premium::before,
.filter-chip--premium.filter-chip--active,
.reward-filter.filter-chip--active,
.premium-badge,
.hashtag-featured span,
.adoption-preview-head label,
.lost-stat--green,
.online-dot{
  background:linear-gradient(135deg,var(--pet-chestnut),var(--pet-bark))!important;
  border-color:rgba(165,216,189,.72)!important;
  color:#F2F9F5!important;
}

.pet-card--premium::before{
  box-shadow:none!important;
}

.filter-chip--found,
.filter-chip--adoption,
.filter-chip--premium{
  border-color:rgba(76,177,123,.38)!important;
  color:var(--pet-bark)!important;
}

.hashtag-item-detail span,
.adoption-preview-head label{
  color:var(--pet-chestnut)!important;
  background:transparent!important;
}

.profile-social-link,
.settings-logout,
.map-legend,
.reward-badge{
  background:#CFEBDC!important;
  border-color:rgba(76,177,123,.26)!important;
  color:var(--pet-coffee)!important;
}

.insta-avatar-ring{
  background:linear-gradient(135deg,var(--pet-coffee),var(--pet-bark),var(--pet-chestnut))!important;
  box-shadow:0 18px 40px rgba(76,177,123,.18)!important;
}

.lost-card--lost,
.lost-card--found{
  border-color:rgba(76,177,123,.30)!important;
}

.lost-card--lost:hover,
.lost-card--found:hover{
  box-shadow:0 16px 38px rgba(76,177,123,.18)!important;
}

html[data-theme="dark"] .premium-badge,
html[data-theme="dark"] .hashtag-featured span,
html[data-theme="dark"] .filter-chip--premium.filter-chip--active,
html[data-theme="dark"] .reward-filter.filter-chip--active{
  background:linear-gradient(135deg,#BEDCC8,#237A4D)!important;
  color:#173326!important;
}

/* Caniles nacionales */
.caniles-page{position:relative}
.caniles-subtitle{color:var(--muted-fg);font-size:.9rem;margin-top:.2rem}
.caniles-toolbar{align-items:center}
.view-switch{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft,#F7FBF9);padding:.2rem;gap:.15rem}
.view-switch button{border:0;background:transparent;color:var(--muted-fg);font-family:inherit;font-weight:800;font-size:.82rem;padding:.5rem .85rem;border-radius:999px;cursor:pointer}
.view-switch .view-switch--active{background:var(--primary);color:var(--primary-fg);box-shadow:var(--shadow)}
.caniles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:1.5rem}
.canil-card{background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:0 8px 22px rgba(31,58,44,.06);cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}
.canil-card:hover,.canil-card--active{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:rgba(88,183,132,.35)}
.canil-card-head{display:flex;gap:.8rem;align-items:center;margin-bottom:.8rem}
.canil-icon{width:3rem;height:3rem;border-radius:1rem;display:grid;place-items:center;background:var(--accent-soft);font-size:.72rem;line-height:1;font-weight:900;letter-spacing:.04em;color:#9A3412;flex-shrink:0}
.canil-icon--large{width:4.2rem;height:4.2rem;font-size:.95rem}
.canil-card-head strong{display:block;font-size:1rem;line-height:1.2}
.canil-card-head small,.canil-detail-drawer small{display:block;color:var(--muted-fg);font-size:.8rem;margin-top:.15rem}
.canil-card p,.canil-detail-drawer p{color:var(--text-soft,var(--muted-fg));font-size:.88rem;line-height:1.5;margin-bottom:.85rem}
.canil-meta{display:flex;flex-direction:column;gap:.35rem;color:var(--muted-fg);font-size:.78rem;border-top:1px solid var(--border);padding-top:.75rem}
.canil-services{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.canil-services span{background:var(--muted);color:var(--fg);border:1px solid var(--border);border-radius:999px;padding:.28rem .6rem;font-size:.72rem;font-weight:800}
.canil-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.9rem}
.canil-card-footer a{color:var(--primary);font-weight:800;font-size:.82rem;text-decoration:none}
.canil-status{border-radius:999px;background:var(--muted);color:var(--muted-fg);font-size:.72rem;font-weight:900;padding:.32rem .62rem}
.canil-status--open{background:#DCFCE7;color:#166534}
.caniles-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;height:calc(100% - 10.5rem);min-height:560px;padding:1rem;gap:1rem}
.caniles-map-area{border:1px solid var(--border);border-radius:1rem;overflow:hidden;box-shadow:var(--shadow)}
.map-pin--canil .pin-dot{background:#58B784}
.map-pin--canil .pin-tooltip{background:#171F1B}
.caniles-side-panel{border:1px solid var(--border);border-radius:1rem;overflow:hidden}
.canil-fallback{background:#58B784;font-size:.68rem;font-weight:900;letter-spacing:.04em}
.canil-detail-drawer{position:fixed;right:1.25rem;top:6rem;bottom:1.25rem;z-index:120;width:min(440px,calc(100vw - 2rem));background:var(--card);border:1px solid var(--border);border-radius:1.15rem;box-shadow:var(--shadow-lg);padding:0;color:var(--fg);overflow:hidden;display:flex;flex-direction:column}
.canil-detail-drawer .profile-post-close{background:rgba(23,31,27,.72);backdrop-filter:blur(8px)}
.canil-detail-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:center;padding:1.25rem;padding-right:3.25rem;background:linear-gradient(135deg,var(--accent-soft),rgba(88,183,132,.08));border-bottom:1px solid var(--border)}
.canil-detail-hero strong{display:block;font-size:1.28rem;line-height:1.15;margin-top:.55rem}
.canil-detail-hero small{display:block;color:var(--muted-fg);font-size:.82rem;margin-top:.25rem}
.canil-detail-summary{margin:1rem 1.25rem 0!important;color:var(--text-soft,var(--muted-fg));font-size:.92rem;line-height:1.55}
.canil-detail-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;padding:1rem 1.25rem 0}
.canil-detail-kpis div{border:1px solid var(--border);border-radius:.85rem;background:var(--surface-soft,#F7FBF9);padding:.72rem;text-align:center;min-width:0}
.canil-detail-kpis strong{display:block;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.canil-detail-kpis span{display:block;color:var(--muted-fg);font-size:.68rem;font-weight:900;text-transform:uppercase;margin-top:.18rem}
.canil-detail-list{display:grid;gap:.55rem;margin:1rem 1.25rem 0}
.canil-detail-list div{border:1px solid var(--border);border-radius:.85rem;background:var(--surface-soft,#F7FBF9);padding:.78rem}
.canil-detail-list span{display:block;color:var(--muted-fg);font-size:.72rem;font-weight:800;text-transform:uppercase;margin-bottom:.2rem}
.canil-detail-list strong{font-size:.88rem;line-height:1.35}
.canil-detail-note{margin:1rem 1.25rem 0;border:1px solid rgba(88,183,132,.22);background:var(--accent-soft);border-radius:.9rem;padding:.85rem}
.canil-detail-note span{display:block;color:var(--muted-fg);font-size:.72rem;font-weight:900;text-transform:uppercase;margin-bottom:.28rem}
.canil-detail-note p{margin:0;color:var(--fg);font-size:.86rem;line-height:1.45}
.canil-detail-drawer h4{font-size:.9rem;margin:1rem 1.25rem .15rem}
.canil-detail-drawer .canil-services{margin:.55rem 1.25rem 0}
.canil-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:auto;padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--border);background:var(--surface-soft,#F7FBF9)}

@media(max-width:768px){
  .caniles-grid{grid-template-columns:1fr;padding:1rem}
  .caniles-map-layout{grid-template-columns:1fr;height:auto;min-height:0;padding:1rem}
  .caniles-map-area{min-height:420px}
  .caniles-side-panel{height:auto;max-height:320px}
  .caniles-toolbar{align-items:stretch}
  .view-switch{width:100%;justify-content:center}
  .view-switch button{flex:1}
  .canil-detail-drawer{left:0;right:0;top:auto;bottom:0;width:100%;max-height:82vh;border-radius:1.25rem 1.25rem 0 0}
  .canil-detail-actions{grid-template-columns:1fr}
}

/* Caniles modern layout */
.caniles-header{
  position:sticky;
  top:0;
  z-index:8;
  background:linear-gradient(180deg,var(--card),rgba(251,253,252,.92));
  backdrop-filter:blur(14px);
}
.caniles-header .adoptions-title-row h2{font-size:2rem;letter-spacing:0}
.caniles-overview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem;
  margin-top:.85rem;
  max-width:720px;
}
.caniles-overview div{
  border:1px solid var(--border);
  border-radius:1rem;
  background:var(--surface-soft,#F7FBF9);
  padding:.75rem .9rem;
}
.caniles-overview strong{display:block;font-size:1.35rem;line-height:1}
.caniles-overview span{display:block;color:var(--muted-fg);font-size:.75rem;font-weight:800;margin-top:.25rem;text-transform:uppercase}
.caniles-filter-panel{
  border:1px solid var(--border);
  border-radius:1rem;
  background:var(--surface-soft,#F7FBF9);
  padding:.75rem;
  margin-top:.65rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.75rem;
  align-items:center;
}
.caniles-more-filter{
  margin-left:auto;
}
.caniles-content{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1rem;
  padding:1.25rem;
}
.caniles-content .caniles-grid{
  padding:0;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
}
.canil-card{
  position:relative;
  min-height:250px;
  display:flex;
  flex-direction:column;
  border-radius:1.15rem;
  background:
    linear-gradient(180deg,rgba(255,255,255,.56),rgba(255,255,255,0)),
    var(--card);
}
.canil-card::after{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,#58B784,#16A34A);
  opacity:.75;
}
.canil-card-head{padding-left:.15rem}
.canil-card-head strong{font-size:1.05rem}
.canil-card>p{
  min-height:4.1rem;
  margin-bottom:1rem;
}
.canil-meta{
  background:var(--surface-soft,#F7FBF9);
  border:1px solid var(--border);
  border-radius:.9rem;
  padding:.7rem .8rem;
}
.canil-card-footer{margin-top:auto}
.canil-card-footer .link-btn{
  font-weight:900;
  background:var(--primary);
  color:var(--primary-fg);
  border-radius:999px;
  padding:.45rem .75rem;
}
.caniles-content .caniles-map-layout{
  padding:0;
  height:calc(100vh - 15rem);
  min-height:560px;
}
.caniles-content .canil-detail-drawer{position:relative;right:auto;top:auto;bottom:auto;width:100%;max-height:none;overflow:visible;border-radius:1.25rem}
.caniles-content .canil-detail-actions{position:static}
.canil-detail-body{display:grid;grid-template-columns:1.05fr 1fr .95fr;gap:1rem;padding:1rem 1.25rem 0}
.canil-detail-summary{margin:0!important}
.canil-detail-kpis{padding:.85rem 0 0}
.canil-detail-list{margin:0}
.canil-detail-note{margin:0}
.canil-detail-bottom{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem;align-items:end;padding:1rem 1.25rem 1.25rem}
.canil-detail-bottom h4{margin:0 0 .45rem!important}
.canil-detail-bottom .canil-services{margin:0}
.canil-detail-bottom .canil-detail-actions{padding:0;border:0;background:transparent}

@media(max-width:1100px){
  .canil-detail-body{grid-template-columns:1fr 1fr}
  .canil-detail-note{grid-column:1 / -1}
  .canil-detail-bottom{grid-template-columns:1fr}
  .caniles-filter-panel{grid-template-columns:1fr}
}

@media(max-width:768px){
  .caniles-header .adoptions-title-row h2{font-size:1.55rem}
  .caniles-overview{grid-template-columns:1fr}
  .caniles-content{padding:1rem}
  .caniles-content .caniles-grid{grid-template-columns:1fr}
  .caniles-content .caniles-map-layout{height:auto;min-height:0}
  .canil-detail-body{grid-template-columns:1fr}
  .caniles-filter-panel{padding:.65rem}
}

@media(min-width:769px){
  .caniles-header{
    padding:1rem 1.5rem .85rem!important;
  }
  .caniles-header .adoptions-title-row{
    margin-bottom:.6rem!important;
  }
  .caniles-header .adoptions-title-row h2{
    font-size:1.65rem;
  }
  .caniles-subtitle{
    font-size:.82rem;
  }
  .caniles-page .search-bar{
    height:2.35rem;
    margin-bottom:.5rem;
  }
  .caniles-page .search-bar input{
    height:2.35rem;
    padding-top:.45rem;
    padding-bottom:.45rem;
    font-size:.86rem;
  }
  .caniles-page .filter-row{
    align-items:center;
    gap:.35rem;
    margin-bottom:.5rem;
  }
  .caniles-page .filter-chip{
    padding:.34rem .7rem;
    font-size:.76rem;
  }
  .caniles-toolbar{
    gap:.45rem;
    margin-top:.35rem;
  }
  .caniles-toolbar select,
  .caniles-toolbar .btn{
    min-height:2.25rem;
    height:2.25rem;
    padding:.45rem .75rem;
    font-size:.78rem;
  }
  .caniles-toolbar select{
    min-width:170px;
    max-width:210px;
  }
  .caniles-toolbar .btn{
    min-width:120px;
  }
  .view-switch{
    padding:.14rem;
  }
  .view-switch button{
    padding:.38rem .72rem;
    font-size:.76rem;
  }
  .caniles-overview{
    grid-template-columns:repeat(3,135px);
    gap:.55rem;
    margin-top:0;
  }
  .caniles-overview div{
    padding:.58rem .72rem;
    border-radius:.8rem;
  }
  .caniles-overview strong{
    font-size:1.08rem;
  }
  .caniles-overview span{
    font-size:.65rem;
  }
  .caniles-filter-panel .caniles-toolbar{
    margin:0;
  }
}

/* ===== THEME: light / dark ===== */
:root{
  color-scheme:light;
  --input-bg:#F7FBF9;
  --surface:#FBFDFC;
  --surface-soft:#F7FBF9;
  --surface-muted:#E2F1E9;
  --overlay-soft:rgba(251,253,252,.86);
  --text-soft:#3C4F45;
}

:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0E1210;
  --fg:#EBF7F1;
  --card:#151D19;
  --primary:#DEF1E7;
  --primary-fg:#0F1713;
  --secondary-bg:#1E2823;
  --muted:#222E28;
  --muted-fg:#A0B9AC;
  --border:rgba(237,247,242,.13);
  --accent:#f59e0b;
  --accent-soft:rgba(77,179,125,.16);
  --green:#22C55E;
  --blue:#60A5FA;
  --red:#F87171;
  --shadow:0 12px 34px rgba(0,0,0,.34);
  --shadow-lg:0 28px 76px rgba(0,0,0,.46);
  --input-bg:#1C2621;
  --surface:#151D19;
  --surface-soft:#1A231E;
  --surface-muted:#1F2B25;
  --overlay-soft:rgba(21,29,25,.88);
  --text-soft:#B8D4C5;
}

html[data-theme="dark"],
html[data-theme="dark"] body{
  background:var(--bg);
  color:var(--fg);
}

html[data-theme="dark"] body::before{
  background:
    radial-gradient(circle at 12% 8%,rgba(77,179,125,.12),transparent 28rem),
    radial-gradient(circle at 92% 12%,rgba(34,197,94,.10),transparent 24rem),
    linear-gradient(180deg,#0F1612 0%,#0E1210 48%,#0B0F0D 100%);
}

html[data-theme="dark"] .theme-toggle{
  color:#ACDBC2;
}

.theme-toggle{
  font-size:1.05rem;
  font-weight:900;
}

html[data-theme="dark"] .sidebar,
html[data-theme="dark"] .top-header,
html[data-theme="dark"] .content-area,
html[data-theme="dark"] .mobile-nav,
html[data-theme="dark"] .notif-panel,
html[data-theme="dark"] .modal-sheet,
html[data-theme="dark"] .filter-panel,
html[data-theme="dark"] .pet-card,
html[data-theme="dark"] .pub-card,
html[data-theme="dark"] .stat-card,
html[data-theme="dark"] .profile-section-card,
html[data-theme="dark"] .contact-card,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .canil-card,
html[data-theme="dark"] .canil-detail-drawer,
html[data-theme="dark"] .lost-stat,
html[data-theme="dark"] .nearby-panel,
html[data-theme="dark"] .chat-list-panel,
html[data-theme="dark"] .chat-convo-header,
html[data-theme="dark"] .chat-input-row,
html[data-theme="dark"] .detail-page,
html[data-theme="dark"] .detail-footer,
html[data-theme="dark"] .settings-sheet,
html[data-theme="dark"] .adoptions-header,
html[data-theme="dark"] .profile-post-detail,
html[data-theme="dark"] .map-detail-panel,
html[data-theme="dark"] .hashtag-item-detail{
  background:var(--card);
  color:var(--fg);
  border-color:var(--border);
}

html[data-theme="dark"] .content-area{
  background:rgba(21,29,25,.78);
}

html[data-theme="dark"] .sidebar-brand,
html[data-theme="dark"] .profile-header,
html[data-theme="dark"] .login-form{
  background:linear-gradient(135deg,#17211C,#0F1713);
  border-color:var(--border);
}

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .chat-input,
html[data-theme="dark"] .map-search-input,
html[data-theme="dark"] .adoption-select-filters select{
  background:var(--input-bg)!important;
  color:var(--fg);
  border-color:var(--border);
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{
  color:#768F82;
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] .chat-input:focus{
  background:#1F2C25!important;
  border-color:rgba(77,179,125,.62);
  box-shadow:0 0 0 4px rgba(77,179,125,.14);
}

html[data-theme="dark"] .btn-outline,
html[data-theme="dark"] .filter-chip,
html[data-theme="dark"] .fab-label,
html[data-theme="dark"] .map-ctrl-btn,
html[data-theme="dark"] .nearby-item,
html[data-theme="dark"] .msg--in .msg-bubble,
html[data-theme="dark"] .profile-post-metrics span,
html[data-theme="dark"] .profile-post-extra div,
html[data-theme="dark"] .gallery-thumb,
html[data-theme="dark"] .view-switch,
html[data-theme="dark"] .canil-detail-list div,
html[data-theme="dark"] .video-selected-card,
html[data-theme="dark"] .adoption-uploader,
html[data-theme="dark"] .reaction-item{
  background:var(--surface-soft);
  color:var(--fg);
  border-color:var(--border);
}

html[data-theme="dark"] .btn-outline:hover,
html[data-theme="dark"] .nav-item:hover,
html[data-theme="dark"] .notif-item:hover,
html[data-theme="dark"] .chat-item:hover,
html[data-theme="dark"] .filter-chip:hover,
html[data-theme="dark"] .nearby-item:hover{
  background:var(--muted);
  color:var(--fg);
}

html[data-theme="dark"] .nav-item,
html[data-theme="dark"] .mob-nav-btn,
html[data-theme="dark"] .insta-tab,
html[data-theme="dark"] .notif-item p,
html[data-theme="dark"] .notif-item small,
html[data-theme="dark"] .pet-card-body p,
html[data-theme="dark"] .pet-card-loc,
html[data-theme="dark"] .count-label,
html[data-theme="dark"] .detail-breed,
html[data-theme="dark"] .detail-meta,
html[data-theme="dark"] .detail-section p,
html[data-theme="dark"] .profile-location,
html[data-theme="dark"] .profile-bio,
html[data-theme="dark"] .stat-label,
html[data-theme="dark"] .pub-meta,
html[data-theme="dark"] .reaction-info p,
html[data-theme="dark"] .reaction-info span,
html[data-theme="dark"] .form-hint,
html[data-theme="dark"] .chat-item-top span,
html[data-theme="dark"] .chat-item-info p,
html[data-theme="dark"] .msg-meta,
html[data-theme="dark"] .chip small,
html[data-theme="dark"] .caniles-subtitle,
html[data-theme="dark"] .canil-card-head small,
html[data-theme="dark"] .canil-meta,
html[data-theme="dark"] .canil-detail-list span,
html[data-theme="dark"] .lost-stat small,
html[data-theme="dark"] .nearby-copy small,
html[data-theme="dark"] .map-popup-location,
html[data-theme="dark"] .profile-post-author small,
html[data-theme="dark"] .profile-post-info p,
html[data-theme="dark"] .profile-post-extra span,
html[data-theme="dark"] .insta-mini-stats span{
  color:var(--muted-fg);
}

html[data-theme="dark"] .adoptions-page,
html[data-theme="dark"] .lost-page,
html[data-theme="dark"] .chats-layout,
html[data-theme="dark"] .chat-empty,
html[data-theme="dark"] .detail-page,
html[data-theme="dark"] .map-layout{
  background:var(--bg);
}

html[data-theme="dark"] .pets-grid,
html[data-theme="dark"] .lost-stats,
html[data-theme="dark"] .chat-messages,
html[data-theme="dark"] .insta-profile{
  background:
    radial-gradient(circle at 8% 10%,rgba(77,179,125,.06),transparent 18rem),
    var(--bg);
}

html[data-theme="dark"] .pet-card,
html[data-theme="dark"] .pet-card--premium .pet-card-body,
html[data-theme="dark"] .lost-stat,
html[data-theme="dark"] .nearby-item,
html[data-theme="dark"] .pub-card{
  background:var(--surface);
}

html[data-theme="dark"] .count-label,
html[data-theme="dark"] .filter-chip--premium,
html[data-theme="dark"] .insta-settings-btn,
html[data-theme="dark"] .chat-item--active,
html[data-theme="dark"] .nearby-item--active{
  background:var(--accent-soft)!important;
  color:#58B784!important;
}

html[data-theme="dark"] .notif-item--unread,
html[data-theme="dark"] .chat-item--unread{
  background:rgba(96,165,250,.12);
}

html[data-theme="dark"] .map-bg{
  background-color:#1A221D;
  background-image:
    linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px),
    radial-gradient(circle at 25% 24%,rgba(34,197,94,.10),transparent 12rem),
    radial-gradient(circle at 70% 62%,rgba(96,165,250,.08),transparent 14rem);
}

html[data-theme="dark"] .map-canvas{
  background:#17201B;
}

html[data-theme="dark"] .map-park{
  background:rgba(34,197,94,.16);
  border-color:rgba(34,197,94,.24);
  color:#86EFAC;
}

html[data-theme="dark"] .map-district{
  background:rgba(21,29,25,.62);
  border-color:var(--border);
  color:var(--muted-fg);
}

html[data-theme="dark"] .map-legend,
html[data-theme="dark"] .map-popup{
  background:rgba(21,29,25,.94);
  color:var(--fg);
  border-color:var(--border);
}

html[data-theme="dark"] .map-detail-backdrop{
  background:rgba(0,0,0,.44);
}

html[data-theme="dark"] .detail-gallery-slide,
html[data-theme="dark"] .detail-gallery-main,
html[data-theme="dark"] .detail-hero img{
  background:#0F1512;
}

html[data-theme="dark"] .upload-zone,
html[data-theme="dark"] .adoption-upload-hero{
  background:linear-gradient(135deg,#17211C,#101814);
  border-color:rgba(77,179,125,.32);
  color:var(--fg);
}

html[data-theme="dark"] .adoption-upload-hero small,
html[data-theme="dark"] .video-selected-card small{
  color:var(--muted-fg);
}

html[data-theme="dark"] .alert-error{
  background:rgba(248,113,113,.14);
  color:#FECACA;
}

html[data-theme="dark"] .warning-card{
  background:rgba(88,183,132,.12);
  border-color:rgba(88,183,132,.36);
}

html[data-theme="dark"] .warning-card strong,
html[data-theme="dark"] .warning-card p{
  color:#ACDBC2;
}

html[data-theme="dark"] .hint-box{
  background:rgba(96,165,250,.12);
  border-color:rgba(96,165,250,.35);
  color:#BFDBFE;
}

html[data-theme="dark"] .hint-box code{
  background:rgba(96,165,250,.18);
  color:#DBEAFE;
}

html[data-theme="dark"] .hashtag-item-detail,
html[data-theme="dark"] .profile-post-detail{
  background:var(--card);
}

html[data-theme="dark"] .insta-post-card{
  background:#111827;
}

html[data-theme="dark"] .divider span{
  background:var(--card);
  color:var(--muted-fg);
}

html[data-theme="dark"] .auth-screen{
  background:linear-gradient(135deg,#0F1612,#0B0F0D);
}

html[data-theme="dark"] .auth-right{
  background:transparent;
}

html[data-theme="dark"] .auth-left-overlay{
  background:linear-gradient(145deg,rgba(14,21,17,.96),rgba(29,69,48,.90));
}

html[data-theme="dark"] .auth-screen--modern{
  background:
    radial-gradient(circle at 74% 18%,rgba(88,183,132,.16),transparent 28%),
    linear-gradient(135deg,#0F1110 0%,#131D18 52%,#14241B 100%);
}

html[data-theme="dark"] .auth-card{
  background:rgba(20,30,25,.9);
  border-color:rgba(255,255,255,.1);
}

html[data-theme="dark"] .auth-tabs{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.1);
}

html[data-theme="dark"] .auth-demo-box{
  background:rgba(88,183,132,.12);
  border-color:rgba(88,183,132,.18);
  color:#E2F2E9;
}

html[data-theme="dark"] .auth-demo-box small{color:#B9D9C8}

html[data-theme="dark"] .auth-register-summary{
  background:rgba(22,163,74,.12);
  border-color:rgba(22,163,74,.2);
  color:#BBF7D0;
}

html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] .nav-item--active{
  background:linear-gradient(135deg,#DEF1E7,#9FC9B3);
  color:#0F1713;
}

html[data-theme="dark"] .brand-icon,
html[data-theme="dark"] .avatar-btn,
html[data-theme="dark"] .profile-avatar,
html[data-theme="dark"] .insta-avatar-ring img,
html[data-theme="dark"] .insta-avatar-ring span{
  background:linear-gradient(135deg,#DEF1E7,#729F87);
  color:#0F1713;
}

html[data-theme="dark"] .lost-page .adoptions-title-row h2,
html[data-theme="dark"] .adoptions-title-row h2,
html[data-theme="dark"] .detail-content h2,
html[data-theme="dark"] .detail-section h3,
html[data-theme="dark"] .profile-section-card h3,
html[data-theme="dark"] .insta-top-row h2,
html[data-theme="dark"] .header-title,
html[data-theme="dark"] .brand-name{
  color:var(--fg);
}

html[data-theme="dark"] .like-btn{
  background:rgba(21,29,25,.82);
  color:var(--fg);
}

html[data-theme="dark"] .reward-badge{
  color:#09160F;
}

html[data-theme="dark"] .mobile-overlay,
html[data-theme="dark"] .modal-overlay{
  background:rgba(0,0,0,.64);
}

html[data-theme="dark"] .publish-action-overlay{
  background:rgba(0,0,0,.70);
}

/* Mobile map detail: full overlay above the pin list */
@media(max-width:768px){
  .sidebar-toggle-btn{
    display:none!important;
  }

  .map-detail-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:230!important;
    background:rgba(10,20,15,.48)!important;
    backdrop-filter:blur(8px)!important;
  }

  .map-detail-panel{
    position:fixed!important;
    left:.75rem!important;
    right:.75rem!important;
    top:4.25rem!important;
    bottom:4.75rem!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    z-index:240!important;
    border-radius:1.25rem!important;
    overflow:hidden!important;
  }

  .map-detail-panel .detail-page{
    height:100%!important;
    min-height:0!important;
  }

  .map-detail-panel .detail-scroll{
    min-height:0!important;
    overflow-y:auto!important;
  }

  .map-detail-panel .detail-footer{
    flex-shrink:0;
  }
}

html[data-theme="dark"] .caniles-header{
  background:linear-gradient(180deg,var(--card),rgba(21,29,25,.92));
}

html[data-theme="dark"] .canil-card{
  background:
    linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,0)),
    var(--card);
}

/* Canil detail popup */
.caniles-page:has(.canil-detail-drawer)::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:210;
  background:rgba(10,18,14,.46);
  backdrop-filter:blur(8px);
}

.caniles-content .canil-detail-drawer{
  position:fixed!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:min(920px,calc(100vw - 2rem))!important;
  max-height:min(82vh,760px)!important;
  transform:translate(-50%,-50%);
  z-index:220;
  overflow-y:auto!important;
  border-radius:1.35rem!important;
}

.caniles-content .canil-detail-actions{
  position:static;
}

@media(max-width:768px){
  .caniles-content .canil-detail-drawer{
    width:calc(100vw - 1rem)!important;
    max-height:88vh!important;
  }
  .canil-detail-body{
    grid-template-columns:1fr;
  }
}

/* Hashtag explore */
.hashtag{color:#93C5FD;font-size:.8rem;cursor:pointer;background:transparent;border:0;padding:0;font-weight:700}
.hashtag-explore-overlay,.hashtag-item-overlay{position:fixed;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(8px);z-index:260;display:flex;align-items:center;justify-content:center;padding:1rem}
.hashtag-explore-sheet{width:min(1080px,96vw);height:min(860px,92vh);background:#0B0F14;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:1.15rem;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 26px 90px rgba(0,0,0,.5)}
.hashtag-explore-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.1)}
.hashtag-explore-head .icon-btn{color:#fff;background:rgba(255,255,255,.08)}
.hashtag-explore-head strong{display:block;font-size:1.45rem}.hashtag-explore-head span{display:block;color:#A1A1AA;font-size:.85rem;margin-top:.1rem}
.hashtag-featured{padding:1rem 1rem 0}.hashtag-featured article{min-height:190px;border-radius:1rem;background-size:cover;background-position:center;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:1.1rem;cursor:pointer}
.hashtag-featured article::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.08))}
.hashtag-featured article>*{position:relative;z-index:1}.hashtag-featured span{align-self:flex-start;background:#22C55E;color:#fff;border-radius:999px;padding:.28rem .65rem;font-size:.75rem;font-weight:800;margin-bottom:.5rem}
.hashtag-featured strong{font-size:1.55rem}.hashtag-featured small{color:#D4D4D8;margin-top:.25rem}
.hashtag-explore-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem;padding:1rem;overflow-y:auto}
.hashtag-card{position:relative;min-height:245px;border:1px solid rgba(255,255,255,.1);border-radius:.95rem;overflow:hidden;background:#111827;color:#fff;padding:0;text-align:left;cursor:pointer}
.hashtag-card img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}.hashtag-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.05) 55%)}
.hashtag-card>div,.hashtag-card-type{position:absolute;z-index:1}.hashtag-card-type{top:.6rem;right:.6rem;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);border-radius:999px;padding:.3rem .5rem}
.hashtag-card>div{left:.75rem;right:.75rem;bottom:.75rem}.hashtag-card strong{display:block;font-size:.95rem;line-height:1.2}.hashtag-card small{display:block;color:#D4D4D8;margin-top:.25rem;font-size:.78rem}
.hashtag-item-detail{width:min(820px,94vw);max-height:88vh;background:#FBFDFC;border-radius:1rem;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;position:relative;box-shadow:0 26px 80px rgba(0,0,0,.38)}
.hashtag-item-detail img{width:100%;height:100%;min-height:460px;object-fit:cover}.hashtag-item-detail>div{padding:1.35rem;display:flex;flex-direction:column;justify-content:center}
.hashtag-item-detail span{color:#16A34A;font-weight:900;text-transform:uppercase;font-size:.78rem}.hashtag-item-detail h3{font-size:1.65rem;margin:.45rem 0}.hashtag-item-detail p{color:var(--muted-fg);line-height:1.55;margin-bottom:1rem}.hashtag-item-detail small{color:var(--muted-fg);margin-top:.25rem}

@media(max-width:768px){
  .hashtag-explore-overlay,.hashtag-item-overlay{padding:.5rem}
  .hashtag-explore-sheet{height:94vh;border-radius:1rem}
  .hashtag-featured article{min-height:150px}
  .hashtag-explore-grid{grid-template-columns:repeat(2,1fr);gap:.55rem;padding:.75rem}
  .hashtag-card{min-height:210px}
  .hashtag-item-detail{grid-template-columns:1fr;overflow-y:auto}
  .hashtag-item-detail img{min-height:300px}
}

/* Global publish FAB spacing */
.publish-fab,.floating-menu{right:2rem!important;bottom:2rem!important}
.fab-main{width:4.15rem!important;height:4.15rem!important;font-size:1.9rem!important;box-shadow:0 16px 38px rgba(19,45,31,.26)!important}
.fab-btn{width:3.35rem!important;height:3.35rem!important}
.app-shell:has(.map-layout) .publish-fab{right:calc(340px + 2rem)!important}
.publish-action-overlay{display:none}

@media(min-width:769px){
  .publish-action-overlay{
    position:fixed;
    inset:0;
    z-index:70;
    display:flex!important;
    align-items:center;
    justify-content:center;
    padding:2rem;
    background:rgba(10,14,12,.66);
    backdrop-filter:blur(16px) saturate(.82);
  }
  .publish-action-grid{
    width:min(920px,82vw);
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
    align-items:stretch;
  }
  .publish-action-card{
    min-height:14.5rem;
    border:1px solid rgba(255,255,255,.14);
    border-radius:1.15rem;
    color:#fff;
    cursor:pointer;
    font-family:inherit;
    text-align:center;
    padding:1.25rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.7rem;
    box-shadow:0 22px 60px rgba(0,0,0,.26);
    position:relative;
    overflow:hidden;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
  }
  .publish-action-card::before{
    content:"";
    position:absolute;
    inset:0;
    background:
      linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.03)),
      radial-gradient(circle at 50% -20%,rgba(255,255,255,.18),transparent 9rem);
    pointer-events:none;
  }
  .publish-action-card:hover{
    transform:translateY(-4px);
    border-color:rgba(255,255,255,.28);
    box-shadow:0 28px 76px rgba(0,0,0,.34);
  }
  .publish-action-card span{
    width:4rem;
    height:4rem;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.10);
    font-size:1.75rem;
    font-weight:900;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
    position:relative;
    z-index:1;
  }
  .publish-action-card strong{
    font-size:1.2rem;
    line-height:1.15;
    position:relative;
    z-index:1;
  }
  .publish-action-card small{
    max-width:13rem;
    color:rgba(255,255,255,.66);
    font-size:.84rem;
    line-height:1.4;
    position:relative;
    z-index:1;
  }
  .publish-action-card--report{
    background:linear-gradient(145deg,rgba(148,31,47,.94),rgba(84,26,33,.94));
  }
  .publish-action-card--video{
    background:linear-gradient(145deg,rgba(34,70,150,.94),rgba(31,36,82,.94));
  }
  .publish-action-card--adoption{
    background:linear-gradient(145deg,rgba(28,113,67,.94),rgba(27,75,52,.94));
  }
  .publish-fab .fab-items{
    display:none;
  }
  .publish-fab{
    z-index:80;
  }
}

/* Profile scroll belongs to the page edge, not the centered profile column */
.content-area:has(.insta-profile){overflow-y:auto!important}
.content-area:has(.insta-profile) .insta-profile{height:auto!important;min-height:100%;overflow:visible!important}

@media(max-width:768px){
  .publish-fab,.floating-menu{right:1.35rem!important;bottom:5.75rem!important}
  .app-shell:has(.map-layout) .publish-fab{right:1.35rem!important}
  .fab-main{width:3.8rem!important;height:3.8rem!important;font-size:1.7rem!important}
}

/* Premium adoptions */
.pet-card--premium{position:relative;border:2px solid #16A34A!important;box-shadow:0 16px 42px rgba(22,163,74,.28)!important}
.pet-card--premium::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:linear-gradient(180deg,#22C55E,#15803D);z-index:3}
.pet-card--premium .pet-card-body{background:linear-gradient(180deg,#F0FDF4,#FFFFFF)}
.filter-chip--premium{border-color:#86EFAC!important;color:#15803D!important;background:#F0FDF4!important}
.filter-chip--premium.filter-chip--active{background:#16A34A!important;border-color:#16A34A!important;color:#fff!important;box-shadow:0 10px 24px rgba(22,163,74,.28)}
.premium-badge{position:absolute;top:.625rem;left:.625rem;background:linear-gradient(135deg,#22C55E,#15803D);color:#fff;border:1px solid rgba(220,252,231,.9);border-radius:99px;padding:.36rem .72rem;font-size:.74rem;font-weight:900;letter-spacing:.02em;box-shadow:0 10px 24px rgba(22,163,74,.38);z-index:4;text-transform:uppercase}
.adoption-select-filters{display:flex;gap:.65rem;margin-top:.85rem;flex-wrap:wrap}
.adoption-select-filters select{min-width:180px;border:1px solid var(--border);border-radius:999px;background:#FBFDFC;padding:.65rem .9rem;font-size:.88rem;color:var(--fg);outline:none}
.adoption-select-filters select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(19,45,31,.08)}
.adoption-select-filters select:disabled{opacity:.55}
.btn-sm{padding:.55rem .9rem;font-size:.85rem}

/* Profile post detail */
.insta-post-card{cursor:pointer}
.profile-post-overlay{align-items:center!important;justify-content:center;padding:1rem}
.profile-post-detail{position:relative;width:min(980px,96vw);max-height:90vh;background:#FBFDFC;border-radius:1.1rem;box-shadow:0 26px 80px rgba(0,0,0,.32);display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(300px,.9fr);overflow:hidden}
.profile-post-close{position:absolute;top:.85rem;right:.85rem;z-index:3;width:2rem;height:2rem;border:0;border-radius:50%;background:rgba(19,45,31,.82);color:#fff;cursor:pointer}
.profile-post-media{position:relative;background:#0A110D;min-height:520px}
.profile-post-media img{width:100%;height:100%;object-fit:cover;display:block}
.profile-post-kind{position:absolute;left:1rem;bottom:1rem;background:rgba(0,0,0,.62);color:#fff;border-radius:999px;padding:.45rem .8rem;font-size:.85rem;font-weight:700;backdrop-filter:blur(8px)}
.profile-post-info{padding:1.35rem;overflow-y:auto}
.profile-post-author{display:flex;align-items:center;gap:.75rem;margin-bottom:1.2rem}
.profile-post-avatar{width:2.7rem;height:2.7rem;border-radius:50%;overflow:hidden;background:#132D1F;color:#fff;display:grid;place-items:center;font-weight:800}
.profile-post-avatar img{width:100%;height:100%;object-fit:cover}
.profile-post-author small{display:block;color:var(--muted-fg);margin-top:.12rem}
.profile-post-info h3{font-size:1.45rem;margin-bottom:.55rem}
.profile-post-info p{color:var(--muted-fg);line-height:1.55}
.profile-post-metrics{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}
.profile-post-metrics span{border:1px solid var(--border);border-radius:999px;padding:.4rem .7rem;background:#fff;font-size:.84rem;font-weight:700}
.profile-post-extra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:1rem 0}
.profile-post-extra div{border:1px solid var(--border);border-radius:.8rem;background:#fff;padding:.75rem;text-align:center}
.profile-post-extra span{display:block;font-size:.72rem;color:var(--muted-fg);margin-bottom:.25rem}
.profile-post-extra strong{font-size:.86rem}
.profile-post-comments{border-top:1px solid var(--border);padding-top:1rem;margin-top:1rem}
.profile-post-comments strong{display:block;margin-bottom:.6rem}
.profile-post-comments p{font-size:.88rem;margin-bottom:.45rem}

/* Lost pets page */
.lost-page .adoptions-title-row h2{color:#241611}
.lost-stats--compact{padding:0;margin:0;border:0;flex-wrap:wrap}
.lost-stat--green{border-left:4px solid #22C55E}
.lost-card{position:relative}
.lost-card--lost{border-color:rgba(239,68,68,.28)!important}
.lost-card--found{border-color:rgba(59,130,246,.28)!important}
.lost-card--lost:hover{box-shadow:0 16px 38px rgba(239,68,68,.18)!important}
.lost-card--found:hover{box-shadow:0 16px 38px rgba(59,130,246,.18)!important}
.lost-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.7rem;padding-top:.65rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--muted-fg)}
.reward-filter.filter-chip--active{background:#16A34A!important;border-color:#16A34A!important;color:#fff!important}

/* Compact filters for adoption/lost pages */
.adoptions-header{padding:1rem 1.5rem!important}
.adoptions-title-row{margin-bottom:.75rem!important}
.adoptions-page .search-bar{height:2.55rem;margin-bottom:.65rem}
.adoptions-page .filter-row{gap:.45rem;margin-bottom:.55rem;display:flex;align-items:center;flex-wrap:wrap}
.adoptions-page .filter-chip{padding:.42rem .78rem;font-size:.82rem}
.adoption-select-filters{display:grid!important;grid-template-columns:minmax(150px,210px) minmax(150px,210px) auto;gap:.5rem!important;margin-top:.4rem!important;align-items:center}
.adoption-select-filters select{min-width:0!important;width:100%;height:2.35rem;padding:.45rem .75rem!important;font-size:.82rem!important}
.adoption-select-filters .btn-sm{height:2.35rem;padding:.45rem .8rem}
.lost-stats--compact .lost-stat{padding:.48rem .75rem;min-width:132px}
.lost-stats--compact .lost-stat span{font-size:1.15rem}
.lost-stats--compact .lost-stat strong{font-size:1rem}
.lost-stats--compact .lost-stat small{font-size:.72rem}
.lost-page .adoptions-header{display:grid;grid-template-columns:1fr auto;gap:.65rem 1rem}
.lost-page .adoptions-title-row{grid-column:1 / 2;margin-bottom:0!important}
.lost-page .lost-stats--compact{grid-column:2 / 3;grid-row:1 / 2;justify-content:flex-end;align-self:start}
.lost-page .search-bar,.lost-page .filter-row,.lost-page .adoption-select-filters{grid-column:1 / -1}

@media(max-width:768px){
  .profile-post-detail{grid-template-columns:1fr;max-height:88vh}
  .profile-post-media{min-height:320px}
  .profile-post-extra{grid-template-columns:1fr}
  .adoption-select-filters{grid-template-columns:1fr!important}
  .lost-page .adoptions-header{display:block}
  .lost-stats--compact{margin:.5rem 0}
}

/* Map detail overlay */
.map-detail-backdrop{position:absolute;inset:0;background:rgba(10,20,15,.22);backdrop-filter:blur(2px);z-index:45}
.map-detail-panel{position:absolute;top:1rem;right:1rem;bottom:1rem;width:min(520px,calc(100% - 2rem));background:#FBFDFC;border:1px solid rgba(255,255,255,.8);border-radius:1.25rem;box-shadow:0 24px 70px rgba(16,37,26,.28);overflow:hidden;z-index:50}
.map-detail-panel .detail-page{height:100%;border-radius:inherit}
.map-detail-panel .detail-header{padding:.85rem 1rem}
.map-detail-panel .detail-footer{padding:.9rem 1rem}
.map-detail-close{position:absolute;top:.75rem;right:.75rem;z-index:60;width:2rem;height:2rem;border:0;border-radius:50%;background:#132D1F;color:#fff;cursor:pointer}

/* Adoption detail gallery */
.detail-gallery{position:relative;display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem 1rem .75rem;scrollbar-width:thin}
.detail-gallery-slide{flex:0 0 100%;height:min(420px,42vh);border-radius:1rem;background:#E8F5EE;overflow:hidden;scroll-snap-align:center;border:1px solid var(--border)}
.detail-gallery-slide img{width:100%;height:100%;object-fit:contain;display:block}
.detail-gallery .detail-type-badge{left:1.75rem;bottom:1.5rem}
.detail-hero img{object-fit:contain!important;background:#E8F5EE}
.detail-gallery--modern{display:block;overflow:visible;padding:1rem}
.detail-gallery-main{position:relative;height:min(430px,44vh);border-radius:1.15rem;background:#E8F5EE;border:1px solid var(--border);overflow:hidden;box-shadow:0 18px 42px rgba(16,37,26,.12)}
.detail-gallery-main img{width:100%;height:100%;object-fit:contain;display:block}
.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.55rem;height:2.55rem;border:0;border-radius:50%;background:rgba(19,45,31,.78);color:#fff;font-size:1.8rem;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.22);backdrop-filter:blur(8px)}
.gallery-nav--prev{left:.8rem}
.gallery-nav--next{right:.8rem}
.gallery-count{position:absolute;top:.8rem;right:.8rem;background:rgba(19,45,31,.78);color:#fff;border-radius:99px;padding:.32rem .7rem;font-size:.78rem;font-weight:700;backdrop-filter:blur(8px)}
.gallery-thumbs{display:flex;gap:.55rem;padding:.75rem .1rem .1rem;overflow-x:auto}
.gallery-thumb{width:4.6rem;height:4.6rem;flex:0 0 auto;border:2px solid transparent;border-radius:.85rem;padding:0;overflow:hidden;background:#fff;cursor:pointer;opacity:.72;transition:opacity .18s,transform .18s,border-color .18s}
.gallery-thumb:hover{opacity:1;transform:translateY(-1px)}
.gallery-thumb--active{opacity:1;border-color:#132D1F;box-shadow:0 8px 18px rgba(19,45,31,.18)}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.detail-gallery--modern .detail-type-badge{left:1.75rem;bottom:6.05rem}

@media(max-width:768px){
  .map-detail-panel{left:.75rem;right:.75rem;top:auto;bottom:.75rem;width:auto;height:78vh;border-radius:1.25rem}
  .map-detail-close{top:.65rem;right:.65rem}
  .detail-gallery-slide{height:300px}
  .detail-gallery-main{height:300px}
  .gallery-nav{width:2.25rem;height:2.25rem;font-size:1.45rem}
  .gallery-thumb{width:4rem;height:4rem}
}

/* ===== Publish module + hybrid map ===== */
.sidebar-publish{
  padding:.75rem;
  border-top:1px solid var(--border);
}
.publish-sidebar-btn{
  width:100%;
  border:0;
  border-radius:1rem;
  cursor:pointer;
  min-height:3rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  color:#fff;
  background:linear-gradient(135deg,#171F1B,#296143);
  box-shadow:0 14px 28px rgba(23,31,27,.18);
  font-family:inherit;
}
.publish-sidebar-btn span{
  width:1.75rem;
  height:1.75rem;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.16);
}
.publish-fab{
  display:block;
  right:1.5rem;
  bottom:1.5rem;
  z-index:80;
}
.app-shell:has(.map-layout) .publish-fab{
  right:calc(340px + 2.25rem);
}
.publish-fab .fab-items{
  bottom:4.25rem;
}
.fab-btn--red{background:var(--red);color:#fff}
.fab-btn--blue,.fab-btn--green,.fab-btn--red{color:#fff}
.fab-label{
  font-weight:700;
  color:var(--fg);
}

.map-layout{
  min-height:0;
  background:#FBFDFC;
}
.map-area{
  background:#DFEEE8;
  isolation:isolate;
}
.map-bg--hybrid{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(0deg,rgba(33,82,72,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(33,82,72,.08) 1px,transparent 1px),
    linear-gradient(135deg,#DCEFE8 0%,#EEF6E8 46%,#D7E8E2 100%);
  background-size:44px 44px,44px 44px,100% 100%;
}
.map-bg--hybrid::before{
  content:"";
  position:absolute;
  inset:-12%;
  background:
    radial-gradient(circle at 18% 24%,rgba(34,197,94,.18),transparent 18rem),
    radial-gradient(circle at 74% 30%,rgba(59,130,246,.10),transparent 22rem),
    radial-gradient(circle at 54% 72%,rgba(88,183,132,.09),transparent 18rem);
  pointer-events:none;
}
.map-canvas{
  position:absolute;
  inset:0;
  transform-origin:center;
  transition:transform .22s ease;
}
.map-roads{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  filter:drop-shadow(0 2px 4px rgba(45,58,50,.12));
}
.road{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.road--highway{
  stroke:#F8FAF5;
  stroke-width:18;
}
.road--main{
  stroke:#FBFDFC;
  stroke-width:12;
}
.road--street{
  stroke:rgba(251,253,252,.84);
  stroke-width:5;
}
.map-water{
  position:absolute;
  z-index:1;
  pointer-events:none;
}
.map-water--river{
  left:-10%;
  top:10%;
  width:120%;
  height:5rem;
  border-radius:50%;
  transform:rotate(-8deg);
  background:linear-gradient(90deg,rgba(125,211,252,.28),rgba(59,130,246,.16));
  box-shadow:0 0 0 10px rgba(125,211,252,.08);
}
.map-park{
  position:absolute;
  z-index:1;
  border-radius:2rem;
  padding:.65rem .9rem;
  color:#166534;
  font-size:.82rem;
  font-weight:800;
  background:rgba(187,247,208,.68);
  border:1px solid rgba(34,197,94,.20);
}
.map-park--north{left:12%;top:12%;width:16rem;height:6.5rem}
.map-park--east{right:9%;top:20%;width:15rem;height:7rem}
.map-park--south{left:42%;bottom:13%;width:17rem;height:7rem}
.map-district{
  position:absolute;
  z-index:3;
  padding:.3rem .65rem;
  border-radius:99px;
  color:rgba(23,31,27,.62);
  background:rgba(251,253,252,.58);
  border:1px solid rgba(33,54,43,.08);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.02em;
  pointer-events:none;
}
.map-district--condes{right:18%;top:18%}
.map-district--providencia{left:42%;top:33%}
.map-district--nunoa{left:49%;top:55%}
.map-district--santiago{left:24%;top:49%}
.map-district--maipu{left:14%;bottom:18%}
.map-pin{
  z-index:8;
  border:0;
  background:transparent;
  padding:0;
}
.pin-dot{
  width:2rem;
  height:2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:.95rem;
  border:3px solid #fff;
  box-shadow:0 12px 22px rgba(23,31,27,.25);
}
.pin-dot::after{
  content:"";
  position:absolute;
  width:.75rem;
  height:.75rem;
  left:50%;
  bottom:-.25rem;
  transform:translateX(-50%) rotate(45deg);
  background:inherit;
  border-right:3px solid #fff;
  border-bottom:3px solid #fff;
  z-index:-1;
}
.pin-tooltip{
  bottom:calc(100% + .9rem);
  font-weight:800;
  box-shadow:0 12px 24px rgba(23,31,27,.18);
}
.map-search-overlay{
  z-index:12;
}
.map-controls{
  z-index:12;
  bottom:1.25rem;
  right:1.25rem;
}
.map-legend{
  z-index:12;
}
.map-popup{
  z-index:13;
  min-width:245px;
}
.map-popup-head{
  display:flex;
  gap:.75rem;
  align-items:center;
  margin-bottom:.55rem;
}
.map-popup-head img{
  width:3.25rem;
  height:3.25rem;
  border-radius:.9rem;
  object-fit:cover;
}
.map-popup-head p,
.map-popup-location{
  font-size:.82rem;
  color:var(--muted-fg);
}
.map-popup-reward{
  font-size:.84rem;
  color:var(--red);
  font-weight:800;
  margin-top:.35rem;
}
.map-loading{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:20;
}
.nearby-filters{
  padding:.6rem .8rem;
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  border-bottom:1px solid var(--border);
}
.nearby-filters .filter-chip{
  font-size:.75rem;
  padding:.35rem .72rem;
}
.filter-chip--adoption{border-color:#22C55E;color:#16A34A}
.filter-chip--found{border-color:#3B82F6;color:#2563EB}
.nearby-item{
  width:100%;
  text-align:left;
  background:#F7FBF9;
}
.nearby-item--active{
  background:#E9F5EF;
  box-shadow:0 12px 28px rgba(88,183,132,.12);
}
.nearby-fallback{
  width:3rem;
  height:3rem;
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:1.15rem;
  flex-shrink:0;
}
.nearby-copy{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:.1rem;
}
.nearby-copy small{
  color:var(--muted-fg);
  font-size:.78rem;
}

@media(max-width:768px){
  .publish-fab{
    right:1.25rem;
    bottom:5rem;
  }
  .app-shell:has(.map-layout) .publish-fab{
    right:1.25rem;
  }
  .map-area{
    min-height:calc(100vh - 19rem);
  }
  .map-park,
  .map-district{
    font-size:.68rem;
  }
  .map-search-overlay{
    width:min(320px,86%);
  }
}

/* ===== Desktop polish ===== */
:root{
  --bg:#EFF7F3;
  --fg:#1B1B23;
  --card:#FBFDFC;
  --primary:#171F1B;
  --primary-fg:#F6FBF8;
  --secondary-bg:#E2F1E9;
  --muted:#E4F0EA;
  --muted-fg:#607268;
  --border:rgba(33,54,43,.12);
  --accent:#58B784;
  --accent-soft:#E9F5EF;
  --green:#16A34A;
  --blue:#2563EB;
  --red:#DC2626;
  --radius:.5rem;
  --radius-lg:.75rem;
  --radius-xl:1rem;
  --shadow:0 10px 30px rgba(31,58,44,.08);
  --shadow-lg:0 24px 60px rgba(31,58,44,.18);
}

html,body{background:var(--bg)}
body{color:var(--fg)}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 12% 8%,rgba(88,183,132,.10),transparent 28rem),
    radial-gradient(circle at 92% 12%,rgba(22,163,74,.08),transparent 24rem),
    linear-gradient(180deg,#F7FBF9 0%,#EFF7F3 44%,#E8F2ED 100%);
}

.app-shell{background:transparent}
.sidebar{
  width:270px;
  margin:1rem 0 1rem 1rem;
  height:calc(100vh - 2rem);
  border:1px solid var(--border);
  border-radius:1.25rem;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.sidebar-brand{padding:1.15rem 1.1rem;background:linear-gradient(135deg,#F7FBF9,#fff)}
.brand-icon,.avatar-btn{
  background:linear-gradient(135deg,var(--primary),#254B37);
  box-shadow:0 8px 18px rgba(23,31,27,.16);
}
.brand-name{letter-spacing:.01em}
.sidebar-nav{padding:1rem .8rem;gap:.35rem}
.nav-item{
  min-height:2.75rem;
  border-radius:.8rem;
  padding:.7rem .9rem;
}
.nav-item--active{
  background:linear-gradient(135deg,var(--primary),#203A2C);
  box-shadow:0 10px 20px rgba(23,31,27,.16);
}
.nav-icon{width:1.4rem;text-align:center}
.main-col{padding:1rem}
.top-header{
  height:4.25rem;
  border:1px solid var(--border);
  border-radius:1.25rem;
  box-shadow:var(--shadow);
  padding:0 1.25rem;
  margin-bottom:1rem;
}
.header-title{font-size:1.25rem;font-weight:700}
.content-area{
  border:1px solid var(--border);
  border-radius:1.25rem;
  background:rgba(251,253,252,.72);
  box-shadow:var(--shadow);
  overflow:hidden;
  min-height:0;
}
.icon-btn,.avatar-btn,.map-ctrl-btn{
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.icon-btn:hover,.avatar-btn:hover,.map-ctrl-btn:hover{transform:translateY(-1px)}
.btn{border-radius:.85rem;font-weight:700;min-height:2.65rem}
.btn-primary{
  background:linear-gradient(135deg,var(--primary),#203C2D);
  box-shadow:0 10px 20px rgba(23,31,27,.15);
}
.btn-outline{background:#FBFDFC;border:1px solid var(--border)}
input,select,textarea{
  border:1px solid var(--border);
  border-radius:.85rem;
  background:#F7FBF9;
}
input:focus,select:focus,textarea:focus{
  border-color:rgba(88,183,132,.55);
  box-shadow:0 0 0 4px rgba(88,183,132,.12);
}

/* Auth */
.auth-screen{background:linear-gradient(135deg,#F7FBF9,#E8F2ED)}
.auth-left{padding:1rem}
.auth-left-bg,.auth-left-overlay{border-radius:1.5rem}
.auth-left-bg{opacity:.34}
.auth-left-overlay{
  background:linear-gradient(145deg,rgba(23,31,27,.92),rgba(37,85,59,.88));
}
.auth-left-content{padding:2rem 2.25rem}
.feature-item{border-radius:1rem;background:rgba(255,255,255,.12)}
.auth-right{padding:2rem 3rem}
.login-form{
  max-width:460px;
  background:rgba(251,253,252,.86);
  border:1px solid var(--border);
  border-radius:1.25rem;
  box-shadow:var(--shadow-lg);
  padding:1.5rem;
}
.auth-screen--modern{
  min-height:100vh;
  background:
    radial-gradient(circle at 74% 18%,rgba(88,183,132,.18),transparent 28%),
    linear-gradient(135deg,#F7FBF9 0%,#E8F2ED 48%,#D3EADE 100%);
}
.auth-showcase{
  width:min(48%,620px);
  padding:1rem;
}
.auth-showcase .auth-left-bg{
  background:
    linear-gradient(135deg,rgba(23,31,27,.28),rgba(23,31,27,.08)),
    url('https://images.unsplash.com/photo-1450778869180-41d0601e046e?w=1200&h=1400&fit=crop') center/cover;
  opacity:1;
}
.auth-showcase .auth-left-overlay{
  background:linear-gradient(145deg,rgba(23,31,27,.86),rgba(37,85,59,.62) 52%,rgba(19,83,45,.58));
}
.auth-showcase .auth-left-content{
  padding:2rem;
  justify-content:space-between;
}
.auth-eyebrow,.auth-form-kicker{
  display:inline-flex;
  width:max-content;
  border-radius:999px;
  font-size:.74rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.auth-eyebrow{
  color:#fff;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  padding:.42rem .7rem;
  margin-bottom:1rem;
}
.auth-showcase .auth-hero h1{
  max-width:11ch;
  font-family:inherit;
  font-size:clamp(2.45rem,4vw,4.4rem);
  line-height:.98;
  letter-spacing:0;
}
.auth-showcase .auth-hero p{
  max-width:34rem;
  color:rgba(255,255,255,.78);
  font-size:1rem;
}
.auth-metrics{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;
  margin:1.5rem 0;
}
.auth-metrics div{
  border:1px solid rgba(255,255,255,.18);
  border-radius:1rem;
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(12px);
  padding:.9rem;
}
.auth-metrics strong{display:block;color:#fff;font-size:1.35rem;line-height:1}
.auth-metrics span{display:block;margin-top:.35rem;color:rgba(255,255,255,.68);font-size:.74rem;font-weight:700}
.auth-panel{
  display:flex;
  justify-content:center;
}
.auth-card{
  max-width:500px;
  border-radius:1.35rem;
  background:rgba(251,253,252,.9);
  border:1px solid rgba(42,93,66,.14);
  box-shadow:0 30px 80px rgba(16,37,26,.16);
  backdrop-filter:blur(16px);
  padding:1.35rem;
}
.auth-form-head{
  margin-bottom:1rem;
}
.auth-form-kicker{
  color:#2B6446;
  background:#E9F5EF;
  padding:.36rem .65rem;
  margin-bottom:.8rem;
}
.auth-card h2{
  font-size:2rem;
  letter-spacing:0;
}
.auth-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.25rem;
  padding:.25rem;
  border:1px solid var(--border);
  border-radius:999px;
  background:#E8F5EE;
  margin-bottom:1rem;
}
.auth-tabs button{
  min-height:2.45rem;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--muted-fg);
  cursor:pointer;
  font-family:inherit;
  font-weight:900;
}
.auth-tabs .auth-tab--active{
  color:#fff;
  background:#132D1F;
  box-shadow:0 10px 24px rgba(19,45,31,.16);
}
.auth-demo-box{
  display:flex;
  align-items:center;
  gap:.75rem;
  border:1px solid rgba(88,183,132,.18);
  border-radius:1rem;
  background:#F2FAF6;
  color:#1D3D2C;
  padding:.85rem;
  margin-bottom:1rem;
}
.auth-demo-box>span{
  width:2.35rem;
  height:2.35rem;
  border-radius:.85rem;
  display:grid;
  place-items:center;
  background:#132D1F;
  color:#fff;
}
.auth-demo-box small{display:block;color:#596F63;margin-top:.15rem}
.auth-card .input-wrap input{
  min-height:3rem;
  border-radius:1rem;
  background:#F7FBF9;
}
.auth-form-options{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:.25rem 0 1rem;
}
.auth-check{
  display:flex;
  align-items:center;
  gap:.45rem;
  color:var(--muted-fg);
  font-size:.85rem;
  font-weight:700;
}
.auth-submit{
  min-height:3rem;
  border-radius:1rem;
}
.auth-register-summary{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  border:1px solid rgba(22,163,74,.16);
  background:#ECFDF5;
  color:#166534;
  border-radius:1rem;
  padding:.8rem;
  margin:.25rem 0 1rem;
}
.auth-register-summary span{
  width:1.65rem;
  height:1.65rem;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#16A34A;
  color:#fff;
  font-weight:900;
  flex:0 0 auto;
}
.auth-register-summary p{font-size:.84rem;line-height:1.4}

/* Public landing */
.landing-page{
  height:100vh;
  background:#F7FBF9;
  color:#15211B;
  overflow-x:hidden;
  overflow-y:auto;
  scroll-behavior:smooth;
  scrollbar-gutter:stable;
  overscroll-behavior-y:contain;
}
.landing-page section[id]{
  scroll-margin-top:6.5rem;
}
.landing-nav{
  position:fixed;
  top:1rem;
  left:50%;
  transform:translateX(-50%);
  z-index:40;
  width:min(1120px,calc(100vw - 2rem));
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:1rem;
  padding:.55rem;
  border:1px solid rgba(255,255,255,.46);
  border-radius:999px;
  background:rgba(247,251,249,.78);
  box-shadow:0 18px 50px rgba(16,37,26,.12);
  backdrop-filter:blur(18px);
}
.landing-brand{
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  gap:.55rem;
  color:#15211B;
  cursor:pointer;
  font-family:inherit;
}
.landing-brand span{
  width:2.35rem;
  height:2.35rem;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:#132D1F;
  box-shadow:0 12px 24px rgba(19,45,31,.18);
}
.landing-nav nav{
  display:flex;
  justify-content:center;
  gap:.45rem;
}
.landing-nav a,.landing-link{
  border:0;
  background:transparent;
  color:#475F52;
  text-decoration:none;
  font-family:inherit;
  font-weight:800;
  font-size:.88rem;
  cursor:pointer;
  padding:.65rem .85rem;
  border-radius:999px;
}
.landing-nav a:hover,.landing-link:hover{background:rgba(19,45,31,.08);color:#15211B}
.landing-nav-actions{display:flex;align-items:center;gap:.35rem}
.landing-btn{
  border:0;
  border-radius:999px;
  min-height:2.75rem;
  padding:0 1.1rem;
  font-family:inherit;
  font-weight:900;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.landing-btn:hover{transform:translateY(-1px)}
.landing-btn--dark{background:#132D1F;color:#fff;box-shadow:0 16px 34px rgba(19,45,31,.2)}
.landing-btn--light{background:#fff;color:#15211B;box-shadow:0 18px 38px rgba(0,0,0,.18)}
.landing-btn--ghost{background:rgba(255,255,255,.13);color:#fff;border:1px solid rgba(255,255,255,.3)}
.landing-btn--outline{background:transparent;color:#132D1F;border:1px solid rgba(19,45,31,.22)}
.landing-hero{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:flex-end;
  padding:8rem max(1.25rem,calc((100vw - 1120px)/2)) 4rem;
  overflow:hidden;
}
.landing-hero-media{
  position:absolute;
  inset:0;
  background:url('https://images.unsplash.com/photo-1450778869180-41d0601e046e?w=1800&h=1200&fit=crop') center/cover;
  transform:scale(1.02);
}
.landing-hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(12,20,16,.82) 0%,rgba(12,20,16,.46) 44%,rgba(12,20,16,.16) 100%),
    linear-gradient(to top,rgba(12,20,16,.70),transparent 58%);
}
.landing-hero-content{
  position:relative;
  z-index:2;
  width:min(760px,100%);
  color:#fff;
}
.landing-kicker,.landing-section-label{
  display:inline-flex;
  width:max-content;
  border-radius:999px;
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.landing-kicker{
  background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.24);
  padding:.45rem .75rem;
  margin-bottom:1rem;
  backdrop-filter:blur(10px);
}
.landing-hero h1{
  font-size:clamp(4rem,11vw,9rem);
  line-height:.85;
  letter-spacing:0;
  margin-bottom:1rem;
}
.landing-hero p{
  max-width:39rem;
  color:rgba(255,255,255,.82);
  font-size:clamp(1rem,1.8vw,1.22rem);
  line-height:1.55;
}
.landing-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.5rem;
}
.landing-hero-card{
  position:absolute;
  right:max(1.25rem,calc((100vw - 1120px)/2));
  bottom:4rem;
  z-index:3;
  width:min(300px,calc(100vw - 2.5rem));
  border:1px solid rgba(255,255,255,.2);
  border-radius:1.25rem;
  background:rgba(255,255,255,.14);
  color:#fff;
  padding:1rem;
  backdrop-filter:blur(16px);
  box-shadow:0 24px 55px rgba(0,0,0,.22);
}
.landing-hero-card span,.landing-hero-card small{display:block;color:rgba(255,255,255,.72)}
.landing-hero-card strong{display:block;font-size:1.35rem;margin:.25rem 0}
.landing-section{
  width:min(1120px,calc(100vw - 2rem));
  margin:0 auto;
  padding:5rem 0;
}
.landing-split{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1fr);
  gap:3rem;
  align-items:start;
}
.landing-section-label{
  color:#2B6446;
  background:#E9F5EF;
  padding:.42rem .72rem;
  margin-bottom:1rem;
}
.landing-section h2,.landing-final h2{
  font-size:clamp(2rem,4vw,4rem);
  line-height:1;
  letter-spacing:0;
}
.landing-section p,.landing-final p{
  color:#536A5E;
  font-size:1.05rem;
  line-height:1.65;
}
.landing-stats{
  width:min(1120px,calc(100vw - 2rem));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
}
.landing-stats article,.landing-modules article,.landing-steps article{
  border:1px solid rgba(42,93,66,.13);
  border-radius:1rem;
  background:#FBFDFC;
  box-shadow:0 18px 46px rgba(16,37,26,.07);
}
.landing-stats article{
  padding:1.2rem;
}
.landing-stats strong{display:block;font-size:1.85rem;line-height:1}
.landing-stats span{display:block;margin-top:.35rem;color:#5D7568;font-weight:800;font-size:.82rem}
.landing-section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:1.5rem;
}
.landing-section-head h2{max-width:720px}
.landing-modules{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.landing-modules article{
  min-height:220px;
  padding:1.25rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.landing-modules article>span{
  width:3rem;
  height:3rem;
  border-radius:1rem;
  display:grid;
  place-items:center;
  background:#E9F5EF;
  color:#2B6446;
  font-size:1.35rem;
}
.landing-modules h3,.landing-steps h3{font-size:1.25rem;margin:.9rem 0 .45rem}
.landing-modules p,.landing-steps p{color:#536A5E;line-height:1.55}
.landing-process{
  width:min(1120px,calc(100vw - 2rem));
  margin:0 auto;
  padding:1rem 0 5rem;
}
.landing-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.landing-steps article{padding:1.35rem}
.landing-steps strong{
  color:#58B784;
  font-size:.9rem;
}
.landing-final{
  width:min(1120px,calc(100vw - 2rem));
  margin:0 auto 1.5rem;
  border-radius:1.5rem;
  background:#132D1F;
  color:#fff;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2rem;
  align-items:center;
  padding:2rem;
}
.landing-final .landing-section-label{background:rgba(255,255,255,.12);color:#fff}
.landing-final p{color:rgba(255,255,255,.72);margin-top:.75rem}
.landing-final-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}
.landing-final .landing-btn--dark{background:#fff;color:#15211B}
.landing-final .landing-btn--outline{border-color:rgba(255,255,255,.28);color:#fff}

/* Feed */
.tiktok-container{
  background:
    linear-gradient(135deg,rgba(23,31,27,.96),rgba(28,63,44,.94));
  display:flex;
  justify-content:center;
  align-items:center;
  padding:1.25rem;
}
.tiktok-card{
  width:min(430px,calc((100vh - 9rem) * .5625),100%);
  height:min(720px,calc(100vh - 9rem),100%);
  max-height:100%;
  aspect-ratio:9/16;
  border-radius:1.25rem;
  box-shadow:0 32px 90px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.12);
}
.tiktok-gradient{
  background:
    linear-gradient(90deg,rgba(0,0,0,.56) 0%,rgba(0,0,0,.10) 44%,rgba(0,0,0,.42) 100%),
    linear-gradient(to top,rgba(0,0,0,.86) 0%,rgba(0,0,0,.22) 54%,transparent 76%);
}
.tiktok-info{
  padding:1rem;
  padding-bottom:1.1rem;
  max-width:100%;
  position:relative;
}
.tiktok-info-left{
  max-width:100%;
  margin-right:4.25rem;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.12);
  border-radius:1rem;
  padding:.85rem;
  backdrop-filter:blur(10px);
}
.author-avatar{width:2.8rem;height:2.8rem}
.author-name{font-size:.9rem}
.author-meta{font-size:.72rem}
.btn-follow{font-size:.78rem;padding:.25rem .7rem}
.tiktok-desc{font-size:.84rem;line-height:1.4}
.hashtag{font-size:.76rem}
.tiktok-actions{
  position:absolute;
  right:.85rem;
  bottom:1.1rem;
  gap:.7rem;
  z-index:4;
}
.discover-feed-tabs{
  position:absolute;
  top:1rem;
  left:50%;
  transform:translateX(-50%);
  z-index:8;
  display:inline-flex;
  gap:.25rem;
  padding:.25rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(0,0,0,.28);
  backdrop-filter:blur(12px);
}
.discover-feed-tabs button{
  border:0;
  border-radius:999px;
  background:transparent;
  color:rgba(255,255,255,.72);
  cursor:pointer;
  font-family:inherit;
  font-size:.82rem;
  font-weight:900;
  padding:.48rem 1rem;
}
.discover-feed-tabs .discover-feed-tab--active{
  background:#fff;
  color:#171F1B;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.btn-follow--active{
  background:rgba(255,255,255,.18);
  color:#fff;
  border:1px solid rgba(255,255,255,.35);
}
.tiktok-empty-feed{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:5;
  width:min(360px,calc(100% - 2rem));
  border:1px solid rgba(255,255,255,.16);
  border-radius:1rem;
  background:rgba(0,0,0,.30);
  color:#fff;
  text-align:center;
  padding:1.25rem;
  backdrop-filter:blur(12px);
}
.tiktok-empty-feed strong{display:block;font-size:1.1rem;margin-bottom:.35rem}
.tiktok-empty-feed p{color:rgba(255,255,255,.72);font-size:.9rem;line-height:1.45;margin-bottom:1rem}
.action-btn{
  width:3.25rem;
  height:3.25rem;
  border-radius:1rem;
  font-size:1.25rem;
}
.action-btn small{font-size:.58rem}
.play-btn{width:4rem;height:4rem;font-size:1.35rem}
.tiktok-nav-arrows{right:.85rem;gap:.55rem}
.tiktok-nav-btn{width:2.75rem;height:2.75rem}
.controls-hint,.tiktok-nav-btn,.play-btn{backdrop-filter:blur(10px)}
.controls-hint{top:1rem;left:1rem}
.post-indicators{right:.95rem}
.post-indicator{height:1.7rem}
.discover-suggestions{display:none}

@media(min-width:1100px){
  .discover-suggestions{
    position:absolute;
    top:50%;
    right:1.25rem;
    bottom:auto;
    height:min(720px,calc(100vh - 9rem),calc(100% - 2.5rem));
    z-index:5;
    width:min(320px,26vw);
    display:flex;
    flex-direction:column;
    gap:1rem;
    color:#fff;
    pointer-events:auto;
    transform:translateY(-50%);
  }
  .discover-suggestions-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.75rem;
    padding:.95rem 1rem;
    border:1px solid rgba(255,255,255,.14);
    border-radius:1rem;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(14px);
    box-shadow:0 18px 45px rgba(0,0,0,.18);
  }
  .discover-suggestions-head span{
    display:block;
    color:rgba(255,255,255,.62);
    font-size:.74rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    margin-bottom:.15rem;
  }
  .discover-suggestions-head strong{
    display:block;
    font-size:1rem;
    line-height:1.2;
  }
  .discover-suggestions-list{
    display:flex;
    flex-direction:column;
    gap:.65rem;
    min-height:0;
    overflow-y:auto;
    padding-right:.15rem;
  }
  .discover-suggestion-card{
    display:grid;
    grid-template-columns:3rem minmax(0,1fr) auto;
    align-items:center;
    gap:.75rem;
    padding:.75rem;
    border:1px solid rgba(255,255,255,.12);
    border-radius:1rem;
    background:rgba(255,255,255,.09);
    backdrop-filter:blur(14px);
    box-shadow:0 14px 32px rgba(0,0,0,.16);
  }
  .discover-suggestion-card img{
    width:3rem;
    height:3rem;
    border-radius:50%;
    object-fit:cover;
    border:2px solid rgba(255,255,255,.35);
  }
  .discover-suggestion-card div{
    min-width:0;
  }
  .discover-suggestion-card strong,
  .discover-suggestion-card span,
  .discover-suggestion-card small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .discover-suggestion-card strong{
    font-size:.9rem;
    line-height:1.15;
  }
  .discover-suggestion-card span{
    color:rgba(255,255,255,.76);
    font-size:.78rem;
    margin-top:.12rem;
  }
  .discover-suggestion-card small{
    color:rgba(255,255,255,.52);
    font-size:.72rem;
    margin-top:.15rem;
  }
  .suggestion-follow-btn{
    min-width:4.35rem;
    min-height:2rem;
    border:0;
    border-radius:999px;
    background:#fff;
    color:#171F1B;
    cursor:pointer;
    font-family:inherit;
    font-size:.75rem;
    font-weight:900;
    padding:.35rem .72rem;
  }
  .suggestion-follow-btn--active{
    background:rgba(255,255,255,.14);
    color:#fff;
    border:1px solid rgba(255,255,255,.28);
  }
  .suggestion-profile-btn{
    width:100%;
    min-height:2.75rem;
    border:1px solid rgba(255,255,255,.16);
    border-radius:1rem;
    background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
    color:#fff;
    cursor:pointer;
    font-family:inherit;
    font-weight:900;
    box-shadow:0 18px 40px rgba(0,0,0,.18);
    backdrop-filter:blur(14px);
  }
}

/* Lists and cards */
.adoptions-page{background:transparent}
.adoptions-header{
  padding:1.25rem 1.5rem;
  background:rgba(251,253,252,.95);
  backdrop-filter:blur(12px);
}
.adoptions-title-row h2{font-size:1.75rem;font-weight:800}
.count-label{
  background:var(--accent-soft);
  color:#9A3412;
  padding:.4rem .75rem;
  border-radius:99px;
  font-weight:700;
}
.filter-row{gap:.625rem}
.filter-chip{
  border:1px solid var(--border);
  background:#FBFDFC;
  font-weight:700;
}
.filter-chip--active{
  background:linear-gradient(135deg,var(--primary),#203A2C);
  border-color:transparent;
}
.pets-grid{
  grid-template-columns:repeat(auto-fill,minmax(235px,1fr));
  gap:1.25rem;
  padding:1.5rem;
}
.pet-card,.pub-card,.stat-card,.profile-section-card,.contact-card,.chip,.nearby-item{
  border:1px solid var(--border);
  border-radius:1rem;
  box-shadow:0 8px 22px rgba(31,58,44,.06);
}
.pet-card{background:#FBFDFC}
.pet-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 45px rgba(31,58,44,.14);
}
.pet-card-img{aspect-ratio:4/3;overflow:hidden}
.pet-card-img img{transition:transform .35s ease}
.pet-card:hover .pet-card-img img{transform:scale(1.04)}
.pet-card-body{padding:1rem}
.pet-card-body h3{font-size:1.1rem}
.pet-card-loc{padding-top:.35rem}
.lost-stats{
  background:rgba(251,253,252,.84);
  padding:1rem 1.5rem;
}
.lost-stat{box-shadow:var(--shadow);background:#FBFDFC}

/* Map */
.map-layout{background:#FBFDFC}
.map-bg{
  background-color:#EEF4E8;
  background-image:
    linear-gradient(rgba(45,88,53,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(45,88,53,.10) 1px,transparent 1px),
    radial-gradient(circle at 25% 24%,rgba(22,163,74,.12),transparent 12rem),
    radial-gradient(circle at 70% 62%,rgba(37,99,235,.10),transparent 14rem);
}
.nearby-panel{width:340px;background:#FBFDFC}
.nearby-panel h3{font-size:1.15rem;padding:1.15rem}
.nearby-list{gap:.75rem;padding:1rem}
.nearby-item{background:#F7FBF9}
.map-search-overlay{top:1.25rem;width:min(420px,90%)}
.map-search-input{height:3rem}
.map-legend,.map-popup{
  border-radius:1rem;
  box-shadow:var(--shadow-lg);
}
.pin-dot{width:1.45rem;height:1.45rem}

/* Chats */
.chats-layout{background:#FBFDFC}
.chat-list-panel{width:360px;background:#FBFDFC}
.chat-convo-panel{min-width:0}
.chat-list-header{padding:1.25rem}
.chat-list-header h2{font-size:1.35rem}
.chat-item{padding:1rem 1.1rem}
.chat-item--active{
  background:var(--accent-soft);
  box-shadow:inset 4px 0 0 var(--accent);
}
.chat-convo-header{padding:1rem 1.25rem}
.chat-messages{
  background:
    radial-gradient(circle at 12% 12%,rgba(88,183,132,.08),transparent 18rem),
    #F2F9F5;
  padding:1.25rem 1.5rem;
}
.msg-bubble{box-shadow:0 8px 22px rgba(31,58,44,.08)}
.chat-input-row{padding:1rem 1.25rem}
.chat-empty{background:#F2F9F5}

/* Detail and profile */
.detail-page{background:#FBFDFC}
.detail-header{padding:1rem 1.25rem}
.detail-scroll{
  max-width:1120px;
  width:100%;
  margin:0 auto;
}
.detail-hero{
  margin:1.25rem;
  border-radius:1.25rem;
  overflow:hidden;
  aspect-ratio:21/8;
  box-shadow:var(--shadow);
}
.detail-content{padding:0 1.25rem 1.5rem}
.detail-chips{grid-template-columns:repeat(3,minmax(0,1fr))}
.detail-footer{background:#FBFDFC}
.profile-wrap{max-width:920px;padding:2rem}
.profile-header{
  background:linear-gradient(135deg,#FBFDFC,#E9F5EF);
  border:1px solid var(--border);
  border-radius:1.25rem;
  padding:1.5rem;
  box-shadow:var(--shadow);
}
.profile-avatar{
  background:linear-gradient(135deg,var(--primary),#296143);
  box-shadow:0 14px 28px rgba(23,31,27,.18);
}

/* Instagram-style profile */
.insta-profile{
  height:100%;
  overflow-y:auto;
  max-width:1040px;
  margin:0 auto;
  padding:2rem 1.75rem 3rem;
}
.insta-profile-head{
  display:grid;
  grid-template-columns:190px 1fr;
  gap:2rem;
  align-items:start;
  padding:1.25rem 0 2rem;
}
.insta-avatar-wrap{display:flex;justify-content:center}
.insta-avatar-ring{
  width:150px;
  height:150px;
  border-radius:50%;
  padding:5px;
  background:linear-gradient(135deg,#FF3040,#58B784,#58B784);
  box-shadow:0 18px 40px rgba(88,183,132,.18);
}
.insta-avatar-ring img,
.insta-avatar-ring span{
  width:100%;
  height:100%;
  border-radius:50%;
  border:5px solid var(--card);
  display:flex;
  align-items:center;
  justify-content:center;
  object-fit:cover;
  background:linear-gradient(135deg,var(--primary),#296143);
  color:#fff;
  font-size:3rem;
  font-weight:800;
}
.insta-profile-main{min-width:0}
.insta-top-row{
  display:flex;
  align-items:center;
  gap:.6rem;
  margin-bottom:1rem;
}
.insta-top-row h2{
  font-size:1.75rem;
  line-height:1;
  font-weight:800;
}
.verified-badge{
  width:1.25rem;
  height:1.25rem;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#1D9BF0;
  color:#fff;
  font-size:.8rem;
  font-weight:900;
}
.insta-settings-btn{
  margin-left:auto;
  background:#E2F1E9;
  color:var(--fg);
}
.insta-actions{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:.6rem;
  max-width:620px;
  margin-bottom:1.2rem;
}
.insta-actions .btn{min-height:2.5rem;padding:.55rem .9rem}
.insta-stats{
  display:flex;
  gap:2.4rem;
  margin-bottom:1rem;
}
.insta-stats div{display:flex;gap:.35rem;align-items:baseline}
.insta-stats strong{font-size:1rem}
.insta-stats span{font-size:.95rem;color:var(--fg)}
.insta-bio{
  max-width:560px;
  line-height:1.45;
  font-size:.95rem;
}
.insta-bio strong{display:block;margin-bottom:.2rem}
.insta-bio p{margin:.12rem 0}
.insta-mini-stats{
  display:none;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  margin-bottom:1rem;
}
.insta-mini-stats div{
  padding:.75rem .5rem;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:.1rem;
}
.insta-mini-stats strong{font-size:1rem}
.insta-mini-stats span{font-size:.76rem;color:var(--muted-fg)}
.insta-tabs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--border);
  margin-top:.5rem;
}
.insta-tab{
  height:3.25rem;
  border:none;
  border-top:2px solid transparent;
  background:transparent;
  cursor:pointer;
  color:var(--muted-fg);
  font-family:inherit;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
}
.insta-tab--active{
  border-top-color:var(--fg);
  color:var(--fg);
}
.insta-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.35rem;
}
.insta-post-card{
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  background:#ddd;
  cursor:pointer;
}
.insta-post-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .28s ease,filter .28s ease;
}
.insta-post-card:hover img{
  transform:scale(1.04);
  filter:brightness(.72);
}
.insta-post-overlay{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .18s ease;
  background:rgba(0,0,0,.42);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:1rem;
  text-align:center;
  padding:1rem;
}
.insta-post-card:hover .insta-post-overlay{opacity:1}
.insta-post-overlay strong{display:block;font-size:1rem}
.insta-post-overlay span{font-size:.82rem}
.insta-post-stats{
  display:flex;
  gap:1.2rem;
  font-weight:800;
}
.insta-post-type{
  position:absolute;
  top:.55rem;
  right:.6rem;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.55);
  font-weight:900;
}
.settings-sheet{max-width:560px}
.settings-logout{
  color:var(--red);
  border-color:rgba(220,38,38,.45);
}

/* Modals */
.modal-overlay{align-items:center;padding:1rem}
.modal-sheet{
  border-radius:1.25rem;
  box-shadow:var(--shadow-lg);
  border:1px solid var(--border);
}
.upload-zone{
  background:linear-gradient(135deg,#F7FBF9,#E6F4ED);
  border-color:rgba(88,183,132,.35);
}

@media(min-width:1200px){
  .pets-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
  .adoptions-page,.profile-wrap,.sub-page{scrollbar-gutter:stable}
}

@media(max-width:768px){
  .sidebar{margin:0;height:100vh;border-radius:0}
  .main-col{padding:0}
  .top-header{height:3.5rem;margin:0;border-radius:0;border-left:none;border-right:none;border-top:none}
  .content-area{border:none;border-radius:0;box-shadow:none}
  .tiktok-container{padding:0}
  .tiktok-card{border-radius:0;max-width:none;width:100%;height:100%;aspect-ratio:auto}
  .tiktok-info{padding:1.5rem;padding-bottom:4rem}
  .tiktok-info-left{background:transparent;border:none;padding:0;margin-right:0}
  .tiktok-actions{position:static}
  .pets-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:1rem}
  .chat-list-panel--hidden-mobile{display:none}
  .nearby-panel{width:100%}
  .detail-hero{margin:0;border-radius:0;aspect-ratio:1}
  .login-form{box-shadow:none;border:none;padding:0;background:transparent}
  .auth-screen--modern{height:auto;min-height:100vh;overflow:auto}
  .auth-panel{padding:1.25rem}
  .auth-form-wrap{align-items:flex-start}
  .auth-card{max-width:none;width:100%;box-shadow:none}
  .auth-card h2{font-size:1.65rem}
  .auth-form-options{align-items:flex-start;flex-direction:column;gap:.65rem}
  .form-grid-2{grid-template-columns:1fr}
  .landing-nav{
    top:.75rem;
    width:calc(100vw - 1rem);
    grid-template-columns:1fr auto;
    border-radius:1.25rem;
  }
  .landing-nav nav{display:none}
  .landing-nav-actions{justify-content:flex-end}
  .landing-link{display:none}
  .landing-btn{min-height:2.45rem;padding:0 .85rem}
  .landing-hero{
    min-height:88vh;
    padding:7rem 1rem 2rem;
    align-items:flex-end;
  }
  .landing-hero h1{font-size:clamp(3.35rem,18vw,5.4rem)}
  .landing-hero-card{
    position:relative;
    right:auto;
    bottom:auto;
    margin-top:1.25rem;
    width:100%;
  }
  .landing-split,.landing-final{grid-template-columns:1fr}
  .landing-stats,.landing-modules,.landing-steps{grid-template-columns:1fr}
  .landing-section{padding:3.25rem 0}
  .landing-section-head{display:block}
  .landing-final{padding:1.25rem}
  .landing-final-actions{justify-content:flex-start}
  .modal-overlay{align-items:flex-end;padding:0}
  .modal-sheet{border-radius:1.5rem 1.5rem 0 0}
  .insta-profile{padding:1rem 0 5rem}
  .insta-profile-head{
    grid-template-columns:92px 1fr;
    gap:.9rem;
    padding:1rem 1rem 1.25rem;
  }
  .insta-avatar-ring{width:86px;height:86px;padding:3px}
  .insta-avatar-ring img,.insta-avatar-ring span{border-width:3px;font-size:1.6rem}
  .insta-top-row{margin-bottom:.7rem}
  .insta-top-row h2{font-size:1.25rem}
  .insta-actions{
    grid-template-columns:1fr 1fr;
    gap:.45rem;
    margin-bottom:.8rem;
  }
  .insta-actions .btn:nth-child(3){display:none}
  .insta-stats{display:none}
  .insta-bio{font-size:.86rem}
  .insta-mini-stats{display:grid}
  .insta-tabs{margin-top:0}
  .insta-tab{height:2.8rem;font-size:0}
  .insta-tab span{font-size:1rem}
  .insta-grid{gap:.15rem}
  .insta-post-overlay{display:none}
}

/* Loading states */
.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem}
.loading-spinner{width:2.5rem;height:2.5rem;border:3px solid var(--muted);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tiktok-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;color:#fff}
.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem;color:var(--muted-fg)}
.not-found h1{font-size:4rem;font-weight:700;color:var(--primary)}
.pet-type-badge{position:absolute;bottom:.75rem;left:.75rem;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);color:#fff;padding:.3rem .75rem;border-radius:99px;font-size:.8rem}

/* ===== MÓDULO MASCOTAS PERDIDAS ===== */
.lost-stats{display:flex;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}
.lost-stat{display:flex;align-items:center;gap:.625rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:.75rem 1.25rem}
.lost-stat span{font-size:1.5rem}
.lost-stat strong{font-size:1.25rem;font-weight:700}
.lost-stat small{font-size:.75rem;color:var(--muted-fg)}
.lost-stat--red{border-left:4px solid var(--red)}
.lost-stat--blue{border-left:4px solid var(--blue)}

/* Badges mascotas perdidas/encontradas */
.lost-badge{position:absolute;top:.625rem;left:.625rem;color:#fff;padding:.25rem .7rem;border-radius:99px;font-size:.75rem;font-weight:700;backdrop-filter:blur(4px)}
.lost-badge--lost{background:rgba(239,68,68,.9)}
.lost-badge--found{background:rgba(59,130,246,.9)}
.reward-badge{position:absolute;bottom:.625rem;left:.625rem;background:rgba(73,169,118,.9);color:#000;padding:.25rem .7rem;border-radius:99px;font-size:.75rem;font-weight:700;backdrop-filter:blur(4px)}

/* Leyenda del mapa */
.map-legend{position:absolute;bottom:1.5rem;left:1rem;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius-xl);padding:.875rem 1rem;box-shadow:var(--shadow)}
.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem;margin-bottom:.375rem}
.legend-item:last-child{margin-bottom:0}
.legend-dot{width:.875rem;height:.875rem;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.3);flex-shrink:0}

/* Pines del mapa diferenciados */
.map-pin--adopcion .pin-dot{background:#22C55E}
.map-pin--perdida .pin-dot{background:#ef4444;animation:pinPulsoRojo 1.5s ease-in-out infinite}
.map-pin--encontrada .pin-dot{background:#3B82F6}
@keyframes pinPulsoRojo{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}

/* Panel pin seleccionado en mapa */
.pin-tipo-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .7rem;border-radius:99px;margin-top:.4rem}

/* filtros lost-chip */
.filter-chip--lost.filter-chip--active{background:var(--red);border-color:var(--red)}
.filter-chip--found.filter-chip--active{background:var(--blue);border-color:var(--blue)}

/* loading */
.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem}
.loading-spinner{width:2.5rem;height:2.5rem;border:3px solid var(--muted);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tiktok-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;color:#fff}
.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem;color:var(--muted-fg)}
.not-found h1{font-size:4rem;font-weight:700;color:var(--primary)}
.pet-type-badge{position:absolute;bottom:.75rem;left:.75rem;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);color:#fff;padding:.3rem .75rem;border-radius:99px;font-size:.8rem}
.hint-box{background:#F0F4FF;border:1px solid #C7D2FE;border-radius:var(--radius-xl);padding:.75rem 1rem;font-size:.85rem;color:#3730A3;margin-bottom:1rem}
.hint-box code{background:#E0E7FF;border-radius:.375rem;padding:.1rem .4rem;font-family:monospace;font-size:.85rem;color:#1E1B4B}
