/* Trick chat — Discord-style UI */
.tc{--c-rail:#1e1f22;--c-side:#2b2d31;--c-main:#313338;--c-input:#383a40;--c-hover:#35373c;--c-active:#404249;--c-text:#dbdee1;--c-head:#f2f3f5;--c-muted:#949ba4;--c-faint:#6d6f78;--c-blurple:#5865f2;--c-red:#f23f42;--c-green:#23a55a;
  position:fixed;inset:0;z-index:9000;display:none;padding:clamp(0px,2vw,20px);background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-family:"gg sans","Segoe UI",Inter,system-ui,-apple-system,sans-serif;font-size:15px;color:var(--c-text);-webkit-font-smoothing:auto}
.tc.open{display:block;animation:tcIn .22s ease-out}
@keyframes tcIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.tc *{box-sizing:border-box;font-family:inherit}
.tc button{border:0;background:none;color:inherit;font:inherit}
.tc-app{position:relative;display:grid;grid-template-columns:72px 240px minmax(0,1fr) 240px;height:100%;max-width:1500px;margin:0 auto;overflow:hidden;border-radius:14px;background:var(--c-main);box-shadow:0 20px 80px rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.06)}
.tc.no-members .tc-app{grid-template-columns:72px 240px minmax(0,1fr)}
.tc.no-members .tc-members{display:none}

/* rail */
.tc-rail{background:var(--c-rail);display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0}
.tc-logo{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--c-blurple);color:#fff;font-weight:800;font-size:20px;transition:border-radius .2s,background .2s;position:relative}
.tc-logo::before{content:"";position:absolute;left:-12px;top:50%;width:4px;height:36px;margin-top:-18px;border-radius:0 4px 4px 0;background:#fff}
.tc-sep{width:32px;height:2px;border-radius:1px;background:var(--c-side)}
.tc-exit{margin-top:auto;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--c-main);color:var(--c-green);cursor:pointer;transition:.2s}
.tc-exit:hover{border-radius:16px;background:var(--c-green);color:#fff}
.tc-exit svg{width:22px;height:22px}

/* sidebar */
.tc-side{background:var(--c-side);display:flex;flex-direction:column;min-width:0}
.tc-side-head{height:48px;flex:none;display:flex;align-items:center;padding:0 16px;font-weight:700;color:var(--c-head);border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 1px 0 rgba(255,255,255,.02)}
.tc-chs{flex:1;overflow-y:auto;padding:14px 8px;scrollbar-width:thin;scrollbar-color:#1a1b1e transparent}
.tc-cat{padding:0 8px 4px;font-size:12px;font-weight:700;letter-spacing:.2px;text-transform:uppercase;color:var(--c-muted)}
.tc-ch{display:flex;align-items:center;gap:6px;width:100%;height:34px;padding:0 8px;margin-top:2px;border-radius:5px;color:var(--c-muted);cursor:pointer;text-align:left}
.tc-ch:hover{background:var(--c-hover);color:#d1d3d7}
.tc-ch.active{background:var(--c-active);color:#fff}
.tc-ch svg{width:20px;height:20px;flex:none;opacity:.8}
.tc-ch span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.tc-me{flex:none;display:flex;align-items:center;gap:8px;height:54px;padding:0 8px;background:#232428}
.tc-me-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:4px;border-radius:5px;cursor:pointer;text-align:left}
.tc-me-info:hover{background:rgba(255,255,255,.06)}
.tc-me-text{min-width:0;line-height:1.2}
.tc-me-name{font-size:14px;font-weight:600;color:var(--c-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-me-sub{font-size:12px;color:var(--c-muted)}
.tc-gear{display:grid;place-items:center;width:32px;height:32px;border-radius:5px;color:var(--c-muted);cursor:pointer}
.tc-gear:hover{background:rgba(255,255,255,.08);color:#fff}
.tc-gear svg{width:20px;height:20px}

/* avatars */
.tc-av{position:relative;flex:none;display:grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;overflow:visible;user-select:none}
.tc-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.tc-av.on::after,.tc-av.off::after{content:"";position:absolute;right:-2px;bottom:-2px;width:34%;height:34%;min-width:10px;min-height:10px;border-radius:50%;border:3px solid var(--tc-ring,#232428);background:var(--c-green)}
.tc-av.off::after{background:#80848e}

/* main */
.tc-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--c-main);position:relative}
.tc-head{height:48px;flex:none;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid rgba(0,0,0,.25);color:var(--c-head);font-weight:700}
.tc-head svg{width:22px;height:22px;color:var(--c-muted);flex:none}
.tc-head-topic{font-weight:400;font-size:14px;color:var(--c-muted);padding-left:12px;margin-left:2px;border-left:1px solid rgba(255,255,255,.12);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-head-sp{flex:1}
.tc-hbtn{display:grid;place-items:center;width:32px;height:32px;border-radius:5px;color:var(--c-muted);cursor:pointer}
.tc-hbtn:hover{color:#fff;background:rgba(255,255,255,.06)}
.tc-menu{display:none}
.tc-msgs{flex:1;min-height:0;overflow-y:auto;padding:16px 0 8px;scrollbar-width:thin;scrollbar-color:#1a1b1e transparent;overscroll-behavior:contain}
.tc-empty{padding:40px 18px;color:var(--c-muted)}
.tc-empty h3{color:var(--c-head);font-size:28px;margin-bottom:6px}
.tc-day{display:flex;align-items:center;gap:8px;margin:18px 16px 8px;font-size:12px;font-weight:600;color:var(--c-muted)}
.tc-day::before,.tc-day::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.08)}
.tc-msg{position:relative;display:flex;gap:16px;padding:2px 48px 2px 16px;min-height:22px}
.tc-msg:hover{background:rgba(2,2,2,.06)}
.tc-msg.first{margin-top:17px;padding-top:2px}
.tc-left{flex:none;width:40px}
.tc-time-s{visibility:hidden;text-align:right;font-size:11px;line-height:22px;color:var(--c-faint);user-select:none}
.tc-msg:hover .tc-time-s{visibility:visible}
.tc-body{min-width:0;flex:1}
.tc-line{display:flex;align-items:baseline;gap:8px}
.tc-name{font-weight:600;cursor:pointer;color:var(--c-head)}
.tc-name:hover{text-decoration:underline}
.tc-time{font-size:12px;color:var(--c-faint)}
.tc-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.375;color:var(--c-text)}
.tc-text a{color:#00a8fc;text-decoration:none}
.tc-text a:hover{text-decoration:underline}
.tc-tools{position:absolute;right:16px;top:-14px;display:none;border:1px solid rgba(0,0,0,.3);border-radius:6px;background:var(--c-main);box-shadow:0 2px 8px rgba(0,0,0,.3)}
.tc-msg:hover .tc-tools{display:flex}
.tc-tool{display:grid;place-items:center;width:32px;height:30px;color:var(--c-muted);cursor:pointer}
.tc-tool:hover{color:var(--c-red);background:rgba(255,255,255,.05)}
.tc-tool svg{width:18px;height:18px}
.tc-atts{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:4px}
.tc-img{display:block;max-width:min(400px,100%);max-height:320px;border-radius:8px;cursor:pointer;background:#232428}
.tc-vid{max-width:min(440px,100%);max-height:340px;border-radius:8px;background:#000}
.tc-aud{width:min(360px,100%)}
.tc-file{display:flex;align-items:center;gap:12px;max-width:min(420px,100%);padding:10px 14px;border-radius:8px;background:var(--c-side);border:1px solid rgba(255,255,255,.07);color:inherit;text-decoration:none}
.tc-file:hover{background:#26282c}
.tc-file svg{width:32px;height:32px;flex:none;color:var(--c-blurple)}
.tc-file b{display:block;color:#00a8fc;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
.tc-file small{color:var(--c-muted);font-size:12px}

/* composer */
.tc-comp{flex:none;padding:0 16px 22px;position:relative}
.tc-tray{display:flex;gap:10px;flex-wrap:wrap;padding:12px;margin-bottom:-8px;border-radius:8px 8px 0 0;background:#2b2d31}
.tc-tray:empty{display:none}
.tc-chip{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:150px;height:130px;padding:8px;border-radius:6px;background:var(--c-main);font-size:12px;color:var(--c-muted);overflow:hidden}
.tc-chip img{max-width:100%;max-height:84px;border-radius:4px;object-fit:contain}
.tc-chip svg{width:38px;height:38px;color:var(--c-blurple)}
.tc-chip span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-chip button{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:24px;height:24px;border-radius:5px;background:var(--c-side);color:var(--c-red);cursor:pointer}
.tc-chip button:hover{background:var(--c-red);color:#fff}
.tc-chip button svg{width:14px;height:14px;color:inherit}
.tc-box{position:relative;display:flex;align-items:flex-end;border-radius:8px;background:var(--c-input)}
.tc-plus{flex:none;display:grid;place-items:center;width:44px;height:44px;color:var(--c-muted);cursor:pointer}
.tc-plus:hover{color:#fff}
.tc-plus svg{width:24px;height:24px}
.tc-ta{flex:1;min-width:0;max-height:240px;min-height:44px;padding:11px 0;border:0;outline:0;resize:none;background:none;color:var(--c-text);font-size:15px;line-height:22px;overflow-y:auto;scrollbar-width:thin}
.tc-ta::placeholder{color:var(--c-faint)}
.tc-send{flex:none;display:grid;place-items:center;width:44px;height:44px;color:var(--c-muted);cursor:pointer}
.tc-send:hover:not(:disabled){color:var(--c-blurple)}
.tc-send:disabled{opacity:.4;cursor:default}
.tc-send svg{width:22px;height:22px}
.tc-drop{position:absolute;inset:0;z-index:5;display:none;place-items:center;background:rgba(88,101,242,.22);border:2px dashed var(--c-blurple);border-radius:8px;color:#fff;font-size:20px;font-weight:700;pointer-events:none}
.tc.dragging .tc-drop{display:grid}

/* members */
.tc-members{background:var(--c-side);overflow-y:auto;padding:16px 8px;scrollbar-width:thin;scrollbar-color:#1a1b1e transparent;--tc-ring:#2b2d31}
.tc-mh{padding:12px 8px 4px;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--c-muted)}
.tc-mem{display:flex;align-items:center;gap:12px;width:100%;height:42px;padding:0 8px;border-radius:5px;cursor:pointer;text-align:left}
.tc-mem:hover{background:var(--c-hover)}
.tc-mem.off{opacity:.5}
.tc-mem .tc-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;text-decoration:none!important}

/* modal + popout */
.tc-layer{position:absolute;inset:0;z-index:20;display:none;place-items:center;background:rgba(0,0,0,.7)}
.tc-layer.open{display:grid;animation:tcIn .16s ease-out}
.tc-modal{width:min(480px,calc(100% - 24px));max-height:calc(100% - 24px);overflow-y:auto;border-radius:10px;background:#313338;box-shadow:0 8px 40px rgba(0,0,0,.5);scrollbar-width:thin}
.tc-banner{height:90px;border-radius:10px 10px 0 0;background:var(--c-blurple);transition:background .2s}
.tc-pbody{position:relative;padding:0 18px 18px}
.tc-pav{position:relative;margin-top:-46px;width:92px;height:92px;border:6px solid #313338;border-radius:50%;background:#313338}
.tc-pav .tc-av{width:100%;height:100%;font-size:38px}
.tc-pav .tc-pick{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;opacity:0;cursor:pointer;transition:.15s}
.tc-pav:hover .tc-pick{opacity:1}
.tc-fld{margin-top:16px}
.tc-fld label{display:block;margin-bottom:8px;font-size:12px;font-weight:700;letter-spacing:.2px;text-transform:uppercase;color:var(--c-muted)}
.tc-in{width:100%;padding:10px;border:0;border-radius:4px;outline:0;background:#1e1f22;color:var(--c-text);font-size:16px}
.tc-in:focus{box-shadow:0 0 0 2px var(--c-blurple)}
textarea.tc-in{resize:none;height:80px;font-size:14px;line-height:1.4}
.tc-sw{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tc-sw button{width:30px;height:30px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:transform .12s}
.tc-sw button:hover{transform:scale(1.12)}
.tc-sw button.sel{border-color:#fff}
.tc-sw input[type=color]{width:34px;height:30px;padding:0;border:0;border-radius:6px;background:none;cursor:pointer}
.tc-row{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:20px}
.tc-btn{padding:10px 20px;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;color:#fff;background:var(--c-blurple);transition:background .15s}
.tc-btn:hover{background:#4752c4}
.tc-btn.ghost{background:none}
.tc-btn.ghost:hover{text-decoration:underline;background:none}
.tc-btn.link{background:none;color:#00a8fc;padding:0;margin-right:auto;font-size:13px}
.tc-btn.link:hover{text-decoration:underline;background:none}
.tc-btn:disabled{opacity:.5;cursor:default}
.tc-err{min-height:18px;margin-top:12px;font-size:13px;color:#fa777c}
.tc-pop-name{margin-top:10px;font-size:20px;font-weight:700;color:var(--c-head)}
.tc-pop-bio{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);font-size:14px;color:var(--c-text);white-space:pre-wrap;overflow-wrap:anywhere}
.tc-pop-sub{font-size:13px;color:var(--c-muted);margin-top:2px}
.tc-welcome{margin:14px 0 0;font-size:14px;color:var(--c-muted);line-height:1.5}
.tc-light{position:absolute;inset:0;z-index:30;display:none;place-items:center;background:rgba(0,0,0,.85)}
.tc-light.open{display:grid}
.tc-light img{max-width:92%;max-height:88%;border-radius:6px}
.tc-light a{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);color:#fff;font-size:14px}
.tc-toast{position:absolute;z-index:40;left:50%;bottom:90px;transform:translate(-50%,10px);max-width:calc(100% - 32px);padding:10px 16px;border-radius:8px;background:#111214;color:#fff;font-size:14px;border:1px solid rgba(255,255,255,.1);opacity:0;pointer-events:none;transition:.25s}
.tc-toast.show{opacity:1;transform:translate(-50%,0)}
.tc-toast.bad{border-color:var(--c-red)}

/* small screens */
@media(max-width:860px){
  .tc-app,.tc.no-members .tc-app{grid-template-columns:minmax(0,1fr)}
  .tc-rail{display:none}
  .tc-side{position:absolute;z-index:15;left:0;top:0;bottom:0;width:min(290px,86%);transform:translateX(-102%);transition:transform .22s;box-shadow:8px 0 30px rgba(0,0,0,.5)}
  .tc.show-side .tc-side{transform:none}
  .tc-members{position:absolute;z-index:15;right:0;top:0;bottom:0;width:min(270px,86%);transform:translateX(102%);transition:transform .22s;box-shadow:-8px 0 30px rgba(0,0,0,.5)}
  .tc.no-members .tc-members{display:block}
  .tc.show-members .tc-members{transform:none}
  .tc-menu{display:grid}
  .tc-head-topic{display:none}
  .tc-msg{padding-right:12px;gap:12px}
  .tc-tools{right:8px}
}
@media(max-width:860px){.tc{padding:0}.tc-app{border-radius:0;border:0}}
@media(prefers-reduced-motion:reduce){.tc.open,.tc-layer.open{animation:none}}
