:root{--shell-width:236px;--shell-ink:#17202b;--shell-muted:#697481;--shell-line:#e2e6e8;--shell-accent:#147d69;--shell-pale:#eaf5f2}
body.has-app-shell{padding-left:var(--shell-width)}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--shell-width);z-index:1000;display:flex;flex-direction:column;padding:26px 18px 20px;background:#fff;border-right:1px solid var(--shell-line);color:var(--shell-ink);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
.app-side-brand{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 10px;margin-bottom:34px;color:var(--shell-ink);text-decoration:none}.app-brand-copy{display:flex;flex-direction:column;line-height:1.2}.app-brand-copy b{font-size:20px}.app-brand-copy small{margin-top:5px;color:#8a9590;font-size:10px;font-weight:500;white-space:nowrap}
.app-side-wave{display:flex;align-items:center;gap:3px;height:27px;color:var(--shell-accent)}.app-side-wave i{display:block;width:3px;border-radius:3px;background:currentColor}.app-side-wave i:nth-child(odd){height:13px}.app-side-wave i:nth-child(2),.app-side-wave i:nth-child(4){height:22px}.app-side-wave i:nth-child(3){height:27px}
.app-side-label{padding:0 12px 8px;color:#929aa3;font-size:12px;letter-spacing:.08em}
.app-side-nav{display:flex;flex-direction:column;gap:5px}.app-side-nav a{min-height:46px;padding:0 12px;display:flex;align-items:center;gap:12px;border-radius:8px;color:var(--shell-muted);text-decoration:none;font-size:15px;font-weight:600;transition:background .18s,color .18s}.app-side-nav a:hover{background:#f5f7f6;color:var(--shell-ink)}.app-side-nav a.active{background:var(--shell-pale);color:var(--shell-accent)}.app-side-nav svg{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app-side-channels{margin-top:auto;padding-top:18px;border-top:1px solid var(--shell-line)}.app-side-channels>a{min-height:46px;padding:0 12px;display:flex;align-items:center;gap:12px;border-radius:8px;color:var(--shell-muted);text-decoration:none;font-size:15px;font-weight:600}.app-side-channels>a:hover{background:#f5f7f6;color:var(--shell-ink)}.app-side-channels>a.active{background:var(--shell-pale);color:var(--shell-accent)}.app-side-channels svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-side-foot{margin-top:12px;padding:15px 12px 0;border-top:1px solid var(--shell-line);color:#929aa3;font-size:12px;line-height:1.7}
.app-menu-button,.app-menu-mask{display:none}
body.has-app-shell .topline,body.has-app-shell>.top{display:none!important}
body.has-app-shell .shell{max-width:1300px}
body.has-app-shell .layout{grid-template-columns:1fr;max-width:980px}
body.has-app-shell .layout>.side{display:none}
body.has-app-shell .wrap{max-width:1180px}
@media(max-width:760px){body.has-app-shell{padding-left:0;padding-top:60px}.app-sidebar{width:252px;transform:translateX(-102%);box-shadow:12px 0 36px rgba(23,32,43,.12);transition:transform .22s ease}.app-sidebar.open{transform:translateX(0)}.app-menu-button{display:flex;position:fixed;left:12px;top:10px;z-index:1100;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid var(--shell-line);border-radius:8px;background:#fff;color:var(--shell-ink);cursor:pointer}.app-menu-button svg{width:21px}.app-menu-mask{display:block;position:fixed;inset:0;z-index:990;background:rgba(17,24,32,.32);opacity:0;pointer-events:none;transition:opacity .22s}.app-menu-mask.open{opacity:1;pointer-events:auto}body.has-app-shell .hero{min-height:410px}body.has-app-shell .layout{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.app-sidebar,.app-menu-mask{transition:none}}
.app-side-channels img{width:22px;height:22px;flex:none;object-fit:contain}
.app-side-account{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 10px;border-top:1px solid var(--shell-line);color:var(--shell-ink);text-decoration:none}.app-account-avatar{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--shell-pale);color:var(--shell-accent);font-weight:800}.app-side-account>span:last-child{min-width:0;display:flex;flex-direction:column}.app-side-account b,.app-side-account small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-side-account b{font-size:13px}.app-side-account small{color:var(--shell-muted);font-size:10px}
