.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-card{background:#fff;border-radius:12px;padding:24px 20px;width:100%;max-width:450px;box-shadow:0 20px 60px #0000004d}.auth-header{text-align:center;margin-bottom:24px}.auth-header h1{font-size:1.5rem;color:#333;margin-bottom:6px;font-weight:700}.auth-header p{color:#666;font-size:.875rem}.auth-error{background:#fee2e2;border:1px solid #ef4444;color:#dc2626;padding:10px 12px;border-radius:6px;margin-bottom:16px;font-size:.8rem}.auth-form{display:flex;flex-direction:column;gap:16px}.form-row{display:grid;grid-template-columns:1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:.8rem;font-weight:600;color:#374151}.form-group input{padding:10px 12px;border:2px solid #e5e7eb;border-radius:6px;font-size:.95rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input::placeholder{color:#9ca3af}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 20px;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:6px}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-footer{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid #e5e7eb}.auth-footer p{color:#6b7280;font-size:.85rem}.auth-link{color:#667eea;font-weight:600;text-decoration:none;transition:color .2s}.auth-link:hover{color:#764ba2;text-decoration:underline}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.loading-spinner{width:50px;height:50px;border:4px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 320px){.auth-card{padding:28px 24px}.auth-header h1{font-size:1.625rem}.auth-header p{font-size:.9rem}}@media (min-width: 400px){.auth-card{padding:32px 28px}.auth-header h1{font-size:1.75rem}}@media (min-width: 480px){.form-row{grid-template-columns:1fr 1fr}.auth-card{padding:40px 36px}.auth-header h1{font-size:1.875rem}.auth-header p{font-size:1rem}.form-group label{font-size:.875rem}.form-group input{padding:12px 16px;font-size:1rem}.auth-button{padding:14px 24px;font-size:1rem}.auth-footer p{font-size:.9rem}}@media (min-width: 1024px){.auth-card{max-width:520px;padding:48px 44px}.auth-header h1{font-size:2rem}}.analytics-dashboard{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:20px 20px 80px;color:#fff}.analytics-loading,.analytics-error{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e);padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.loading-spinner{font-size:1.2rem;animation:pulse 1.5s infinite}.analytics-loading .loading-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:#d4af37;animation:admin-spin .8s linear infinite}.analytics-loading p{margin:14px 0 0;color:#ffffffb3;font-size:.9rem}@keyframes admin-spin{to{transform:rotate(360deg)}}.analytics-error .error-message{display:flex;align-items:center;gap:8px;padding:14px 18px;background:#c4456926;border:1px solid rgba(196,69,105,.4);border-radius:12px;color:#ffc9d8;font-size:.95rem;text-align:center}.analytics-error .error-message ion-icon{font-size:1.2rem;flex:0 0 auto}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.analytics-header{text-align:center;margin-bottom:30px;padding-top:20px;position:relative}.analytics-header h1{font-size:1.8rem;margin:0 0 10px;background:linear-gradient(135deg,#d4af37,#f4e5c2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.analytics-header p{color:#fff9;font-size:.9rem;margin:0}.back-link{display:inline-block;margin-bottom:15px;color:#ffffffb3;text-decoration:none;font-size:.9rem;transition:color .2s}.back-link:hover{color:#d4af37}.period-selector{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:30px;padding:15px;background:#ffffff0d;border-radius:12px}.period-selector label{font-size:.9rem;color:#fffc}.period-selector select{padding:8px 15px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff;font-size:.9rem;cursor:pointer}.period-selector select option{background:#1a1a2e;color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:15px;margin-bottom:30px}.stat-card{background:#ffffff0d;border-radius:16px;padding:20px;text-align:center;border:1px solid rgba(255,255,255,.1);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px #0000004d}.stat-card.primary{background:linear-gradient(135deg,#d4af3733,#d4af370d);border-color:#d4af374d}.stat-card.secondary{background:linear-gradient(135deg,#c4456933,#c445690d);border-color:#c445694d}.stat-card.accent{background:linear-gradient(135deg,#667eea33,#667eea0d);border-color:#667eea4d}.stat-icon{font-size:2rem;margin-bottom:10px}.stat-value{font-size:2rem;font-weight:700;margin-bottom:5px;background:linear-gradient(135deg,#fff,#d4af37);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.8rem;color:#fff9;text-transform:uppercase;letter-spacing:1px}.analytics-section{background:#ffffff08;border-radius:16px;padding:20px;margin-bottom:20px;border:1px solid rgba(255,255,255,.08)}.analytics-section h2{font-size:1.1rem;margin:0 0 20px;color:#ffffffe6}.source-chart{display:flex;flex-direction:column;gap:12px}.source-bar{display:grid;grid-template-columns:100px 1fr 50px;align-items:center;gap:10px}.source-label{font-size:.85rem;color:#fffc;display:flex;align-items:center;gap:5px}.source-progress{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.source-fill{height:100%;border-radius:4px;transition:width .5s ease-out}.source-value{text-align:right;font-size:.9rem;font-weight:600;color:#d4af37}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:15px}.device-item{text-align:center;padding:15px;background:#ffffff0d;border-radius:12px}.device-icon{font-size:2rem;margin-bottom:8px}.device-value{font-size:1.5rem;font-weight:600;color:#d4af37;margin-bottom:4px}.device-label{font-size:.75rem;color:#ffffff80;text-transform:capitalize}.top-events-list{display:flex;flex-direction:column;gap:12px}.top-event-item{display:flex;align-items:center;gap:15px;padding:15px;background:#ffffff0d;border-radius:12px;transition:background .2s}.top-event-item:hover{background:#ffffff14}.event-rank{width:35px;height:35px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#d4af37,#f4e5c2);border-radius:50%;font-weight:700;color:#1a1a2e;font-size:.85rem}.event-info{flex:1}.event-name{font-size:.95rem;font-weight:500;margin-bottom:4px;color:#ffffffe6}.event-views{font-size:.8rem;color:#ffffff80}.no-data{text-align:center;padding:60px 20px;background:#ffffff08;border-radius:20px;border:2px dashed rgba(255,255,255,.1)}.no-data-icon{font-size:4rem;margin-bottom:20px}.no-data h3{font-size:1.3rem;margin:0 0 10px;color:#ffffffe6}.no-data p{font-size:.9rem;color:#ffffff80;max-width:300px;margin:0 auto}.error-message{color:#ff6b6b;margin-bottom:20px;text-align:center}.retry-btn{padding:12px 30px;background:linear-gradient(135deg,#c44569,#d4af37);border:none;border-radius:25px;color:#fff;font-size:.95rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px #c4456966}.admin-tabs{display:flex;gap:8px;margin-bottom:25px;padding:0 0 4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.admin-tabs::-webkit-scrollbar{display:none}@media (min-width: 1080px){.admin-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow-x:visible}}.admin-tab{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;font-size:.9rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s}.admin-tab ion-icon{font-size:1.05rem;flex:0 0 auto}.admin-tab-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-tab:hover{background:#ffffff29;border-color:#d4af3780}.admin-tab.active{background:linear-gradient(135deg,#d4af37,#c4a030);border-color:#d4af37;color:#1a1a2e}.admin-tab:focus-visible,.admin-btn-ghost:focus-visible,.admin-btn-inline:focus-visible,.admin-icon-btn:focus-visible,.retry-btn:focus-visible,.delete-btn:focus-visible,.admin-select:focus-visible,.admin-input:focus-visible,.cms-input:focus-visible{outline:2px solid #d4af37;outline-offset:2px}.admin-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#ffffff2e;color:inherit;font-size:.72rem;font-weight:700;line-height:1}.admin-tab-count:empty{background:transparent}.admin-tab.active .admin-tab-count{background:#1a1a2e33}.admin-tab-compact{min-height:36px;padding:6px 12px;font-size:.82rem;font-weight:500}.admin-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.admin-filters>ion-icon{font-size:1.1rem;color:#ffffff80;flex:0 0 auto}.admin-filters-tight{gap:6px;margin-bottom:12px}.admin-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:9px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#ffffffe6;font-size:.85rem;font-weight:600;font-family:inherit;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.admin-btn-ghost:hover{background:#ffffff1f;border-color:#d4af3780;color:#d4af37}.admin-btn-inline{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:9px 16px;border-radius:10px;font-size:.85rem;font-weight:600;font-family:inherit;white-space:nowrap}.admin-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:40px;min-width:40px;height:40px;padding:0;font-size:1.1rem}.retry-btn:disabled,.delete-btn:disabled,.admin-btn-ghost:disabled,.admin-tab:disabled,.admin-select:disabled,.admin-input:disabled,.cms-input:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.admin-select,.admin-input,.cms-input{min-height:40px;padding:9px 11px;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.85rem;font-family:inherit}.admin-select{cursor:pointer}.cms-textarea{min-height:340px;grid-column:1 / -1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.6;resize:vertical;white-space:pre;overflow-wrap:normal;overflow-x:auto}.admin-select option{background:#1a1a2e;color:#fff}.admin-input{flex:1 1 180px;min-width:160px}.admin-input::placeholder{color:#fff6}.cms-input{background:#fff;border:1px solid #e8ddd2;color:#1a1a2e;width:100%}.cms-input:disabled{background:#efe9e1;color:#8a7a6a}.admin-toast{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:11px 14px;background:#c445692e;border:1px solid rgba(196,69,105,.4);border-radius:10px;color:#ffc9d8;font-size:.85rem}.admin-toast ion-icon{font-size:1.1rem;flex:0 0 auto}.admin-empty{margin:4px 0 8px;color:#ffffff80;font-size:.85rem}.admin-reply{display:flex;align-items:flex-start;gap:6px;margin-top:6px;padding:8px 10px;background:#d4af371f;border-inline-start:3px solid #d4af37;border-radius:8px;color:#ffffffd9;font-size:.82rem}.admin-reply ion-icon{font-size:.95rem;flex:0 0 auto;margin-top:2px;color:#d4af37}.analytics-error-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:18px}.analytics-header-admin{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;text-align:start;flex-wrap:wrap}.analytics-header-main{flex:1 1 220px;min-width:0}.analytics-header-admin h1{display:flex;align-items:center;gap:8px;font-size:1.5rem}.analytics-header-admin h1 ion-icon{font-size:1.35rem;flex:0 0 auto}.analytics-section h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.analytics-section h2 ion-icon{font-size:1.15rem;color:#d4af37;flex:0 0 auto}.stat-icon{display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:10px}.stat-icon ion-icon{color:#d4af37}.user-item-column{flex-direction:column;align-items:stretch;gap:12px}.user-actions-wrap{flex-wrap:wrap;gap:8px}.user-message{margin-top:6px;color:#ffffffbf;line-height:1.5}.cms-form{display:flex;flex-direction:column;gap:12px;margin-bottom:18px;padding:16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px}.cms-form-title{display:flex;align-items:center;gap:7px;color:#ffffffe6;font-size:.95rem}.cms-form-title ion-icon{font-size:1.05rem;color:#d4af37}.cms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.cms-actions{display:flex;gap:8px;flex-wrap:wrap}.cms-subtitle{margin-top:24px}.cms-mapping-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.cms-mapping-row .cms-input{width:auto;flex:1 1 200px;min-width:160px}.cms-mapping-row .admin-select{flex:1 1 180px;min-width:150px}.admin-source-list{display:flex;flex-direction:column}.admin-source-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:44px;padding:9px 4px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-source-row:last-child{border-bottom:none}.admin-source-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:#ffffff12;color:#d4af37;font-size:1rem}.admin-source-name{color:#ffffffe0;font-size:.9rem;font-weight:600;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-source-count{display:flex;align-items:baseline;gap:6px;color:#fff;font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums}.admin-source-count em{min-width:44px;color:#ffffff73;font-size:.75rem;font-style:normal;font-weight:600;text-align:end}@media (max-width: 480px){.admin-tabs{margin-inline:-4px;padding-inline:4px}.admin-tab{padding:9px 13px;font-size:.85rem}.admin-header-actions,.user-actions{width:100%}.user-actions .retry-btn,.user-actions .delete-btn,.user-actions .admin-btn-ghost{flex:1 1 auto}.analytics-section{padding:15px}}.users-list{display:flex;flex-direction:column;gap:12px}.user-item{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.user-info{flex:1}.user-name{font-size:1rem;font-weight:600;color:#fff;margin-bottom:4px}.user-email{font-size:.85rem;color:#fff9;margin-bottom:2px}.user-date{font-size:.75rem;color:#fff6}.user-actions{display:flex;gap:10px;align-items:center}.role-select{padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:.85rem;cursor:pointer}.role-select option{background:#1a1a2e;color:#fff}.delete-btn{padding:8px 12px;background:#c4456933;border:1px solid rgba(196,69,105,.3);border-radius:6px;color:#c44569;cursor:pointer;transition:all .2s}.delete-btn:hover{background:#c445694d}@media (max-width: 400px){.stats-grid{grid-template-columns:repeat(3,1fr)}.stat-value{font-size:1.5rem}.source-bar{grid-template-columns:80px 1fr 40px}.source-label{font-size:.75rem}}.legal-page{min-height:100vh;background:linear-gradient(135deg,#fdf6f0,#f5e6dc,#e8d5c4);color:#3d2b32;padding:0 16px 64px;line-height:1.75}.legal-wrap{max-width:760px;margin:0 auto;padding-top:24px}.legal-brand{display:inline-block;font-family:Great Vibes,cursive;font-size:32px;color:#c44569;text-decoration:none;margin-bottom:24px}.legal-title{font-family:Playfair Display,Georgia,serif;font-size:clamp(24px,6vw,38px);color:#c44569;margin:0 0 8px;line-height:1.25}.legal-fallback{background:#fff4d6;border:1px solid #e8c76a;border-radius:8px;padding:10px 14px;font-size:14px;color:#6b5410;margin:0 0 20px}.legal-body{background:#fff;border-radius:14px;padding:24px 20px;box-shadow:0 8px 28px #78465a1a;word-break:break-word;overflow-wrap:anywhere}.legal-body h2{font-family:Playfair Display,Georgia,serif;font-size:clamp(19px,4.4vw,24px);color:#8c2f4c;margin:28px 0 10px;line-height:1.3}.legal-body h3{font-family:Playfair Display,Georgia,serif;font-size:clamp(17px,3.8vw,20px);color:#6d2540;margin:22px 0 8px}.legal-body h4{font-size:16px;color:#6d2540;margin:18px 0 6px}.legal-body h2:first-child,.legal-body h3:first-child,.legal-body p:first-child{margin-top:0}.legal-body p{margin:0 0 14px;font-size:15.5px}.legal-body ul,.legal-body ol{margin:0 0 14px;padding-inline-start:22px}.legal-body li{margin-bottom:7px;font-size:15.5px}.legal-body blockquote{margin:0 0 16px;padding:12px 16px;border-inline-start:3px solid #c44569;background:#fdf6f0;border-radius:0 8px 8px 0;font-size:15px}.legal-body a{color:#c44569;overflow-wrap:anywhere}.legal-code{background:#f4ece8;border-radius:4px;padding:2px 5px;font-size:13.5px;overflow-wrap:anywhere}.legal-body hr{border:none;border-top:1px solid #ecdcd4;margin:24px 0}.legal-table-wrap{margin:0 0 18px;overflow-x:auto;-webkit-overflow-scrolling:touch}.legal-table{border-collapse:collapse;width:100%;min-width:320px;font-size:14px}.legal-table th,.legal-table td{border:1px solid #ecdcd4;padding:8px 10px;text-align:start;vertical-align:top}.legal-table th{background:#fdf6f0;color:#6d2540;font-weight:600}.legal-table tbody tr:nth-child(2n){background:#fdfaf8}.legal-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:22px;font-size:13.5px;color:#7d6470}.legal-back{display:inline-flex;align-items:center;gap:6px;color:#c44569;text-decoration:none;margin-inline-start:auto;font-weight:600}.legal-loading,.legal-error{text-align:center;padding:48px 12px;color:#7d6470}.legal-error ion-icon{font-size:38px;color:#c44569}.legal-error p{margin:12px 0 20px}@media (max-width: 400px){.legal-page{padding:0 12px 48px}.legal-body{padding:18px 15px}.legal-body p,.legal-body li{font-size:15px}.legal-back{margin-inline-start:0}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #c44569;--primary-light: #d4788c;--secondary: #d4af37;--text-dark: #5c4a3d;--text-light: #8b7355;--bg-cream: #fdf6f0;--bg-warm: #f5e6dc;--success: #25d366;--danger: #e8262c;--warning: #ffa500}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:Playfair Display,serif;background:linear-gradient(135deg,#fdf6f0,#f5e6dc,#e8d5c4);min-height:100vh;color:var(--text-dark);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:clamp(1.75rem,5vw,3rem)}h2{font-size:clamp(1.5rem,4vw,2.5rem)}h3{font-size:clamp(1.25rem,3vw,1.75rem)}.font-script{font-family:Great Vibes,cursive}.font-elegant{font-family:Cormorant Garamond,serif}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border-radius:25px;font-family:Playfair Display,serif;font-size:clamp(.9rem,2.5vw,1rem);font-weight:600;letter-spacing:1px;cursor:pointer;border:none;transition:all .3s ease;text-decoration:none;min-height:48px;min-width:120px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;box-shadow:0 4px 15px #c445694d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c4456966}.btn-secondary{background:linear-gradient(135deg,var(--secondary),#f4e5c2);color:var(--text-dark);box-shadow:0 4px 15px #d4af374d}.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #d4af3766}.card{background:#fff;border-radius:20px;padding:clamp(20px,5vw,40px);box-shadow:0 10px 30px #d4788c1f}.form-group{margin-bottom:clamp(15px,3vw,20px)}.form-label{display:block;margin-bottom:8px;font-weight:600;color:var(--text-dark);font-size:clamp(.9rem,2.5vw,1rem)}.form-input,.form-select,.form-textarea{width:100%;padding:clamp(12px,3vw,15px) clamp(15px,4vw,20px);border:2px solid rgba(212,175,55,.2);border-radius:12px;font-family:Playfair Display,serif;font-size:clamp(1rem,2.5vw,1.1rem);transition:all .3s ease;min-height:48px;background:#fff}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px #d4af371a}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 15px}.grid{display:grid;gap:clamp(15px,3vw,30px)}.grid-1{grid-template-columns:1fr}@media (min-width: 640px){.grid-sm-2{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.container{padding:0 20px}.grid-md-2{grid-template-columns:repeat(2,1fr)}.grid-md-3{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.grid-lg-3{grid-template-columns:repeat(3,1fr)}.grid-lg-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-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fadeInUp{animation:fadeInUp .8s ease forwards}.animate-fadeIn{animation:fadeIn .5s ease forwards}.animate-pulse{animation:pulse 2s infinite}.animate-float{animation:float 3s ease-in-out infinite}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}@media (hover: none) and (pointer: coarse){.btn:hover{transform:none}.btn:active{transform:scale(.96)}.card:hover{transform:none;box-shadow:0 10px 30px #d4788c1f}}@supports (padding-top: env(safe-area-inset-top)){.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{body{background:#fff}.no-print{display:none!important}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.w-full{width:100%}.h-full{height:100%}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.rounded{border-radius:.5rem}.rounded-lg{border-radius:1rem}.rounded-xl{border-radius:1.5rem}.shadow{box-shadow:0 4px 6px #0000001a}.shadow-lg{box-shadow:0 10px 30px #00000026}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:var(--secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.lux-card{transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s cubic-bezier(.22,1,.36,1),border-color .45s cubic-bezier(.22,1,.36,1)}@media (hover: hover){.lux-card:hover{transform:translateY(-6px);box-shadow:0 18px 45px #2b211829;border-color:#d4af37}.lux-card:hover .lux-zoom{transform:scale(1.06)}.lux-card:hover .lux-cta{opacity:1;transform:translateY(0)}}.lux-zoom{transition:transform .6s cubic-bezier(.22,1,.36,1);will-change:transform}.lux-cta{transition:opacity .35s ease,transform .35s ease}@media (hover: hover){.lux-cta{opacity:0;transform:translateY(6px)}}@media (hover: none){.lux-cta{opacity:1;transform:none}}.lux-btn{position:relative;overflow:hidden;isolation:isolate}.lux-btn:after{content:"";position:absolute;top:0;bottom:0;width:45%;left:-60%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);transform:skew(-18deg);transition:left .01s;z-index:1}@media (hover: hover){.lux-btn:hover:after{left:130%;transition:left .7s ease}}@keyframes luxKenBurns{0%{transform:scale(1)}to{transform:scale(1.08)}}.lux-kenburns{animation:luxKenBurns 24s ease-in-out infinite alternate;will-change:transform}.lux-glass{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffffb8;border:1px solid rgba(212,175,55,.5)}@media (prefers-reduced-motion: reduce){.lux-card,.lux-zoom,.lux-cta,.lux-btn:after,.lux-kenburns{animation:none!important;transition:none!important;transform:none!important}.lux-cta{opacity:1!important}}@keyframes luxHeroIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.lux-hero-in{animation:luxHeroIn .8s cubic-bezier(.22,1,.36,1) both}.lux-hero-in-1{animation-delay:.1s}.lux-hero-in-2{animation-delay:.22s}.lux-hero-in-3{animation-delay:.34s}.lux-hero-in-4{animation-delay:.46s}@media (prefers-reduced-motion: reduce){.lux-hero-in{animation:none!important}}.pwa-banner{position:fixed;inset-inline:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:1200;display:flex;align-items:center;gap:10px;max-width:560px;margin-inline:auto;padding:11px 12px;background:#fff;border:1px solid #e8ddd2;border-radius:16px;box-shadow:0 12px 34px #0000002e;font-family:Playfair Display,Georgia,serif}.pwa-banner-icon{font-size:1.5rem;color:#c44569;flex:0 0 auto}.pwa-banner-text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.pwa-banner-text strong{font-size:.92rem;color:#1a1a2e}.pwa-banner-text span{font-size:.76rem;color:#6b5a4d;line-height:1.35}.pwa-banner-action{flex:0 0 auto;min-height:40px;padding:0 16px;border:none;border-radius:22px;background:linear-gradient(135deg,#c44569,#d4af37);color:#fff;font-size:.85rem;font-weight:700;font-family:inherit;cursor:pointer}.pwa-banner-close{flex:0 0 auto;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid #e8ddd2;border-radius:50%;background:#faf7f2;color:#8b7355;font-size:.95rem;cursor:pointer}.pwa-panel{padding:14px 16px;background:#faf7f2;border:1px solid #e8ddd2;border-radius:12px}.pwa-panel-row{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}.pwa-panel-icon{font-size:1.4rem;color:#c44569;flex:0 0 auto}.pwa-panel-text{display:flex;flex-direction:column;gap:2px;flex:1 1 220px;min-width:0}.pwa-panel-text strong{font-size:.95rem;color:#1a1a2e}.pwa-panel-text span{font-size:.8rem;color:#6b5a4d;line-height:1.4;overflow-wrap:anywhere}.pwa-panel-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:auto}.pwa-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 auto;border:1px solid #e0d4c7;border-radius:50%;background:#fff;color:#c44569;font-size:1rem;cursor:pointer}.pwa-icon-btn:disabled{opacity:.55;cursor:not-allowed}.avatar-img,.avatar-fallback{flex:0 0 auto;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center}.avatar-fallback{color:#fff;font-weight:600;line-height:1;font-size:.95rem;-webkit-user-select:none;user-select:none}.avatar-img{background:#f5e6dc}.ui-switch{position:relative;flex:0 0 auto;width:50px;height:30px;margin:0;padding:0;border:1px solid #d9cec2;border-radius:16px;background:#e7ded4;cursor:pointer;transition:background .18s ease,border-color .18s ease}.ui-switch[aria-checked=true]{background:#c44569;border-color:#c44569}.ui-switch:disabled{opacity:.5;cursor:not-allowed}.ui-switch:focus-visible{outline:2px solid #c44569;outline-offset:2px}.ui-switch-knob{position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000047;transition:transform .18s ease}.ui-switch[aria-checked=true] .ui-switch-knob{transform:translate(20px)}.ui-switch-busy{cursor:progress}[dir=rtl] .ui-switch-knob{left:auto;right:2px}[dir=rtl] .ui-switch[aria-checked=true] .ui-switch-knob{transform:translate(-20px)}@media (prefers-reduced-motion: reduce){.ui-switch,.ui-switch-knob{transition:none}}.pwa-panel-state{display:inline-flex;align-items:center;gap:5px;color:#2e7d32;font-size:.8rem;font-weight:600}.pwa-btn{min-height:40px;padding:0 16px;border:1px solid #c44569;border-radius:22px;background:#fff;color:#c44569;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer}.pwa-btn:disabled{opacity:.55;cursor:not-allowed}.pwa-panel-sub{margin-top:12px;padding-top:12px;border-top:1px solid #e8ddd2}.pwa-panel-note{margin:10px 0 0;font-size:.78rem;color:#8b7355}@media (max-width: 420px){.pwa-banner{flex-wrap:wrap}.pwa-banner-action{width:100%}}:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}.ion-page.ion-page-overlay-passthrough{pointer-events:none}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left: var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right: var(--safe-area-inset-right, env(safe-area-inset-right))}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}
