:root{--bg: #faf8f7;--card-bg: #ffffff;--ink: #2b2b2b;--muted: #8a8a8a;--line: #ececec;--pink: #d6336c;--pink-soft: #fde7ef;--sale: #e8413a;--shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 6px 18px rgba(0, 0, 0, .05)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Noto Sans TC,Microsoft JhengHei,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app{max-width:1280px;margin:0 auto;padding:0 20px 64px}.header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:28px 4px 18px;border-bottom:1px solid var(--line)}.header__brand{display:flex;align-items:baseline;gap:12px}.header__logo{font-weight:800;letter-spacing:3px;font-size:24px}.header__sub{color:var(--muted);font-size:14px;letter-spacing:1px}.header__meta{color:var(--muted);font-size:13px;display:flex;gap:8px;align-items:center}.header__meta .dot{opacity:.5}.btn{font-size:13px;font-weight:600;padding:8px 14px;border-radius:10px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);transition:all .15s;white-space:nowrap}.btn:hover{border-color:var(--pink);color:var(--pink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--pink);border-color:var(--pink);color:#fff}.btn--primary:hover{filter:brightness(1.05);color:#fff}.btn--ghost{background:#fff}.linklike{border:none;background:none;color:var(--pink);cursor:pointer;font-size:13px;padding:4px 0}.linklike:hover{text-decoration:underline}.coating{max-width:760px;margin:0 auto;padding:18px 16px 60px}.coating__bar{position:sticky;top:0;display:flex;align-items:center;gap:14px;padding:14px 4px;background:var(--bg);border-bottom:1px solid var(--line);z-index:5}.coating__back{font-size:14px;color:var(--pink);border:1px solid var(--line);padding:7px 14px;border-radius:999px;background:#fff}.coating__back:hover{border-color:var(--pink)}.coating__title{font-size:18px;font-weight:800;letter-spacing:2px}.coating__imgwrap{display:block;margin-top:18px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.coating__img{width:100%;height:auto;display:block}.coating__cta{display:block;width:max-content;max-width:100%;margin:20px auto 0;padding:13px 26px;background:var(--pink);color:#fff;font-weight:700;border-radius:12px;text-align:center}.coating__cta:hover{filter:brightness(1.05)}.brands{margin-top:18px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:16px}.brands__title{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:1px;margin-bottom:12px}.brands__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.brands__banners{display:flex;flex-wrap:wrap;gap:12px}.brands__banners+.brands__grid{margin-top:12px}.brandbanner{height:150px;flex:0 0 auto;border-radius:14px;overflow:hidden;border:1px solid var(--line);transition:transform .15s,box-shadow .15s}.brandbanner:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.brandbanner__img{height:100%;width:auto;display:block}.brandtile{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fafafa;transition:all .15s}.brandtile:hover{border-color:var(--pink);background:#fff;transform:translateY(-2px);box-shadow:var(--shadow)}.brandtile__logo{width:40px;height:40px;flex-shrink:0;border-radius:10px;color:#fff;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;overflow:hidden}.brandtile__logo img{width:100%;height:100%;object-fit:cover}.brandtile__txt{min-width:0}.brandtile__name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brandtile__sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.promo{margin-top:18px;padding:18px 20px;border:1px solid var(--pink);background:linear-gradient(180deg,var(--pink-soft),#fff 70%);border-radius:16px}.promo__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.promo__title{font-size:17px;font-weight:800;letter-spacing:1px;display:flex;align-items:center;gap:8px}.promo__star{color:var(--pink)}.promo__count{font-size:12px;font-weight:700;background:var(--pink);color:#fff;border-radius:999px;padding:2px 9px}.promo__actions{display:flex;gap:8px;flex-wrap:wrap}.promo__empty{margin-top:14px;padding:26px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:12px}.promo__grid{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.promocard{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.promocard__imgwrap{position:relative;aspect-ratio:1 / 1;background:#f1efee}.promocard__img{width:100%;height:100%;object-fit:cover;display:block}.promocard__noimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}.promocard__star{position:absolute;top:8px;left:8px;background:var(--pink);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}.promocard__body{padding:10px 12px;display:flex;flex-direction:column;gap:6px;flex:1}.promocard__name{font-size:14px;font-weight:500;line-height:1.4}.promocard__name a:hover{color:var(--pink);text-decoration:underline}.promocard__note{font-size:12px;color:var(--pink);background:var(--pink-soft);padding:3px 8px;border-radius:6px;align-self:flex-start}.promocard__price{display:flex;align-items:baseline;gap:8px;margin-top:auto}.promocard__ctrl{display:flex;gap:2px;padding:6px 8px;border-top:1px solid var(--line)}.promocard__ctrl button{flex:1;border:none;background:#fafafa;border-radius:7px;padding:6px;cursor:pointer;color:var(--ink);font-size:13px}.promocard__ctrl button:hover:not(:disabled){background:var(--pink-soft);color:var(--pink)}.promocard__ctrl button:disabled{opacity:.3;cursor:not-allowed}.promocard__ctrl button.danger:hover{background:#fdecec;color:var(--sale)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal__panel{background:#fff;width:100%;max-width:460px;max-height:90vh;overflow:auto;border-radius:16px;box-shadow:0 20px 60px #00000040}.modal__head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.modal__head h3{margin:0;font-size:16px}.modal__x{border:none;background:none;font-size:18px;cursor:pointer;color:var(--muted)}.modal__body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.modal__foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line)}.uploader{display:block;border:2px dashed var(--line);border-radius:12px;overflow:hidden;cursor:pointer;transition:border-color .15s}.uploader:hover{border-color:var(--pink)}.uploader__preview{width:100%;max-height:240px;object-fit:contain;display:block;background:#faf8f7}.uploader__empty{padding:34px 16px;text-align:center;color:var(--muted)}.uploader__icon{font-size:30px}.uploader__hint{font-size:12px;margin-top:4px;opacity:.8}.formrow{display:flex;flex-direction:column;gap:5px}.formrow--2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formrow--2 label{display:flex;flex-direction:column;gap:5px}.formrow__label{font-size:12px;color:var(--muted)}.modal__body input{height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;outline:none}.modal__body input:focus{border-color:var(--pink)}.formerr{color:var(--sale);font-size:13px}.toolbar{position:sticky;top:0;z-index:5;background:var(--bg);padding:16px 4px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.toolbar__row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}.toolbar__row--between{justify-content:space-between;align-items:center}.field{display:flex;flex-direction:column;gap:5px}.field--grow{flex:1 1 260px;min-width:200px}.field__label{font-size:12px;color:var(--muted);letter-spacing:.5px}.field select,.field input{height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:14px;color:var(--ink);outline:none;transition:border-color .15s}.field select:focus,.field input:focus{border-color:var(--pink)}.segmented{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}.seg{border:none;background:transparent;padding:7px 16px;border-radius:8px;font-size:14px;cursor:pointer;color:var(--muted)}.seg--active{background:var(--pink);color:#fff}.toolbar__right{display:flex;align-items:center;gap:14px}.sharebtn{border:1px solid var(--pink);background:var(--pink);color:#fff;font-size:13px;font-weight:600;padding:8px 14px;border-radius:10px;cursor:pointer;white-space:nowrap;transition:all .15s}.sharebtn:hover{filter:brightness(1.05)}.sharebtn--ok{background:#2e9e5b;border-color:#2e9e5b}.segmented--view .seg{padding:7px 12px}.count{font-size:14px;color:var(--muted);white-space:nowrap}.count b{color:var(--ink)}.tagcloud{margin-top:18px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px}.tagcloud__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.tagcloud__title{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:1px}.tagcloud__clear{border:none;background:transparent;color:var(--pink);font-size:13px;cursor:pointer;padding:2px 6px}.tagcloud__clear:hover{text-decoration:underline}.tagcloud__body{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}.tag{display:inline-flex;align-items:center;gap:5px;line-height:1.1;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fafafa;color:var(--ink);cursor:pointer;transition:all .12s}.tag:hover{border-color:var(--pink);color:var(--pink)}.tag--active{background:var(--pink);border-color:var(--pink);color:#fff}.tag__count{font-size:11px;background:#0000000f;color:var(--muted);border-radius:999px;padding:1px 6px}.tag--active .tag__count{background:#ffffff40;color:#fff}.main{padding-top:22px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px}.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:14px}.list thead th{text-align:left;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.5px;padding:12px 16px;background:#fbfafa;border-bottom:1px solid var(--line)}.list__col-idx{width:44px}.list__col-price{width:170px;white-space:nowrap}.list__col-tags{width:38%}.list tbody tr{border-bottom:1px solid var(--line)}.list tbody tr:last-child{border-bottom:none}.list tbody tr:hover{background:#fcf7f9}.list td{padding:11px 16px;vertical-align:middle}.list__idx{color:var(--muted);font-variant-numeric:tabular-nums}.list__name a{font-weight:500}.list__name a:hover{color:var(--pink);text-decoration:underline}.list__badge{margin-right:8px;vertical-align:middle}.list__price{white-space:nowrap}.list__price .price{font-size:15px}.list__price .price--original{margin-left:8px}.list__tags{display:flex;flex-wrap:wrap;gap:5px}.card{background:var(--card-bg);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.card__imgwrap{position:relative;aspect-ratio:1 / 1;background:#f1efee;overflow:hidden}.card__img{width:100%;height:100%;object-fit:cover;display:block}.card:hover .card__img{transform:scale(1.03);transition:transform .4s ease}.card__badges{position:absolute;top:10px;left:10px;display:flex;gap:6px}.badge{font-size:11px;padding:3px 8px;border-radius:999px;font-weight:700;letter-spacing:.5px;color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.badge--combo{background:var(--pink)}.badge--sale{background:var(--sale)}.badge--adult{background:#444}.card__body{padding:12px 14px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.card__name{font-size:14px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}.card__price{display:flex;align-items:baseline;gap:8px;margin-top:auto}.card__tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.chip{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:#fafafa;color:var(--muted);cursor:pointer;transition:all .12s}.chip:hover{border-color:var(--pink);color:var(--pink)}.chip--active{background:var(--pink-soft);border-color:var(--pink);color:var(--pink)}.price{font-size:16px;font-weight:700}.price--special{color:var(--sale)}.price--original{font-size:13px;font-weight:400;color:var(--muted);text-decoration:line-through}.subscribe{margin-top:40px;padding:26px 24px;background:var(--pink-soft);border:1px solid var(--line);border-radius:16px;text-align:center}.subscribe__title{font-size:17px;font-weight:800;letter-spacing:1px}.subscribe__desc{font-size:13px;color:var(--muted);margin-top:4px}.subscribe__form{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.subscribe__form input{height:42px;width:280px;max-width:100%;padding:0 14px;border:1px solid var(--line);border-radius:10px;font-size:15px;outline:none}.subscribe__form input:focus{border-color:var(--pink)}.subscribe__form .btn{height:42px}.subscribe__msg{margin-top:12px;font-size:14px;color:var(--ok)}.subscribe__msg--err{color:var(--sale)}.state{padding:60px 0;text-align:center;color:var(--muted)}.state--error{color:var(--sale)}.footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center}
