@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_e627931b-module__-IWRBq__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_e627931b-module__-IWRBq__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_4cdbbe53-module__-y-Puq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_4cdbbe53-module__-y-Puq__variable{--font-jetbrains:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--brand:#ff5c35;--brand-deep:#e8431c;--brand-soft:#ffeae1;--brand-glow:#ff5c3529;--bg:#fbf7f4;--bg-grad:#fff1e9;--surface:#fff;--surface-2:#fbf5f1;--line:#eee5dd;--line-strong:#e4d8cd;--ink:#1c1a18;--ink-2:#6b6258;--ink-3:#a99d90;--online:#16a34a;--online-soft:#e7f4ec;--offline:#d1500e;--offline-soft:#fbeadf;--shadow:0 1px 2px #281c120a, 0 7px 22px #281c120e;--shadow-hi:0 2px 5px #281c120f, 0 22px 52px #e8431c26;--r:18px;--font:var(--font-jakarta), "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--mono:var(--font-jetbrains), ui-monospace, SFMono-Regular, Menlo, monospace}[data-theme=dark]{--brand:#ff7350;--brand-deep:#ff9572;--brand-soft:#3b2418;--brand-glow:#ff73501f;--bg:#15110e;--bg-grad:#221710;--surface:#1f1a16;--surface-2:#251e19;--line:#332a23;--line-strong:#3d332b;--ink:#f4ede7;--ink-2:#b4a99e;--ink-3:#7e7264;--online:#3cd583;--online-soft:#16271e;--offline:#f2904e;--offline-soft:#2c1d14;--shadow:0 1px 2px #0000004d, 0 10px 30px #0000005c;--shadow-hi:0 2px 5px #00000059, 0 24px 56px #00000080}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);color:var(--ink);background:radial-gradient(1100px 480px at 90% -12%, var(--bg-grad), transparent 68%), var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background .45s}::selection{background:var(--brand-soft);color:var(--brand-deep)}.wrap{max-width:1260px;margin:0 auto;padding:24px 34px 80px}header.top{align-items:center;gap:16px;display:flex}.brand{letter-spacing:-.4px;-webkit-user-select:none;user-select:none;align-items:center;gap:11px;font-size:20px;font-weight:800;display:flex}.brand .glyph{border-radius:11px;flex:none;place-items:center;width:36px;height:36px;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:grid;transform:rotate(-5deg);box-shadow:0 6px 16px #e8431c66}.brand .glyph svg{width:100%;height:100%;display:block;overflow:visible}.brand:hover .glyph{transform:rotate(5deg)scale(1.05)}.brand b{color:var(--brand)}.spacer{flex:1}.search{flex:none;width:min(380px,40vw);position:relative}.search input{border:1px solid var(--line);background:var(--surface);width:100%;height:44px;font:inherit;color:var(--ink);box-shadow:var(--shadow);border-radius:13px;outline:none;padding:0 38px 0 42px;font-size:14.5px;transition:border-color .2s,box-shadow .2s}.search input::placeholder{color:var(--ink-3)}.search input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-glow)}.search .si{color:var(--ink-3);pointer-events:none;display:grid;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search kbd{font:600 11px var(--font);color:var(--ink-3);border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:2px 6px;transition:opacity .15s;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.search .clr{width:24px;height:24px;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:7px;place-items:center;display:none;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.search .clr.show{display:grid}.search .clr:hover{background:var(--surface-2);color:var(--ink)}.iconbtn{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink-2);cursor:pointer;box-shadow:var(--shadow);border-radius:13px;flex:none;place-items:center;transition:transform .15s,color .2s,border-color .2s;display:grid}.iconbtn:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-1px)}.iconbtn:active{transform:translateY(0)scale(.95)}.iconbtn .sun,[data-theme=dark] .iconbtn .moon{display:none}[data-theme=dark] .iconbtn .sun{display:block}.hero{margin:30px 2px 4px}.hero h1{letter-spacing:-.8px;margin:0;font-size:31px;font-weight:800}.hero p{color:var(--ink-2);margin:8px 0 0;font-size:14.5px}.hero p b{color:var(--brand);font-weight:700}.stats{flex-wrap:wrap;align-items:center;gap:18px;margin:18px 2px 2px;display:flex}.stat{align-items:baseline;gap:7px;display:flex}.stat .n{letter-spacing:-.4px;font-variant-numeric:tabular-nums;font-size:19px;font-weight:800}.stat .l{color:var(--ink-3);font-size:12.5px;font-weight:600}.stat .n.on{color:var(--online)}.stat-sep{background:var(--line-strong);width:1px;height:16px}.chips{flex-wrap:wrap;gap:9px;margin:24px 2px 22px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--ink-2);font:600 13px var(--font);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:7px;padding:0 15px;transition:border-color .16s,color .16s,background .16s,transform .12s;display:inline-flex}.chip:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-1px)}.chip:active{transform:translateY(0)scale(.97)}.chip.active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 6px 16px var(--brand-glow)}.chip .cct{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:700}.chip:hover .cct{color:var(--brand)}.chip.active .cct{color:#fff;opacity:.85}.chip .cstar{color:var(--brand);font-size:12px}.chip.active .cstar{color:#fff}.seclabel{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:9px;margin:4px 2px 14px;font-size:12.5px;font-weight:700;display:flex}.seclabel .ct{font:600 11px var(--font);letter-spacing:0;text-transform:none;color:var(--brand);background:var(--brand-soft);border-radius:20px;padding:2px 9px}.seclabel .star{color:var(--brand)}.seclabel .ln{background:var(--line);flex:1;height:1px}.grid{grid-template-columns:repeat(auto-fill,minmax(308px,1fr));gap:16px;display:grid}.favwrap{margin-bottom:30px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 18px 16px;transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s,border-color .22s;position:relative;overflow:hidden}@media (prefers-reduced-motion:no-preference){.grid.anim .card{animation:.5s cubic-bezier(.2,.7,.2,1) backwards rise}}@keyframes rise{0%{opacity:.35;transform:translateY(12px)}to{opacity:1;transform:none}}.card:hover{box-shadow:var(--shadow-hi);border-color:color-mix(in oklab, var(--accent) 40%, var(--line));transform:translateY(-4px)}.card .topglow{background:linear-gradient(90deg, var(--accent), color-mix(in oklab, var(--accent) 35%, transparent));transform-origin:0;height:3px;transition:transform .3s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 0 auto;transform:scaleX(0)}.card:hover .topglow{transform:scaleX(1)}.card-head{align-items:flex-start;gap:13px;display:flex}.logo{color:#fff;letter-spacing:-.5px;background:linear-gradient(150deg, color-mix(in oklab, var(--accent) 86%, white), var(--accent));width:48px;height:48px;box-shadow:0 6px 16px color-mix(in oklab, var(--accent) 42%, transparent);border-radius:14px;flex:none;place-items:center;font-size:22px;font-weight:800;transition:transform .24s cubic-bezier(.2,.8,.2,1);display:grid}.card:hover .logo{transform:scale(1.07)rotate(-4deg)}.name-row{flex:1;min-width:0;padding-right:30px}.name{letter-spacing:-.2px;align-items:center;gap:8px;font-size:16.5px;font-weight:700;display:flex}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot.online{background:var(--online);box-shadow:0 0 0 3px color-mix(in oklab, var(--online) 24%, transparent)}.dot.offline{background:var(--offline);box-shadow:0 0 0 3px color-mix(in oklab, var(--offline) 24%, transparent)}.tag{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:13px;line-height:1.45;overflow:hidden}.fav{width:30px;height:30px;color:var(--ink-3);cursor:pointer;z-index:3;background:0 0;border:none;border-radius:9px;place-items:center;transition:transform .15s,color .2s,background .2s;display:grid;position:absolute;top:15px;right:15px}.fav:hover{background:var(--brand-soft);color:var(--brand);transform:scale(1.12)}.fav.on{color:var(--brand)}.fav.on svg{fill:var(--brand)}.fav.pop{animation:.42s pop}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.38)}to{transform:scale(1)}}.meta{color:var(--ink-3);align-items:center;gap:9px;margin:14px 0 0;font-size:12.5px;font-weight:600;display:flex}.meta .pill{align-items:center;gap:5px;display:inline-flex}.meta .pill .ti{width:14px;height:14px;color:var(--ink-3)}.meta .sep{background:var(--ink-3);opacity:.55;border-radius:50%;width:3px;height:3px}.meta .ver{font-family:var(--mono);white-space:nowrap;font-weight:500}.envs{gap:8px;margin-top:14px;display:flex}.env{border:1px solid var(--line);background:var(--surface-2);min-width:0;height:40px;color:var(--ink);cursor:pointer;border-radius:11px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;font-size:12.5px;font-weight:600;text-decoration:none;transition:border-color .18s,background .18s,color .18s,transform .12s;display:flex;position:relative;overflow:hidden}.env:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);transform:translateY(-1px)}.env:active{transform:translateY(0)scale(.97)}.env .edot{border-radius:50%;flex:none;width:6px;height:6px;transition:opacity .15s,transform .16s}.env .edot.online{background:var(--online)}.env .edot.offline{background:var(--offline)}.env .lbl{font-family:var(--mono);letter-spacing:.02em;transition:transform .16s}.env:hover .lbl,.env:hover .edot{transform:translate(-9px)}.env.off{color:var(--ink-3)}.env.off:hover{color:var(--offline);border-color:var(--offline);background:var(--offline-soft)}.env .cp{background:var(--brand);color:#fff;opacity:0;z-index:4;cursor:pointer;border:none;border-radius:8px;place-items:center;width:26px;height:28px;transition:opacity .15s,transform .15s;display:grid;position:absolute;top:50%;right:5px;transform:translateY(-50%)scale(.8)}.env:hover .cp{opacity:1;transform:translateY(-50%)scale(1)}.env .cp:hover{background:var(--brand-deep)}.env .cp.done{background:var(--online)}.toast{background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;z-index:80;border-radius:12px;align-items:center;gap:9px;max-width:90vw;padding:11px 16px;font-size:13.5px;font-weight:600;transition:opacity .25s,transform .25s;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);box-shadow:0 14px 34px #00000047}.toast.show{opacity:1;transform:translate(-50%)}.toast .tic{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;display:grid}.toast .turl{font-family:var(--mono);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}[data-theme=dark] .toast .turl{color:var(--ink-2)}.empty{text-align:center;color:var(--ink-3);padding:60px 0;font-size:15px;line-height:1.7}.empty .big{margin-bottom:8px;font-size:30px}.iconbtn .unlocked{display:none}body.editing #lock{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}body.editing #lock .locked{display:none}body.editing #lock .unlocked{display:block}.editbar{background:var(--brand-soft);border:1px solid color-mix(in oklab, var(--brand) 30%, var(--line));border-radius:14px;align-items:center;gap:12px;margin:16px 0 2px;padding:12px 16px;animation:.35s cubic-bezier(.2,.8,.2,1) ebin;display:flex}@keyframes ebin{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.editbar .ebdot{background:var(--brand);width:9px;height:9px;box-shadow:0 0 0 4px var(--brand-glow);border-radius:50%;flex:none;animation:1.8s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 7px #0000}}.editbar .ebtxt{flex-direction:column;line-height:1.35;display:flex}.editbar .ebtxt b{color:var(--brand-deep);font-size:13.5px}.editbar .ebtxt span{color:var(--ink-2);font-size:12px}.editbar .spacer{flex:1}.editbar .ebuser{background:var(--surface);border:1px solid color-mix(in oklab, var(--brand) 25%, var(--line));height:28px;font:600 12px var(--font);color:var(--brand-deep);border-radius:20px;align-items:center;gap:6px;padding:0 11px 0 8px;display:inline-flex}.editbar .ebuser .ua{color:#fff;background:linear-gradient(150deg, var(--brand), var(--brand-deep));border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;font-weight:800;display:grid}.editbar .ebbtn{border:1px solid color-mix(in oklab, var(--brand) 30%, var(--line));background:var(--surface);height:34px;color:var(--ink-2);font:600 13px var(--font);cursor:pointer;white-space:nowrap;border-radius:9px;align-items:center;gap:6px;padding:0 14px;transition:all .15s;display:inline-flex}.editbar .ebbtn:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-1px)}.editbar .ebbtn.add{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 6px 16px var(--brand-glow)}.editbar .ebbtn.add:hover{background:var(--brand-deep);color:#fff}.editbar .ebbtn.exit:hover{color:var(--offline);border-color:var(--offline)}.edit{width:30px;height:30px;color:var(--ink-3);cursor:pointer;z-index:3;background:0 0;border:none;border-radius:9px;place-items:center;transition:color .2s,background .2s,transform .15s;display:none;position:absolute;top:15px;right:51px}body.editing .edit{display:grid}.edit:hover{background:var(--brand-soft);color:var(--brand);transform:scale(1.1)}body.editing .card{border-style:dashed;border-color:color-mix(in oklab, var(--accent) 30%, var(--line))}.scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:90;opacity:0;background:#140c066b;animation:.2s forwards fadein;position:fixed;inset:0}[data-theme=dark] .scrim{background:#0009}@keyframes fadein{to{opacity:1}}.gate{z-index:95;background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:20px;width:min(400px,92vw);padding:28px 26px 24px;animation:.3s cubic-bezier(.2,.8,.2,1) gatein;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 30px 80px #0000004d}@keyframes gatein{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.gate.shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(-50%,-50%)}20%,60%{transform:translate(calc(-50% - 7px),-50%)}40%,80%{transform:translate(calc(7px - 50%),-50%)}}.gate .gicon{background:var(--brand-soft);width:50px;height:50px;color:var(--brand);border-radius:14px;place-items:center;margin:0 auto 14px;display:grid}.gate h3{letter-spacing:-.3px;margin:0 0 8px;font-size:19px}.gate p{color:var(--ink-2);margin:0 0 18px;font-size:13.5px;line-height:1.6}.gate .ghint{color:var(--ink-3);font-size:12px}.gate .ghint b{color:var(--brand);font-family:var(--mono)}.gate input{border:1px solid var(--line);background:var(--surface-2);width:100%;height:46px;font:600 15px var(--font);color:var(--ink);text-align:center;letter-spacing:.1em;border-radius:12px;outline:none;padding:0 16px;transition:border-color .2s,box-shadow .2s}.gate input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-glow)}.gate .loginfields{flex-direction:column;gap:10px;display:flex}.gate .loginfields input{text-align:left;letter-spacing:normal;font-weight:500}.gate .gerr{color:var(--offline);margin-top:9px;font-size:12.5px;font-weight:600}.grow-btns{gap:10px;margin-top:18px;display:flex}.grow-btns button{flex:1}.confirm-scrim{z-index:110}.confirm-box{z-index:115}.confirm p{margin-bottom:4px}.gicon.danger{background:var(--offline-soft);color:var(--offline)}.primary.danger{background:var(--offline)}.primary.danger:hover{background:color-mix(in oklab, var(--offline) 86%, black)}.primary{background:var(--brand);color:#fff;height:44px;font:700 14px var(--font);cursor:pointer;border:none;border-radius:12px;transition:background .18s,transform .12s}.primary:hover{background:var(--brand-deep)}.primary:active{transform:scale(.97)}.ghost{border:1px solid var(--line);background:var(--surface);height:44px;color:var(--ink-2);font:600 14px var(--font);cursor:pointer;border-radius:12px;transition:all .16s}.ghost:hover{color:var(--ink);border-color:var(--line-strong)}.drawer{z-index:95;background:var(--surface);border-left:1px solid var(--line);flex-direction:column;width:min(440px,94vw);animation:.32s cubic-bezier(.2,.8,.2,1) drawin;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-20px 0 60px #0000002e}@keyframes drawin{0%{transform:translate(100%)}to{transform:none}}.drawer.closing{animation:.3s cubic-bezier(.4,0,1,1) forwards drawout}@keyframes drawout{0%{transform:none}to{transform:translate(100%)}}.scrim.closing{animation:.22s cubic-bezier(.4,0,1,1) forwards fadeout}@keyframes fadeout{0%{opacity:1}to{opacity:0}}.dhead{border-bottom:1px solid var(--line);align-items:center;padding:20px 22px;display:flex}.dhead h3{letter-spacing:-.3px;flex:1;margin:0;font-size:17px}.dx{background:var(--surface-2);width:34px;height:34px;color:var(--ink-2);cursor:pointer;border:none;border-radius:9px;place-items:center;transition:all .15s;display:grid}.dx:hover{color:var(--ink);background:var(--line)}.dbody{flex:1;padding:20px 22px;overflow-y:auto}.dfoot{border-top:1px solid var(--line);align-items:center;gap:10px;padding:16px 22px;display:flex}.dfoot .spacer{flex:1}.dfoot .primary,.dfoot .ghost{height:42px;padding:0 20px}.dfoot .del{border:1px solid var(--offline-soft);background:var(--offline-soft);height:42px;color:var(--offline);font:600 13.5px var(--font);cursor:pointer;border-radius:11px;align-items:center;gap:6px;padding:0 14px;transition:all .15s;display:inline-flex}.dfoot .del:hover{background:var(--offline);color:#fff;border-color:var(--offline)}.fld{margin-bottom:16px}.fld>label{color:var(--ink-3);letter-spacing:.03em;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.fld input[type=text],.fld input[type=url]{border:1px solid var(--line);background:var(--surface-2);width:100%;height:42px;font:500 14px var(--font);color:var(--ink);border-radius:11px;outline:none;padding:0 13px;transition:border-color .18s,box-shadow .18s}.fld select{border:1px solid var(--line);background:var(--surface-2);width:100%;height:42px;font:500 14px var(--font);color:var(--ink);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border-radius:11px;outline:none;padding:0 36px 0 13px;transition:border-color .18s,box-shadow .18s}.fld select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow)}.fld input.mono{font-family:var(--mono);font-size:13px}.fld input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow)}.frow{gap:10px;display:flex}.frow .fld{flex:1}.frow .fld.mark{flex:0 0 84px}.swatches{flex-wrap:wrap;gap:8px;display:flex}.sw{cursor:pointer;border:2px solid #0000;border-radius:9px;width:30px;height:30px;transition:transform .12s}.sw:hover{transform:scale(1.12)}.sw.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset}.envchips{gap:8px;margin-bottom:12px;display:flex}.envchip{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink-3);font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border-radius:9px;padding:0 14px;transition:all .15s}.envchip:hover{border-color:var(--brand);color:var(--brand)}.envchip.on{background:var(--brand-soft);border-color:color-mix(in oklab, var(--brand) 40%, var(--line));color:var(--brand-deep)}.envedit{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;margin-bottom:10px;padding:12px}.envedit .ehd{align-items:center;gap:8px;margin-bottom:9px;display:flex}.envedit .ehd .et{font:700 12px var(--mono);text-transform:uppercase;color:var(--ink-2);letter-spacing:.05em;flex:1}.stoggle{border:1px solid var(--line);background:var(--surface);height:27px;font:600 11.5px var(--font);cursor:pointer;color:var(--ink-2);border-radius:8px;align-items:center;gap:6px;padding:0 10px;transition:all .15s;display:inline-flex}.stoggle .sd{border-radius:50%;width:7px;height:7px}.stoggle[data-st=online]{color:var(--online);border-color:color-mix(in oklab, var(--online) 40%, var(--line))}.stoggle[data-st=online] .sd{background:var(--online)}.stoggle[data-st=offline]{color:var(--offline);border-color:color-mix(in oklab, var(--offline) 40%, var(--line))}.stoggle[data-st=offline] .sd{background:var(--offline)}.envedit input[type=url]{background:var(--surface)}@media (max-width:680px){.wrap{padding:18px 16px 64px}header.top{flex-wrap:wrap;gap:12px}.search{flex-basis:100%;order:10;width:100%}.hero{margin:24px 2px 4px}.hero h1{letter-spacing:-.5px;font-size:25px}.hero p{font-size:13.5px}.stats{gap:14px;margin-top:16px}.chips{margin:20px 2px 18px}.grid{grid-template-columns:1fr;gap:14px}.editbar{flex-wrap:wrap}.editbar .spacer{flex-basis:100%;height:0}}@media (max-width:380px){.wrap{padding:16px 12px 56px}.hero h1{font-size:23px}}
