.pwa-overlay-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;background:#0f172af2;display:flex;align-items:center;justify-content:center;padding:1.5rem;backdrop-filter:blur(12px);overflow:hidden}.pwa-overlay-backdrop:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,#4f46e54d,#4f46e500 70%);top:-150px;right:-150px;animation:rotate 20s linear infinite}.pwa-overlay-backdrop:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,#8b5cf64d,#8b5cf600 70%);bottom:-150px;left:-150px;animation:rotate 15s linear reverse infinite}.pwa-overlay-card{position:relative;width:100%;max-width:440px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:2.5rem;padding:2.5rem;box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff;overflow:hidden}.pwa-overlay-card.animate-slide-up{animation:slideUp .6s cubic-bezier(.16,1,.3,1) forwards}.pwa-overlay-glow{position:absolute;top:50%;left:50%;width:120%;height:120%;transform:translate(-50%,-50%);background:radial-gradient(circle,#4f46e526,#4f46e500 60%);pointer-events:none;z-index:0}.pwa-overlay-header{margin-bottom:2rem;position:relative;z-index:1}.pwa-overlay-header .app-icon-container{position:relative;width:100px;height:100px;margin:0 auto}.pwa-overlay-header .app-icon-container .app-icon{width:100%;height:100%;border-radius:2rem;object-fit:cover;box-shadow:0 10px 25px #0000004d;border:2px solid rgba(255,255,255,.2)}.pwa-overlay-header .app-icon-container .app-icon.pulse{animation:pulse 3s infinite ease-in-out}.pwa-overlay-header .app-icon-container .icon-badge{position:absolute;bottom:-5px;right:-5px;width:36px;height:36px;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#fff;border:3px solid rgb(15,23,42);box-shadow:0 4px 10px #0000004d}.pwa-overlay-body{position:relative;z-index:1;margin-bottom:2rem}.pwa-overlay-body .app-title{font-size:2rem;font-weight:800;margin-bottom:.5rem;background:linear-gradient(to bottom,#fff,#e2e8f0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em}.pwa-overlay-body .app-tagline{font-size:1rem;color:#fff9;margin-bottom:1.5rem;font-weight:500}.pwa-overlay-body .feature-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:1.5rem}.pwa-overlay-body .feature-badges .badge{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);padding:.5rem 1rem;border-radius:9999px;font-size:.85rem;font-weight:600;color:#ffffffe6;display:flex;align-items:center;gap:.5rem}.pwa-overlay-body .feature-badges .badge i{color:#8b5cf6}.pwa-overlay-body .install-message{font-size:.95rem;color:#ffffffb3;line-height:1.6;max-width:320px;margin:0 auto}.pwa-overlay-footer{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;gap:1.25rem}.pwa-overlay-footer .install-btn{width:100%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;padding:1.25rem;border-radius:1.25rem;font-weight:700;font-size:1.1rem;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;gap:.5rem}.pwa-overlay-footer .install-btn.shadow-glow{box-shadow:0 10px 25px -5px #4f46e580,0 0 10px #4f46e533}.pwa-overlay-footer .install-btn:hover{transform:scale(1.02);filter:brightness(1.1);box-shadow:0 15px 35px -5px #4f46e599}.pwa-overlay-footer .install-btn:active{transform:scale(.98)}.pwa-overlay-footer .dismiss-btn{background:transparent;border:none;color:#fff6;font-size:.9rem;font-weight:600;cursor:pointer;padding:.5rem;transition:color .2s}.pwa-overlay-footer .dismiss-btn:hover{color:#fffc;text-decoration:underline}.security-note{margin-top:2rem;font-size:.75rem;color:#ffffff4d;display:flex;align-items:center;gap:.25rem}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:480px){.pwa-overlay-backdrop{padding:1rem}.pwa-overlay-card{padding:2rem 1.5rem;border-radius:2rem}.pwa-overlay-body .app-title{font-size:1.75rem}}.error-boundary{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-primary, #eaf6ff);color:var(--color-text-primary, #1e293b);padding:1rem}.error-content{background-color:var(--color-bg-card, #ffffff);padding:2rem;border-radius:24px;box-shadow:var(--shadow-xl, 0 20px 60px rgba(0, 0, 0, .15));text-align:center;max-width:500px;width:100%}.error-icon{font-size:3rem;margin-bottom:1rem}.error-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;color:var(--color-text-primary, #1e293b)}.error-message{color:var(--color-text-secondary, #64748b);margin-bottom:1.5rem;line-height:1.5}.error-details{background-color:#0000000d;padding:1rem;border-radius:12px;font-family:monospace;font-size:.85rem;text-align:left;margin-bottom:1.5rem;overflow-x:auto;color:var(--color-error, #ef4444)}.error-actions{display:flex;gap:1rem;justify-content:center}.error-actions button{padding:.75rem 1.5rem;border-radius:9999px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.error-actions button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .1))}.btn-reload{background:var(--color-primary, #2e2ff5);color:#fff}.btn-home{background:transparent;border:1px solid var(--color-border-medium, #e5e7eb)!important;color:var(--color-text-primary, #1e293b)}.btn-home:hover{background:var(--color-bg-secondary, #f8fafc)}.popup-overlay{position:fixed;display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:#0009;z-index:10;inset:0}.popup-container{background-color:#fff;border-radius:1rem;padding:.5rem;width:90%;max-width:600px;max-height:calc(100vh - 100px);overflow:hidden;display:flex;flex-direction:column}.popup-header{display:flex;justify-content:space-between;align-items:center;height:70px;padding:1rem;font-size:1.25rem}.popup-body{width:100%;overflow-y:auto;max-height:calc(100vh - 300px)}.popup-footer{display:flex;justify-content:space-between;align-items:center;height:70px;padding:1rem;font-size:1.25rem}@media(prefers-color-scheme:dark){.popup-overlay{background-color:#000c}.popup-container{background-color:#1e293b;color:#f1f5f9}.popup-header{color:#f1f5f9;border-bottom:1px solid #475569}.popup-footer{color:#f1f5f9;border-top:1px solid #475569}}.theme-toggle{background:none;border:none;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.theme-toggle:hover{transform:scale(1.1)}.theme-toggle:active{transform:scale(.95)}.theme-toggle-icon{font-size:1.5rem;line-height:1;display:block}@keyframes skeleton-loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-base,.skeleton-table .skeleton-table-row .skeleton-table-cell,.skeleton-table .skeleton-table-header .skeleton-table-header-cell,.skeleton-list .skeleton-list-item .skeleton-list-content .skeleton-text,.skeleton-list .skeleton-list-item .skeleton-list-content .skeleton-title,.skeleton-list .skeleton-list-item .skeleton-avatar,.skeleton-card .skeleton-content .skeleton-button,.skeleton-card .skeleton-content .skeleton-text,.skeleton-card .skeleton-content .skeleton-title,.skeleton-card .skeleton-image{background:linear-gradient(90deg,var(--bg-secondary, #f0f0f0) 0%,var(--bg-tertiary, #e0e0e0) 50%,var(--bg-secondary, #f0f0f0) 100%);background-size:200px 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}.skeleton-card{background:var(--bg-primary, #fff);border:1px solid var(--border-light, #e5e7eb);border-radius:12px;padding:1rem;margin-bottom:1rem;box-shadow:0 2px 4px #0000000d}.skeleton-card .skeleton-image{width:100%;height:200px;margin-bottom:1rem;border-radius:8px}.skeleton-card .skeleton-content .skeleton-title{height:24px;width:70%;margin-bottom:.75rem}.skeleton-card .skeleton-content .skeleton-text{height:16px;width:100%;margin-bottom:.5rem}.skeleton-card .skeleton-content .skeleton-text.skeleton-text-short{width:60%}.skeleton-card .skeleton-content .skeleton-button{height:40px;width:120px;margin-top:1rem;border-radius:8px}.skeleton-list .skeleton-list-item{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid var(--border-light, #e5e7eb)}.skeleton-list .skeleton-list-item .skeleton-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0}.skeleton-list .skeleton-list-item .skeleton-list-content{flex:1}.skeleton-list .skeleton-list-item .skeleton-list-content .skeleton-title{height:20px;width:40%;margin-bottom:.5rem}.skeleton-list .skeleton-list-item .skeleton-list-content .skeleton-text{height:16px;width:80%}.skeleton-list .skeleton-list-item .skeleton-list-content .skeleton-text.skeleton-text-short{width:50%}.skeleton-table{width:100%;border:1px solid var(--border-light, #e5e7eb);border-radius:8px;overflow:hidden}.skeleton-table .skeleton-table-header{display:flex;background:var(--bg-secondary, #f9fafb);padding:.75rem;gap:1rem}.skeleton-table .skeleton-table-header .skeleton-table-header-cell{height:20px;flex:1}.skeleton-table .skeleton-table-row{display:flex;padding:.75rem;gap:1rem;border-top:1px solid var(--border-light, #e5e7eb)}.skeleton-table .skeleton-table-row .skeleton-table-cell{height:16px;flex:1}.spinner-container{display:flex;align-items:center;justify-content:center;gap:.75rem}.spinner-container.spinner-small .spinner{width:20px;height:20px;border-width:2px}.spinner-container.spinner-medium .spinner{width:40px;height:40px;border-width:3px}.spinner-container.spinner-large .spinner{width:60px;height:60px;border-width:4px}.spinner{border-radius:50%;border-style:solid;border-top-color:transparent;animation:spinner-rotate .8s linear infinite}.spinner.spinner-primary{border-color:var(--primary, #4f46e5);border-top-color:transparent}.spinner.spinner-white{border-color:#fff;border-top-color:transparent}.spinner.spinner-secondary{border-color:var(--text-secondary, #6b7280);border-top-color:transparent}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-text{color:var(--text-secondary, #6b7280);font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media(max-width:768px){.skeleton-card .skeleton-image{height:150px}.skeleton-table .skeleton-table-header,.skeleton-table .skeleton-table-row{flex-direction:column}}.skeleton{background-color:var(--color-border-light, #e2e8f0);border-radius:8px;display:inline-block;position:relative;overflow:hidden}.skeleton-text{border-radius:8px;transform:scaleY(.6)}.skeleton-circular{border-radius:50%}.skeleton-rectangular{border-radius:8px}.skeleton-pulse{animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.skeleton-wave:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,#fff0 0,#fff3 20%,#ffffff80 60%,#fff0);animation:shimmer 2s infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{to{transform:translate(100%)}}[data-theme=dark] .skeleton{background-color:#334155}[data-theme=dark] .skeleton-wave:after{background:linear-gradient(90deg,#fff0 0,#ffffff0d 20%,#ffffff1a 60%,#fff0)}.products-page{padding:20px;background-color:#f8f9fa;min-height:100vh}.products-page .header{margin-bottom:20px;text-align:center}.products-page .header h2{color:#2c3e50;font-weight:700}.products-page .products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.products-page .product-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;overflow:hidden;display:flex;flex-direction:column}.products-page .product-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 20px #0000001a}.products-page .product-card .product-image{width:100%;aspect-ratio:1/1;object-fit:contain;background-color:#fff;padding:10px}.products-page .product-card .product-info{padding:15px;flex-grow:1;display:flex;flex-direction:column}.products-page .product-card .product-info h3{font-size:1.2rem;margin-bottom:5px;color:#333}.products-page .product-card .product-info .description{font-size:.9rem;color:#666;margin-bottom:10px;flex-grow:1}.products-page .product-card .product-info .price-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.products-page .product-card .product-info .price-row .price{font-size:1.3rem;font-weight:700;color:#27ae60}.products-page .product-card .product-info .price-row .discount{font-size:.9rem;color:#e74c3c;text-decoration:line-through}.products-page .product-card .product-info .non-returnable{font-size:.8rem;color:#e67e22;margin-bottom:10px;font-weight:600}.products-page .product-card .product-info .actions{display:flex;gap:10px}.products-page .product-card .product-info .actions button{flex:1;padding:12px 8px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.products-page .product-card .product-info .actions button.btn-buy{background-color:var(--primary);color:#fff;animation:pulse-subtle 3s ease-in-out infinite}.products-page .product-card .product-info .actions button.btn-buy:hover{background-color:var(--primary-dark)}.products-page .product-card .product-info .actions button.btn-buy:disabled{background-color:#95a5a6;cursor:not-allowed}.products-page .product-card .product-info .actions button.btn-buy:disabled:hover{background-color:#95a5a6}.products-page .product-card .product-info .actions button.btn-cart{background-color:#ecf0f1;color:#2c3e50}.products-page .product-card .product-info .actions button.btn-cart:hover{background-color:#bdc3c7}.buy-product-modal{border:none;border-radius:16px;box-shadow:0 10px 30px #0003;overflow:hidden}.buy-product-modal .modal-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom:none;padding:20px 24px;display:flex;justify-content:space-between;align-items:center}.buy-product-modal .modal-header .modal-title{font-weight:700;font-size:1.25rem;margin:0}.buy-product-modal .modal-header .close{padding:0;margin:0;background:transparent;border:none;color:#fffc;font-size:2rem;line-height:.8;font-weight:300;text-shadow:none;opacity:1;outline:none;transition:transform .2s}.buy-product-modal .modal-header .close:hover{color:#fff;transform:scale(1.1);opacity:1;text-decoration:none}.buy-product-modal .modal-header .close:focus{outline:none}.buy-product-modal .modal-body{padding:24px;background-color:#f8f9fa}.buy-product-modal .modal-body label{font-weight:600;color:#4a5568;margin-bottom:8px;font-size:.9rem;display:flex;align-items:center;gap:6px}.buy-product-modal .modal-body .form-control{border-radius:8px;border:1px solid #e2e8f0;padding:10px 12px;height:auto;font-size:1rem;box-shadow:none}.buy-product-modal .modal-body .form-control:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.buy-product-modal .modal-body .total-amount{background-color:#fff;padding:15px;border-radius:10px;margin-top:20px;text-align:center;border:1px dashed #cbd5e0}.buy-product-modal .modal-body .total-amount h5{margin:0;color:#2d3748;font-size:1.2rem;font-weight:700}.buy-product-modal .modal-body .total-amount h5 span{color:#667eea;font-size:1.5rem}.buy-product-modal .modal-footer{background-color:#fff;border-top:none;padding:20px 24px;display:flex;gap:12px}.buy-product-modal .modal-footer .btn{border-radius:8px;padding:10px 20px;font-weight:600;flex:1;border:none;transition:all .2s}.buy-product-modal .modal-footer .btn-secondary{background-color:#e2e8f0;color:#4a5568}.buy-product-modal .modal-footer .btn-secondary:hover{background-color:#cbd5e0}.buy-product-modal .modal-footer .btn-outline-primary{border:2px solid #667eea;color:#667eea;background:transparent}.buy-product-modal .modal-footer .btn-outline-primary:hover{background-color:#f0f4ff}.buy-product-modal .modal-footer .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 6px #764ba24d}.buy-product-modal .modal-footer .btn-primary:hover{box-shadow:0 6px 8px #764ba266;transform:translateY(-1px)}@media(prefers-color-scheme:dark){.products-page{background-color:#0f172a}.products-page .header h2{color:#f1f5f9}.products-page .header p{color:#fffc}.products-page .product-card{background:#334155}.products-page .product-card .product-image{background-color:#1e293b}.products-page .product-card .product-info h3{color:#f1f5f9}.products-page .product-card .product-info .text-muted{color:#94a3b8!important}.products-page .product-card .product-info .description{color:#cbd5e1}.products-page .product-card .product-info .price-row .price{color:#34d399}.products-page .product-card .product-info .price-row .discount{color:#f87171}.products-page .product-card .product-info .non-returnable{color:#fb923c}.products-page .product-card .product-info .actions button.btn-buy{background-color:#1e40af}.products-page .product-card .product-info .actions button.btn-buy:hover{background-color:#1e3a8a}.products-page .product-card .product-info .actions button.btn-buy:disabled{background-color:#475569}.products-page .product-card .product-info .actions button.btn-cart{background-color:#475569;color:#f1f5f9}.products-page .product-card .product-info .actions button.btn-cart:hover{background-color:#64748b}.buy-product-modal .modal-header{background:linear-gradient(135deg,#1e40af,#7c3aed)}.buy-product-modal .modal-body{background-color:#1e293b}.buy-product-modal .modal-body label{color:#cbd5e1}.buy-product-modal .modal-body .form-control{background-color:#334155;border-color:#475569;color:#f1f5f9}.buy-product-modal .modal-body .form-control:focus{border-color:#60a5fa;background-color:#334155;box-shadow:0 0 0 3px #60a5fa1a}.buy-product-modal .modal-body .form-control::placeholder{color:#94a3b8}.buy-product-modal .modal-body .total-amount{background-color:#334155;border-color:#475569}.buy-product-modal .modal-body .total-amount h5{color:#f1f5f9}.buy-product-modal .modal-body .total-amount h5 span{color:#60a5fa}.buy-product-modal .modal-footer{background-color:#1e293b}.buy-product-modal .modal-footer .btn-secondary{background-color:#475569;color:#f1f5f9}.buy-product-modal .modal-footer .btn-secondary:hover{background-color:#64748b}.buy-product-modal .modal-footer .btn-outline-primary{border-color:#60a5fa;color:#60a5fa}.buy-product-modal .modal-footer .btn-outline-primary:hover{background-color:#1e3a8a}.buy-product-modal .modal-footer .btn-primary{background:linear-gradient(135deg,#1e40af,#7c3aed)}}@media(max-width:768px){.products-page .modal{display:block!important;padding:0!important;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;background-color:var(--bg-primary)}.products-page .modal .modal-dialog{margin:0;width:100%;max-width:100%;height:100%;min-height:100vh}.products-page .modal .modal-dialog .buy-product-modal{border-radius:0;border:none;height:100vh;max-height:100vh;display:flex;flex-direction:column;box-shadow:none}.products-page .modal .modal-dialog .buy-product-modal .modal-header{border-radius:0;padding:15px 20px;background:var(--primary-dark)}.products-page .modal .modal-dialog .buy-product-modal .modal-body{flex-grow:1;overflow-y:auto;background-color:var(--bg-card)}.products-page .modal .modal-dialog .buy-product-modal .modal-footer{padding-bottom:calc(15px + env(safe-area-inset-bottom));background:var(--bg-card);border-top:1px solid var(--border-light)}}.modal-backdrop-custom{background-color:#0009!important}.modal-blur{backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important}
