:root{--bg: #0d0f14;--surface: rgba(255, 255, 255, .04);--surface-solid: #161a24;--stroke: rgba(255, 255, 255, .08);--stroke-strong: rgba(255, 255, 255, .14);--text: #f4f6fb;--hint: #8b93a7;--accent: #4f8cff;--accent-2: #9b6bff;--grad: linear-gradient(135deg, #4f8cff 0%, #9b6bff 100%);--grad-soft: linear-gradient(135deg, rgba(79, 140, 255, .18), rgba(155, 107, 255, .18));--radius: 18px;--radius-sm: 12px;--gap: 12px;--shadow: 0 10px 30px rgba(0, 0, 0, .45);--glow: 0 8px 24px rgba(79, 140, 255, .35)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100vh}body{color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.45;background:radial-gradient(120% 70% at 15% -10%,rgba(79,140,255,.18),transparent 60%),radial-gradient(120% 70% at 100% 0%,rgba(155,107,255,.16),transparent 55%),var(--bg);background-attachment:fixed}.app{max-width:640px;margin:0 auto;padding:18px 16px 28px}h1{font-size:24px;letter-spacing:-.02em;margin:4px 0}.hint{color:var(--hint);font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);background:var(--grad);color:#fff;font-size:16px;font-weight:700;padding:14px 18px;cursor:pointer;box-shadow:var(--glow);transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;box-shadow:none}.btn-block{display:flex;width:100%}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--stroke);box-shadow:none;margin-top:var(--gap)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap);margin-top:16px}.tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:150px;padding:18px;text-align:left;cursor:pointer;color:var(--text);border:1px solid var(--stroke);border-radius:var(--radius);background:var(--grad-soft),var(--surface-solid);box-shadow:var(--shadow);overflow:hidden;transition:transform .14s ease,border-color .14s ease}.tile:active{transform:scale(.97);border-color:var(--stroke-strong)}.tile-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:auto}.dev-icon{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(0,0,0,.5))}.dev-icon-emoji{font-size:50px;line-height:1;filter:drop-shadow(0 6px 14px rgba(0,0,0,.5))}.tile-title{font-weight:700;font-size:17px}.tile-count{color:var(--hint);font-size:12.5px}.budget-input{width:100%;font-size:18px;font-weight:600;padding:14px 16px;margin-top:6px;border-radius:var(--radius-sm);border:1px solid var(--stroke);background:var(--surface);color:var(--text);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.budget-input::placeholder{color:var(--hint);font-weight:400}.budget-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f8cff33}.filter-group{margin-top:20px}.filter-title{font-weight:700;margin-bottom:10px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--stroke);background:var(--surface);color:var(--text);border-radius:999px;padding:9px 15px;font-size:15px;cursor:pointer;transition:transform .1s ease,border-color .12s ease}.chip:active{transform:scale(.95)}.chip-active{background:var(--grad);border-color:transparent;color:#fff;box-shadow:var(--glow)}.bottom-bar{position:sticky;bottom:0;margin:22px -16px 0;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 70%,transparent)}.sort-row{display:flex;gap:8px;margin:10px 0 4px;padding:4px;background:var(--surface);border:1px solid var(--stroke);border-radius:var(--radius-sm)}.tab{flex:1;border:none;background:transparent;color:var(--hint);border-radius:9px;padding:10px;font-size:15px;font-weight:600;cursor:pointer;transition:color .12s ease,background .12s ease}.tab-active{background:var(--grad);color:#fff;box-shadow:var(--glow)}.product{border:1px solid var(--stroke);border-radius:var(--radius);padding:16px;margin-top:14px;background:var(--grad-soft),var(--surface-solid);box-shadow:var(--shadow)}.product-img{display:block;width:100%;height:190px;object-fit:contain;background:#fff;border-radius:var(--radius-sm);margin-bottom:12px}.product-img-empty{display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px dashed var(--stroke);color:var(--hint);font-size:14px}.product-name{font-weight:700;font-size:16px;margin-bottom:10px}.product-specs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.spec{font-size:12.5px;color:var(--text);background:var(--surface);border:1px solid var(--stroke);padding:4px 9px;border-radius:8px}.product-price{font-size:22px;font-weight:800;letter-spacing:-.02em;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.product-old{font-size:14px;font-weight:400;color:var(--hint);text-decoration:line-through;margin-left:8px;-webkit-text-fill-color:var(--hint)}.price-note{font-size:11.5px;margin:4px 0 14px}.product-actions{display:flex;gap:8px;margin-top:4px}.product-actions .btn{flex:1;padding:12px 10px;font-size:14.5px}.cmp-toggle-on{background:var(--grad-soft);border-color:var(--accent);color:var(--text)}.cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:14px -16px 0;padding:0 16px}.cmp{border-collapse:separate;border-spacing:8px}.cmp-corner{min-width:84px}.cmp-head{position:relative;vertical-align:top;min-width:132px;max-width:150px;padding:6px;background:var(--surface-solid);border:1px solid var(--stroke);border-radius:var(--radius-sm)}.cmp-img{width:100%;height:84px;object-fit:contain;background:#fff;border-radius:8px;margin-bottom:6px}.cmp-name{font-size:12px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cmp-remove{position:absolute;top:2px;right:2px;width:24px;height:24px;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:16px;line-height:1;cursor:pointer;z-index:1}.cmp-label{color:var(--hint);font-size:13px;white-space:nowrap;text-align:left;padding-right:6px}.cmp-cell{min-width:132px;text-align:center;font-size:13.5px;padding:10px 8px;background:var(--surface);border:1px solid var(--stroke);border-radius:8px}.cmp-best{background:#2ecc712e;border-color:#2ecc7180;color:#d6ffe7;font-weight:700}.cmp-buy{width:100%;padding:9px;font-size:13.5px}.card{border:1px solid var(--stroke);border-radius:var(--radius);padding:16px;margin-top:var(--gap);background:var(--surface-solid)}
