:root{--primary-color: #4f46e5;--primary-color-dark: #4338ca;--bg-color: #ffffff;--sidebar-bg: #f8fafc;--card-bg: #ffffff;--text-color: #1e293b;--text-secondary: #64748b;--border-color: #e2e8f0;--hover-bg: #f1f5f9;--active-bg: #e0e7ff;--danger-color: #ef4444;--success-color: #22c55e;--warning-color: #f59e0b;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--transition-fast: .15s;--transition-normal: .3s;--transition-slow: .5s}.dark{--primary-color: #6366f1;--primary-color-dark: #4f46e5;--bg-color: #0f172a;--sidebar-bg: #1e293b;--card-bg: #1e293b;--text-color: #f8fafc;--text-secondary: #94a3b8;--border-color: #334155;--hover-bg: #1e293b;--active-bg: #312e81;--danger-color: #f87171;--success-color: #4ade80;--warning-color: #fbbf24}:root{--primary-color: #4F46E5;--primary-color-dark: #4338CA;--primary-color-hover: #4338CA;--background-color: #FFFFFF;--card-bg: #FFFFFF;--text-color: #1F2937;--text-secondary: #6B7280;--border-color: #E5E7EB;--hover-background: #F3F4F6;--active-background: #EEF2FF;--danger-color: #EF4444;--success-color: #22C55E;--warning-color: #F59E0B;--primary-color-rgb: 79, 70, 229;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--transition-fast: .2s ease}[data-theme=dark]{--primary-color: #6366f1;--primary-color-dark: #4f46e5;--bg-color: #0f172a;--sidebar-bg: #1e293b;--card-bg: #1e293b;--text-color: #f8fafc;--text-secondary: #94a3b8;--border-color: #334155;--hover-bg: #1e293b;--active-bg: #312e81;--danger-color: #f87171;--success-color: #4ade80;--warning-color: #fbbf24;--primary-color-rgb: 99, 102, 241;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-fast),color var(--transition-fast)}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md);color:var(--text-color);letter-spacing:-.025em}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{margin-bottom:var(--spacing-md);color:var(--text-secondary);line-height:1.6}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--background-color)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.layout{min-height:100vh;display:flex;flex-direction:column}.layout-header{background-color:var(--bg-color);border-bottom:1px solid var(--border-color);padding:var(--spacing-md) 0;position:sticky;top:0;z-index:1000}.layout-main{flex:1;padding:var(--spacing-xl) 0}.layout-footer{background-color:var(--bg-color);border-top:1px solid var(--border-color);padding:var(--spacing-xl) 0;margin-top:auto}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-color)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-color);color:var(--text-color);transition:all var(--transition-fast);font-size:var(--font-size-md)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #4f46e51a}.form-input:disabled,.form-button:disabled{opacity:.7;cursor:not-allowed}.form-button:disabled:hover{transform:none;box-shadow:none}.error-input{border-color:var(--danger-color)}.error-input:focus{box-shadow:0 0 0 4px #ef44441a}.form-input::placeholder{color:var(--text-secondary);opacity:.7}.form-input:focus::placeholder{opacity:.5}.card{background-color:var(--card-bg);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);transition:all var(--transition-fast);border:1px solid var(--border-color);position:relative}.card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--radius-lg);background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);transform:translate(-100%);transition:transform .6s}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card:hover:before{transform:translate(100%)}.navbar{background-color:var(--bg-color);border-bottom:1px solid var(--border-color);padding:var(--spacing-md) 0;position:sticky;top:0;z-index:1000}.navbar-content{display:flex;justify-content:space-between;align-items:center}.nav-buttons{display:flex;gap:var(--spacing-md)}.nav-link{color:var(--text-color);text-decoration:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-fast);position:relative}.nav-link:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background-color:var(--primary-color);transition:all var(--transition-fast);transform:translate(-50%)}.nav-link:hover{color:var(--primary-color)}.nav-link:hover:after{width:100%}.theme-toggle{background:none;border:none;color:var(--text-color);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast)}.theme-toggle:hover{background-color:var(--hover-bg);transform:scale(1.1)}.footer{background-color:var(--card-bg);padding:var(--spacing-xl) 0;margin-top:var(--spacing-2xl);border-top:1px solid var(--border-color)}.footer-content{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--spacing-xl)}.footer-section{flex:1;min-width:200px}.footer-title{font-size:var(--font-size-lg);color:var(--text-color);margin-bottom:var(--spacing-md)}.footer-links{display:flex;flex-direction:column;gap:var(--spacing-sm)}.footer-link{color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast)}.footer-link:hover{color:var(--primary-color)}.footer-bottom{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);text-align:center}.copyright{color:var(--text-secondary);font-size:var(--font-size-sm)}@media (max-width: 768px){.footer-content{flex-direction:column;gap:var(--spacing-lg)}.footer-section{text-align:center}.footer-links{align-items:center}}@media (max-width: 480px){.footer{padding:var(--spacing-lg) 0}.footer-title{font-size:var(--font-size-md)}.footer-link{font-size:var(--font-size-sm)}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.page-main{padding:var(--spacing-xl) 0;min-height:calc(100vh - 64px)}.grid{display:grid;gap:var(--spacing-md)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.text-right{text-align:right}.text-left{text-align:left}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color);position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-color-dark) 100%);opacity:.1;z-index:0}.auth-container{background-color:var(--card-bg);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;position:relative;z-index:1}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-title{font-size:var(--font-size-3xl);color:var(--text-color);margin-bottom:var(--spacing-sm)}.auth-subtitle{color:var(--text-secondary);font-size:var(--font-size-md)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.auth-form .form-group{margin-bottom:0}.auth-form .form-label{font-size:var(--font-size-sm)}.auth-form .form-input{padding:var(--spacing-md);font-size:var(--font-size-md)}.auth-form .form-input:hover{border-color:var(--primary-color)}.auth-form .form-input:focus{box-shadow:0 0 0 4px #4f46e51a}.auth-form .form-input::placeholder{color:var(--text-secondary)}.auth-form .form-button{margin-top:var(--spacing-md);padding:var(--spacing-md);font-size:var(--font-size-md);font-weight:600}.auth-form .form-button:hover{transform:translateY(-2px)}.auth-form .form-button:active{transform:translateY(0)}.auth-form .form-button:disabled{opacity:.7;cursor:not-allowed}.auth-footer{margin-top:var(--spacing-xl);text-align:center}.auth-footer a{color:var(--primary-color);text-decoration:none;font-weight:500;transition:all var(--transition-fast)}.auth-footer a:hover{color:var(--primary-color-dark);text-decoration:underline}.auth-form .form-input.error{border-color:var(--danger-color)}.auth-form .form-input.error:focus{box-shadow:0 0 0 4px #ef44441a}.auth-form .error-message{color:var(--danger-color);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.auth-form .form-input.success{border-color:var(--success-color)}.auth-form .form-input.success:focus{box-shadow:0 0 0 4px #22c55e1a}@media (max-width: 480px){.auth-page{padding:var(--spacing-md)}.auth-container{padding:var(--spacing-xl)}.auth-title{font-size:var(--font-size-2xl)}.auth-form .form-input,.auth-form .form-button{padding:var(--spacing-sm)}.auth-form .form-label{font-size:var(--font-size-xs)}.auth-footer a{font-size:var(--font-size-sm)}}.dashboard{display:flex;min-height:100vh;background-color:var(--bg-color)}.dashboard-sidebar{width:280px;background-color:var(--sidebar-bg);border-right:1px solid var(--border-color);padding:var(--spacing-xl);position:fixed;height:100vh;overflow-y:auto;transition:all var(--transition-normal)}.sidebar-header{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.sidebar-header h2{font-size:var(--font-size-xl);color:var(--text-color);margin:0}.sidebar-nav{display:flex;flex-direction:column;gap:var(--spacing-sm)}.sidebar-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);color:var(--text-color);text-decoration:none;transition:all var(--transition-fast)}.sidebar-item:hover{background-color:var(--hover-bg)}.sidebar-item.active{background-color:var(--active-bg);color:var(--primary-color)}.sidebar-icon{font-size:var(--font-size-lg)}.sidebar-label{font-size:var(--font-size-md);font-weight:500}.sidebar-footer{margin-top:auto;padding-top:var(--spacing-xl);border-top:1px solid var(--border-color)}.dashboard-content{flex:1;margin-left:280px;padding:var(--spacing-xl);transition:all var(--transition-normal)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.dashboard-header h1{font-size:var(--font-size-2xl);margin:0}.dashboard-actions{display:flex;gap:var(--spacing-md)}.settings-section{background-color:var(--card-bg);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.settings-header{margin-bottom:var(--spacing-xl)}.settings-header h2{font-size:var(--font-size-xl);margin:0}.settings-description{color:var(--text-secondary);margin-top:var(--spacing-sm)}.settings-group{margin-bottom:var(--spacing-xl)}.settings-group:last-child{margin-bottom:0}.settings-group h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md);color:var(--text-color)}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-radius:var(--radius-md);background-color:var(--bg-color);margin-bottom:var(--spacing-sm);transition:all var(--transition-fast)}.setting-item:hover{background-color:var(--hover-bg)}.setting-info{flex:1}.setting-info label{display:block;font-weight:500;margin-bottom:var(--spacing-xs)}.setting-info p{color:var(--text-secondary);margin:0}.setting-control{margin-left:var(--spacing-md)}.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--border-color);transition:.4s;border-radius:34px}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--primary-color)}input:checked+.slider:before{transform:translate(26px)}@media (max-width: 1024px){.dashboard-sidebar{width:240px}.dashboard-content{margin-left:240px}}@media (max-width: 768px){.dashboard{flex-direction:column}.dashboard-sidebar{width:100%;height:auto;position:relative;padding:var(--spacing-md)}.dashboard-content{margin-left:0;padding:var(--spacing-md)}.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.dashboard-actions{width:100%;justify-content:space-between}.settings-section,.profile-section{padding:var(--spacing-md)}.setting-item{flex-direction:column;align-items:flex-start}.setting-control{margin-left:0;margin-top:var(--spacing-md)}}@media (max-width: 480px){.dashboard-sidebar,.sidebar-item,.dashboard-content,.settings-section,.profile-section{padding:var(--spacing-sm)}.settings-group h3{font-size:var(--font-size-md)}}.contact-page{min-height:100vh;background-color:var(--bg-color);position:relative;overflow:hidden}.contact-page:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-color-dark) 100%);opacity:.1;z-index:0}.contact-container{position:relative;z-index:1;padding:var(--spacing-2xl) 0}.contact-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-title{font-size:var(--font-size-3xl);color:var(--text-color);margin-bottom:var(--spacing-md)}.contact-description{color:var(--text-secondary);font-size:var(--font-size-lg);max-width:600px;margin:0 auto}.image-gallery{display:flex;flex-wrap:wrap;gap:var(--spacing-xl);justify-content:center;margin:var(--spacing-2xl) 0}.gallery-item{flex:1;min-width:300px;max-width:400px;background-color:var(--card-bg);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:transform var(--transition-normal);text-align:center}.gallery-item:hover{transform:translateY(-5px)}.gallery-image{width:100%;height:200px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.gallery-item h3{font-size:var(--font-size-xl);color:var(--text-color);margin-bottom:var(--spacing-sm)}.gallery-item p{color:var(--text-secondary);font-size:var(--font-size-md)}.contact-content{display:flex;flex-wrap:wrap;gap:var(--spacing-2xl);margin-top:var(--spacing-2xl)}.contact-info{flex:1;min-width:300px}.info-card{background-color:var(--card-bg);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.info-title{font-size:var(--font-size-2xl);color:var(--text-color);margin-bottom:var(--spacing-lg)}.info-items{display:flex;flex-direction:column;gap:var(--spacing-lg)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-sm)}.item-title{font-size:var(--font-size-lg);color:var(--text-color);font-weight:600}.item-content{color:var(--text-secondary);font-size:var(--font-size-md)}.contact-form-container{flex:1;min-width:300px}.form-card{background-color:var(--card-bg);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.form-title{font-size:var(--font-size-2xl);color:var(--text-color);margin-bottom:var(--spacing-xl);text-align:center}.contact-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.contact-form .form-group{margin-bottom:0}.contact-form .form-label{font-size:var(--font-size-sm);color:var(--text-color)}.contact-form .form-input,.contact-form .form-textarea{width:100%;padding:var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-color);color:var(--text-color);transition:all var(--transition-fast);font-size:var(--font-size-md)}.contact-form .form-input:focus,.contact-form .form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #4f46e51a}.contact-form .form-textarea{min-height:150px;resize:vertical}.contact-form .form-button{margin-top:var(--spacing-md);padding:var(--spacing-md);font-size:var(--font-size-md);font-weight:600;width:100%}.contact-form .form-button:hover{transform:translateY(-2px)}.contact-form .form-button:active{transform:translateY(0)}.success-message{background-color:var(--success-color);color:#fff;padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-md);text-align:center;animation:fadeIn var(--transition-normal)}.error-message{color:var(--danger-color);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.faq-section{margin-top:var(--spacing-2xl);padding:var(--spacing-2xl) 0}.faq-header{text-align:center;margin-bottom:var(--spacing-2xl)}.faq-title{font-size:var(--font-size-3xl);color:var(--text-color);margin-bottom:var(--spacing-md)}.faq-description{color:var(--text-secondary);font-size:var(--font-size-lg);max-width:600px;margin:0 auto}.faq-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-md)}.faq-item{background-color:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:all var(--transition-normal)}.faq-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.faq-question{padding:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background-color var(--transition-fast)}.faq-question:hover{background-color:var(--bg-color)}.faq-question h3{font-size:var(--font-size-lg);color:var(--text-color);margin:0;flex:1}.faq-toggle{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);color:var(--primary-color);transition:transform var(--transition-normal)}.faq-item.active .faq-toggle{transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-normal) ease-out}.faq-item.active .faq-answer{max-height:500px}.faq-answer-content{padding:0 var(--spacing-lg) var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-md);line-height:1.6}@media (max-width: 768px){.contact-container{padding:var(--spacing-xl) 0}.contact-title{font-size:var(--font-size-2xl)}.contact-description{font-size:var(--font-size-md);padding:0 var(--spacing-md)}.image-gallery{gap:var(--spacing-lg);padding:0 var(--spacing-md)}.gallery-item{min-width:250px}.contact-content{padding:0 var(--spacing-md)}.contact-form-container{padding:var(--spacing-xl);margin:0 var(--spacing-md)}}@media (max-width: 480px){.contact-container{padding:var(--spacing-lg) 0}.contact-title{font-size:var(--font-size-xl)}.contact-description{font-size:var(--font-size-sm)}.image-gallery{gap:var(--spacing-md)}.gallery-item{min-width:100%}.contact-form-container{padding:var(--spacing-lg)}.form-title{font-size:var(--font-size-xl)}.contact-form .form-input,.contact-form .form-textarea,.contact-form .form-button{padding:var(--spacing-sm)}}.app{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-color);color:var(--text-color)}.app main{flex:1;padding:var(--spacing-xl) 0}.error{color:var(--danger-color);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.link{color:var(--primary-color);text-decoration:none;cursor:pointer;background:none;border:none;padding:0;font-size:var(--font-size-md);transition:color var(--transition-fast)}.link:hover{color:var(--primary-color-dark);text-decoration:underline}.text-center{text-align:center}.mt-4{margin-top:1rem}.feature-card{width:320px;height:400px;background:#fff;border-radius:18px;box-shadow:0 2px 12px #00000012;display:flex;flex-direction:column;align-items:center;padding:24px 18px;margin:16px;transition:box-shadow .2s}.feature-card img{width:100%;height:180px;object-fit:cover;border-radius:12px;margin-bottom:18px}.home-page{min-height:100vh;background-color:var(--bg-color);position:relative;overflow:hidden}.home-page:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-color-dark) 100%);opacity:.1;z-index:0}.home-content{position:relative;z-index:1;padding:var(--spacing-2xl) 0}.hero{padding:var(--spacing-2xl) 0;background-color:var(--bg-color);position:relative;overflow:hidden;transition:background-color var(--transition-fast)}.hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#4f46e51a,#6366f11a);z-index:0;opacity:.5}.hero-content{position:relative;z-index:1;display:flex;align-items:center;gap:var(--spacing-2xl);max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.hero-text{flex:1;animation:fadeIn .5s ease-out}.hero-title{font-size:var(--font-size-4xl);color:var(--text-color);margin-bottom:var(--spacing-lg);line-height:1.2;font-weight:700;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-color-dark) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;transition:color var(--transition-fast)}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-xl);line-height:1.6;transition:color var(--transition-fast)}.hero-buttons{display:flex;gap:var(--spacing-md)}.hero-image{flex:1;display:flex;justify-content:center;align-items:center;max-width:500px;margin:0 auto;animation:float 6s ease-in-out infinite}.hero-image img{max-width:100%;height:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.quick-add{padding:var(--spacing-2xl) 0;background-color:transparent;margin:var(--spacing-2xl) 0;transition:background-color var(--transition-fast)}.quick-add .section-title{text-align:center;margin-bottom:var(--spacing-xl);color:var(--text-color);font-size:var(--font-size-2xl);font-weight:600;transition:color var(--transition-fast)}.form-container{max-width:600px;margin:0 auto;padding:var(--spacing-lg);transition:all var(--transition-fast)}.form-toggle-container{display:flex;justify-content:center}.btn-full{min-width:200px;padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg);font-weight:500;box-shadow:var(--shadow-md);transition:all var(--transition-fast)}.btn-full:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.cta{padding:var(--spacing-2xl) 0;background:transparent;text-align:center;margin:var(--spacing-2xl) 0;position:relative;overflow:hidden}.cta:before{display:none}.cta-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md);font-weight:600;color:var(--text-color);transition:color var(--transition-fast)}.cta-description{font-size:var(--font-size-lg);margin-bottom:var(--spacing-xl);color:var(--text-secondary);transition:color var(--transition-fast)}.cta-buttons{display:flex;gap:var(--spacing-xl);justify-content:center}.cta .btn{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md);font-weight:500;min-width:150px;border-radius:var(--radius-md);transition:all var(--transition-fast)}.cta .btn-primary{background-color:var(--primary-color);color:#fff;border:2px solid var(--primary-color)}.cta .btn-primary:hover{background-color:var(--primary-color-dark);border-color:var(--primary-color-dark);transform:translateY(-2px)}.cta .btn-outline{background-color:transparent;color:var(--text-color);border:2px solid var(--text-color)}.cta .btn-outline:hover{background-color:var(--text-color);color:var(--background-color);transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}to{transform:translateY(0)}}@media (max-width: 768px){.hero-content{flex-direction:column;text-align:center;gap:var(--spacing-xl)}.hero-buttons{justify-content:center}.hero-image{max-width:300px}.cta-buttons{flex-direction:column}.cta-buttons .btn{width:100%}}@media (max-width: 480px){.hero-title{font-size:var(--font-size-3xl)}.hero-description{font-size:var(--font-size-md)}.hero-image{max-width:250px}.cta-title{font-size:var(--font-size-xl)}.cta-description{font-size:var(--font-size-md)}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);border:none;outline:none;font-size:var(--font-size-md);position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}.btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#fff3;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:hover:after{width:300px;height:300px}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-color-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--hover-bg);color:var(--text-color);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--border-color);transform:translateY(-1px)}.btn-danger{background-color:var(--danger-color);color:#fff;box-shadow:var(--shadow-sm)}.btn-danger:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-outline{background-color:transparent;color:var(--primary-color);border:2px solid var(--primary-color)}.btn-outline:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-1px)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-color);transition:all var(--transition-fast)}.btn-icon:hover{background-color:var(--hover-background);transform:scale(1.1)}.btn-edit{color:var(--primary-color)}.btn-delete{color:var(--danger-color)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn:disabled:hover{transform:none;box-shadow:none}@media (max-width: 768px){.btn{width:100%;padding:var(--spacing-md)}}.grocery-card{background-color:#fff;border-radius:8px;padding:16px;margin-bottom:12px;box-shadow:0 2px 4px #0000001a;transition:all .2s ease}.grocery-card.editing{background-color:#f8f9fa}.grocery-card.purchased{opacity:.7}.card-content{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.item-main{display:flex;align-items:flex-start;gap:12px;flex:1}.checkbox{width:24px;height:24px;border:2px solid #ddd;border-radius:4px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.checkbox.checked{background-color:#4caf50;border-color:#4caf50;color:#fff}.check-icon{font-size:16px}.item-details{flex:1}.item-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.item-name{font-weight:600;font-size:1.1em}.item-name.purchased{text-decoration:line-through;color:#666}.item-quantity{color:#666}.item-quantity.purchased{text-decoration:line-through}.item-category{background-color:#e9ecef;padding:4px 8px;border-radius:4px;font-size:.9em;color:#495057}.item-notes{margin-top:8px;color:#666;font-size:.9em}.item-notes.purchased{text-decoration:line-through}.item-actions{display:flex;gap:8px}.icon-button{background:none;border:none;padding:6px 12px;cursor:pointer;border-radius:4px;font-size:.9em;transition:background-color .2s}.icon-button:hover{background-color:#f8f9fa}.icon-button.edit{color:#0d6efd}.icon-button.delete{color:#dc3545}.recipe-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;height:100%;display:flex;flex-direction:column}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #00000026}.recipe-image-container{position:relative;width:100%;padding-top:60%;overflow:hidden}.recipe-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.recipe-card:hover .recipe-image{transform:scale(1.05)}.recipe-content{padding:1.25rem;flex-grow:1;display:flex;flex-direction:column;gap:.75rem}.recipe-title{font-size:1.25rem;font-weight:600;color:#1a1a1a;margin:0;line-height:1.4}.recipe-meta{display:flex;gap:1rem;color:#666;font-size:.9rem}.recipe-time,.recipe-servings{display:flex;align-items:center;gap:.5rem}.recipe-ingredients-preview{margin-top:auto}.recipe-ingredients-preview h4{font-size:.95rem;color:#4a5568;margin:0 0 .5rem}.recipe-ingredients-preview ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.recipe-ingredients-preview li{background:#f3f4f6;padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;color:#4b5563}.more-ingredients{background:#e5e7eb!important;color:#6b7280!important}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem;overflow-y:auto}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:900px;max-height:90vh;overflow-y:auto;position:relative;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;color:#666;cursor:pointer;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease}.modal-close:hover{background-color:#f3f4f6;color:#1a1a1a}.modal-header{padding:2rem 2rem 1rem;border-bottom:1px solid #e5e7eb}.modal-title{font-size:1.75rem;color:#1a1a1a;margin:0 0 .75rem;line-height:1.4}.modal-meta{display:flex;align-items:center;gap:1rem;color:#666;font-size:.95rem}.meta-item{display:flex;align-items:center;gap:.5rem}.separator{color:#d1d5db}.modal-body{padding:1.5rem 2rem 2rem}.recipe-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.recipe-image-container{border-radius:8px;overflow:hidden;min-height:250px;max-height:350px;min-width:250px;max-width:100%;background:#f3f4f6;display:flex;align-items:center;justify-content:center}.recipe-detail-image{width:100%;height:250px;object-fit:cover;background:#f3f4f6;border-radius:8px}.recipe-ingredients{background:#f9fafb;padding:1.5rem;border-radius:8px}.section-title{font-size:1.25rem;color:#1a1a1a;margin:0 0 1rem}.ingredients-list{display:flex;flex-direction:column;gap:.75rem}.ingredient-item{display:flex;align-items:flex-start;gap:.75rem}.ingredient-check{color:#4f46e5;font-size:1.25rem;line-height:1}.ingredient-text{color:#4b5563;line-height:1.5}.recipe-separator{height:1px;background:#e5e7eb;margin:2rem 0}.recipe-instructions{margin-bottom:2rem}.instructions-content{display:flex;flex-direction:column;gap:1.5rem}.instruction-step{display:flex;gap:1rem}.step-number{background:#4f46e5;color:#fff;width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.instruction-step p{margin:0;color:#4b5563;line-height:1.6}.recipe-summary{background:#f9fafb;padding:1.5rem;border-radius:8px}.summary-content{color:#4b5563;line-height:1.6}.summary-content p{margin:0 0 1rem}.summary-content p:last-child{margin-bottom:0}@media (max-width: 768px){.recipe-detail-grid{grid-template-columns:1fr}.modal-header{padding:1.5rem 1.5rem 1rem}.modal-body{padding:1rem 1.5rem 1.5rem}.modal-title{font-size:1.5rem}}.recipe-search{max-width:800px;margin:0 auto;padding:1rem}.search-form{margin-bottom:1.5rem}.search-input-container{display:flex;gap:.5rem;margin-bottom:.5rem}.search-input{flex:1;padding:.75rem 1rem;font-size:1rem;border:2px solid #e2e8f0;border-radius:8px;transition:border-color .2s ease}.search-button{padding:.75rem 1.5rem;background-color:#4f46e5;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.error-message{color:#dc2626;font-size:.9rem;margin-top:.5rem}.search-history{margin-top:1.5rem}.search-history h4{font-size:.95rem;color:#4b5563;margin-bottom:.75rem}.history-tags{display:flex;flex-wrap:wrap;gap:.5rem}.history-tag{padding:.5rem 1rem;background-color:#f3f4f6;border:none;border-radius:1rem;font-size:.9rem;color:#4b5563;cursor:pointer;transition:background-color .2s ease}.history-tag:hover{background-color:#e5e7eb}@media (max-width: 640px){.search-input-container{flex-direction:column}.search-button{width:100%}}.recipe-search-container{max-width:1200px;margin:0 auto;padding:2rem}.search-form{display:flex;gap:1rem;margin-bottom:2rem}.search-input{flex:1;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .2s ease}.search-input:focus{outline:none;border-color:#4f46e5}.search-button{padding:.75rem 1.5rem;background-color:#4f46e5;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background-color .2s ease}.search-button:hover{background-color:#4338ca}.search-button:disabled{background-color:#9ca3af;cursor:not-allowed}.dietary-filters{background-color:#f9fafb;padding:1.5rem;border-radius:12px;margin-bottom:2rem}.dietary-filters h3{margin:0 0 1rem;color:#1f2937;font-size:1.25rem}.filters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.filter-item{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background-color .2s ease}.filter-item:hover{background-color:#f3f4f6}.filter-item input[type=checkbox]{width:18px;height:18px;cursor:pointer}.filter-item span{font-size:.95rem;color:#4b5563}.error-message{color:#dc2626;margin:1rem 0;padding:.75rem;background-color:#fee2e2;border-radius:6px}@media (max-width: 768px){.recipe-search-container{padding:1rem}.search-form{flex-direction:column}.search-button{width:100%}.filters-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}.recipes-container{max-width:1200px;margin:0 auto;padding:2rem 1rem}.recipes-header{text-align:center;margin-bottom:2rem}.page-title{font-size:2.5rem;color:#1a1a1a;margin-bottom:.5rem}.page-subtitle{font-size:1.1rem;color:#666;max-width:600px;margin:0 auto}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;margin-top:2rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-recipes{text-align:center;padding:3rem;background:#f8f9fa;border-radius:12px;margin-top:2rem}.no-recipes p{color:#666;font-size:1.1rem}@media (max-width: 768px){.recipes-container{padding:1rem}.page-title{font-size:2rem}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}}@media (max-width: 480px){.recipes-grid{grid-template-columns:1fr}}.navbar{position:fixed;top:0;left:0;right:0;background:var(--bg-color);box-shadow:var(--shadow-sm);z-index:1000;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.navbar-content{display:flex;align-items:center;justify-content:space-between;height:70px}.navbar-brand{font-size:1.5rem;font-weight:700;color:var(--primary-color);cursor:pointer;transition:color var(--transition-fast)}.navbar-brand:hover{color:var(--primary-color-dark)}.nav-items{display:flex;align-items:center;gap:1rem}.main-nav{display:flex;gap:1rem}.nav-item{padding:.5rem 1rem;border:none;background:none;color:var(--text-color);font-size:1rem;cursor:pointer;transition:all var(--transition-fast);border-radius:var(--radius-md)}.nav-item:hover{color:var(--primary-color);background:var(--hover-bg)}.nav-item.active{color:var(--primary-color);background:var(--active-bg)}.nav-buttons{display:flex;align-items:center;gap:1rem}.theme-toggle{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:all var(--transition-fast);color:var(--text-color)}.theme-toggle:hover{background:var(--hover-bg);transform:scale(1.1)}.auth-buttons{display:flex;gap:.5rem}.login-link,.signup-link{padding:.5rem 1rem;border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast)}.login-link{color:var(--primary-color);background:transparent;border:1px solid var(--primary-color)}.login-link:hover{background:var(--hover-bg)}.signup-link{color:var(--bg-color);background:var(--primary-color);border:1px solid var(--primary-color)}.signup-link:hover{background:var(--primary-color-dark)}.hamburger{display:none;flex-direction:column;justify-content:space-between;width:30px;height:20px;background:transparent;border:none;cursor:pointer;padding:0;z-index:10}.hamburger span{width:100%;height:2px;background:var(--text-color);transition:all var(--transition-fast)}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}@media (max-width: 768px){.hamburger{display:flex}.navbar-content{flex-direction:row;justify-content:space-between;align-items:center}.nav-items{position:fixed;top:0;right:0;width:70vw;max-width:340px;height:100vh;background:var(--card-bg);color:var(--text-color);flex-direction:column;align-items:center;justify-content:center;padding:0;box-shadow:var(--shadow-lg);transform:translate(100%);transition:transform var(--transition-fast);z-index:1200}.nav-items.active{transform:translate(0)}.main-nav{flex-direction:column;align-items:center;width:100%;gap:2rem;margin-top:0}.nav-item,.login-link,.signup-link{color:var(--text-color);background:none!important;font-size:1.3rem;font-weight:500;border:none;border-radius:var(--radius-md);padding:.75rem 0;margin:0;text-align:center;width:90%;max-width:260px;transition:all var(--transition-fast)}.nav-item:hover,.nav-item.active,.login-link:hover,.signup-link:hover{color:var(--primary-color);background:var(--hover-bg)!important}.nav-buttons,.auth-buttons{width:100%;margin-top:2.5rem;align-items:center;gap:1.5rem;display:flex;flex-direction:column}.theme-toggle{color:var(--text-color);border:1.5px solid var(--text-color);background:none;margin:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1.5rem}.theme-toggle:hover{background:var(--hover-bg);color:var(--primary-color)}.close-sidebar{position:absolute;top:1.5rem;left:1.5rem;background:none;border:none;color:var(--text-color);font-size:2.5rem;cursor:pointer;z-index:1300}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:1100}.login-link,.signup-link{width:100%;text-align:center}.dashboard-link{display:flex;align-items:center;justify-content:center;gap:.5rem}}@media (min-width: 769px) and (max-width: 1024px){.container{padding:0 2rem}.nav-items{gap:.5rem}.nav-item{padding:.5rem}}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background-color:#f5f5f5}.auth-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.auth-title{font-size:1.8rem;font-weight:600;color:#333;margin-bottom:.5rem;text-align:center}.auth-subtitle{font-size:1rem;color:#666;margin-bottom:1.5rem;text-align:center}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;color:#555;font-weight:500}.form-group input{padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}.form-group input:disabled{background-color:#f9fafb;cursor:not-allowed}.auth-button{background-color:#4f46e5;color:#fff;padding:.75rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:1rem}.auth-button:hover{background-color:#4338ca}.auth-button:disabled{background-color:#a5b4fc;cursor:not-allowed}.auth-error{background-color:#fee2e2;color:#dc2626;padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.auth-footer{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:.9rem;color:#666}.auth-link{background:none;border:none;color:#4f46e5;font-weight:500;cursor:pointer;padding:0;font-size:.9rem}.auth-link:hover{text-decoration:underline}.auth-link:disabled{color:#a5b4fc;cursor:not-allowed;text-decoration:none}
