.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem;background:linear-gradient(135deg,#1e40af,#0891b2,#059669);background-size:200% 200%;animation:gradientFlow 15s ease infinite;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow-y:auto}@keyframes gradientFlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.login-card{background:#fffffffa;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:1.5rem;box-shadow:0 20px 60px #00000026,0 8px 24px #0000001a;width:100%;max-width:440px;overflow:hidden;border:1px solid rgba(255,255,255,.3);position:relative}.login-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(59,130,246,.1),transparent 60%),radial-gradient(circle at bottom left,rgba(5,150,105,.1),transparent 60%);pointer-events:none}.logo-section{display:block;width:100%;height:140px;padding:0;background:linear-gradient(135deg,#1e40af,#0891b2);border-bottom:none;position:relative;overflow:hidden}.logo-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,.1) 100%)}.logo-placeholder{position:relative;width:100%;height:100%;border-radius:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:transparent}.clinic-logo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.login-card:hover .clinic-logo{transform:scale(1.05)}.logo-placeholder>span{position:relative;z-index:2;color:#fff;font-size:2.5rem;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.2)}.logo-placeholder:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000,#00000026);z-index:1}.form-section{padding:2.5rem 2rem;position:relative;z-index:1}.login-title{font-size:1.75rem;font-weight:800;color:#0f172a;margin:0 0 .5rem;text-align:center;letter-spacing:-.02em}.login-subtitle{font-size:.9375rem;color:#64748b;margin:0 0 2rem;text-align:center;font-weight:400}.login-form{width:100%}.input-group{margin-bottom:1.5rem}.input-label{display:block;font-size:.875rem;font-weight:600;color:#334155;margin-bottom:.5rem;letter-spacing:-.01em}.input-field{width:100%;padding:.875rem 1rem;border:2px solid #e2e8f0;border-radius:.75rem;font-size:1rem;background:#fff;color:#0f172a;transition:all .25s cubic-bezier(.4,0,.2,1);box-sizing:border-box;font-family:inherit}.input-field::placeholder{color:#94a3b8}.input-field:hover{border-color:#cbd5e1}.input-field:focus{outline:none;border-color:#1e40af;box-shadow:0 0 0 4px #1e40af1a;background:#fafbfc}.password-input-container{position:relative}.password-input{padding-right:3rem}.password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#64748b;cursor:pointer;padding:.5rem;border-radius:.5rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:0}.password-toggle:focus{outline:none;background:#1e40af0d}.password-toggle svg{display:block}.password-toggle:hover{color:#1e40af;background:#1e40af14;transform:translateY(-50%) scale(1.1)}.password-toggle:active{transform:translateY(-50%) scale(.95)}.submit-button{width:100%;padding:.875rem 1.25rem;background:linear-gradient(135deg,#1e40af,#0891b2);color:#fff;border:none;border-radius:.75rem;font-size:1rem;font-weight:700;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #1e40af40;letter-spacing:-.01em;position:relative;overflow:hidden}.submit-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 100%);opacity:0;transition:opacity .25s ease}.submit-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #1e40af59}.submit-button:hover:before{opacity:1}.submit-button:active{transform:translateY(0);box-shadow:0 2px 8px #1e40af33}.error-message{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:2px solid #fca5a5;color:#991b1b;padding:.875rem 1rem;border-radius:.75rem;font-size:.875rem;margin-bottom:1.5rem;text-align:center;font-weight:500;box-shadow:0 2px 8px #dc26261a}@media (max-width: 768px){.login-container{padding:1rem}.login-card{max-width:100%}.logo-section{height:120px}.form-section{padding:2rem 1.5rem}.login-title{font-size:1.5rem}.login-subtitle{font-size:.875rem}}@media (max-width: 480px){.login-container{padding:.75rem}.login-card{margin:0;border-radius:1.25rem}.logo-section{height:100px}.form-section{padding:1.75rem 1.25rem}.login-title{font-size:1.375rem}.login-subtitle{font-size:.8125rem;margin-bottom:1.5rem}.input-field{padding:.75rem .875rem;font-size:.9375rem}.submit-button{padding:.75rem 1rem;font-size:.9375rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.login-container{animation:none}}@media (prefers-contrast: high){.input-field{border-width:2px}.input-field:focus{border-width:3px}.submit-button{border:2px solid currentColor}}.portal-home{width:100%;max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:center;padding:0 1rem}.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;width:100%}.app-card{background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:1.25rem;box-shadow:0 4px 24px #00000014,0 2px 8px #0000000a;padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3);position:relative;overflow:hidden;min-height:260px}.app-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#1e40af,#0891b2,#059669);background-size:200% 100%;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.4,0,.2,1)}.app-card:hover:before{transform:scaleX(1);animation:gradientShift 2s ease infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.app-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 100%,rgba(59,130,246,.08),transparent 60%);opacity:0;transition:opacity .4s ease;z-index:0;pointer-events:none}.app-card:hover:after{opacity:1}.app-card>*{position:relative;z-index:1}.app-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #0000001f,0 8px 16px #00000014;border-color:#3b82f633}.app-card:active{transform:translateY(-4px) scale(1.01);transition-duration:.15s}.app-card:focus-visible{outline:3px solid rgba(59,130,246,.5);outline-offset:4px;border-color:#3b82f64d}.card-icon{display:grid;place-items:center;width:80px;height:80px;border-radius:1.25rem;background:linear-gradient(135deg,#3b82f61a,#10b9811a);margin-bottom:1.5rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.card-icon:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(135deg,#3b82f6,#10b981);border-radius:inherit;opacity:0;transition:opacity .3s ease;z-index:-1}.app-card:hover .card-icon{transform:scale(1.1) rotate(5deg);background:linear-gradient(135deg,#3b82f626,#10b98126)}.app-card:hover .card-icon:before{opacity:.2}.app-card svg{width:40px;height:40px;color:#1e40af;transition:all .3s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 2px 8px rgba(30,64,175,.2))}.app-card:hover svg{color:#059669;transform:scale(1.15);filter:drop-shadow(0 4px 12px rgba(5,150,105,.3))}.app-card h3{font-size:1.25rem;font-weight:700;margin:0 0 .75rem;color:#0f172a;letter-spacing:-.015em;line-height:1.3;transition:color .3s ease}.app-card:hover h3{color:#1e40af}.app-card p{font-size:.9375rem;color:#475569;margin:0;line-height:1.6;transition:color .3s ease}.app-card:hover p{color:#1e293b}.billing-icon{color:#1e40af}.inventory-icon{color:#059669}.admin-icon{color:#0891b2}.maintenance-icon{color:#7c3aed}.prescription-icon{color:#dc2626}@media (max-width: 1200px){.app-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.app-card{min-height:240px}}@media (max-width: 768px){.portal-home{padding:0}.app-grid{grid-template-columns:1fr;gap:1rem}.app-card{min-height:220px;padding:1.75rem 1.25rem}.card-icon{width:72px;height:72px;margin-bottom:1.25rem}.app-card svg{width:36px;height:36px}.app-card h3{font-size:1.125rem}.app-card p{font-size:.875rem}}@media (max-width: 480px){.app-card{min-height:200px;padding:1.5rem 1rem}.card-icon{width:64px;height:64px;margin-bottom:1rem}.app-card svg{width:32px;height:32px}.app-card h3{font-size:1rem}.app-card p{font-size:.8125rem}}@media (prefers-reduced-motion: reduce){.app-card,.app-card svg,.app-card:before,.app-card:after,.card-icon,.card-icon:before{transition:none!important;animation:none!important}.app-card:hover,.app-card:hover .card-icon{transform:none}.app-card:hover svg{transform:none}}@media (prefers-contrast: high){.app-card{border:2px solid currentColor}.app-card:hover{border-color:#1e40af}}:root{--primary-color: #1e40af;--primary-light: #3b82f6;--primary-dark: #1e3a8a;--secondary-color: #0891b2;--secondary-light: #06b6d4;--accent-color: #059669;--accent-light: #10b981;--background-primary: #f8fafc;--background-secondary: #f1f5f9;--surface-color: #ffffff;--surface-elevated: #ffffff;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--text-on-primary: #ffffff;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--gradient-primary: linear-gradient(135deg, #1e40af 0%, #0891b2 100%);--gradient-secondary: linear-gradient(135deg, #059669 0%, #0891b2 100%);--gradient-accent: linear-gradient(135deg, #3b82f6 0%, #10b981 100%);--gradient-mesh: radial-gradient(at 40% 20%, #3b82f6 0px, transparent 50%), radial-gradient(at 80% 0%, #0891b2 0px, transparent 50%), radial-gradient(at 0% 50%, #059669 0px, transparent 50%);--border-light: rgba(148, 163, 184, .2);--border-medium: rgba(148, 163, 184, .3);--blur-sm: blur(8px);--blur-md: blur(12px);--blur-lg: blur(16px);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;margin:0;padding:0;background:var(--background-primary);color:var(--text-primary);line-height:1.6;height:100vh;overflow-x:hidden;overflow-y:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{display:flex;flex-direction:column;min-height:100vh;max-height:100vh;background:var(--gradient-mesh),var(--gradient-primary);background-attachment:fixed;position:relative;overflow-y:auto}.app-container:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(59,130,246,.08) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(8,145,178,.08) 0%,transparent 50%),radial-gradient(circle at 40% 20%,rgba(5,150,105,.06) 0%,transparent 50%);animation:meshMove 20s ease-in-out infinite alternate;z-index:0;pointer-events:none}@keyframes meshMove{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-30px) scale(1.05)}}.app-header{background:#ffffffd9;backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border-bottom:1px solid var(--border-light);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;width:100%;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;transition:all var(--transition-base)}.app-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);opacity:.8}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem;max-width:1400px;margin:0 auto}.app-header h1{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.025em;color:var(--primary-dark);display:flex;align-items:center;gap:.5rem;transition:color var(--transition-base)}.app-header h1:hover{color:var(--primary-color)}.app-header h1 img{width:48px;height:48px;object-fit:contain;transition:transform var(--transition-base)}.app-header h1:hover img{transform:scale(1.05) rotate(2deg)}.logout-button{background:var(--gradient-secondary);border:none;color:var(--text-on-primary);padding:.625rem 1.5rem;border-radius:.5rem;cursor:pointer;font-weight:600;font-size:.875rem;transition:all var(--transition-base);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.logout-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 100%);opacity:0;transition:opacity var(--transition-base)}.logout-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.logout-button:hover:before{opacity:1}.logout-button:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.main-content{flex:1;padding:2rem;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;position:relative;z-index:1;overflow-y:auto}.welcome-section{text-align:center;padding:2rem 1rem 1.5rem;margin-bottom:2rem;max-width:800px;position:relative}.welcome-section:before{content:"";position:absolute;top:-2rem;right:-2rem;bottom:-2rem;left:-2rem;background:radial-gradient(circle at center,rgba(255,255,255,.15) 0%,transparent 70%);z-index:-1;pointer-events:none}.welcome-section h2{margin:0 0 .75rem;font-size:clamp(2rem,4vw,3rem);font-weight:800;color:var(--text-on-primary);text-shadow:0 2px 20px rgba(0,0,0,.15);letter-spacing:-.02em;line-height:1.2}.welcome-section p{font-size:clamp(1rem,2vw,1.25rem);color:#fffffff2;margin:0;font-weight:400;text-shadow:0 1px 3px rgba(0,0,0,.1)}.app-footer{background:#1e293bf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fffc;text-align:center;padding:1.5rem;font-size:.875rem;width:100%;border-top:1px solid rgba(255,255,255,.1);margin-top:auto}.app-footer p{margin:0;font-weight:500}@media (max-width: 1024px){.app-header{padding:1rem 1.5rem}.main-content{padding:2rem 1.5rem}}@media (max-width: 768px){.app-header{padding:1rem}.app-header h1{font-size:1.25rem}.app-header h1 img{width:40px;height:40px}.logout-button{padding:.5rem 1rem;font-size:.8125rem}.main-content{padding:2rem 1rem}.welcome-section{padding:2rem 1rem 1.5rem;margin-bottom:2rem}.welcome-section h2{font-size:clamp(1.75rem,6vw,2rem)}.welcome-section p{font-size:1rem}}@media (max-width: 480px){.header-content{flex-wrap:wrap;gap:.75rem}.app-header h1{font-size:1.125rem}.app-header h1 img{width:36px;height:36px}.logout-button{font-size:.75rem;padding:.5rem .875rem}.welcome-section h2{font-size:1.5rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.app-header,.logout-button,.welcome-section{display:none}.app-container{background:#fff}}
