@charset "UTF-8";:root{--color-coral: #F26D6D;--color-sunshine: #FFD27D;--color-sky-blue: #8EC6E8;--color-cream: #FFF6EC;--color-slate: #4A5568;--color-mint: #4ECDC4;--color-lavender: #9B8FD9;--color-orange: #FF9F43;--color-navy: #4A6FA5;--color-lime: #90EE90;--color-pink: #FF69B4;--color-coral-hover: #E25858;--color-sky-blue-hover: #7AB8DC;--bg-primary: var(--color-cream);--bg-secondary: #FFFFFF;--bg-elevated: #FFFFFF;--text-headline: var(--color-slate);--text-body: rgba(74, 85, 104, .95);--text-muted: rgba(74, 85, 104, .8);--link-color: var(--color-coral);--link-hover: var(--color-coral-hover);--btn-primary-bg: var(--color-coral);--btn-primary-text: #FFFFFF;--btn-primary-hover: var(--color-coral-hover);--btn-secondary-bg: transparent;--btn-secondary-text: var(--color-sky-blue);--btn-secondary-border: var(--color-sky-blue);--btn-secondary-hover-bg: rgba(142, 198, 232, .1);--btn-secondary-hover-border: var(--color-sky-blue-hover);--border-light: rgba(95, 108, 123, .15);--border-medium: rgba(95, 108, 123, .25);--focus-ring: rgba(242, 109, 109, .3);--shadow-sm: 0 1px 3px rgba(95, 108, 123, .1);--shadow-md: 0 4px 12px rgba(95, 108, 123, .1);--shadow-lg: 0 10px 25px rgba(95, 108, 123, .15);--shadow-coral: 0 4px 12px rgba(242, 109, 109, .3);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow-x:hidden;width:100%}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-body);background-color:var(--bg-primary)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--text-headline)}p{line-height:1.6}a{color:var(--link-color);text-decoration:none;transition:color var(--transition-normal)}a:hover{color:var(--link-hover);text-decoration:underline}button{font-family:inherit}#root{min-height:100vh}.feedback-tab{position:fixed;right:0;bottom:100px;background:#1e3a5f;color:#fff;padding:16px 8px;border:none;border-radius:0 8px 8px 0;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:13px;font-weight:600;letter-spacing:.5px;cursor:pointer;box-shadow:-2px 2px 8px #0003;z-index:1000;transition:all .2s ease}.feedback-tab:hover{background:#2c4a6e;padding-left:12px}.feedback-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001;padding:1rem;animation:fadeIn .2s ease}.feedback-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.feedback-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#1e3a5f,#152a45);border-radius:16px 16px 0 0;position:relative}.feedback-header-icon{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.feedback-header-text h2{margin:0;color:#fff;font-size:1.25rem;font-weight:700}.feedback-header-text p{margin:.25rem 0 0;color:#fffc;font-size:.875rem}.feedback-close-btn{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border:none;background:#fff3;border-radius:8px;color:#fff;font-size:1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.feedback-close-btn:hover{background:#ffffff4d}.feedback-success{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem 2rem;color:#059669;font-size:1.125rem;font-weight:600}.success-icon{width:40px;height:40px;background:#d1fae5;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.feedback-error{margin:1rem 1.5rem 0;padding:.875rem 1rem;background:#fef2f2;border:1px solid #FECACA;border-radius:8px;color:#dc2626;font-size:.875rem}.feedback-form{padding:1.5rem}.feedback-form .form-group{margin-bottom:1.25rem}.feedback-form label{display:block;font-weight:600;color:#374151;margin-bottom:.5rem;font-size:.9375rem}.feedback-form .field-hint{margin:-.25rem 0 .5rem;color:#6b7280;font-size:.8125rem}.feedback-type-chips{display:flex;flex-wrap:wrap;gap:.5rem}.feedback-type-chip{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:#e8f4fc;border:2px solid transparent;border-radius:20px;font-size:.8125rem;cursor:pointer;transition:all .2s;color:#1e3a5f}.feedback-type-chip:hover{background:#d0e8f5}.feedback-type-chip.selected{background:#1e3a5f;color:#fff}.chip-emoji{font-size:.9375rem}.chip-label{font-weight:500}.feedback-form textarea{width:100%;padding:.75rem 1rem;border:2px solid #E5E7EB;border-radius:10px;font-size:.9375rem;font-family:inherit;resize:vertical;min-height:100px;transition:border-color .2s}.feedback-form textarea:focus{outline:none;border-color:#1e3a5f}.feedback-form textarea:disabled{background:#f9fafb}.char-counter{text-align:right;font-size:.75rem;color:#9ca3af;margin-top:.25rem}.email-input-wrapper{position:relative;display:flex;align-items:center}.email-icon{position:absolute;left:.75rem;font-size:1rem;pointer-events:none}.feedback-form input[type=email]{width:100%;padding:.75rem 1rem .75rem 2.5rem;border:2px solid #E5E7EB;border-radius:10px;font-size:.9375rem;font-family:inherit;transition:border-color .2s}.feedback-form input[type=email]:focus{outline:none;border-color:#1e3a5f}.feedback-form input[type=email]:disabled{background:#f9fafb}.screenshot-upload{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.screenshot-upload input[type=file]{display:none}.screenshot-upload-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#f3f4f6;border:2px dashed #D1D5DB;border-radius:8px;color:#4b5563;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.screenshot-upload-btn:hover{background:#e5e7eb;border-color:#9ca3af}.upload-hint{font-size:.75rem;color:#9ca3af}.screenshot-preview{position:relative;display:inline-block;max-width:100%}.screenshot-preview img{max-width:100%;max-height:150px;border-radius:8px;border:2px solid #E5E7EB}.remove-screenshot-btn{position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:#ef4444;color:#fff;border:none;border-radius:50%;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.remove-screenshot-btn:hover{background:#dc2626;transform:scale(1.1)}.feedback-submit-btn{width:100%;padding:.875rem 1.5rem;background:linear-gradient(135deg,#1e3a5f,#152a45);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.feedback-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #1e3a5f66}.feedback-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.feedback-footer{text-align:center;font-size:.8125rem;color:#9ca3af;margin:1rem 0 0}@media(max-width:640px){.feedback-tab{bottom:80px;padding:14px 6px;font-size:12px}.feedback-modal-overlay{padding:0;align-items:flex-end}.feedback-modal{max-height:95vh;border-radius:16px 16px 0 0}.feedback-header{border-radius:16px 16px 0 0}.feedback-type-chips{gap:.375rem}.feedback-type-chip{padding:.375rem .625rem;font-size:.75rem}.chip-emoji{font-size:.875rem}}.hero-carousel{position:relative;width:559px;height:559px;overflow:visible;border-radius:0;box-shadow:none;display:flex;align-items:center;justify-content:center}.hero-carousel-slide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity 1s ease-in-out;display:flex;align-items:center;justify-content:center}.hero-carousel-slide.active{opacity:1}.hero-carousel-slide img{height:638px;width:auto;object-fit:contain;border-radius:var(--radius-md);box-shadow:none}.hero-carousel-indicators{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;gap:.5rem}.hero-carousel-indicator{width:12px;height:12px;border-radius:50%;border:2px solid #8EC6E8;background:transparent;cursor:pointer;transition:all var(--transition-slow);padding:0}.hero-carousel-indicator:hover{background:#8ec6e880}.hero-carousel-indicator.active{background:#8ec6e8}@media(max-width:768px){.hero-carousel{width:300px;height:300px}.hero-carousel-slide img{height:374px;width:auto}.hero-carousel-indicator{width:10px;height:10px}}@media(max-width:480px){.hero-carousel{width:260px;height:260px}.hero-carousel-slide img{height:319px;width:auto}}.pet-age-calculator{text-align:center;padding:2rem;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:600px;margin:0 auto;overflow:visible}.pet-age-calculator h2{font-size:2rem;color:var(--text-headline);margin-bottom:1.5rem}.calculator-form{max-width:500px;margin:0 auto}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:600;color:var(--text-body);margin-bottom:.5rem}.form-group input[type=date]{width:100%;max-width:100%;padding:.75rem 1rem;font-size:1rem;border:2px solid var(--border-medium);border-radius:var(--radius-md);background:#fff;color:var(--text-body);transition:border-color var(--transition-normal);box-sizing:border-box;-webkit-appearance:none;appearance:none}.form-group input[type=date]:focus{outline:none;border-color:var(--color-sky-blue)}.species-selector{display:flex;justify-content:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.species-button{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 1rem;border:3px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);min-width:90px;position:relative}.species-button.dog{background:#8ec6e8e6;color:#fff}.species-button.cat{background:#ffd27de6;color:#fff}.species-button.guinea_pig{background:#9b8fd9e6;color:#fff}.species-button.hamster{background:#4ecdc4e6;color:#fff}.species-button.dog:hover{background:#8ec6e8;transform:translateY(-4px)}.species-button.cat:hover{background:#ffd27d;transform:translateY(-4px)}.species-button.guinea_pig:hover{background:#9b8fd9;transform:translateY(-4px)}.species-button.hamster:hover{background:#4ecdc4;transform:translateY(-4px)}.species-button.active:after{content:"✓";position:absolute;top:2px;right:4px;font-size:1.1rem;font-weight:700;color:var(--color-slate)}.species-button.active.dog{background:var(--color-sky-blue);color:var(--color-slate)}.species-button.active.cat{background:var(--color-sunshine);color:var(--color-slate)}.species-button.active.guinea_pig{background:var(--color-lavender);color:var(--color-slate)}.species-button.active.hamster{background:var(--color-mint);color:var(--color-slate)}.species-emoji{font-size:1.5rem}.species-label{font-size:.85rem;font-weight:500}.dog-options{margin-bottom:1.5rem;padding:1rem;background:#8ec6e81a;border-radius:var(--radius-md);border:1px solid rgba(142,198,232,.3)}.dog-select{width:100%;padding:.75rem 1rem;font-size:1rem;border:2px solid var(--border-medium);border-radius:var(--radius-md);background:#fff;color:var(--text-body);cursor:pointer;transition:border-color var(--transition-normal)}.dog-select:focus{outline:none;border-color:var(--color-sky-blue)}.dog-size-selector{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.dog-size-btn{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:2px solid var(--border-medium);border-radius:var(--radius-md);background:#fff;color:var(--text-body);cursor:pointer;transition:all var(--transition-normal)}.dog-size-btn:hover{border-color:var(--color-sky-blue);background:#8ec6e81a}.dog-size-btn.active{background:var(--color-sky-blue);border-color:var(--color-sky-blue);color:var(--color-slate);font-weight:600}.size-hint{margin-top:.5rem;font-size:.85rem;color:var(--text-muted);text-align:center}.calculate-button{padding:.875rem 2.5rem;font-size:1.125rem;font-weight:600;background:#f26d6de6;color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal)}.calculate-button:hover:not(:disabled){background:var(--color-coral);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.calculate-button:disabled{opacity:.5;cursor:not-allowed}.calculator-result{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:300px;margin-left:auto;margin-right:auto;transform:scale(.95);opacity:0;transition:all .3s ease}.calculator-result.show{transform:scale(1);opacity:1}.result-emoji{font-size:3rem;margin-bottom:.5rem}.result-age{display:flex;flex-direction:column;align-items:center;margin-bottom:.5rem}.age-number{font-size:2.5rem;font-weight:700;color:var(--color-coral)}.age-label{font-size:1rem;color:var(--text-muted);font-weight:500}.result-message{font-size:1.125rem;color:var(--text-body);font-weight:500}.result-method{margin-top:.75rem;font-size:.85rem;color:var(--text-muted);padding-top:.5rem;border-top:1px solid var(--border-light)}@media(max-width:768px){.pet-age-calculator{padding:1.5rem 1rem;margin:0 .5rem}.pet-age-calculator h2{font-size:1.5rem}.calculator-form{max-width:100%;padding:0 .5rem}.form-group input[type=date]{font-size:16px}.species-selector{gap:.5rem}.species-button{min-width:75px;padding:.5rem .75rem}.species-emoji{font-size:1.25rem}.species-label{font-size:.75rem}.dog-options{padding:.75rem}.dog-size-selector{gap:.35rem}.dog-size-btn{padding:.4rem .75rem;font-size:.8rem}.dog-select{font-size:16px}}.did-you-know{padding:4rem 2rem;text-align:center;background-color:var(--color-cream);margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%)}.did-you-know h2{font-size:2.5rem;color:var(--text-headline);margin-bottom:.75rem}.did-you-know-subtitle{font-size:1.125rem;color:var(--text-muted);margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.fact-cards{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;max-width:1000px;margin:0 auto}.fact-card{background:#fff;border-radius:var(--radius-lg);padding:2rem 1.5rem;width:280px;box-shadow:0 8px 30px #00000014;transition:transform var(--transition-normal),box-shadow var(--transition-normal);border-top:5px solid transparent}.fact-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px #0000001f}.fact-card-sky-blue{border-top-color:var(--color-sky-blue)}.fact-card-coral{border-top-color:var(--color-coral)}.fact-card-mint{border-top-color:var(--color-mint)}.fact-card-sunshine{border-top-color:var(--color-sunshine)}.fact-emoji{font-size:3rem;display:block;margin-bottom:1rem}.fact-number{display:flex;align-items:baseline;justify-content:center;gap:.5rem;margin-bottom:.75rem}.fact-number .number{font-size:3.5rem;font-weight:700;line-height:1}.fact-card-sky-blue .number{color:var(--color-sky-blue)}.fact-card-coral .number{color:var(--color-coral)}.fact-card-mint .number{color:var(--color-mint)}.fact-card-sunshine .number{color:var(--color-sunshine)}.fact-number .unit{font-size:1.25rem;font-weight:600;color:var(--text-muted)}.fact-description{font-size:1rem;color:var(--text-body);line-height:1.5;margin:0}@media(max-width:768px){.did-you-know{padding:3rem 1rem}.did-you-know h2{font-size:2rem}.fact-cards{gap:1.5rem}.fact-card{width:100%;max-width:320px}.fact-number .number{font-size:2.5rem}}.faq-section{padding:4rem 2rem;max-width:100%;margin:0;background-color:#fff;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%)}.faq-section>h2,.faq-section>.faq-container{max-width:800px;margin-left:auto;margin-right:auto}.faq-section h2{font-size:2.5rem;color:var(--text-headline);text-align:center;margin-bottom:2.5rem}.faq-container{display:flex;flex-direction:column;gap:1rem}.faq-item{background:#8ec6e826;border-radius:var(--radius-md);box-shadow:0 2px 12px #0000000f;overflow:hidden;border:2px solid transparent;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.faq-item:hover{border-color:var(--color-sky-blue)}.faq-item.open{border-color:var(--color-coral);box-shadow:0 4px 20px #f26d6d26}.faq-question{width:100%;display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;transition:background-color var(--transition-normal)}.faq-question:hover{background-color:#8ec6e814}.faq-item.open .faq-question{background-color:#f26d6d14}.faq-icon{font-size:1.5rem;flex-shrink:0}.faq-question-text{flex:1;font-size:1.125rem;font-weight:600;color:var(--text-headline)}.faq-toggle{font-size:1.5rem;font-weight:300;color:var(--color-coral);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f26d6d1a;flex-shrink:0;transition:transform var(--transition-normal),background-color var(--transition-normal)}.faq-item.open .faq-toggle{background:var(--color-coral);color:#fff;transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.faq-item.open .faq-answer{max-height:300px}.faq-answer p{padding:0 1.5rem 1.5rem 4rem;margin:0;font-size:1rem;line-height:1.7;color:var(--text-body)}.faq-link{color:var(--color-coral);font-weight:600;text-decoration:none;transition:color var(--transition-normal)}.faq-link:hover{color:var(--color-coral-hover);text-decoration:underline}@media(max-width:768px){.faq-section{padding:3rem 1rem}.faq-section h2{font-size:2rem}.faq-question{padding:1rem 1.25rem;gap:.75rem}.faq-question-text{font-size:1rem}.faq-icon{font-size:1.25rem}.faq-answer p{padding:0 1.25rem 1.25rem 3rem}}.waitlist-section{background:linear-gradient(135deg,var(--color-coral) 0%,#e85a5a 100%);margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding:5rem 2rem;position:relative;overflow:visible}.waitlist-content{max-width:600px;margin:0 auto;text-align:center;position:relative;z-index:1;overflow:visible}.waitlist-decorations{position:absolute;inset:0;pointer-events:none;z-index:0}.decoration{position:absolute;font-size:2rem;opacity:.3;animation:float 6s ease-in-out infinite}.decoration-1{top:10%;left:10%;animation-delay:0s}.decoration-2{top:20%;right:15%;animation-delay:1s}.decoration-3{bottom:30%;left:8%;animation-delay:2s}.decoration-4{bottom:20%;right:10%;animation-delay:3s}.decoration-5{top:50%;right:5%;animation-delay:4s}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(10deg)}}.waitlist-section h2{font-size:2.5rem;color:#fff;margin-bottom:.75rem;text-shadow:0 2px 10px rgba(0,0,0,.1)}.waitlist-subtitle{font-size:1.25rem;color:#ffffffe6;margin-bottom:1.5rem}.waitlist-perk{display:inline-flex;align-items:center;gap:.75rem;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 1.25rem;border-radius:50px;margin-bottom:2rem}.perk-badge{background:var(--color-sunshine);color:var(--text-headline);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.25rem .75rem;border-radius:20px}.perk-text{color:#fff;font-weight:600;font-size:.95rem}.waitlist-form{margin-bottom:1.5rem;overflow:visible}.form-input-wrapper{display:flex;gap:.75rem;overflow:visible}.waitlist-form input{flex:1;padding:1rem 1.25rem;font-size:1rem;border:2px solid transparent;border-radius:var(--radius-md);background:#fff;color:var(--text-body);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.waitlist-form input:focus{outline:none;border-color:var(--color-sunshine);box-shadow:0 0 0 4px #ffd27d4d}.waitlist-form input.input-error{border-color:#ff6b6b;animation:shake .4s ease}.waitlist-form input::placeholder{color:var(--text-muted)}.waitlist-submit{padding:1rem 2rem;font-size:1rem;font-weight:600;background:var(--color-sunshine);color:var(--text-headline);border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.waitlist-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #ffd27d66}.waitlist-submit:disabled{opacity:.7;cursor:not-allowed}.waitlist-error{color:#fff;background:#0003;padding:.5rem 1rem;border-radius:var(--radius-sm);margin-top:.75rem;font-size:.9rem}.waitlist-success{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem;border-radius:var(--radius-lg);margin-bottom:1.5rem;position:relative;overflow:hidden}.confetti-container{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti{position:absolute;width:8px;height:8px;top:-10px;animation:confetti-fall 3s ease-in-out forwards}.confetti-0{background:var(--color-sunshine);border-radius:50%}.confetti-1{background:var(--color-sky-blue);border-radius:2px}.confetti-2{background:var(--color-lavender);border-radius:50%}.confetti-3{background:var(--color-mint);border-radius:2px}.confetti-4{background:#fff;border-radius:50%}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(250px) rotate(720deg);opacity:0}}.success-emoji{font-size:3rem;display:block;margin-bottom:.75rem;position:relative;z-index:1}.waitlist-success h3{color:#fff;font-size:1.5rem;margin-bottom:.5rem;position:relative;z-index:1}.waitlist-success p{color:#ffffffe6;margin:0 0 .75rem;position:relative;z-index:1}.waitlist-success p:last-child{margin-bottom:0}.waitlist-success .bonus-message{background:#ffd27d66;padding:.75rem 1rem;border-radius:var(--radius-sm);font-weight:600;color:#fff;margin-top:1rem;position:relative;z-index:1}.waitlist-privacy{font-size:.85rem;color:#ffffffb3;margin:0}.waitlist-spacer{height:26rem}.waitlist-form-container{position:relative;max-width:480px;margin:0 auto;overflow:visible}.waitlist-balloons{position:absolute;top:-75px;width:70px;height:90px;pointer-events:none;z-index:10;background:#ff00004d}.waitlist-balloons-left{left:-30px}.waitlist-balloons-right{right:-30px}.waitlist-balloon{position:absolute;display:flex;flex-direction:column;align-items:center;transform-origin:bottom center}.waitlist-balloons-left .waitlist-balloon-1{left:0;top:10px;animation:sway-balloon 3s ease-in-out infinite}.waitlist-balloons-left .waitlist-balloon-2{left:20px;top:0;animation:sway-balloon 3.5s ease-in-out infinite;animation-delay:.5s}.waitlist-balloons-left .waitlist-balloon-3{left:40px;top:8px;animation:sway-balloon 3.2s ease-in-out infinite;animation-delay:1s}.waitlist-balloons-right .waitlist-balloon-1{right:40px;top:8px;animation:sway-balloon 3.2s ease-in-out infinite;animation-delay:.3s}.waitlist-balloons-right .waitlist-balloon-2{right:20px;top:0;animation:sway-balloon 3.5s ease-in-out infinite;animation-delay:.8s}.waitlist-balloons-right .waitlist-balloon-3{right:0;top:10px;animation:sway-balloon 3s ease-in-out infinite;animation-delay:.2s}@keyframes sway-balloon{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.waitlist-balloon-body{width:28px;height:34px;border-radius:50%/40% 40% 60% 60%;position:relative;box-shadow:inset -3px -3px 10px #0000001a}.waitlist-balloon-body:before{content:"";position:absolute;top:8px;left:6px;width:6px;height:9px;background:#fff6;border-radius:50%;transform:rotate(-30deg)}.waitlist-balloon-body.lavender{background:linear-gradient(135deg,#b8aee6 0%,var(--color-lavender) 50%,#7a6bc4 100%)}.waitlist-balloon-body.sunshine{background:linear-gradient(135deg,#ffe4a8 0%,var(--color-sunshine) 50%,#f0c050 100%)}.waitlist-balloon-body.coral{background:linear-gradient(135deg,#f7a0a0 0%,var(--color-coral) 50%,#e05555 100%)}.waitlist-balloon-body.sky-blue{background:linear-gradient(135deg,#a8d4f0 0%,var(--color-sky-blue) 50%,#6fb3d9 100%)}.waitlist-balloon-body.mint{background:linear-gradient(135deg,#7eddd6 0%,var(--color-mint) 50%,#3bb8b0 100%)}.waitlist-balloon-knot{width:5px;height:5px;transform:rotate(45deg);margin-top:-2px}.waitlist-balloon-knot.lavender{background:#7a6bc4}.waitlist-balloon-knot.sunshine{background:#f0c050}.waitlist-balloon-knot.coral{background:#e05555}.waitlist-balloon-knot.sky-blue{background:#6fb3d9}.waitlist-balloon-knot.mint{background:#3bb8b0}.waitlist-balloon-strings{position:absolute;bottom:-70px;left:50%;transform:translate(-50%);width:60px;height:70px}@media(max-width:768px){.waitlist-section{padding:4rem 1.5rem}.waitlist-section h2{font-size:2rem}.waitlist-subtitle{font-size:1.1rem}.form-input-wrapper{flex-direction:column}.waitlist-submit{width:100%}.decoration{font-size:1.5rem}.waitlist-balloons{display:none}.waitlist-spacer{height:1rem}}.hero-waitlist-form-wrapper{margin-top:1.5rem;max-width:480px}.hero-waitlist-label{font-size:1rem;color:var(--text-body);margin-bottom:.75rem}.hero-waitlist-label strong{color:var(--color-coral)}.hero-waitlist-form{display:flex;gap:.5rem;align-items:stretch}.hero-waitlist-form input{flex:1;padding:.875rem 1rem;font-size:1rem;border:2px solid var(--border-light);border-radius:var(--radius-md);background:#fff;color:var(--text-body);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);min-width:0}.hero-waitlist-form input:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px #f26d6d26}.hero-waitlist-form input.input-error{border-color:var(--color-coral);animation:shake .4s ease}.hero-waitlist-form input::placeholder{color:var(--text-muted)}.hero-waitlist-submit{padding:.875rem 1.5rem;font-size:1rem;font-weight:600;background:var(--color-coral);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:transform var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}.hero-waitlist-submit:hover:not(:disabled){background:#e05a5a;transform:translateY(-2px);box-shadow:0 4px 12px #f26d6d4d}.hero-waitlist-submit:disabled{opacity:.7;cursor:not-allowed}.hero-waitlist-error{color:var(--color-coral);font-size:.875rem;margin-top:.5rem;margin-bottom:0}.hero-waitlist-success{display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,#4ecdc41a,#8ec6e81a);border:2px solid var(--color-mint);padding:1rem 1.25rem;border-radius:var(--radius-md);margin-top:1.5rem;max-width:480px}.hero-waitlist-success-icon{font-size:1.5rem;flex-shrink:0}.hero-waitlist-success-text{font-size:1rem;color:var(--text-body);font-weight:500}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media(max-width:600px){.hero-waitlist-form{flex-direction:column}.hero-waitlist-submit{width:100%}.hero-waitlist-form-wrapper,.hero-waitlist-success{max-width:100%}}.sticky-waitlist-bar{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,var(--color-coral) 0%,#e85a5a 100%);padding:.75rem 1rem;z-index:1000;box-shadow:0 -4px 20px #00000026;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.sticky-waitlist-container{max-width:600px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:.75rem}.sticky-waitlist-cta{display:flex;align-items:center;gap:.5rem;background:#fff;border:none;padding:.625rem 1.25rem;border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-weight:600;color:var(--color-coral);transition:transform var(--transition-fast),box-shadow var(--transition-fast);flex:1;justify-content:center}.sticky-waitlist-cta:hover{transform:scale(1.02);box-shadow:0 4px 12px #00000026}.sticky-waitlist-cta-icon{font-size:1.1rem}.sticky-waitlist-cta-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sticky-waitlist-form{display:flex;gap:.5rem;flex:1;min-width:0}.sticky-waitlist-form input{flex:1;min-width:0;padding:.625rem .875rem;font-size:.9rem;border:2px solid transparent;border-radius:var(--radius-md);background:#fff;color:var(--text-body)}.sticky-waitlist-form input:focus{outline:none;border-color:var(--color-sunshine)}.sticky-waitlist-form input::placeholder{color:var(--text-muted)}.sticky-waitlist-submit{padding:.625rem 1rem;font-size:.9rem;font-weight:600;background:var(--color-sunshine);color:var(--text-headline);border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:transform var(--transition-fast)}.sticky-waitlist-submit:hover:not(:disabled){transform:scale(1.05)}.sticky-waitlist-submit:disabled{opacity:.7;cursor:not-allowed}.sticky-waitlist-dismiss{background:#fff3;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:1.25rem;line-height:1;color:#fff;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast);flex-shrink:0}.sticky-waitlist-dismiss:hover{background:#ffffff4d}.sticky-waitlist-success{display:flex;align-items:center;gap:.5rem;color:#fff;font-weight:600;font-size:.95rem}@media(min-width:769px){.sticky-waitlist-bar{display:none}}@media(max-width:380px){.sticky-waitlist-cta{font-size:.8rem;padding:.5rem 1rem}.sticky-waitlist-cta-text{display:none}.sticky-waitlist-cta:after{content:"Join Waitlist!"}}.welcome-modal-overlay{position:fixed;inset:0;background-color:#5f6c7b80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease-out}.welcome-modal{background:var(--bg-elevated);border-radius:var(--radius-xl);max-width:480px;width:100%;box-shadow:0 25px 50px -12px #5f6c7b40;animation:slideUp .4s ease-out;overflow:hidden}.welcome-modal-content{padding:2.5rem;text-align:center}.welcome-celebration{margin-bottom:1.5rem}.celebration-emoji{font-size:4rem;display:inline-block;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.welcome-title{font-size:1.75rem;font-weight:700;color:var(--text-headline);margin:0 0 1rem;line-height:1.3}.welcome-message{font-size:1.125rem;color:var(--text-body);margin:0 0 .75rem;line-height:1.6}.welcome-description{font-size:1rem;color:var(--text-muted);margin:0 0 .75rem;line-height:1.6}.welcome-promise{font-size:.875rem;color:var(--text-muted);margin:0 0 2rem;font-style:italic;opacity:.8}.welcome-cta{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--btn-primary-bg);color:var(--btn-primary-text);font-size:1.125rem;font-weight:600;padding:1rem 2rem;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);width:100%}.welcome-cta:hover{background-color:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.welcome-cta:active{transform:translateY(0)}.cta-arrow{transition:transform var(--transition-normal)}.welcome-cta:hover .cta-arrow{transform:translate(4px)}@media(max-width:480px){.welcome-modal-content{padding:1.5rem}.welcome-title{font-size:1.5rem}.celebration-emoji{font-size:3rem}.welcome-cta{font-size:1rem;padding:.875rem 1.5rem}}.dashboard-page{min-height:100vh;padding:2rem 1rem;background:var(--bg-primary);overflow-x:hidden}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem}.loading-spinner{width:48px;height:48px;border:4px solid var(--border-light);border-top-color:var(--color-coral);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.celebration-hero{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);padding:1.5rem 2rem;position:relative;overflow:hidden;border-bottom:3px solid rgba(242,109,109,.2)}.celebration-hero.birthday{background:linear-gradient(135deg,#ffd27d26,#ffd27d14)}.celebration-hero.vet{background:linear-gradient(135deg,rgba(142,198,232,.15) 0%,var(--bg-secondary) 100%);border-bottom-color:#8ec6e84d}.celebration-hero.imminent{animation:hero-glow 3s ease-in-out infinite}@keyframes hero-glow{0%,to{box-shadow:inset 0 0 30px #f26d6d1a}50%{box-shadow:inset 0 0 60px #f26d6d33}}.hero-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;font-size:1.5rem;opacity:.4;animation:float 6s ease-in-out infinite}.confetti-piece:nth-child(1){left:5%;top:20%;animation-delay:0s}.confetti-piece:nth-child(2){left:20%;top:60%;animation-delay:1s}.confetti-piece:nth-child(3){right:20%;top:30%;animation-delay:2s}.confetti-piece:nth-child(4){right:10%;top:70%;animation-delay:3s}.confetti-piece:nth-child(5){left:50%;top:10%;animation-delay:4s}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(10deg)}}.hero-content{display:flex;align-items:center;gap:1.5rem;max-width:900px;margin:0 auto;position:relative;z-index:1}.hero-icon{font-size:3rem;flex-shrink:0}.hero-text{flex:1}.hero-title{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:var(--text-headline)}.hero-countdown{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:var(--color-coral)}.celebration-hero.vet .hero-countdown{color:var(--color-sky-blue-hover)}.hero-date{font-size:.875rem;color:var(--text-muted)}.hero-pet-photo{width:80px;height:80px;border-radius:50%;overflow:hidden;border:4px solid white;box-shadow:0 4px 15px #0000001a;flex-shrink:0}.hero-pet-photo img{width:100%;height:100%;object-fit:cover}.dashboard-container{max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}.dashboard-greeting{margin-bottom:2rem;text-align:center}.dashboard-greeting h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.greeting-subtitle{font-size:1.1rem;color:var(--text-muted);margin:0}.error-banner{background:#fee2e2;color:#991b1b;padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.quick-actions-section{margin-bottom:2.5rem}.quick-actions-grid{display:flex;gap:1rem;justify-content:center}.quick-action-btn{padding:.875rem 1.75rem;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.quick-action-btn.add-reminder{background:#9b8fd9}.quick-action-btn.add-reminder:hover{background:#8a7ecc;transform:translateY(-3px)}.quick-action-btn.add-pet{background:#f26d6d}.quick-action-btn.add-pet:hover{background:#e85555;transform:translateY(-3px)}.quick-action-btn.add-vet{background:#8ec6e8}.quick-action-btn.add-vet:hover{background:#7ab8dd;transform:translateY(-3px)}.quick-action-btn.add-memory{background:#4ecdc4}.quick-action-btn.add-memory:hover{background:#3dbdb5;transform:translateY(-3px)}.dashboard-main{display:grid;grid-template-columns:1fr 300px;gap:2rem;align-items:start}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.section-header h2{font-size:1.25rem;font-weight:700;color:var(--text-headline);margin:0}.add-pet-btn{background:transparent;border:2px solid var(--color-coral);color:var(--color-coral);padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.add-pet-btn:hover{background:var(--color-coral);color:#fff}.empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-xl);border:2px dashed var(--border-medium)}.empty-illustration{font-size:4rem;margin-bottom:1.5rem;filter:grayscale(20%)}.empty-state h3{font-size:1.5rem;color:var(--text-headline);margin:0 0 .5rem}.empty-state p{color:var(--text-muted);margin:0 0 1.5rem;max-width:300px;margin-left:auto;margin-right:auto}.pets-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.25rem}.pet-gallery-card{position:relative;border-radius:var(--radius-xl);overflow:hidden;cursor:pointer;transition:all var(--transition-normal);background:var(--bg-secondary);box-shadow:var(--shadow-md)}.pet-gallery-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}.pet-gallery-card.has-event{box-shadow:var(--shadow-coral)}.pet-gallery-card.has-event:hover{box-shadow:0 16px 32px #f26d6d40}.event-badge{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--bg-secondary);border-radius:var(--radius-xl);font-size:.75rem;font-weight:700;z-index:10;box-shadow:var(--shadow-sm)}.event-badge.birthday{background:linear-gradient(135deg,#f26d6d26,#f26d6d1a);color:var(--color-coral)}.event-badge.vet{background:linear-gradient(135deg,rgba(142,198,232,.15),var(--bg-secondary));color:var(--color-sky-blue-hover)}.gallery-photo{aspect-ratio:1;overflow:hidden}.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.pet-gallery-card:hover .gallery-photo img{transform:scale(1.05)}.photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-primary) 0%,rgba(255,210,125,.15) 50%,var(--bg-secondary) 100%);font-size:4rem}.gallery-info{padding:1rem;background:var(--bg-secondary)}.pet-name{font-size:1.125rem;font-weight:700;color:var(--text-headline);margin:0 0 .25rem}.pet-age{font-size:.875rem;color:var(--text-muted);margin:0}.gallery-hover-details{position:absolute;bottom:0;left:0;right:0;padding:1rem;background:linear-gradient(0deg,rgba(0,0,0,.7) 0%,transparent 100%);display:flex;justify-content:space-between;align-items:center;opacity:0;transform:translateY(10px);transition:all .3s ease}.pet-gallery-card:hover .gallery-hover-details{opacity:1;transform:translateY(0)}.species-badge{background:#fff3;color:#fff;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.birthday-info{color:#fff;font-size:.8rem;font-weight:500}.events-section{background:var(--bg-secondary);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-md);position:sticky;top:2rem}.events-timeline{display:flex;flex-direction:column;gap:.75rem}.timeline-event{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:var(--radius-md);background:var(--bg-primary);transition:all var(--transition-fast)}.timeline-event:hover{background:#5f6c7b0d}.timeline-event.birthday{background:linear-gradient(135deg,#ffd27d1f,#ffd27d0f)}.timeline-event.vet{background:linear-gradient(135deg,rgba(142,198,232,.1) 0%,var(--bg-secondary) 100%)}.event-marker{font-size:1.25rem;flex-shrink:0}.event-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.event-name{font-size:.875rem;font-weight:700;color:var(--text-headline)}.event-type{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-when{font-size:.75rem;font-weight:600;color:var(--color-coral)}.timeline-event.vet .event-when{color:var(--color-sky-blue-hover)}.event-date-badge{font-size:.7rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary);padding:4px 8px;border-radius:var(--radius-sm);flex-shrink:0}.view-calendar-btn{width:100%;margin-top:1rem;padding:.75rem;background:#fff;border:2px solid var(--color-coral);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;color:var(--color-coral);cursor:pointer;transition:all var(--transition-fast)}.view-calendar-btn:hover{background:#f3f4f6;transform:translateY(-2px)}.pet-cards-section{display:grid;gap:1.5rem}.pet-cards-section.cards-grid-1{grid-template-columns:1fr 1fr}.pet-cards-section.cards-grid-2{grid-template-columns:repeat(3,1fr)}.pet-cards-section.cards-grid-3-plus{grid-template-columns:repeat(2,1fr)}.dashboard-pet-card{background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;transition:all var(--transition-normal)}.dashboard-pet-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.dashboard-pet-card.upcoming-event{box-shadow:var(--shadow-coral)}.pet-card-header{display:flex;align-items:center;gap:1rem;padding:1.25rem;cursor:pointer;transition:background .2s ease}.pet-card-header:hover{background:#5f6c7b0d}.dashboard-pet-card .pet-card-photo{width:80px;height:80px;border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0;box-shadow:var(--shadow-sm)}.dashboard-pet-card .pet-card-photo img{width:100%;height:100%;object-fit:cover}.photo-placeholder-medium{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-primary) 0%,rgba(255,210,125,.15) 50%,var(--bg-secondary) 100%);font-size:2.5rem}.pet-card-info{flex:1;min-width:0}.pet-card-name{font-size:1.25rem;font-weight:700;color:var(--text-headline);margin:0 0 .25rem}.pet-card-pet-years{font-size:1rem;font-weight:600;color:var(--color-coral);margin:0 0 .125rem}.pet-card-human-years{font-size:.875rem;color:var(--text-muted);margin:0}.pet-card-next-event-wrapper{padding:.75rem 1rem;background:var(--bg-secondary);border-top:1px solid var(--border-light)}.pet-card-next-event{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#f26d6d14,#ffd27d1f);border-radius:var(--radius-md);height:72px;box-sizing:border-box}.pet-card-next-event.birthday{background:linear-gradient(135deg,#f26d6d26,#f26d6d14)}.pet-card-next-event.vet{background:linear-gradient(135deg,rgba(142,198,232,.15) 0%,var(--bg-secondary) 100%)}.pet-card-next-event.reminder{background:linear-gradient(135deg,#9b8fd926,#9b8fd914)}.next-event-icon{font-size:1.75rem;flex-shrink:0}.next-event-info{flex:1;min-width:0;overflow:hidden}.next-event-title{display:block;font-size:.9rem;font-weight:700;color:var(--text-headline);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-event-when{display:block;font-size:.875rem;font-weight:600;color:var(--color-coral);white-space:nowrap}.pet-card-next-event.empty{background:var(--bg-primary);justify-content:center}.next-event-empty-text{font-size:.875rem;color:var(--text-muted);font-style:italic}.pet-card-next-event.vet .next-event-when{color:var(--color-sky-blue-hover)}.pet-card-next-event.reminder .next-event-when{color:#9b8fd9}.pet-card-next-event.birthday .next-event-when{color:var(--color-coral)}.next-event-date{font-size:.75rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary);padding:4px 10px;border-radius:var(--radius-sm);flex-shrink:0}.pet-horizontal-timeline-wrapper{padding:.75rem 1rem;background:var(--bg-secondary);border-top:1px solid var(--border-light)}.pet-horizontal-timeline{position:relative;padding:.75rem 0;background:#fff;border-radius:var(--radius-md)}.pet-timeline-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent;-webkit-overflow-scrolling:touch;padding:0 3rem 0 1rem;cursor:grab;-webkit-user-select:none;user-select:none}.timeline-swipe-indicator{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:linear-gradient(135deg,var(--color-coral) 0%,#E85555 100%);border-radius:50%;border:none;box-shadow:0 2px 8px #f26d6d4d;color:#fff;font-size:1.25rem;z-index:10;cursor:pointer;transition:all .2s ease}.timeline-swipe-indicator:hover{transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #f26d6d66}.timeline-swipe-indicator:active{transform:translateY(-50%) scale(.95)}.timeline-swipe-indicator:after{content:"›";font-weight:700;line-height:1}.timeline-swipe-indicator.hidden{opacity:0;pointer-events:none}.pet-timeline-scroll.dragging{cursor:grabbing}.pet-timeline-scroll::-webkit-scrollbar{height:3px}.pet-timeline-scroll::-webkit-scrollbar-track{background:transparent}.pet-timeline-scroll::-webkit-scrollbar-thumb{background:#0003;border-radius:2px}.pet-timeline-track{display:flex;align-items:center;gap:.5rem;min-width:min-content;padding:.25rem 0}.timeline-spacer{display:flex;align-items:center;justify-content:center;padding:0 .5rem}.spacer-dots{font-size:1.25rem;color:var(--text-muted);letter-spacing:2px}.timeline-event-node{display:flex;flex-direction:column;align-items:center;min-width:72px;padding:.5rem;border-radius:var(--radius-md);background:#fff;border:2px solid rgba(255,255,255,.6);transition:all .3s ease;box-shadow:0 2px 4px #00000014}.timeline-event-node.today{border-color:var(--color-coral);box-shadow:var(--shadow-coral)}.timeline-event-node.birthday{border-color:#f26d6d;background:#fff5f5}.timeline-event-node.vet{border-color:#8ec6e8;background:#f0f9ff}.timeline-event-node.reminder{border-color:#9b8fd9;background:#f8f5ff}.node-date{display:flex;flex-direction:column;align-items:center;margin-bottom:.375rem}.node-day{font-size:.625rem;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.node-num{font-size:1.125rem;font-weight:800;color:var(--text-headline);line-height:1.1}.node-month{font-size:.625rem;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.node-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:1rem;border-radius:50%;margin-bottom:.25rem}.node-icon.event-birthday{background:#ffe5e5}.node-icon.event-vet{background:#e0f2fe}.node-icon.event-reminder{background:#ede9fe}.node-label{font-size:.625rem;font-weight:600;color:var(--text-muted);text-align:center;max-width:70px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pet-timeline-empty{padding:1rem;text-align:center;background:var(--bg-primary);border-top:1px solid var(--border-light)}.timeline-empty-text{font-size:.875rem;color:var(--text-muted)}.coming-up-card{background:var(--bg-secondary);border-radius:var(--radius-xl);padding:1.25rem;box-shadow:var(--shadow-md);height:fit-content}.coming-up-header{margin-bottom:1rem}.coming-up-header h2{font-size:1.125rem;font-weight:700;color:var(--text-headline);margin:0}.coming-up-events{display:flex;flex-direction:column;gap:.75rem}.coming-up-event{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:var(--radius-md);background:var(--bg-primary);transition:all var(--transition-fast)}.coming-up-event:hover{background:#5f6c7b0d}.coming-up-event.birthday{background:linear-gradient(135deg,#f26d6d1f,#f26d6d0f)}.coming-up-event.vet{background:linear-gradient(135deg,rgba(142,198,232,.1) 0%,var(--bg-primary) 100%)}.coming-up-event.reminder{background:linear-gradient(135deg,#9b8fd91f,#9b8fd90f)}.coming-up-marker{font-size:1.25rem;flex-shrink:0}.coming-up-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.coming-up-pet{font-size:.875rem;font-weight:700;color:var(--text-headline)}.coming-up-title{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coming-up-when{font-size:.75rem;font-weight:600;color:var(--color-coral)}.coming-up-event.vet .coming-up-when{color:var(--color-sky-blue-hover)}.coming-up-event.reminder .coming-up-when{color:#9b8fd9}.coming-up-event.birthday .coming-up-when{color:var(--color-coral)}.coming-up-date{font-size:.7rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary);padding:4px 8px;border-radius:var(--radius-sm);flex-shrink:0}.primary-button{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;padding:.875rem 1.75rem;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-coral)}.primary-button:hover{background:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:0 8px 20px #f26d6d66}.primary-button.large{padding:1rem 2rem;font-size:1.1rem}@media(max-width:900px){.pet-cards-section.cards-grid-1,.pet-cards-section.cards-grid-2,.pet-cards-section.cards-grid-3-plus{grid-template-columns:1fr 1fr}.coming-up-card{grid-column:span 2}}@media(max-width:640px){.dashboard-page{padding:1rem .75rem}.dashboard-greeting h1{font-size:1.5rem}.greeting-subtitle{font-size:1rem}.quick-actions-grid{display:grid;grid-template-columns:repeat(2,auto);gap:.75rem;justify-content:center}.quick-action-btn{padding:.75rem 1.25rem;font-size:.875rem;width:auto}.pet-cards-section.cards-grid-1,.pet-cards-section.cards-grid-2,.pet-cards-section.cards-grid-3-plus{grid-template-columns:1fr}.coming-up-card{grid-column:span 1}.pet-card-header{padding:1rem}.dashboard-pet-card .pet-card-photo{width:70px;height:70px}.pet-card-name{font-size:1.125rem}.pet-card-pet-years{font-size:.9rem}.pet-card-human-years{font-size:.8rem}.pet-card-next-event-wrapper{padding:.5rem .75rem}.pet-card-next-event{height:64px;padding:.75rem;gap:.5rem}.next-event-icon{font-size:1.5rem;flex-shrink:0}.next-event-info{flex:1 1 auto;min-width:0}.next-event-title{font-size:.825rem}.next-event-when{font-size:.8rem}.next-event-date{font-size:.7rem;padding:3px 8px}.pet-horizontal-timeline-wrapper{padding:.5rem .75rem}.timeline-swipe-indicator{width:28px;height:28px;font-size:1.125rem;right:.35rem}.timeline-event-node{min-width:64px;padding:.375rem}.node-num{font-size:1rem}.node-icon{width:24px;height:24px;font-size:.875rem}.coming-up-card{padding:1rem}.coming-up-header h2{font-size:1rem}.coming-up-event{padding:.625rem}.coming-up-marker{font-size:1.125rem}.coming-up-pet{font-size:.8rem}.empty-state{padding:2.5rem 1.5rem}.empty-illustration{font-size:3rem}.empty-state h3{font-size:1.25rem}}@media(max-width:380px){.quick-actions-grid{grid-template-columns:repeat(2,auto);gap:.5rem}.quick-action-btn{padding:.625rem .875rem;font-size:.8125rem}.dashboard-pet-card .pet-card-photo{width:60px;height:60px}.photo-placeholder-medium{font-size:2rem}.pet-card-next-event{height:64px;padding:.5rem .75rem;gap:.375rem}.pet-card-next-event .next-event-icon{font-size:1.25rem}.pet-card-next-event .next-event-title{font-size:.75rem}.pet-card-next-event .next-event-when{font-size:.7rem}.pet-card-next-event .next-event-date{font-size:.65rem;padding:2px 6px}.timeline-swipe-indicator{width:26px;height:26px;font-size:1rem}}.lazy-load-image-background.blur{filter:blur(15px)}.lazy-load-image-background.blur.lazy-load-image-loaded{filter:blur(0);transition:filter .3s}.lazy-load-image-background.blur>img{opacity:0}.lazy-load-image-background.blur.lazy-load-image-loaded>img{opacity:1;transition:opacity .3s}.pet-card{position:relative;background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.pet-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.pet-card-link{text-decoration:none;color:inherit;display:block}.pet-card-link:hover,.pet-card-link:focus,.pet-card-link:active{text-decoration:none}.pet-card-link:hover .pet-card-name,.pet-card-link:hover .pet-card-species,.pet-card-link:hover .pet-card-breed,.pet-card-link:hover .pet-card-pet-years,.pet-card-link:hover .pet-card-age,.pet-card-link:hover .pet-card-birthdate{text-decoration:none}.pet-card-photo{width:100%;aspect-ratio:1;overflow:hidden;background:linear-gradient(135deg,var(--color-coral) 0%,var(--color-sunshine) 100%);position:relative}.pet-card-photo img,.pet-card-photo span img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}.pet-card-photo>span{display:block;width:100%;height:100%;position:absolute;top:0;left:0}.pet-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.pet-emoji{font-size:4rem}.pet-card-content{padding:1rem}.pet-card-name{margin:0 0 .5rem;font-size:1.5rem;font-weight:600;color:var(--text-headline)}.pet-card-species{margin:0 0 .25rem;font-size:1rem;color:var(--color-coral);font-weight:500}.pet-card-breed{margin:0 0 .5rem;font-size:.9rem;color:var(--text-muted);font-style:italic}.pet-card-pet-years{margin:0 0 .5rem;font-size:.95rem;color:#9b8fd9;font-weight:600}.pet-card-age{margin:0 0 .25rem;font-size:.9rem;color:var(--text-body)}.pet-card-birthdate{margin:0;font-size:.85rem;color:var(--text-muted)}.pet-card-extra-info{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-light)}.pet-card-detail{margin:0 0 .5rem;font-size:.8rem;display:flex;flex-direction:column;gap:.125rem}.pet-card-detail:last-child{margin-bottom:0}.detail-label{color:var(--text-muted);font-weight:500}.detail-value{color:var(--text-body)}.pet-card-edit{position:absolute;top:.5rem;right:.5rem;background:#fffffff2;border:none;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-normal),transform var(--transition-normal);z-index:10;box-shadow:0 2px 8px #00000026}.pet-card-edit:hover{background:var(--color-sunshine);transform:scale(1.1)}.pet-card-vet-btn{position:absolute;bottom:1rem;right:1rem;background:linear-gradient(135deg,var(--color-sky-blue) 0%,#7BBAD9 100%);color:#fff;border:none;border-radius:var(--radius-md);padding:.5rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:transform var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal);z-index:10;box-shadow:0 2px 8px #8ec6e84d}.pet-card-vet-btn:hover{background:linear-gradient(135deg,#7bbad9,#6aaac9);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #8ec6e866}.pet-card{padding-bottom:3.5rem}.pet-card--memorial{opacity:.85}.pet-card--memorial .pet-card-photo{filter:saturate(.4)}.pet-card-memorial-text{margin:0 0 .5rem;font-size:.9rem;color:#9b8fd9;font-weight:500;font-style:italic}@media(max-width:768px){.pet-card-name{font-size:1.25rem}.pet-emoji{font-size:3rem}}.pets-page{min-height:100vh;padding:2rem 1rem;background:var(--bg-primary)}.pets-container{max-width:1200px;margin:0 auto}.pets-page .page-header{text-align:center;margin-bottom:2rem}.pets-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.pets-page .subtitle{color:var(--text-muted);font-size:1rem;margin:0}.pets-actions{text-align:center;margin-bottom:2rem}.pets-actions .btn-primary{text-decoration:none}.pets-actions .btn-primary:hover,.pets-actions .btn-primary:focus,.pets-actions .btn-primary:active{text-decoration:none}.pets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;justify-content:center;max-width:960px;margin:0 auto}@media(min-width:640px){.pets-grid{grid-template-columns:repeat(auto-fit,minmax(280px,320px))}}@media(min-width:768px)and (max-width:1024px){.pets-grid{grid-template-columns:repeat(2,minmax(280px,1fr));max-width:700px}}.loading{text-align:center;padding:4rem;font-size:1.2rem;color:var(--text-muted)}.error-container{text-align:center;padding:4rem}.error-container h2{color:#ef4444;margin-bottom:1rem}.error-container p{color:var(--text-muted);margin-bottom:2rem}.empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-primary);border-radius:var(--radius-lg);margin-top:2rem}.empty-icon{font-size:5rem;margin-bottom:1rem}.empty-state h2{color:var(--text-headline);margin-bottom:.5rem}.btn-primary{display:inline-block;padding:.75rem 1.5rem;background:var(--btn-primary-bg);color:var(--btn-primary-text);text-decoration:none;border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-normal);border:none;cursor:pointer;font-size:1rem}.btn-primary:hover{background:var(--btn-primary-hover);color:var(--btn-primary-text);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.rainbow-bridge-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-light)}.rainbow-bridge-header{text-align:center;font-size:1.25rem;font-weight:600;color:var(--text-muted);margin:0 0 1.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.rainbow-bridge-arc{font-size:1.5rem}@media(max-width:768px){.pets-page{padding:1rem .5rem}.pets-page .page-header h1{font-size:1.5rem}.pets-actions .btn-primary{display:inline-block;width:auto}.pets-grid{grid-template-columns:1fr;gap:1rem}.empty-icon{font-size:4rem}}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3em;border-bottom-right-radius:.3em}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper--header-middle[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper--header-bottom[data-placement^=bottom] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker-popper--header-bottom[data-placement^=top] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select,.react-datepicker__header--middle,.react-datepicker__header--bottom){border-top-right-radius:.3rem}.react-datepicker__header--middle{border-top:1px solid #aeaeae;border-radius:0;margin-top:4px}.react-datepicker__header--bottom{border-bottom:none;border-top:1px solid #aeaeae;border-radius:0 0 .3rem .3rem}.react-datepicker__header-wrapper{position:relative}.react-datepicker__header-wrapper .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:2px}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4em;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4em;margin:2px}.react-datepicker__month{margin:.4em;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4em;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3em;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.3em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + .85em);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7em;line-height:1.7em;text-align:center;margin:.166em}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{text-align:center;white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7em;line-height:1.7em;text-align:center;margin:.166em}.react-datepicker__day-name--disabled,.react-datepicker__day--disabled,.react-datepicker__time-name--disabled{cursor:default;color:#ccc}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90;color:#fff}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.5em;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3em;line-height:3em}@media(max-width:400px),(max-height:550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2em;line-height:2em}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8em;margin:.4em;padding-right:.2em;padding-left:.2em;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}.react-datepicker-popper-offset{margin-top:-.7em}.photo-editor-overlay{position:fixed;inset:0;background:#000000d9;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}.photo-editor-modal{background:#1a1a1a;border-radius:12px;width:100%;max-width:600px;max-height:95vh;display:flex;flex-direction:column;overflow:hidden;color:#fff}.photo-editor-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #333;flex-shrink:0}.photo-editor-header h3{margin:0;font-size:1rem;font-weight:600;color:#fff}.photo-editor-close-btn{background:none;border:none;color:#999;font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.photo-editor-close-btn:hover{color:#fff}.photo-editor-canvas-area{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#111;min-height:300px}.photo-editor-canvas{display:block;touch-action:none;cursor:grab;max-width:100%;max-height:100%}.photo-editor-canvas:active{cursor:grabbing}.photo-editor-hint{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#0009;color:#aaa;font-size:.75rem;padding:4px 12px;border-radius:12px;pointer-events:none;white-space:nowrap}.photo-editor-toolbar{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1rem;border-top:1px solid #333;flex-shrink:0}.photo-editor-tool-btn{width:48px;height:48px;border-radius:10px;border:none;background:#2a2a2a;color:#fff;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.photo-editor-tool-btn:hover{background:#e8744f}.photo-editor-tool-btn:active{background:#d0633e}.photo-editor-tool-label{font-size:.65rem;color:#888;text-align:center;margin-top:2px}.photo-editor-tool-group{display:flex;flex-direction:column;align-items:center}.photo-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:.75rem 1rem;border-top:1px solid #333;flex-shrink:0}.photo-editor-cancel-btn{padding:.6rem 1.25rem;border-radius:8px;border:1px solid #555;background:transparent;color:#ccc;font-size:.9rem;cursor:pointer;transition:background .15s}.photo-editor-cancel-btn:hover{background:#333}.photo-editor-done-btn{padding:.6rem 1.5rem;border-radius:8px;border:none;background:#e8744f;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.photo-editor-done-btn:hover{background:#d0633e}.photo-editor-done-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.photo-editor-overlay{padding:0;align-items:flex-end}.photo-editor-modal{border-radius:16px 16px 0 0;max-width:100%;max-height:100vh;height:100%}.photo-editor-canvas-area{min-height:250px}.photo-editor-toolbar{gap:1rem}.photo-editor-tool-btn{width:52px;height:52px;font-size:1.4rem}}.photo-upload{margin-bottom:1.5rem}.photo-upload-label{display:block;font-weight:500;color:var(--text-headline);margin-bottom:.5rem}.photo-upload-area{border:2px dashed var(--border-medium);border-radius:var(--radius-lg);padding:1.5rem;text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--bg-secondary);min-height:150px;display:flex;align-items:center;justify-content:center}.photo-upload-area:hover:not(.disabled){border-color:var(--color-coral);background:#f26d6d0d}.photo-upload-area.drag-active{border-color:var(--color-coral);background:#f26d6d1a;border-style:solid}.photo-upload-area.disabled{opacity:.6;cursor:not-allowed}.photo-upload-area.has-photo{padding:0;cursor:default}.photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem}.photo-icon{font-size:2.5rem;opacity:.7}.photo-text{font-size:1rem;color:var(--text-body);font-weight:500}.photo-hint{font-size:.875rem;color:var(--text-muted)}.photo-preview{position:relative;width:100%;max-width:300px;border-radius:var(--radius-md);overflow:hidden}.photo-preview img{width:100%;height:auto;display:block;max-height:250px;object-fit:cover}.photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:.75rem;background:linear-gradient(transparent,#000000b3);display:flex;gap:.5rem;justify-content:center;opacity:0;transition:opacity var(--transition-normal)}.photo-preview:hover .photo-overlay{opacity:1}.photo-action-btn{padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.photo-action-btn.change{background:var(--color-coral);color:#fff}.photo-action-btn.change:hover:not(:disabled){background:var(--btn-primary-hover)}.photo-action-btn.remove{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.4)}.photo-action-btn.remove:hover:not(:disabled){background:#ef4444cc;border-color:transparent}.photo-action-btn:disabled{opacity:.5;cursor:not-allowed}.photo-input{display:none}.photo-upload-actions{margin-top:.75rem;display:flex;justify-content:center}.camera-trigger-btn{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-body);font-size:.875rem;cursor:pointer;transition:all var(--transition-normal)}.camera-trigger-btn:hover:not(:disabled){border-color:var(--color-coral);color:var(--color-coral)}.camera-trigger-btn:disabled{opacity:.5;cursor:not-allowed}.photo-error{margin-top:.5rem;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);color:#dc2626;font-size:.875rem}.photo-upload-camera{background:#000;border-radius:var(--radius-lg);overflow:hidden;max-width:400px;margin:0 auto}.camera-preview{width:100%;height:auto;display:block;max-height:300px;object-fit:cover}.camera-controls{display:flex;gap:1rem;padding:1rem;justify-content:center;background:#111}.camera-btn{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.camera-btn.capture{background:var(--color-coral);color:#fff}.camera-btn.capture:hover{background:var(--btn-primary-hover)}.camera-btn.cancel{background:#333;color:#fff}.camera-btn.cancel:hover{background:#444}@media(max-width:640px){.photo-upload-area{padding:1rem;min-height:120px}.photo-icon{font-size:2rem}.photo-text{font-size:.875rem}.photo-hint{font-size:.75rem}.photo-preview img{max-height:200px}.photo-overlay{opacity:1;position:relative;background:var(--bg-secondary);padding:.5rem}.photo-action-btn{flex:1}.photo-action-btn.remove{background:#ef44441a;color:#dc2626;border-color:#ef44444d}.camera-controls{flex-direction:column}.camera-btn{width:100%}}.pet-form{max-width:600px;margin:0 auto}.form-group{margin-bottom:1.5rem;position:relative}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-headline)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:2px solid var(--border-medium);border-radius:var(--radius-md);font-size:1rem;transition:border-color var(--transition-normal);font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px var(--focus-ring)}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#ef4444}.form-group input.required-field,.form-group select.required-field,.react-datepicker__input-container input.required-field{background-color:#f3f4f6}.form-group input.required-field:focus,.form-group select.required-field:focus,.react-datepicker__input-container input.required-field:focus{background-color:#fff}.weight-input-group{display:flex;gap:.5rem}.weight-input-group input{flex:1;border-radius:var(--radius-md) 0 0 var(--radius-md)}.weight-input-group .weight-unit-select{width:80px;padding:.75rem .5rem;border:2px solid var(--border-medium);border-left:none;border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:1rem;background:var(--bg-secondary);cursor:pointer;transition:border-color var(--transition-normal)}.weight-input-group .weight-unit-select:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px var(--focus-ring)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--bg-primary);cursor:not-allowed}.error-message{display:block;color:#ef4444;font-size:.875rem;margin-top:.25rem}.character-count{display:block;text-align:right;font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.field-hint{display:block;font-size:.813rem;color:var(--text-muted);margin-top:.375rem;font-style:italic}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-light)}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.react-datepicker-wrapper{width:100%}.react-datepicker__input-container input{width:100%;padding:.75rem;border:2px solid var(--border-medium);border-radius:var(--radius-md);font-size:1rem;transition:border-color var(--transition-normal);font-family:inherit}.react-datepicker__input-container input:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px var(--focus-ring)}.react-datepicker__input-container input.error{border-color:#ef4444}.react-datepicker{font-family:inherit;border:2px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.react-datepicker__header{background:var(--color-coral);border-bottom:none;border-radius:10px 10px 0 0;padding-top:12px}.react-datepicker__current-month,.react-datepicker__day-name{color:#fff}.react-datepicker__day--selected,.react-datepicker__day--keyboard-selected{background:var(--color-coral);border-radius:50%}.react-datepicker__day:hover{background:#f26d6d26;border-radius:50%}.react-datepicker__month-dropdown,.react-datepicker__year-dropdown{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md)}.react-datepicker__month-option:hover,.react-datepicker__year-option:hover{background:#f26d6d1a}.react-datepicker__close-icon:after{background-color:var(--text-muted)}@media(max-width:768px){.pet-form{max-width:100%}.form-actions{flex-direction:column-reverse}.pet-form .btn-primary,.pet-form .btn-secondary{width:100%}}.create-pet-page{max-width:800px;margin:0 auto;padding:2rem}.create-pet-container{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md);text-align:left}.create-pet-container h1{margin:0 0 .5rem;color:var(--text-headline);font-size:2rem;text-align:left}.create-pet-container .subtitle{margin:0 0 2rem;color:var(--text-muted);font-size:1.1rem;text-align:left}@media(max-width:768px){.create-pet-page{padding:1rem}.create-pet-container{padding:1.5rem}.create-pet-container h1{font-size:1.5rem}.subtitle{font-size:1rem}}.pet-detail-page{max-width:1000px;margin:0 auto;padding:2rem}.pet-detail-container{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md)}.pet-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.back-button{background:none;border:none;color:var(--color-sky-blue);font-size:1rem;cursor:pointer;padding:.5rem;transition:color var(--transition-normal)}.back-button:hover{color:var(--color-sky-blue-hover)}.pet-actions{display:flex;gap:1rem}.btn-secondary{padding:.5rem 1rem;background:#fff;color:var(--color-coral);border:2px solid var(--color-coral);border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.btn-danger{padding:.5rem 1rem;background:var(--bg-secondary);color:#ef4444;border:2px solid #ef4444;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.btn-danger:hover{background:#ef4444;color:#fff}.pet-detail-content{display:grid;grid-template-columns:400px 1fr;gap:3rem;align-items:start}.pet-photo-section{display:flex;flex-direction:column;gap:1rem;position:sticky;top:2rem}.pet-detail-page .pet-photo{width:400px;height:400px;border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(135deg,var(--color-coral) 0%,var(--color-sunshine) 100%);cursor:pointer;position:relative;transition:transform var(--transition-normal);box-shadow:0 8px 30px #00000026}.pet-detail-page .pet-photo:hover{transform:scale(1.02)}.pet-detail-page .pet-photo img{width:100%;height:100%;object-fit:cover}.photo-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.pet-emoji{font-size:5rem;margin-bottom:1rem}.photo-placeholder p{margin:0;font-size:1rem;opacity:.9}.pet-detail-page .pet-photo.uploading{pointer-events:none}.upload-overlay{position:absolute;inset:0;background:#5f6c7bb3;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.spinner{border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pet-info-section{display:flex;flex-direction:column;gap:1.5rem}.pet-name{margin:0;font-size:3.5rem;font-weight:700;color:var(--text-headline);line-height:1.1}.pet-age-highlight{display:flex;gap:1rem}.age-card{flex:1;background:linear-gradient(135deg,var(--color-coral) 0%,var(--color-sunshine) 100%);color:#fff;padding:1.5rem;border-radius:var(--radius-lg);text-align:center}.age-value{display:block;font-size:3rem;font-weight:700;margin-bottom:.5rem}.age-label{display:block;font-size:.9rem;opacity:.9}.milestone-message{background:#ffd27d33;color:var(--text-body);padding:1rem;border-radius:var(--radius-md);border-left:4px solid var(--color-sunshine);display:flex;align-items:center;gap:.75rem}.milestone-icon{font-size:1.5rem}.next-birthday{background:var(--bg-primary);padding:1rem;border-radius:var(--radius-md);color:var(--text-body)}.birthday-years{color:var(--color-coral);font-weight:500}.pet-details{display:flex;flex-direction:column;gap:1rem}.detail-row{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border-light)}.detail-row.notes{grid-template-columns:150px 1fr;align-items:start}.detail-label{font-weight:600;color:var(--text-muted)}.detail-value{color:var(--text-headline);text-transform:capitalize}.pet-actions-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:.75rem}.btn-change-photo{width:100%;padding:.75rem 1rem;background:#fff;color:var(--color-coral);border:2px solid var(--color-coral);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.btn-change-photo:hover:not(:disabled){background:var(--color-coral);color:#fff;transform:translateY(-2px)}.btn-change-photo:disabled{opacity:.6;cursor:not-allowed}.pet-quick-actions{margin-top:1.5rem;padding:1.5rem;background:var(--bg-primary);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:.75rem}.pet-quick-actions h3{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.pet-quick-actions .quick-action-btn{width:100%;padding:.875rem 1rem;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease;text-align:center}.pet-quick-actions .quick-action-btn.calendar{background:var(--color-coral)}.pet-quick-actions .quick-action-btn.calendar:hover{background:#e05555;transform:translateY(-2px)}.pet-quick-actions .quick-action-btn.vet{background:#8ec6e8}.pet-quick-actions .quick-action-btn.vet:hover{background:#7ab8dd;transform:translateY(-2px)}.pet-quick-actions .quick-action-btn.reminder{background:#9b8fd9}.pet-quick-actions .quick-action-btn.reminder:hover{background:#8a7ecc;transform:translateY(-2px)}.btn-back-to-pets{width:100%;padding:1rem;background:transparent;color:var(--color-sky-blue);border:2px solid var(--color-sky-blue);border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-back-to-pets:hover{background:var(--color-sky-blue);color:#fff;transform:translateY(-2px)}.loading,.error-container{text-align:center;padding:4rem}.error-banner{background:#fee2e2;color:#991b1b;padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem;border-left:4px solid #ef4444}.rainbow-bridge-memorial{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#9b8fd91a,#8ec6e81a);border-radius:var(--radius-md);border-left:4px solid #9B8FD9;color:var(--text-body);font-size:.95rem}.memorial-rainbow{font-size:1.5rem}.btn-rainbow-bridge{width:100%;padding:.75rem 1rem;background:transparent;color:var(--text-muted);border:1px dashed var(--border-light);border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-rainbow-bridge:hover{border-color:#9b8fd9;color:#9b8fd9;background:#9b8fd90d}.rainbow-bridge-icon{font-size:1.1rem}.btn-download-memorial{width:100%;padding:.75rem 1rem;background:transparent;color:#9b8fd9;border:1px solid #9B8FD9;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);text-align:center;text-decoration:none;display:block}.btn-download-memorial:hover{background:#9b8fd9;color:#fff;text-decoration:none}.bridge-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.bridge-modal{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:2rem;max-width:420px;width:100%;box-shadow:0 20px 60px #0000004d}.bridge-modal-header{text-align:center;margin-bottom:1rem}.bridge-modal-rainbow{font-size:2.5rem;display:block;margin-bottom:.5rem}.bridge-modal-header h2{margin:0;font-size:1.5rem;color:var(--text-headline)}.bridge-modal-message{text-align:center;color:var(--text-muted);font-size:.95rem;line-height:1.5;margin:0 0 1.5rem}.bridge-date-label{display:block;font-size:.9rem;font-weight:500;color:var(--text-body);margin-bottom:1.5rem}.bridge-date-input{display:block;width:100%;padding:.75rem;margin-top:.5rem;border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:1rem;color:var(--text-body);background:var(--bg-primary);box-sizing:border-box}.bridge-modal-actions{display:flex;gap:.75rem}.btn-bridge-cancel{flex:1;padding:.75rem;background:transparent;color:var(--text-muted);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;cursor:pointer;transition:all var(--transition-normal)}.btn-bridge-cancel:hover{background:var(--bg-primary)}.btn-bridge-confirm{flex:1;padding:.75rem;background:#9b8fd9;color:#fff;border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.btn-bridge-confirm:hover:not(:disabled){background:#8a7ecc}.btn-bridge-confirm:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.pet-detail-content{grid-template-columns:1fr;gap:2rem}.pet-photo-section{position:static;align-items:center}.pet-detail-page .pet-photo{width:100%;max-width:400px;height:auto;aspect-ratio:1}.btn-change-photo{max-width:400px}.pet-quick-actions{max-width:400px;width:100%}}@media(max-width:768px){.pet-detail-page{padding:1rem}.pet-detail-container{padding:1.5rem}.pet-detail-header{flex-direction:column;align-items:stretch;gap:1rem}.pet-actions{justify-content:stretch}.pet-actions button{flex:1}.pet-name{font-size:2.5rem;text-align:center}.age-value{font-size:2rem}.detail-row{grid-template-columns:120px 1fr}}.calendar-grid-timeline{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 20px #0000001a}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.month-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.nav-button{width:40px;height:40px;border:none;background:#f3f4f6;border-radius:10px;font-size:1.5rem;cursor:pointer;color:#4b5563;transition:all .2s;display:flex;align-items:center;justify-content:center}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}.weekday-label{text-align:center;font-size:.875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;padding:.5rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-day{min-height:80px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:.25rem;border-radius:12px;background:#f9fafb;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.day-number{font-size:.875rem;font-weight:600;margin-bottom:.25rem;text-align:center}.event-bars{display:flex;flex-direction:column;gap:2px;width:100%;margin-top:2px}.event-bar{width:100%;padding:2px 4px;border-radius:4px;font-size:.625rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.2)}.event-bar-more{font-size:.625rem;font-weight:700;color:#6b7280;text-align:center;padding:1px 0}.calendar-day.today .event-bar-more{color:#6b7280}.selected-date-events{margin-top:1.5rem;padding:1.5rem;background:#f9fafb;border-radius:12px;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.selected-date-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.selected-date-header h3{font-size:1.125rem;font-weight:700;color:#1f2937;margin:0}.close-button{width:32px;height:32px;border:none;background:#e5e7eb;border-radius:8px;font-size:1rem;cursor:pointer;color:#4b5563;transition:all .2s;display:flex;align-items:center;justify-content:center}.close-button:hover{background:#d1d5db}.add-event-buttons{display:flex;gap:.75rem;margin-bottom:1rem;justify-content:center}.add-event-btn{display:flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;color:#fff}.add-vet-btn{background:#8ec6e8}.add-vet-btn:hover{background:#7ab8dd;transform:translateY(-2px)}.add-reminder-btn{background:#9b8fd9}.add-reminder-btn:hover{background:#8a7ecc;transform:translateY(-2px)}.event-list-header{font-size:.875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.event-list{display:flex;flex-direction:column;gap:.75rem}.event-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;transition:all .2s}.event-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.event-icon-badge{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;flex-shrink:0}.event-photo{width:60px;height:60px;border-radius:12px;overflow:hidden;flex-shrink:0}.event-photo img{width:100%;height:100%;object-fit:cover}.event-action-btns{display:flex;gap:.5rem;flex-shrink:0}.event-edit-btn,.event-delete-btn{width:36px;height:36px;border:none;background:#f3f4f6;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.event-edit-btn:hover{background:#e5e7eb;transform:scale(1.05)}.event-delete-btn:hover{background:#fee2e2;transform:scale(1.05)}.event-details{flex:1;padding-left:.5rem}.event-pet-name{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:.25rem}.event-title{font-size:.9rem;color:#4b5563;font-weight:500}.event-info-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.375rem;align-items:center}.event-info-item{font-size:.8rem;color:#6b7280}.event-notes-text{font-style:italic;color:#9ca3af}@media(max-width:640px){.calendar-grid-timeline{padding:1rem}.month-title{font-size:1.25rem}.nav-button{width:36px;height:36px}.calendar-weekdays{gap:.125rem}.weekday-label{font-size:.75rem;padding:.25rem}.calendar-grid{gap:.125rem}.calendar-day{padding:.125rem;min-height:50px;border-radius:8px}.day-number{font-size:.7rem}.event-bar{font-size:.5rem;padding:1px 2px}.event-icon-badge,.event-photo{width:50px;height:50px;font-size:1.5rem}}@media(max-width:375px){.calendar-grid-timeline{padding:.5rem}.calendar-weekdays{gap:.0625rem}.weekday-label{font-size:.625rem;padding:.125rem}.calendar-grid{gap:.0625rem}.calendar-day{padding:.0625rem;min-height:42px;border-radius:6px}.day-number{font-size:.625rem}.event-bar{font-size:.4375rem;padding:0}.event-bar-more{font-size:.5rem}}.vet-visit-form{max-width:900px;margin:0 auto}.form-section{background:var(--bg-primary);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.form-section h3{margin:0 0 1.5rem;color:#333;font-size:1.25rem}.followup-reminder-section{background:#e8f4fc;border:1px solid #b8d9ed}.followup-reminder-section h3{color:#2c5282}.followup-reminder-section .section-hint{color:#4a6785}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h3{margin:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s;font-family:inherit}.form-group input.required,.form-group textarea.required,.form-group select.required{background-color:#f0f0f0}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group input.error,.form-group textarea.error{border-color:#f44}.form-group input:disabled,.form-group textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{display:block;color:#f44;font-size:.875rem;margin-top:.25rem}.btn-add-section{padding:.5rem 1rem;background:#8ec6e8;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-add-section:hover:not(:disabled){background:#6bb5e0;transform:translateY(-2px)}.btn-add-section:disabled{opacity:.6;cursor:not-allowed}.btn-add-vaccination{padding:.5rem 1rem;background:#8ec6e8;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-add-vaccination:hover:not(:disabled){background:#6bb5e0;transform:translateY(-2px)}.btn-add-vaccination:disabled{opacity:.6;cursor:not-allowed}.expandable-item{background:#fff;border-radius:8px;padding:1.5rem;border:2px solid #e0e0e0;margin-top:1rem}.expandable-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.expandable-header h4{margin:0;color:#8ec6e8;font-size:1rem}.no-vaccinations{text-align:center;color:#888;padding:2rem;background:#fff;border-radius:8px;margin:0}.section-hint{color:#666;font-size:.875rem;margin:-1rem 0 1rem;font-style:italic}.vaccinations-given-section{margin:1.5rem 0;padding:1.25rem 0;border-top:2px solid #ccc;border-bottom:2px solid #ccc}.vaccinations-given-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.vaccinations-given-header label{font-weight:600;color:#333;font-size:1rem}.vaccinations-given-hint{color:#666;font-size:.8125rem;margin:0 0 .75rem;font-style:italic}.vaccinations-given-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;padding:.75rem;background:#f5f0e6;border-radius:8px}.vaccination-given-tag{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .625rem;background:#fff;border:1px solid #ddd;border-radius:20px;font-size:.875rem;box-shadow:0 1px 3px #00000014}.vaccination-tag-icon{font-size:.875rem}.vaccination-tag-name{font-weight:500;color:#333}.btn-remove-tag{width:20px;height:20px;padding:0;background:transparent;color:#999;border:none;border-radius:50%;font-size:.75rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;margin-left:.25rem}.btn-remove-tag:hover:not(:disabled){background:#f44;color:#fff}.btn-remove-tag:disabled{opacity:.6;cursor:not-allowed}.vaccination-input-row{display:flex;gap:.5rem;align-items:center}.vaccination-given-input{flex:1;padding:.625rem .75rem;border:2px solid #ddd;border-radius:6px;font-size:.9375rem;transition:border-color .2s}.vaccination-given-input:focus{outline:none;border-color:#4ecdc4}.btn-add-vaccine{padding:.625rem 1.25rem;background:#4ecdc4;color:#fff;border:none;border-radius:6px;font-weight:600;font-size:.9375rem;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-add-vaccine:hover:not(:disabled){background:#3dbdb5;transform:translateY(-1px)}.btn-add-vaccine:disabled{opacity:.5;cursor:not-allowed;transform:none}.vaccination-item{background:#fff;border-radius:8px;padding:1.5rem;border:2px solid #e0e0e0}.vaccination-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.vaccination-header h4{margin:0;color:#667eea;font-size:1rem}.btn-remove{padding:.25rem .75rem;background:#fff;color:#f44;border:2px solid #ff4444;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-remove:hover:not(:disabled){background:#f44;color:#fff}.btn-remove:disabled{opacity:.6;cursor:not-allowed}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #eee}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-secondary{background:#fff;color:var(--color-coral);border:2px solid var(--color-coral)}.btn-secondary:hover:not(:disabled){background:#f3f4f6;transform:translateY(-2px)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.form-error-summary{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:1rem;margin-bottom:1rem;color:#dc2626}.form-error-summary strong{display:block;margin-bottom:.5rem}.form-error-summary ul{margin:0;padding-left:1.25rem}.form-error-summary li{margin-bottom:.25rem}@media(max-width:768px){.vet-visit-form{max-width:100%;overflow-x:hidden}.form-section{padding:1rem;overflow-x:hidden}.form-row{grid-template-columns:1fr}.form-group{max-width:100%;overflow:hidden}.section-header{flex-direction:column;align-items:stretch;gap:1rem}.vaccination-input-row{flex-direction:column}.vaccination-given-input,.btn-add-vaccine{width:100%}.vaccinations-given-list{padding:.5rem}.vaccination-given-tag{font-size:.8125rem;padding:.375rem .5rem}.form-actions{flex-direction:column-reverse}.vet-visit-form .btn-primary,.vet-visit-form .btn-secondary{width:100%}.form-group input,.form-group select,.form-group textarea{width:100%;max-width:100%;box-sizing:border-box}.vet-visit-form .react-datepicker-wrapper{width:100%;max-width:100%;display:block}.vet-visit-form .react-datepicker__input-container{width:100%;display:block}.vet-visit-form .react-datepicker__input-container input{width:100%;max-width:100%;box-sizing:border-box}.vet-visit-form .react-datepicker{max-width:calc(100vw - 2rem)}.vet-visit-form .react-datepicker__month-container{max-width:100%}}.reminder-form{max-width:600px;margin:0 auto}.reminder-form .form-group{margin-bottom:1.5rem;position:relative}.reminder-form .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-headline)}.reminder-form .form-group input,.reminder-form .form-group select,.reminder-form .form-group textarea{width:100%;padding:.75rem;border:2px solid var(--border-medium);border-radius:var(--radius-md);font-size:1rem;transition:border-color var(--transition-normal);font-family:inherit;background:var(--bg-secondary)}.reminder-form .form-group input.required-field,.reminder-form .form-group select.required-field{background:#f0f0f0}.reminder-form .form-group input:focus,.reminder-form .form-group select:focus,.reminder-form .form-group textarea:focus{outline:none;border-color:var(--color-sunshine);box-shadow:0 0 0 3px #ffd27d33}.reminder-form .form-group input.error,.reminder-form .form-group select.error,.reminder-form .form-group textarea.error{border-color:#ef4444}.reminder-form .form-group input:disabled,.reminder-form .form-group select:disabled,.reminder-form .form-group textarea:disabled{background-color:var(--bg-primary);cursor:not-allowed}.reminder-form .error-message{display:block;color:#ef4444;font-size:.875rem;margin-top:.25rem}.reminder-form .character-count{display:block;text-align:right;font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.reminder-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.reminder-form .form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-light)}.reminder-form .btn-primary,.reminder-form .btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.reminder-form .btn-primary{background:var(--color-coral);color:#fff;box-shadow:0 4px 15px #f26d6d4d}.reminder-form .btn-primary:hover:not(:disabled){background:var(--color-coral-hover);transform:translateY(-2px);box-shadow:0 8px 25px #f26d6d73}.reminder-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.reminder-form .btn-secondary{background:#fff;color:var(--color-coral);border:2px solid var(--color-coral)}.reminder-form .btn-secondary:hover:not(:disabled){background:#f3f4f6;transform:translateY(-2px)}.reminder-form .btn-secondary:disabled{opacity:.6;cursor:not-allowed}.reminder-form .react-datepicker-wrapper{width:100%}.reminder-form .react-datepicker__input-container input{width:100%;padding:.75rem;border:2px solid var(--border-medium);border-radius:var(--radius-md);font-size:1rem;transition:border-color var(--transition-normal);font-family:inherit;background:#f0f0f0}.reminder-form .react-datepicker__input-container input:focus{outline:none;border-color:var(--color-sunshine);box-shadow:0 0 0 3px #ffd27d33}.reminder-form .react-datepicker__input-container input.error{border-color:#ef4444}.reminder-form .react-datepicker{font-family:inherit;border:2px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.reminder-form .react-datepicker__header{background:var(--color-sunshine);border-bottom:none;border-radius:10px 10px 0 0;padding-top:12px}.reminder-form .react-datepicker__current-month,.reminder-form .react-datepicker__day-name{color:#7d5a00}.reminder-form .react-datepicker__day--selected,.reminder-form .react-datepicker__day--keyboard-selected{background:var(--color-sunshine);color:#7d5a00;border-radius:50%}.reminder-form .react-datepicker__day:hover{background:#ffd27d4d;border-radius:50%}.reminder-form .react-datepicker__month-dropdown,.reminder-form .react-datepicker__year-dropdown{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md)}.reminder-form .react-datepicker__month-option:hover,.reminder-form .react-datepicker__year-option:hover{background:#ffd27d33}.reminder-form .react-datepicker__close-icon:after{background-color:var(--text-muted)}.reminder-form .recurrence-toggle{margin-bottom:.5rem}.reminder-form .toggle-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500;color:var(--text-headline)}.reminder-form .toggle-label input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--color-coral);cursor:pointer}.reminder-form .toggle-text{font-size:1rem}.reminder-form .recurrence-options{background:var(--bg-primary, #fafafa);border:2px solid var(--border-light);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:1.5rem}.reminder-form .recurrence-options .form-group{margin-bottom:1rem}.reminder-form .recurrence-options .form-group:last-child{margin-bottom:0}.reminder-form .recurrence-summary{font-size:.875rem;color:var(--text-muted);font-style:italic;margin-bottom:1rem;padding:.5rem .75rem;background:#ffd27d26;border-radius:var(--radius-sm, 4px)}.reminder-form .day-picker{display:flex;gap:.375rem;flex-wrap:wrap}.reminder-form .day-btn{padding:.5rem .75rem;border:2px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-headline);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.reminder-form .day-btn:hover:not(:disabled){border-color:var(--color-coral);background:#f26d6d0d}.reminder-form .day-btn.selected{background:var(--color-coral);border-color:var(--color-coral);color:#fff}.reminder-form .day-btn:disabled{opacity:.5;cursor:not-allowed}.reminder-form input[type=time]{cursor:pointer;line-height:1.5;vertical-align:middle;max-width:100%;box-sizing:border-box}.reminder-form input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(.5)}.reminder-form input[type=time]::-webkit-datetime-edit{display:flex;align-items:center}.reminder-form input[type=time]::-webkit-datetime-edit-fields-wrapper{display:flex;align-items:center}.reminder-form input[type=time]::-webkit-datetime-edit-hour-field,.reminder-form input[type=time]::-webkit-datetime-edit-minute-field,.reminder-form input[type=time]::-webkit-datetime-edit-ampm-field{padding:0 2px;line-height:1.5}@media(max-width:768px){.reminder-form{max-width:100%;overflow-x:hidden}.reminder-form .form-row{grid-template-columns:1fr}.reminder-form .form-group{max-width:100%;overflow:hidden}.reminder-form .form-group input,.reminder-form .form-group select,.reminder-form .form-group textarea{max-width:100%;box-sizing:border-box}.reminder-form input[type=time]{width:100%;max-width:100%;box-sizing:border-box}.reminder-form .form-actions{flex-direction:column-reverse}.reminder-form .btn-primary,.reminder-form .btn-secondary{width:100%}.reminder-form .react-datepicker-wrapper{width:100%;max-width:100%}.reminder-form .react-datepicker__input-container{width:100%}.reminder-form .react-datepicker__input-container input{width:100%;max-width:100%;box-sizing:border-box}.reminder-form .react-datepicker{max-width:calc(100vw - 2rem)}.reminder-form .react-datepicker__month-container{max-width:100%}}.memory-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.memory-modal{background:#fff;border-radius:20px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.memory-modal-header{position:relative;padding:1.5rem 1.5rem 1rem;text-align:center;border-bottom:1px solid #f3f4f6;background:linear-gradient(135deg,#4ecdc41a,#4ecdc40d)}.memory-modal-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#1f2937}.memory-modal-subtitle{margin:.5rem 0 0;font-size:.938rem;color:#6b7280}.memory-modal-close{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border:none;background:#f3f4f6;border-radius:50%;font-size:1.5rem;line-height:1;cursor:pointer;color:#6b7280;transition:all .2s;display:flex;align-items:center;justify-content:center}.memory-modal-close:hover{background:#e5e7eb;color:#1f2937}.memory-form{padding:1.5rem}.memory-form-error{padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-size:.875rem;margin-bottom:1rem}.memory-photo-section{margin-bottom:1.5rem}.memory-photo-upload{display:block;cursor:pointer}.memory-photo-upload input{display:none}.memory-photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;background:#4ecdc414;border:2px dashed #4ECDC4;border-radius:16px;transition:all .2s}.memory-photo-placeholder:hover{background:#4ecdc426;border-color:#3dbdb5}.photo-icon{font-size:2rem}.photo-text{font-size:.938rem;color:#6b7280;font-weight:500}.memory-photo-preview{position:relative;border-radius:16px;overflow:hidden}.memory-photo-preview img{width:100%;height:200px;object-fit:cover}.memory-photo-remove{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border:none;background:#0009;border-radius:50%;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.memory-photo-remove:hover{background:#000c}.memory-photo-options{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:#4ecdc414;border:2px dashed #4ECDC4;border-radius:16px}.memory-photo-buttons{display:flex;gap:1rem;width:100%}.memory-camera-btn,.memory-upload-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.25rem 1rem;background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .2s}.memory-camera-btn:hover,.memory-upload-btn:hover{border-color:#4ecdc4;background:#4ecdc40d}.memory-upload-btn input{display:none}.memory-photo-buttons .btn-icon{font-size:1.75rem}.memory-photo-buttons .btn-text{font-size:.875rem;font-weight:600;color:#374151}.memory-photo-optional{font-size:.813rem;color:#9ca3af}.memory-camera-error{width:100%;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.813rem;text-align:center}.memory-camera-container{border-radius:16px;overflow:hidden;background:#000}.memory-camera-video{width:100%;height:250px;object-fit:cover;display:block}.memory-camera-controls{display:flex;gap:.75rem;padding:1rem;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);margin-top:-60px;position:relative;z-index:1}.memory-camera-capture-btn{flex:2;padding:.75rem 1.5rem;background:#4ecdc4;border:none;border-radius:10px;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;transition:all .2s}.memory-camera-capture-btn:hover{background:#3dbdb5}.memory-camera-cancel-btn{flex:1;padding:.75rem 1rem;background:#fff3;border:2px solid rgba(255,255,255,.4);border-radius:10px;font-size:.938rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s}.memory-camera-cancel-btn:hover{background:#ffffff4d;border-color:#fff9}.memory-form-field{margin-bottom:1.25rem}.memory-form-field label{display:block;font-size:.938rem;font-weight:600;color:#374151;margin-bottom:.5rem}.memory-form-field input,.memory-form-field select,.memory-form-field textarea{width:100%;padding:.875rem 1rem;border:2px solid #e5e7eb;border-radius:12px;font-size:1rem;color:#1f2937;background:#fff;transition:all .2s}.memory-form-field input:focus,.memory-form-field select:focus,.memory-form-field textarea:focus{outline:none;border-color:#4ecdc4;box-shadow:0 0 0 3px #4ecdc433}.memory-form-field input::placeholder,.memory-form-field textarea::placeholder{color:#9ca3af}.memory-form-field textarea{resize:vertical;min-height:80px}.memory-form-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.25rem;padding-right:2.5rem}.memory-form-actions{display:flex;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #f3f4f6}.memory-cancel-btn{flex:1;padding:.875rem 1.5rem;border:2px solid #e5e7eb;background:#fff;border-radius:12px;font-size:1rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s}.memory-cancel-btn:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.memory-save-btn{flex:1;padding:.875rem 1.5rem;border:none;background:#4ecdc4;border-radius:12px;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;transition:all .2s}.memory-save-btn:hover:not(:disabled){background:#3dbdb5;transform:translateY(-1px)}.memory-save-btn:disabled,.memory-cancel-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.memory-modal-overlay{padding:0;align-items:flex-end}.memory-modal{max-height:95vh;border-radius:20px 20px 0 0}.memory-modal-header{padding:1.25rem 1.25rem 1rem}.memory-modal-header h2{font-size:1.25rem}.memory-form{padding:1.25rem}.memory-photo-placeholder{padding:1.5rem}.memory-form-actions{flex-direction:column}}.calendar-page{min-height:100vh;padding:2rem 1rem;background:var(--bg-primary)}.calendar-container{max-width:900px;margin:0 auto}.calendar-page .page-header{text-align:center;margin-bottom:2rem}.calendar-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.calendar-page .subtitle{color:var(--text-muted);font-size:1rem;margin:0}.calendar-top-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.25rem}.calendar-action-btn{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.calendar-action-btn.add-vet-btn{background:#8ec6e8}.calendar-action-btn.add-vet-btn:hover{background:#7ab8dd;transform:translateY(-2px)}.calendar-action-btn.add-reminder-btn{background:#9b8fd9}.calendar-action-btn.add-reminder-btn:hover{background:#8a7ecc;transform:translateY(-2px)}.calendar-action-btn.add-memory-btn{background:#4ecdc4}.calendar-action-btn.add-memory-btn:hover{background:#3dbdb5;transform:translateY(-2px)}.calendar-action-btn.filter-pet-btn{background:#fafafa;border:2px solid var(--color-coral);color:var(--color-coral)}.calendar-action-btn.filter-pet-btn:hover{background:var(--bg-primary);transform:translateY(-2px)}.calendar-top-actions .filter-dropdown-container{position:relative}.calendar-top-actions .filter-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.5rem;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:100;overflow:hidden}.calendar-top-actions .filter-option{display:block;width:100%;padding:.75rem 1rem;border:none;background:transparent;text-align:left;cursor:pointer;font-size:.875rem;color:var(--text-body);transition:background var(--transition-fast)}.calendar-top-actions .filter-option:hover{background:var(--bg-primary)}.calendar-top-actions .filter-option.active{background:#f26d6d1a;color:var(--color-coral);font-weight:500}.calendar-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-body)}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.birthday{background-color:var(--color-coral)}.legend-dot.vet{background-color:var(--color-sky-blue)}.legend-dot.vaccination{background-color:#1e3a5f}.legend-dot.grooming{background-color:#8b5cf6}.legend-dot.medication{background-color:var(--color-sunshine)}.legend-dot.memory{background-color:var(--color-mint)}.legend-dot.reminder{background-color:#9b8fd9}.calendar-page .loading{text-align:center;padding:4rem 2rem;color:var(--text-muted);font-size:1.125rem}.calendar-page .error-container{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.calendar-page .error-container h2{color:#ef4444;margin-bottom:1rem}.calendar-page .error-container p{color:var(--text-muted)}.calendar-page .empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:2rem}.calendar-page .empty-icon{font-size:4rem;margin-bottom:1rem}.calendar-page .empty-state h2{color:var(--text-headline);margin-bottom:.5rem}.calendar-page .empty-state p{color:var(--text-muted);margin:0}@media(max-width:640px){.calendar-page{padding:1rem .5rem}.calendar-page .page-header h1{font-size:1.5rem}.calendar-top-actions{display:grid;grid-template-columns:repeat(2,auto);gap:.75rem;justify-content:center}.calendar-action-btn{padding:.75rem 1rem;font-size:.8125rem;width:auto}.calendar-legend{gap:.5rem;padding:.75rem}.legend-item{font-size:.75rem}}@media(max-width:380px){.calendar-top-actions{grid-template-columns:repeat(2,auto);gap:.5rem}.calendar-action-btn{padding:.625rem .75rem;font-size:.75rem}}.calendar-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.calendar-modal{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.modal-header{position:relative;padding:1.5rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-radius:16px 16px 0 0}.modal-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#1f2937}.modal-date{margin:.5rem 0 0;color:#6b7280;font-size:.9375rem}.modal-close-btn{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border:none;background:#e5e7eb;border-radius:10px;font-size:1.25rem;cursor:pointer;color:#4b5563;transition:all .2s;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:#d1d5db;transform:scale(1.05)}.modal-error{margin:1rem 1.5rem 0;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem}.pet-selector{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.pet-selector label{display:block;font-weight:600;color:#374151;margin-bottom:.5rem}.pet-selector select{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;background:#fff;cursor:pointer;transition:border-color .2s}.pet-selector select:focus{outline:none;border-color:#3b82f6}.no-pets-message{text-align:center;padding:2rem}.no-pets-icon{font-size:3rem;display:block;margin-bottom:1rem}.no-pets-message h3{color:#1f2937;margin:0 0 .5rem}.no-pets-message p{color:#6b7280;margin:0}.calendar-modal .vet-visit-form,.calendar-modal .reminder-form{padding:0;background:transparent;box-shadow:none;border-radius:0}.calendar-modal .form-header{display:none}@media(max-width:640px){.calendar-modal-overlay{padding:0;align-items:flex-end}.calendar-modal{max-height:95vh;border-radius:16px 16px 0 0}.modal-header{border-radius:16px 16px 0 0}.modal-header h2{font-size:1.25rem}}.create-reminder-page{min-height:100vh;background:var(--bg-primary);padding:2rem}.create-reminder-container{max-width:700px;margin:0 auto;background:var(--bg-secondary);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-md)}.create-reminder-page .page-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid rgba(255,210,125,.3)}.create-reminder-page .header-icon{font-size:3rem;background:linear-gradient(135deg,var(--color-sunshine) 0%,#FFE0A3 100%);padding:.75rem;border-radius:var(--radius-lg)}.create-reminder-page .page-header h1{font-size:1.75rem;font-weight:700;color:var(--text-headline);margin:0 0 .25rem}.create-reminder-page .subtitle{font-size:1rem;color:var(--text-muted);margin:0}.create-reminder-page .error-banner{background:#fee2e2;color:#991b1b;padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.create-reminder-page .loading{text-align:center;padding:3rem;color:var(--text-muted);font-size:1.1rem}.create-reminder-page .no-pets-message{text-align:center;padding:3rem}.create-reminder-page .no-pets-icon{font-size:4rem;display:block;margin-bottom:1rem}.create-reminder-page .no-pets-message h2{font-size:1.5rem;color:var(--text-headline);margin:0 0 .5rem}.create-reminder-page .no-pets-message p{color:var(--text-muted);margin:0 0 1.5rem}.create-reminder-page .no-pets-message .btn-primary{background:linear-gradient(135deg,var(--color-coral) 0%,var(--color-sunshine) 100%);color:#fff;border:none;padding:.875rem 1.75rem;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);box-shadow:0 4px 15px #f26d6d40,0 4px 15px #ffd27d40}.create-reminder-page .no-pets-message .btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #f26d6d66,0 8px 25px #ffd27d66}@media(max-width:768px){.create-reminder-page{padding:1rem}.create-reminder-container{padding:1.5rem}.create-reminder-page .page-header{flex-direction:column;text-align:center}.create-reminder-page .page-header h1{font-size:1.5rem}}.story-feed-timeline{display:flex;flex-direction:column;gap:1.75rem;padding:1.25rem;background:var(--bg-primary);border-radius:12px;height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#e0e0e0 transparent}.story-feed-timeline::-webkit-scrollbar{width:4px}.story-feed-timeline::-webkit-scrollbar-track{background:transparent}.story-feed-timeline::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:2px}.coming-up-section{background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 2px 12px #00000014}.coming-up-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin:0 0 1rem}.coming-up-list{display:flex;flex-direction:column;gap:.75rem}.coming-up-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f9fafb;border-radius:12px;border-left:4px solid;transition:all .2s ease}.coming-up-item:hover{background:#f3f4f6;transform:translate(4px)}.coming-up-icon{font-size:1.25rem;flex-shrink:0}.coming-up-info{flex:1;display:flex;flex-direction:column;gap:.125rem}.coming-up-event-title{font-size:.938rem;font-weight:600;color:#1f2937}.coming-up-timing{font-size:.813rem;color:#6b7280;font-weight:500}.add-moment-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem 1.5rem;background:#4ecdc4;border:none;border-radius:16px;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #4ecdc44d}.add-moment-btn:hover{background:#3dbdb5;transform:translateY(-2px);box-shadow:0 6px 16px #4ecdc466}.add-moment-icon{font-size:1.5rem;line-height:1}.add-moment-text{line-height:1}.story-feed-item{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #00000014;transition:all .3s ease;animation:fadeIn .5s ease;display:flex;position:relative}.story-feed-item:hover{box-shadow:0 4px 20px #0000001f;transform:translateY(-2px)}.moment-bar{width:5px;flex-shrink:0;border-radius:16px 0 0 16px}.story-card-content{flex:1;min-width:0}.story-feed-item.moment-celebration .story-header{background:linear-gradient(135deg,rgba(242,109,109,.05) 0%,transparent 100%)}.story-feed-item.moment-care .story-header{background:linear-gradient(135deg,rgba(142,198,232,.05) 0%,transparent 100%)}.story-feed-item.moment-memory .story-header{background:linear-gradient(135deg,rgba(247,220,111,.08) 0%,transparent 100%)}.story-feed-item.moment-life .story-header{background:linear-gradient(135deg,rgba(155,143,217,.05) 0%,transparent 100%)}.story-header{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;position:relative}.story-header-actions{position:absolute;top:.75rem;right:.75rem;display:flex;gap:.375rem}.story-header-action-btn{width:32px;height:32px;border:none;background:#f3f4f6;border-radius:50%;font-size:.875rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:.7}.story-header-action-btn:hover{background:#e5e7eb;opacity:1;transform:scale(1.1)}.story-header-action-btn.photo-btn:hover{background:#dbeafe}.story-header-action-btn.edit-btn:hover{background:#e5e7eb}.story-header-edit-btn{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border:none;background:#f3f4f6;border-radius:50%;font-size:.875rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:.7}.story-header-edit-btn:hover{background:#e5e7eb;opacity:1;transform:scale(1.1)}.pet-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background:#fff;position:relative;border:3px solid white}.pet-avatar img,.pet-avatar .lazy-load-image-background img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.pet-avatar .lazy-load-image-background,.pet-avatar .lazy-load-image-loaded,.pet-avatar span:not(.pet-placeholder){position:absolute;top:0;left:0;width:100%;height:100%}.pet-placeholder{font-size:1.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.story-header-info{flex:1;min-width:0}.moment-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin-bottom:.25rem;line-height:1.3}.event-subtitle{font-size:.875rem;color:#6b7280;margin-bottom:.25rem;font-weight:500}.story-content{position:relative}.story-image-wrapper{padding:0 1.25rem;margin-bottom:.5rem}.story-image{width:100%;max-width:320px;aspect-ratio:4 / 3;overflow:hidden;position:relative;border-radius:12px;border:3px solid;box-shadow:0 2px 8px #0000001a;background:#fff}.story-image img,.story-image .lazy-load-image-background img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.story-image .lazy-load-image-background,.story-image .lazy-load-image-loaded,.story-image span{position:absolute;top:0;left:0;width:100%;height:100%}.story-details{padding:1.25rem}.story-date-badge{display:inline-block;background:#f3f4f6;padding:.5rem 1rem;border-radius:10px;font-size:.75rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.875rem}.story-description{font-size:.938rem;color:#4b5563;line-height:1.6;margin:0 0 1.125rem}.story-footer{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;border-top:1px solid #f3f4f6}.story-type-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:12px;color:#fff;font-weight:600;font-size:.875rem}.story-edit-btn{display:flex;align-items:center;gap:.375rem;padding:.625rem 1rem;border:none;background:#f3f4f6;border-radius:10px;font-size:.875rem;font-weight:600;color:#4b5563;cursor:pointer;transition:all .2s}.story-edit-btn:hover{background:#e5e7eb;transform:scale(1.02)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-description{font-size:1rem;color:#9ca3af;margin-bottom:1.5rem}.empty-add-btn{padding:.875rem 1.5rem;background:#4ecdc4;border:none;border-radius:12px;font-size:1rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.empty-add-btn:hover{background:#3dbdb5;transform:translateY(-2px)}@media(max-width:640px){.story-feed-timeline{padding:1rem;gap:1.5rem}.coming-up-section{padding:1rem}.coming-up-title{font-size:1rem}.coming-up-item{padding:.625rem .875rem}.add-moment-btn{padding:.875rem 1.25rem;font-size:.938rem}.story-header{padding:1rem}.pet-avatar{width:48px;height:48px}.moment-title{font-size:1rem}.event-subtitle{font-size:.813rem}.story-time{font-size:.75rem}.story-image{height:180px}.story-details{padding:1rem}.story-description{font-size:.875rem}.story-type-badge{padding:.5rem .875rem;font-size:.813rem}.moment-bar{width:4px}}@media(prefers-reduced-motion:no-preference){.story-feed-timeline{scroll-behavior:smooth}}.timeline-photo-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem;animation:fadeIn .2s ease}.timeline-photo-modal{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.timeline-photo-modal-header{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#1e3a5f,#152a45);border-radius:16px 16px 0 0;position:relative}.timeline-photo-modal-header .header-icon{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.timeline-photo-modal-header .header-text h2{margin:0;color:#fff;font-size:1.25rem;font-weight:700}.timeline-photo-modal-header .header-subtitle{margin:.25rem 0 0;color:#fffc;font-size:.875rem}.modal-close-btn{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border:none;background:#fff3;border-radius:8px;color:#fff;font-size:1.25rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:#ffffff4d}.timeline-photo-modal-content{padding:1.5rem}.photo-modal-error{padding:.875rem 1rem;background:#fef2f2;border:1px solid #FECACA;border-radius:8px;color:#dc2626;font-size:.875rem;margin-bottom:1rem}.photo-section{margin-bottom:1.5rem}.photo-preview-container{position:relative;display:flex;justify-content:center;padding:1rem;background:#f9fafb;border-radius:12px}.photo-preview{max-width:100%;max-height:300px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.photo-remove-btn{position:absolute;top:.5rem;right:.5rem;width:32px;height:32px;background:#ef4444;color:#fff;border:none;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.photo-remove-btn:hover{background:#dc2626;transform:scale(1.1)}.photo-remove-btn:disabled{opacity:.5;cursor:not-allowed}.camera-container{border-radius:12px;overflow:hidden;background:#000}.camera-video{width:100%;max-height:300px;display:block}.camera-controls{display:flex;justify-content:center;gap:1rem;padding:1rem;background:#000c}.camera-capture-btn{padding:.75rem 1.5rem;background:#4ecdc4;border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.camera-capture-btn:hover{background:#3dbdb5}.camera-cancel-btn{padding:.75rem 1.5rem;background:#6b7280;border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.camera-cancel-btn:hover{background:#4b5563}.photo-options{padding:2rem;background:#f9fafb;border:2px dashed #E5E7EB;border-radius:12px;text-align:center}.camera-error{padding:.75rem;background:#fef3c7;border-radius:8px;color:#d97706;font-size:.875rem;margin-bottom:1rem}.photo-buttons{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.camera-btn,.upload-btn{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.25rem;background:#1e3a5f;border:none;border-radius:10px;color:#fff;font-size:.938rem;font-weight:600;cursor:pointer;transition:all .2s}.camera-btn:hover,.upload-btn:hover{background:#2c4a6e;transform:translateY(-2px)}.upload-btn input[type=file]{display:none}.btn-icon{font-size:1.125rem}.photo-modal-actions{display:flex;align-items:center;gap:.75rem;padding-top:1rem;border-top:1px solid #E5E7EB}.action-spacer{flex:1}.delete-photo-btn{padding:.75rem 1rem;background:#fff;border:2px solid #DC2626;border-radius:10px;color:#dc2626;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.delete-photo-btn:hover:not(:disabled){background:#dc2626;color:#fff}.delete-photo-btn:disabled{opacity:.5;cursor:not-allowed}.cancel-btn{padding:.75rem 1.25rem;background:#f3f4f6;border:none;border-radius:10px;color:#4b5563;font-size:.938rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn:hover:not(:disabled){background:#e5e7eb}.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.save-photo-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#1e3a5f,#152a45);border:none;border-radius:10px;color:#fff;font-size:.938rem;font-weight:600;cursor:pointer;transition:all .2s}.save-photo-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #1e3a5f66}.save-photo-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media(max-width:640px){.timeline-photo-modal-overlay{padding:0;align-items:flex-end}.timeline-photo-modal{max-height:95vh;border-radius:16px 16px 0 0}.timeline-photo-modal-header{border-radius:16px 16px 0 0;padding:1rem 1.25rem}.timeline-photo-modal-header .header-icon{width:40px;height:40px;font-size:1.25rem}.timeline-photo-modal-header .header-text h2{font-size:1.125rem}.timeline-photo-modal-content{padding:1.25rem}.photo-buttons{flex-direction:column}.camera-btn,.upload-btn{width:100%;justify-content:center}.photo-modal-actions{flex-wrap:wrap}.delete-photo-btn{width:100%;order:3;margin-top:.5rem}.action-spacer{display:none}.cancel-btn,.save-photo-btn{flex:1}}.timeline-page{min-height:100vh;padding:2rem 1rem;background:var(--bg-primary)}.timeline-container{max-width:600px;margin:0 auto}.timeline-page .page-header{text-align:center;margin-bottom:2rem}.timeline-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.timeline-page .subtitle{color:var(--text-muted);font-size:1rem;margin:0}.timeline-top-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.25rem}.timeline-action-btn{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease}.timeline-action-btn.filter-pet-btn{background:#fafafa;border:2px solid var(--color-coral);color:var(--color-coral)}.timeline-action-btn.filter-pet-btn:hover{background:var(--bg-primary);transform:translateY(-2px)}.timeline-action-btn.add-memory-btn{background:#4ecdc4;color:#fff}.timeline-action-btn.add-memory-btn:hover{background:#3dbdb5;transform:translateY(-2px)}.timeline-top-actions .filter-dropdown-container{position:relative}.timeline-top-actions .filter-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.5rem;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:100;overflow:hidden}.timeline-top-actions .filter-option{display:block;width:100%;padding:.75rem 1rem;border:none;background:transparent;text-align:left;cursor:pointer;font-size:.875rem;color:var(--text-body);transition:background var(--transition-fast)}.timeline-top-actions .filter-option:hover{background:var(--bg-primary)}.timeline-top-actions .filter-option.active{background:#f26d6d1a;color:var(--color-coral);font-weight:500}.timeline-page .loading{text-align:center;padding:4rem 2rem;color:var(--text-muted);font-size:1.125rem}.timeline-page .error-container{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.timeline-page .error-container h2{color:#ef4444;margin-bottom:1rem}.timeline-page .error-container p{color:var(--text-muted)}@media(max-width:640px){.timeline-page{padding:1rem .5rem}.timeline-page .page-header h1{font-size:1.5rem}}.records-page{min-height:100vh;padding:2rem 1rem;background:var(--bg-primary)}.records-container{max-width:900px;margin:0 auto}.records-page .page-header{text-align:center;margin-bottom:2rem}.records-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.records-page .subtitle{color:var(--text-muted);font-size:1rem;margin:0}.records-page .header-actions{display:flex;gap:.75rem;justify-content:center;align-items:center;margin-top:1rem}.filter-dropdown-container{position:relative}.filter-btn.btn-secondary{display:flex;align-items:center;gap:.5rem;white-space:nowrap;border:2px solid #8EC6E8;color:#8ec6e8}.filter-btn.btn-secondary:hover{background:#8ec6e81a;border-color:#6ab0d9;color:#6ab0d9}.document-viewer-overlay{background:#000c}.document-viewer-modal{max-width:90vw;max-height:90vh;width:auto;display:flex;flex-direction:column;padding:1rem}.document-viewer-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--border-light);margin-bottom:1rem}.document-viewer-header h2{margin:0;font-size:1.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.document-viewer-actions{display:flex;gap:.75rem;align-items:center}.document-viewer-content{flex:1;display:flex;align-items:center;justify-content:center;min-height:300px;max-height:70vh;overflow:auto}.document-viewer-content img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:var(--radius-sm)}.document-viewer-content iframe{width:100%;height:70vh;border:none;border-radius:var(--radius-sm)}.document-no-preview{text-align:center;padding:3rem}.document-no-preview .no-preview-icon{font-size:4rem;display:block;margin-bottom:1rem}.document-no-preview p{color:var(--text-muted);margin-bottom:1.5rem}.filter-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.5rem;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:100;overflow:hidden}.filter-option{display:block;width:100%;padding:.75rem 1rem;border:none;background:transparent;text-align:left;cursor:pointer;font-size:.875rem;color:var(--text-body);transition:background var(--transition-fast)}.filter-option:hover{background:var(--bg-primary)}.filter-option.active{background:#f26d6d1a;color:var(--color-coral);font-weight:500}.records-page .tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--bg-secondary);padding:.5rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.records-page .tab{flex:1;padding:.75rem 1rem;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-muted);transition:all var(--transition-fast)}.records-page .tab:hover{background:var(--bg-primary);color:var(--text-body)}.records-page .tab.active{background:var(--color-coral);color:#fff}.records-page .tab-content{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.records-page .loading{text-align:center;padding:4rem 2rem;color:var(--text-muted);font-size:1.125rem}.records-page .error-container{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.records-page .error-container h2{color:#ef4444;margin-bottom:1rem}.records-page .empty-state{text-align:center;padding:3rem 2rem}.records-page .empty-icon{font-size:3rem;margin-bottom:1rem}.records-page .empty-state h3{color:var(--text-headline);margin-bottom:.5rem}.records-page .empty-state p{color:var(--text-muted);margin:0}.visits-list{display:flex;flex-direction:column;gap:1rem}.visit-card{display:flex;align-items:stretch;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);overflow:hidden}.visit-card:hover{border-color:#8ec6e8;box-shadow:0 4px 12px #8ec6e84d}.visit-card-stripe{width:5px;flex-shrink:0;background:#8ec6e8}.visit-card-content{display:flex;align-items:flex-start;gap:2rem;padding:1rem 1.25rem;flex:1;min-width:0}.visit-photo{flex-shrink:0;width:80px;height:80px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-primary)}.visit-photo img{width:100%;height:100%;object-fit:cover}.visit-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--text-muted);background:var(--bg-primary)}.visit-info{flex:1;min-width:0}.visit-pet-name{font-weight:600;color:var(--text-headline);margin-bottom:.25rem}.visit-reason{font-size:1rem;color:var(--text-body);margin-bottom:.25rem}.visit-vet{font-size:.875rem;color:var(--text-muted)}.visit-diagnosis{font-size:.875rem;color:var(--text-muted);margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-light)}.visit-right{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.visit-date{font-size:.875rem;color:var(--text-muted);white-space:nowrap}.visit-actions{display:flex;gap:.5rem}.visit-actions .action-btn.edit{background:#8ec6e833}.visit-actions .action-btn.edit:hover{background:#8ec6e866}.vaccinations-list{display:flex;flex-direction:column;gap:1rem}.vaccination-card{display:flex;align-items:stretch;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast);overflow:hidden}.vaccination-card:hover{border-color:#1e3a5f;box-shadow:0 4px 12px #1e3a5f33}.vaccination-card-stripe{width:5px;flex-shrink:0;background:#1e3a5f}.vaccination-card-content{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;flex:1;min-width:0}.vaccination-icon{font-size:1.5rem;flex-shrink:0;width:40px;height:40px;background:#1e3a5f1a;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.vaccination-info{flex:1;min-width:0}.vaccination-pet-name{font-weight:600;color:var(--text-headline);font-size:.875rem;margin-bottom:.125rem}.vaccination-name{font-size:1rem;color:var(--text-body);font-weight:500}.vaccination-clinic{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.vaccination-dates{flex-shrink:0;text-align:right}.vaccination-given-date{font-size:.875rem;color:var(--text-muted)}.vaccination-due-date{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.vaccination-due-date.overdue{color:#ef4444;font-weight:600}.vaccination-due-date.due-soon{color:#f59e0b;font-weight:500}.vaccinations-table-wrapper{overflow-x:auto}.vaccinations-table{width:100%;border-collapse:collapse}.vaccinations-table th,.vaccinations-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-light)}.vaccinations-table th{background:var(--bg-primary);font-weight:600;color:var(--text-headline);font-size:.875rem}.vaccinations-table td{color:var(--text-body);font-size:.875rem}.vaccinations-table .overdue{color:#ef4444;font-weight:600}.documents-section{display:flex;flex-direction:column;gap:1.5rem}.upload-area{text-align:center;padding:2rem;border:2px dashed var(--border-medium);border-radius:var(--radius-md);background:var(--bg-primary)}.file-input{display:none}.upload-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.upload-button:hover{background:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.upload-icon{font-size:1.25rem}.upload-hint{margin-top:.75rem;font-size:.875rem;color:var(--text-muted)}.documents-list{display:flex;flex-direction:column;gap:.75rem}.document-card{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border-light);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.document-card:hover{border-color:#8ec6e8;box-shadow:0 4px 12px #8ec6e84d}.document-icon{font-size:2rem;flex-shrink:0}.document-info{flex:1;min-width:0}.document-name{font-weight:600;color:var(--text-headline);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem;font-size:.75rem;color:var(--text-muted)}.pet-tag{background:#f26d6d1a;padding:.125rem .5rem;border-radius:var(--radius-sm);color:var(--color-coral)}.document-actions{display:flex;gap:.5rem;flex-shrink:0}.action-btn{width:36px;height:36px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;transition:background var(--transition-fast)}.action-btn.view{background:#8ec6e833}.action-btn.view:hover{background:#8ec6e866}.action-btn.delete{background:#f26d6d26}.action-btn.delete:hover{background:#f26d6d4d}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:2rem 1rem;overflow-y:auto}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:400px;margin:auto}.modal-content.vet-visit-modal{max-width:700px;max-height:none;margin-top:2rem;margin-bottom:2rem}.modal-content.vet-visit-modal .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-light)}.modal-content.vet-visit-modal .modal-header h2{margin:0}.modal-content.vet-visit-modal .modal-close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);padding:.25rem;line-height:1}.modal-content.vet-visit-modal .modal-close-btn:hover{color:var(--text-body)}.modal-content.vet-visit-modal .modal-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#dc2626;padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem}.modal-content.vet-visit-modal .no-pets-message{text-align:center;padding:2rem}.modal-content.vet-visit-modal .no-pets-icon{font-size:3rem;display:block;margin-bottom:1rem}.modal-content h2{margin:0 0 1.5rem;color:var(--text-headline)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-body);margin-bottom:.5rem}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:1rem;transition:border-color var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px var(--focus-ring)}.file-preview{display:flex;justify-content:space-between;padding:.75rem;background:var(--bg-primary);border-radius:var(--radius-sm);margin-bottom:1rem}.file-name{font-size:.875rem;color:var(--text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:.875rem;color:var(--text-muted);flex-shrink:0;margin-left:.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.btn-secondary{padding:.75rem 1.5rem;border:2px solid var(--color-coral);background:#fff;color:var(--color-coral);border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:#f3f4f6;transform:translateY(-2px)}.btn-primary{padding:.75rem 1.5rem;border:none;background:var(--btn-primary-bg);color:var(--btn-primary-text);border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.btn-primary:hover{background:var(--btn-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.records-page{padding:1rem .5rem}.records-page .page-header h1{font-size:1.5rem}.records-page .header-actions{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem}.records-page .header-actions .btn-primary,.records-page .header-actions .btn-secondary{width:auto;padding:.625rem 1rem;font-size:.875rem}.records-page .tabs{flex-direction:column}.records-page .tab{text-align:center}.visit-card-content{flex-wrap:wrap;gap:1rem;padding:.875rem 1rem}.visit-photo{width:60px;height:60px}.visit-info{flex:1 1 calc(100% - 76px)}.visit-right{width:100%;flex-direction:row;justify-content:space-between;align-items:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-light)}.vaccination-card-content{flex-wrap:wrap;gap:.75rem;padding:.875rem 1rem}.vaccination-icon{width:36px;height:36px;font-size:1.25rem}.vaccination-info{flex:1 1 calc(100% - 52px)}.vaccination-dates{width:100%;text-align:left;display:flex;gap:1rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--border-light)}.vaccinations-table th,.vaccinations-table td{padding:.5rem;font-size:.75rem}.document-card{flex-wrap:wrap}.document-actions{width:100%;justify-content:flex-end;margin-top:.5rem}}.records-page .add-visit-btn.btn-primary,.records-page .empty-state .btn-primary{background:#8ec6e8;color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;transition:all .2s ease}.records-page .add-visit-btn.btn-primary:hover,.records-page .add-visit-btn.btn-primary:active,.records-page .empty-state .btn-primary:hover,.records-page .empty-state .btn-primary:active{background:#7ab8dd;transform:translateY(-2px)}.notification-settings-page,.settings-page{min-height:100vh;padding:2rem 1rem;background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.settings-container{max-width:800px;margin:0 auto;background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2rem}.settings-page .page-header,.notification-settings-page .page-header{text-align:center;margin-bottom:2rem}.settings-page .page-header h1,.notification-settings-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.settings-page .subtitle,.notification-settings-page .subtitle{color:var(--text-muted);font-size:1rem;margin:0}.settings-container h1{font-size:2rem;color:var(--text-headline);margin-bottom:.5rem}.settings-description{color:var(--text-muted);margin-bottom:2rem}.success-message{background-color:#8ec6e833;border:1px solid var(--color-sky-blue);color:var(--text-headline);padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.error-message{background-color:#fee2e2;border:1px solid #fca5a5;color:#991b1b;padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.settings-section{margin-bottom:2.5rem}.settings-section h2{font-size:1.5rem;color:var(--text-headline);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-light)}.setting-item{padding:1.5rem;border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:1rem;transition:all var(--transition-slow)}.setting-item:has(.setting-control){display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.setting-item:has(.setting-header){display:block}.setting-control{flex-shrink:0;display:flex;align-items:center}.setting-control select{padding:.5rem 1rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;font-size:.95rem;min-width:150px}.setting-control select:hover{border-color:var(--color-coral)}.setting-control select:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px var(--focus-ring)}.btn-secondary{display:inline-block;padding:.625rem 1.25rem;background:#fff;border:2px solid var(--color-coral);color:var(--color-coral);border-radius:var(--radius-md);font-size:.9rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-slow);white-space:nowrap}.btn-secondary:hover{background:#f3f4f6;color:var(--color-coral);transform:translateY(-2px)}.btn-primary{display:inline-block;padding:.75rem 1.5rem;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-slow)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.setting-item:hover{border-color:var(--color-coral);box-shadow:0 2px 4px #f26d6d1a}.setting-header{margin-bottom:.75rem}.setting-label{display:flex;flex-direction:row;align-items:center;cursor:pointer;font-weight:500;gap:.75rem}.setting-label:has(h3){flex-direction:column;align-items:flex-start;gap:0}.setting-label h3{margin:0 0 .5rem;font-size:1.1rem;color:var(--text-headline)}.setting-label p{margin:0;font-size:.9rem;color:var(--text-muted);font-weight:400}.setting-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-coral);flex-shrink:0}.setting-title{font-size:1.1rem;font-weight:600;color:var(--text-headline)}.setting-item .setting-description{color:var(--text-muted);font-size:.9rem;margin:0;padding-left:2.5rem;line-height:1.5}.setting-detail{margin-top:1rem;padding-left:2rem}.setting-detail label{display:flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--text-body)}.setting-detail select{padding:.5rem 1rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;font-size:.95rem;transition:border-color var(--transition-slow)}.setting-detail select:hover{border-color:var(--color-coral)}.setting-detail select:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px var(--focus-ring)}.test-description{color:var(--text-muted);margin-bottom:1rem}.test-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.test-button{padding:.75rem 1.5rem;background:var(--bg-secondary);border:2px solid var(--color-sky-blue);color:var(--color-sky-blue);border-radius:var(--radius-md);cursor:pointer;font-size:1rem;font-weight:500;transition:all var(--transition-slow)}.test-button:hover:not(:disabled){background:var(--color-sky-blue);color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #8ec6e84d}.test-button:disabled{opacity:.6;cursor:not-allowed}.settings-actions{display:flex;flex-direction:column;align-items:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-light)}.settings-actions .success-message,.settings-actions .error-message{width:100%;text-align:center}.save-button{padding:1rem 2rem;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1.1rem;font-weight:600;transition:all var(--transition-slow)}.save-button:hover:not(:disabled){background:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.save-button:disabled{opacity:.6;cursor:not-allowed}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:var(--text-muted)}.error{background-color:#fee2e2;border:1px solid #fca5a5;color:#991b1b;padding:1.5rem;border-radius:var(--radius-md);margin-bottom:1rem}.retry-button{padding:.75rem 1.5rem;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1rem;font-weight:500;transition:all var(--transition-slow)}.retry-button:hover{background:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.setting-timing-options{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;padding:1rem 1rem 1rem 2.5rem;background:var(--bg-secondary);border-radius:var(--radius-sm)}.timing-label{font-size:.9rem;font-weight:500;color:var(--text-body);margin-right:.5rem}.timing-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-body);cursor:pointer;padding:.375rem .75rem;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-sm);transition:all var(--transition-slow)}.timing-checkbox:hover{border-color:var(--color-coral)}.timing-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-coral)}.timing-checkbox input[type=checkbox]:checked+span,.timing-checkbox:has(input:checked){color:var(--color-coral);border-color:var(--color-coral)}@media(max-width:768px){.notification-settings-page,.settings-page{padding:1rem .5rem}.settings-container{padding:1.5rem}.settings-page .page-header h1,.notification-settings-page .page-header h1{font-size:1.5rem}.setting-item:has(.setting-control){flex-direction:column;align-items:stretch;gap:1rem}.setting-control,.setting-control select{width:100%}.btn-secondary{width:100%;text-align:center}.setting-item .setting-description{padding-left:2rem}.test-buttons{grid-template-columns:1fr}.settings-actions{justify-content:stretch}.save-button{width:100%}.setting-timing-options{flex-direction:column;align-items:flex-start;padding-left:2rem}.timing-label{margin-bottom:.25rem}.timing-checkbox{width:100%;justify-content:flex-start}}.blog-list-page{max-width:1100px;margin:0 auto;padding:0 var(--spacing-lg)}.blog-hero{text-align:center;padding:var(--spacing-3xl) 0 var(--spacing-2xl)}.blog-hero h1{font-size:2.5rem;color:var(--text-headline);margin:0 0 var(--spacing-md)}.blog-hero-subtitle{font-size:1.15rem;color:var(--text-muted);max-width:560px;margin:0 auto;line-height:1.6}.blog-grid-section{padding-bottom:var(--spacing-3xl)}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-xl)}.blog-card{display:flex;flex-direction:column;background:var(--bg-elevated);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md);text-decoration:none;color:inherit;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.blog-card-image{width:100%;aspect-ratio:2 / 1;overflow:hidden;background:var(--bg-primary)}.blog-card-image img{width:100%;height:100%;object-fit:cover}.blog-card-content{padding:var(--spacing-lg);display:flex;flex-direction:column;flex:1}.blog-card-category{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-coral);margin-bottom:var(--spacing-sm)}.blog-card-title{font-size:1.25rem;color:var(--text-headline);margin:0 0 var(--spacing-sm);line-height:1.35}.blog-card-description{font-size:.95rem;color:var(--text-body);line-height:1.55;margin:0 0 var(--spacing-md);flex:1}.blog-card-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:.8rem;color:var(--text-muted)}.blog-card-reading-time:before{content:"·";margin-right:var(--spacing-md)}@media(max-width:640px){.blog-hero h1{font-size:1.85rem}.blog-grid{grid-template-columns:1fr}}.blog-article-page{max-width:780px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-3xl)}.blog-breadcrumb{font-size:.85rem;color:var(--text-muted);margin-bottom:var(--spacing-xl)}.blog-breadcrumb a{color:var(--link-color);text-decoration:none}.blog-breadcrumb a:hover{text-decoration:underline}.blog-breadcrumb-separator{margin:0 var(--spacing-sm);opacity:.5}.blog-article-hero-image{width:100%;aspect-ratio:2 / 1;border-radius:var(--radius-xl);overflow:hidden;margin-bottom:var(--spacing-xl);background:var(--bg-primary)}.blog-article-hero-image img{width:100%;height:100%;object-fit:cover}.blog-article-header{margin-bottom:var(--spacing-2xl)}.blog-article-category{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-coral);margin-bottom:var(--spacing-sm)}.blog-article-title{font-size:2.25rem;color:var(--text-headline);margin:0 0 var(--spacing-md);line-height:1.25}.blog-article-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:.85rem;color:var(--text-muted);flex-wrap:wrap}.blog-article-meta>*:not(:last-child):after{content:"·";margin-left:var(--spacing-md)}.blog-article-body{font-size:1.05rem;line-height:1.75;color:var(--text-body)}.blog-article-body h1{display:none}.blog-article-body h2{font-size:1.5rem;color:var(--text-headline);margin:var(--spacing-2xl) 0 var(--spacing-md);line-height:1.3}.blog-article-body h3{font-size:1.2rem;color:var(--text-headline);margin:var(--spacing-xl) 0 var(--spacing-sm)}.blog-article-body p{margin:0 0 var(--spacing-lg)}.blog-article-body ul,.blog-article-body ol{margin:0 0 var(--spacing-lg);padding-left:var(--spacing-xl)}.blog-article-body li{margin-bottom:var(--spacing-sm)}.blog-article-body strong{color:var(--text-headline)}.blog-article-body a{color:var(--link-color);text-decoration:underline;text-underline-offset:2px}.blog-article-body a:hover{color:var(--link-hover)}.blog-article-body blockquote{border-left:4px solid var(--color-coral);margin:var(--spacing-lg) 0;padding:var(--spacing-sm) var(--spacing-lg);color:var(--text-muted);font-style:italic;background:#f26d6d0a;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.blog-article-body hr{border:none;border-top:1px solid var(--border-light);margin:var(--spacing-2xl) 0}.blog-article-body img{max-width:100%;height:auto;border-radius:var(--radius-md)}.blog-article-body table{width:100%;border-collapse:collapse;margin:var(--spacing-lg) 0;font-size:.95rem}.blog-article-body th,.blog-article-body td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-light)}.blog-article-body th{font-weight:600;color:var(--text-headline);background:var(--bg-primary)}.blog-article-body tr:last-child td{border-bottom:none}.blog-article-body code{font-size:.9em;background:var(--bg-primary);padding:.15em .4em;border-radius:var(--radius-sm);color:var(--color-coral)}.blog-article-body pre{background:var(--text-headline);color:#f0f0f0;padding:var(--spacing-lg);border-radius:var(--radius-md);overflow-x:auto;margin:var(--spacing-lg) 0}.blog-article-body pre code{background:none;color:inherit;padding:0}.blog-article-footer{margin-top:var(--spacing-2xl);padding-top:var(--spacing-xl);border-top:1px solid var(--border-light)}.blog-back-link{color:var(--link-color);text-decoration:none;font-weight:500;font-size:.95rem}.blog-back-link:hover{text-decoration:underline}@media(max-width:640px){.blog-article-title{font-size:1.65rem}.blog-article-body{font-size:1rem}.blog-article-body h2{font-size:1.3rem}.blog-article-body table{font-size:.85rem}.blog-article-body th,.blog-article-body td{padding:var(--spacing-xs) var(--spacing-sm)}}.horizontal-mobile-timeline{width:100%;background:linear-gradient(to bottom,#8ec6e8,#7ab8dc);padding:.75rem 0;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.timeline-scroll-container{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.5) transparent;-webkit-overflow-scrolling:touch;padding:0 .75rem;cursor:grab;-webkit-user-select:none;user-select:none}.timeline-scroll-container.dragging{cursor:grabbing;scroll-behavior:auto}.timeline-scroll-container::-webkit-scrollbar{height:3px}.timeline-scroll-container::-webkit-scrollbar-track{background:transparent}.timeline-scroll-container::-webkit-scrollbar-thumb{background:#ffffff80;border-radius:2px}.timeline-track{display:flex;gap:.5rem;padding:.25rem 0;min-width:min-content}.timeline-day{display:flex;flex-direction:column;align-items:center;min-width:56px;padding:.5rem .375rem;border-radius:10px;background:#fff;border:1.5px solid rgba(255,255,255,.6);transition:all .3s ease;position:relative;box-shadow:0 2px 4px #00000014}.timeline-day.today{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;transform:scale(1.08);box-shadow:0 4px 12px #667eea59}.timeline-day.has-events{border-color:#fbbf24;background:#fffdf5;box-shadow:0 2px 6px #fbbf2440}.timeline-day.today.has-events{background:linear-gradient(135deg,#667eea,#764ba2)}.day-header{display:flex;flex-direction:column;align-items:center;gap:.125rem;margin-bottom:.375rem}.day-name{font-size:.688rem;font-weight:700;text-transform:uppercase;opacity:.7;letter-spacing:.02em}.timeline-day.today .day-name{opacity:.9}.day-number{font-size:1.375rem;font-weight:800;line-height:1}.day-events{display:flex;flex-direction:column;gap:.2rem;align-items:center;min-height:32px}.event-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid;cursor:pointer;transition:all .2s ease;animation:popIn .3s ease}@keyframes popIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.event-badge:hover{transform:scale(1.2)}.event-badge.event-birthday{border-color:#ffd27d;background:#fef7e7}.event-badge.event-vet{border-color:#8ec6e8;background:#e8f4fa}.event-badge.event-reminder{border-color:#f26d6d;background:#fef0f0}.event-badge.event-grooming{border-color:#8b5cf6;background:#ede9fe}.event-badge.event-medication{border-color:#10b981;background:#d1fae5}.event-badge.event-memory{border-color:#f59e0b;background:#fef3c7}.event-icon{font-size:1.125rem;line-height:1}.today-indicator{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);background:#667eea;color:#fff;font-size:.563rem;font-weight:800;padding:2px 6px;border-radius:6px;white-space:nowrap;box-shadow:0 2px 4px #0003;letter-spacing:.03em}@media(max-width:640px){.horizontal-mobile-timeline{padding:.625rem 0}.timeline-scroll-container{padding:0 .5rem}.timeline-track{gap:.4rem}.timeline-day{min-width:52px;padding:.45rem .3rem}.day-number{font-size:1.25rem}.event-badge{width:26px;height:26px}.event-icon{font-size:1rem}}.vertical-zoom-timeline{height:600px;overflow-y:auto;overflow-x:hidden;background:linear-gradient(to bottom,#f9fafb,#fff);border-radius:12px;padding:1.5rem 0;scrollbar-width:none;position:relative;scroll-behavior:smooth}.vertical-zoom-timeline::-webkit-scrollbar{display:none}.timeline-content{display:flex;flex-direction:column;gap:1.5rem;padding:0 .75rem;padding-top:80px;padding-bottom:220px}.timeline-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 3px 15px #00000014;transition:transform .15s cubic-bezier(.4,0,.2,1),opacity .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);position:relative;transform-origin:center;will-change:transform,opacity}.card-accent{height:4px;width:100%}.card-image{width:100%;height:140px;overflow:hidden;position:relative}.card-image img{width:100%;height:100%;object-fit:cover}.image-overlay{position:absolute;inset:0;pointer-events:none}.card-icon-placeholder{width:100%;height:110px;display:flex;align-items:center;justify-content:center}.event-icon-large{font-size:2.5rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.card-content{padding:1rem}.card-date{display:flex;flex-direction:column;gap:.125rem;margin-bottom:.5rem}.relative-time{font-size:.75rem;font-weight:800;color:#667eea;text-transform:uppercase;letter-spacing:.05em}.full-date{font-size:.813rem;color:#6b7280;font-weight:500}.card-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin:0 0 .5rem;line-height:1.3}.card-pet-name{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:#4b5563;font-weight:600;margin-bottom:.625rem}.pet-indicator{font-size:.875rem}.card-description{font-size:.813rem;color:#6b7280;line-height:1.5;margin:0 0 .75rem}.card-type-badge{display:inline-block;padding:.25rem .625rem;border-radius:8px;font-size:.688rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em}.timeline-card[style*="scale(1.1)"],.timeline-card[style*="scale(1.0)"]{box-shadow:0 8px 30px #00000026}@media(max-width:640px){.vertical-zoom-timeline{height:550px;padding:1.25rem 0}.timeline-content{padding-top:180px;padding-bottom:180px;gap:1.25rem;padding-left:.5rem;padding-right:.5rem}.card-image{height:120px}.card-icon-placeholder{height:90px}.card-content{padding:.875rem}.card-title{font-size:1rem}.event-icon-large{font-size:2rem}}.arc-timeline-3d{position:relative;width:100%;min-height:500px;background:linear-gradient(to bottom,#1a1a2e,#0f0f1e);border-radius:16px;padding:2rem 1rem;overflow:hidden;box-shadow:inset 0 0 60px #00000080}.spiral-container{position:relative;width:100%;height:450px;perspective:1200px;perspective-origin:50% 30%;overflow:hidden}.spiral-track{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(20deg)}.spiral-event{position:absolute;left:50%;top:10%;transform-style:preserve-3d;transition:all .4s cubic-bezier(.4,0,.2,1);cursor:pointer}.spiral-event:hover{transform:translate3d(var(--x),var(--y),calc(var(--z) + 20px)) scale(calc(var(--scale) * 1.15))!important;filter:brightness(1.2)}.spiral-event.selected{filter:brightness(1.3) drop-shadow(0 0 20px currentColor)}.event-bubble{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #0006;border:3px solid rgba(255,255,255,.3);transition:all .3s ease;position:relative;z-index:2}.event-icon{font-size:1.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.event-date-tag{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.5rem;background:#fffffff2;padding:.25rem .625rem;border-radius:8px;font-size:.688rem;font-weight:700;color:#1f2937;white-space:nowrap;box-shadow:0 2px 8px #0003}.event-details-popup{position:absolute;bottom:calc(100% + 3rem);left:50%;transform:translate(-50%);background:#fff;padding:.875rem;border-radius:12px;box-shadow:0 8px 30px #0000004d;min-width:150px;animation:popupAppear .3s ease;z-index:10}@keyframes popupAppear{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.popup-title{font-size:.875rem;font-weight:700;color:#1f2937;margin-bottom:.375rem}.popup-pet{font-size:.75rem;color:#6b7280;font-weight:600}.depth-indicators{position:absolute;inset:0;pointer-events:none;z-index:0}.depth-line{position:absolute;left:50%;top:50%;width:2px;height:200%;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.1),transparent);transform-origin:center}.depth-line:nth-child(1){transform:translate(-50%,-50%) rotate(0)}.depth-line:nth-child(2){transform:translate(-50%,-50%) rotate(45deg)}.depth-line:nth-child(3){transform:translate(-50%,-50%) rotate(90deg)}.selected-event-footer{position:absolute;bottom:1rem;left:1rem;right:1rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1rem;display:flex;align-items:center;gap:1rem;box-shadow:0 8px 30px #0000004d;animation:slideUp .3s ease;z-index:100}.close-btn{position:absolute;top:.5rem;right:.5rem;width:24px;height:24px;border:none;background:#f3f4f6;border-radius:6px;font-size:.75rem;cursor:pointer;color:#6b7280;transition:all .2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#e5e7eb;transform:scale(1.1)}.footer-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;box-shadow:0 4px 12px #00000026}.footer-info{flex:1}.footer-title{font-size:1rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.footer-date{font-size:.813rem;color:#667eea;font-weight:600;margin-bottom:.125rem}.footer-pet{font-size:.75rem;color:#6b7280;font-weight:500}@media(max-width:640px){.arc-timeline-3d{padding:1.5rem .75rem;min-height:450px}.spiral-container{height:400px;perspective:900px}.event-bubble{width:40px;height:40px}.event-icon{font-size:1.25rem}.event-date-tag{font-size:.625rem;padding:.2rem .5rem}.selected-event-footer{padding:.875rem}.footer-icon{width:40px;height:40px;font-size:1.25rem}.footer-title{font-size:.938rem}}.event-modal-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.event-modal{background:#fff;border-radius:20px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close-btn{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border:none;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;font-size:1rem;cursor:pointer;color:#1f2937;transition:all .2s;display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:0 2px 8px #00000026}.modal-close-btn:hover{background:#f3f4f6;transform:scale(1.1)}.modal-image{width:100%;height:240px;position:relative;overflow:hidden;border-radius:20px 20px 0 0}.modal-image img{width:100%;height:100%;object-fit:cover}.modal-image-overlay{position:absolute;inset:0}.modal-icon-header{width:100%;height:160px;display:flex;align-items:center;justify-content:center;border-radius:20px 20px 0 0}.modal-icon{font-size:4rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.modal-content{padding:1.5rem}.modal-type-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:12px;color:#fff;font-weight:700;font-size:.875rem;text-transform:capitalize;margin-bottom:1rem}.modal-title{font-size:1.75rem;font-weight:800;color:#1f2937;margin:0 0 1rem;line-height:1.3}.modal-title-input{width:100%;font-size:1.75rem;font-weight:800;color:#1f2937;margin:0 0 1rem;padding:.5rem;border:2px solid #e5e7eb;border-radius:8px;font-family:inherit}.modal-title-input:focus{outline:none;border-color:#667eea}.modal-date{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:#6b7280;font-weight:600;margin-bottom:1rem}.date-icon{font-size:1.125rem}.modal-pet-info{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#f9fafb;border-radius:12px;margin-bottom:1.5rem}.modal-pet-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid white;box-shadow:0 2px 8px #0000001a}.modal-pet-name{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;color:#1f2937}.pet-icon{font-size:1.125rem}.modal-section{margin-bottom:1.5rem}.modal-section-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin:0 0 .75rem}.modal-description{font-size:1rem;color:#6b7280;line-height:1.6;margin:0}.modal-description-input{width:100%;font-size:1rem;color:#1f2937;line-height:1.6;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-family:inherit;resize:vertical}.modal-description-input:focus{outline:none;border-color:#667eea}.modal-actions{display:flex;gap:.75rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.modal-btn{flex:1;padding:.875rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s}.modal-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.modal-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.modal-btn-secondary{background:#f3f4f6;color:#6b7280}.modal-btn-secondary:hover{background:#e5e7eb}.modal-btn-save{background:#10b981;color:#fff}.modal-btn-save:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.modal-btn-cancel{background:#ef4444;color:#fff}.modal-btn-cancel:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}@media(max-width:640px){.event-modal{max-height:95vh;margin:.5rem}.modal-image{height:200px}.modal-icon-header{height:140px}.modal-icon{font-size:3rem}.modal-content{padding:1.25rem}.modal-title{font-size:1.5rem}.modal-actions{flex-direction:column}}.calendar-story-timeline{width:100%;height:100%;background:var(--bg-primary);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#e0e0e0 transparent}.calendar-story-timeline::-webkit-scrollbar{width:6px}.calendar-story-timeline::-webkit-scrollbar-track{background:transparent}.calendar-story-timeline::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:3px}.calendar-section{background:#fff;padding:1.25rem;border-bottom:2px solid #e5e7eb;position:sticky;top:0;z-index:10;box-shadow:0 2px 8px #0000000d}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.month-title{font-size:1.25rem;font-weight:700;color:#1f2937;margin:0}.nav-button{width:36px;height:36px;border:none;background:#f3f4f6;border-radius:10px;font-size:1.25rem;cursor:pointer;color:#4b5563;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-button:hover{background:#e5e7eb;transform:scale(1.05)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.375rem;margin-bottom:.375rem}.weekday-label{text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;padding:.375rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.375rem}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.375rem;border-radius:10px;background:#f9fafb;cursor:pointer;transition:all .2s;position:relative}.calendar-day.empty{background:transparent;cursor:default}.calendar-day:not(.empty):hover{background:#f3f4f6;transform:scale(1.05)}.calendar-day.has-events:hover{background:#fffbeb}.calendar-day.today{background:#fffbeb;font-weight:700;box-shadow:inset 0 0 0 2px #fbbf24,0 4px 12px #fbbf244d}.calendar-day.has-events{cursor:pointer}.calendar-day.today.has-events{background:#fffbeb;box-shadow:inset 0 0 0 2px #fbbf24,0 4px 12px #fbbf244d}.day-number{font-size:.875rem;font-weight:600;margin-bottom:.125rem}.event-dots{display:flex;gap:2px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:auto}.event-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;cursor:pointer;transition:all .2s}.event-dot:hover{transform:scale(1.5);box-shadow:0 2px 4px #0003}.event-dot-more{font-size:.625rem;font-weight:700;color:#6b7280;margin-left:2px}.calendar-day.today .event-dot-more{color:#fff}.story-feed-section{padding:1.25rem}.feed-title{font-size:1.5rem;font-weight:800;color:#1f2937;margin:0 0 1.25rem}.story-feed-list{display:flex;flex-direction:column;gap:1.5rem}.story-item{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #00000014;transition:all .3s ease;cursor:pointer;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.story-item:hover{box-shadow:0 4px 20px #0000001f;transform:translateY(-2px)}.story-item.highlighted{animation:highlightPulse 2s ease;border:2px solid #667eea}@keyframes highlightPulse{0%,to{box-shadow:0 2px 12px #00000014}50%{box-shadow:0 0 0 4px #667eea4d,0 4px 20px #667eea66}}.story-item-header{display:flex;align-items:center;gap:.875rem;padding:1rem}.pet-avatar-ring{padding:3px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pet-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;border:3px solid white}.pet-avatar img{width:100%;height:100%;object-fit:cover}.pet-placeholder{font-size:1.5rem}.story-item-info{flex:1}.pet-name{font-size:1rem;font-weight:700;color:#1f2937;margin-bottom:.125rem}.story-time{font-size:.813rem;color:#9ca3af;font-weight:500}.event-type-indicator{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.story-item-image{width:100%;height:180px;overflow:hidden}.story-item-image img{width:100%;height:100%;object-fit:cover}.story-item-content{padding:1rem}.story-date{display:inline-block;background:#f3f4f6;padding:.375rem .75rem;border-radius:8px;font-size:.688rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.625rem}.story-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin:0 0 .625rem;line-height:1.3}.story-description{font-size:.875rem;color:#6b7280;line-height:1.6;margin:0 0 .875rem}.story-type-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:10px;color:#fff;font-weight:700;font-size:.813rem;text-transform:capitalize}.badge-icon{font-size:1rem;line-height:1}.badge-text{line-height:1}.empty-feed{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.empty-description{font-size:1rem;color:#9ca3af}@media(max-width:640px){.calendar-section{padding:1rem}.month-title{font-size:1.125rem}.nav-button{width:32px;height:32px;font-size:1.125rem}.calendar-grid{gap:.25rem}.calendar-day{padding:.25rem}.day-number{font-size:.75rem}.event-dot{width:4px;height:4px}.story-feed-section{padding:1rem}.feed-title{font-size:1.25rem}.story-feed-list{gap:1.25rem}.story-item-header{padding:.875rem}.pet-avatar{width:48px;height:48px}.event-type-indicator{width:36px;height:36px;font-size:1.125rem}.story-item-image{height:160px}.story-item-content{padding:.875rem}.story-title{font-size:1rem}}.masonry-timeline{width:100%;height:100%;overflow-y:auto;background:#fafafa;padding:1rem;scrollbar-width:thin;scrollbar-color:#e0e0e0 transparent}.masonry-timeline::-webkit-scrollbar{width:6px}.masonry-timeline::-webkit-scrollbar-track{background:transparent}.masonry-timeline::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:3px}.masonry-grid{column-count:2;column-gap:.75rem}.masonry-card{break-inside:avoid;margin-bottom:.75rem;border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s ease;animation:fadeInScale .4s ease;box-shadow:0 2px 12px #00000014}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.masonry-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.masonry-card.masonry-small{height:auto;min-height:180px}.masonry-card.masonry-medium{height:auto;min-height:240px}.masonry-card.masonry-large{height:auto;min-height:300px}.masonry-image{position:relative;width:100%;height:100%;min-height:inherit}.masonry-image img{width:100%;height:100%;object-fit:cover;display:block}.masonry-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:1rem}.masonry-content{width:100%;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.masonry-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.125rem;margin-bottom:.5rem;box-shadow:0 2px 8px #0003}.masonry-date{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem;opacity:.95}.masonry-title{font-size:1rem;font-weight:700;margin:0 0 .5rem;line-height:1.3}.masonry-pet{font-size:.813rem;font-weight:600;opacity:.9}.masonry-no-image{width:100%;height:100%;min-height:inherit;padding:1rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.masonry-icon-large{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin-bottom:1rem;box-shadow:0 4px 12px #00000026}.masonry-content-plain{width:100%}.masonry-content-plain .masonry-date{color:#6b7280;text-shadow:none}.masonry-content-plain .masonry-title{color:#1f2937;text-shadow:none}.masonry-content-plain .masonry-pet{color:#4b5563;text-shadow:none}@media(max-width:640px){.masonry-timeline{padding:.75rem}.masonry-grid{column-gap:.5rem}.masonry-card{margin-bottom:.5rem}.masonry-card.masonry-small{min-height:160px}.masonry-card.masonry-medium{min-height:200px}.masonry-card.masonry-large{min-height:260px}.masonry-overlay{padding:.875rem}.masonry-title{font-size:.938rem}}@media(max-width:380px){.masonry-grid{column-count:1}}.swipe-cards-timeline{width:100%;height:100%;position:relative;overflow:hidden;background:#000}.swipe-card{width:100%;height:100%;position:absolute;top:0;left:0;display:flex;flex-direction:column;animation:slideIn .4s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.swipe-card-image{flex:1;position:relative;overflow:hidden}.swipe-card-image img{width:100%;height:100%;object-fit:cover}.swipe-card-gradient{position:absolute;inset:0;z-index:1}.swipe-card-no-image{flex:1;display:flex;align-items:center;justify-content:center;position:relative}.swipe-icon-large{font-size:6rem;filter:drop-shadow(0 8px 16px rgba(0,0,0,.3));animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.swipe-card-content{position:absolute;bottom:0;left:0;right:0;padding:2rem 1.5rem;z-index:2;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5)}.swipe-type-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:12px;color:#fff;font-weight:700;font-size:.875rem;text-transform:capitalize;margin-bottom:1rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.badge-icon{font-size:1.125rem}.swipe-date{font-size:.938rem;font-weight:600;margin-bottom:.75rem;opacity:.95}.swipe-title{font-size:2rem;font-weight:800;margin:0 0 1rem;line-height:1.2}.swipe-pet{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.swipe-pet-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid white;box-shadow:0 4px 12px #0000004d}.swipe-pet-name{font-size:1.125rem;font-weight:700}.swipe-description{font-size:1rem;line-height:1.6;margin:0;opacity:.95;max-width:500px}.swipe-controls{position:absolute;bottom:1.5rem;right:1.5rem;display:flex;align-items:center;gap:1rem;z-index:10}.swipe-nav-btn{width:48px;height:48px;border:none;background:#ffffff40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;font-size:1.5rem;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d}.swipe-nav-btn:hover:not(:disabled){background:#ffffff59;transform:scale(1.1)}.swipe-nav-btn:disabled{opacity:.3;cursor:not-allowed}.swipe-progress{background:#ffffff40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.625rem 1.25rem;border-radius:24px;font-size:.875rem;font-weight:700;color:#fff;box-shadow:0 4px 12px #0000004d}.swipe-indicator{position:absolute;top:1.5rem;left:50%;transform:translate(-50%);z-index:10;animation:fadeInOut 3s ease-in-out}@keyframes fadeInOut{0%,to{opacity:0}50%{opacity:1}}.swipe-hint{background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 1.25rem;border-radius:24px;font-size:.875rem;font-weight:600;color:#fff;white-space:nowrap}.swipe-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.empty-icon{font-size:5rem;margin-bottom:1.5rem;opacity:.9}@media(max-width:640px){.swipe-card-content{padding:1.5rem 1.25rem}.swipe-title{font-size:1.5rem}.swipe-description{font-size:.938rem}.swipe-controls{bottom:1rem;right:1rem;gap:.75rem}.swipe-nav-btn{width:40px;height:40px;font-size:1.25rem}.swipe-progress{padding:.5rem 1rem;font-size:.813rem}.swipe-icon-large{font-size:4rem}}.bubble-timeline{width:100%;height:100%;position:relative;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb)}.bubble-container{width:100%;height:100%;position:relative}.bubble{position:absolute;border-radius:50%;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 8px 32px #0003;border:3px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transform:translate(-50%,-50%);animation:bubbleFloat 3s ease-in-out infinite;display:flex;align-items:center;justify-content:center}@keyframes bubbleFloat{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.05)}}.bubble:hover{transform:translate(-50%,-50%) scale(1.15);box-shadow:0 12px 48px #0000004d;z-index:10;border-color:#fff9}.bubble-icon{font-size:2.5rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.bubble-overlay{position:absolute;inset:0;border-radius:50%;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.7) 100%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:.75rem;opacity:0;transition:opacity .3s ease}.bubble:hover .bubble-overlay{opacity:1}.bubble-type-indicator{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;box-shadow:0 2px 8px #0000004d;border:2px solid white}.bubble-label{width:100%;text-align:center;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5)}.bubble-date{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;opacity:.95}.bubble-title{font-size:.75rem;font-weight:700;margin-bottom:.25rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bubble-pet{font-size:.625rem;font-weight:600;opacity:.9}.bubble-legend{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 1.5rem;border-radius:24px;text-align:center;color:#fff;z-index:5;box-shadow:0 4px 16px #0000004d}.legend-title{font-size:.875rem;font-weight:700;margin-bottom:.25rem}.legend-subtitle{font-size:.75rem;opacity:.9}.bubble-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#fff}.empty-bubble{width:120px;height:120px;border-radius:50%;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:3px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:4rem;margin-bottom:1.5rem;animation:bubbleFloat 3s ease-in-out infinite}.empty-title{font-size:2rem;font-weight:800;margin-bottom:.75rem}.empty-description{font-size:1.125rem;opacity:.9}@media(max-width:640px){.bubble{min-width:60px;min-height:60px;max-width:100px;max-height:100px}.bubble-icon{font-size:2rem}.bubble-type-indicator{width:24px;height:24px;font-size:.75rem;top:6px;right:6px}.bubble-date{font-size:.563rem}.bubble-title{font-size:.688rem}.bubble-pet{font-size:.563rem}.bubble-legend{padding:.75rem 1.25rem;bottom:1rem}.legend-title{font-size:.813rem}.legend-subtitle{font-size:.688rem}.empty-bubble{width:100px;height:100px;font-size:3rem}.empty-title{font-size:1.5rem}.empty-description{font-size:1rem}}.timeline-prototypes-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem 1rem;display:flex;flex-direction:column;align-items:center}.prototypes-header{text-align:center;margin-bottom:2rem;color:#fff}.prototypes-header h1{font-size:2.5rem;font-weight:800;margin:0 0 .5rem;text-shadow:0 2px 10px rgba(0,0,0,.2)}.subtitle{font-size:1.125rem;margin:0;opacity:.95}.viewport-controls{background:#fffffff2;padding:1.25rem 1.5rem;border-radius:16px;box-shadow:0 4px 20px #00000026;margin-bottom:2rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap;max-width:900px}.control-group{display:flex;align-items:center;gap:.75rem}.control-label{font-weight:700;color:#1f2937;font-size:1rem;white-space:nowrap}.control-select{min-width:200px;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:12px;font-size:1rem;font-weight:600;color:#1f2937;background:#fff;cursor:pointer;transition:all .2s}.control-select:hover{border-color:#667eea}.control-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.mobile-viewport{margin-bottom:2rem}.phone-frame{background:#1f2937;border-radius:40px;padding:12px;box-shadow:0 20px 60px #0006,0 0 0 1px #ffffff1a;position:relative;transition:all .3s ease}.phone-frame.tablet{border-radius:20px}.phone-notch{position:absolute;top:0;left:50%;transform:translate(-50%);width:150px;height:28px;background:#1f2937;border-radius:0 0 20px 20px;z-index:10}.phone-frame.tablet .phone-notch{display:none}.phone-screen{width:100%;height:100%;background:#fff;border-radius:32px;overflow-y:auto;overflow-x:hidden;position:relative;scrollbar-width:none}.phone-frame.tablet .phone-screen{border-radius:12px}.phone-screen::-webkit-scrollbar{display:none}.phone-indicator{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:120px;height:4px;background:#ffffff4d;border-radius:2px}.mock-pet-header{padding:1.5rem;text-align:center;background:linear-gradient(to bottom,#fff,#f9fafb);border-bottom:1px solid #e5e7eb}.pet-photo{width:120px;height:120px;margin:0 auto 1rem;border-radius:50%;overflow:hidden;border:4px solid white;box-shadow:0 4px 20px #00000026}.pet-photo img{width:100%;height:100%;object-fit:cover}.pet-name{font-size:1.75rem;font-weight:800;color:#1f2937;margin:0 0 .25rem}.pet-info{font-size:.938rem;color:#6b7280;margin:0;font-weight:500}.timeline-container{padding:1rem 0}.timeline-info{background:#fffffff2;padding:1.5rem;border-radius:16px;box-shadow:0 4px 20px #00000026;text-align:center;max-width:600px}.timeline-info h3{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 .5rem}.timeline-info p{font-size:1rem;color:#6b7280;margin:0 0 .75rem}.device-info{font-size:.875rem;color:#9ca3af;padding-top:.75rem;border-top:1px solid #e5e7eb}.device-info strong{color:#667eea;font-weight:700}@media(max-width:768px){.timeline-prototypes-page{padding:1rem .5rem}.prototypes-header h1{font-size:2rem}.subtitle{font-size:1rem}.viewport-controls{flex-direction:column;align-items:stretch;gap:1rem}.control-group{flex-direction:column;align-items:stretch}.control-select{min-width:auto;width:100%}.phone-frame{max-width:100%}}.admin-signups-page{min-height:100vh;padding:2rem 1rem;background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.admin-signups-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.admin-signups-page .header-content{text-align:left}.admin-signups-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.admin-signups-page .subtitle{color:var(--text-muted);font-size:1rem;margin:0}.admin-badge{background:#7c3aed;color:#fff;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600}.signups-card{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem;margin-bottom:2rem}.admin-signups-page .loading{text-align:center;padding:4rem 2rem;color:var(--text-muted);font-size:1.125rem}.admin-signups-page .error-container{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.admin-signups-page .error-container h2{color:#ef4444;margin-bottom:1rem}.access-denied{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.denied-icon{font-size:4rem;margin-bottom:1rem}.access-denied h2{color:var(--text-headline);margin-bottom:.5rem}.access-denied p{color:var(--text-muted)}.admin-signups-page .empty-state{text-align:center;padding:3rem 2rem}.admin-signups-page .empty-icon{font-size:3rem;margin-bottom:1rem}.admin-signups-page .empty-state h3{color:var(--text-headline);margin-bottom:.5rem}.admin-signups-page .empty-state p{color:var(--text-muted);margin:0}.signups-table-wrapper{overflow-x:auto}.signups-table{width:100%;border-collapse:collapse}.signups-table th,.signups-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-light)}.signups-table th{background:var(--bg-primary);font-weight:600;color:var(--text-headline);font-size:.875rem;white-space:nowrap}.signups-table td{color:var(--text-body);font-size:.875rem}.signups-table tbody tr:hover{background:var(--bg-primary)}.email-cell{font-weight:500;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-name{color:var(--text-muted);font-style:italic}.pets-cell{text-align:center;font-weight:600}.date-cell{white-space:nowrap;font-size:.8rem;color:var(--text-muted)}.role-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:capitalize}.role-badge.admin{background:#7c3aed26;color:#7c3aed}.role-badge.premium{background:#f59e0b26;color:#d97706}.role-badge.tester{background:#3b82f626;color:#2563eb}.role-badge.user{background:#6b728026;color:#6b7280}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.status-badge.active{background:#22c55e26;color:#16a34a}.status-badge.inactive{background:#ef444426;color:#dc2626}.source-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.source-badge.app-launch{background:#f26d6d26;color:var(--color-coral)}.source-badge.landing{background:#8ec6e826;color:#2563eb}.stats-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-card{background:var(--bg-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.5rem;text-align:center}.stat-value{font-size:2rem;font-weight:700;color:var(--color-coral);margin-bottom:.25rem}.stat-label{font-size:.875rem;color:var(--text-muted)}@media(max-width:768px){.admin-signups-page{padding:1rem .5rem}.admin-signups-page .page-header{flex-direction:column;gap:1rem;text-align:center}.admin-signups-page .header-content{text-align:center}.admin-signups-page .page-header h1{font-size:1.5rem}.signups-table th,.signups-table td{padding:.5rem;font-size:.75rem}.stats-summary{grid-template-columns:1fr}}.admin-feedback-page{min-height:100vh;padding:2rem 1rem;background:var(--bg-primary)}.admin-container{max-width:1000px;margin:0 auto}.admin-feedback-page .page-header{text-align:center;margin-bottom:2rem}.admin-feedback-page .page-header h1{font-size:2rem;font-weight:700;color:var(--text-headline);margin:0 0 .5rem}.admin-feedback-page .subtitle{color:var(--text-muted);font-size:1rem;margin:0}.admin-feedback-page .loading{text-align:center;padding:4rem 2rem;color:var(--text-muted);font-size:1.125rem}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:#fef2f2;border:1px solid #FECACA;border-radius:8px;color:#dc2626;margin-bottom:1.5rem}.retry-btn{padding:.5rem 1rem;background:#dc2626;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer}.retry-btn:hover{background:#b91c1c}.feedback-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.stat-card{flex:1;min-width:100px;padding:1rem;background:var(--bg-secondary);border-radius:10px;text-align:center;box-shadow:var(--shadow-sm)}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-headline)}.stat-label{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.feedback-filters{margin-bottom:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:10px;box-shadow:var(--shadow-sm)}.feedback-filters label{display:block;font-weight:600;color:var(--text-body);margin-bottom:.75rem;font-size:.875rem}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem}.filter-chip{padding:.5rem 1rem;background:#f3f4f6;border:2px solid transparent;border-radius:20px;font-size:.8125rem;cursor:pointer;transition:all .2s;color:#4b5563}.filter-chip:hover{background:#e5e7eb}.filter-chip.active{background:#1e3a5f;color:#fff}.empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.empty-icon{font-size:4rem;display:block;margin-bottom:1rem}.empty-state h3{color:var(--text-headline);margin:0 0 .5rem}.empty-state p{color:var(--text-muted);margin:0}.feedback-list{display:flex;flex-direction:column;gap:1rem}.feedback-card{background:var(--bg-secondary);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;transition:all .2s}.feedback-card:hover{box-shadow:var(--shadow-md)}.feedback-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;background:#fafafa;border-bottom:1px solid #eee}.feedback-type-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:20px;font-size:.8125rem;font-weight:600}.feedback-type-badge[data-type=bug]{background:#fee2e2;color:#dc2626}.feedback-type-badge[data-type=idea]{background:#fef3c7;color:#d97706}.feedback-type-badge[data-type=confusing]{background:#dbeafe;color:#2563eb}.feedback-type-badge[data-type=love]{background:#fce7f3;color:#db2777}.feedback-type-badge[data-type=other]{background:#e5e7eb;color:#4b5563}.feedback-meta{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--text-muted)}.has-screenshot{background:#eef2ff;padding:.25rem .5rem;border-radius:4px}.feedback-message{padding:1rem 1.25rem;color:var(--text-body);line-height:1.6;white-space:pre-wrap;word-break:break-word}.feedback-details{padding:1rem 1.25rem 1.25rem;border-top:1px solid #eee;margin-top:.5rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.detail-item{font-size:.8125rem}.detail-label{display:block;color:var(--text-muted);margin-bottom:.125rem}.detail-value{color:var(--text-body);font-weight:500}.screenshot-section{margin-bottom:1rem}.screenshot-thumbnail{max-width:200px;max-height:150px;border-radius:8px;border:2px solid #E5E7EB;cursor:pointer;transition:all .2s;margin-top:.5rem}.screenshot-thumbnail:hover{border-color:#1e3a5f;transform:scale(1.02)}.feedback-actions{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid #eee}.delete-btn{padding:.5rem 1rem;background:#fff;color:#dc2626;border:2px solid #DC2626;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.delete-btn:hover:not(:disabled){background:#dc2626;color:#fff}.delete-btn:disabled{opacity:.5;cursor:not-allowed}.screenshot-modal{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.screenshot-modal-content{position:relative;max-width:90vw;max-height:90vh}.screenshot-modal-content img{max-width:100%;max-height:85vh;border-radius:8px;box-shadow:0 20px 60px #00000080}.close-modal-btn{position:absolute;top:-40px;right:0;width:36px;height:36px;background:#fff;border:none;border-radius:50%;font-size:1.25rem;cursor:pointer;transition:all .2s}.close-modal-btn:hover{transform:scale(1.1)}@media(max-width:640px){.admin-feedback-page{padding:1rem .5rem}.admin-feedback-page .page-header h1{font-size:1.5rem}.feedback-stats{gap:.5rem}.stat-card{min-width:80px;padding:.75rem .5rem}.stat-value{font-size:1.25rem}.stat-label{font-size:.625rem}.filter-chips{gap:.375rem}.filter-chip{padding:.375rem .75rem;font-size:.75rem}.feedback-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}.detail-grid{grid-template-columns:1fr}}.layout{min-height:100vh;display:flex;flex-direction:column}.header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-light);padding:.125rem 0;z-index:100;box-shadow:var(--shadow-sm)}.header-container{max-width:1000px;margin:0 auto;padding:0 1rem;display:flex;justify-content:space-between;align-items:center}.logo{text-decoration:none;display:flex;align-items:center;margin-left:-1rem}.logo-image{height:115px;width:auto;display:block}.nav{display:flex;gap:1.5rem;align-items:center}.nav-link{text-decoration:none;color:var(--text-body);font-weight:500;transition:color var(--transition-normal);background:none;border:none;cursor:pointer;font-size:1rem;font-family:inherit}.nav-link:hover{color:var(--color-coral)}.nav-link.primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);padding:.5rem 1rem;border-radius:var(--radius-sm)}.nav-link.primary:hover{background-color:var(--btn-primary-hover);color:var(--btn-primary-text)}.nav-link.outlined{border:2px solid var(--color-sky-blue);border-radius:var(--radius-sm);padding:.4rem 1rem;color:var(--color-sky-blue)}.nav-link.outlined:hover{background-color:var(--color-sky-blue);color:#fff}.nav-link.settings-icon-link{display:flex;align-items:center;justify-content:center;padding:.4rem}.nav-link.settings-icon-link svg{display:block}.nav-right-section{display:flex;flex-direction:column;align-items:flex-end}.nav-main-links{display:flex;gap:1.5rem;align-items:center}.nav-feature-links{display:flex;gap:1.25rem;margin-top:2rem;justify-content:flex-end}.nav-feature-link{text-decoration:none;color:#5f6c7bd9;font-size:1rem;font-weight:500;transition:color var(--transition-normal)}.nav-feature-link:hover{color:var(--color-coral)}.logout-button.outlined{background:none;border:2px solid var(--color-sky-blue);border-radius:var(--radius-sm);padding:.4rem 1rem;color:var(--color-sky-blue);cursor:pointer}.logout-button.outlined:hover{background-color:var(--color-sky-blue);color:#fff}.nav-feature-links-mobile{display:flex;flex-direction:column;gap:.25rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-light)}.nav-feature-links-mobile .nav-feature-link{padding:.5rem 1rem;border-radius:.5rem}.nav-feature-links-mobile .nav-feature-link:hover{background-color:var(--bg-primary)}.mobile-menu-button{display:none;background:none;border:none;cursor:pointer;padding:.5rem;z-index:1001}.hamburger{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:18px}.hamburger-line{display:block;width:100%;height:2px;background-color:var(--text-body);transition:all var(--transition-slow)}.hamburger.open .hamburger-line:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.open .hamburger-line:nth-child(2){opacity:0}.hamburger.open .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.nav-desktop{display:flex}.nav-mobile{display:none;position:fixed;top:64px;right:-100%;width:280px;height:calc(100vh - 64px);background:#fff;flex-direction:column;padding:1.5rem;box-shadow:-4px 0 20px #0000001a;transition:right .3s ease;z-index:1000;gap:.5rem}.nav-mobile.open{right:0}.nav-mobile .nav-link{padding:.75rem 1rem;border-radius:.5rem;font-size:1.1rem}.nav-mobile .nav-link:hover{background-color:var(--bg-primary)}.nav-mobile .nav-link.primary{margin-top:1rem;text-align:center}.nav-mobile .nav-link.outlined{border:2px solid var(--color-sky-blue);color:var(--color-sky-blue);text-align:center}.nav-mobile .nav-link.outlined:hover{background-color:var(--color-sky-blue);color:#fff}.nav-mobile .logout-button.outlined{background:none;border:2px solid var(--color-sky-blue);color:var(--color-sky-blue);text-align:center;width:100%;cursor:pointer;font-family:inherit}.nav-mobile .logout-button.outlined:hover{background-color:var(--color-sky-blue);color:#fff}.mobile-nav-overlay{display:none;position:fixed;top:64px;left:0;width:100%;height:calc(100vh - 64px);background:#00000080;opacity:0;transition:opacity .3s ease;z-index:999}.mobile-nav-overlay.open{display:block;opacity:1}.main-content{flex:1;width:100%}.footer{background-color:#fff;border-top:1px solid var(--border-light);padding:2rem 0;margin-top:auto}.footer-container{max-width:1200px;margin:0 auto;padding:0 1rem;text-align:center;color:var(--text-muted)}.home-page{width:100%;margin:0;padding:0;overflow-x:hidden}.hero{padding:2rem 2rem 2rem 6rem;position:relative;overflow:visible;background-color:var(--color-cream)}.hero>.hero-content{max-width:1400px;margin:0 auto;padding-left:6rem}.hero-content{display:grid;grid-template-columns:3.6fr 1fr;gap:1rem;align-items:center}.hero-text{text-align:left;position:relative;width:88%;margin-top:-100px;padding-top:60px;z-index:2}.hero-image{width:100%;display:flex;justify-content:flex-start;position:relative}.hero-image:before{content:"";position:absolute;width:564px;height:564px;border-radius:50%;background:var(--color-sunshine);right:100px;top:-20px;z-index:0}.hero-confetti{position:absolute;width:100px;height:80px;pointer-events:none}.hero-confetti-right{top:-.25rem;right:-.5rem}.hero-confetti-center{top:-.25rem;left:50%;transform:translate(-50%)}.hero-confetti-left{top:-.25rem;left:-.5rem}.confetti-dot{position:absolute;border-radius:50%}.confetti-dot.sunshine{background-color:#ffd27d;width:12px;height:12px}.confetti-dot.sky-blue{background-color:#8ec6e8;width:10px;height:10px}.confetti-dot.coral{background-color:#f26d6d;width:11px;height:11px}.confetti-dot.small{width:8px;height:8px}.hero-confetti-right .confetti-dot:nth-child(1){top:-5px;right:10px}.hero-confetti-right .confetti-dot:nth-child(2){top:5px;right:35px}.hero-confetti-right .confetti-dot:nth-child(3){top:-15px;right:5px}.hero-confetti-right .confetti-dot:nth-child(4){top:10px;right:55px}.hero-confetti-right .confetti-dot:nth-child(5){top:-8px;right:50px}.hero-confetti-right .confetti-dot:nth-child(6){top:-20px;right:25px}.hero-confetti-right .confetti-dot:nth-child(7){top:-25px;right:45px}.hero-confetti-right .confetti-dot:nth-child(8){top:-12px;right:70px}.hero-confetti-right .confetti-dot:nth-child(9){top:0;right:75px}.hero-confetti-right .confetti-dot:nth-child(10){top:-30px;right:60px}.hero-confetti-left .confetti-dot:nth-child(1){top:-5px;left:10px}.hero-confetti-left .confetti-dot:nth-child(2){top:5px;left:35px}.hero-confetti-left .confetti-dot:nth-child(3){top:10px;left:55px}.hero-confetti-left .confetti-dot:nth-child(4){top:-8px;left:50px}.hero-confetti-left .confetti-dot:nth-child(5){top:-15px;left:5px}.hero-confetti-left .confetti-dot:nth-child(6){top:-20px;left:30px}.hero-confetti-left .confetti-dot:nth-child(7){top:-25px;left:55px}.hero-confetti-left .confetti-dot:nth-child(8){top:-12px;left:70px}.hero-confetti-center .confetti-dot:nth-child(1){top:-5px;left:10px}.hero-confetti-center .confetti-dot:nth-child(2){top:-18px;left:30px}.hero-confetti-center .confetti-dot:nth-child(3){top:5px;left:50px}.hero-confetti-center .confetti-dot:nth-child(4){top:-25px;left:45px}.hero-confetti-center .confetti-dot:nth-child(5){top:-10px;left:65px}.hero-confetti-center .confetti-dot:nth-child(6){top:-22px;left:75px}.hero-confetti-center .confetti-dot:nth-child(7){top:0;left:85px}.hero-confetti-center .confetti-dot:nth-child(8){top:-15px;left:95px}.text-coral{color:#f26d6d}.text-slate{color:#5f6c7b}.carousel-frame{background:#fff;border-radius:50%;box-shadow:0 8px 30px #0000001f;width:564px;height:564px;display:flex;align-items:center;justify-content:center;margin:0;position:relative;z-index:1;transform:translate(-140px)}.carousel-frame .hero-carousel{transform:none}.hero h1{font-size:3rem;color:var(--text-headline);margin-bottom:1.5rem;line-height:1.45}.hero-subtitle{font-size:1.25rem;color:var(--text-muted);margin-bottom:2.5rem;line-height:1.8}.cta-buttons{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;margin-top:10px}.signup-button-wrapper,.signup-button-wrapper .cta-button{position:relative}.cta-button{padding:.75rem 2rem;font-size:1.125rem;font-weight:600;border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-normal);display:inline-block}.cta-button.primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.cta-button.primary:hover{background-color:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-coral)}.cta-button.secondary{background-color:var(--bg-secondary);color:var(--color-sky-blue);border:2px solid var(--color-sky-blue)}.cta-button.secondary:hover{background-color:var(--btn-secondary-hover-bg);border-color:var(--color-sky-blue-hover)}.coming-soon-section{background:#fff;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding:2rem 0}.coming-soon-content{max-width:1400px;margin:0 auto;padding:0 2rem;text-align:center}.coming-soon-text{font-size:1.5rem;font-weight:600;color:var(--text-headline);margin-bottom:1.5rem}.app-badges{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}.app-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:10px;min-width:180px;cursor:default}.app-badge-apple,.app-badge-google{background:#151515;color:#fff}.badge-subtitle{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}.badge-title{font-size:1.25rem;font-weight:600}.features{padding:4rem 2rem 3rem;background-color:var(--color-cream);margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%)}.features h2{text-align:center;font-size:2.5rem;color:var(--text-headline);margin-bottom:3rem}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:1200px;margin:0 auto}.feature-card{background:#fff;padding:2rem;border-radius:var(--radius-lg);box-shadow:0 8px 30px #00000014;transition:transform var(--transition-normal),box-shadow var(--transition-normal);text-align:center;border-top:5px solid transparent}.features-grid .feature-card:nth-child(1){border-top-color:var(--color-sky-blue)}.features-grid .feature-card:nth-child(1) h3,.features-grid .feature-card:nth-child(1) .learn-more{color:var(--color-sky-blue)}.features-grid .feature-card:nth-child(2){border-top-color:var(--color-coral)}.features-grid .feature-card:nth-child(2) h3,.features-grid .feature-card:nth-child(2) .learn-more{color:var(--color-coral)}.features-grid .feature-card:nth-child(3){border-top-color:var(--color-mint)}.features-grid .feature-card:nth-child(3) h3,.features-grid .feature-card:nth-child(3) .learn-more{color:var(--color-mint)}.features-grid .feature-card:nth-child(4){border-top-color:var(--color-lavender)}.features-grid .feature-card:nth-child(4) h3,.features-grid .feature-card:nth-child(4) .learn-more{color:var(--color-lavender)}.feature-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px #0000001f}.feature-card-icon{font-size:2.5rem;margin-bottom:1rem;display:block}.feature-card h3{margin-bottom:.75rem}.feature-card p{color:var(--text-muted);line-height:1.6}.feature-card-link{text-decoration:none;display:block;cursor:pointer}.feature-card-link:hover{text-decoration:none}.feature-card-link .learn-more{display:inline-block;margin-top:1rem;font-weight:500;font-size:.875rem;transition:transform var(--transition-normal)}.feature-card-link:hover .learn-more{transform:translate(4px)}.calculator-section{background-color:#fff;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding:2rem 0 3rem}.login-page,.register-page{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:var(--bg-primary)}.login-container,.register-container{background:var(--bg-elevated);padding:2rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);width:100%;max-width:450px}.login-container h1,.register-container h1{text-align:center;color:var(--text-headline);margin-bottom:.5rem}.subtitle{text-align:center;color:var(--text-muted);margin-bottom:2rem}.login-form,.register-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text-body)}.form-group input{padding:.75rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:1rem;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.form-group input:focus{outline:none;border-color:var(--color-coral);box-shadow:0 0 0 3px var(--focus-ring)}.form-group input.input-error{border-color:#ef4444}.error-text{color:#ef4444;font-size:.875rem}.error-message{background-color:#fee2e2;color:#991b1b;padding:.75rem;border-radius:.375rem;font-size:.875rem}.submit-button{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);padding:.75rem;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color var(--transition-normal);margin-top:.5rem}.submit-button:hover:not(:disabled){background-color:var(--btn-primary-hover)}.submit-button:disabled{background-color:var(--border-medium);cursor:not-allowed}.form-footer{text-align:center;margin-top:1rem;color:var(--text-muted)}.form-footer a{color:var(--link-color);text-decoration:none;font-weight:500}.form-footer a:hover{text-decoration:underline}.dashboard-container h1{color:var(--text-headline);margin-bottom:.5rem}.dashboard-content{margin-top:2rem}.empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.empty-state h2{color:var(--text-headline);margin-bottom:1rem}.empty-state p{color:var(--text-muted);margin-bottom:2rem}.primary-button{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);padding:.75rem 2rem;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color var(--transition-normal)}.primary-button:hover{background-color:var(--btn-primary-hover)}.loading-container{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--text-muted)}.landing-page{width:100%;margin:0;padding:0;overflow-x:hidden}.landing-hero{padding:4rem 2rem;background-color:var(--color-cream)}.landing-hero-content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.landing-hero-image{order:-1}.placeholder-image{aspect-ratio:16/10;background:linear-gradient(135deg,var(--color-coral) 0%,#F79999 50%,#FDCFCF 100%);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 40px #f26d6d33}.placeholder-image span{color:#fff;font-size:1.25rem;font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.1)}.feature-preview-image{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-xl);box-shadow:0 20px 40px #00000026}.landing-hero-text h1{font-size:2.75rem;color:var(--text-headline);margin-bottom:1.5rem;line-height:1.2}.landing-hero-text p{font-size:1.25rem;color:var(--text-muted);margin-bottom:2rem;line-height:1.6}.feature-highlights{padding:4rem 2rem;background-color:#fff}.feature-highlights h2{text-align:center;font-size:2rem;color:var(--text-headline);margin-bottom:3rem;max-width:1200px;margin-left:auto;margin-right:auto}.feature-highlights-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:1200px;margin:0 auto}.feature-highlight-card{background:var(--bg-elevated);padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--transition-normal),box-shadow var(--transition-normal);text-align:center}.feature-highlight-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.feature-icon{font-size:2.5rem;display:block;margin-bottom:1rem}.feature-highlight-card h3{color:var(--text-headline);margin-bottom:.75rem;font-size:1.25rem}.feature-highlight-card p{color:var(--text-muted);line-height:1.6}.landing-cta{text-align:center;padding:5rem 2rem;background-color:var(--color-cream)}.landing-cta h2{font-size:2.25rem;color:var(--text-headline);margin-bottom:1rem}.landing-cta p{font-size:1.125rem;color:var(--text-muted);margin-bottom:2rem;max-width:600px;margin-left:auto;margin-right:auto}.landing-cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.placeholder-image.birthdays{background:linear-gradient(135deg,var(--color-coral) 0%,#F79999 50%,#FDCFCF 100%)}.placeholder-image.health{background:linear-gradient(135deg,var(--color-sky-blue) 0%,#A8D4ED 50%,#D0E9F5 100%)}.placeholder-image.milestones{background:linear-gradient(135deg,var(--color-sunshine) 0%,#FFE0A3 50%,#FFEDC7 100%)}.placeholder-image.web-first{background:linear-gradient(135deg,var(--color-slate) 0%,#8A9AAD 50%,#B5C0CC 100%)}.landing-page-birthdays .feature-highlight-card,.landing-page-health .feature-highlight-card,.landing-page-milestones .feature-highlight-card,.landing-page-timeline .feature-highlight-card{background:#8ec6e826}@media(max-width:1024px){.features-grid,.feature-highlights-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.mobile-menu-button{display:block}.nav-desktop{display:none}.nav-mobile{display:flex}.logo-image{height:95px}.hero{padding:2rem 1rem}.hero>.hero-content{padding-left:0}.hero-content{grid-template-columns:1fr;gap:3.5rem}.hero-text{text-align:center;order:1;width:100%;margin-top:0}.hero-confetti-right{right:0;top:-1rem}.hero-confetti-center{top:-1rem}.hero-confetti-left{left:0;top:-1rem}.hero-image{order:0;justify-content:center}.hero-image:before{width:350px;height:350px;right:calc(50% - 200px);transform:none;top:-15px}.carousel-frame{width:320px;height:320px;margin:0 auto;transform:none}.cta-buttons{justify-content:center}.hero h1{font-size:2rem}.hero-subtitle{font-size:1rem}.features h2{font-size:2rem}.features-grid,.feature-highlights-grid,.form-row{grid-template-columns:1fr}.landing-hero-content{grid-template-columns:1fr;gap:2rem}.landing-hero-image{order:0}.landing-hero-text h1{font-size:2rem}.landing-hero-text p{font-size:1rem}.feature-highlights h2,.landing-cta h2{font-size:1.75rem}.landing-cta{margin:2rem -1rem 0;padding:3rem 1rem}}@media(max-width:375px){.hero h1{font-size:1.75rem}.hero-subtitle{font-size:.9rem}.features h2{font-size:1.5rem}.landing-hero-text h1{font-size:1.75rem}.landing-cta h2{font-size:1.5rem}.nav-mobile{width:100%;right:-100%}.nav-mobile.open{right:0}.btn,.nav-link.primary{padding:.75rem 1rem;font-size:.9rem}.hero-image:before{width:280px;height:280px;right:calc(50% - 160px)}.carousel-frame{width:260px;height:260px;transform:none}}@media(max-width:320px){.hero h1,.landing-hero-text h1{font-size:1.5rem}.logo h1{font-size:1.25rem}.header-container{padding:0 .75rem}}@media(max-width:768px){.react-datepicker-wrapper{width:100%;max-width:100%}.react-datepicker__input-container{width:100%}.react-datepicker__input-container input{width:100%;max-width:100%}.react-datepicker-popper{width:calc(100vw - 2rem)!important;left:50%!important;transform:translate(-50%)!important}.react-datepicker{width:100%;max-width:calc(100vw - 2rem)}.react-datepicker__month-container{width:100%}}.landing-page-pricing{padding:0;overflow-x:hidden}.pricing-hero{padding:5rem 2rem;background-color:var(--color-cream);text-align:center}.pricing-hero-content{max-width:800px;margin:0 auto}.pricing-hero h1{font-size:2.75rem;color:var(--text-headline);margin-bottom:1rem;line-height:1.2}.pricing-hero-subheadline{font-size:1.35rem;color:var(--text-muted);margin-bottom:2.5rem;line-height:1.6}.pricing-hero-ctas{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem}.pricing-secondary-link{color:var(--color-sky-blue);text-decoration:none;font-weight:500;transition:color var(--transition-normal)}.pricing-secondary-link:hover{color:var(--color-sky-blue-hover);text-decoration:underline}.pricing-trust-line{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:-2rem;padding:0 2rem 2.5rem;background-color:var(--color-cream)}.trust-item{color:var(--text-muted);font-size:.95rem;display:flex;align-items:center;gap:.35rem}.trust-item:before{content:"✔";color:var(--color-mint);font-weight:700}.pricing-cards-section{padding:5rem 2rem;background-color:#fff}.pricing-cards-section h2{text-align:center;font-size:2rem;color:var(--text-headline);margin-bottom:3rem}.pricing-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;max-width:900px;margin:0 auto}.pricing-card{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:2.5rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.pricing-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.pricing-card-premium{border:2px solid var(--color-coral);position:relative}.pricing-card-header-section{min-height:180px}.pricing-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.pricing-card-header h3{font-size:1.5rem;color:var(--text-headline);margin:0}.pricing-card-badge{font-size:.75rem;padding:.25rem .75rem;border-radius:var(--radius-md);background-color:#8ec6e833;color:var(--color-sky-blue);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.pricing-card-badge.premium-badge{background-color:#f26d6d26;color:var(--color-coral)}.pricing-card-price{margin-bottom:.5rem}.price-amount{font-size:2.75rem;font-weight:700;color:var(--text-headline)}.price-period{font-size:1.125rem;color:var(--text-muted)}.pricing-annual-option{font-size:.95rem;color:var(--text-muted);margin-bottom:1rem}.save-badge{background-color:var(--color-mint);color:#fff;font-size:.75rem;padding:.15rem .5rem;border-radius:var(--radius-sm);font-weight:600;margin-left:.5rem}.pricing-card-best-for{font-size:.95rem;color:var(--text-muted);font-style:italic;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-light)}.pricing-features-list{list-style:none;padding:0;margin:0 0 2rem;flex-grow:1}.pricing-features-list li{padding:.5rem 0;color:var(--text-body);display:flex;align-items:flex-start;gap:.75rem;line-height:1.5}.pricing-features-list li:before{content:"✓";color:var(--color-mint);font-weight:700;flex-shrink:0}.pricing-features-list li.coming-soon{color:var(--text-muted);font-style:italic}.pricing-features-list li.coming-soon:before{content:"✨";color:var(--color-sunshine)}.pricing-card-footer{margin-top:auto;padding-top:1.5rem}.pricing-cta{width:100%;text-align:center}.pricing-card-microcopy{font-size:.8rem;color:var(--text-muted);text-align:center;margin-top:1rem;opacity:.8;min-height:2.5rem}.pricing-emotional-section{padding:5rem 2rem;background-color:var(--color-cream);text-align:center}.pricing-emotional-section h2{font-size:1.75rem;color:var(--text-headline);margin-bottom:1rem}.emotional-header{font-size:1.35rem;color:var(--color-coral);font-weight:600;margin-bottom:2rem;font-style:italic}.emotional-features-list{list-style:none;padding:0;margin:0 auto;max-width:700px;text-align:left}.emotional-features-list li{padding:.75rem 0;color:var(--text-body);display:flex;align-items:flex-start;gap:.75rem;font-size:1.1rem;line-height:1.6}.emotional-features-list li:before{content:"❤";color:var(--color-coral);flex-shrink:0}.pricing-faq-section{padding:5rem 2rem;background-color:#fff}.pricing-faq-section h2{text-align:center;font-size:2rem;color:var(--text-headline);margin-bottom:2.5rem}.pricing-faq-container{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}.pricing-faq-item{background:#8ec6e826;border-radius:var(--radius-md);box-shadow:0 2px 12px #0000000f;overflow:hidden;border:2px solid transparent;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.pricing-faq-item:hover{border-color:var(--color-sky-blue)}.pricing-faq-item.open{border-color:var(--color-coral);box-shadow:0 4px 20px #f26d6d26}.pricing-faq-question{width:100%;display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;transition:background-color var(--transition-normal)}.pricing-faq-question:hover{background-color:#8ec6e814}.pricing-faq-item.open .pricing-faq-question{background-color:#f26d6d14}.pricing-faq-icon{font-size:1.5rem;flex-shrink:0}.pricing-faq-question-text{flex:1;font-size:1.125rem;font-weight:600;color:var(--text-headline)}.pricing-faq-toggle{font-size:1.5rem;font-weight:300;color:var(--color-coral);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f26d6d1a;flex-shrink:0;transition:transform var(--transition-normal),background-color var(--transition-normal)}.pricing-faq-item.open .pricing-faq-toggle{background:var(--color-coral);color:#fff;transform:rotate(180deg)}.pricing-faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.pricing-faq-item.open .pricing-faq-answer{max-height:300px}.pricing-faq-answer p{padding:0 1.5rem 1.5rem 4rem;margin:0;font-size:1rem;line-height:1.7;color:var(--text-body)}.pricing-final-cta{padding:5rem 2rem;background-color:var(--color-cream);text-align:center}.pricing-final-cta h2{font-size:2rem;color:var(--text-headline);margin-bottom:1rem}.pricing-final-cta p{font-size:1.125rem;color:var(--text-muted);margin-bottom:2rem}.footer-links{font-size:.85rem;margin-top:.75rem;opacity:.8}.footer-links a{color:inherit;text-decoration:none;transition:opacity var(--transition-normal)}.footer-links a:hover{opacity:1;text-decoration:underline}.footer-link-separator{margin:0 .75rem;opacity:.5}@media(max-width:768px){.pricing-hero h1{font-size:2rem}.pricing-hero-subheadline{font-size:1.125rem}.pricing-cards{grid-template-columns:1fr;max-width:450px}.pricing-card{padding:2rem}.price-amount{font-size:2.25rem}.pricing-faq-section{padding:3rem 1rem}.pricing-faq-question{padding:1rem 1.25rem;gap:.75rem}.pricing-faq-question-text{font-size:1rem}.pricing-faq-icon{font-size:1.25rem}.pricing-faq-answer p{padding:0 1.25rem 1.25rem 3rem}.pricing-trust-line{flex-direction:column;gap:.75rem}.emotional-features-list{padding:0 1rem}}@media(max-width:480px){.pricing-hero{padding:3rem 1.5rem}.pricing-hero h1{font-size:1.75rem}.pricing-cards-section,.pricing-emotional-section,.pricing-faq-section,.pricing-final-cta{padding:3rem 1.5rem}.pricing-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}}
