@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");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}:root{--bg:#0a0a0f;--bg-1:#0f0f17;--bg-2:#14141f;--bg-3:#1a1a26;--line:#ffffff0f;--line-2:#ffffff1a;--line-3:#ffffff29;--ink:#f4f4f8;--ink-2:#c8c8d4;--ink-3:#8a8a9c;--ink-4:#5a5a6c;--accent:#34d399;--accent-soft:#34d39926;--accent-glow:#34d39966;--accent-ink:#0a0a0f;--good:#34d399;--warn:#f59e0b;--bad:#f87171;--info:#60a5fa;--r-1:6px;--r-2:10px;--r-3:14px;--r-4:18px;--pad:14px;--gap:12px;--row-h:38px;--card-pad:18px;--font-display:"Space Grotesk Variable", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--t-fast:.12s cubic-bezier(.2, .7, .2, 1);--t-base:.22s cubic-bezier(.2, .7, .2, 1);--t-slow:.42s cubic-bezier(.2, .7, .2, 1);--t-spring:.52s cubic-bezier(.34, 1.56, .64, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-density=compact]{--pad:10px;--gap:8px;--row-h:32px;--card-pad:14px}[data-density=comfortable]{--pad:18px;--gap:16px;--row-h:44px;--card-pad:22px}[data-anim=off] *,[data-anim=off] :before,[data-anim=off] :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;overflow:hidden}a{color:inherit;text-decoration:none}code{font-family:var(--font-mono);color:var(--accent);background:var(--bg-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft);color:var(--ink)}.app-bg{z-index:0;pointer-events:none;background:radial-gradient(900px 600px at 18% -10%, #34d39912, transparent 60%), radial-gradient(700px 500px at 92% 110%, #a78bfa0d, transparent 55%), var(--bg);position:fixed;inset:0;overflow:hidden}.app-bg:before{content:"";background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.35;background-size:64px 64px,64px 64px;animation:60s linear infinite drift;position:absolute;inset:-50%;-webkit-mask-image:radial-gradient(closest-side at 50% 40%,#000 30%,#0000 75%);mask-image:radial-gradient(closest-side at 50% 40%,#000 30%,#0000 75%)}.app-bg:after{content:"";opacity:.8;background-color:#0000;background-image:radial-gradient(2px 2px at 20% 30%,#34d39980,#0000 50%),radial-gradient(1px 1px at 80% 70%,#a78bfa80,#0000 50%),radial-gradient(1px 1px at 60% 20%,#60a5fa80,#0000 50%),radial-gradient(1px 1px at 35% 85%,#f472b680,#0000 50%),radial-gradient(2px 2px at 90% 40%,#34d39966,#0000 50%);background-position:0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:600px 600px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;animation:12s ease-in-out infinite alternate twinkle;position:absolute;inset:0}@keyframes drift{to{transform:translate(64px,64px)}}@keyframes twinkle{0%{opacity:.3}to{opacity:1}}.app{z-index:1;grid-template-columns:var(--sb-w,248px) 1fr;height:100dvh;transition:grid-template-columns var(--t-base);display:grid;position:relative}.sb{background:linear-gradient(180deg, var(--bg-1), var(--bg));border-right:1px solid var(--line);flex-direction:column;gap:6px;min-height:0;padding:14px 12px;display:flex;overflow:hidden}.sb-brand{border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;color:inherit;font:inherit;text-align:left;background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:10px;margin-bottom:6px;padding:8px 8px 14px;display:flex}.sb-logo{background:linear-gradient(135deg, var(--accent), color-mix(in oklab, var(--accent), white 30%));width:34px;height:34px;color:var(--accent-ink);font-family:var(--font-display);letter-spacing:-.02em;box-shadow:0 0 0 1px #ffffff14, 0 8px 22px -8px var(--accent-glow);transition:transform var(--t-spring);border-radius:10px;flex-shrink:0;place-items:center;font-size:16px;font-weight:700;display:grid;position:relative;overflow:hidden}.sb-logo:after{content:"";background:linear-gradient(120deg,#0000 30%,#ffffff80 50%,#0000 70%);transition:transform .8s;position:absolute;inset:0;transform:translate(-100%)}.sb-brand:hover .sb-logo{transform:rotate(-8deg)scale(1.06)}.sb-brand:hover .sb-logo:after{transform:translate(100%)}.sb-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);white-space:nowrap;font-size:16px;font-weight:700}.sb-name b{color:var(--accent)}.sb-tag{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:9.5px}.sb-nav{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent;flex:1;margin:0 -12px;padding:0 12px;overflow:hidden auto}.sb-section{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);white-space:nowrap;padding:14px 10px 6px;font-size:10px}.sb-item{height:var(--row-h);border-radius:var(--r-2);color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast);white-space:nowrap;align-items:center;gap:10px;padding:0 10px;display:flex;position:relative}.sb-item:hover{background:var(--bg-2);color:var(--ink)}.sb-item:active{transform:scale(.98)}.sb-item .sb-ico{width:18px;height:18px;color:var(--ink-3);transition:color var(--t-fast), transform var(--t-base);flex-shrink:0;place-items:center;display:grid}.sb-item:hover .sb-ico{color:var(--ink);transform:scale(1.1)}.sb-item .sb-lbl{text-overflow:ellipsis;flex:1;font-size:13.5px;font-weight:500;overflow:hidden}.sb-item .sb-pill{font-family:var(--font-mono);background:var(--bg-3);color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:2px 6px;font-size:10px}.sb-item.is-off .sb-lbl{color:var(--ink-3)}.sb-item.is-active{background:linear-gradient(90deg, var(--accent-soft), transparent 80%);color:var(--ink)}.sb-item.is-active:before{content:"";background:var(--accent);width:3px;box-shadow:0 0 12px var(--accent-glow);border-radius:0 3px 3px 0;position:absolute;top:8px;bottom:8px;left:-12px}.sb-item.is-active .sb-ico{color:var(--accent)}.sb-guild{margin-bottom:2px;position:relative}.sb-guild-btn{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-2);width:100%;color:var(--ink);font:inherit;cursor:pointer;text-align:left;transition:border-color var(--t-fast), background var(--t-fast);align-items:center;gap:10px;padding:8px 10px;display:flex}.sb-guild-btn:hover{border-color:var(--line-3)}.sb-guild-meta{flex:1;min-width:0}.sb-guild-name{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.sb-guild-sub{font-family:var(--font-mono);color:var(--ink-4);font-size:10px}.sb-guild .caret{color:var(--ink-3);transition:transform var(--t-base);flex-shrink:0}.sb-guild.open .caret{transform:rotate(180deg)}.sb-guild .dd-menu{max-height:320px;overflow-y:auto}[data-collapsed=true] .sb-name,[data-collapsed=true] .sb-tag,[data-collapsed=true] .sb-section,[data-collapsed=true] .sb-lbl,[data-collapsed=true] .sb-pill,[data-collapsed=true] .sb-guild-meta,[data-collapsed=true] .sb-guild .caret{display:none}[data-collapsed=true] .sb-item{justify-content:center;padding:0}[data-collapsed=true] .sb-brand{justify-content:center;padding:8px 0 14px}[data-collapsed=true] .sb-guild-btn{background:0 0;border-color:#0000;justify-content:center;padding:6px 0}[data-collapsed=true] .sb-guild .dd-menu{width:240px;left:0;right:auto}[data-collapsed=true] .sb-status{display:none}.sb-status{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-2);flex-direction:column;gap:6px;margin-top:8px;padding:10px 12px;font-size:12px;display:flex}.sb-status-row{color:var(--ink-3);justify-content:space-between;align-items:center;display:flex}.sb-status-row b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}.main{flex-direction:column;min-width:0;min-height:0;display:flex}.tb{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);z-index:5;background:#0a0a0f99;align-items:center;gap:12px;padding:12px 22px;display:flex;position:sticky;top:0}.tb-collapse,.tb-iconbtn{border-radius:var(--r-2);width:32px;height:32px;color:var(--ink-3);border:1px solid var(--line);cursor:pointer;transition:all var(--t-fast);background:0 0;flex-shrink:0;place-items:center;display:grid;position:relative}.tb-collapse:hover,.tb-iconbtn:hover{color:var(--ink);border-color:var(--line-3);background:var(--bg-2)}.tb-crumbs{color:var(--ink-3);white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.tb-crumbs>span{text-overflow:ellipsis;overflow:hidden}.tb-crumbs .sep{opacity:.4}.tb-crumbs b{color:var(--ink);font-weight:600}.tb-spacer{flex:1}@keyframes pulse{0%,to{box-shadow:0 0 0 2px var(--bg), 0 0 0 0 var(--accent-glow)}50%{box-shadow:0 0 0 2px var(--bg), 0 0 0 6px transparent}}.tb-avatar{cursor:pointer;color:#fff;border:2px solid var(--bg);width:32px;height:32px;transition:outline-color var(--t-base), transform var(--t-spring);background:linear-gradient(135deg,#a78bfa,#f472b6);border-radius:50%;outline:2px solid #0000;flex-shrink:0;place-items:center;padding:0;font-size:13px;font-weight:600;display:grid;position:relative}.tb-avatar img{border-radius:50%;width:100%;height:100%;display:block}.tb-avatar:hover{outline-color:var(--accent);transform:scale(1.05)}.tb-avatar:after{content:"";background:var(--good);border:2px solid var(--bg);border-radius:50%;width:10px;height:10px;position:absolute;bottom:-2px;right:-2px}.content{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent;flex:1;padding:22px;overflow:auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);align-items:center;gap:12px;margin:0 0 4px;font-size:30px;font-weight:700;display:flex}.page-head h1 .accent{color:var(--accent)}.page-head p{color:var(--ink-3);margin:0;font-size:14px}.card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-3);padding:var(--card-pad);min-width:0;transition:border-color var(--t-base), transform var(--t-base), box-shadow var(--t-base);position:relative}.card.lift:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 12px 30px -16px #0009}.card .card-h{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card .card-h h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:14px;font-weight:600}.card .card-h .ch-sub{color:var(--ink-4);font-size:12px}.hero{margin-bottom:var(--gap);align-items:center;gap:18px;display:flex;overflow:hidden}.hero:before{content:"";background:radial-gradient(ellipse 60% 100% at 100% 50%, color-mix(in oklch, var(--accent) 14%, transparent), transparent 60%);pointer-events:none;position:absolute;inset:0}.hero-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:20px;font-weight:700}.hero>*{position:relative}.grid{gap:var(--gap);display:grid}.g-2{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(4,1fr)}@media (width<=1100px){.g-4,.g-3{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.g-2,.g-3,.g-4{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.stat{flex-direction:column;gap:4px;display:flex}.stat-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-family:var(--font-mono)}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1.1}.stat-sub{color:var(--ink-3);font-size:12px}.stat-icon{right:var(--card-pad);top:var(--card-pad);border-radius:var(--r-2);background:var(--bg-2);width:32px;height:32px;color:var(--accent);place-items:center;display:grid;position:absolute}.btn{border-radius:var(--r-2);height:34px;font:500 13px var(--font-body);border:1px solid var(--line);background:var(--bg-2);color:var(--ink);cursor:pointer;transition:all var(--t-fast);-webkit-user-select:none;user-select:none;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.btn:hover{background:var(--bg-3);border-color:var(--line-3)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 0 var(--accent-glow);border-color:#0000}.btn.primary:hover{background:color-mix(in oklab, var(--accent), white 8%);box-shadow:0 0 0 4px var(--accent-soft)}.btn.danger{color:var(--bad)}.btn.danger:hover{background:#f871711a;border-color:#f871714d}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-2)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn.lg{height:42px;padding:0 20px;font-size:14px}.btn.icon{width:34px;padding:0}.btn.icon.sm{width:28px}.chip{font-size:11px;font-weight:500;font-family:var(--font-mono);background:var(--bg-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.chip.accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.chip.good{color:var(--good);background:#34d3991f;border-color:#0000}.chip.warn{color:var(--warn);background:#f59e0b1f;border-color:#0000}.chip.bad{color:var(--bad);background:#f871711f;border-color:#0000}.chip.info{color:var(--info);background:#60a5fa1f;border-color:#0000}.chip .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.chip.live .dot{animation:1.4s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.sw{cursor:pointer;flex-shrink:0;width:38px;height:22px;display:inline-block;position:relative}.sw input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.sw .track{background:var(--bg-3);transition:background var(--t-base);border:1px solid var(--line);pointer-events:none;border-radius:999px;position:absolute;inset:0}.sw .thumb{background:var(--ink-3);width:16px;height:16px;transition:transform var(--t-spring), background var(--t-base);pointer-events:none;border-radius:50%;position:absolute;top:3px;left:3px}.sw input:checked+.track{background:var(--accent);border-color:#0000}.sw input:checked+.track+.thumb{background:#fff;transform:translate(16px)}.sw input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.sw.is-disabled{opacity:.45;cursor:not-allowed}.sw.is-disabled input{cursor:not-allowed}.input,.textarea{border-radius:var(--r-2);background:var(--bg-2);border:1px solid var(--line);width:100%;height:36px;color:var(--ink);font:inherit;transition:border-color var(--t-fast), background var(--t-fast);outline:none;padding:0 12px}.input::placeholder,.textarea::placeholder{color:var(--ink-4)}.input:focus,.textarea:focus{border-color:var(--accent);background:var(--bg-1);box-shadow:0 0 0 3px var(--accent-soft)}.field-label{color:var(--ink-3);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.field-hint{color:var(--ink-4);margin-top:5px;font-size:11.5px}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl thead th{text-align:left;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);font-size:11px;font-weight:500;font-family:var(--font-mono);-webkit-user-select:none;user-select:none;white-space:nowrap;padding:8px 12px}.tbl tbody td{border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:middle;padding:10px 12px}.tbl tbody tr{transition:background var(--t-fast)}.tbl tbody tr:hover{background:var(--bg-2)}.tbl tbody td.mono{font-family:var(--font-mono);font-size:12px}.tbl tbody td.right,.tbl thead th.right{text-align:right}.tbl tbody tr:last-child td{border-bottom:0}.dd-menu{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-2);z-index:50;animation:dd-in var(--t-base);min-width:160px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 12px 30px -10px #00000080}@keyframes dd-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}.dd-item{border-radius:var(--r-1);cursor:pointer;width:100%;color:inherit;font-size:13px;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;display:flex}.dd-item:hover{background:var(--bg-3)}.dd-item.is-selected{color:var(--accent)}.dd-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.av{color:#fff;width:28px;height:28px;font-size:11px;font-weight:600;font-family:var(--font-display);border-radius:50%;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.av img{object-fit:cover;width:100%;height:100%;display:block}.av.square{border-radius:8px}.av.lg{width:40px;height:40px;font-size:14px}.av.lg.square{border-radius:11px}.av.xl{width:64px;height:64px;font-size:22px}.av.xl.square{border-radius:18px}.bar{background:var(--bg-3);border-radius:3px;height:6px;position:relative;overflow:hidden}.bar>i{background:var(--accent);border-radius:inherit;height:100%;transition:width var(--t-slow);display:block;position:relative;overflow:hidden}.bar>i:after{content:"";background:linear-gradient(90deg,#0000,#ffffff40,#0000);animation:2s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skel{background:linear-gradient(90deg, var(--bg-2) 0%, var(--bg-3) 50%, var(--bg-2) 100%);border-radius:var(--r-1);background-size:200% 100%;animation:1.4s ease-in-out infinite skel}@keyframes skel{0%{background-position:200% 0}to{background-position:-200% 0}}.page-anim{animation:page-in var(--t-slow)}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stagger>*{opacity:0;animation:page-in var(--t-slow) forwards}.stagger>:first-child{animation-delay:30ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:90ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.15s}.stagger>:nth-child(6){animation-delay:.18s}.stagger>:nth-child(7){animation-delay:.21s}.stagger>:nth-child(8){animation-delay:.24s}.toast-stack{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-2);pointer-events:auto;min-width:240px;max-width:380px;animation:toast-in var(--t-spring);border-left:3px solid var(--accent);align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex;box-shadow:0 12px 30px -10px #00000080}.toast.bad{border-left-color:var(--bad)}.toast.warn{border-left-color:var(--warn)}.toast.info{border-left-color:var(--info)}@keyframes toast-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}.modal-backdrop{z-index:90;-webkit-backdrop-filter:blur(6px);animation:modal-bg var(--t-base);background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}@keyframes modal-bg{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--r-4);width:460px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 64px);animation:modal-in var(--t-spring);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 30px 80px -20px #000000b3}.modal.lg{width:640px}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}.modal-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.modal-h h3{font-family:var(--font-display);margin:0;font-size:16px;font-weight:600}.modal-x{color:var(--ink-3);cursor:pointer;border-radius:var(--r-1);background:0 0;border:0;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.modal-x:hover{background:var(--bg-2);color:var(--ink)}.modal-tabs{border-bottom:1px solid var(--line);gap:4px;padding:0 18px;display:flex;overflow-x:auto}.modal-tab{color:var(--ink-3);cursor:pointer;font:inherit;transition:color var(--t-fast);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 14px;font-size:13px;display:flex}.modal-tab:hover{color:var(--ink)}.modal-tab.is-active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.modal-body{padding:18px;overflow:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.seg{background:var(--bg-2);border-radius:var(--r-2);border:1px solid var(--line);gap:2px;padding:3px;display:inline-flex}.seg button{appearance:none;font:500 12px var(--font-body);color:var(--ink-3);cursor:pointer;transition:all var(--t-fast);background:0 0;border:0;border-radius:6px;padding:5px 12px}.seg button.active{background:var(--bg);color:var(--ink);box-shadow:inset 0 1px #ffffff0d}.seg button:not(.active):hover{color:var(--ink)}.callout{border-radius:var(--r-2);background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--info);color:var(--ink-2);gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.callout>svg{flex-shrink:0;margin-top:2px}.callout.warn{border-left-color:var(--warn)}.callout.bad{border-left-color:var(--bad)}.callout.good{border-left-color:var(--good)}.mascot{background:linear-gradient(140deg, var(--accent), oklch(70% .16 180));color:#062018;font-weight:700;font-family:var(--font-mono);box-shadow:0 4px 16px -6px var(--accent), inset 0 1px 0 #ffffff4d;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.mascot-eyes{animation:4.5s infinite blink}.mascot-antenna{background:var(--accent);width:2px;position:absolute;left:50%;transform:translate(-50%)}.mascot-bulb{background:var(--accent);border-radius:50%;animation:2.4s ease-in-out infinite float;position:absolute;left:50%}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes float{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-2px)}}.list-row{border-bottom:1px solid var(--line);border-radius:var(--r-1);transition:background var(--t-fast);align-items:center;gap:12px;padding:10px 8px;display:flex}.list-row:last-child{border-bottom:0}a.list-row:hover{background:var(--bg-2)}.list-row-main{flex:1;min-width:0}.list-row-title{font-weight:500}.list-row-sub{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.list-ico{border-radius:var(--r-2);background:var(--bg-2);width:32px;height:32px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.node-name{align-items:center;gap:8px;display:flex}.node-name .tree-guide{color:var(--ink-4);font-family:var(--font-mono)}.perm-table{table-layout:fixed;min-width:720px}.perm-table th:first-child{width:44%}.perm-table th:nth-child(2){width:18%}.perm-table td{vertical-align:top}.perm-table tr.is-module td{background:var(--bg-2)}.perm-table tr.is-hidden{display:none}.perm-desc{color:var(--ink-4);margin-top:2px;font-size:12px}.rules{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rule-chip{cursor:pointer;color:inherit;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:3px 4px 3px 8px;font-family:inherit;font-size:12px;display:inline-flex}.rule-chip>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rule-chip.allow{color:var(--good);background:#34d3991f}.rule-chip.deny{color:var(--bad);background:#f871711f}.rule-chip:hover{border-color:currentColor}.rule-chip .x{width:18px;height:18px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.rule-chip .x:hover{background:#00000040}.rule-chip .role-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.rule-chip .av{width:16px;height:16px;font-size:8px}.add-rule{border:1px dashed var(--line-3);height:24px;color:var(--ink-3);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 9px;font-size:12px;display:inline-flex}.add-rule:hover{color:var(--accent);border-color:var(--accent)}.filter-row{margin-bottom:var(--gap);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-row .input{max-width:280px}.pick-list{border:1px solid var(--line);border-radius:var(--r-2);background:var(--bg-2);max-height:240px;margin-top:8px;padding:4px;overflow-y:auto}.pick-item{border-radius:var(--r-1);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:7px 10px;display:flex}.pick-item:hover{background:var(--bg-3)}.pick-item.is-selected{background:var(--accent-soft);color:var(--accent)}.pick-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pick-empty{color:var(--ink-3);padding:10px;font-size:12.5px}.decision{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:7px 0;display:flex}.decision:last-child{border-bottom:0}.decision .mark{text-align:center;flex-shrink:0;width:18px}.decision .mark.allow{color:var(--good)}.decision .mark.deny{color:var(--bad)}.decision-reason{color:var(--ink-3);margin-top:2px;font-size:12px}.decision-module{font-family:var(--font-display);align-items:center;gap:8px;padding:12px 0 4px;font-weight:600;display:flex}.page-tabs{border-bottom:1px solid var(--line);margin-bottom:var(--gap);gap:4px;display:flex;overflow-x:auto}.page-tab{color:var(--ink-3);cursor:pointer;font:inherit;white-space:nowrap;transition:color var(--t-fast);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:10px 14px;font-size:13.5px;display:flex}.page-tab:hover{color:var(--ink)}.page-tab.is-active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.page-tab.is-active svg{color:var(--accent)}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 14px;display:grid}.settings-grid .field-row{margin-bottom:8px}.settings-bar{z-index:2;background:color-mix(in oklab, var(--bg-1), transparent 10%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--r-3);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex;position:sticky;bottom:0}.input.error{border-color:var(--bad)}.field-hint.error{color:var(--bad)}.select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 16px) 15px,calc(100% - 11px) 15px;background-repeat:no-repeat;background-size:5px 5px;padding-right:32px}.select option,.select optgroup{background:var(--bg-2);color:var(--ink)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.lb-table th.is-metric,.lb-table td.is-metric{color:var(--accent);font-weight:600}.lb-rank{font-family:var(--font-display);font-size:15px;font-weight:700}.tbl tbody tr.clickable{cursor:pointer}.mini-stat{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-2);padding:10px}.mini-stat b{font-family:var(--font-display);font-size:18px}.dist-row{grid-template-columns:18px 1fr;align-items:center;gap:8px;font-size:12px;display:grid}.dist-bar{height:22px}.dist-bar i{background:var(--accent);min-width:0;height:100%;color:var(--accent-ink);transition:width var(--t-slow);border-radius:4px;justify-content:flex-end;align-items:center;padding:0 8px;font-size:12px;font-style:normal;font-weight:700;display:flex}.dist-bar.fail i{background:var(--bg-3);color:var(--ink-2)}.spinner{border:2px solid var(--line-3);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-top:2px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.guild-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.guild-card{cursor:pointer;align-items:center;gap:14px;display:flex}.guild-card .list-row-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.standalone{z-index:1;flex-direction:column;align-items:center;height:100%;padding:48px 16px;display:flex;position:relative;overflow:auto}.standalone.center{justify-content:center}.standalone-inner{width:100%;max-width:960px}.login-card{text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:400px;padding:36px 28px;display:flex}.login-card h1{font-family:var(--font-display);letter-spacing:-.02em;margin:6px 0 0;font-size:26px}.login-card h1 b{color:var(--accent)}.login-card p{color:var(--ink-3);margin:0;line-height:1.5}.empty{text-align:center;color:var(--ink-3);flex-direction:column;align-items:center;gap:10px;padding:36px 18px;line-height:1.5;display:flex}.empty h3{color:var(--ink);font-family:var(--font-display);margin:0}.pet-overlay{z-index:95;background:radial-gradient(closest-side,#34d3991f,#000000d9);place-items:center;display:grid;position:fixed;inset:0}.pet-bot{-webkit-user-select:none;user-select:none;filter:drop-shadow(0 0 30px var(--accent-glow));font-size:100px;animation:2.4s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-12px)rotate(2deg)}}.konami-flash{z-index:1000;mix-blend-mode:screen;pointer-events:none;background:linear-gradient(135deg,#34d39966,#a78bfa66);animation:1.4s ease-out forwards konami;position:fixed;inset:0}@keyframes konami{0%{opacity:0}20%{opacity:1}to{opacity:0}}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.muted{color:var(--ink-3)}.dim{color:var(--ink-4)}.mono{font-family:var(--font-mono)}.tabular{font-variant-numeric:tabular-nums}.scroll-x{overflow-x:auto}.mb{margin-bottom:var(--gap)}@media (width<=760px){.app{grid-template-columns:64px 1fr}.sb-name,.sb-tag,.sb-section,.sb-lbl,.sb-pill,.sb-guild-meta,.sb-guild .caret,.sb-status{display:none}.sb{padding:14px 8px}.sb-item{justify-content:center;padding:0}.sb-item.is-active:before{left:-8px}.sb-brand{justify-content:center;padding:8px 0 14px}.sb-guild-btn{background:0 0;border-color:#0000;justify-content:center;padding:6px 0}.sb-guild .dd-menu{width:240px;left:0;right:auto}.tb{padding:10px 16px}.tb-collapse{display:none}.content{padding:16px}.page-head h1{font-size:24px}}
