:root{--primary: #1677ff;--bg: #f5f7fa;--text: #1f2937;--muted: #6b7280;--border: #e5e7eb}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{opacity:.85}#nprogress .bar{background:#1677ff!important;height:3px!important}#nprogress .peg{box-shadow:0 0 10px #1677ff,0 0 5px #1677ff}.soft-card{transition:all .25s ease;cursor:pointer}.soft-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px -10px #1677ff40}.app-container{max-width:1280px;margin:0 auto;padding:0 24px}.hero-gradient{background:linear-gradient(135deg,#1677ff,#6938ef 60%,#ef4e65);color:#fff}.hero-gradient .ant-typography{color:#fff}.tag-item{display:inline-block;padding:2px 10px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;margin:2px 4px 2px 0}.price-text{color:#ff4d4f;font-weight:700;font-size:22px}.price-text:before{content:"¥";font-size:14px;margin-right:2px}.price-original{color:#999;text-decoration:line-through;font-size:13px;margin-left:8px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}::-webkit-scrollbar-track{background:transparent}@media (max-width: 768px){.app-container{padding:0 12px}.price-text{font-size:18px}}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
