:root{--violet:#5433eb;--violet-glow:#c0b5f3;--brand-soft:#eef0fe;--white:#fff;--ink:#000;--near-black:#121212;--soft-canvas:#f2f4f5;--hairline:#ebebeb;--concrete:#c9cbcc;--slate:#707070;--ash:#7b7b7b;--bg:var(--white);--surface:var(--white);--surface-2:var(--soft-canvas);--border:var(--hairline);--border-strong:var(--ink);--text:var(--ink);--text-muted:var(--slate);--text-faint:var(--ash);--brand:var(--violet);--like:#1f7a3d;--like-soft:#eaf4ee;--dislike:#b42318;--dislike-soft:#fbecea;--font:"Inter Tight", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--tracking:-.013em;--sp-4:4px;--sp-8:8px;--sp-12:12px;--sp-16:16px;--sp-20:20px;--sp-24:24px;--sp-32:32px;--sp-40:40px;--r-card:8px;--r-input:8px;--r-image:11.4px;--r-pill:28px;--r-full:9999px;--shadow-violet:#4524db57 0px 4px 24px 0px;--page-max:1100px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);letter-spacing:var(--tracking);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.33}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.2}h1{font-size:24px}h2{font-size:18px}h3{font-size:15px}.btn{justify-content:center;align-items:center;gap:var(--sp-8);border-radius:var(--r-pill);border:1px solid var(--ink);background:var(--white);color:var(--ink);font:inherit;letter-spacing:var(--tracking);cursor:pointer;white-space:nowrap;padding:10px 20px;font-size:14px;font-weight:500;line-height:1;text-decoration:none;transition:background .12s,color .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover{background:var(--ink);color:var(--white);text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--violet);border-color:var(--violet);color:var(--white);box-shadow:var(--shadow-violet)}.btn-primary:hover{color:var(--white);background:#4526c9;border-color:#4526c9}.btn-danger{border-color:var(--hairline);color:var(--dislike)}.btn-danger:hover{background:var(--dislike);border-color:var(--dislike);color:var(--white)}.btn-ghost{color:var(--slate);background:0 0;border-color:#0000;padding:8px 12px}.btn-ghost:hover{background:var(--soft-canvas);color:var(--ink)}.btn-sm{padding:7px 14px;font-size:13px}.btn-block{width:100%}.field{margin-bottom:var(--sp-16);flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink);font-size:12px;font-weight:500}.field .hint{color:var(--slate);font-size:11px}input[type=text],input[type=password],input[type=url],select,textarea{border:1px solid var(--hairline);border-radius:var(--r-input);width:100%;font:inherit;letter-spacing:var(--tracking);background:var(--white);color:var(--ink);padding:11px 14px;font-size:14px}input::placeholder,textarea::placeholder{color:var(--concrete)}input:focus,select:focus,textarea:focus{border-color:var(--violet);outline:none}textarea{resize:vertical;min-height:84px;line-height:1.45}.card{background:var(--white);border:1px solid var(--hairline);border-radius:var(--r-card)}.card-pad{padding:var(--sp-16)}.badge{border-radius:var(--r-full);background:var(--white);color:var(--slate);border:1px solid var(--hairline);align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.badge-brand{background:var(--white);color:var(--violet);border-color:var(--violet)}.badge-like{background:var(--like-soft);color:var(--like);border-color:#0000}.badge-dislike{background:var(--dislike-soft);color:var(--dislike);border-color:#0000}.badge-count{background:var(--violet);min-width:18px;height:18px;color:var(--white);border-color:#0000;justify-content:center;padding:0 5px;font-size:11px}.muted{color:var(--slate)}.faint{color:var(--ash)}.row{align-items:center;gap:var(--sp-12);display:flex}.between{justify-content:space-between;align-items:center;gap:var(--sp-16);display:flex}.wrap{flex-wrap:wrap}.grow{flex:1}.stack{gap:var(--sp-16);flex-direction:column;display:flex}.platform-pill{text-transform:capitalize}.empty{text-align:center;padding:var(--sp-40) var(--sp-16);color:var(--ash);border:1px dashed var(--concrete);border-radius:var(--r-card);background:var(--white)}hr{border:none;border-top:1px solid var(--hairline);margin:var(--sp-16) 0}
