:root{color:#201919;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f0ee;font-family:Inter,Noto Sans TC,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f5f0ee;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{transition:transform .15s,opacity .15s}button:hover{transform:translateY(-1px)}#root{min-height:100vh}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;font-size:clamp(1.6rem,3vw,2.5rem)}h2{font-size:clamp(1.2rem,2vw,1.9rem)}.app-shell{color:#1f1a1a;background:linear-gradient(#f6f1ef 0%,#f0ece9 100%);min-height:100vh}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#ffffff73;border-bottom:1px solid #4d3a3a1f;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.brand-block{align-items:center;gap:12px;display:flex}.brand-mark{color:#8d2d2d;border:1px solid #552a2a59;border-radius:50%;place-items:center;width:36px;height:36px;font-size:1.1rem;display:grid}.brand-block strong{letter-spacing:.08em;font-size:1rem;display:block}.brand-block span{color:#6b4d4d;font-size:.7rem;display:block}.nav-tabs{gap:8px;display:flex}.tab,.primary,.secondary,.mini{cursor:pointer;border:none;border-radius:999px;padding:10px 16px;font-size:.9rem;transition:all .2s}.tab{color:#4c3a3a;background:0 0;border:1px solid #0000}.tab.active{color:#fff;background:#2d1b1b}.primary{color:#fff;background:#9d2d2d}.secondary,.mini{color:#3a2f2f;background:#f3ece9;border:1px solid #4526261f}.content-grid{grid-template-columns:220px minmax(0,1fr) 320px;gap:18px;padding:24px;display:grid}.activity-sidebar,.catalog-panel,.summary-panel,.admin-panel,.login-card{background:#ffffffa6;border:1px solid #5741411f;border-radius:20px;box-shadow:0 12px 30px #3b2a2a0f}.activity-sidebar{padding:18px 14px}.activity-sidebar h3,.summary-panel h3,.catalog-panel h1,.admin-panel h2{margin:0 0 14px}.activity-card{text-align:left;cursor:pointer;background:#f9f4f2;border:1px solid #4d3d3d24;border-radius:14px;flex-direction:column;gap:4px;width:100%;margin-bottom:10px;padding:12px 10px;display:flex}.activity-card.active{color:#fff;background:#2d1b1b}.activity-card small{opacity:.8}.catalog-panel{padding:20px}.catalog-header,.panel-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#7d5e5e;margin:0 0 6px;font-size:.7rem}.product-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.product-card{background:#fffaf8;border:1px solid #563e3e24;border-radius:18px;grid-template-columns:120px minmax(0,1fr);align-items:stretch;gap:16px;padding:12px;display:grid;overflow:hidden}.product-visual{background:linear-gradient(135deg,#f4e0d9 0%,#e6e8ef 100%);border:1px solid #563e3e1f;border-radius:14px;flex-shrink:0;place-items:center;width:120px;height:120px;padding:0;display:grid;position:relative;overflow:hidden}.product-visual-button{cursor:pointer}.image-crop{background:linear-gradient(135deg,#f4e0d9 0%,#e6e8ef 100%);border-radius:12px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.image-crop img{object-fit:none;pointer-events:none;image-rendering:auto;max-width:none;display:block;position:absolute}.product-image,.product-emoji{object-fit:contain;object-position:center;width:100%;height:100%;display:block}.product-emoji{place-items:center;font-size:3rem;display:grid}.product-body{flex-direction:column;justify-content:center;min-width:0;display:flex}.product-topline{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.product-code{color:#7c5f5f;letter-spacing:.08em;font-size:.7rem}.product-limit{color:#8a6a6a;font-size:.7rem}.product-card h3{margin:0;font-size:1.1rem;line-height:1.4}.product-subtitle{color:#6b5656;margin:4px 0 8px;font-size:.82rem}.variant{color:#553b3b;background:#f5eee9;border-radius:999px;margin-bottom:10px;padding:4px 8px;font-size:.75rem;display:inline-block}.price-row{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.price-row strong{font-size:1.15rem}.note{color:#735f5f;margin:0 0 12px;font-size:.78rem;line-height:1.5}.qty-control{align-items:center;gap:8px;display:flex}.qty-control button{background:#f5f0ee;border:1px solid #563e3e29;border-radius:50%;width:30px;height:30px}.qty-control input{text-align:center;width:58px}.warning{color:#b35050;margin-top:8px;font-size:.72rem;font-weight:600;display:inline-block}.mini-total{color:#4b3d3d;margin-top:10px;font-size:.8rem}.image-badge,.image-review{z-index:2;color:#fff;background:#291b1bb3;border-radius:999px;padding:4px 8px;font-size:.62rem;font-weight:700;position:absolute;bottom:8px;right:8px}.image-review{background:#bf612deb;top:8px;bottom:auto}@media (width<=900px){.product-card{grid-template-columns:96px minmax(0,1fr);gap:12px}.product-visual{width:96px;height:96px}}.image-badge,.review-badge,.image-review{color:#fff;background:#241616b8;border-radius:999px;padding:4px 8px;font-size:.65rem;font-weight:700;position:absolute;bottom:10px;right:10px}.image-review,.review-badge{background:#bf612deb;top:10px;bottom:auto;right:10px}.image-modal-backdrop{z-index:80;background:#0f0c0cb3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.image-modal{background:#fffaf8;border:1px solid #4f3a3a1f;border-radius:18px;width:min(560px,90vw);padding:18px;position:relative;box-shadow:0 30px 80px #00000040}.image-modal-close{cursor:pointer;background:#efe1dd;border:none;border-radius:50%;width:32px;height:32px;font-size:1.4rem;position:absolute;top:10px;right:12px}.image-modal-frame{background:linear-gradient(135deg,#f6efe7 0%,#ebedf0 100%);border-radius:12px;place-items:center;width:100%;height:420px;display:grid;overflow:hidden}.image-modal-frame .product-image{width:100%;height:100%}.image-modal-meta{flex-direction:column;gap:4px;margin-top:12px;display:flex}.image-modal-meta small{color:#6e5858}.product-thumb{background:linear-gradient(135deg,#f5e7df 0%,#edf0f7 100%);border:1px solid #4f3a3a1f;border-radius:12px;place-items:center;width:120px;height:120px;display:grid;position:relative;overflow:hidden}.product-thumb .product-image,.product-thumb .product-emoji{object-fit:contain;width:100%;height:100%}.product-thumb .product-emoji{font-size:2.4rem}.editor-grid input{width:100%}@media (width<=768px){.content-grid{grid-template-columns:1fr;padding:16px}.product-grid{grid-template-columns:1fr}.summary-panel{order:3}.product-visual{height:180px}.image-modal-frame{height:300px}.admin-item,.editor-grid{grid-template-columns:1fr}}.product-body{padding:14px}.product-topline,.price-row,.summary-row,.summary-item,.activity-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.product-code,.product-limit{color:#7a5b5b;font-size:.72rem}.product-body h3{margin:10px 0 4px;font-size:1.05rem}.product-subtitle,.variant,.note{color:#695a5a;margin:0;font-size:.78rem}.price-row{margin:12px 0 8px}.price-row strong{color:#8c2d2d;font-size:1.05rem}.qty-control{background:#fff;border:1px solid #4e3b3b24;border-radius:12px;grid-template-columns:36px 1fr 36px;margin-top:10px;display:grid;overflow:hidden}.qty-control button{cursor:pointer;background:#f2e7e3;border:none;font-size:1.2rem}.qty-control input{text-align:center;background:0 0;border:none;padding:10px 8px;font-size:1rem}.warning{color:#b64040;margin-top:10px;font-size:.76rem;display:inline-block}.mini-total{color:#4c3838;margin-top:10px;font-weight:600}.summary-panel{padding:18px}.summary-row{color:#504141;margin-bottom:8px}.highlight{background:#fcedeb;border-radius:12px;padding:10px 12px}.rule-box,.summary-list{background:#f9f4f2;border:1px solid #573f3f1f;border-radius:12px;margin-top:14px;padding:12px}.rule-box p,.rule-box small,.summary-item{color:#513d3d;margin:0}.rule-box strong{margin:6px 0;font-size:1.2rem;display:block}.summary-list{flex-direction:column;gap:8px;display:flex}.summary-item{justify-content:space-between;gap:8px;font-size:.76rem}.login-panel{place-items:center;min-height:calc(100vh - 80px);padding:40px 20px;display:grid}.login-card{flex-direction:column;gap:14px;width:min(420px,100%);padding:28px 24px;display:flex}.login-card input,.admin-item input,.editor-grid input{box-sizing:border-box;width:100%;font:inherit;border:1px solid #543d3d24;border-radius:12px;padding:10px 12px}.admin-panel{grid-column:1/-1;padding:20px}.panel-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.file-label{position:relative;overflow:hidden}.file-label input{opacity:0;cursor:pointer;position:absolute;inset:0}.activity-meta{color:#5b4646;flex-wrap:wrap;margin-bottom:16px;font-size:.8rem}.admin-editor-list{flex-direction:column;gap:18px;display:flex}.admin-item{background:#fffdfa;border:1px solid #5642421f;border-radius:18px;grid-template-columns:110px minmax(0,1fr) auto;gap:18px;padding:14px;display:grid}.product-thumb{background:linear-gradient(135deg,#f4e5d5,#ebedf4);border-radius:14px;place-items:center;width:110px;height:110px;font-size:2.5rem;display:grid}.editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.editor-grid label{color:#574949;flex-direction:column;gap:6px;font-size:.8rem;display:flex}.full-span{grid-column:1/-1}.admin-item-actions{align-items:flex-start;display:flex}.admin-section{background:#fffdfa;border:1px solid #5642421f;border-radius:18px;margin-bottom:18px;padding:16px}.admin-section h3{margin:0 0 12px}.reward-rule-list{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.reward-rule-card{background:#fff;border:1px solid #523b3b1f;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;display:grid}.reward-rule-card label{color:#574949;flex-direction:column;gap:6px;font-size:.8rem;display:flex}@media (width<=980px){.content-grid{grid-template-columns:1fr}.summary-panel{order:3}.catalog-panel{order:2}.activity-sidebar{order:1}}@media (width<=640px){.topbar,.catalog-header,.panel-header,.activity-meta{flex-direction:column;align-items:flex-start}.nav-tabs{width:100%}.tab{flex:1}.admin-item,.editor-grid,.reward-rule-card{grid-template-columns:1fr}}
