@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-latin-wght-normal.woff2) format("woff2")}
:root{--bg:#0f1111;--panel:#161919;--panel2:#1c2020;--line:#272c2c;--fg:#eceeee;--mute:#8a9191;--dim:#5d6464;--accent:#19f0c0;color-scheme:dark}
*{box-sizing:border-box;margin:0}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font:400 14px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}
button,input,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}
svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:28px 40px}
.logo{font-size:20px;font-weight:500;letter-spacing:-.02em}.logo i{font-style:normal;color:var(--accent)}
.wx{display:flex;align-items:center;gap:14px;padding:8px 18px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--mute);font-size:13px}
.wx b{font-weight:400;color:var(--fg)}.wx span{display:flex;align-items:center;gap:6px}.wx svg{width:18px;height:18px}
.wx .sep{width:1px;height:14px;background:var(--line)}
.tools{display:flex;justify-content:flex-end;gap:6px}
.tools button{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;color:var(--mute);transition:.15s}
.tools button:hover{background:var(--panel2);color:var(--fg)}.tools svg{width:20px;height:20px}
main{flex:1;display:flex;flex-direction:column;align-items:center;padding:6vh 24px 40px;animation:in .7s ease both}
@keyframes in{from{opacity:0;transform:translateY(8px)}}
h1{font-size:34px;font-weight:300;letter-spacing:-.025em}
.sub{color:var(--mute);margin-top:6px}
.search{margin-top:34px;width:min(580px,100%);display:flex;align-items:center;gap:10px;padding:6px 6px 6px 18px;background:var(--panel);border:1px solid var(--line);border-radius:18px;transition:border-color .15s,box-shadow .15s}
.search:focus-within{border-color:#3a4141}
.search.ai{border-color:rgba(25,240,192,.5);box-shadow:0 0 0 4px rgba(25,240,192,.07)}
.search>svg{width:18px;height:18px;color:var(--dim);flex:none}
.search input{flex:1;min-width:0;background:none;border:0;outline:0;height:40px;font-size:15px}
.search input::placeholder{color:var(--dim)}
.seg{display:flex;background:var(--bg);border-radius:12px;padding:3px;flex:none}
.seg button{padding:7px 12px;border-radius:9px;color:var(--mute);font-size:13px;transition:.15s}
.seg button[aria-pressed=true]{background:var(--panel2);color:var(--fg)}
.seg button.ai[aria-pressed=true]{color:var(--accent)}
#out{width:min(580px,100%);margin-top:12px;padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:18px;max-height:38vh;overflow:auto;white-space:pre-wrap;line-height:1.65;color:#d5d9d9}
#out small{display:block;margin-top:12px;color:var(--dim);white-space:normal}
#out a{color:var(--accent)}
#out[hidden]{display:none}
.tabs{display:flex;gap:26px;margin:44px 0 26px}
.tabs button{padding:6px 0;color:var(--mute);border-bottom:1px solid transparent;transition:.15s}
.tabs button:hover{color:var(--fg)}
.tabs button[aria-selected=true]{color:var(--fg);border-color:var(--fg)}
.tabs sup{font-size:10px;margin-left:6px;color:var(--dim)}
.grid{display:grid;grid-template-columns:repeat(4,128px);gap:26px 46px;justify-content:center}
.bm{position:relative}
.bm a{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;text-decoration:none;color:inherit;padding:6px;border-radius:16px}
.tile{width:60px;height:60px;border-radius:18px;background:var(--panel);border:1px solid var(--line);display:grid;place-items:center;position:relative;overflow:hidden;transition:transform .2s,border-color .2s,background .2s}
.tile em{font-style:normal;font-size:20px;font-weight:300;color:var(--mute)}
.tile img{position:absolute;width:28px;height:28px;border-radius:7px;filter:grayscale(.55) brightness(.95);transition:filter .2s}
.bm a:hover .tile,.bm a:focus-visible .tile{transform:translateY(-3px);border-color:#3a4141;background:var(--panel2)}
.bm a:hover img{filter:none}
.bm .nm{font-size:14px}.bm .dm{font-size:11px;color:var(--dim);margin-top:-8px;max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm .x{position:absolute;top:2px;right:14px;width:22px;height:22px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);color:var(--mute);font-size:13px;line-height:1;opacity:0;transition:.15s}
.bm:hover .x,.bm .x:focus-visible{opacity:1}.bm .x:hover{color:var(--fg)}
.empty{color:var(--mute);grid-column:1/-1;text-align:center}
footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:24px 40px;color:var(--dim);font-size:12px}
footer .mid{display:flex;align-items:center;gap:8px}footer .mid svg{width:16px;height:16px}
footer .r{text-align:right}
dialog{margin:auto;width:min(380px,92vw);padding:24px;background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:20px}
dialog::backdrop{background:rgba(5,6,6,.7);backdrop-filter:blur(4px)}
dialog h2{font-size:16px;font-weight:500;margin-bottom:16px}
label{display:block;color:var(--mute);font-size:12px;margin:12px 0 6px}
dialog input,dialog select{width:100%;height:40px;padding:0 12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;outline:0}
dialog input:focus,dialog select:focus{border-color:var(--accent)}
.hint{color:var(--dim);font-size:12px;margin-top:6px}
.acts{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
.acts button{padding:9px 16px;border-radius:10px;color:var(--mute)}
.acts button:hover{color:var(--fg)}.acts .go{background:var(--fg);color:var(--bg)}.acts .go:hover{color:var(--bg);opacity:.9}
@media(max-width:700px){header,footer{padding:20px}.grid{grid-template-columns:repeat(2,128px);gap:22px 30px}.wx .h{display:none}.wx .sep{display:none}h1{font-size:28px}footer .mid span{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.chk{display:flex;align-items:center;gap:10px;color:var(--fg);font-size:13px;margin:16px 0 0}
dialog .chk input{width:16px;height:16px;padding:0;accent-color:var(--accent)}
