:root{--font-sans:"Segoe UI","Noto Sans TC",sans-serif;--bg:#f3f5f7;--surface:#ffffff;--surface-strong:#ffffff;--surface-soft:#f7f8fa;--surface-border:#d7dde4;--text:#24303b;--text-strong:#111827;--text-muted:#5f6b78;--primary:#1f4f82;--primary-strong:#173c61;--primary-soft:#eaf1f8;--danger:#be5565;--danger-soft:#fdecef;--success:#177a66;--success-soft:#e7f6f2;--shadow-lg:0 18px 40px rgba(15,23,42,0.08);--shadow-md:0 8px 24px rgba(15,23,42,0.06);--shadow-sm:0 2px 10px rgba(15,23,42,0.05);--radius:10px;--radius-lg:12px;--radius-xl:14px}:root[data-theme=dark]{--bg:#101418;--surface:#171c22;--surface-strong:#171c22;--surface-soft:#1d242c;--surface-border:#2b3440;--text:#eef2f6;--text-strong:#ffffff;--text-muted:#9aa7b5;--primary:#5b90ca;--primary-strong:#7cabdd;--primary-soft:#213246;--danger:#ff95a3;--danger-soft:#38232b;--success:#58d1aa;--success-soft:#17342e;--shadow-lg:0 20px 50px rgba(0,0,0,0.28);--shadow-md:0 12px 32px rgba(0,0,0,0.22);--shadow-sm:0 8px 18px rgba(0,0,0,0.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-sans);transition:background .22s ease,color .22s ease}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:none}img{max-width:100%}.line-icon{flex-shrink:0}.page-frame{width:min(1600px,calc(100% - 24px));margin:0 auto;padding:12px 0 32px}.surface{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.surface.soft{background:var(--surface-soft)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;padding:12px 16px;margin-bottom:12px}.author-chip,.between,.forum-header-top,.post-header,.row,.split-header,.tab-link,.toolbar,.top-tabs,.topbar-left,.topbar-row{display:flex;align-items:center;gap:12px}.between,.post-header,.split-header,.topbar-row{justify-content:space-between}.topbar-left{gap:16px;min-width:0}.brand-link{display:inline-flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:800;color:var(--text-strong);white-space:nowrap}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--primary);color:#fff}.top-tabs{gap:8px;flex-wrap:wrap}.tab-link{min-height:40px;padding:0 14px;border-radius:10px;color:var(--text-muted);transition:background .14s ease,color .14s ease,transform .14s ease}.tab-link.active{background:var(--primary-soft);color:var(--text-strong);font-weight:700}.tab-link span{display:inline-flex;align-items:center}.tab-link:hover{transform:translateY(-1px)}.forum-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);grid-gap:18px;gap:18px;align-items:start}.forum-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr) minmax(280px,320px)}.shell-main{min-width:0}.main-panel,.panel,.rail-panel,.sidebar{padding:16px}.shell-rail,.shell-sidebar{position:-webkit-sticky;position:sticky;top:84px;display:grid;grid-gap:14px;gap:14px;align-self:start}.shell-sidebar.collapsed{display:none}.empty-state,.feed-stack,.forum-header,.meta-list,.nav-section,.notice-list,.panel-stack,.rail-list,.rank-list,.stack,.table-list{display:grid;grid-gap:14px;gap:14px}.forum-header{padding:18px}.forum-header-top{justify-content:space-between;flex-wrap:wrap}.hero-title{margin:0;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.08;color:var(--text-strong)}.brand-title,.card-title{margin:0;font-size:1rem;font-weight:700;color:var(--text-strong)}.brand-subtitle,.helper-text,.hero-subtitle,.micro-title,.muted{color:var(--text-muted)}.micro-title{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pill,.tag{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);font-size:.82rem;font-weight:700}.tag.success{background:var(--success-soft);color:var(--success)}.tag.danger{background:var(--danger-soft);color:var(--danger)}.danger-button,.ghost-button,.icon-button,.nav-link,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:0 14px;border-radius:10px;transition:transform .14s ease,background .14s ease,color .14s ease,border-color .14s ease,opacity .14s ease}.primary-button{background:var(--primary);color:#fff}.ghost-button,.icon-button,.nav-link,.secondary-button{background:var(--primary-soft);color:var(--text)}.danger-button{background:var(--danger-soft);color:var(--danger)}.danger-button:hover,.ghost-button:hover,.icon-button:hover,.nav-link:hover,.primary-button:hover,.secondary-button:hover,.table-row:hover{transform:translateY(-1px)}.danger-button:active,.ghost-button:active,.icon-button:active,.pressable:active,.primary-button:active,.secondary-button:active{transform:scale(.95)}.nav-link{justify-content:space-between;width:100%;min-height:52px;padding:14px;border:1px solid transparent;text-align:left}.nav-link strong{display:block;font-size:.96rem}.nav-link span{display:block;color:var(--text-muted);font-size:.8rem}.nav-link.active{background:var(--primary-soft);border-color:var(--primary);color:var(--text-strong)}.board-list,.nav-list{display:grid;grid-gap:10px;gap:10px}.board-chip,.metric-card,.notice-card,.table-row{border-radius:10px;background:var(--surface-soft);border:1px solid var(--surface-border)}.board-chip{display:grid;grid-gap:4px;gap:4px;padding:12px 14px;transition:transform .14s ease,border-color .14s ease}.board-chip:hover{transform:translateY(-1px);border-color:var(--primary)}.search-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--surface-soft);border:1px solid var(--surface-border);box-shadow:var(--shadow-sm)}.search-bar input{flex:1 1;min-width:0;border:none;background:transparent;color:var(--text);outline:none}.search-bar button{min-width:92px}.admin-grid,.compose-layout,.detail-grid,.forum-columns,.main-panel,.profile-grid,.section-grid,.stats-grid{display:grid;grid-gap:16px;gap:16px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-grid,.forum-columns,.profile-grid,.section-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.compose-layout{grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);align-items:start}.section-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{display:grid;grid-gap:8px;gap:8px;padding:16px}.metric-value{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;color:var(--text-strong)}.table-row{display:grid;grid-gap:8px;gap:8px;padding:14px;transition:transform .14s ease,border-color .14s ease}.table-row:hover{border-color:var(--primary)}.post-card{display:grid;grid-gap:14px;gap:14px;padding:16px}.post-header{align-items:flex-start}.author-chip{align-items:center}.avatar{width:48px;height:48px;border-radius:10px;background:var(--primary-soft);overflow:hidden;flex-shrink:0}.avatar.small{width:36px;height:36px;border-radius:10px}.avatar img,.avatar.small img{width:100%;height:100%;object-fit:cover;display:block}.post-body{white-space:pre-wrap;line-height:1.72;word-break:break-word}.image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.image-frame{position:relative;overflow:hidden;border-radius:12px;border:1px solid var(--surface-border);min-height:160px;background:var(--surface-soft)}.image-frame img{width:100%;height:100%;display:block;object-fit:cover}.toolbar{flex-wrap:wrap}.rail-actions>a,.rail-actions>button{flex:1 1 120px}.icon-button{min-width:92px;min-height:38px}.icon-button.active{background:var(--primary-soft)}.rank-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;background:var(--surface-soft);border:1px solid var(--surface-border)}.rank-index{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);font-weight:800;font-size:.9rem}.list-divider{width:100%;height:1px;background:var(--surface-border)}.input,.policy-box,.select,.textarea{width:100%;border-radius:10px;border:1px solid var(--surface-border);background:var(--surface-soft);color:var(--text);outline:none;transition:border-color .16s ease,box-shadow .16s ease}.input,.select{min-height:44px;padding:0 14px}.textarea{min-height:140px;padding:14px;resize:vertical}.policy-box{max-height:220px;overflow:auto;padding:14px}.input:hover,.policy-box:hover,.select:hover,.textarea:hover{border-color:var(--primary)}.input:focus,.policy-box:focus-within,.search-bar:focus-within,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(31,79,130,.12)}.form-grid{display:grid;grid-gap:14px;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.highlight-list{display:grid;grid-gap:10px;gap:10px;margin:0;padding-left:18px}.segmented{display:inline-flex;flex-wrap:wrap;gap:8px}.segment-button{min-height:36px;padding:0 12px;border-radius:999px;background:var(--primary-soft);color:var(--text)}.segment-button.active{background:var(--primary);color:#fff}.skeleton{position:relative;overflow:hidden;background:rgba(255,255,255,.34);border-radius:var(--radius)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);animation:shimmer 1.4s infinite}:root[data-theme=dark] .skeleton{background:rgba(255,255,255,.06)}:root[data-theme=dark] .skeleton:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}.welcome-overlay{position:fixed;inset:0;display:grid;place-items:center;background:rgba(16,20,24,.36);z-index:40}.welcome-card{width:min(560px,calc(100% - 32px));padding:28px;border-radius:18px;background:var(--surface-strong);border:1px solid var(--surface-border);box-shadow:var(--shadow-lg);animation:welcome-sequence 2.25s ease forwards}.empty-state{text-align:center;padding:28px 16px}.broadcast-overlay{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:center;padding:12px;pointer-events:none}.broadcast-card{width:min(1080px,calc(100% - 24px));min-height:min(52vh,360px);display:grid;align-content:start;grid-gap:18px;gap:18px;padding:22px;background:color-mix(in srgb,var(--surface) 96%,transparent);pointer-events:auto}.broadcast-message{font-size:clamp(1.45rem,2vw,2rem);font-weight:800;line-height:1.35;color:var(--text-strong);white-space:pre-wrap}.conversation-list,.follower-grid,.messages-layout,.profile-hero,.settings-grid,.stats-quad,.wall-page,.wall-page-strip,.wall-stage{display:grid;grid-gap:16px;gap:16px}.profile-hero{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.stats-quad{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{display:grid;grid-gap:10px;gap:10px;padding:16px;border-radius:10px;background:var(--surface-soft);border:1px solid var(--surface-border)}.icon-label,.stat-card-header{display:inline-flex;align-items:center;gap:8px}.follower-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-mini-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--surface-soft);border:1px solid var(--surface-border)}.settings-grid{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.messages-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.conversation-list{align-content:start}.conversation-row{display:grid;grid-gap:8px;gap:8px;padding:14px;border-radius:10px;background:var(--surface-soft);border:1px solid var(--surface-border);transition:border-color .14s ease,transform .14s ease}.conversation-row.active,.conversation-row:hover{border-color:var(--primary);transform:translateY(-1px)}.chat-shell{min-height:68vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:16px;gap:16px}.chat-messages{display:grid;grid-gap:12px;gap:12px;align-content:start}.message-row{display:flex}.message-row.me{justify-content:flex-end}.message-bubble{width:min(100%,520px);display:grid;grid-gap:8px;gap:8px;padding:14px 16px;border-radius:14px;background:var(--surface-soft);border:1px solid var(--surface-border)}.message-row.me .message-bubble{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 45%,var(--surface-border))}.message-meta{display:flex;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:.8rem}.attachment-card{display:grid;grid-gap:10px;gap:10px;padding:12px;border-radius:10px;background:var(--surface);border:1px solid var(--surface-border)}.wall-stage{overflow:hidden}.wall-page-strip{grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.wall-page-strip::-webkit-scrollbar{display:none}.wall-page{scroll-snap-align:start;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));min-height:420px}.wall-bubble{display:flex;align-items:center;justify-content:center;min-height:130px;padding:18px;border-radius:18px;background:var(--surface-soft);border:1px solid var(--surface-border);font-size:1.05rem;line-height:1.6;text-align:center;word-break:break-word}.like-bounce{animation:like-bounce .42s cubic-bezier(.34,1.56,.64,1)}@keyframes shimmer{to{transform:translateX(100%)}}@keyframes like-bounce{0%{transform:scale(1)}40%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes welcome-sequence{0%{opacity:0;transform:scale(.97)}18%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-12px) scale(1.02)}}@media (max-width:1260px){.forum-shell,.forum-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 300px}.shell-rail{position:static}.compose-layout{grid-template-columns:minmax(0,1fr) 300px}}@media (max-width:1100px){.compose-layout{grid-template-columns:1fr}}@media (max-width:960px){.forum-shell{grid-template-columns:1fr}.shell-rail,.shell-sidebar{position:static}.compose-layout,.detail-grid,.follower-grid,.form-grid.three,.form-grid.two,.forum-columns,.messages-layout,.profile-grid,.profile-hero,.section-grid.three,.section-grid.two,.settings-grid,.shell-rail,.stats-grid,.stats-quad{grid-template-columns:1fr}.topbar-left,.topbar-row{align-items:flex-start;flex-direction:column}}@media (max-width:720px){.page-frame{width:min(100% - 18px,1440px);padding-top:10px}.between,.forum-header-top,.post-header,.split-header{align-items:flex-start;flex-direction:column}.image-grid{grid-template-columns:1fr}.top-tabs{width:100%;overflow-x:auto;padding-bottom:2px}.broadcast-card{min-height:min(58vh,420px)}}