:root{--ink:#1a2421;--ink-soft:#3d4a45;--muted:#6b7872;--line:#1a24211a;--surface:#ffffffc7;--surface-solid:#f4f7f5;--bg0:#d7e4dc;--bg1:#eef3ef;--bg2:#c5d8cf;--accent:#e85d04;--accent-deep:#c44900;--ok:#2a6b4f;--danger:#b42318;--reserved:#9a6b2f;--sold:#7a8580;--radius:14px;--shadow:0 12px 40px #1a242124;--font:"Noto Sans TC", system-ui, sans-serif;--display:"Noto Serif TC", "Songti TC", serif;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{min-height:100%;font-family:var(--font);color:var(--ink);background:radial-gradient(120% 80% at 10% -10%, #f7faf8 0%, transparent 55%), radial-gradient(90% 70% at 100% 0%, #cfe0d6 0%, transparent 50%), linear-gradient(165deg, var(--bg1), var(--bg0) 45%, var(--bg2));-webkit-font-smoothing:antialiased;margin:0}body{justify-content:center;padding:16px 12px 24px;display:flex}#root{justify-content:center;width:min(420px,100%);display:flex}.phone-shell{width:min(420px,100%);min-height:min(860px,100vh - 32px);max-height:920px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#ffffff8c,#ffffff47);border:1px solid #ffffff8c;border-radius:28px;flex-direction:column;display:flex;position:relative;overflow:hidden}.banner{aspect-ratio:16/9;background:linear-gradient(145deg,#2c3a34 0%,#5f7a6c 48%,#c4a574 100%);flex:none;width:100%;max-height:220px;position:relative;overflow:hidden}.banner.has-image{background:#1a2421}.banner.is-empty-buyer{display:none}.banner-image{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.banner-empty{color:#ffffffe0;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:16px;display:flex;position:absolute;inset:0}.banner-empty-title{font-family:var(--display);margin:0;font-size:18px;font-weight:700}.banner-empty-desc{opacity:.85;margin:0;font-size:12px}.banner.has-image .banner-empty{display:none}.banner-actions{z-index:2;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.banner-btn{height:32px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffffeb;border:none;border-radius:999px;padding:0 12px;font-size:12px;font-weight:600;box-shadow:0 4px 14px #0000002e}.banner-btn.ghost{color:#fff;background:#1a2421b8}.banner-btn.danger{color:#fff;background:#b42318e6}.topbar{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 8px;display:flex}.brand{font-family:var(--display);letter-spacing:.02em;margin:0;font-size:clamp(26px,7vw,32px);font-weight:700;line-height:1.15}.shop-tagline{max-width:20em;color:var(--ink-soft);font-family:var(--display);letter-spacing:.02em;margin:10px 0 0;font-size:13px;font-weight:600;line-height:1.55}.icon-btn{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--ink);cursor:pointer;border-radius:12px;place-items:center;display:grid}.mode-row{justify-content:space-between;align-items:center;padding:0 18px 8px;display:flex}.mode-chip{height:26px;color:var(--ok);background:#2a6b4f1f;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.mode-chip.seller{color:var(--accent-deep);background:#e85d041f}.tags-scroll{scrollbar-width:none;gap:8px;padding:4px 18px 12px;display:flex;overflow-x:auto}.tags-scroll::-webkit-scrollbar{display:none}.tag-chip{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#ffffff8c;border-radius:999px;flex:none;padding:7px 12px;font-size:13px;font-weight:500}.tag-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.content{-webkit-overflow-scrolling:touch;flex:1;padding:0 14px 110px;overflow-y:auto}.grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.card{text-align:left;cursor:pointer;background:0 0;border:none;padding:0;animation:.35s both rise;position:relative}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.card-media{aspect-ratio:1/1.05;background:linear-gradient(145deg,#b7c9bf,#8fa89a);border-radius:16px;position:relative;overflow:hidden}.card-media img{object-fit:cover;width:100%;height:100%;display:block}.card-check{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#0000;background:#1a242140;border:1.5px solid #ffffffd9;border-radius:8px;place-items:center;width:26px;height:26px;transition:all .2s;display:grid;position:absolute;top:8px;left:8px}.card.wanted .card-check{background:var(--accent);border-color:var(--accent);color:#fff}.card-check svg{width:14px;height:14px}.status-badge{color:var(--sold);background:#ffffffe6;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:700;position:absolute;top:8px;right:8px}.status-badge.reserved{color:var(--reserved)}.status-badge.sold{color:#fff;background:#1a2421b8}.card.sold .card-media img{filter:grayscale(.7)brightness(.85)}.card.sold .card-check{display:none}.card-meta{padding:8px 2px 2px}.card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.card-sub{justify-content:space-between;align-items:baseline;gap:6px;margin:4px 0 0;display:flex}.price{color:var(--accent-deep);font-size:15px;font-weight:700}.condition{color:var(--muted);font-size:12px}.seller-list{flex-direction:column;gap:10px;display:flex}.seller-row{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:16px;grid-template-columns:72px 1fr auto;align-items:center;gap:10px;padding:10px;animation:.3s both rise;display:grid}.seller-thumb{object-fit:cover;background:#b7c9bf;border-radius:12px;width:72px;height:72px}.seller-info h3{margin:0;font-size:15px;font-weight:600}.seller-info p{color:var(--muted);margin:4px 0 0;font-size:12px}.status-select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:6px 8px;font-size:12px}.wishlist-dock{left:14px;right:14px;bottom:calc(14px + var(--safe-b));z-index:5;position:absolute}.wishlist-cta{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:16px;justify-content:space-between;align-items:center;width:100%;height:54px;padding:0 18px;font-size:16px;font-weight:600;transition:transform .15s;display:flex;box-shadow:0 10px 28px #1a242147}.wishlist-cta:active{transform:scale(.985)}.wishlist-count{background:var(--accent);border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 8px;font-size:14px;display:grid}.fab{right:16px;bottom:calc(18px + var(--safe-b));background:var(--accent);color:#fff;cursor:pointer;z-index:5;border:none;border-radius:18px;width:56px;height:56px;font-size:28px;line-height:1;position:absolute;box-shadow:0 10px 24px #e85d0459}.overlay{z-index:40;background:#1218166b;justify-content:center;align-items:flex-end;padding:12px;animation:.2s fade;display:flex;position:fixed;inset:0}.overlay.center{align-items:center}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{background:var(--surface-solid);width:min(420px,100%);max-height:min(88vh,760px);padding:10px 16px calc(16px + var(--safe-b));box-shadow:var(--shadow);border-radius:24px 24px 20px 20px;animation:.28s slideUp;overflow:auto}@keyframes slideUp{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}.sheet-handle{background:#1a24212e;border-radius:99px;width:42px;height:4px;margin:4px auto 12px}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sheet-head h2{font-family:var(--display);margin:0;font-size:22px}.sheet-hint{color:var(--muted);margin:8px 0 14px;font-size:12px}.wishlist-list{flex-direction:column;gap:8px;display:flex}.wish-row{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:56px 1fr auto;align-items:center;gap:10px;padding:8px;display:grid}.wish-row img{object-fit:cover;border-radius:10px;width:56px;height:56px}.wish-row h3{margin:0;font-size:14px;font-weight:600}.wish-row p{color:var(--muted);margin:3px 0 0;font-size:12px}.wish-price{color:var(--accent-deep);text-align:right;font-size:14px;font-weight:700}.remove-wish{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:12px}.modal{background:var(--surface-solid);width:min(360px,100%);box-shadow:var(--shadow);border-radius:20px;padding:22px 18px 16px;animation:.25s rise}.modal h2{font-family:var(--display);margin:0;font-size:24px}.modal-desc{color:var(--muted);margin:8px 0 16px;font-size:14px;line-height:1.5}.pin-dots{justify-content:center;gap:12px;margin-bottom:12px;display:flex}.pin-dots span{border:1.5px solid var(--ink);background:0 0;border-radius:50%;width:12px;height:12px;transition:all .15s}.pin-dots span.filled{background:var(--ink)}.pin-input{border:1px solid var(--line);text-align:center;letter-spacing:.4em;background:#fff;border-radius:12px;width:100%;height:48px;font-size:22px}.modal-actions{gap:8px;margin-top:14px;display:flex}.error-text{color:var(--danger);text-align:center;margin:8px 0 0;font-size:13px}.item-form{flex-direction:column;gap:12px;display:flex}.photo-field{cursor:pointer}.photo-preview{width:100%;font:inherit;color:inherit;cursor:pointer;aspect-ratio:16/10;background:linear-gradient(135deg,#b7c9bf73,#ffffffb3);border:1.5px dashed #1a242140;border-radius:16px;place-items:center;margin:0;padding:0;display:grid;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;height:100%}.photo-placeholder{color:var(--muted);font-size:14px;font-weight:500}.field{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.field input,.field select{border:1px solid var(--line);height:44px;font:inherit;color:var(--ink);background:#fff;border-radius:12px;padding:0 12px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tag-editor{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px}.tag-picks{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.tag-pick{border:1px solid var(--line);cursor:pointer;background:#f3f6f4;border-radius:999px;padding:6px 10px;font-size:12px}.tag-pick.on{background:var(--ink);color:#fff;border-color:var(--ink)}.tag-add-row{gap:6px;display:flex}.tag-add-row input{border:1px solid var(--line);height:36px;font:inherit;border-radius:10px;flex:1;padding:0 10px}.form-actions{gap:8px;margin-top:4px;display:flex}.primary-btn,.ghost-btn,.danger-btn,.text-link{font:inherit;cursor:pointer}.primary-btn{background:var(--ink);color:#fff;border:none;border-radius:12px;height:46px;padding:0 16px;font-weight:600}.ghost-btn{border:1px solid var(--line);height:46px;color:var(--ink);background:#fff;border-radius:12px;padding:0 14px;font-weight:500}.ghost-btn.compact{height:36px;padding:0 12px;font-size:13px}.danger-btn{height:46px;color:var(--danger);background:#b423181a;border:none;border-radius:12px;padding:0 14px;font-weight:600}.text-link{color:var(--accent-deep);background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.grow{flex:1}.hidden{display:none!important}.empty{text-align:center;color:var(--muted);margin:40px 8px}.empty strong{color:var(--ink);font-family:var(--display);margin-bottom:6px;font-size:20px;display:block}.toast{background:var(--ink);color:#fff;z-index:60;border-radius:999px;padding:10px 16px;font-size:13px;font-weight:500;animation:.2s rise;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@media (width<=480px){body{background:var(--bg1);padding:0}.phone-shell{width:100%;min-height:100vh;max-height:none;box-shadow:none;border:none;border-radius:0}.overlay{padding:0}.sheet{border-radius:22px 22px 0 0;width:100%;max-height:92vh}}
