:root{--bg: #f0eaff;--bg-blob: radial-gradient(ellipse 90% 60% at 15% 30%, rgba(180, 140, 255, .45) 0%, transparent 55%), radial-gradient(ellipse 70% 50% at 85% 50%, rgba(120, 200, 255, .4) 0%, transparent 55%), radial-gradient(ellipse 60% 60% at 50% 95%, rgba(255, 180, 200, .35) 0%, transparent 55%);--surface: #ffffff;--surface-warm: #fffbfe;--text: #2d2a4a;--text-muted: #5c5878;--heading: #2d2a4a;--accent: #6b4cbb;--accent-hover: #5a3da8;--accent-soft: #e8dcff;--accent-muted: rgba(107, 76, 187, .5);--coral: #e85d4c;--coral-soft: #ffebe8;--teal: #0d9488;--teal-soft: #ccfbf1;--pastel-purple: #c4b5fd;--pastel-pink: #f9a8d4;--pastel-yellow: #fde047;--pastel-blue: #7dd3fc;--retro-green: #0d9488;--retro-green-soft: #ccfbf1;--mustard: #eab308;--mustard-soft: #fef9c3;--warm: #e85d4c;--warm-soft: #ffebe8;--border: #ddd6fe;--border-strong: #c4b5fd;--shadow: 0 4px 20px rgba(45, 42, 74, .1);--shadow-soft: 0 2px 12px rgba(45, 42, 74, .08);--shadow-3d: 0 8px 24px rgba(45, 42, 74, .12), 0 4px 8px rgba(45, 42, 74, .06);--shadow-3d-hover: 0 16px 40px rgba(45, 42, 74, .15), 0 6px 12px rgba(45, 42, 74, .08);--shadow-raised: 0 2px 0 0 rgba(0, 0, 0, .06);--radius: 999px;--radius-card: 24px;--radius-chunky: 20px;--font-display: "Quicksand", "Nunito", system-ui, sans-serif;--font-sans: "Nunito", system-ui, sans-serif}*{box-sizing:border-box}html{overscroll-behavior:none;scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);background:var(--bg);background-image:var(--bg-blob);background-attachment:fixed;color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;overscroll-behavior:none;min-height:100vh}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-display);font-weight:700;margin:0 0 .5em;letter-spacing:-.01em;color:var(--heading)}h1{font-size:1.9rem}h2{font-size:1.45rem}h3{font-size:1.2rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;color:var(--accent-hover)}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit;font-size:1rem;color:var(--text);-webkit-text-fill-color:var(--text)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus{-webkit-text-fill-color:var(--text)!important;-webkit-box-shadow:0 0 0 1000px var(--surface) inset!important;box-shadow:0 0 0 1000px var(--surface) inset!important;transition:background-color 5000s ease-in-out 0s}.container{max-width:900px;margin:0 auto;padding:0 1.25rem}.site-header{background:var(--surface);border-bottom:1px solid var(--border);padding:.75rem 1.25rem;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-3d)}.header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.logo{font-family:var(--font-display);font-weight:700;font-size:1.4rem;color:var(--heading)!important;display:inline-flex;align-items:center;gap:.35rem;text-decoration:none!important}.logo:hover{color:var(--accent)!important;text-decoration:none!important}.logo-paw{font-size:1.25rem}.nav-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.nav-links a{color:var(--text);font-weight:600;font-size:.95rem}.nav-links a:hover{color:var(--accent)}.nav-links .btn,.nav-links .btn:hover{text-decoration:none!important}.nav-btn{font-weight:600}.app-shell{min-height:100vh}.app-sidebar{position:fixed;top:0;left:0;width:220px;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--border);padding:1.25rem 0;display:flex;flex-direction:column;gap:0;box-shadow:var(--shadow-3d);z-index:100}.app-sidebar-header{padding:0 1.25rem .5rem;border-bottom:1px solid var(--border);margin-bottom:.5rem;flex-shrink:0}.nav-sidebar--primary{flex:1;min-height:0}.nav-sidebar--secondary{padding-top:.5rem;margin-top:.25rem;border-top:1px solid var(--border)}.nav-sidebar--secondary a{font-size:.875rem;color:var(--text-muted)}.nav-sidebar--secondary a:hover,.nav-sidebar--secondary a.active{color:var(--accent);background:var(--accent-soft)}.app-sidebar-footer{flex-shrink:0;padding-top:1rem;margin-top:.5rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.25rem}.app-sidebar .logo{font-size:1.25rem}.nav-sidebar{display:flex;flex-direction:column;gap:.25rem;padding:0 .75rem;flex:1}.nav-sidebar a{display:block;padding:.6rem .75rem;border-radius:var(--radius-chunky);color:var(--text);font-weight:600;font-size:.95rem;text-decoration:none}.nav-sidebar a:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}.nav-sidebar a.active,.nav-sidebar a[aria-current=page]{background:linear-gradient(145deg,var(--accent-soft) 0%,#e8dcff 100%);color:var(--accent);box-shadow:0 2px #6b4cbb26}.nav-sidebar-link-with-badge{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.nav-sidebar-badge{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:50%;background:var(--warm);color:#fff;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.nav-sidebar-btn{margin-top:auto;width:100%;justify-content:flex-start;font-weight:600;text-align:left;padding:.6rem .75rem}.app-main{margin-left:220px;min-height:100vh;padding-bottom:2rem;overflow-x:hidden;overscroll-behavior:none}.app-page{padding:1.5rem 1.25rem 2rem;min-height:100%}.app-page-content{max-width:720px;margin:0 auto}.app-page-content--narrow{max-width:560px}.profile-page-content{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 280px;gap:1.5rem;align-items:start}.profile-page-content--sections{grid-template-columns:1fr 280px;gap:1.5rem 1.75rem}.profile-page-content--sections .profile-section-identity{grid-column:1 / -1}.profile-page-content--sections .profile-form-sections{min-width:0}@media (max-width: 720px){.profile-page-content,.profile-page-content--sections{grid-template-columns:1fr}}.profile-section-identity{background:var(--surface);border-radius:24px;padding:1.5rem 1.75rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.profile-section-identity-top{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.profile-section-avatar-wrap{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.profile-section-avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}.profile-section-avatar .profile-picture-img,.profile-section-avatar .profile-picture-fallback{width:100%;height:100%;object-fit:cover;font-size:1.5rem}.profile-section-avatar-change{font-size:.9rem;font-weight:600;color:var(--accent);background:none;border:none;cursor:pointer;padding:0;font-family:inherit}.profile-section-avatar-change:hover{text-decoration:underline}.profile-section-identity-info{min-width:0}.profile-identity-name{margin:0 0 .2rem;font-size:1.4rem;font-weight:800;color:var(--heading)}.profile-identity-email{margin:0 0 .35rem;font-size:.95rem;color:var(--text-muted)}.profile-identity-meta{margin:0;font-size:.9rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.5rem 1rem}.profile-identity-meta span:not(:first-child):before{content:" · ";color:var(--text-muted)}.profile-identity-meta a{color:var(--accent);font-weight:600}.profile-section-photo-edit{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.profile-photo-edit-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.profile-form-sections{display:flex;flex-direction:column;gap:1.25rem}.profile-section-card{background:var(--surface);border-radius:20px;padding:1.25rem 1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.profile-section-card-title{margin:0 0 1rem;font-size:1.05rem;font-weight:700;color:var(--heading)}.profile-dogs-count{margin:.75rem 0 0;font-size:.9rem;color:var(--text-muted)}.profile-dogs-count a{color:var(--accent);font-weight:600}.profile-pledge-badge{margin:0 0 .75rem;padding:.35rem .75rem;display:inline-block;background:var(--teal-soft);color:var(--teal);border-radius:999px;font-size:.9rem;font-weight:600}.profile-pledge-cta p{margin:0 0 .5rem;font-size:.95rem;color:var(--text)}.profile-activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.profile-activity-item{text-align:center;padding:.75rem;background:var(--surface-warm);border-radius:16px;border:1px solid var(--border)}.profile-activity-value{display:block;font-size:1.5rem;font-weight:800;color:var(--accent)}.profile-activity-label{font-size:.8rem;color:var(--text-muted)}.profile-toggles{display:flex;flex-direction:column;gap:.75rem}.profile-toggle-row{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.95rem;color:var(--text)}.profile-toggle-row input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.profile-account-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.profile-account-label{font-weight:600;color:var(--text-muted);font-size:.9rem}.profile-account-value{color:var(--text)}.profile-save-success{color:var(--teal);font-weight:600;margin:0 0 .5rem}.profile-save-btn{margin-top:.5rem}.profile-dogs-empty{margin:0;font-size:.95rem;color:var(--text-muted)}.profile-dogs-empty a{color:var(--accent);font-weight:600}.profile-section-card .profile-location-wrap{position:relative}.profile-section-card .form-group{margin-bottom:1rem}.profile-section-card .form-group:last-of-type{margin-bottom:0}.profile-main{min-width:0}.profile-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.profile-header-avatar-wrap{flex-shrink:0}.profile-header-avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center}.profile-header-avatar .profile-picture-img,.profile-header-avatar .profile-picture-fallback{width:100%;height:100%;object-fit:cover;font-size:1.5rem}.profile-header-info{min-width:0}.profile-header-name{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:var(--text)}.profile-header-email{margin:0;font-size:.95rem;color:var(--text-muted)}.profile-section-title{margin:0 0 .75rem;font-size:1.1rem;font-weight:700;color:var(--text)}.profile-field-hint{margin:-.25rem 0 .5rem;font-size:.875rem;color:var(--text-muted)}.profile-location-search-hint{display:block;margin-top:.25rem;font-size:.85rem;color:var(--text-muted)}.profile-form-card{margin-bottom:1.5rem}.profile-sidebar{position:sticky;top:1rem}.profile-dogs-card{margin:0}.profile-dog-cards{display:flex;flex-direction:column;gap:.5rem}.profile-dog-card{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;border-radius:var(--radius-chunky);background:var(--bg);border:1px solid var(--border);text-decoration:none;color:inherit;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.profile-dog-card:hover{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 2px 8px #0000000f;color:inherit;text-decoration:none}.profile-dog-card-avatar{flex-shrink:0;width:48px;height:48px;border-radius:50%;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center;position:relative}.profile-dog-card-avatar img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.profile-dog-card-initials{display:none;font-size:1rem;font-weight:600;color:var(--text-muted)}.profile-dog-card-initials--show{display:flex;align-items:center;justify-content:center}.profile-dog-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.profile-dog-card-name{font-weight:600;font-size:1rem}.profile-dog-card-meta{font-size:.875rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-dog-card-chevron{flex-shrink:0;font-size:1.25rem;color:var(--text-muted)}.profile-dog-add-another{margin-top:.75rem;display:inline-block}.profile-dog-meta{font-size:.9rem;color:var(--text-muted)}.add-dog-form .form-group{margin-bottom:.75rem}.add-dog-form .form-group:last-of-type{margin-bottom:.5rem}.dog-edit-avatar-card{display:flex;align-items:flex-start;gap:1.25rem;flex-wrap:wrap;margin-bottom:1.5rem}.dog-edit-avatar-wrap{flex-shrink:0;width:80px;height:80px;border-radius:50%;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center;position:relative}.dog-edit-avatar-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.dog-edit-avatar-initials{display:none;font-size:1.5rem;font-weight:600;color:var(--text-muted)}.dog-edit-avatar-initials--show{display:flex;align-items:center;justify-content:center}.dog-edit-avatar-card .form-group{flex:1;min-width:200px;margin:0}.dog-photo-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.dog-edit-avatar-zone{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-chunky);cursor:pointer;transition:background .15s ease,box-shadow .15s ease;border:2px dashed var(--border)}.dog-edit-avatar-zone:hover,.dog-edit-avatar-zone:focus{outline:none;background:var(--accent-soft);border-color:var(--accent-muted, rgba(240, 139, 122, .5))}.dog-edit-avatar-zone--drag{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.dog-edit-avatar-zone .dog-edit-avatar-wrap{margin:0}.dog-edit-avatar-zone-label{font-size:.85rem;font-weight:600;color:var(--accent)}.link-button.dog-paste-link-btn{margin-top:.5rem;font-size:.9rem}.dog-paste-link-field{margin-top:.5rem}.app-page-lead{color:var(--text-muted);margin:0 0 1.5rem;font-size:1rem}.app-sidebar-user{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;margin:0 .5rem .25rem;border-radius:var(--radius-chunky);background:var(--bg);text-decoration:none;color:inherit}.app-sidebar-user:hover{background:var(--accent-soft);color:inherit;text-decoration:none}.sidebar-avatar-link{flex-shrink:0;display:block;border-radius:50%;overflow:hidden}.sidebar-avatar-img,.sidebar-avatar-initials{width:40px;height:40px;display:block}.sidebar-avatar-img{object-fit:cover}.sidebar-avatar-initials{background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center}.sidebar-user-name{font-weight:600;color:var(--text);font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-picture-card{margin-bottom:1.5rem}.profile-picture-card--sidebar{margin-bottom:1.25rem}.profile-picture-card--sidebar .profile-photo-preview{margin:0 auto}.profile-picture-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1.5rem}.profile-picture-row--sidebar{flex-direction:column;align-items:stretch;gap:1rem}.profile-picture-row--sidebar .profile-photo-zone{align-self:center}.profile-picture-wrap{position:relative;flex-shrink:0;width:96px;height:96px;border-radius:50%;overflow:hidden;background:var(--accent-soft)}.profile-picture-img{width:100%;height:100%;object-fit:cover}.profile-picture-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;font-weight:700;font-size:2rem;color:var(--accent);background:var(--accent-soft)}.profile-picture-fallback--show{display:flex}.profile-picture-form{flex:1;min-width:200px}.profile-photo-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden;pointer-events:none}.profile-photo-preview{display:inline-flex;position:relative;cursor:pointer;border-radius:50%}.profile-photo-preview .profile-picture-wrap{margin:0}.profile-photo-preview:hover .profile-photo-preview-overlay,.profile-photo-preview:focus .profile-photo-preview-overlay{opacity:1}.profile-photo-preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;font-size:.75rem;font-weight:600;opacity:0;transition:opacity .2s}.profile-photo-camera-icon{font-size:1.5rem;line-height:1}.profile-photo-done{margin-bottom:.5rem;display:inline-block}.profile-photo-zone{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:var(--radius-card);transition:background .2s,box-shadow .2s}.profile-photo-zone:hover,.profile-photo-zone:focus{outline:none;background:var(--accent-soft)}.profile-photo-zone--drag{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent)}.profile-photo-zone .profile-picture-wrap{margin:0}.profile-photo-zone-label{font-size:.85rem;font-weight:600;color:var(--accent)}.profile-photo-hint{font-size:.9rem;color:var(--text-muted);margin:0 0 .5rem}.profile-photo-success{color:var(--teal);font-weight:600;margin:0}.profile-remove-photo{margin:.25rem 0 0}.link-button{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-weight:600;text-decoration:underline}.link-button:hover{color:var(--accent-hover)}.pledge-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(61,58,107,.4);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.pledge-modal{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow);max-width:440px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem 1.75rem}.pledge-modal-title{margin:0 0 1rem;font-size:1.35rem}.pledge-modal-text{font-size:.95rem;line-height:1.6;color:var(--text);margin-bottom:1.5rem}.pledge-modal-text p{margin:0 0 .75rem}.pledge-modal-text p:last-child{margin-bottom:0}.pledge-modal-text ul{margin:.5rem 0 1rem;padding-left:1.25rem}.pledge-modal-text li{margin-bottom:.35rem}.pledge-modal-actions{display:flex;flex-wrap:wrap;gap:.75rem}.settings-section{margin-bottom:1.5rem}.settings-section:last-child{margin-bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:var(--radius-chunky);font-weight:700;font-size:.95rem;letter-spacing:.02em;transition:transform .2s ease,box-shadow .2s ease,opacity .2s}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(145deg,#f97316 0%,#ea580c 50%,#dc2626 100%);color:#fff;box-shadow:0 4px #b91c1c59,0 6px 20px #f9731666;text-shadow:0 1px 0 rgba(0,0,0,.15)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px #b91c1c4d,0 10px 28px #f9731673}.btn-primary:active{transform:translateY(1px);box-shadow:0 2px #b91c1c66,0 4px 12px #f9731659}.btn-secondary{background:linear-gradient(145deg,#0d9488 0%,#0f766e 50%,#115e59 100%);color:#fff;box-shadow:0 4px #052e2a59,0 6px 20px #0d948859;text-shadow:0 1px 0 rgba(0,0,0,.15)}.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 6px #052e2a4d,0 10px 28px #0d948866}.btn-secondary:active{transform:translateY(1px);box-shadow:0 2px #052e2a66,0 4px 12px #0d94884d}.btn-ghost{background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(248,250,252,.9) 100%);color:var(--accent);border:2px solid var(--border-strong);box-shadow:0 2px #0000000a}.btn-ghost:hover{background:var(--surface);transform:translateY(-1px);box-shadow:0 3px #0000000a,var(--shadow-soft);border-color:var(--accent);color:var(--accent-hover)}.btn-danger{background:linear-gradient(135deg,#c62828 0%,#b71c1c 100%);color:#fff;box-shadow:0 4px 14px #c628284d}.btn-danger:hover:not(:disabled){opacity:.95;box-shadow:0 6px 20px #c6282866}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:700;margin-bottom:.35rem;color:var(--text);font-size:.95rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.7rem 1rem;border:2px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);-webkit-text-fill-color:var(--text);transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--pastel-purple);box-shadow:0 0 0 4px var(--accent-soft)}.form-group textarea{min-height:100px;resize:vertical}.location-suggestions{list-style:none;margin:.5rem 0 0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);max-height:220px;overflow-y:auto;position:absolute;left:0;right:0;top:100%;z-index:10}.location-suggestion-btn{display:block;width:100%;text-align:left;padding:.65rem 1rem;border:none;background:none;font-size:.95rem;color:var(--text);cursor:pointer;transition:background .1s ease}.location-suggestion-btn:hover{background:var(--accent-soft)}.card{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-3d);padding:1.5rem;border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-3d-hover)}.badge{display:inline-block;padding:.35rem .85rem;font-size:.8rem;font-weight:700;border-radius:var(--radius-chunky);background:linear-gradient(145deg,var(--accent-soft) 0%,#ddd6fe 100%);color:var(--accent);border:1px solid var(--border-strong);letter-spacing:.02em;box-shadow:0 2px #0000000d}.error-msg{color:#c45c5c;font-size:.9rem;margin-top:.5rem;font-weight:600}.hero-badges{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.5rem}.hero-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius-chunky);font-size:.85rem;font-weight:700;color:var(--text);border:none;box-shadow:var(--shadow-soft)}.hero-badge.purple{background:var(--pastel-purple)}.hero-badge.pink{background:var(--pastel-pink)}.hero-badge.yellow{background:var(--pastel-yellow)}.hero-badge.blue{background:var(--pastel-blue)}.hero-section{padding:2.5rem 1.25rem 3rem;max-width:960px;margin:0 auto}.hero-wrap{display:flex;flex-direction:column;gap:2rem;align-items:center}@media (min-width: 720px){.hero-wrap{flex-direction:row;align-items:flex-start;justify-content:center;gap:2.5rem}.hero-content{flex:1;min-width:0;text-align:left}.hero-ctas,.hero-badges{justify-content:flex-start}}.hero-doodle-card{flex-shrink:0;width:100%;max-width:280px}.hero-doodle-card-inner{position:relative;background:linear-gradient(180deg,#e8f5e8 0%,#f0f0ff 100%);border-radius:var(--radius-card);padding:1.25rem 1.25rem 2.5rem;box-shadow:var(--shadow);border:2px solid var(--border)}.hero-doodle-main-wrap{width:100%;aspect-ratio:1;max-width:140px;margin:0 auto .5rem;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#c8e0c8 0%,#b8d4e8 100%);display:flex;align-items:center;justify-content:center}.hero-doodle-main,.hero-doodle-main-wrap img{width:75%;height:auto;object-fit:contain}.hero-doodle-label{font-weight:700;font-size:1rem;color:var(--heading);margin:0 0 .2rem}.hero-doodle-meta{font-size:.85rem;color:var(--text-muted);margin:0 0 .75rem}.hero-doodle-cta{width:100%}.hero-doodle-peek{position:absolute;bottom:-8px;right:-8px;width:72px;height:72px;z-index:1}.hero-doodle-peek svg{width:100%;height:100%;filter:drop-shadow(0 2px 8px rgba(61,58,107,.15))}.hero-content{text-align:center}.hero-title{font-size:clamp(1.75rem,4.5vw,2.35rem)!important;line-height:1.25;margin-bottom:.75rem!important;color:var(--heading)!important}.hero-subtitle{color:var(--text-muted);font-size:1.05rem;margin:0 0 1.75rem;line-height:1.6}.hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.why-card{position:relative;margin-top:2.5rem;background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,var(--surface-warm) 100%);overflow:visible}.why-card h2{margin-top:0;margin-bottom:.75rem}.why-card ul{margin:0;padding-left:1.25rem;color:var(--text-muted);line-height:1.7}.why-card-doodle{margin-bottom:.75rem}.why-buddies-doodle,.why-card-doodle img{width:100%;max-width:120px;height:auto;object-fit:contain}.why-card-peek{position:absolute;bottom:-4px;right:12px;width:56px;height:56px;opacity:.9}.why-card-peek svg{width:100%;height:100%;filter:drop-shadow(0 2px 6px rgba(61,58,107,.1))}.landing-page{max-width:960px;margin:0 auto;padding:2.5rem 1.25rem 3rem}.landing-hero{margin-bottom:3rem}.landing-hero-inner{display:flex;flex-direction:column;gap:2rem;align-items:center}@media (min-width: 720px){.landing-hero-inner{flex-direction:row;align-items:flex-start;gap:2.5rem}.landing-hero-content{flex:1;min-width:0;text-align:left}.landing-hero-ctas,.landing-hero-badges{justify-content:flex-start}}.landing-hero-content{text-align:center}.landing-hero-title{font-size:clamp(1.75rem,4.5vw,2.35rem)!important;line-height:1.25;margin-bottom:.75rem!important;color:var(--heading)!important}.landing-hero-subtitle{color:var(--text-muted);font-size:1.05rem;margin:0 0 1.75rem;line-height:1.6}.landing-hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:1rem}.landing-hero-ctas .btn-lg{padding:.6rem 1.25rem;font-size:1rem}.landing-hero-badges{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.landing-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:999px;font-size:.85rem;background:var(--pastel-purple);color:var(--heading)}.landing-badge:nth-child(2){background:var(--pastel-pink)}.landing-badge:nth-child(3){background:var(--pastel-yellow)}.landing-product-preview{flex-shrink:0;display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:280px}@media (min-width: 720px){.landing-product-preview{max-width:260px;gap:.6rem}}.landing-preview-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-card);padding:.85rem 1rem;box-shadow:var(--shadow)}.landing-preview-dog{background:linear-gradient(180deg,#e8f5e8 0%,#f5f5f5 100%)}.landing-preview-dog-avatar{width:40px;height:40px;border-radius:50%;background:var(--pastel-yellow);display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin-bottom:.35rem}.landing-preview-dog-name{font-weight:700;font-size:1rem;margin:0 0 .15rem;color:var(--heading)}.landing-preview-dog-meta{font-size:.8rem;color:var(--text-muted);margin:0 0 .4rem}.landing-preview-tag{display:inline-block;font-size:.75rem;padding:.2rem .5rem;border-radius:6px;background:var(--pastel-blue);color:var(--heading)}.landing-preview-meetup{background:linear-gradient(180deg,#f0f0ff 0%,#fafafa 100%)}.landing-preview-meetup-tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-weight:600;margin-bottom:.25rem;display:block}.landing-preview-meetup-title{font-weight:600;font-size:.9rem;margin:0 0 .2rem;color:var(--heading)}.landing-preview-meetup-meta,.landing-preview-meetup-host{font-size:.8rem;color:var(--text-muted);margin:0}.landing-preview-checklist{background:linear-gradient(180deg,#fff8e8 0%,#fafafa 100%)}.landing-preview-checklist-title{font-weight:600;font-size:.85rem;margin:0 0 .4rem;color:var(--heading)}.landing-preview-paws{display:flex;gap:.25rem;margin-bottom:.25rem}.landing-preview-paw{opacity:.35;font-size:.9rem}.landing-preview-paw--done{opacity:1}.landing-preview-checklist-label{font-size:.75rem;color:var(--text-muted);margin:0}.landing-section{margin-bottom:2.5rem}.landing-section-title{font-size:1.5rem;color:var(--heading);margin:0 0 1.25rem;text-align:center}.landing-for-you-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 600px){.landing-for-you-grid{grid-template-columns:repeat(3,1fr)}}.landing-for-you-card{background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,var(--surface-warm) 100%);border:2px solid var(--border);border-radius:var(--radius-card);padding:1.25rem;box-shadow:var(--shadow);text-align:center}.landing-for-you-icon{font-size:2rem;display:block;margin-bottom:.5rem}.landing-for-you-text{font-size:.95rem;color:var(--text);line-height:1.55;margin:0}.landing-how-steps{display:flex;flex-direction:column;gap:1.5rem}@media (min-width: 640px){.landing-how-steps{flex-direction:row;gap:1.25rem}}.landing-how-step{flex:1;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-card);padding:1.25rem;box-shadow:var(--shadow);position:relative}.landing-how-num{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--pastel-purple);color:var(--heading);font-weight:800;font-size:1rem;margin-bottom:.5rem}.landing-how-step-title{font-size:1rem;margin:0 0 .4rem;color:var(--heading)}.landing-how-step-text{font-size:.9rem;color:var(--text-muted);line-height:1.5;margin:0}.landing-different-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 600px){.landing-different-grid{grid-template-columns:repeat(3,1fr)}}.landing-different-card{background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,var(--surface-warm) 100%);border:2px solid var(--border);border-radius:var(--radius-card);padding:1.25rem;box-shadow:var(--shadow)}.landing-different-card-title{font-size:1.05rem;margin:0 0 .4rem;color:var(--heading)}.landing-different-card p{font-size:.9rem;color:var(--text-muted);line-height:1.55;margin:0}.landing-reassurance{margin-bottom:2rem}.landing-reassurance-card{background:linear-gradient(135deg,#e8f5e8 0%,#f0f0ff 50%,#fff8e8 100%);border:2px solid var(--border);border-radius:var(--radius-card);padding:1.75rem 1.5rem;box-shadow:var(--shadow);text-align:center}.landing-reassurance-title{font-size:1.5rem;color:var(--heading);margin:0 0 .75rem}.landing-reassurance-lead{font-size:1.05rem;font-weight:600;color:var(--heading);margin:0 0 .5rem;line-height:1.5}.landing-reassurance-text{font-size:.95rem;color:var(--text-muted);line-height:1.6;margin:0 0 1.25rem}.dashboard-page{padding-top:1.5rem}.dashboard-hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.dashboard-welcome h1{color:var(--heading);font-weight:800;background:linear-gradient(135deg,var(--heading) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-welcome{flex:1;min-width:0}.dashboard-tagline{color:var(--text-muted);margin:0 0 .25rem}.dashboard-doodle{position:relative;flex-shrink:0;width:140px;height:140px}.dashboard-doodle-main,.dashboard-doodle img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 10px rgba(61,58,107,.12))}.dashboard-doodle-peek{position:absolute;bottom:-12px;right:-12px;width:56px;height:56px;z-index:1}.dashboard-doodle-peek svg{width:100%;height:100%;filter:drop-shadow(0 2px 6px rgba(61,58,107,.15))}.app-page-content--dashboard{max-width:960px}.app-page--home{padding:1.5rem 1.25rem 2.5rem}.home-dashboard{max-width:1100px;margin:0 auto}.home-header{margin-bottom:1.5rem}.home-title{margin:0 0 .35rem;font-size:1.85rem;font-weight:800;color:var(--heading)}.home-tagline{margin:0;font-size:1.05rem;color:var(--text-muted);line-height:1.45}.home-pledge-link{display:block;text-decoration:none;color:inherit;margin-bottom:1.5rem}.home-pledge-card{border-radius:20px;padding:1.25rem 1.5rem}.home-grid{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}@media (max-width: 900px){.home-grid{grid-template-columns:1fr}}.home-col{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.home-col--main{min-width:0}.home-col--side{gap:1rem}.home-panel{background:var(--surface);border-radius:24px;padding:1.25rem 1.35rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.home-panel--hero{padding:1.5rem 1.5rem 1.75rem}.home-panel--map .home-map-wrap{height:220px}.home-panel--recommended{padding:1.25rem 1.35rem 1.5rem}.home-panel--training,.home-panel--dogs,.home-panel--friends,.home-panel--actions{padding:1.1rem 1.25rem}.home-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.home-panel--hero .home-section-header{margin-bottom:1rem}.home-section-title{margin:0;font-size:.95rem;font-weight:700;color:var(--heading);letter-spacing:-.01em}.home-section-action{font-size:.875rem;font-weight:600;color:var(--accent);text-decoration:none}.home-section-action:hover{text-decoration:underline;color:var(--accent)}.home-hero-card{display:block;padding:1.35rem 1.5rem;background:linear-gradient(135deg,var(--accent-soft) 0%,#e8dcff 100%);border-radius:20px;border:1px solid var(--border-strong);text-decoration:none;color:inherit;transition:box-shadow .2s ease,transform .2s ease}.home-hero-card:hover{box-shadow:var(--shadow-3d);transform:translateY(-2px);color:inherit;text-decoration:none}.home-hero-card-title{display:block;font-size:1.25rem;font-weight:800;color:var(--heading);margin-bottom:.35rem}.home-hero-card:hover .home-hero-card-title{color:var(--accent)}.home-hero-card-meta{display:block;font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.home-hero-card-meta span+span:before{content:" · "}.home-hero-card-badge{display:inline-block;margin-right:.5rem;padding:.25rem .6rem;font-size:.8rem;font-weight:700;background:var(--surface);color:var(--accent);border-radius:999px}.home-quick-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.home-quick-action{display:block;padding:.65rem 1rem;border-radius:14px;font-weight:600;font-size:.9rem;text-align:center;text-decoration:none;color:var(--text);background:var(--bg);border:1px solid var(--border);transition:background .2s ease,border-color .2s ease,color .2s ease}.home-quick-action:hover{background:var(--accent-soft);border-color:var(--accent-muted);color:var(--accent);text-decoration:none}.home-quick-action--primary{background:linear-gradient(145deg,var(--accent-soft) 0%,#e8dcff 100%);color:var(--accent);border-color:var(--border-strong)}.home-quick-action--primary:hover{background:var(--accent-soft);color:var(--accent-hover)}.home-panel--actions .home-section-title{margin-bottom:0}.home-section{background:var(--surface);border-radius:24px;padding:1.5rem 1.5rem 1.75rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.home-empty{margin:0;font-size:.95rem;color:var(--text-muted);line-height:1.5}.home-empty a{color:var(--accent);text-decoration:none}.home-empty a:hover{text-decoration:underline}.home-meetup-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.home-meetup-card{display:block;padding:1rem 1.2rem;background:var(--bg);border-radius:16px;border:1px solid var(--border);text-decoration:none;color:inherit;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.home-meetup-card:hover{border-color:var(--accent-muted);box-shadow:var(--shadow-soft);transform:translateY(-1px);color:inherit;text-decoration:none}.home-meetup-card-title{display:block;font-weight:700;font-size:1rem;color:var(--text)}.home-meetup-card:hover .home-meetup-card-title{color:var(--accent)}.home-meetup-card-meta{display:block;font-size:.85rem;color:var(--text-muted);margin-top:.25rem}.home-meetup-card-meta span+span:before{content:" · "}.home-meetup-badge{display:inline-block;margin-top:.4rem;padding:.2rem .5rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:var(--teal-soft);color:var(--teal);border-radius:999px}.home-panel--map{overflow:hidden}.home-map-wrap{height:260px;width:100%;border-radius:16px;overflow:hidden;background:var(--border)}.home-map-wrap .dashboard-map-wrap{height:100%;border-radius:16px}.home-map-placeholder{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.95rem}.home-map-hint{margin:.75rem 0 0;font-size:.9rem;color:var(--text-muted)}.home-training-cards{display:flex;flex-direction:column;gap:.75rem}.home-col--side .home-training-cards{display:flex;flex-direction:column}.home-training-card{background:var(--bg);border-radius:16px;padding:1rem 1.1rem;border:1px solid var(--border)}.home-training-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.home-training-dog-avatar{font-size:1.5rem;line-height:1}.home-training-dog-name{font-weight:700;font-size:.95rem;color:var(--heading)}.home-training-focus{margin:0 0 .6rem;font-size:.85rem;color:var(--text-muted);line-height:1.4}.home-training-progress-wrap{height:8px;background:var(--border);border-radius:999px;overflow:hidden;margin-bottom:.35rem}.home-training-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent-soft) 0%,var(--accent) 100%);border-radius:999px;transition:width .3s ease}.home-training-progress-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.home-training-card--link{text-decoration:none!important;color:inherit;display:block;transition:border-color .2s,box-shadow .2s}.home-training-card--link:hover,.home-training-card--link:focus{text-decoration:none!important;border-color:var(--accent);box-shadow:var(--shadow-soft)}.home-training-card--link:hover *,.home-training-card--link:focus *{text-decoration:none!important}.home-training-steps{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.home-training-paws{display:inline-flex;gap:2px}.home-training-paw{font-size:1rem;opacity:.35;filter:grayscale(.6)}.home-training-paw--done{opacity:1;filter:none}.home-training-steps-label{font-size:.8rem;font-weight:600;color:var(--text-muted)}.home-dog-snapshots{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.home-dog-snapshot{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.1rem .75rem;background:var(--bg);border-radius:20px;border:1px solid var(--border);text-decoration:none;color:var(--text);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.home-dog-snapshot:hover{border-color:var(--accent-muted);box-shadow:var(--shadow-soft);transform:translateY(-2px);color:var(--text);text-decoration:none}.home-dog-snapshot-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:1.75rem}.home-dog-snapshot-avatar img{width:100%;height:100%;object-fit:cover}.home-dog-snapshot-name{font-weight:700;font-size:.95rem}.home-dog-snapshot-meta{font-size:.8rem;color:var(--text-muted);text-align:center}.home-friends-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.home-friend-preview{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem;text-decoration:none;color:var(--text);border-radius:16px;transition:background .2s ease,color .2s ease}.home-friend-preview:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}.home-friend-preview-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:1.25rem}.home-friend-preview-avatar img{width:100%;height:100%;object-fit:cover}.home-friend-preview-name{font-size:.85rem;font-weight:600;text-align:center}@media (max-width: 480px){.home-friends-preview{grid-template-columns:repeat(2,1fr)}}.app-page--dogs{padding:1.5rem 1.25rem 2.5rem}.dogs-page-content{max-width:900px;margin:0 auto}.dogs-page-header{margin-bottom:1.75rem}.dogs-page-title{margin:0 0 .35rem;font-size:1.75rem;font-weight:800;color:var(--heading)}.dogs-page-tagline{margin:0;font-size:1rem;color:var(--text-muted)}.dogs-empty{margin:0;color:var(--text-muted)}.dogs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.25rem}.dog-card{background:var(--surface);border-radius:24px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-soft);text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.dog-card:hover{box-shadow:var(--shadow-3d);transform:translateY(-3px);border-color:var(--accent-muted);color:inherit;text-decoration:none}.dog-card-photo{aspect-ratio:1;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.dog-card-photo img{width:100%;height:100%;object-fit:cover}.dog-card-placeholder{font-size:3rem;opacity:.8}.dog-card-body{padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.25rem}.dog-card-name{margin:0;font-size:1.1rem;font-weight:700;color:var(--heading)}.dog-card-breed{margin:0;font-size:.9rem;color:var(--text-muted)}.dog-card-status{display:inline-block;font-size:.8rem;font-weight:600;color:var(--accent);margin-top:.2rem}.dog-card-focus{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.dog-card-focus-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.15rem}.dog-card-focus-value{font-size:.85rem;color:var(--text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dog-card--add{min-height:180px;justify-content:center;align-items:center;background:var(--bg);border-style:dashed}.dog-card--add:hover{background:var(--accent-soft);border-color:var(--accent-muted)}.dog-card-add-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem}.dog-card-add-icon{width:48px;height:48px;border-radius:50%;background:var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:300;color:var(--text-muted);line-height:1}.dog-card-add-text{font-weight:700;font-size:1rem;color:var(--accent)}.app-page--dog-profile{padding:1.5rem 1.25rem 2.5rem}.dog-profile-content{max-width:720px;margin:0 auto}.dog-profile-back{display:inline-block;margin-bottom:1.25rem;font-weight:600;color:var(--accent);text-decoration:none}.dog-profile-back:hover{text-decoration:underline;color:var(--accent)}.dog-hero{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap;background:var(--surface);border-radius:24px;padding:1.75rem 1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-soft);margin-bottom:1.5rem}.dog-hero-photo-wrap{flex-shrink:0}.dog-hero-photo{width:140px;height:140px;border-radius:24px;overflow:hidden;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}.dog-hero-photo img{width:100%;height:100%;object-fit:cover}.dog-hero-placeholder{font-size:4rem;opacity:.8}.dog-photo-input-hidden{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.dog-hero-photo--editable{cursor:pointer;position:relative;border:2px dashed var(--border-strong);transition:border-color .2s ease,background .2s ease}.dog-hero-photo--editable:hover,.dog-hero-photo--drag{border-color:var(--accent);background:var(--accent-soft)}.dog-hero-photo-hint{position:absolute;bottom:0;left:0;right:0;padding:.35rem;font-size:.7rem;font-weight:600;text-align:center;background:rgba(0,0,0,.5);color:#fff}.dog-profile-error{margin:.5rem 0 0;font-size:.9rem;color:var(--coral)}.dog-hero-form .form-group{margin-bottom:.85rem}.dog-hero-form .form-group label{display:block;font-weight:600;margin-bottom:.3rem;font-size:.9rem;color:var(--text)}.dog-hero-form .form-group input,.dog-hero-form .form-group select{width:100%;max-width:280px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:12px;font-size:.95rem}.dog-hero-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.dog-hero-info{min-width:0;flex:1}.dog-hero-name{margin:0 0 .25rem;font-size:1.75rem;font-weight:800;color:var(--heading)}.dog-hero-breed{margin:0 0 .2rem;font-size:1.05rem;color:var(--text-muted)}.dog-hero-meta{margin:0 0 .75rem;font-size:.95rem;color:var(--text-muted)}.dog-hero-reactivity{margin-bottom:1rem}.dog-hero-reactivity-label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.2rem}.dog-hero-reactivity-value{font-size:.95rem;color:var(--text)}.dog-field-clickable{cursor:text;border-radius:6px;padding:.15em .35em;margin:-.15em -.35em;transition:background .15s ease}.dog-field-clickable:hover{background:var(--accent-soft)}.dog-field-notes{min-height:2.5em;padding:.5rem .6rem;border-radius:10px}.dog-field-notes:hover{background:var(--accent-soft)}.dog-inline-input,.dog-inline-select{font:inherit;color:inherit;padding:.35rem .5rem;border:1px solid var(--accent);border-radius:10px;background:var(--surface);width:100%;max-width:320px}.dog-inline-input--name{font-size:1.75rem;font-weight:800;max-width:100%}.dog-inline-input--full{max-width:100%}.dog-inline-select{max-width:140px;cursor:pointer}.dog-profile-saving{margin:.35rem 0 0;font-size:.85rem;color:var(--text-muted)}.dog-panel{background:var(--surface);border-radius:24px;padding:1.35rem 1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-soft);margin-bottom:1.25rem}.dog-panel-title{margin:0 0 1rem;font-size:1.1rem;font-weight:700;color:var(--heading)}.dog-panel-note,.dog-panel-empty{margin:0;font-size:.95rem;color:var(--text-muted)}.dog-training-focus-label{margin:0 0 1rem;font-size:.95rem;color:var(--text)}.dog-goal-path{margin:0 0 1.5rem;padding:0;list-style:none}.dog-goal-step{display:flex;gap:1rem;margin-bottom:1rem}.dog-goal-step:last-child{margin-bottom:0}.dog-goal-step-paw-wrap{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.dog-goal-paw{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;opacity:.4;filter:grayscale(.5);transition:opacity .2s,filter .2s}.dog-goal-paw--done{opacity:1;filter:none}.dog-goal-path-connector{width:2px;flex:1;min-height:12px;margin-top:4px;background:var(--border);border-radius:1px}.dog-goal-step-body{flex:1;min-width:0}.dog-goal-step-label{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:var(--text)}.dog-goal-step-count{margin:0 0 .5rem;font-size:.85rem;color:var(--teal);font-weight:500}.dog-log-win-btn{font-size:.9rem;font-weight:600;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.dog-log-win-btn:hover{text-decoration:none}.dog-panel--training a,.dog-panel--training a:hover,.dog-panel--training a:focus{text-decoration:none}.dog-log-win-form{margin-top:.5rem}.dog-log-win-input{width:100%;max-width:280px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:12px;font-size:.9rem;font-family:inherit;margin-bottom:.5rem}.dog-log-win-input:focus{outline:none;border-color:var(--accent)}.dog-log-win-actions{display:flex;gap:.5rem}.dog-what-to-try-next{background:var(--accent-soft);border-radius:16px;padding:1rem 1.25rem;margin-bottom:1rem;border:1px solid var(--border)}.dog-what-to-try-next-title{margin:0 0 .35rem;font-size:.95rem;font-weight:700;color:var(--heading)}.dog-what-to-try-next-text{margin:0;font-size:.9rem;line-height:1.5;color:var(--text)}.dog-training-notes-input{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:12px;font-size:.95rem;font-family:inherit;resize:vertical;min-height:80px}.dog-panel--details .form-group input{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:12px;font-size:.95rem}.dog-panel--danger{border-color:var(--warm);background:var(--warm-soft)}.dog-panel--danger .btn-danger{margin-top:.5rem}.dog-training-notes{margin:0 0 .5rem;font-size:.95rem;color:var(--text)}.dog-meetups-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.dog-meetups-tab{padding:.4rem .85rem;border-radius:999px;font-size:.85rem;font-weight:600;color:var(--text-muted);background:var(--bg);cursor:default}.dog-meetups-tab--active{background:var(--accent-soft);color:var(--accent)}.dog-details-list{margin:0}.dog-details-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.dog-details-row:last-child{border-bottom:none}.dog-details-row dt{margin:0;font-weight:600;font-size:.9rem;color:var(--text-muted);min-width:6rem}.dog-details-row dd{margin:0;font-size:.95rem;color:var(--text)}.dog-details-notes-input{width:100%;min-height:80px;padding:.5rem .6rem;border:1px solid var(--accent);border-radius:10px;font:inherit;font-size:.95rem;resize:vertical}.app-page--dashboard .dashboard-layout{max-width:960px;margin:0 auto}.dashboard-header{margin-bottom:1.5rem}.dashboard-header .dashboard-title{margin:0 0 .25rem;font-size:1.75rem;font-weight:800;color:var(--heading)}.dashboard-header .dashboard-tagline{margin:0;color:var(--text-muted);font-size:1rem}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}@media (max-width: 720px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-section{padding:1.25rem;display:flex;flex-direction:column;min-height:0}.dashboard-section--meetups{border-left:3px solid var(--accent)}.dashboard-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dashboard-section-title{margin:0;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.dashboard-section-action{font-size:.9rem;font-weight:500;color:var(--accent);text-decoration:none}.dashboard-section-action:hover{text-decoration:underline;color:var(--accent)}.dashboard-pledge-link{display:block;margin-bottom:1.5rem;text-decoration:none;color:inherit}.dashboard-pledge-card{background:linear-gradient(135deg,#ffedd5 0%,#fed7aa 50%,#fecaca 100%);border:2px solid var(--warm);cursor:pointer;box-shadow:0 4px #ea580c33,var(--shadow-3d)}.dashboard-pledge-card:hover{box-shadow:0 6px #ea580c33,var(--shadow-3d-hover)}.dashboard-pledge-card p{margin:.5rem 0 0;font-size:.95rem}.dashboard-main{margin-bottom:1.5rem}.dashboard-side-col{display:flex;flex-direction:column;gap:1.5rem}.dashboard-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:1.25rem;position:sticky;top:1rem;box-shadow:var(--shadow-3d);transition:box-shadow .2s ease,transform .2s ease}.dashboard-panel:hover{box-shadow:var(--shadow-3d-hover)}.dashboard-panel--mine{border-left:3px solid var(--accent)}.dashboard-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dashboard-panel-title{margin:0;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.dashboard-panel-action{font-size:.9rem;font-weight:500;color:var(--accent);text-decoration:none}.dashboard-panel-action:hover{text-decoration:underline;color:var(--accent)}.dashboard-empty{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.45}.dashboard-empty a{color:var(--accent);text-decoration:none}.dashboard-empty a:hover{text-decoration:underline}.dashboard-cards{display:flex;flex-direction:column;gap:.5rem}.dashboard-card{display:block;padding:.75rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-chunky);text-decoration:none;color:inherit;box-shadow:0 2px #0000000a,var(--shadow-soft);transition:border-color .15s ease,box-shadow .2s ease,transform .2s ease}.dashboard-card:hover{border-color:var(--accent-muted);box-shadow:0 4px #0000000a,var(--shadow-3d);transform:translateY(-2px);color:inherit;text-decoration:none}.dashboard-card--mine{padding:.85rem .9rem}.dashboard-card-title{display:block;font-weight:600;font-size:.95rem;color:var(--text)}.dashboard-card:hover .dashboard-card-title{color:var(--accent)}.dashboard-card-meta{display:block;font-size:.8rem;color:var(--text-muted);margin-top:.2rem}.dashboard-card-meta span+span:before{content:" · ";color:var(--text-muted)}.dashboard-card-badge{display:inline-block;margin-top:.4rem;padding:.15rem .5rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:var(--border);color:var(--text-muted);border-radius:999px}.dashboard-card-badge--going{background:var(--accent-soft);color:var(--accent)}.dashboard-card-names{display:block;font-size:.78rem;color:var(--text-muted);margin-top:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-dog-list{display:flex;flex-wrap:wrap;gap:.5rem}.dashboard-dog-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .65rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.85rem;text-decoration:none;color:var(--text);box-shadow:0 2px #0000000a;transition:border-color .15s ease,background .15s ease,box-shadow .2s ease,transform .2s ease}.dashboard-dog-pill:hover{border-color:var(--accent-muted);background:var(--accent-soft);color:var(--text);text-decoration:none;box-shadow:0 3px #0000000d,var(--shadow-soft);transform:translateY(-1px)}.dashboard-dog-pill-name{font-weight:600}.dashboard-dog-pill-size{font-size:.75rem;color:var(--text-muted)}.dashboard-friends{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.dashboard-friend{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;color:var(--text);padding:.5rem 0}.dashboard-friend:hover{color:var(--accent);text-decoration:none}.dashboard-friend-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,var(--surface) 0%,var(--border) 100%);display:flex;align-items:center;justify-content:center;font-size:1.25rem;box-shadow:0 3px 8px #2d2a4a26;border:2px solid rgba(255,255,255,.9);transition:transform .2s ease,box-shadow .2s ease}.dashboard-friend:hover .dashboard-friend-avatar{transform:scale(1.05);box-shadow:0 4px 12px #2d2a4a33}.dashboard-friend-avatar img{width:100%;height:100%;object-fit:cover}.dashboard-friend-name{font-size:.8rem;font-weight:500;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.app-page--meetups{padding:0;max-width:none}.meetups-layout{display:flex;flex-direction:column;height:calc(100vh + -0px);min-height:480px}.meetups-header{flex-shrink:0;padding:1rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.meetups-controls-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem}.meetups-search-wrap{flex:1;min-width:200px}.meetups-search-input{width:100%;padding:.55rem 1rem;border:1px solid var(--border);border-radius:14px;font-size:1rem}.meetups-filters{display:flex;align-items:center;gap:.35rem}.meetups-view-toggle{padding:.4rem .65rem}.meetups-view-toggle.is-active{background:var(--accent-soft);color:var(--accent)}.meetups-tabs{display:flex;gap:.25rem}.meetups-tab{padding:.5rem 1rem;border:none;border-radius:12px;font-weight:600;font-size:.9rem;background:none;color:var(--text-muted);cursor:pointer}.meetups-tab:hover{color:var(--text);background:var(--bg)}.meetups-tab--active{background:var(--accent-soft);color:var(--accent)}.meetups-split{display:grid;grid-template-columns:380px 1fr;flex:1;min-height:0;overflow:hidden}.meetups-split--list-only{grid-template-columns:1fr}.meetups-list-col{overflow-y:auto;padding:.75rem 1rem;border-right:1px solid var(--border);background:var(--bg)}.meetups-split--list-only .meetups-list-col{border-right:none}.meetups-empty{margin:0;padding:1rem 0;color:var(--text-muted);font-size:.95rem}.meetups-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.meetup-discovery-card{display:block;padding:1rem 1.1rem;background:var(--surface);border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow-soft);text-decoration:none;color:inherit;transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.meetup-discovery-card:hover{border-color:var(--accent-muted);box-shadow:var(--shadow-3d);transform:translateY(-1px);color:inherit;text-decoration:none}.meetup-discovery-card-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.meetup-discovery-card-tag{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);padding:.2rem .5rem;border-radius:999px}.meetup-discovery-card-badge{font-size:.7rem;font-weight:700;padding:.2rem .45rem;border-radius:999px;background:var(--teal-soft);color:var(--teal)}.meetup-discovery-card-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:700;color:var(--heading)}.meetup-discovery-card:hover .meetup-discovery-card-title{color:var(--accent)}.meetup-discovery-card-datetime{margin:0 0 .2rem;font-size:.9rem;color:var(--text-muted)}.meetup-discovery-card-location{margin:0 0 .5rem;font-size:.85rem;color:var(--text-muted)}.meetup-discovery-card-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.85rem;color:var(--text-muted)}.meetup-discovery-card-host{font-weight:600;color:var(--text)}.meetup-discovery-card-attending{display:flex;align-items:center;gap:.4rem}.meetup-discovery-avatars{display:inline-flex;margin-right:.25rem}.meetup-discovery-avatar{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.65rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin-left:-6px;border:2px solid var(--surface)}.meetup-discovery-avatar:first-child{margin-left:0}.meetups-map-col{min-height:0;display:flex;flex-direction:column}.meetups-map-sticky{flex:1;min-height:0;position:relative}.meetups-map-sticky .dashboard-map-wrap{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;border-radius:0}.meetups-map-fallback{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.95rem}.app-page--meetup-detail{padding:1.5rem 1.25rem 2rem}.meetup-detail-content{max-width:680px;margin:0 auto}.meetup-detail-back{display:inline-block;margin-bottom:1.25rem;font-weight:600;color:var(--accent);text-decoration:none}.meetup-detail-back:hover{text-decoration:underline;color:var(--accent)}.meetup-detail-hero{background:var(--surface);border-radius:24px;padding:1.75rem 1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-soft);margin-bottom:1.25rem}.meetup-detail-hero-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.meetup-detail-tag{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .6rem;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.meetup-detail-tag--safety{background:var(--teal-soft);color:var(--teal)}.meetup-detail-hero-title{margin:0 0 .75rem;font-size:1.65rem;font-weight:800;color:var(--heading)}.meetup-detail-hero-meta{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem;font-size:.95rem;color:var(--text-muted)}.meetup-detail-hero-datetime{font-weight:600;color:var(--text)}.meetup-detail-hero-host{display:flex;align-items:center;gap:.6rem;font-size:.95rem}.meetup-detail-host-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.meetup-detail-host-link{font-weight:600;color:var(--accent);text-decoration:none}.meetup-detail-host-link:hover{text-decoration:underline}.meetup-detail-panel{background:var(--surface);border-radius:20px;padding:1.25rem 1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-soft);margin-bottom:1.25rem}.meetup-detail-panel-title{margin:0 0 .75rem;font-size:1.05rem;font-weight:700;color:var(--heading)}.meetup-detail-body{white-space:pre-wrap;font-size:.95rem;line-height:1.6;color:var(--text)}.meetup-detail-map-link{margin:.75rem 0 0;font-size:.9rem}.meetup-detail-map-link a{color:var(--accent)}.meetup-detail-compat-text{margin:0;font-size:.95rem;color:var(--text-muted)}.meetup-detail-actions{margin-bottom:1.25rem}.meetup-detail-actions-row{display:flex;flex-wrap:wrap;gap:.5rem}.meetup-detail-attendee-list{list-style:none;margin:0;padding:0}.meetup-detail-attendee{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.meetup-detail-attendee:last-child{border-bottom:none}.meetup-detail-attendee-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.85rem;font-weight:700;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.meetup-detail-attendee-info{flex:1;min-width:0}.meetup-detail-attendee-name{display:block;font-weight:600;color:var(--text);text-decoration:none}.meetup-detail-attendee-name:hover{color:var(--accent);text-decoration:underline}.meetup-detail-attendee-meta{font-size:.85rem;color:var(--text-muted)}.meetup-detail-empty{margin:0;font-size:.95rem;color:var(--text-muted)}.meetups-map-card{overflow:hidden;box-shadow:var(--shadow-3d);border:1px solid var(--border)}.meetups-map-card:hover{box-shadow:var(--shadow-3d-hover)}.meetups-map-title{margin:0 0 .25rem;font-size:1.2rem}.meetups-map-lead{font-size:.95rem;color:var(--text-muted);margin:0 0 1rem}.meetups-map-wrap{height:320px;width:100%;background:var(--border);border-radius:var(--radius-card)}.meetups-map-wrap .dashboard-map{z-index:0}.dashboard-map-card{overflow:hidden}.dashboard-section-title{margin:0 0 .25rem;font-size:1.2rem}.dashboard-section-lead{font-size:.95rem;color:var(--text-muted);margin:0 0 1rem}.dashboard-map-wrap{height:320px;width:100%;background:var(--border);border-radius:var(--radius-card)}.dashboard-map{z-index:0}.user-profile-card{padding:1.5rem;box-shadow:var(--shadow-3d);border:1px solid var(--border)}.user-profile-header{display:flex;align-items:flex-start;gap:1.25rem;margin-bottom:1rem}.user-profile-avatar-wrap{flex-shrink:0}.user-profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;display:block}.user-profile-avatar--placeholder{background:var(--border);display:flex;align-items:center;justify-content:center;font-size:2rem}.user-profile-info{min-width:0}.user-profile-name{margin:0 0 .25rem;font-size:1.5rem}.user-profile-meta{margin:0 0 .35rem;color:var(--text-muted);font-size:.95rem}.user-profile-badge{display:inline-block;margin-top:.25rem}.user-profile-bio{font-size:.95rem;color:var(--text-muted);margin-bottom:1rem}.user-profile-bio p{margin:.35rem 0}.user-profile-actions{display:flex;flex-wrap:wrap;gap:.5rem}.user-profile-dogs{list-style:none;margin:0;padding:0}.user-profile-dogs li{padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.95rem}.user-profile-dogs li:last-child{border-bottom:none}.meetup-detail-author-link,.meetup-detail-user-link{color:var(--text);font-weight:600;text-decoration:none}.meetup-detail-author-link:hover,.meetup-detail-user-link:hover{color:var(--accent);text-decoration:underline}.meetup-detail-rsvp-row{padding:.5rem 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0}.meetup-detail-rsvp-actions{display:flex;gap:.35rem}.btn-sm{padding:.4rem .75rem;font-size:.85rem}.dashboard-muted{color:var(--text-muted);margin:0}.fab{position:fixed;bottom:1.5rem;right:1.5rem;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;color:#fff;background:linear-gradient(145deg,#f97316 0%,#ea580c 50%,#dc2626 100%);box-shadow:0 4px #b91c1c66,0 8px 24px #f9731673;z-index:500;transition:transform .2s ease,box-shadow .2s ease}.fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 7px #b91c1c59,0 12px 32px #f9731680;color:#fff;text-decoration:none}.fab:active{transform:scale(.98)}.fab--create-meetup{background:linear-gradient(135deg,var(--warm) 0%,#e87a6a 100%)}.fab-icon{font-size:1.75rem;font-weight:300;line-height:1}.messages-inbox{min-height:calc(100vh - 7rem);display:flex;flex-direction:column;padding:1rem 1.25rem 2rem}.messages-inbox-layout{display:grid;grid-template-columns:320px 1fr;flex:1;min-height:0;background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow);border:1px solid var(--border);overflow:hidden}.messages-pane{display:flex;flex-direction:column;min-height:0}.messages-list-pane{border-right:1px solid var(--border);background:var(--surface-warm)}.messages-pane-head{padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.messages-title{margin:0;font-size:1.25rem;font-weight:700;color:var(--heading)}.messages-list-loading,.messages-list-empty{padding:1.25rem;font-size:.9rem;color:var(--text-muted);line-height:1.5}.messages-list-empty a{font-weight:600;color:var(--accent)}.messages-conversation-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1}.messages-conversation-item{display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.875rem 1rem;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left;transition:background .15s;border-bottom:1px solid var(--border)}.messages-conversation-item:hover{background:var(--accent-soft)}.messages-conversation-item.is-selected{background:var(--accent-soft);border-left:4px solid var(--accent);padding-left:calc(1rem - 4px)}.messages-conv-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--pastel-purple) 0%,var(--pastel-pink) 100%);color:var(--text);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:none}.messages-conv-body{min-width:0;flex:1}.messages-conv-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.15rem}.messages-conv-name{font-weight:700;color:var(--text);font-size:.95rem}.messages-conv-time{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.messages-conv-dog{font-size:.8rem;color:var(--text-muted);margin-bottom:.2rem}.messages-conv-preview{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.35rem}.messages-conv-context{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .5rem;border-radius:999px}.messages-conv-context--friend{background:var(--teal-soft);color:var(--teal)}.messages-conv-context--meetup{background:var(--accent-soft);color:var(--accent)}.messages-conv-context--match{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.messages-chat-pane{display:flex;flex-direction:column;background:var(--surface-warm)}.messages-chat-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.messages-chat-header-main{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:.5rem}.messages-chat-person{font-weight:700;font-size:1.05rem;color:var(--accent);text-decoration:none}.messages-chat-person:hover{text-decoration:underline}.messages-chat-meta{font-size:.9rem;color:var(--text-muted)}.messages-chat-dogs{display:flex;flex-wrap:wrap;gap:.35rem}.messages-chat-dog-tag{font-size:.8rem;padding:.2rem .5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);text-decoration:none}.messages-chat-dog-tag:hover{text-decoration:underline}.messages-chat-dog-none{font-size:.8rem;color:var(--text-muted)}.messages-chat-context{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.2rem .5rem;border-radius:999px}.messages-chat-context--friend{background:var(--teal-soft);color:var(--teal)}.messages-chat-context--meetup{background:var(--accent-soft);color:var(--accent)}.messages-chat-context--match{background:var(--surface-warm);color:var(--text-muted);border:1px solid var(--border)}.messages-chat-actions{margin-top:.5rem}.messages-quick-actions{display:flex;flex-wrap:wrap;gap:.5rem}.messages-quick-wrap{position:relative}.messages-quick-btn{font-size:.85rem}.messages-quick-dropdown{position:absolute;top:100%;left:0;margin-top:.25rem;min-width:180px;padding:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-chunky);box-shadow:var(--shadow);z-index:10}.messages-quick-option{display:block;width:100%;padding:.5rem .75rem;border:none;background:transparent;font-size:.9rem;text-align:left;cursor:pointer;border-radius:8px;font-family:inherit;color:var(--text)}.messages-quick-option:hover{background:var(--accent-soft)}.messages-quick-empty{margin:0;font-size:.85rem;color:var(--text-muted);padding:.25rem 0}.messages-quick-empty a{color:var(--accent)}.messages-thread-empty{align-self:center;color:var(--text-muted);font-size:.9rem;margin:auto 0}.messages-thread-messages{flex:1;overflow:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.6rem;background:var(--surface-warm)}.messages-bubble{max-width:75%;padding:.7rem 1.1rem;border-radius:20px;font-size:.95rem;line-height:1.45;word-wrap:break-word;border:none}.messages-bubble.sent{align-self:flex-end;background:linear-gradient(135deg,var(--pastel-purple) 0%,#b8a8e0 100%);color:var(--text)}.messages-bubble.received{align-self:flex-start;background:var(--surface);color:var(--text);border:2px solid var(--border);box-shadow:var(--shadow-soft)}.messages-bubble .bubble-sender{font-size:.75rem;font-weight:700;margin-bottom:.25rem;opacity:.9}.messages-composer{padding:1rem 1.25rem;border-top:1px solid var(--border);background:var(--surface)}.messages-composer form{display:flex;gap:.5rem;align-items:center}.messages-composer input{flex:1;padding:.7rem 1rem;border:2px solid var(--border);border-radius:var(--radius-chunky);background:var(--surface-warm);font-size:.95rem;transition:border-color .2s,box-shadow .2s}.messages-composer input:focus{outline:none;border-color:var(--pastel-purple);box-shadow:0 0 0 3px var(--accent-soft)}.messages-composer .btn-send{padding:.7rem 1.25rem;border-radius:var(--radius-chunky);font-weight:700;flex-shrink:0}.messages-empty-state{flex:1;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:var(--text-muted);background:var(--surface-warm)}.messages-empty-state .empty-icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--pastel-pink) 0%,var(--pastel-yellow) 100%);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:1rem;border:none}.messages-empty-state .empty-title{font-weight:700;color:var(--text);margin:0 0 .35rem}.messages-empty-state .empty-text{font-size:.95rem;margin:0;max-width:260px}.messages-sidebar .empty-sidebar{padding:1.25rem;font-size:.9rem;color:var(--text-muted);line-height:1.5}.messages-sidebar .empty-sidebar a{font-weight:700}.app-page--tips{padding:1rem 1.25rem 2rem}.tips-content{max-width:720px;margin:0 auto}.tips-header{margin-bottom:2rem}.tips-title{margin:0 0 .35rem;font-size:1.6rem;font-weight:800;color:var(--heading)}.tips-subtitle{margin:0 0 1.25rem;font-size:1rem;color:var(--text-muted)}.tips-loading{margin:0;font-size:.95rem;color:var(--text-muted)}.tips-no-dogs{padding:1.5rem;border-radius:20px}.tips-no-dogs p{margin:0 0 .75rem;color:var(--text)}.tips-dog-selector{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.tips-dog-selector-label{font-size:.9rem;font-weight:600;color:var(--text-muted)}.tips-dog-selector-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.tips-dog-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;border:2px solid var(--border);background:var(--surface);font-size:.95rem;font-weight:600;color:var(--text);cursor:pointer;font-family:inherit;transition:border-color .2s,background .2s,box-shadow .2s}.tips-dog-chip:hover{border-color:var(--accent);background:var(--accent-soft)}.tips-dog-chip--active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:var(--shadow-soft)}.tips-dog-chip-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.tips-dog-chip-initials{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.tips-dog-profile-link{font-size:.9rem;font-weight:600;color:var(--accent);margin-left:.25rem}.tips-dog-profile-link:hover{text-decoration:underline}.tips-sections{display:flex;flex-direction:column;gap:2rem}.tips-section{margin:0}.tips-section-title{margin:0 0 .75rem;font-size:1.2rem;font-weight:700;color:var(--heading)}.tips-section-hint{margin:0 0 1rem;font-size:.9rem;color:var(--text-muted)}.tips-section--safety{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border)}.tips-section-empty{margin:0;font-size:.95rem;color:var(--text-muted)}.tips-safety-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem}.tips-safety-category{background:var(--surface);border-radius:16px;padding:1rem 1.25rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.tips-safety-category-title{margin:0 0 .75rem;font-size:1rem;font-weight:700;color:var(--heading)}.tips-safety-list{list-style:none;margin:0;padding:0}.tips-safety-list li{padding:.35rem 0;border-bottom:1px solid var(--border)}.tips-safety-list li:last-child{border-bottom:none}.tips-safety-link{font-size:.95rem;font-weight:500;color:var(--text);text-decoration:none}.tips-safety-link:hover{color:var(--accent);text-decoration:underline}.tips-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.tips-card{background:var(--surface);border-radius:20px;padding:1.25rem 1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-soft);transition:border-color .2s,box-shadow .2s}.tips-card--link{text-decoration:none;color:inherit;display:block}.tips-card--link:hover{border-color:var(--accent);box-shadow:var(--shadow)}.tips-card--link:hover .tips-card-title{color:var(--accent)}.tips-card-title{margin:0 0 .5rem;font-size:1.05rem;font-weight:700;color:var(--heading);transition:color .2s}.tips-card-desc{margin:0 0 .75rem;font-size:.9rem;line-height:1.5;color:var(--text-muted)}.tips-card-cta{font-size:.85rem;font-weight:600;color:var(--accent)}.app-page--tip-detail{padding:1rem 1.25rem 2rem}.tip-detail-content{max-width:640px;margin:0 auto}.tip-detail-back{display:inline-block;margin-bottom:1.25rem;font-weight:600;color:var(--accent);text-decoration:none}.tip-detail-back:hover{text-decoration:underline}.tip-detail-article{background:var(--surface);border-radius:24px;padding:1.75rem 1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.tip-detail-header{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.tip-detail-title{margin:0 0 .5rem;font-size:1.6rem;font-weight:800;color:var(--heading)}.tip-detail-lead{margin:0;font-size:1rem;line-height:1.5;color:var(--text-muted)}.tip-detail-blocks{display:flex;flex-direction:column;gap:1.5rem}.tip-detail-block{margin:0}.tip-detail-block-title{margin:0 0 .5rem;font-size:1.05rem;font-weight:700;color:var(--heading)}.tip-detail-block-body{margin:0;font-size:.98rem;line-height:1.6;color:var(--text)}.tip-detail-block--avoid .tip-detail-block-title{color:var(--warm)}.tip-detail-block--improvement .tip-detail-block-title{color:var(--teal)}.tip-detail-list{margin:.5rem 0 0;padding-left:1.25rem}.tip-detail-list li{margin-bottom:.5rem;line-height:1.5;color:var(--text)}.tip-detail-list--steps{list-style:decimal}.tip-detail-list--avoid{list-style:disc}
