:root{color-scheme:light;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-soft: #eff6ff;--color-background: #f8fafc;--color-surface: #ffffff;--color-surface-hover: #f1f5f9;--color-surface-elevated: #ffffff;--color-text: #2d3748;--color-text-primary: #1a202c;--color-text-secondary: #4a5568;--color-text-muted: #718096;--color-border: #e2e8f0;--color-border-subtle: #edf2f7;--color-border-light: rgba(226, 232, 240, .6);--color-danger: #e53e3e;--color-danger-soft: #fff5f5;--color-success: #38a169;--color-success-soft: #f0fff4;--color-warning: #dd6b20;--color-warning-soft: #fffaf0;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05);--shadow-soft: 0 10px 15px -3px rgba(0, 0, 0, .03), 0 4px 6px -2px rgba(0, 0, 0, .02);--shadow-hover: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 10px 10px -5px rgba(0, 0, 0, .02);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--color-background);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;overflow-x:hidden}html{overflow-x:hidden}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}button{font-family:inherit;cursor:pointer;border:none;background:none;transition:all var(--transition-fast)}button,input,select,.clickable{min-height:44px;min-width:44px}.card,.pet-card,.appointment-card,.stat-tile{transition:transform var(--transition-normal),box-shadow var(--transition-normal);will-change:transform,box-shadow}.card:hover,.pet-card:hover,.appointment-card:hover,.stat-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}.button{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;font-weight:500;border-radius:var(--radius-full);transition:all var(--transition-fast);gap:.5rem}.button:active{transform:scale(.98)}.button.primary{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.button.primary:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.button.secondary{background:#fff;border:1px solid var(--color-border);color:var(--color-text)}.button.secondary:hover{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-accent)}html,body,#root{height:100%}body.nav-open{overflow:hidden}#root{display:flex}.app-shell{display:flex;flex-direction:column;width:100%;min-height:100%;--header-height: 76px}.page{padding:2rem 2.5rem;min-height:calc(100vh - var(--header-height, 76px))}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.75rem}.card+.card{margin-top:1.5rem}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.admin-user-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.admin-user-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;display:grid;gap:.75rem;background:var(--color-surface)}.admin-user-card.danger{border-color:#d6454566;background:#d645450f}.admin-user-card header{display:flex;flex-direction:column;gap:.35rem}.admin-user-card dl{margin:0;display:grid;gap:.6rem}.admin-user-card dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.admin-user-card dd{margin:0;font-weight:600}.admin-user-card footer{display:flex;gap:.75rem;flex-wrap:wrap}.grid{display:grid;gap:1.5rem}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}@media (max-width: 900px){.grid.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media (max-width: 768px){.page{padding:1.5rem 1.25rem}.card{padding:1.35rem}.grid.two{grid-template-columns:1fr}}@media (max-width: 480px){.page{padding:1.25rem 1rem 1.5rem}.card{padding:1.1rem}}@media (max-width: 720px){.app-shell{--header-height: 64px}}.section-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.muted{color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;gap:.5rem;border-radius:var(--radius-full);padding:.25rem .75rem;background:var(--color-accent-soft);color:var(--color-accent);font-size:.85rem;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:var(--radius-full);padding:.65rem 1.3rem;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease;background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.button.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.button.danger{background:var(--color-danger)}.button.danger.ghost{background:#d6454514;color:var(--color-danger);border:1px solid rgba(214,69,69,.35)}.button.danger.ghost:not(:disabled):hover{background:#d6454526}.button:disabled{opacity:.6;cursor:not-allowed}.button:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}form{display:grid;gap:1rem}label{display:flex;flex-direction:column;gap:.4rem;font-weight:600;color:var(--color-text)}input,select,textarea{border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:.65rem .75rem;font-size:1rem;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2d6cdf26}.language-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border-radius:999px;border:1px solid var(--color-border, rgba(148, 163, 184, .4));background:var(--color-surface);color:var(--color-text, #0f172a);font-weight:600;font-size:.85rem;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.language-toggle:hover,.language-toggle:focus-visible{background:var(--color-accent-soft);color:var(--color-accent);box-shadow:var(--shadow-sm)}.language-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.language-toggle__flag{font-size:1.1rem;line-height:1}.language-toggle__label{letter-spacing:.08em}.app-shell{display:flex;min-height:100vh;background:var(--color-surface-hover)}.app-sidebar{width:260px;background:var(--color-surface);border-right:1px solid var(--color-border-subtle);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:50;padding:1.5rem;transition:transform .3s ease}.sidebar-header{margin-bottom:2rem;display:flex;align-items:center;gap:.75rem}.sidebar-brand{font-size:1.5rem;font-weight:700;color:var(--color-accent);display:flex;align-items:center;gap:.5rem;text-decoration:none}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-lg);color:var(--color-text-muted);text-decoration:none;font-weight:500;transition:all .2s ease}.nav-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.nav-item.active{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-soft)}.sidebar-footer{margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--color-border-subtle);display:flex;flex-direction:column;gap:1rem}.user-profile{display:flex;align-items:center;gap:.75rem}.user-avatar{width:40px;height:40px;background:var(--color-accent-soft);color:var(--color-accent);border-radius:50%;display:grid;place-items:center;font-weight:600}.user-info{display:flex;flex-direction:column;font-size:.875rem}.user-info strong{color:var(--color-text)}.user-info span{color:var(--color-text-muted);font-size:.75rem}.app-main{flex:1;margin-left:260px;padding:2rem;min-height:100vh;width:calc(100% - 260px)}.app-bottom-nav,.mobile-header,.fab-container{display:none}@media (max-width: 768px){.app-shell{flex-direction:column}.app-sidebar{display:none}.app-main{margin-left:0;width:100%;padding:1rem 1rem 10rem}.mobile-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle);position:sticky;top:0;z-index:40}.mobile-brand{font-size:1.25rem;font-weight:700;color:var(--color-accent);display:flex;align-items:center;gap:.5rem}.app-bottom-nav{display:flex;justify-content:space-between;align-items:center;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border-subtle);padding:.5rem .25rem;z-index:50;box-shadow:0 -4px 12px #0000000d}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;text-decoration:none;color:var(--color-text-muted);font-size:.65rem;font-weight:500;flex:1;min-width:0;padding:.25rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottom-nav-item.active{color:var(--color-accent)}.nav-icon{font-size:1.25rem}.fab-container{display:block;position:fixed;bottom:5rem;right:1.5rem;z-index:45}.fab-button{width:56px;height:56px;border-radius:50%;background:var(--color-accent);color:#fff;border:none;box-shadow:var(--shadow-hover);display:grid;place-items:center;font-size:1.5rem;cursor:pointer;transition:transform .2s}.fab-button:active{transform:scale(.95)}}.loader{display:inline-flex;align-items:center;gap:.75rem;color:var(--color-text-muted);font-weight:500}.spinner{width:1.25rem;height:1.25rem;border-radius:50%;border:3px solid rgba(45,108,223,.2);border-top-color:var(--color-accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--primary-color: #4f46e5;--secondary-color: #818cf8;--accent-color: #f59e0b;--text-color: #1f2937;--bg-color: #f9fafb;--card-bg: #ffffff;--section-bg: #f3f4f6;--footer-bg: #111827;--footer-text: #d1d5db;--nav-bg: #ffffff;--shadow-color: rgba(0, 0, 0, .1)}[data-theme=dark]{--primary-color: #818cf8;--secondary-color: #c7d2fe;--accent-color: #fbbf24;--text-color: #ffffff;--bg-color: #0f172a;--card-bg: #1e293b;--section-bg: #334155;--footer-bg: #020617;--footer-text: #e2e8f0;--nav-bg: #1e293b;--shadow-color: rgba(0, 0, 0, .7)}html,body{margin:0;padding:0;width:100%;height:100%}.landing-page-body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-color);color:var(--text-color);transition:background-color .3s,color .3s;min-height:100vh;width:100%;display:flex;flex-direction:column}.page-content{flex:1;display:flex;flex-direction:column}.landing-nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--nav-bg);box-shadow:0 4px 6px -1px var(--shadow-color);position:sticky;top:0;z-index:50;transition:background-color .3s}.landing-nav .nav-right{display:flex;align-items:center;gap:1rem}.landing-nav .logo{font-size:1.5rem;font-weight:800;background:linear-gradient(to right,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:flex;align-items:center;gap:.5rem}.landing-nav .login-btn{background-color:var(--primary-color);color:#fff;padding:.5rem 1.5rem;border-radius:9999px;text-decoration:none;font-weight:600;transition:all .2s}.landing-nav .login-btn:hover{filter:brightness(110%);transform:translateY(-2px);box-shadow:0 4px 6px -1px #4f46e54d}.desktop-menu{display:flex;align-items:center;gap:2rem}.nav-link{background:none;border:none;cursor:pointer;font-size:1rem;font-weight:600;color:var(--text-color);transition:color .2s;padding:.5rem}.nav-link:hover{color:var(--primary-color)}.nav-item-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:50%;transform:translate(-50%) translateY(10px);background:var(--card-bg);border-radius:.75rem;box-shadow:0 10px 15px -3px var(--shadow-color),0 4px 6px -2px var(--shadow-color);padding:.5rem 0;min-width:220px;opacity:0;visibility:hidden;transition:all .2s ease;z-index:100;border:1px solid var(--section-bg)}.nav-item-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.dropdown-item{display:block;width:100%;text-align:left;background:none;border:none;padding:.75rem 1.5rem;color:var(--text-color);font-size:.95rem;cursor:pointer;transition:background-color .2s;white-space:nowrap;font-family:inherit}.dropdown-item:hover{background-color:var(--section-bg);color:var(--primary-color)}.mobile-menu-btn{display:none;background:none;border:none;font-size:1.5rem;color:var(--text-color);cursor:pointer;z-index:60}.mobile-menu-overlay{position:fixed;inset:0;background-color:var(--bg-color);z-index:55;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:2rem}.mobile-nav-link{background:none;border:none;font-size:1.5rem;font-weight:700;color:var(--text-color);cursor:pointer}.theme-toggle,.lang-toggle{background:none;border:none;cursor:pointer;font-size:1.2rem;color:var(--text-color);padding:.5rem;border-radius:50%;transition:background-color .2s}.theme-toggle:hover,.lang-toggle:hover{background-color:var(--section-bg)}@media (max-width: 900px){.desktop-menu{display:none}.mobile-menu-btn{display:block}.landing-nav .login-btn{display:none}}.hero{position:relative;display:flex;align-items:center;justify-content:center;padding:5rem 2rem;text-align:center;background:linear-gradient(135deg,var(--bg-color) 0%,var(--section-bg) 100%);overflow:hidden;min-height:60vh}.hero-content{z-index:10;max-width:800px}.hero h1{font-size:clamp(2.5rem,5vw,4rem);font-weight:900;margin-bottom:1.5rem;line-height:1.2;color:var(--text-color)}.hero p{font-size:1.25rem;color:var(--text-color);opacity:.9;margin-bottom:2.5rem;max-width:600px;margin-left:auto;margin-right:auto}.cta-button{background-color:var(--accent-color);color:#fff;padding:1rem 2rem;border-radius:.5rem;text-decoration:none;font-weight:700;font-size:1.1rem;transition:transform .2s;display:inline-block}.cta-button:hover{transform:scale(1.05);filter:brightness(110%)}.services{padding:5rem 2rem;background-color:var(--card-bg);transition:background-color .3s}.section-title{text-align:center;font-size:2.5rem;font-weight:800;margin-bottom:3rem;color:var(--text-color)}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1200px;margin:0 auto}.service-card{background:var(--bg-color);border-radius:1rem;padding:2rem;box-shadow:0 10px 15px -3px var(--shadow-color);transition:transform .3s ease,border-color .3s;border:1px solid var(--section-bg);text-align:center}.service-card:hover{transform:translateY(-5px);border-color:var(--secondary-color)}.service-icon{font-size:3rem;margin-bottom:1rem;display:inline-block}.service-card h3{font-size:1.5rem;margin-bottom:1rem;color:var(--text-color)}.service-card p{color:var(--text-color);opacity:.8}.faq-section{padding:5rem 2rem;background-color:var(--card-bg)}.faq-container{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:3rem}.faq-category h2{text-align:center;color:var(--primary-color);margin-bottom:1.5rem;font-size:1.8rem}.faq-item{background:var(--bg-color);border-radius:.75rem;border:1px solid var(--section-bg);margin-bottom:1rem;overflow:hidden;transition:all .3s ease;box-shadow:0 1px 2px #0000000d}.faq-item:hover{border-color:var(--secondary-color);box-shadow:0 4px 6px -1px var(--shadow-color)}.faq-question{padding:1.5rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.faq-question h3{margin:0;font-size:1.1rem;color:var(--text-color);font-weight:600}.faq-icon{font-size:.9rem;color:var(--secondary-color);transition:transform .3s ease}.faq-item.open .faq-icon{transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease-out,opacity .3s ease-out;opacity:0;background-color:var(--section-bg)}.faq-item.open .faq-answer{max-height:500px;opacity:1}.faq-answer p{padding:1.5rem;margin:0;color:var(--text-color);opacity:.9;line-height:1.6;border-top:1px solid rgba(0,0,0,.05)}.info-section{padding:5rem 2rem;background-color:var(--section-bg);transition:background-color .3s}.info-container{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:3rem}@media (min-width: 768px){.info-container{flex-direction:row;align-items:center}}.info-text{flex:1}.info-text p{color:var(--text-color);opacity:.9}.info-image{flex:1;border-radius:1rem;overflow:hidden;box-shadow:0 20px 25px -5px var(--shadow-color)}.info-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.info-image:hover img{transform:scale(1.05)}.gallery-section{padding:5rem 2rem;background-color:var(--bg-color)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto}.gallery-item{border-radius:1rem;overflow:hidden;height:250px;box-shadow:0 4px 6px -1px var(--shadow-color)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-item:hover img{transform:scale(1.1)}.contact-section{padding:5rem 2rem;background-color:var(--section-bg)}.contact-container{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:3rem}@media (min-width: 768px){.contact-container{flex-direction:row}}.contact-info{flex:1;background:var(--card-bg);padding:2rem;border-radius:1rem;box-shadow:0 4px 6px -1px var(--shadow-color)}.contact-info h3{font-size:1.5rem;margin-bottom:1.5rem;color:var(--primary-color)}.contact-info p{color:var(--text-color);margin-bottom:.5rem}.map-container{flex:1;border-radius:1rem;overflow:hidden;min-height:400px;box-shadow:0 4px 6px -1px var(--shadow-color)}.map-container iframe{width:100%;height:100%;border:0}.footer{background-color:var(--footer-bg);color:var(--footer-text);padding:4rem 2rem 1rem}.footer-content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:3rem;margin-bottom:3rem}.footer-col h4{color:#fff;font-size:1.25rem;margin-bottom:1.5rem}.footer-col p{line-height:1.6}.footer-bottom{text-align:center;padding-top:2rem;border-top:1px solid rgba(255,255,255,.1);font-size:.875rem}.footer-bottom a{color:var(--secondary-color);text-decoration:none}.footer-bottom a:hover{text-decoration:underline}@media (max-width: 640px){.hero h1{font-size:2.25rem}.landing-nav{padding:1rem}.services-grid,.gallery-grid{grid-template-columns:1fr}.info-container,.contact-container{flex-direction:column}.map-container{min-height:300px;width:100%}.map-container iframe{height:300px}.faq-section{padding:3rem 1rem}.faq-container{gap:2rem}.faq-category h2{font-size:1.5rem;margin-bottom:1rem}.faq-question{padding:1rem}.faq-question h3{font-size:1rem}.faq-answer p{padding:1rem}}.feedback{padding:1rem;border-radius:var(--radius-md);display:flex;align-items:center;gap:.75rem;font-size:.95rem}.empty-state{flex-direction:column;text-align:center;padding:2.5rem;background:var(--color-background);border:2px dashed var(--color-border);color:var(--color-text-muted)}.feedback-icon{font-size:2rem;margin-bottom:.5rem}.empty-state h3{margin:.5rem 0 .25rem;color:var(--color-text)}.feedback-actions{margin-top:1.5rem}.error-banner{background:var(--color-danger-soft);color:#c53030;border:1px solid rgba(197,48,48,.1)}.success-banner{background:var(--color-success-soft);color:#276749;border:1px solid rgba(39,103,73,.1)}.skeleton{background-color:var(--color-border-subtle);border-radius:var(--radius-sm);display:inline-block;line-height:1;width:100%;animation:shimmer 1.5s infinite linear;background-image:linear-gradient(90deg,var(--color-border-subtle) 0px,var(--color-surface) 50%,var(--color-border-subtle) 100%);background-size:200px 100%}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-text{height:1em;margin-bottom:.5em;border-radius:var(--radius-sm)}.skeleton-circle{border-radius:50%}.skeleton-rect{display:block}.auth-layout{display:flex;align-items:center;justify-content:center;width:100%;padding:3rem 1.5rem 4rem;background:radial-gradient(circle at top,#f0f4ff,#f6f8fb 55%);position:relative;min-height:100vh;overflow:hidden}.auth-layout:after{content:"";position:absolute;inset:-40%;background:conic-gradient(from 90deg at 50% 50%,rgba(94,168,255,.25),transparent 55%);animation:aurora 12s linear infinite;pointer-events:none}.auth-card{width:min(420px,100%);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2.5rem 2.75rem;display:grid;gap:1.5rem;transform:translateY(16px);opacity:0;animation:floatIn .7s ease forwards}.auth-header h1{margin:.75rem 0 .5rem;font-size:1.9rem}.auth-header p{margin:0}.auth-form{display:grid;gap:1rem}.auth-form label{font-weight:600}.auth-form input{width:100%}.auth-card a{color:var(--color-accent);font-weight:600}button,.auth-form input{transition:transform .2s ease,box-shadow .2s ease}button:hover:not(:disabled),.auth-form input:focus-visible{transform:translateY(-2px);box-shadow:0 12px 24px #2d6cdf2e}@media (max-width: 768px){.auth-layout{align-items:flex-start;padding:2.5rem 1.25rem 3rem}.auth-card{margin-top:1.5rem}}@media (max-width: 480px){.auth-card{padding:1.75rem 1.5rem;gap:1.25rem}}@keyframes floatIn{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes aurora{0%{transform:rotate(0);opacity:.35}50%{opacity:.2}to{transform:rotate(360deg);opacity:.35}}.appointment-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden}.appointment-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--color-accent)}.appointment-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--color-border);transition:background .2s}.appointment-card:hover:before{background:var(--color-accent)}.appt-time{font-size:.875rem;color:var(--color-text-muted);font-weight:500;display:flex;align-items:center;gap:.5rem}.appt-meta strong{color:var(--color-text);font-size:1rem;font-weight:600}.appt-meta span{font-size:.875rem;color:var(--color-text-muted)}.appt-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.appt-tag{font-size:.75rem;padding:.15rem .5rem;border-radius:var(--radius-full);background:var(--color-surface-hover);color:var(--color-text-secondary);border:1px solid transparent}.appt-tag.warning{background:#fff7ed;color:#c2410c;border-color:#ffedd5}.appointment-card .action-menu-trigger{position:absolute;top:.5rem;right:.5rem;opacity:0;transition:opacity .2s}.appointment-card:hover .action-menu-trigger{opacity:1}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem}.page-header h1{margin:0;font-size:2rem}.stats-card{background:linear-gradient(135deg,#2d6cdf1a,#2d6cdf00)}.stats-grid{display:grid;gap:1rem}.stat-tile{background:var(--color-surface);border-radius:var(--radius-md);padding:1.25rem;border:1px solid rgba(45,108,223,.08);display:grid;gap:.35rem}.stat-label{font-size:.95rem;color:var(--color-text-muted)}.stat-value{font-size:2rem;font-weight:700}.stat-hint{font-size:.9rem}.appointments-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.appointments-list li{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:1rem;padding:1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface)}.appt-time{font-weight:600}.appt-meta{display:flex;flex-direction:column;gap:.25rem}.tag{padding:.25rem .6rem;border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-accent);font-size:.8rem;font-weight:600}.tag.warning{background:#fff2d9;color:#ad5c01}.reminders-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.reminder-card{border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:1rem;display:grid;gap:.5rem}.reminder-header{display:flex;align-items:center;justify-content:space-between}.reminder-tags{display:flex;gap:.5rem;flex-wrap:wrap}@media (max-width: 768px){.appointments-list li{grid-template-columns:1fr;text-align:left}}.modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}.modal-container{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-hover),0 0 0 1px #0000000d;width:100%;max-width:600px;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;animation:slideUp .35s cubic-bezier(.16,1,.3,1);border:1px solid var(--color-background)}.modal-header{padding:1.5rem 2rem;border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--color-surface);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.modal-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.01em}.modal-close{background:var(--color-background);border:1px solid transparent;font-size:1.5rem;line-height:1;color:var(--color-text-muted);cursor:pointer;padding:0;border-radius:50%;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;width:36px;height:36px}.modal-close:hover{background:var(--color-danger-soft);color:var(--color-danger);border-color:#e53e3e1a}.modal-content{padding:2rem;overflow-y:auto;flex:1;min-height:0}.modal-footer{padding:1.5rem 2rem;border-top:1px solid var(--color-border-subtle);display:flex;justify-content:flex-end;gap:1rem;background:var(--color-background);border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);flex-shrink:0}@keyframes fadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@keyframes slideUp{0%{transform:translateY(24px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media (max-width: 640px){.modal-container{max-height:100vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;align-self:flex-end;margin:0 -1rem -1rem;width:calc(100% + 2rem);animation:slideUpMobile .3s cubic-bezier(.16,1,.3,1)}.modal-content{padding:1.5rem}.modal-footer{padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.owners-page .search-bar{display:flex;gap:1rem}.search-bar input{flex:1}.owners-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.owner-card{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;transition:transform .15s ease,box-shadow .2s ease}.owner-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.owner-initials{width:48px;height:48px;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent);display:flex;align-items:center;justify-content:center;font-weight:700}.owner-details{flex:1;display:grid;gap:.25rem;text-align:left}.owner-pets{display:flex;gap:.4rem;flex-wrap:wrap}.pet-tag{font-weight:600}.pet-tag.male{background:#2d6cdf26;color:#2456bf}.pet-tag.female{background:#e74c992e;color:#d93d8d}@media (max-width: 640px){.owners-page .search-bar{flex-direction:column}}.owner-form-grid{display:flex;flex-direction:column;gap:1rem}.pet-quick-actions{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.pet-quick-actions h4{margin:0;font-size:1.05rem;font-weight:600}.pet-quick-actions__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.pet-quick-actions__button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border-light, rgba(148, 163, 184, .25));background:#2563eb14;color:var(--color-accent);font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease}.pet-quick-actions__button:hover,.pet-quick-actions__button:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-md)}.pet-quick-actions__button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.pet-quick-actions__button span{font-size:1.2rem}@media (max-width: 768px){.pet-quick-actions__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.pet-timeline{display:flex;flex-direction:column;gap:1rem}.pet-timeline__title{margin:0;font-size:1.1rem;font-weight:600}.pet-timeline__list{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem;position:relative}.pet-timeline__group{display:grid;gap:1rem;margin-bottom:2.5rem}.pet-timeline__group:last-of-type{margin-bottom:0}.pet-timeline__group-title{margin:0;font-size:1rem;font-weight:700;color:var(--color-text);display:inline-flex;align-items:center;gap:.5rem}.pet-timeline__item{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:flex-start;position:relative}.pet-timeline__item:before{content:"";position:absolute;left:.7rem;top:1.8rem;bottom:-1.5rem;width:2px;background:var(--color-border-light, rgba(148, 163, 184, .3))}.pet-timeline__item:last-child:before{display:none}.pet-timeline__marker{width:1.4rem;height:1.4rem;border-radius:999px;background:var(--color-surface-elevated, #fff);box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;z-index:1}.pet-timeline__content{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.75rem}.pet-timeline__time{font-size:.85rem;color:var(--color-text-muted)}.pet-timeline__heading{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.pet-timeline__heading strong{font-size:1rem;font-weight:600}.pet-timeline__tag{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .55rem;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent);font-size:.75rem;font-weight:600}.pet-timeline__description{margin:0;color:var(--color-text-muted);font-size:.95rem;line-height:1.4}.pet-timeline__metrics{display:flex;flex-wrap:wrap;gap:.5rem}.pet-timeline__metric{background:#2563eb1f;color:var(--color-accent);border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:600}.pet-timeline__attachment{font-size:.85rem;color:var(--color-accent);font-weight:500}.pet-timeline__actions{display:inline-flex;flex-wrap:wrap;gap:.5rem}.pet-timeline__action{border:1px solid var(--color-border-light, rgba(148, 163, 184, .4));background:transparent;color:var(--color-accent);font-weight:600;font-size:.82rem;padding:.35rem .75rem;border-radius:999px;cursor:pointer;transition:background .2s ease,color .2s ease}.pet-timeline__action:hover,.pet-timeline__action:focus-visible{background:var(--color-accent-soft)}.pet-timeline__action:disabled{opacity:.5;cursor:not-allowed}.pet-timeline__action--danger{color:var(--color-danger);border-color:#dc262659}@media (max-width: 768px){.pet-timeline__item{grid-template-columns:auto 1fr}.pet-timeline__content{padding:.9rem 1rem}}.pet-weight-card{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.pet-weight-card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.pet-weight-card__header h4{margin:0;font-size:1.1rem;font-weight:600}.pet-weight-card__badge{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.2rem;margin-top:.25rem;padding:.35rem .7rem;border-radius:.75rem;font-size:.85rem;font-weight:600}.pet-weight-card__badge-note{font-size:.75rem;font-weight:500}.pet-weight-card__badge--stable{background:#0596691f;color:#047857}.pet-weight-card__badge--warning{background:#ef44441f;color:#b91c1c}.pet-weight-card__chart{width:100%;min-height:220px}.pet-weight-card .button.secondary{white-space:nowrap}@media (max-width: 768px){.pet-weight-card{padding:1rem}.pet-weight-card__header{flex-direction:column;align-items:flex-start}.pet-weight-card .button.secondary{width:100%}}.pet-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;transition:box-shadow .2s ease,transform .2s ease;border:1px solid var(--color-border-subtle)}.pet-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.pet-header{display:flex;justify-content:space-between;align-items:flex-start}.pet-header-title{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.pet-header-title h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.pet-gender-chip{font-size:.875rem;padding:.25rem .5rem;border-radius:var(--radius-full);background:var(--color-surface-hover);color:var(--color-text-secondary);line-height:1}.pet-gender-chip.male{color:#2563eb;background:#eff6ff}.pet-gender-chip.female{color:#db2777;background:#fdf2f8}.pet-header-actions{display:flex;gap:.5rem}.action-menu-trigger{background:transparent;border:none;padding:.5rem;cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-full);transition:background .2s}.action-menu-trigger:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.pet-analytics-grid{display:grid;gap:1rem}.pet-records{border-top:1px solid var(--color-border-subtle);padding-top:1.5rem}.records-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.records-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--color-text-secondary)}.pet-form-content{display:flex;flex-direction:column;gap:1.5rem}.pet-type-name{font-size:.9rem}.visit-form-grid{display:flex;flex-direction:column;gap:1.25rem}.visit-form-grid textarea{min-height:100px;resize:vertical}.record-form-content{display:flex;flex-direction:column;gap:1.5rem}.record-form-content .grid.two{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:500;color:var(--color-text-secondary);margin-left:.25rem}.record-form-content input[type=text],.record-form-content input[type=number],.record-form-content input[type=date],.record-form-content select,.record-form-content textarea{width:100%;padding:.75rem 1rem;font-size:1rem;line-height:1.5;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;appearance:none}.record-form-content input:hover,.record-form-content select:hover,.record-form-content textarea:hover{border-color:var(--color-text-muted)}.record-form-content input:focus,.record-form-content select:focus,.record-form-content textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.record-form-content textarea{resize:vertical;min-height:120px}.record-form-content .metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.record-form-content .file-input{border:2px dashed var(--color-border);padding:2rem;border-radius:var(--radius-lg);cursor:pointer;background:var(--color-background);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5rem;transition:all var(--transition-normal);color:var(--color-text-secondary)}.record-form-content .file-input:hover{background:var(--color-surface-hover);border-color:var(--color-accent);color:var(--color-accent)}.record-feedback{padding:1rem;border-radius:var(--radius-md);font-size:.95rem;display:flex;align-items:center;gap:.5rem;animation:fadeIn .3s ease-out}.record-feedback.error{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid rgba(229,62,62,.2)}.record-feedback.success{background:var(--color-success-soft);color:var(--color-success);border:1px solid rgba(56,161,105,.2)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.owner-info-card{margin-bottom:1.5rem}.owner-info-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.owner-info-grid div{display:grid;gap:.3rem}.owner-info-grid dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0}.owner-info-grid dd{margin:0;font-weight:600;color:var(--color-text)}.owner-form{display:grid;gap:1rem}.owner-form-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.owner-detail .owner-contact{display:flex;gap:.75rem;flex-wrap:wrap}.pet-edit-form{margin:1rem 0 1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;background:#2d6cdf0d;display:grid;gap:1rem}.pet-edit-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.pet-edit-feedback{padding:.6rem .8rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:600}.pet-edit-feedback.error{background:#d6454526;color:#d64545}.pet-edit-feedback.success{background:#2d8a5f26;color:#2d8a5f}.owner-admin-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}.owner-admin-actions .button{width:auto}@media (max-width: 600px){.owner-admin-actions{width:100%;justify-content:stretch}.owner-admin-actions .button{width:100%;font-size:.9rem}}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.pet-form,.visit-form{margin-bottom:1.5rem;display:grid;gap:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;background:#f9fbff}.pet-type-field{border:none;padding:0;margin:0;display:grid;gap:.65rem}.pet-type-field legend{font-weight:600;margin-bottom:.25rem}.pet-type-selector{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.pet-type-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;padding:.75rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;font-weight:600;color:var(--color-text);cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.pet-type-card .pet-type-icon{font-size:1.6rem;line-height:1}.pet-type-card:hover{border-color:var(--color-accent);box-shadow:0 12px 24px #2d6cdf1f;transform:translateY(-2px)}.pet-type-card.active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent);box-shadow:0 14px 28px #2d6cdf2e}.pet-type-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.pet-type-name,.pet-type-placeholder{font-size:.9rem}.pet-type-error{font-size:.85rem;color:var(--color-danger)}.pet-gender-field{border:none;padding:0;margin:0;display:grid;gap:.5rem}.pet-gender-hint{font-size:.8rem;color:var(--color-text-muted);margin:0}.pet-gender-selector{display:flex;gap:.75rem;flex-wrap:wrap}.pet-gender-toggle{border:1px solid var(--color-border);border-radius:var(--radius-pill, 999px);background:#fff;color:var(--color-text);padding:.45rem .9rem;font-weight:600;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.pet-gender-toggle .pet-gender-icon{font-size:1.1rem}.pet-gender-toggle:hover{border-color:var(--color-accent);box-shadow:0 10px 22px #2d6cdf24;transform:translateY(-1px)}.pet-gender-toggle.active{background:linear-gradient(135deg,#2d6cdf26,#6dc0ff40);color:var(--color-accent);border-color:#2d6cdf59;box-shadow:0 12px 26px #2d6cdf33}.pet-gender-toggle.active.female{background:linear-gradient(135deg,#e74c992e,#ffb6c142);color:#d93d8d;border-color:#e74c9973;box-shadow:0 12px 26px #e74c9940}.pet-gender-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.pet-gender-error{font-size:.85rem;color:var(--color-danger)}.pet-header-title{display:flex;align-items:center;gap:.5rem}.pet-header-title h3{margin:0}.pet-gender-chip{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:999px;font-size:1.05rem;border:1px solid transparent}.pet-gender-chip.male{background:#2d6cdf33;color:#2456bf;border-color:#2d6cdf66}.pet-gender-chip.female{background:#e74c9938;color:#d93d8d;border-color:#e74c9973}.records-header{display:flex;justify-content:space-between;align-items:center}.pet-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.pet-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;display:grid;gap:1rem;background:var(--color-surface)}.pet-header{display:flex;align-items:center;justify-content:space-between}.pet-header-actions{display:flex;gap:.5rem;align-items:center}.record-form{display:grid;gap:.75rem;margin-bottom:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;background:#2d6cdf0d}.record-form textarea{min-height:70px;resize:vertical}.record-actions{display:flex;justify-content:flex-end}.record-feedback{padding:.6rem .8rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:600}.record-feedback.success{background:#2d8a5f26;color:#2d8a5f}.record-feedback.error{background:#d6454526;color:#d64545}.pet-analytics-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.record-group .record-metrics{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.8rem;color:var(--color-text-muted)}.record-group .record-metrics span{background:#2d6cdf1a;border-radius:var(--radius-full);padding:.15rem .5rem}.record-group .tag{justify-self:flex-start}.record-item-actions{display:flex;gap:.5rem;flex-wrap:wrap}@media (max-width: 768px){.section-heading{flex-direction:column;align-items:flex-start;gap:.75rem}.pet-card{padding:1rem}}@media (max-width: 640px){.pet-grid{grid-template-columns:1fr}.pet-header{flex-direction:column;align-items:flex-start;gap:.75rem}.pet-analytics-grid{grid-template-columns:1fr}}.record-preview-backdrop{position:fixed;inset:0;background:#06080fc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:30}.record-preview-dialog{width:min(900px,100%);background:var(--color-surface);border-radius:var(--radius-xl);padding:1.5rem;display:grid;gap:1rem;max-height:calc(100vh - 4rem)}.record-preview-dialog header,.record-preview-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:1rem}.record-preview-details{display:grid;gap:.75rem;font-size:.95rem}.record-preview-details p{margin:0}.preview-body{background:#ffffff0a;border-radius:var(--radius-lg);overflow:hidden;display:grid;place-items:center;min-height:420px}.preview-body img,.preview-body iframe{width:100%;height:100%;object-fit:contain;border:none;background:#11131c}.prescription-modal-backdrop{position:fixed;inset:0;background:#080c18a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:50}.prescription-modal{width:min(960px,100%);background:#f6f8fb;border-radius:28px;box-shadow:0 28px 45px #11182759;padding:2rem 2.5rem;display:grid;gap:1.5rem;color:#1f2a44;max-height:calc(100vh - 4rem);overflow-y:auto}.prescription-modal-controls{display:flex;justify-content:flex-end;gap:.75rem}.prescription-preview{background:#fff;border-radius:24px;padding:1.75rem 2rem;display:grid;gap:1.5rem;box-shadow:inset 0 0 0 1px #2d6cdf14}.prescription-header{display:grid;grid-template-columns:120px 1fr 160px;gap:1.5rem;align-items:center}.prescription-header img{width:100%;max-width:120px}.prescription-header h1{margin:0;font-size:1.5rem;font-weight:700}.prescription-header p{margin:.25rem 0}.meta-column{display:grid;gap:.5rem;justify-items:end;font-size:.95rem}.meta-column strong{display:block}.prescription-info{background:#2d6cdf14;border-radius:18px;padding:1rem 1.25rem;display:grid;gap:.35rem;font-size:1rem}.prescription-body{display:grid;gap:1.25rem}.editable-fields{display:grid;gap:1rem}.editable-fields textarea{min-height:80px;resize:vertical}.editable-fields input,.editable-fields textarea{border-radius:10px;border:1px solid #d7deea;padding:.65rem .75rem;font-size:.95rem;background:#fff}.grid.three{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.prescription-summary{border-radius:18px;border:1px dashed rgba(45,108,223,.28);background:#5ea8ff14;padding:1rem 1.25rem}.prescription-summary h3{margin:0 0 .75rem;font-size:1.05rem}.prescription-summary ul{margin:0;padding:0;display:grid;gap:.5rem;list-style:none}.prescription-summary li{display:flex;flex-direction:column;gap:.15rem}.prescription-summary li strong{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#475569}.prescription-summary li span{font-size:.95rem;font-weight:600}.prescription-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.signature-block{display:grid;gap:.2rem;justify-items:center;font-size:.95rem}.print-hint{color:#5c6b87;font-size:.85rem}.print-only{display:none}.screen-only{display:block}@media (max-width: 768px){.prescription-modal{padding:1.5rem;border-radius:24px}.prescription-preview{padding:1.25rem}.prescription-header{grid-template-columns:1fr;justify-items:center;text-align:center}.meta-column{justify-items:center}}@media print{@page{margin:12mm}body{margin:0;background:#fff;font-size:11pt;line-height:1.35}body>*{display:none!important}body>.prescription-modal-backdrop{display:flex!important}.prescription-modal-backdrop{position:static;inset:auto;padding:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;justify-content:center}.prescription-modal{position:static;inset:auto;box-shadow:none;border-radius:0;background:#fff;padding:10mm 12mm;max-height:none;overflow:visible;width:100%;max-width:190mm}.prescription-modal-controls{display:none!important}.prescription-preview{padding:0;gap:1rem;box-shadow:none}.prescription-preview>*{page-break-inside:avoid}.prescription-header{grid-template-columns:90px 1fr 150px;gap:1rem}.prescription-header img{max-width:90px}.prescription-info{padding:.75rem 1rem;font-size:inherit}.prescription-summary{padding:.75rem 1rem}.prescription-summary ul{padding-left:1rem}.prescription-footer{align-items:center}.screen-only{display:none!important}.print-only{display:block!important}}.drawer-backdrop{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;animation:fadeIn .2s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.appointment-drawer{position:fixed;top:0;right:0;bottom:0;width:500px;max-width:100vw;background:var(--color-surface);box-shadow:-10px 0 30px #0000001a;padding:0;z-index:100;display:flex;flex-direction:column;animation:slideInRight .3s cubic-bezier(.16,1,.3,1)}.drawer-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--color-border-subtle);margin-bottom:0;background:var(--color-surface);position:sticky;top:0;z-index:10}.drawer-form{padding:1.5rem;overflow-y:auto;flex:1;margin-bottom:0}.drawer-form textarea{min-height:80px}.drawer-form .notes-field textarea{min-height:120px}.drawer-form input,.drawer-form select,.drawer-form textarea,.owner-select-trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.65rem .85rem;font-size:.95rem;transition:all .2s;background:var(--color-surface-elevated)}.drawer-form input:focus,.drawer-form select:focus,.drawer-form textarea:focus,.owner-select-trigger:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}@media (max-width: 600px){.appointment-drawer{top:auto;bottom:0;left:0;width:100%;height:90vh;max-height:90vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.drawer-header{border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:1.25rem 1rem}.drawer-form{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,20px))}.drawer-actions{width:100%;justify-content:stretch}.drawer-actions .button{flex:1}}.drawer-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}.drawer-header h2{margin:0}.drawer-title{display:flex;align-items:center;gap:.5rem}.gender-chip{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:999px;font-size:.95rem;border:1px solid transparent;background:#2d6cdf33;color:#2456bf}.gender-chip.female{background:#e74c9938;color:#d93d8d}.drawer-header .muted{margin-top:.35rem}.drawer-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.drawer-form{display:grid;gap:1rem;margin-bottom:2rem}.drawer-form textarea{min-height:90px;resize:vertical}.drawer-form label input,.drawer-form label select,.drawer-form label button.owner-select-trigger{margin-top:.35rem;width:100%}.owner-select{position:relative;width:100%}.owner-select-trigger{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-muted);color:inherit;cursor:pointer}.owner-select-trigger:focus{outline:2px solid var(--color-primary);outline-offset:2px}.owner-select-caret{font-size:.85rem}.owner-select-menu{position:absolute;top:calc(100% + .4rem);left:0;right:0;z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 18px 30px #0000002e;padding:.6rem;display:grid;gap:.5rem}.owner-select-menu input[type=search]{width:100%;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.owner-select-list{max-height:200px;overflow-y:auto;display:grid;gap:.25rem}.owner-select-option{width:100%;text-align:left;padding:.45rem .6rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer}.owner-select-option:hover,.owner-select-option:focus{background:var(--color-surface-muted);border-color:var(--color-border)}.owner-select-empty{padding:.6rem;font-size:.9rem;color:var(--color-text-muted)}.owner-select-clear{justify-self:flex-start;padding:.25rem .6rem;font-size:.85rem;color:var(--color-primary);background:transparent;border:none;cursor:pointer}.owner-select-clear:hover,.owner-select-clear:focus{text-decoration:underline}.drawer-form .notes-field textarea{min-height:180px}.drawer-form .notes-field{display:flex;flex-direction:column}.drawer-section{display:grid;gap:1rem}.drawer-section h3{margin:0}.upload-form{display:grid;gap:1rem;padding:1rem;border-radius:var(--radius-lg);background:#ffffff0a;border:1px dashed rgba(255,255,255,.08)}.upload-form textarea{min-height:60px}.metrics-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metrics-grid input{width:100%}.file-input{display:flex;flex-direction:column;gap:.35rem;font-size:.95rem}.file-input input[type=file]{padding:.65rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#ffffff0a}.record-grid{display:grid;gap:1rem}.record-card{display:grid;gap:.65rem;padding:1rem;border-radius:var(--radius-lg);background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.record-card header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.record-card header .button.text{padding:.25rem .4rem;color:var(--color-primary)}.record-body{display:grid;gap:.35rem;font-size:.9rem}.record-metrics{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.8rem;color:var(--color-text-muted)}.record-metrics span{background:#ffffff14;border-radius:var(--radius-full);padding:.2rem .6rem}.record-card footer{display:flex;justify-content:flex-end}.record-card .file-meta{font-size:.8rem}@media (max-width: 768px){.appointment-drawer{right:.75rem;left:.75rem;width:calc(100% - 1.5rem);max-height:calc(100vh - 2.5rem);top:3rem;padding:1.5rem}.drawer-actions{width:100%;justify-content:flex-start}.drawer-actions .button{flex:1 1 140px}}@media (max-width: 720px){.drawer-actions{flex-wrap:wrap;justify-content:flex-end}.drawer-actions .button{flex:1 1 100%}.drawer-form .grid.two,.drawer-form .grid.three,.upload-form .grid.two{grid-template-columns:1fr}}@media (max-width: 520px){.metrics-grid{grid-template-columns:1fr}.appointment-drawer{inset:.75rem;max-height:none;height:calc(100vh - 1.5rem);width:auto;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom,0px));border-radius:var(--radius-lg)}.drawer-actions .button{flex:1 1 100%}}.appointments-list-container{overflow:hidden}.appointments-table{width:100%;border-collapse:collapse;font-size:.95rem}.appointments-table th{text-align:left;padding:1rem;background:var(--color-background);color:var(--color-text-muted);font-weight:600;border-bottom:2px solid var(--color-border)}.appointments-table td{padding:1rem;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text);vertical-align:middle}.appointments-table tr:hover{background:var(--color-surface-hover)}.appointments-mobile-list{display:none;flex-direction:column;gap:1rem}.status-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:500;background:var(--color-background);color:var(--color-text-muted)}.status-badge.confirmed{background:var(--color-success-soft);color:var(--color-success)}.appointment-actions{display:flex;justify-content:flex-end}@media (max-width: 900px){.appointments-table-wrapper{display:none}.appointments-mobile-list{display:flex}}.appointments-page{position:relative}.calendar-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:center}.auto-sync-hint{margin:0 0 1.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);background:#2563eb14;color:var(--color-text);display:flex;flex-direction:column;gap:.3rem;font-size:.85rem}.auto-sync-hint.active{border:1px solid rgba(37,99,235,.35);box-shadow:0 10px 16px #2563eb14}.auto-sync-meta{font-size:.78rem;color:var(--color-text-muted)}.week-indicator{font-weight:600;min-width:220px;text-align:center}.calendar-card{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.calendar-timeframes{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.calendar-main{min-width:0}.timeframe-chip{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border-radius:var(--radius-md);background:var(--color-accent-soft);border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.timeframe-chip .timeframe-label{font-weight:600}.timeframe-chip .timeframe-range{font-size:.85rem;color:var(--color-text-muted)}.timeframe-chip.active{border-color:var(--color-accent);box-shadow:0 10px 22px #2d6cdf2e;transform:translateY(-2px)}.timeframe-morning{background:#1a73e81f;border-color:#1a73e840}.timeframe-morning .timeframe-label{color:#1a73e8}.timeframe-midday{background:#fbbc0429;border-color:#fbbc044d}.timeframe-midday .timeframe-label{color:#e37400}.timeframe-afternoon{background:#34a85324;border-color:#34a85347}.timeframe-afternoon .timeframe-label{color:#2d8a5f}.timeframe-evening{background:#9334e624;border-color:#9334e647}.timeframe-evening .timeframe-label{color:#8e3edb}.calendar-card .fc{--fc-border-color: rgba(31, 42, 68, .08);--fc-page-bg-color: transparent;--fc-neutral-bg-color: rgba(31, 42, 68, .03);--fc-today-bg-color: rgba(45, 108, 223, .08);--fc-now-indicator-color: #ea4335;background:transparent;color:var(--color-text);--fc-timegrid-axis-width: 96px}.calendar-card .fc-timegrid{position:relative}.weekly-summary{display:grid;gap:1rem;margin-bottom:1.5rem}.weekly-summary__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.weekly-summary__header h2{margin:0;font-size:1.15rem}.weekly-summary__count{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-accent-soft);color:var(--color-accent);border-radius:var(--radius-full);padding:.35rem .8rem;font-weight:600}.weekly-summary__strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.weekly-summary__item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.85rem;background:#2563eb0d;display:flex;flex-direction:column;gap:.4rem;text-align:center}.weekly-summary__label{font-size:.85rem;color:var(--color-text-muted)}.weekly-summary__value{font-size:1.35rem;font-weight:700;color:var(--color-accent)}.calendar-card .fc-toolbar.fc-header-toolbar{padding:0 0 .5rem;gap:.75rem;flex-wrap:wrap}.calendar-card .fc-toolbar-title{font-size:1.2rem;font-weight:600}.calendar-card .fc-button{border-radius:var(--radius-full);background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text);padding:.35rem .9rem;text-transform:capitalize}.calendar-card .fc-button:hover,.calendar-card .fc-button:focus-visible{background:var(--color-accent-soft)}.calendar-card .fc-button.fc-button-primary.fc-button-active,.calendar-card .fc-button.fc-button-primary:focus-visible{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.calendar-card .fc-scrollgrid{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);overflow:hidden;box-shadow:inset 0 0 0 1px #fff6}.calendar-card .fc-col-header-cell{background:var(--color-background);font-weight:600;color:var(--color-text)}.calendar-card .fc-col-header-cell-cushion{background:#2d6cdf0f;border-right:1px solid rgba(31,42,68,.1)}.calendar-card .fc-timegrid .fc-timegrid-axis{background:#2d6cdf0f;border-right:1px solid rgba(31,42,68,.12);box-shadow:inset -6px 0 10px #1118270d}.calendar-card .fc-timegrid-axis-cushion{display:flex;align-items:center;justify-content:flex-end;color:var(--color-text-muted);font-weight:600;padding-right:.75rem;font-variant-numeric:tabular-nums}.calendar-card .fc-daygrid-day-number{color:var(--color-text-muted)}.calendar-card .fc-daygrid-day.fc-day-today .fc-daygrid-day-number,.calendar-card .fc-timegrid-col.fc-day-today{color:var(--color-text);background:#2d6cdf14}.calendar-card .fc-timegrid-slot{height:3rem}.calendar-card .fc-timegrid-event-harness{margin-left:.35rem}.calendar-card .fc-timegrid-event{width:calc(100% - .35rem);box-sizing:border-box}.calendar-event{border-radius:10px;padding:.4rem .6rem;display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease;border-left:4px solid #1a73e8;background:#1a73e83d;box-shadow:0 8px 20px #1f2a4426}.calendar-event-content{display:flex;align-items:flex-start;gap:.5rem;width:100%;overflow:hidden}.calendar-event-details{display:flex;flex-direction:column;gap:.2rem;min-width:0}.calendar-event.unsynced{border-left-color:#e37400;background:#fbbc0447}.calendar-event.synced{border-left-color:#1a73e8;background:#1a73e83d}.calendar-event.google{border-left-color:#059669;background:#05966933}.calendar-event.local.unsynced{border-left-color:#e37400;background:#fbbc0447}.calendar-event:hover{transform:translateY(-1px);box-shadow:0 12px 28px #1f2a4433}.calendar-event-pill{width:8px;height:8px;border-radius:50%;margin-top:.25rem;background:#1a73e8;flex-shrink:0}.calendar-event.unsynced .calendar-event-pill{background:#e37400}.calendar-event.google .calendar-event-pill{background:#059669}.calendar-event-content strong{display:block;font-size:.95rem;color:var(--color-text);white-space:normal;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.25}.calendar-event-meta{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.calendar-event-meta-vet{display:block;color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hint-card{margin-top:1.5rem}.appointment-drawer-placeholder{display:none}@media (max-width: 900px){.calendar-card{gap:1.25rem}.calendar-timeframes{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.calendar-controls{flex-direction:column;align-items:center;width:100%}}@media (max-width: 768px){.calendar-card .fc{--fc-timegrid-axis-width: 72px}.calendar-controls{flex-direction:row;flex-wrap:wrap}.calendar-controls .button.secondary{flex:1 1 calc(50% - .5rem)}.week-indicator{width:100%}.weekly-summary__strip{grid-auto-flow:column;grid-auto-columns:minmax(140px,1fr);overflow-x:auto;padding-bottom:.4rem}.weekly-summary__item{min-width:140px}.calendar-card{padding:1rem}.calendar-main{grid-template-columns:1fr}.calendar-times{display:none}}.vets-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.vet-admin-card{margin-bottom:1.75rem}.vet-form{display:grid;gap:1rem}.vet-form .grid.three{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.vet-form-actions{display:flex;gap:.75rem;flex-wrap:wrap}.vet-specialty-field{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;background:#2d6cdf0d}.vet-specialty-grid{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.vet-specialty-option{display:flex;gap:.5rem;align-items:center;font-size:.95rem}.vet-card{display:flex;gap:1rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;background:var(--color-surface)}.vet-avatar{width:48px;height:48px;border-radius:50%;background:var(--color-accent-soft);display:grid;place-items:center;font-size:1.5rem}.vet-details{flex:1}.vet-email{font-size:.85rem;color:var(--color-text-muted);display:block}.vet-specialties{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}.vet-actions{display:flex;gap:.5rem;align-items:center;margin-left:auto}.profile-form{display:grid;gap:1rem;max-width:420px}.integration-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;background:var(--color-surface)}@media (max-width: 640px){.integration-card{flex-direction:column;align-items:flex-start}}.role-controls{display:grid;gap:.75rem}.role-options{display:flex;flex-direction:column;gap:.4rem}.role-option{display:flex;align-items:center;gap:.5rem;font-weight:500}.role-option input{width:auto;margin:0}.role-note{margin:0;font-size:.85rem;color:var(--color-text-muted)}.role-vet-select select{width:100%}.role-error{margin:0;font-size:.85rem;color:var(--color-danger)}
