*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background-color:#fde7ee;background-image:linear-gradient(to right,rgba(244,163,187,.55) 50%,transparent 50%),linear-gradient(to bottom,rgba(244,163,187,.55) 50%,transparent 50%);background-size:48px 48px,48px 48px;color:#111827;font-size:17px;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:#111827;color:#fff;border:0;border-radius:12px;padding:14px 20px;min-height:56px;cursor:pointer;transition:transform .12s ease,background-color .18s ease,box-shadow .18s ease,opacity .18s ease}button:active{transform:scale(.96)}button.ghost{background:transparent;color:#111827}button.danger{background:#dc2626}button:disabled{opacity:.6;transform:none}input{font:inherit;padding:14px 16px;border-radius:12px;border:1px solid #d1d5db;background:#fff;width:100%;min-height:56px}.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:#fff;padding:32px;border-radius:20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:16px;box-shadow:0 4px 24px #00000014}.login-card h1{margin:0 0 8px;text-align:center}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10}.topbar h1{margin:0;font-size:20px}.grid-wrap{padding-bottom:120px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;padding:16px}.grid .card:nth-child(1){animation-delay:.02s}.grid .card:nth-child(2){animation-delay:.06s}.grid .card:nth-child(3){animation-delay:.1s}.grid .card:nth-child(4){animation-delay:.14s}.grid .card:nth-child(5){animation-delay:.18s}.grid .card:nth-child(6){animation-delay:.22s}.grid .card:nth-child(7){animation-delay:.26s}.grid .card:nth-child(8){animation-delay:.3s}.grid .card:nth-child(n+9){animation-delay:.34s}@media (min-width: 768px){.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;padding:20px}}.card{position:relative;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000000f;transition:transform .14s ease,box-shadow .2s ease;animation:card-in .4s ease both;transform-origin:center}.card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001f}.card.pressed,.card.pressed:hover{transform:scale(.94);box-shadow:0 2px 8px #0000000f}.card-main{all:unset;display:block;width:100%;cursor:pointer;padding-bottom:12px;position:relative}.card-inner,.card-main .img-wrap,.card-main .card-name,.card-main .card-sold{display:block}.sold-num{display:inline-block;font-weight:700;color:#111827;animation:sold-pulse .5s ease;transform-origin:center}@keyframes card-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sold-pulse{0%{transform:scale(1);color:#111827}40%{transform:scale(1.5);color:#16a34a}to{transform:scale(1);color:#111827}}.img-wrap{aspect-ratio:1 / 1;background:#fff;overflow:hidden}.img-wrap img{width:100%;height:100%;object-fit:cover;display:block}.card-name{padding:10px 12px 2px;font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sold{padding:0 12px;color:#6b7280;font-size:14px}.more{position:absolute;top:8px;right:8px;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;background:#111827bf;color:#fff;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center}.menu{position:absolute;top:58px;right:8px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;overflow:hidden;z-index:5;min-width:160px;transform-origin:top right;animation:menu-in .18s ease-out both}@keyframes menu-in{0%{opacity:0;transform:scale(.85) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}.menu button{all:unset;display:block;padding:14px 18px;width:100%;cursor:pointer;font-size:16px}.menu button:active{background:#f3f4f6}.fab{position:fixed;right:24px;bottom:24px;width:72px;height:72px;border-radius:50%;font-size:36px;line-height:1;padding:0;box-shadow:0 8px 20px #00000040;z-index:20;animation:fab-in .45s cubic-bezier(.34,1.56,.64,1) both}.fab:hover{transform:scale(1.08) rotate(90deg);box-shadow:0 12px 28px #0000004d}.fab:active{transform:scale(.92) rotate(90deg)}@keyframes fab-in{0%{opacity:0;transform:scale(0) rotate(-90deg)}to{opacity:1;transform:scale(1) rotate(0)}}.loading,.empty{padding:48px 24px;text-align:center;color:#6b7280}.form-wrap{padding:20px 20px 40px}.form{display:flex;flex-direction:column;gap:16px;padding:20px;max-width:560px;margin:0 auto}.form-wrap .form{padding:24px;background:#fff;border-radius:20px;box-shadow:0 4px 24px #00000014}.form label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:#6b7280}.preview{max-width:100%;max-height:260px;object-fit:contain;border-radius:12px;background:#e5e7eb;align-self:flex-start}.err{color:#dc2626;font-size:14px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182780;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100;animation:backdrop-in .2s ease both}.modal{background:#fff;border-radius:20px;width:100%;max-width:560px;max-height:90vh;overflow:auto;padding:8px 8px 16px;animation:modal-in .28s cubic-bezier(.34,1.3,.64,1) both}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal h2{margin:16px 20px 0}.modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.modal-actions .danger{margin-right:auto}
