:root{--bg:#fff;--bg-subtle:#f6f8fa;--surface:#fff;--surface-hover:#f6f8fa;--fg:#0f1419;--fg-muted:#5c6b7a;--fg-faint:#8b98a5;--line:#e3e8ee;--line-strong:#cfd8e3;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#eff4ff;--accent-fg:#fff;--like:#e0245e;--like-soft:#fdeaf1;--save:#f59e0b;--save-soft:#fef4e2;--success:#12894a;--danger:#d21f3c;--danger-soft:#fdeced;--t-sm:.8125rem;--t-md:.9375rem;--t-lg:1.0625rem;--w-normal:400;--w-bold:600;--radius:14px;--radius-sm:10px;--radius-pill:999px;--shadow:0 1px 2px #0f14190d;--shadow-lg:0 8px 28px #0f14191f;--sidebar-w:248px;--content-w:600px;--aside-w:320px;--nav-h:58px}:root:not([data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c2128;--bg-subtle:#22272e;--surface:#22272e;--surface-hover:#2d333b;--fg:#cdd9e5;--fg-muted:#9aa8b6;--fg-faint:#7c8b9a;--line:#373e47;--line-strong:#454f5b;--accent:#6cb6ff;--accent-hover:#8ccaff;--accent-soft:#253242;--accent-fg:#10161c;--like:#ef7fa8;--like-soft:#33222a;--save:#d9a441;--save-soft:#302819;--success:#6bbf6e;--danger:#e5837c;--danger-soft:#34211f;--shadow:0 1px 2px #00000047;--shadow-lg:0 8px 28px #0000005c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1c2128;--bg-subtle:#22272e;--surface:#22272e;--surface-hover:#2d333b;--fg:#cdd9e5;--fg-muted:#9aa8b6;--fg-faint:#7c8b9a;--line:#373e47;--line-strong:#454f5b;--accent:#6cb6ff;--accent-hover:#8ccaff;--accent-soft:#253242;--accent-fg:#10161c;--like:#ef7fa8;--like-soft:#33222a;--save:#d9a441;--save-soft:#302819;--success:#6bbf6e;--danger:#e5837c;--danger-soft:#34211f;--shadow:0 1px 2px #00000047;--shadow-lg:0 8px 28px #0000005c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,system-ui,sans-serif;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--accent-fg)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.app{grid-template-columns:var(--sidebar-w) minmax(0, var(--content-w)) var(--aside-w);align-items:start;gap:28px;max-width:1240px;margin:0 auto;padding:0 20px;display:grid}.sidebar{flex-direction:column;gap:4px;height:100vh;padding:18px 0 20px;display:flex;position:sticky;top:0}.logo{font-size:1.24rem;font-weight:var(--w-bold);letter-spacing:-.03em;align-items:center;gap:9px;padding:6px 12px 16px;display:flex}.logo-mark{background:linear-gradient(135deg, var(--accent), #7c3aed);color:#fff;width:32px;height:32px;font-size:var(--t-lg);font-weight:var(--w-bold);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.nav-item{border-radius:var(--radius-pill);color:var(--fg-muted);font-size:var(--t-lg);font-weight:var(--w-normal);align-items:center;gap:14px;padding:11px 13px;transition:background .13s,color .13s;display:flex;position:relative}.nav-item:hover{background:var(--surface-hover);color:var(--fg)}.nav-item.active{color:var(--fg);font-weight:var(--w-bold)}.nav-item.active svg{stroke-width:2.4px}.nav-badge{border-radius:var(--radius-pill);background:var(--like);color:#fff;min-width:17px;height:17px;font-size:var(--t-sm);font-weight:var(--w-bold);border:2px solid var(--bg);place-items:center;padding:0 5px;display:grid;position:absolute;top:6px;left:26px}.sidebar-cta{margin:14px 6px 0}.sidebar-user{border-radius:var(--radius-pill);align-items:center;gap:10px;min-width:0;margin-top:auto;padding:9px 10px;transition:background .13s;display:flex}.sidebar-user:hover{background:var(--surface-hover)}.sidebar-user .meta{flex:1;min-width:0}.sidebar-user .name{font-weight:var(--w-bold);font-size:var(--t-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-user .handle{color:var(--fg-faint);font-size:var(--t-sm)}.mobile-head{display:none}.main{border-left:1px solid var(--line);border-right:1px solid var(--line);min-width:0;min-height:100vh}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-title{min-height:52px;font-size:var(--t-lg);font-weight:var(--w-bold);letter-spacing:-.01em;align-items:center;gap:10px;padding:0 16px;display:flex}.topbar-title>.btn:last-child,.topbar-title>a:last-child:not(:first-child){margin-left:auto}.tabs{display:flex}.tab{text-align:center;font-size:var(--t-md);font-weight:var(--w-bold);color:var(--fg-muted);flex:1;padding:13px 8px;transition:background .13s;position:relative}.tab:hover{background:var(--surface-hover)}.tab.active{color:var(--fg)}.tab.active:after{content:"";background:var(--accent);border-radius:3px 3px 0 0;width:54px;height:3px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.aside{flex-direction:column;gap:16px;padding:16px 0;display:flex;position:sticky;top:16px}.panel{background:var(--bg-subtle);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-head{font-size:var(--t-lg);font-weight:var(--w-bold);letter-spacing:-.01em;padding:13px 16px 9px}.panel-row{align-items:center;gap:11px;min-width:0;padding:10px 16px;transition:background .13s;display:flex}.panel-row:hover{background:var(--surface-hover)}.panel-row .grow{flex:1;min-width:0}.panel-row .t{font-weight:var(--w-bold);font-size:var(--t-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.panel-row .s{color:var(--fg-faint);font-size:var(--t-sm)}.panel-foot{color:var(--accent);font-size:var(--t-md);font-weight:var(--w-bold);padding:11px 16px}.panel-foot:hover{background:var(--surface-hover)}.post{border-bottom:1px solid var(--line);gap:12px;padding:16px;transition:background .12s;display:flex}.post:hover{background:var(--surface-hover)}.post-body{flex:1;min-width:0}.post-head{font-size:var(--t-md);flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:3px;display:flex}.post-name{font-weight:var(--w-bold);letter-spacing:-.01em}.post-name:hover{text-decoration:underline}.post-handle,.post-time{color:var(--fg-faint);font-size:var(--t-sm)}.post-dot{color:var(--fg-faint)}.post-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--t-md);margin:2px 0 0}.course-chip{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:var(--t-sm);font-weight:var(--w-bold);border:1px solid #0000;align-items:center;gap:6px;margin-top:9px;padding:4px 11px 4px 8px;transition:border-color .13s;display:inline-flex}.course-chip:hover{border-color:var(--accent)}.note-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-subtle);margin-top:10px;transition:border-color .13s;display:flex;overflow:hidden}.note-card:hover{border-color:var(--line-strong)}.note-thumb{background:var(--bg-subtle);border-right:1px solid var(--line);flex-shrink:0;place-items:center;width:122px;min-height:152px;display:grid;position:relative;overflow:hidden}.note-thumb img{object-fit:cover;width:100%;height:100%}.note-thumb .pdf-icon{color:var(--fg-faint)}.note-pages{color:#fff;font-size:var(--t-sm);font-weight:var(--w-bold);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0e14d1;border-radius:6px;padding:2px 7px;position:absolute;bottom:7px;right:7px}.note-meta{flex:1;min-width:0;padding:13px 15px}.note-title{font-weight:var(--w-bold);font-size:var(--t-lg);letter-spacing:-.015em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 4px;display:-webkit-box;overflow:hidden}.note-desc{color:var(--fg-muted);font-size:var(--t-sm);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.note-stats{color:var(--fg-faint);font-size:var(--t-sm);font-weight:var(--w-normal);gap:14px;margin-top:10px;display:flex}.media-grid{border-radius:var(--radius);border:1px solid var(--line);gap:3px;margin-top:11px;display:grid;overflow:hidden}.media-grid.n1{grid-template-columns:1fr}.media-grid.n2,.media-grid.n3,.media-grid.n4{grid-template-columns:1fr 1fr}.media-grid img{object-fit:cover;background:var(--bg-subtle);width:100%;height:100%;max-height:420px}.actions{gap:22px;margin-top:12px;display:flex}.actions .action.save{margin-left:auto}.action{border-radius:var(--radius-pill);color:var(--fg-faint);font-size:var(--t-sm);font-weight:var(--w-normal);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:-6px;padding:6px;transition:color .13s;display:inline-flex}.action .ring{border-radius:50%;place-items:center;width:32px;height:32px;margin:-6px;transition:background .13s;display:grid}.action:hover{color:var(--accent)}.action:hover .ring{background:var(--accent-soft)}.action.like:hover,.action.like.on{color:var(--like)}.action.like:hover .ring,.action.like.on .ring{background:var(--like-soft)}.action.save:hover,.action.save.on{color:var(--save)}.action.save:hover .ring,.action.save.on .ring{background:var(--save-soft)}.action.on svg{fill:currentColor}.action:disabled{opacity:.5;cursor:default}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.32)}to{transform:scale(1)}}.action.pop svg{animation:.32s pop}.avatar{font-weight:var(--w-bold);color:#fff;background:linear-gradient(135deg, var(--accent), #7c3aed);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.s28{width:28px;height:28px;font-size:var(--t-sm)}.avatar.s38{width:38px;height:38px;font-size:var(--t-sm)}.avatar.s44{width:44px;height:44px;font-size:var(--t-md)}.avatar.s56{width:56px;height:56px;font-size:1.2rem}.avatar.s88{border:3px solid var(--bg);width:88px;height:88px;font-size:2rem}.btn{border-radius:var(--radius-pill);font-size:var(--t-md);font-weight:var(--w-bold);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 18px;transition:background .13s,border-color .13s,opacity .13s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-hover)}.btn-outline{border-color:var(--line-strong);color:var(--fg);background:0 0}.btn-outline:hover{background:var(--surface-hover)}.btn-ghost{color:var(--fg-muted);background:0 0}.btn-ghost:hover{background:var(--surface-hover);color:var(--fg)}.btn-danger{border-color:var(--line-strong);color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-block{width:100%}.btn-lg{font-size:var(--t-lg);padding:12px 22px}.btn-sm{font-size:var(--t-sm);padding:6px 14px}.btn:disabled{opacity:.55;cursor:default}.field{margin-bottom:15px}.field label{font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--fg-muted);margin-bottom:6px;display:block}.input,.textarea,.select{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;font-size:var(--t-md);color:var(--fg);padding:11px 13px;transition:border-color .13s,box-shadow .13s}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.textarea{resize:vertical;min-height:96px;line-height:1.5}.select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--fg-faint) 50%), linear-gradient(135deg, var(--fg-faint) 50%, transparent 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.field-error{color:var(--danger);font-size:var(--t-sm);margin-top:5px}.field-hint{color:var(--fg-faint);font-size:var(--t-sm);margin-top:5px}.alert{border-radius:var(--radius-sm);font-size:var(--t-sm);border:1px solid #0000;margin-bottom:15px;padding:11px 14px}.alert-error{background:var(--danger-soft);color:var(--danger);border-color:currentColor}.alert-info{background:var(--accent-soft);color:var(--accent)}.auth{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-brand{background:linear-gradient(150deg, var(--accent) 0%, #7c3aed 100%);color:#fff;flex-direction:column;justify-content:center;gap:26px;padding:52px 56px;display:flex}.auth-brand h1{letter-spacing:-.035em;max-width:16ch;margin:0;font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.14}.auth-brand p{font-size:var(--t-lg);opacity:.92;max-width:42ch;margin:0}.auth-points{flex-direction:column;gap:13px;margin-top:4px;display:flex}.auth-point{font-size:var(--t-md);opacity:.95;align-items:flex-start;gap:12px;display:flex}.auth-point b{font-weight:var(--w-bold);display:block}.auth-form{place-items:center;padding:40px 24px;display:grid}.auth-card{width:100%;max-width:384px}.auth-card h2{letter-spacing:-.03em;margin:0 0 6px;font-size:1.55rem}.auth-card .lead{color:var(--fg-muted);font-size:var(--t-md);margin:0 0 26px}.auth-alt{text-align:center;color:var(--fg-muted);font-size:var(--t-md);margin-top:20px}.auth-alt a{color:var(--accent);font-weight:var(--w-bold)}.profile-head{padding:18px 18px 0}.profile-top{align-items:center;gap:22px;margin-bottom:14px;display:flex}.profile-stats{text-align:center;font-size:var(--t-sm);flex:1;justify-content:space-around;gap:10px;display:flex}.profile-stats>*{flex-direction:column;gap:1px;display:flex}.profile-stats b{font-weight:var(--w-bold);font-size:var(--t-lg)}.profile-stats span{color:var(--fg-muted)}.profile-stats a:hover b{text-decoration:underline}.profile-name{font-size:var(--t-md);font-weight:var(--w-bold);letter-spacing:-.01em;margin:0}.profile-handle{color:var(--fg-faint);font-size:var(--t-sm)}.profile-bio{font-size:var(--t-md);white-space:pre-wrap;margin:6px 0 0}.academic-line{color:var(--fg-muted);font-size:var(--t-sm);margin-top:6px}.academic-line .sep{opacity:.5;margin:0 5px}.profile-actions{gap:8px;margin:14px 0 0;display:flex}.profile-actions>.btn,.profile-actions>form>.btn{flex:1;justify-content:center}.profile-actions>.profile-menu{flex:none}.course-hero{border-bottom:1px solid var(--line);padding:20px 18px}.course-hero h1{letter-spacing:-.03em;margin:0 0 4px;font-size:1.5rem}.course-hero .code{font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);margin-bottom:9px;padding:2px 9px;display:inline-block}.course-hero .desc{color:var(--fg-muted);font-size:var(--t-md);margin:8px 0 0}.course-hero .row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.topic-list{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.topic{border-radius:var(--radius-pill);border:1px solid var(--line-strong);font-size:var(--t-sm);color:var(--fg-muted);padding:5px 12px;transition:border-color .13s,color .13s}.topic:hover{border-color:var(--accent);color:var(--accent)}.course-grid{flex-direction:column;display:flex}.course-card{border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:12px;padding:11px 16px;transition:background .12s;display:flex}.course-card:hover{background:var(--surface-hover)}.course-card h3{font-size:var(--t-md);font-weight:var(--w-bold);letter-spacing:0;margin:0}.course-card .stats{color:var(--fg-faint);font-size:var(--t-sm);font-weight:var(--w-normal);gap:10px;display:flex}.course-card>a{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.notif{border-bottom:1px solid var(--line);gap:13px;padding:14px 18px;transition:background .12s;display:flex}.notif:hover{background:var(--surface-hover)}.notif.unread{background:var(--accent-soft)}.notif-icon{border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.notif-icon.like{background:var(--like-soft);color:var(--like)}.notif-icon.comment,.notif-icon.follow{background:var(--accent-soft);color:var(--accent)}.notif-icon.save{background:var(--save-soft);color:var(--save)}.notif-text{font-size:var(--t-md)}.notif-time{color:var(--fg-faint);font-size:var(--t-sm);margin-top:2px}.composer{border-bottom:1px solid var(--line);padding:16px 18px}.composer-row{gap:12px;display:flex}.composer-body{flex:1;min-width:0}.composer textarea{width:100%;color:var(--fg);font-size:var(--t-lg);resize:none;background:0 0;border:0;min-height:54px;padding:8px 0;line-height:1.5}.composer textarea:focus{outline:none}.composer textarea::placeholder{color:var(--fg-faint)}.composer-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding-top:11px;display:flex}.composer-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tool{width:34px;height:34px;color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;transition:background .13s;display:grid}.tool:hover{background:var(--accent-soft)}.type-switch{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.type-option{border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--fg-muted);font-size:var(--t-sm);font-weight:var(--w-bold);cursor:pointer;background:0 0;padding:7px 15px;transition:all .13s}.type-option.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.file-drop{border:2px dashed var(--line-strong);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--fg-muted);padding:26px 18px;transition:border-color .13s,background .13s}.file-drop:hover{border-color:var(--accent);background:var(--accent-soft)}.file-drop strong{color:var(--fg);font-size:var(--t-md);margin-bottom:3px;display:block}.file-drop small{font-size:var(--t-sm)}.file-chosen{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg-subtle);align-items:center;gap:12px;padding:13px 15px;display:flex}.file-chosen .grow{flex:1;min-width:0}.file-chosen .fname{font-weight:var(--w-bold);font-size:var(--t-md);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.file-chosen .fsize{color:var(--fg-faint);font-size:var(--t-sm)}.progress{background:var(--line);border-radius:3px;height:5px;margin-top:8px;overflow:hidden}.progress span{background:var(--accent);height:100%;transition:width .25s;display:block}.empty{text-align:center;color:var(--fg-muted);padding:52px 26px}.empty-icon{background:var(--bg-subtle);width:54px;height:54px;color:var(--fg-faint);border-radius:50%;place-items:center;margin:0 auto 14px;display:grid}.empty strong{color:var(--fg);font-size:var(--t-lg);margin-bottom:5px;display:block}.empty p{max-width:34ch;font-size:var(--t-md);margin:0 auto}.empty .btn{margin-top:18px}.skeleton{background:linear-gradient(90deg, var(--bg-subtle) 25%, var(--surface-hover) 50%, var(--bg-subtle) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:17px;height:17px;animation:.68s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.load-more{text-align:center;padding:18px}.divider{background:var(--line);height:1px}.muted{color:var(--fg-muted)}.faint{color:var(--fg-faint)}.center{text-align:center}.tabbar{display:none}@media (max-width:1100px){.app{grid-template-columns:74px minmax(0,1fr);gap:16px;max-width:780px}.aside,.sidebar .label,.logo span,.sidebar-user .meta{display:none}.logo{justify-content:center;padding:6px 0 16px}.nav-item{justify-content:center;padding:12px}.sidebar-cta .btn span{display:none}.sidebar-cta .btn{padding:12px}.sidebar-user{justify-content:center}}@media (max-width:700px){.app{grid-template-columns:minmax(0,1fr);padding:0}.sidebar{display:none}.main{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));border:0}.mobile-head{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);z-index:60;justify-content:space-between;align-items:center;gap:12px;height:52px;padding:0 14px;display:flex;position:sticky;top:0}.mobile-head .logo{font-size:var(--t-lg);margin:0}.mobile-head-bell{color:var(--fg-muted);place-items:center;display:grid;position:relative}.mobile-head-bell .nav-badge{top:-3px;left:auto;right:-5px}.topbar{top:52px}.tabbar{height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:50;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--fg-faint);flex:1;place-items:center;display:grid;position:relative}.tabbar a.active{color:var(--fg)}.tabbar a.compose{color:var(--accent-fg)}.tabbar a.compose .fab{background:var(--accent);border-radius:13px;place-items:center;width:40px;height:40px;display:grid}.tabbar .nav-badge{margin-left:3px;top:9px;left:50%}.auth{grid-template-columns:1fr}.auth-brand{display:none}.post{padding:14px 15px}.note-card{flex-direction:row}.note-thumb{width:96px;min-height:124px}.course-card{padding:11px 14px}.actions{gap:16px}}.conv-row{border-bottom:1px solid var(--line);color:inherit;align-items:center;gap:12px;padding:12px 18px;display:flex}.conv-row:hover{background:var(--surface-hover)}.conv-row.unread{background:var(--accent-soft)}.conv-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.conv-head{align-items:baseline;gap:8px;display:flex}.conv-name{font-weight:var(--w-bold);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.conv-time{color:var(--fg-faint);font-size:var(--t-sm);flex-shrink:0}.conv-preview{color:var(--fg-muted);font-size:var(--t-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.conv-row.unread .conv-preview{color:var(--fg);font-weight:var(--w-normal)}.conv-badge{flex-shrink:0;position:static}.chat-scroll{flex-direction:column;gap:6px;height:calc(100dvh - 132px);padding:16px 18px;display:flex;overflow-y:auto}.chat-older{align-self:center;margin-bottom:8px}.chat-hint{color:var(--fg-faint);text-align:center;font-size:var(--t-md);margin:auto 0}.bubble-row{display:flex}.bubble-row.mine{justify-content:flex-end}.bubble{background:var(--surface);border:1px solid var(--line);border-radius:16px;max-width:min(78%,460px);padding:8px 12px 6px}.bubble-row.mine .bubble{background:var(--accent);color:var(--accent-fg);border-color:#0000}.bubble p{white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.45}.bubble time{font-size:var(--t-sm);opacity:.65;text-align:right;margin-top:3px;display:block}.bubble-media{border-radius:10px;max-width:100%;margin-bottom:5px;display:block}.chat-composer{border-top:1px solid var(--line);background:var(--bg);gap:8px;padding:12px 18px;display:flex}.chat-composer .input{flex:1}.chat-error{padding:0 18px 6px}@media (max-width:700px){.chat-scroll{height:calc(100dvh - 242px)}}.search-filters{flex-direction:column;gap:10px;display:flex}.search-input-wrap{position:relative}.search-input-wrap .input{border-radius:var(--radius-pill);width:100%;padding-left:40px}.search-input-icon{color:var(--fg-faint);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.search-filters .select{border-radius:var(--radius-pill)}.chip-row{scrollbar-width:none;gap:7px;padding-bottom:2px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip{border-radius:var(--radius-pill);background:var(--bg-subtle);color:var(--fg-muted);font-size:var(--t-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;flex:none;padding:6px 13px;font-family:inherit;transition:background .13s,color .13s,border-color .13s}.chip:hover{background:var(--line);color:var(--fg)}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:var(--w-bold)}.tabs{gap:4px;padding:0 12px;display:flex}.tab{color:var(--fg-muted);font-size:var(--t-md);font-weight:var(--w-normal);border-bottom:2px solid #0000;padding:10px 14px 11px;position:relative}.tab:hover{color:var(--fg)}.tab.active{color:var(--fg);font-weight:var(--w-bold);border-bottom-color:var(--accent)}.tab-count{border-radius:var(--radius-pill);background:var(--accent);min-width:18px;height:18px;color:var(--accent-fg);font-size:var(--t-sm);font-weight:var(--w-bold);place-items:center;margin-left:6px;padding:0 5px;display:inline-grid}.box-note{background:var(--bg-subtle);border-bottom:1px solid var(--line);color:var(--fg-muted);font-size:var(--t-sm);margin:0;padding:11px 18px;line-height:1.5}.box-note a{color:var(--accent);font-weight:var(--w-bold)}.request-bar{padding:14px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg-subtle)}.request-bar p{color:var(--fg-muted);font-size:var(--t-sm);margin:0 0 11px;line-height:1.5}.request-bar strong{color:var(--fg)}.request-actions{gap:8px;display:flex}.request-actions .btn{flex:1;justify-content:center}.recipient-row{border:0;border-bottom:1px solid var(--line);width:100%;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer;color:inherit;background:0 0}.recipient-row:disabled{opacity:.55;cursor:default}.chat-title-btn{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:0;padding:0;display:flex}.chat-title-btn small{color:var(--fg-muted);font-size:var(--t-sm);font-weight:var(--w-normal)}.chat-title-btn:hover span{text-decoration:underline}.conv-count{color:var(--fg-faint);font-weight:var(--w-normal);font-size:var(--t-sm)}.system-line{border-radius:var(--radius-pill);background:var(--bg-subtle);max-width:80%;color:var(--fg-faint);font-size:var(--t-sm);text-align:center;align-self:center;margin:4px 0;padding:4px 12px}.bubble-author{font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--accent);margin-bottom:2px;display:block}.group-panel{min-height:100%}.group-head{border-bottom:1px solid var(--line);padding:16px 18px}.group-head h2{font-size:var(--t-lg);margin:0 0 3px}.group-head p{color:var(--fg-muted);font-size:var(--t-sm);margin:0 0 10px}.tag-admin{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:var(--t-sm);font-weight:var(--w-bold);margin-left:7px;padding:1px 7px}.recipient-row.selected{background:var(--accent-soft)}.pick{text-align:center;width:22px;color:var(--accent);font-weight:var(--w-bold)}.q-chip{border-radius:var(--radius-pill);background:var(--save-soft);color:var(--save);font-size:var(--t-sm);font-weight:var(--w-bold);margin-left:9px;padding:2px 10px}.q-chip.done{background:var(--accent-soft);color:var(--accent)}.post.accepted{background:var(--accent-soft);border-left:3px solid var(--accent)}.badge-row{flex-wrap:wrap;gap:6px;margin:10px 0 4px;display:flex}.badge-pill{border-radius:var(--radius-pill);border:1px solid var(--line-strong);font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--fg-muted);cursor:default;padding:3px 10px}.badge-pill.t-bronze{color:#b87333;border-color:#6b4a25}.badge-pill.t-silver{color:#9aa8b6;border-color:#4b5563}.badge-pill.t-gold{color:var(--save);border-color:#6b5620}.badge-pill.t-special{color:var(--accent);border-color:var(--accent)}.rank-row{align-items:center}.rank{text-align:center;width:30px;font-weight:var(--w-bold);color:var(--fg-faint);font-size:var(--t-md);flex-shrink:0}.rank.r1{color:var(--save)}.rank.r2{color:var(--fg-muted)}.rank.r3{color:#b87333}.score{font-weight:var(--w-bold);color:var(--accent);flex-shrink:0}.story-bar{border-bottom:1px solid var(--line);scrollbar-width:none;gap:14px;padding:14px 18px;display:flex;overflow-x:auto}.story-bar::-webkit-scrollbar{display:none}.story-cell{cursor:pointer;width:68px;color:inherit;font:inherit;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:5px;padding:0;display:flex}.story-ring{background:linear-gradient(135deg, var(--accent), var(--like));border-radius:50%;place-items:center;width:64px;height:64px;padding:3px;display:grid;position:relative}.story-ring.seen{background:var(--line-strong)}.story-ring.add{background:var(--line)}.story-ring .avatar{border:2px solid var(--bg)}.story-add{background:var(--accent);width:20px;height:20px;color:var(--accent-fg);border:2px solid var(--bg);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-1px;right:-1px}.story-name{font-size:var(--t-sm);color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;max-width:68px;overflow:hidden}.story-overlay{z-index:200;background:#000000eb;place-items:center;display:grid;position:fixed;inset:0}.story-stage{background:#000;border-radius:12px;flex-direction:column;width:min(430px,100vw);height:min(92vh,100dvh);display:flex;position:relative;overflow:hidden}.story-progress{gap:3px;padding:10px 10px 0;display:flex}.story-progress .bar{background:#ffffff4d;border-radius:2px;flex:1;height:2px}.story-progress .bar.done,.story-progress .bar.active{background:#fff}.story-head{color:#fff;align-items:center;gap:9px;padding:10px 12px;display:flex}.story-head .grow{flex-direction:column;flex:1;min-width:0;display:flex}.story-head b{font-size:var(--t-sm)}.story-head time{font-size:var(--t-sm);opacity:.7}.story-head .btn{color:#fff}.story-views{font-size:var(--t-sm);opacity:.8;margin-right:6px}.story-body{flex:1;place-items:center;min-height:0;padding:0 12px 16px;display:grid}.story-media{object-fit:contain;border-radius:8px;max-width:100%;max-height:100%}.story-text{color:#fff;text-align:center;white-space:pre-wrap;padding:24px;font-size:1.35rem;line-height:1.5}.story-caption{color:#fff;font-size:var(--t-md);background:#0000008c;border-radius:10px;margin:0;padding:8px 12px;position:absolute;bottom:18px;left:16px;right:16px}.story-tap{cursor:pointer;background:0 0;border:0;width:35%;position:absolute;top:60px;bottom:0}.story-tap.left{left:0}.story-tap.right{right:0}.post-video{margin-top:10px}.notif-avatar{flex-shrink:0;position:relative}.notif-icon.mini{border:2px solid var(--bg);width:20px;height:20px;position:absolute;bottom:-4px;right:-4px}.notif-icon.mini svg{width:11px;height:11px}.scope-chips{border-bottom:1px solid var(--line);padding:10px 18px}.scope-chips .chip{text-decoration:none}.tag-link{color:var(--accent);font-weight:var(--w-bold)}.tag-link:hover{text-decoration:underline}.tag-title{color:var(--accent)}.tag-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tag-pill{border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--fg-muted);font-size:var(--t-sm);font-weight:var(--w-normal);padding:2px 10px}.tag-pill:hover{background:var(--surface-hover);color:var(--accent);border-color:var(--accent)}.setting-row{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;padding:10px 0;display:flex}.setting-row:last-of-type{border-bottom:none}.setting-row .grow{flex-direction:column;gap:2px;min-width:0;display:flex}.setting-row strong{font-weight:var(--w-bold);font-size:var(--t-md)}.setting-row small{color:var(--fg-faint);font-size:var(--t-sm);line-height:1.35}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.profile-menu,.profile-menu>.btn{position:relative}.hamburger{gap:4px;width:18px;display:grid}.hamburger span{background:currentColor;border-radius:2px;height:2px;display:block}.profile-menu-panel[hidden]{display:none}.profile-menu-panel{border:1px solid var(--line);background:var(--surface);z-index:70;border-radius:14px;flex-direction:column;min-width:216px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 40px #0000002e}.profile-menu-panel a,.profile-menu-panel button{width:100%;color:var(--fg);font:inherit;font-size:var(--t-md);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.profile-menu-panel a:hover,.profile-menu-panel button:hover{background:var(--surface-hover)}.profile-menu-panel .danger{color:var(--danger)}@media (max-width:420px){.profile-menu-panel{min-width:190px}}.section{padding-top:4px}.section+.section{border-top:1px solid var(--line)}.section-title{font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:10px;margin:0;padding:14px 16px 8px;display:flex}.section-more{color:var(--accent);font-size:var(--t-sm);font-weight:var(--w-bold);text-transform:none;letter-spacing:0;margin-left:auto}.mode-banner{border-radius:var(--radius);background:var(--accent-soft);color:var(--fg);align-items:flex-start;gap:12px;margin:12px 16px;padding:12px 14px;display:flex}.mode-banner .grow{flex:1;min-width:0}.mode-banner strong{font-size:var(--t-md);font-weight:var(--w-bold);display:block}.mode-banner p{font-size:var(--t-sm);color:var(--fg-muted);margin:3px 0 0;line-height:1.45}.mode-banner a{color:var(--accent);font-weight:var(--w-bold)}.field-hint.destination{border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--fg-muted);margin:8px 0 14px;padding:8px 11px}.field-hint.destination strong{color:var(--fg);font-weight:var(--w-bold)}
