:root{--tg-blue:#2aabee;--tg-blue-dark:#1e96d6;--ink:#14171c;--ink-soft:#6b7280;--ink-faint:#9aa1ac;--bg:#eef1f6;--surface:#fff;--surface-alt:#f5f7fb;--gold:#f2a825;--gold-soft:#fff3dc;--red:#e5484d;--red-soft:#fdebec;--green:#2fb344;--green-soft:#e8f8ec;--violet:#8b5cf6;--violet-soft:#f1ebfe;--border:#e3e7ef;--radius:16px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);overscroll-behavior-y:contain;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}.app-shell{background:var(--bg);flex-direction:column;max-width:560px;height:100vh;margin:0 auto;display:flex;position:relative;overflow:hidden}.app-header{background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;flex:none;gap:8px;padding:10px 14px 8px;display:flex}.app-header-row{align-items:center;gap:8px;display:flex}.search-input{background:var(--surface-alt);border:1px solid var(--border);border-radius:11px;flex:1;height:38px;padding:0 12px;font-size:14px}.stars-chip{background:var(--gold-soft);color:#8a5b0a;white-space:nowrap;border-radius:11px;align-items:center;gap:4px;height:38px;padding:0 10px;font-size:13px;font-weight:700;display:flex}.role-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:9px;align-items:center;gap:5px;height:26px;padding:0 9px;font-size:10.5px;font-weight:700;display:inline-flex}.role-badge.user{color:var(--tg-blue-dark);background:#e7f3fd}.role-badge.moderator,.role-badge.manager{background:var(--gold-soft);color:#8a5b0a}.role-badge.subadmin,.role-badge.admin{background:var(--violet-soft);color:#5b32c9}.role-badge.superadmin{background:var(--ink);color:#fff}.chips{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);border-radius:999px;flex:none;padding:7px 12px;font-size:12.5px;font-weight:600}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.content{-webkit-overflow-scrolling:touch;flex:1;padding:14px 14px 90px;overflow-y:auto}.section-title{margin-bottom:2px;font-size:15px;font-weight:800}.section-sub{color:var(--ink-soft);margin-bottom:12px;font-size:12px;line-height:1.5}.grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.card{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.card:active{transform:scale(.98)}.card-photo{aspect-ratio:1;color:#fff;justify-content:center;align-items:center;font-size:34px;display:flex;position:relative}.ribbon{color:#fff;background:#14171c8c;border-radius:7px;padding:3px 7px;font-size:10px;font-weight:700;position:absolute;top:7px;left:7px}.ribbon.promoted{color:#3b2600;background:linear-gradient(90deg,#f2a825,#f0c24a)}.heart-btn{width:28px;height:28px;color:var(--ink-soft);background:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;right:6px}.heart-btn.active{color:var(--red)}.card-body{flex-direction:column;gap:3px;padding:8px 9px 10px;display:flex}.card-price{font-size:14.5px;font-weight:800}.card-title{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:29px;font-size:11.5px;line-height:1.35;display:-webkit-box;overflow:hidden}.card-seller{color:var(--ink-faint);font-size:10.5px}.empty-state{text-align:center;color:var(--ink-soft);padding:50px 20px}.empty-state .glyph{margin-bottom:10px;font-size:34px}.empty-state .t1{color:var(--ink);margin-bottom:4px;font-size:14px;font-weight:700}.empty-state .t2{max-width:260px;margin:0 auto;font-size:12.5px;line-height:1.5}.btn{border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:700;display:inline-flex}.btn-primary{background:var(--tg-blue);color:#fff}.btn-gold{color:#3b2600;background:linear-gradient(90deg,#f2a825,#f5bb4e)}.btn-green{background:var(--green);color:#fff}.btn-red{background:var(--red);color:#fff}.btn-ghost{background:var(--surface-alt);color:var(--ink);border:1px solid var(--border)}.btn-block{width:100%}.btn:disabled{opacity:.45}.tabbar{background:var(--surface);border-top:1px solid var(--border);z-index:14;height:62px;padding-bottom:4px;display:flex;position:absolute;bottom:0;left:0;right:0}.tab-btn{color:var(--ink-faint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:9.5px;font-weight:600;display:flex;position:relative}.tab-btn.active{color:var(--tg-blue)}.tab-btn .badge-dot{background:var(--red);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:8.5px;font-weight:800;display:flex;position:absolute;top:2px;right:calc(50% - 16px)}.fab{background:linear-gradient(135deg, var(--tg-blue), var(--tg-blue-dark));color:#fff;z-index:15;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:26px;display:flex;position:absolute;bottom:78px;right:14px;box-shadow:0 8px 18px -4px #2aabee8c}.overlay{opacity:0;pointer-events:none;z-index:30;background:#0f111473;transition:opacity .2s;position:absolute;inset:0}.overlay.show{opacity:1;pointer-events:auto}.sheet{background:var(--surface);z-index:31;border-radius:22px 22px 0 0;flex-direction:column;max-height:88%;transition:transform .25s cubic-bezier(.32,.72,0,1);display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%)}.sheet.show{transform:translateY(0)}.sheet-handle{background:var(--border);border-radius:99px;flex:none;width:36px;height:4px;margin:9px auto 4px}.sheet-scroll{padding:6px 16px 22px;overflow-y:auto}.sheet-close{background:var(--surface-alt);width:28px;height:28px;color:var(--ink-soft);z-index:2;border-radius:50%;font-size:14px;position:absolute;top:10px;right:12px}.form-label{color:var(--ink-soft);margin:12px 0 6px;font-size:11.5px;font-weight:700;display:block}.form-label:first-child{margin-top:2px}.form-input,.form-textarea,.form-select{border:1px solid var(--border);background:var(--surface-alt);width:100%;color:var(--ink);border-radius:11px;padding:10px 12px;font-size:13.5px}.form-textarea{resize:none;height:70px}.field-error{color:var(--red);margin-top:4px;font-size:11px}.photo-hint{color:var(--ink-faint);margin-top:6px;font-size:10.5px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:10px;padding:13px}.panel-title{margin-bottom:10px;font-size:12.5px;font-weight:800}.list-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;font-size:12.5px;display:flex}.list-item:last-child{border-bottom:none}.reason-chip{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:6px 10px;font-size:11.5px}.reason-chip.picked{background:var(--red);border-color:var(--red);color:#fff}.reason-list{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.mod-badge{white-space:nowrap;border-radius:7px;padding:3px 7px;font-size:10px;font-weight:800}.mod-badge.watch{background:var(--gold-soft);color:#8a5b0a}.mod-badge.hidden{background:var(--red-soft);color:var(--red)}.auction-timer{color:var(--red);background:var(--red-soft);border-radius:6px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.auction-timer.ended{color:var(--ink-faint);background:var(--surface-alt)}.toast{color:#fff;z-index:60;opacity:0;pointer-events:none;text-align:center;background:#14171ceb;border-radius:12px;max-width:88%;padding:10px 16px;font-size:12.5px;font-weight:600;transition:all .25s;position:absolute;bottom:78px;left:50%;transform:translate(-50%,12px)}.toast-show{opacity:1;transform:translate(-50%)}.centered-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;padding:24px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--tg-blue);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
