:root{--case-red:#d4141c;--case-line:#292d30}
.case-launch{position:fixed;z-index:120;right:18px;top:18px;display:flex;align-items:center;gap:9px;padding:11px 15px;border:1px solid #762025;background:#0a0b0ded;color:#f1f1ee;font:900 12px/1 "Microsoft YaHei UI",sans-serif;letter-spacing:.12em;box-shadow:5px 5px 0 #000;cursor:pointer;transition:.2s}.case-launch:hover{border-color:#df2028;transform:translate(-2px,-2px);box-shadow:7px 7px 0 #000}.case-launch:before{content:"";width:7px;height:7px;background:var(--case-red);box-shadow:0 0 13px #ff2832}
.case-layer{position:fixed;z-index:115;inset:0;pointer-events:none;color:#e8e8e5;font-family:"Microsoft YaHei UI",sans-serif}.case-layer.open{pointer-events:auto}.case-scrim{position:absolute;inset:0;background:#0009;backdrop-filter:blur(3px);opacity:0;transition:.28s}.case-layer.open .case-scrim{opacity:1}
.case-panel{position:absolute;right:0;top:0;bottom:0;width:min(620px,48vw);display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(140deg,#151719 0,#090a0b 52%,#120709 100%);border-left:1px solid #4a1b1e;box-shadow:-25px 0 80px #000b;transform:translateX(104%);transition:transform .34s cubic-bezier(.2,.8,.2,1)}.case-layer.open .case-panel{transform:none}.case-panel:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.14;background:repeating-linear-gradient(115deg,transparent 0 29px,#fff 30px 31px,transparent 32px 60px);mask-image:linear-gradient(to bottom,#000,transparent 45%)}
.case-head{position:relative;z-index:2;flex:0 0 auto;padding:22px 24px 16px;border-bottom:1px solid var(--case-line);background:#0b0c0ed9}.case-top{display:flex;align-items:center;gap:14px}.case-mark{flex:0 0 auto;font:1000 clamp(28px,3vw,42px)/.9 "Microsoft YaHei UI",sans-serif;letter-spacing:-.08em}.case-mark span{color:var(--case-red)}.case-profiles{display:flex;align-items:flex-start;gap:7px;margin-left:clamp(10px,3vw,24px);margin-right:auto}.case-profile{position:relative;display:grid;grid-template-rows:46px auto;width:48px;height:auto;margin:0;background:#0b0c0e}.case-profile img{box-sizing:border-box;display:block;width:46px;height:46px;object-fit:contain;border:1px solid #7d262a;background:#111315;filter:saturate(.7) contrast(1.1)}.case-profile b{position:static;display:block;width:46px;box-sizing:border-box;padding:3px 1px;background:#8f1116;color:#fff;text-align:center;font:800 8px/1 Consolas,monospace}.case-close{flex:0 0 42px;width:42px;height:42px;border:1px solid #373b3e;background:#151719;color:#ddd;font-size:22px;cursor:pointer}.case-close:hover{background:#b5141b;border-color:#b5141b}
.case-tabs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%;margin-top:18px}.case-tabs button{box-sizing:border-box;position:relative;display:block;width:100%!important;max-width:none!important;height:auto!important;min-width:0!important;padding:13px 14px!important;text-align:left;border:1px solid #34383b;background:#111315;color:#8e9396;cursor:pointer;overflow:hidden;white-space:nowrap}.case-tabs button:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:3px;background:var(--case-red);transition:.25s}.case-tabs button.active{border-color:#6c2226;background:linear-gradient(110deg,#3b0c10,#171719 65%);color:#fff}.case-tabs button.active:after{right:0}.case-tabs strong,.case-tabs span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.case-tabs strong{font-size:13px;line-height:1.25}.case-tabs span{margin-top:5px;color:#74797c;font:10px/1 Consolas,monospace}.case-tabs button.active span{color:#d15d62}.case-meta{display:flex;align-items:center;gap:10px;margin-top:13px;color:#8a8f92;font-size:11px}.case-meta strong{min-width:0;max-width:72%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eee}.case-meta i{flex:1;height:1px;background:linear-gradient(90deg,#7d2025,transparent)}
.case-stream{position:relative;z-index:1;min-height:0;flex:1;overflow:auto;padding:22px 24px 44px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8c2025 #101214}.case-day{display:flex;align-items:center;gap:10px;margin:2px 0 20px;color:#787d80;font:10px/1 Consolas,monospace;letter-spacing:.12em}.case-day:before{content:"";width:26px;height:2px;background:var(--case-red)}
.case-message{position:relative;margin:0 0 6px;padding:12px 12px 12px 78px;min-height:48px;border-left:1px solid #292d30;background:linear-gradient(90deg,#131517aa,transparent);line-height:1.65;overflow-wrap:anywhere}.case-message:before{content:"";position:absolute;left:-4px;top:22px;width:7px;height:7px;background:#5b6063;border:2px solid #101214}.case-message.gw{border-left-color:#a61e24;background:linear-gradient(90deg,#310d11b8,transparent 76%)}.case-message.gw:before{background:#e5222a;box-shadow:0 0 10px #d51b22}.case-message.su:before{background:#afb3b3}.case-time{position:absolute;left:14px;top:16px;color:#686e72;font:10px Consolas,monospace}.case-speaker{display:inline-block;margin-right:8px;color:#b9bcbb;font-size:11px;font-weight:900}.case-message.gw .case-speaker{color:#ff555b}.case-text{font-size:14px;color:#e2e2df;white-space:pre-wrap}.case-kind{display:inline-flex;align-items:center;gap:7px;padding:5px 8px;border:1px solid #414548;color:#aaa;font-size:11px}.case-kind:before{content:"■";color:#a61e24;font-size:7px}.case-quote{margin-top:8px;padding:7px 9px;border-left:2px solid #8f2025;background:#070809;color:#919699;font-size:11px;line-height:1.5}.case-empty{padding:50px 20px;text-align:center;color:#777}body.case-open{overflow:hidden}
@media(max-width:760px){.case-launch{top:auto;right:12px;bottom:12px}.case-panel{width:100%;border:0;transform:translateY(104%)}.case-head{padding:15px 15px 12px}.case-top{gap:9px}.case-mark{font-size:30px}.case-profiles{gap:4px}.case-profile{grid-template-rows:36px auto;width:38px}.case-profile img{width:36px;height:36px}.case-profile b{width:36px}.case-close{flex-basis:38px;width:38px;height:38px}.case-tabs{margin-top:13px}.case-tabs button{padding:10px!important}.case-stream{padding:16px 15px 72px}.case-message{padding:11px 8px 11px 67px}.case-time{left:10px}.case-text{font-size:13px}}
@media(prefers-reduced-motion:reduce){.case-panel,.case-scrim{transition:none}}
