:root{--bg-color:#f4f6f8;--text-color:#2c3e50;--card-bg:#fff;--primary-color:#8e44ad;--primary-hover:#732d91;--border-color:#ddd;--sidebar-bg:#2c3e50;--sidebar-text:#ecf0f1;--error-color:#e74c3c;--success-color:#03c03c}
body.dark-mode{--bg-color:#1a1a2e;--text-color:#e0e0e0;--card-bg:#16213e;--primary-color:#9b59b6;--primary-hover:#8e44ad;--border-color:#2c3e50;--sidebar-bg:#0f3460;--sidebar-text:#e0e0e0}
body{background-color:var(--bg-color);color:var(--text-color);font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;margin:0;padding:0;transition:background-color 0.3s,color .3s}
.container{max-width:1200px;margin:0 auto;padding:20px}
.hidden{display:none}body.dark-mode .badge.badge-success{color:var(--card-bg)}
.text-center{text-align:center}
.auth-container{max-width:400px;margin:0 auto}
.w-100{width:100%}.card.success.border{border-color:var(--success-color)}
.text-error{color:var(--error-color)}
.text-success{color:var(--success-color)}
.card{background-color:var(--card-bg);border-radius:8px;box-shadow:0 4px 6px #0000001a;padding:20px;margin-bottom:20px;border:1px solid var(--border-color)}
.card-danger{border-color:var(--error-color)}
.card-danger h2{color:var(--error-color)}
.btn{display:inline-block;background-color:var(--primary-color);color:#fff;padding:10px 20px;border-radius:6px;text-decoration:none;border:none;cursor:pointer;font-weight:600;transition:background .2s}
.btn:hover{background-color:var(--primary-hover)}
.btn-danger{background-color:var(--error-color)}
.form-group{margin-bottom:15px}
label{display:block;margin-bottom:5px;font-weight:500}
input[type="text"],input[type="date"],input[type="email"],input[type="password"],input[type="number"],textarea,select,select option{width:100%;padding:10px;
border:1px solid var(--border-color);box-sizing:border-box;border-radius:8px;padding:10px 14px;font-size:14px;transition:border-color 0.2s, box-shadow 0.2s;outline:none}
input:focus{border-color:#9b59b6;box-shadow:0 0 0 3px rgba(155, 89, 182, 0.2)}
input::placeholder{color:#718096}
body.dark-mode{color-scheme:dark}
nav{background-color:var(--sidebar-bg);color:var(--sidebar-text);padding:15px 20px;align-items:center}
nav a{color:var(--sidebar-text);text-decoration:none;font-weight:500}
nav .brand{font-size:1.5em;font-weight:700;color:var(--primary-color)}
#dark-switch{display:inline-block;vertical-align:middle;margin-left:20px}
.dswitch{position:absolute;left:-9999px}
.icon{top:4px;width:16px;height:16px;fill:var(--primary-hover);transition:transform .3s}
.fa-moon{left:5px;fill:#f1c40f;opacity:1}
.fa-sun{right:5px;fill:#f39c12;opacity:0}
.ball{position:absolute;top:2px;left:2px;width:20px;height:20px;fill:#fff;transition:transform .3s}
.dswitch:checked + .dswitch-label .ball{transform:translateX(26px)}
.dswitch:checked + .dswitch-label .fa-sun{opacity:1}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.product-img{height:200px;width:100%;object-fit:cover;border-radius:4px}
.qr-container{text-align:center;margin:20px}
.qr-img{border:5px solid #fff}

.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;z-index:1000;justify-content:center;align-items:center;opacity:1;transition:opacity .3s ease-in-out}
.modal:target{display:flex;opacity:1}
.modal-content{background:var(--card-bg);padding:30px;border-radius:8px;max-width:90%;box-shadow:0 5px 15px #0000004d;position:relative;border:1px solid var(--border-color)}
.modal-close-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;cursor:default}
.modal-header{margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:10px}
.modal-footer{margin-top:20px;display:flex;justify-content:flex-end;gap:10px}
.close-x{position:absolute;top:15px;right:15px;text-decoration:none;font-size:1.5rem;color:var(--text-color);line-height:1}
table{width:100%;border-collapse:collapse}
th,td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}
th{background-color:var(--bg-color);font-weight:600}
tr:hover{background-color:#00000005}
.badge{padding:4px 8px;border-radius:4px;font-size:.85em;font-weight:700}
.badge-paid{background:#d4edda;color:#155724}
.badge-pending{background:#fff3cd;color:#856404}
.badge-failed{background:#f8d7da;color:#721c24}

.admin-grid{display:grid;grid-template-columns:250px 1fr;gap:20px;min-height:100vh}
.sidebar{background-color:var(--sidebar-bg);color:var(--sidebar-text);padding:20px}
.sidebar h2{color:var(--primary-color);margin-top:0}
.sidebar a{display:block;color:inherit;padding:10px;text-decoration:none;margin-bottom:5px;border-radius:4px;transition:background .2s}
.sidebar a:hover,.sidebar a.active{background-color:#ffffff1a}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}
.stat-card{background-color:var(--card-bg);padding:20px;border-radius:8px;text-align:center;border:1px solid var(--border-color)}
.stat-num{font-size:2em;font-weight:700;color:var(--primary-color);margin-bottom:5px}
.flex{display:flex}
.flex-between{justify-content:space-between}
.items-center{align-items:center}
.gap-10{gap:10px}
.p-20{padding:20px}
.table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:5px}

.nav-icon{position:relative;display:inline-block;color:var(--sidebar-text);margin-left:15px}
.badge-count{position:absolute;top:-5px;right:-10px;background-color:var(--error-color);color:#fff;font-size:.7em;padding:2px 6px;border-radius:10px;font-weight:700}
.card-unread{border-left:5px solid var(--primary-color);background-color:#8e44ad0d}

.alert.alert-success{padding:10px;background:#03c03c;border-radius:5px;margin-bottom:10px}
.alert.alert-error{padding:10px;background:crimson;border-radius:5px;margin-bottom:10px}

#sidebar-toggle{display:none}
.menu-btn{display:none;cursor:pointer;padding:10px;background:var(--sidebar-bg);color:var(--sidebar-text);border-radius:4px}
.admin-grid{display:grid;grid-template-columns:250px 1fr;min-height:100vh;transition:all .3s ease}
.sidebar{background-color:var(--sidebar-bg);color:var(--sidebar-text);padding:20px;overflow-y:auto}
@media (max-width: 768px) {
.admin-grid{grid-template-columns:1fr}
.menu-btn{display:inline-block;margin:10px}
#sidebar-toggle:checked ~ .admin-grid .sidebar{left:0}
#sidebar-toggle:checked ~ .content-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}
}
.content-overlay{display:none}

.hero-banner{background:linear-gradient(#00000080,#00000080);background-size:cover;background-position:center;height:400px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;text-align:center;border-radius:8px;margin-bottom:40px}
.hero-banner h1{font-size:3em;margin:0}
.section-title{margin:40px 0 20px;border-bottom:2px solid var(--primary-color);display:inline-block;padding-bottom:5px}
.nav-right{display:flex;align-items:center;gap:15px}
.search-trigger{cursor:pointer;color:var(--sidebar-text)}
#searchModal .modal-content{max-width:800px}
.search-input-large{font-size:1.5em;padding:15px;width:100%;border-radius:30px}

nav{display:flex;justify-content:space-between;align-items:center}
.nav-right{display:flex;align-items:center;margin-left:auto}
.hero-banner{display:flex;align-items:center;justify-content:center;text-align:center}
.hero-content{max-width:800px}

.admin-grid{display:grid;grid-template-columns:250px 1fr;transition:grid-template-columns .3s ease}
.sidebar{transition:all .3s ease;transform:translateX(0)}
.topbar{height:60px;background:var(--card-bg);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;padding:0 20px;position:sticky;top:0;z-index:99}
.dropdown{position:relative}
.dropdown-menu{position:absolute;top:100%;right:0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:180px;z-index:1000;margin-top:10px}
.dropdown-menu a{display:flex;padding:12px 20px;text-decoration:none;color:var(--text-color)}
.dropdown-menu a:hover{background:#0000000d}
.dropdown-menu a svg{margin-top:3px;margin-right:5px}
.pass-wrapper{position:relative}
.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-color)}

.input-group{position:relative;display:flex;align-items:center}
.input-group .field-icon{position:absolute;left:12px;width:18px;height:18px;color:var(--text-color);opacity:.5;pointer-events:none;fill:var(--text-color)}
.input-group input{padding-left:40px!important}

.dswitch-label{display:flex;position:relative;width:42px;height:26px;background-color:#334155;border-radius:20px;cursor:pointer;align-items:center;justify-content:space-around;padding:0 4px}
.dswitch-label .icon{width:14px;height:14px;z-index:1;transition:opacity .2s}
.fa-moon{fill:#f1c40f}
.fa-sun{fill:#f39c12}
.dswitch-label .ball{position:absolute;top:2px;left:2px;width:22px;height:22px;background-color:#fff!important;border-radius:50%;transition:transform .3s cubic-bezier(0.4,0,0.2,1);z-index:5;box-shadow:0 1px 3px #0006}
.dswitch-label .fa-moon{opacity:1}
.dswitch-label .fa-sun{opacity:1}
.dswitch:checked + .dswitch-label .ball{transform:translateX(24px)}

.icon-white{fill:#ffffff !important}

body.dark-mode input[type="text"],body.dark-mode input[type="date"], body.dark-mode input[type="email"],body.dark-mode input[type="password"],body.dark-mode input[type="number"],
body.dark-mode textarea,body.dark-mode select, body.dark-mode select option{background-color:#0f172a;border:1px solid #334155;color:#f8fafc;}
body.dark-mode input:focus,body.dark-mode textarea:focus,body.dark-mode select:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #a855f733}
.icon-white{fill:#fff!important}
.btn svg{margin-right:0}
.btn.flex-gap svg{margin-right:8px}

.dropdown-menu{display:none;position:absolute;top:100%;right:0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 15px #0003;min-width:160px;z-index:1000;margin-top:5px}
.dropdown.active .dropdown-menu{display:block}
.search-container{position:relative;width:100%}
.search-results-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:0 0 8px 8px;max-height:300px;overflow-y:auto;z-index:1100;box-shadow:0 4px 6px #0000001a}
.search-result-item{padding:10px 15px;cursor:pointer;border-bottom:1px solid var(--border-color)}
.search-result-item:hover{background:#8e44ad1a}
.selected-items-list{margin-top:15px}
.tag{display:inline-flex;align-items:center;background:var(--primary-color);color:#fff;padding:5px 10px;border-radius:20px;margin:5px;font-size:.9em}
.tag .remove{cursor:pointer;margin-left:8px;font-weight:700}
.password-feedback .icon{fill:currentColor}

.mt-0 { margin-top: 0; }
.mt-20 { margin-top: 20px; }
.mb-20 { margin-bottom: 20px; }
.mt-30 { margin-top: 30px; }
.radius-8 { border-radius: 8px; }
.radius-4 { border-radius: 4px; }
.border-dashed { border-style: dashed; }
.bg-muted { background-color: rgba(0,0,0,0.03); }
body.dark-mode .bg-muted { background-color: rgba(255,255,255,0.05); }
.cursor-pointer { cursor: pointer; }
.text-primary { color: var(--primary-color); }
.border-top { border-top: 1px solid var(--border-color); }
.pt-20 { padding-top: 20px; }
.pb-15 { padding-bottom: 15px; }

.dropdown{position:relative;display:inline-block}
.dropdown-menu{display:none;position:absolute;top:100%;right:0;z-index:1000;min-width:200px;background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 20px #0000004d;margin-top:8px;overflow:hidden}
.dropdown:focus-within .dropdown-menu{display:block}
.dropdown-menu:hover{display:block}
.dropdown-menu a{display:block;padding:12px 20px;text-decoration:none;color:var(--text-color);transition:background .2s}
.dropdown-menu a:hover{background-color:#8e44ad1a}
.footer{background-color:var(--sidebar-bg);color:var(--sidebar-text);padding:60px 0 20px}
.footer h3, .footer h4 { color: var(--primary-color); }
.footer-links { list-style: none; padding: 0; }
.footer-links li { margin-bottom: 10px; }
.footer-links a { color: inherit; text-decoration: none; opacity: 0.8; }
.footer-links a:hover { opacity: 1; color: var(--primary-color); }
.mt-60 { margin-top: 60px; }

.upload-dropzone{border:2px dashed var(--border-color);border-radius:12px;padding:20px;text-align:center;background:#00000005;cursor:pointer;transition:all .2s ease;position:relative;display:block}
body.dark-mode .upload-dropzone{background:#ffffff05}
.upload-dropzone:hover{border-color:var(--primary-color);background:#8e44ad0d}
.upload-dropzone input[type="file"]{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;cursor:pointer}
.upload-icon{width:48px;height:48px;fill:var(--primary-color);margin-bottom:10px}
.footer{background-color:var(--sidebar-bg);color:var(--sidebar-text);padding:60px 0 30px;margin-top:80px;border-top:1px solid var(--border-color)}
.footer h3,.footer h4{color:var(--primary-color);margin-top:0}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:12px}
.footer-links a{color:inherit;text-decoration:none;opacity:.8;transition:opacity .2s}
.footer-links a:hover{opacity:1;color:var(--primary-color)}

.dropdown .icon-white{height:16px;width:16px}

.flag{width:30px;height:20px;display:block}
.dropdown-mini .dropdown-menu {
    min-width: 60px !important; /* Overrides the global 200px */
    width: 60px !important;
    left: 50%;
    transform: translateX(-50%); /* Centers the dropdown under the icon */
}

.dropdown-mini .dropdown-menu a{padding:10px 0;justify-content:center}
.dropdown-mini a.text-center{margin-left:15px}

.modal-content{max-height:85vh;overflow:auto}
@media (max-width: 480px){.modal-content{padding:16px}.modal-footer{flex-direction:column}.modal-footer .btn{ width:100%}
.nav-right{gap:10px}}
.responsive-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:768px){.responsive-grid{grid-template-columns:1fr}}

.btn-secondary{background:#64748b}
.btn-secondary:hover{background:#475569}
.btn-success{background:var(--success-color)}
.btn-success:hover{filter:brightness(.9)}
.justify-end{justify-content:flex-end}

.admin-grid{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.sidebar{overflow-y:auto;z-index:1001}
.content-overlay{display:none}
@media (max-width: 768px) {
.admin-grid{grid-template-columns:1fr}
.sidebar{top:0;bottom:0;transform:translateX(-110%);transition:transform .25s ease;display:table;width:fit-content;position:absolute;left:266px;z-index:99999}
#sidebar-toggle:checked ~ .admin-grid .sidebar{transform:translateX(0)}
#sidebar-toggle:checked ~ .content-overlay{display:block;position:fixed;inset:0;background:#0000008c;z-index:1002}
.topbar,main.p-20{width:100%}
main.p-20{padding:14px}
}
.menu-btn{display:inline-block}
.sidebar{overflow-y:auto;-webkit-overflow-scrolling:touch}
@media (max-width:768px){.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;transform:translateX(-110%);transition:transform .25s ease;z-index:1003}#sidebar-toggle:checked ~ .admin-grid .sidebar{transform:translateX(0)}#sidebar-toggle:checked ~ .content-overlay{display:block;position:static;inset:0;background:#0000008c;z-index:1002}}
@media (min-width:769px){#sidebar-toggle:checked ~ .admin-grid{grid-template-columns:0 1fr}#sidebar-toggle:checked ~ .admin-grid .sidebar{width:0;padding:0;overflow:hidden}}

img.captcha-image-main{height:150px;border-radius:50%}
.captcha-instructions svg{fill:white;height:25px;width:25px}

button[disabled],input[type="submit"][disabled],.btn[disabled],.btn.is-disabled{opacity:0.55;filter:grayscale(0.15);cursor:not-allowed !important}
button[disabled]:hover,input[type="submit"][disabled]:hover,.btn[disabled]:hover,.btn.is-disabled:hover{opacity:0.55}

.captcha-game-container{border:2px solid var(--border-color);border-radius:8px;transition:.3s;margin-bottom:10px}
.captcha-game-card{display:grid;grid-template-columns:1fr 180px;gap:15px;align-items:center;background:#0003;padding:15px;border-radius:8px;border:1px solid var(--border-color)}
.captcha-instructions{text-align:left}
.captcha-instructions h4{font-size:.9rem;margin-bottom:5px;color:var(--primary)}
.captcha-instructions p{font-size:.8rem;line-height:1.3;color:var(--text-muted)}
.captcha-game-controls{display:flex;flex-direction:column;align-items:center;gap:10px}
.captcha-image-wrapper{width:150px;height:150px;border-radius:50%;overflow:hidden;border:3px solid var(--border-color);background:#000;cursor:grab;touch-action:none;user-select:none}
.captcha-image-wrapper:active{cursor:grabbing}
.captcha-image-main{width:100%;height:100%;object-fit:contain;pointer-events:none}
.captcha-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);cursor:pointer}
.refresh-captcha-btn{padding:5px;display:flex;align-items:center;justify-content:center;border-radius:6px}
@keyframes captchaShake {
0%,100%{transform:translateX(0)}
25%{transform:translateX(-5px)}
75%{transform:translateX(5px)}
}
.captcha-game-container.shake{animation:captchaShake .5s;border-color:var(--error-color)!important}
.captcha-game-container.success-flash{border-color:var(--success-color)!important;box-shadow:0 0 10px var(--success-color)}
.captcha-game-container.solved{border-color:var(--success-color);background:#22c55e0d}
.captcha-game-container.solved .captcha-game-view{display:none}
.captcha-game-container.solved .captcha-success-view{display:flex!important}
@keyframes fadeIn {
from{opacity:0;transform:translateY(5px)}
to{opacity:1;transform:translateY(0)}
}
.captcha-success-view{display:none;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:14px 12px;border-radius:8px;border:1px solid var(--success-color);background:color-mix(in srgb,var(--success-color) 10%,transparent);color:var(--success-color);animation:fadeIn .3s ease}
.captcha-success-view .icon{width:32px;height:32px;flex:0 0 auto;fill:var(--success-color)}
.captcha-success-view p{font-weight:700;margin:0;font-size:1.05rem;line-height:1.2}
button:disabled,.btn:disabled,input:disabled,.captcha-slider:disabled{opacity:.55;cursor:not-allowed!important}
button:disabled:hover,.btn:disabled:hover{filter:none}
.captcha-image-wrapper.disabled,.captcha-game-container.solved .captcha-image-wrapper{cursor:not-allowed}
input[type="time"], input[type="time"]:focus {background:transparent;border:1px solid var(--primary-color);box-shadow:none;border-radius:5px}
.preserve-lines{white-space:pre-line;padding:10px}
.preserve-lines p{margin:0}

.sidebar-group-summary{display:flex;align-items:center;gap:10px;padding:10px;border-radius:6px;cursor:pointer;user-select:none}
.sidebar-group-summary:hover{background-color:#ffffff1a}
.sidebar-group-links{padding-left:6px}
.sidebar-group[open] .sidebar-group-summary svg.icon{transform:rotate(180deg)}
.sidebar-group-summary svg.icon{transition:transform .2s ease}
.no-underline, a p, a h3, a.text-inherit.no-underline{text-decoration:none;color: var(--primary-color)}
nav svg{fill:var(--success-color)}

.pswitch-label .ball{width:18px;height:18px;border-radius:999px;position:absolute;top:2px;left:2px;background:#fff;transition:transform .18s ease}
.pswitch input:checked + .pswitch-label{background:#27ae60}
.pswitch input:checked + .pswitch-label .ball{transform:translateX(22px)}

.admin-cms-details{overflow:hidden}
.admin-cms-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;user-select:none}
.admin-cms-details > summary::-webkit-details-marker{display:none}
.admin-cms-summary-left{display:flex;flex-direction:column;gap:2px}
.admin-cms-grid{grid-template-columns:1fr 1fr;gap:30px}
@media (max-width: 900px) {.admin-cms-grid{grid-template-columns:1fr}}
.admin-products-filters{margin-bottom:20px}
.admin-products-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.admin-products-types{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.admin-products-actions{margin-left:auto}
.admin-products-row-3{margin-top:10px}
.admin-products-search{flex:1 1 520px;min-width:260px}
.admin-products-order select{min-width:170px}

.tswitch{display:contents;position:relative}
.tswitch-input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
.tswitch-label{position:relative;display:inline-flex;align-items:center;height:28px;padding:0 12px 0 38px;border-radius:999px;cursor:pointer;user-select:none;background:#94a3b840;border:1px solid #94a3b840;transition:background .2s ease,border-color .2s ease}
.tswitch-text{font-size:14px;line-height:1;opacity:.95;padding-left:10px}
.tswitch-label .ball{position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .22s cubic-bezier(.4,0,.2,1)}
.tswitch-input:checked + .tswitch-label{background:var(--primary-hover);border-color:#ffffff26}
.tswitch-input:checked + .tswitch-label .ball{transform:translateX(22px)}
.tswitch-input:focus-visible + .tswitch-label{outline:2px solid #a78bfab3;outline-offset:2px}
.admin-lang-block .lang-visibility-toggle:not(:checked) ~ .lang-editor{display:none}
.admin-cms-details .page-toggle{position:absolute;left:-9999px}
.admin-cms-details .page-toggle:not(:checked) ~ .page-body{display:none}
.admin-lang-block .lang-toggle{position:absolute;left:-9999px}
.admin-lang-block .lang-toggle:not(:checked) ~ .lang-editor{display:none}
.admin-lang-block .tswitch-label{height:23px;padding-left:34px}
.admin-lang-block .tswitch-label .ball{width:20px;height:20px;top:2px;left:2px}
.admin-lang-block .lang-toggle:checked ~ .flex .tswitch-label .ball{transform:translateX(40px)}

details.admin-cms-details .page-body { display:none; }
details.admin-cms-details:has(.page-toggle:checked) .page-body { display:block; }
.admin-lang-block .lang-editor { display:none; }
.admin-lang-block:has(.lang-toggle:checked) .lang-editor { display:block; }
.tswitch { display:inline-flex; align-items:center; }
.tswitch .tswitch-label { margin:0; }

.admin-cms-details .page-body{display:none}
.admin-cms-details:has(.page-toggle:checked) .page-body{display:block}
.carousel { position: relative; }
.carousel-stage { border:1px solid var(--border-color); border-radius:12px; overflow:hidden; background:#000; }
.carousel-img { display:none; width:100%; aspect-ratio:1/1; object-fit:contain; }
.carousel-img.is-active { display:block; }

.carousel-btn {
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(0,0,0,0.45); border:0; color:#fff;
  width:42px; height:42px; border-radius:999px; cursor:pointer;
}
.carousel-btn.prev { left:10px; }
.carousel-btn.next { right:10px; }

.carousel-dots { display:flex; gap:8px; justify-content:center; margin-top:10px; }
.carousel-dot { width:10px; height:10px; border-radius:999px; border:1px solid var(--border-color); background:transparent; cursor:pointer; }
.carousel-dot.is-active { background: var(--primary-color); border-color: var(--primary-color); }

.product-images img{height:50px;width:50px}
.event-layout{display:grid;gap:30px;grid-template-columns:1fr}
@media (min-width:770px) {
.event-layout{grid-template-columns:420px 1fr}
}
.ticket-grid{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:770px){.ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.hero-container{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;border-radius:8px}
.hero-container::-webkit-scrollbar{height:10px}
.hero-container::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:999px}
.hero-container::-webkit-scrollbar-track{background:#00000026;border-radius:999px}
.hero-banner{flex:0 0 100%;scroll-snap-align:start;background-size:cover;background-position:center;height:400px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;text-align:center}

.shipping-option-card{border:1px solid #ffffff1f;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}
.is-selected{border:3px solid var(--primary-color);box-shadow:0 0 0 2px #00000026}

.beat{animation:beat 3s infinite}
#heart{color:#03c03c!important;font-size:20px;vertical-align:middle;content: "♥";--fa-animation-duration: 1s}
.heart{fill:#03c03c;height:20px;width:20px;vertical-align:bottom}
@keyframes beat {
0%{transform:scale(1)}
25%{transform:scale(1.1)}
40%{transform:scale(1)}
60%{transform:scale(1.15)}
100%{transform:scale(1)}
}
.badge.status-upcoming,.badge-ingredient{background:green;border-radius:25px}
.badge.status-past,.badge-combo{background:chocolate;border-radius:25px}
.badge.status-canceled{background:var(--error-color);border-radius:25px}
.badge-success{background:var(--success-color)}
input[name="new_password"]:valid + .password-feedback .strong-msg{display:flex!important}
.confirm-feedback.text-success { display: flex; color: var(--success-color); align-items:center; gap:8px; }
.confirm-feedback.text-error { display: flex; color: var(--danger-color); align-items:center; gap:8px; }
.demo-tour-overlay{position:fixed;inset:0;background:#0000008c;z-index:9998}
.demo-tour-card{position:fixed;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;background:var(--card-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 18px 40px #0000004d;padding:16px;z-index:9999}
.demo-tour-card h3{margin:0 0 10px;font-size:1rem}
.demo-tour-card p{margin:0;line-height:1.45}
.demo-tour-actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.demo-tour-actions-right{display:flex;gap:10px;margin-left:auto}
.demo-tour-card.is-centered{top:50%;left:50%;width:min(520px,calc(100vw - 32px));transform:translate(-50%,-50%)}
.demo-tour-target{position:relative;z-index:9999;border-radius:10px;box-shadow:0 0 0 4px #ffffff26 0 0 0 8px #8e44ad73}
.demo-tour-target-nav{position:relative;z-index:9999;border-radius:10px;box-shadow:0 0 0 4px #39ff1459 0 0 0 8px #39ff142e}
.demo-tour-target-nav summary,.demo-tour-target-nav a{border-radius:10px}
.demo-tour-target-nav-link{position:relative;z-index:9999;border-radius:10px;box-shadow:0 0 0 4px #39ff1473 0 0 0 8px #39ff1433}
