*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-heading);line-height:1.15}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.container{max-width:1100px;margin:0 auto;padding:0 20px}.header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--color-surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border)}.header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;max-width:1100px;margin:0 auto}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-heading);font-size:22px;font-weight:700;color:var(--color-primary)}.brand img{width:38px;height:38px;object-fit:contain;border-radius:8px}.header__controls{display:flex;align-items:center;gap:10px}.select{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:10px;padding:7px 10px;font-size:14px}.hero{text-align:center;padding:64px 20px 32px}.hero h1{font-size:clamp(32px,6vw,56px);margin:0 0 12px}.hero p{color:var(--color-muted);max-width:560px;margin:0 auto 24px;font-size:18px}.btn{border:none;border-radius:12px;padding:12px 20px;font-size:15px;font-weight:600;transition:transform .06s ease,opacity .2s ease}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--color-primary);color:var(--color-primary-text)}.btn--ghost{background:transparent;color:var(--color-text);border:1px solid var(--color-border)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--block{width:100%}.shop__head{text-align:center;padding:32px 20px 8px}.shop__head p{color:var(--color-muted)}.filters{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:20px 0}.chip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:7px 16px;font-size:14px}.chip--active{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.stock-banner{margin:8px 0 4px;padding:12px 16px;border-radius:var(--radius);background:color-mix(in srgb,var(--color-accent) 18%,transparent);border:1px solid var(--color-accent);color:var(--color-text);text-align:center;font-weight:600;font-size:15px}.luck-modal{text-align:center}.luck-wheel-wrap{position:relative;width:200px;height:200px;margin:18px auto}.luck-pointer{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:20px solid var(--color-text);z-index:2;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}.luck-wheel{width:200px;height:200px;border-radius:50%;position:relative;border:6px solid var(--color-surface);box-shadow:0 0 0 3px var(--color-border),0 6px 18px #0000002e;background:conic-gradient(var(--color-primary) 0deg 90deg,var(--color-accent) 90deg 180deg,var(--color-primary) 180deg 270deg,var(--color-accent) 270deg 360deg);will-change:transform}.luck-seg-label{position:absolute;left:50%;top:50%;font-size:13px;font-weight:800;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.35);pointer-events:none}.luck-status{font-weight:700;color:var(--color-muted);letter-spacing:1px}.line-section{margin-top:8px}.line-section__title{font-size:24px;margin:24px 0 4px;padding-bottom:8px;border-bottom:2px solid var(--color-border);color:var(--color-primary)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;padding:16px 0 56px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.card__img{aspect-ratio:4 / 3;width:100%;object-fit:contain;padding:10px;background:var(--color-bg)}.card__body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}.card__name{font-weight:700;font-size:17px}.card__desc{color:var(--color-muted);font-size:14px;flex:1}.card__price{font-size:20px;font-weight:800;color:var(--color-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:420px;padding:24px;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 4px;font-size:22px}.modal__note{color:var(--color-muted);font-size:13px;margin:0 0 18px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:14px;font-weight:600}.input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;padding:11px 12px;font-size:15px;color:var(--color-text)}.input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.alert{background:color-mix(in srgb,var(--color-accent) 18%,transparent);border:1px solid var(--color-accent);border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:14px}.alert--error{background:color-mix(in srgb,#e23b3b 14%,transparent);border-color:#e23b3b}.alert--success{background:color-mix(in srgb,#2faa5d 16%,transparent);border-color:#2faa5d}.hint{color:var(--color-muted);font-size:12px;text-align:center;margin-top:8px}.modal__row{display:flex;gap:12px}.modal__row>*{flex:1}.admin-auth{min-height:100vh;display:flex;padding:24px}.admin-header{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.admin-tabs{display:flex;gap:6px;flex:1}.admin-tabs button{background:transparent;border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:7px 16px;font-size:14px}.admin-tabs button.active{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.admin-main{padding:24px 20px 60px}.admin-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.admin-table{width:100%;border-collapse:collapse;font-size:14px;background:var(--color-surface);border-radius:var(--radius);overflow:hidden}.admin-table th,.admin-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--color-border)}.admin-table th{background:var(--color-bg);font-weight:700}.badge{display:inline-block;background:color-mix(in srgb,var(--color-accent) 22%,transparent);border:1px solid var(--color-accent);border-radius:999px;padding:2px 10px;font-size:12px}.badge--btn{cursor:pointer}.btn--sm{padding:6px 10px;font-size:13px;margin-left:4px}.admin-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;max-width:640px}.admin-fieldset{border:1px solid var(--color-border);border-radius:10px;padding:12px 14px;margin:14px 0}.admin-fieldset legend{font-weight:700;padding:0 6px}.admin-check{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:14px}.img-upload{display:flex;gap:14px;align-items:flex-start}.img-upload__preview{width:96px;height:72px;object-fit:contain;border-radius:10px;border:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.img-upload__controls{display:flex;flex-direction:column;gap:6px;flex:1}.footer{border-top:1px solid var(--color-border);padding:28px 20px;text-align:center;color:var(--color-muted);font-size:14px}
