.cw-fab[data-v-b9c0ec48]{position:fixed;bottom:24px;right:24px;z-index:10000;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px #7c3aed66;transition:transform .2s,box-shadow .2s}.cw-fab[data-v-b9c0ec48]:hover{transform:scale(1.08);box-shadow:0 6px 28px #7c3aed8c}.cw-badge[data-v-b9c0ec48]{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;border-radius:9px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}.cw-panel[data-v-b9c0ec48]{position:fixed;bottom:24px;right:24px;z-index:10001;width:400px;height:580px;background:#fff;border-radius:16px;box-shadow:0 8px 40px #0000002e;display:flex;flex-direction:column;overflow:hidden;animation:cw-slide-up-b9c0ec48 .25s ease-out}@keyframes cw-slide-up-b9c0ec48{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.cw-header[data-v-b9c0ec48]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;flex-shrink:0}.cw-header-left[data-v-b9c0ec48]{display:flex;align-items:center;gap:8px}.cw-avatar-icon[data-v-b9c0ec48]{width:32px;height:32px;border-radius:8px;background:#fff3;display:flex;align-items:center;justify-content:center}.cw-title[data-v-b9c0ec48]{font-size:15px;font-weight:700}.cw-header-actions[data-v-b9c0ec48]{display:flex;gap:4px}.cw-icon-btn[data-v-b9c0ec48]{width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.cw-icon-btn[data-v-b9c0ec48]:hover,.cw-icon-btn.active[data-v-b9c0ec48]{background:#fff3}.cw-icon-btn[data-v-b9c0ec48]:disabled{opacity:.35;cursor:not-allowed}.cw-icon-btn[data-v-b9c0ec48]:disabled:hover{background:transparent}.cw-history[data-v-b9c0ec48]{background:#f8f5ff;border-bottom:1px solid #e9e0f7;max-height:200px;overflow-y:auto;flex-shrink:0}.cw-history-title[data-v-b9c0ec48]{padding:8px 14px 4px;font-size:12px;color:#7c3aed;font-weight:600}.cw-history-empty[data-v-b9c0ec48]{padding:12px 14px;font-size:12px;color:#a0a0a0}.cw-history-item[data-v-b9c0ec48]{display:flex;align-items:center;padding:8px 14px;cursor:pointer;transition:background .1s;gap:6px}.cw-history-item[data-v-b9c0ec48]:hover{background:#ede5ff}.cw-history-item.active[data-v-b9c0ec48]{background:#e0d4ff}.cw-history-text[data-v-b9c0ec48]{flex:1;font-size:13px;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-del-btn[data-v-b9c0ec48]{width:20px;height:20px;border:none;border-radius:4px;background:transparent;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;transition:opacity .15s,background .15s}.cw-history-item:hover .cw-del-btn[data-v-b9c0ec48]{opacity:1}.cw-del-btn[data-v-b9c0ec48]:hover{background:#fee2e2;color:#ef4444}.cw-messages[data-v-b9c0ec48]{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px}.cw-welcome[data-v-b9c0ec48]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#94a3b8}.cw-welcome-icon[data-v-b9c0ec48]{margin-bottom:12px;color:#c4b5fd}.cw-welcome-text[data-v-b9c0ec48]{font-size:16px;font-weight:700;color:#1e293b}.cw-welcome-sub[data-v-b9c0ec48]{font-size:13px;margin-top:4px;color:#94a3b8}.cw-msg[data-v-b9c0ec48]{display:flex;gap:8px;max-width:100%}.cw-msg-user[data-v-b9c0ec48]{flex-direction:row-reverse}.cw-msg-avatar[data-v-b9c0ec48]{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.cw-msg-user .cw-msg-avatar[data-v-b9c0ec48]{background:#e0d4ff;color:#7c3aed}.cw-msg-assistant .cw-msg-avatar[data-v-b9c0ec48]{background:#f0fdf4;color:#16a34a}.cw-msg-body[data-v-b9c0ec48]{max-width:calc(100% - 46px)}.cw-msg-user .cw-msg-body[data-v-b9c0ec48]{text-align:right}.cw-text[data-v-b9c0ec48]{display:inline-block;padding:8px 12px;border-radius:12px 4px 12px 12px;font-size:13.5px;line-height:1.6;white-space:pre-wrap;word-break:break-word;background:#7c3aed;color:#fff}.cw-md[data-v-b9c0ec48]{display:inline-block;padding:8px 12px;border-radius:4px 12px 12px;font-size:13.5px;line-height:1.6;word-break:break-word;background:#f1f5f9;color:#1e293b;text-align:left}.cw-md[data-v-b9c0ec48] p{margin:0 0 6px}.cw-md[data-v-b9c0ec48] p:last-child{margin-bottom:0}.cw-md[data-v-b9c0ec48] code{background:#e2e8f0;padding:1px 4px;border-radius:3px;font-size:12px}.cw-md[data-v-b9c0ec48] pre{background:#1e293b;color:#e2e8f0;padding:10px;border-radius:8px;overflow-x:auto;margin:6px 0;font-size:12px}.cw-md[data-v-b9c0ec48] pre code{background:none;padding:0;color:inherit}.cw-md[data-v-b9c0ec48] ul,.cw-md[data-v-b9c0ec48] ol{margin:4px 0;padding-left:18px}.cw-md[data-v-b9c0ec48] blockquote{border-left:3px solid #c4b5fd;padding-left:10px;margin:6px 0;color:#64748b}.cw-file-badge[data-v-b9c0ec48]{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:4px;border-radius:6px;background:#dbeafe;color:#1e40af;font-size:11px;font-weight:600}.cw-typing[data-v-b9c0ec48]{display:inline-flex;align-items:center;gap:4px;padding:10px 14px;background:#f1f5f9;border-radius:4px 12px 12px}.cw-typing span[data-v-b9c0ec48]{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:cw-bounce-b9c0ec48 1.2s infinite}.cw-typing span[data-v-b9c0ec48]:nth-child(2){animation-delay:.2s}.cw-typing span[data-v-b9c0ec48]:nth-child(3){animation-delay:.4s}@keyframes cw-bounce-b9c0ec48{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.cw-input-area[data-v-b9c0ec48]{padding:10px 14px 14px;border-top:1px solid #e5e7eb;flex-shrink:0;background:#fff}.cw-input-row[data-v-b9c0ec48]{display:flex;align-items:flex-end;gap:8px}.cw-upload-btn[data-v-b9c0ec48]{width:36px;height:36px;border-radius:8px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:#64748b;transition:background .15s}.cw-upload-btn[data-v-b9c0ec48]:hover{background:#e2e8f0;color:#7c3aed}.cw-file-input[data-v-b9c0ec48]{display:none}.cw-textarea[data-v-b9c0ec48]{flex:1;resize:none;border:1.5px solid #e2e8f0;border-radius:10px;padding:8px 12px;font-size:13.5px;line-height:1.5;font-family:inherit;outline:none;min-height:36px;max-height:100px;transition:border-color .15s}.cw-textarea[data-v-b9c0ec48]:focus{border-color:#a78bfa}.cw-textarea[data-v-b9c0ec48]::placeholder{color:#94a3b8}.cw-send-btn[data-v-b9c0ec48]{width:36px;height:36px;border:none;border-radius:8px;background:#7c3aed;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s,opacity .15s}.cw-send-btn[data-v-b9c0ec48]:hover:not(:disabled){background:#6d28d9}.cw-send-btn[data-v-b9c0ec48]:disabled{opacity:.4;cursor:not-allowed}.cw-pending-file[data-v-b9c0ec48]{display:flex;align-items:center;gap:6px;margin-top:6px;padding:4px 10px;background:#f0f4ff;border-radius:6px;font-size:12px;color:#475569}.cw-pending-file span[data-v-b9c0ec48]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-del-file[data-v-b9c0ec48]{border:none;background:none;color:#94a3b8;cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.cw-del-file[data-v-b9c0ec48]:hover{color:#ef4444}@media(max-width:480px){.cw-panel[data-v-b9c0ec48]{width:calc(100vw - 16px);height:calc(100vh - 100px);bottom:8px;right:8px;border-radius:12px}.cw-fab[data-v-b9c0ec48]{bottom:16px;right:16px;width:48px;height:48px}}:root{--p-50: #faf5ff;--p-100: #f3e8ff;--p-200: #e9d5ff;--p-300: #d8b4fe;--p-400: #c084fc;--p-500: #a855f7;--p-600: #9333ea;--p-700: #7c3aed;--p-800: #6d28d9;--p-900: #5b21b6;--color-primary: var(--p-700);--color-primary-hover: var(--p-800);--color-primary-active: var(--p-900);--color-primary-light: var(--p-400);--color-primary-bg: var(--p-50);--color-primary-subtle: var(--p-100);--gradient-primary: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%);--gradient-header: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);--gradient-hero: linear-gradient(135deg, #4c1d95 0%, #6d28d9 45%, #7c3aed 100%);--gradient-accent: linear-gradient(135deg, #f97316 0%, #ef4444 100%);--gradient-gold: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--gray-0: #ffffff;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--color-bg: #f7f6fb;--color-surface: #ffffff;--color-surface-2: #faf9fe;--color-surface-3: var(--p-50);--color-border: var(--gray-200);--color-border-light: var(--gray-100);--color-text: var(--gray-900);--color-text-secondary: var(--gray-600);--color-text-muted: var(--gray-400);--color-text-inverse: #ffffff;--color-success: #10b981;--color-success-bg: #ecfdf5;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-error: #ef4444;--color-error-bg: #fef2f2;--color-info: #3b82f6;--color-info-bg: #eff6ff;--color-accent: #f97316;--color-accent-hover: #ea580c;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 8px 24px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.04);--shadow-xl: 0 16px 40px rgba(0,0,0,.12);--shadow-card: 0 1px 4px rgba(124,58,237,.06), 0 2px 8px rgba(0,0,0,.06);--shadow-hover: 0 4px 16px rgba(124,58,237,.16), 0 2px 8px rgba(0,0,0,.06);--shadow-modal: 0 20px 60px rgba(0,0,0,.18);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--font-sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--text-4xl: 30px;--text-5xl: 36px;--text-6xl: 48px;--lh-tight: 1.25;--lh-snug: 1.375;--lh-normal: 1.5;--lh-relaxed: 1.75;--ease-fast: .15s cubic-bezier(.4, 0, .2, 1);--ease-base: .2s cubic-bezier(.4, 0, .2, 1);--ease-slow: .3s cubic-bezier(.4, 0, .2, 1);--nav-height: 64px;--sidebar-width: 240px;--content-max: 1280px;--content-max-wide: 1440px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--bottom-nav-height: 60px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--lh-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none}a{color:inherit;text-decoration:none}button{font-family:inherit}img{max-width:100%;height:auto;display:block}.text-h1{font-size:var(--text-4xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.02em}.text-h2{font-size:var(--text-3xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.015em}.text-h3{font-size:var(--text-xl);font-weight:600;line-height:var(--lh-snug)}.text-body{font-size:var(--text-base);line-height:var(--lh-normal)}.text-sm{font-size:var(--text-sm);line-height:var(--lh-normal)}.text-xs{font-size:var(--text-xs);line-height:var(--lh-snug)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-primary{color:var(--color-primary)}.app-header{position:fixed;top:0;left:0;right:0;z-index:200;height:var(--nav-height);background:#ffffffbf;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.5);box-shadow:0 1px #0000000f,0 4px 24px #7c3aed0f;display:flex;align-items:center;padding:0 var(--sp-8);gap:0}.app-header.header-home{background:transparent;border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:none;-webkit-backdrop-filter:none}.app-header.header-home .logo{color:#fff}.app-header.header-home .logo-icon{background:#fff3;box-shadow:0 2px 8px #00000026}.app-header.header-home nav a{color:#ffffffd1}.app-header.header-home nav a:hover{color:#fff}.app-header.header-home nav a.active{color:#fff}.app-header.header-home nav a:after{background:#ffffffd9}.app-header.header-home .coin-badge{background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff}.app-header.header-home .coin-badge:before{filter:none}.app-header.header-home .coin-badge .coin-paid{color:#fde68a}.app-header.header-home .coin-badge .coin-gift{color:#ffffffb3}.app-header.header-home .notif-bell svg{stroke:#ffffffd9}.app-header.header-home .btn-cta{background:#ffffff2e;border:1.5px solid rgba(255,255,255,.35);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.app-header.header-home .btn-cta:hover{background:#ffffff47}.app-header.header-home .user-avatar{background:#fff3;border:2px solid rgba(255,255,255,.35);color:#fff}.app-header.header-home .lang-btn{color:#fffc;border-color:#ffffff40;background:#ffffff1a}.app-header.header-home .lang-btn svg{stroke:#fffc}.app-header.header-home .hamburger-btn{background:#ffffff26;border-color:#ffffff4d}.app-header.header-home .hamburger-btn span{background:#fff}.app-header.header-home .hamburger-btn:hover{background:#ffffff40;border-color:#ffffff80}.app-header .logo{display:flex;align-items:center;gap:10px;font-size:var(--text-lg);font-weight:800;color:var(--color-primary);text-decoration:none;cursor:pointer;flex-shrink:0;letter-spacing:-.01em}.app-header .logo-icon{width:34px;height:34px;background:var(--gradient-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:800;box-shadow:0 2px 8px #7c3aed40}.app-header nav{display:flex;gap:2px;margin-left:var(--sp-8);align-items:center;height:100%}.app-header nav a{position:relative;display:flex;align-items:center;height:100%;padding:0 var(--sp-3);font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:color var(--ease-fast);white-space:nowrap}.app-header nav a:after{content:"";position:absolute;bottom:0;left:var(--sp-3);right:var(--sp-3);height:2px;background:var(--color-primary);border-radius:2px 2px 0 0;transform:scaleX(0);transition:transform var(--ease-base)}.app-header nav a:hover{color:var(--color-text)}.app-header nav a.active{color:var(--color-primary);font-weight:600}.app-header nav a.active:after{transform:scaleX(1)}.app-header .header-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.app-header .coin-badge{display:flex;align-items:center;gap:var(--sp-1);padding:5px 12px;background:#fef3c7;border:1px solid #fde68a;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;color:#92400e;cursor:pointer;transition:background var(--ease-fast)}.app-header .coin-badge:before{content:"🪙";font-size:14px}.app-header .coin-badge:hover{background:#fde68a}.app-header .coin-badge .coin-paid{color:#d97706}.app-header .coin-badge .coin-sep{color:var(--gray-300);margin:0 1px;font-size:var(--text-xs)}.app-header .coin-badge .coin-gift{color:var(--gray-500)}.app-header .vip-indicator{display:inline-flex;align-items:center;padding:4px 10px;background:var(--gradient-gold);color:#fff;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;cursor:pointer;letter-spacing:.5px;box-shadow:0 2px 6px #d977064d}.app-header .btn-cta{padding:8px 18px;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:opacity var(--ease-fast),box-shadow var(--ease-fast),transform var(--ease-fast);white-space:nowrap;box-shadow:0 2px 8px #7c3aed4d}.app-header .btn-cta:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed66}.app-header .user-avatar{width:34px;height:34px;border-radius:var(--radius-full);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:var(--text-sm);cursor:pointer;flex-shrink:0;border:2px solid transparent;transition:border-color var(--ease-fast)}.app-header .user-avatar:hover{border-color:var(--p-300)}.notif-bell{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;transition:background var(--ease-fast),color var(--ease-fast)}.notif-bell:hover{background:var(--gray-100);color:var(--color-text)}.lang-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--ease-fast);white-space:nowrap}.lang-btn:hover{border-color:var(--p-300);color:var(--color-primary);background:var(--p-50)}.hamburger-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;cursor:pointer;background:var(--gray-100);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0;position:relative;transition:background var(--ease-fast),border-color var(--ease-fast)}.hamburger-btn:hover{background:var(--p-50);border-color:var(--p-300)}.hamburger-btn:active{background:var(--p-100);transform:scale(.94)}.hamburger-btn .hb-bars{display:flex;flex-direction:column;justify-content:space-between;width:17px;height:13px}.hamburger-btn span{display:block;height:2px;background:var(--color-text);border-radius:2px;transition:transform .28s cubic-bezier(.25,.46,.45,.94),opacity .18s ease,width .25s ease;transform-origin:center}.hamburger-btn span:nth-child(3){width:70%}.hamburger-btn.open{background:var(--p-50);border-color:var(--p-400)}.hamburger-btn.open span{background:var(--p-700)}.hamburger-btn.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.hamburger-btn.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger-btn.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);width:100%}.mobile-drawer-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mobile-drawer-overlay.open{display:block}.mobile-drawer{position:fixed;top:0;right:0;bottom:0;width:280px;max-width:85vw;background:var(--color-surface);z-index:400;transform:translate(100%);transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;box-shadow:-4px 0 32px #0000001f;padding-bottom:calc(var(--safe-bottom) + 16px)}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;background:linear-gradient(135deg,#4c1d95,#7c3aed);color:#fff;position:relative;overflow:hidden}.mobile-drawer-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 80% 20%,rgba(167,139,250,.3) 0%,transparent 60%);pointer-events:none}.mobile-drawer-user{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.mobile-drawer-user .avatar{width:46px;height:46px;border-radius:var(--radius-full);background:#fff3;border:2px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;color:#fff;font-size:19px;font-weight:700;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mobile-drawer-user .uname{font-size:var(--text-base);font-weight:700;color:#fff}.mobile-drawer-user .ucoin{font-size:var(--text-xs);color:#fde68a;margin-top:3px;display:flex;align-items:center;gap:4px}.mobile-drawer-close{position:relative;z-index:1;width:34px;height:34px;border-radius:var(--radius-full);border:1.5px solid rgba(255,255,255,.3);background:#ffffff1f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:background var(--ease-fast),transform var(--ease-fast);flex-shrink:0}.mobile-drawer-close:hover{background:#ffffff40}.mobile-drawer-close:active{transform:scale(.9)}.mobile-drawer-nav{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-3);scrollbar-width:none}.mobile-drawer-nav::-webkit-scrollbar{display:none}.mobile-drawer-nav a,.drawer-nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:11px var(--sp-4);font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);text-decoration:none;cursor:pointer;border:none;background:none;width:100%;text-align:left;border-radius:var(--radius-md);transition:background var(--ease-fast),color var(--ease-fast);min-height:44px}.mobile-drawer-nav a:hover,.drawer-nav-item:hover{background:var(--gray-100);color:var(--color-text)}.mobile-drawer-nav a.active{color:var(--p-700);background:var(--p-50);font-weight:600}.mobile-drawer-nav a.active .nav-icon{filter:none}.nav-icon{font-size:18px;width:22px;text-align:center;flex-shrink:0}.mobile-drawer-divider{height:1px;background:var(--color-border-light);margin:var(--sp-2) var(--sp-4)}.mobile-drawer-footer{padding:var(--sp-4) var(--sp-4);border-top:1px solid var(--color-border)}.drawer-logout-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;padding:11px;background:var(--gray-50);border:1.5px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--ease-fast);min-height:44px}.drawer-logout-btn:hover{background:var(--color-error-bg);border-color:#fca5a5;color:var(--color-error)}.app-body{padding-top:var(--nav-height);min-height:100vh}.page-container{max-width:var(--content-max);margin:0 auto;padding:var(--sp-8) var(--sp-6)}.page-container-wide{max-width:var(--content-max-wide);margin:0 auto;padding:var(--sp-8) var(--sp-6)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-6);gap:var(--sp-4)}.page-title{font-size:var(--text-3xl);font-weight:700;letter-spacing:-.02em;color:var(--color-text)}.page-subtitle{font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--sp-1);line-height:var(--lh-relaxed)}.section-title{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.015em;color:var(--color-text);margin-bottom:var(--sp-5)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:10px 20px;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:opacity var(--ease-fast),transform var(--ease-fast),box-shadow var(--ease-fast);box-shadow:0 2px 8px #7c3aed40;white-space:nowrap;text-decoration:none}.btn-primary:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 4px 16px #7c3aed59}.btn-primary:active{transform:translateY(0);opacity:1}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:10px 20px;background:var(--color-surface);color:var(--color-primary);border:1.5px solid var(--p-300);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all var(--ease-fast);white-space:nowrap;text-decoration:none}.btn-secondary:hover{background:var(--p-50);border-color:var(--color-primary)}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:9px 18px;background:none;color:var(--color-text-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:all var(--ease-fast);white-space:nowrap;text-decoration:none}.btn-outline:hover{border-color:var(--gray-400);color:var(--color-text);background:var(--gray-50)}.btn-outline:disabled{opacity:.45;cursor:not-allowed}.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:10px 22px;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:opacity var(--ease-fast),transform var(--ease-fast),box-shadow var(--ease-fast);box-shadow:0 2px 10px #7c3aed4d;white-space:nowrap}.btn-accent:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 20px #7c3aed66}.btn-accent:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:10px 20px;background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:opacity var(--ease-fast),transform var(--ease-fast)}.btn-danger:hover{opacity:.88;transform:translateY(-1px)}.btn-danger:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-sm{padding:6px 14px;font-size:var(--text-sm)}.btn-xs{padding:4px 10px;font-size:var(--text-xs);border-radius:var(--radius-sm)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow var(--ease-base),transform var(--ease-base),border-color var(--ease-base)}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:var(--p-200)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-5)}.grid-cards .card{width:100%}.card-cover{aspect-ratio:3/4;position:relative;overflow:hidden;background:var(--gradient-primary);cursor:pointer}.card-cover img{width:100%;height:100%;object-fit:cover}.card-body{padding:var(--sp-3) var(--sp-4)}.card-title{font-size:var(--text-base);font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color var(--ease-fast)}.card-title:hover{color:var(--color-primary)}.card-meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--sp-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-date{font-size:var(--text-xs);color:var(--p-400);margin-top:2px}.card-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);align-items:center}.card-action-btn{flex:1;padding:6px 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--gray-50);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--ease-fast);color:var(--color-text-secondary)}.card-action-btn:hover{background:var(--p-50);border-color:var(--p-200);color:var(--color-primary)}.card-action-btn.write-btn{background:var(--color-primary);border-color:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center}.card-action-btn.write-btn:hover{background:var(--color-primary-hover)}.card-action-btn.del-btn{flex:0 0 36px;color:var(--color-text-muted)}.card-action-btn.del-btn:hover{background:var(--color-error-bg);border-color:#fca5a5;color:var(--color-error)}.card-badge{position:absolute;top:var(--sp-2);right:var(--sp-2);padding:3px 8px;background:#00000080;color:#fff;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;line-height:1.4}.badge-primary{background:var(--p-100);color:var(--p-800)}.badge-purple{background:var(--gradient-primary);color:#fff}.badge-gray{background:var(--gray-100);color:var(--gray-600)}.badge-success{background:var(--color-success-bg);color:#065f46}.badge-warning{background:var(--color-warning-bg);color:#92400e}.badge-error{background:var(--color-error-bg);color:#991b1b}.badge-gold{background:var(--gradient-gold);color:#fff}.toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap}.search-bar{display:flex;align-items:center;gap:var(--sp-2);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:9px 14px;transition:border-color var(--ease-fast),box-shadow var(--ease-fast)}.search-bar:focus-within{border-color:var(--p-300);box-shadow:0 0 0 3px #7c3aed14}.search-bar input{border:none;background:none;outline:none;font-size:var(--text-base);font-family:var(--font-sans);color:var(--color-text);width:100%}.search-bar input::placeholder{color:var(--color-text-muted)}.filter-tags{display:flex;gap:var(--sp-2);flex-wrap:wrap}.filter-tag{padding:7px 16px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--ease-fast);white-space:nowrap}.filter-tag:hover{border-color:var(--p-300);color:var(--color-primary)}.filter-tag.active{background:var(--p-700);border-color:var(--p-700);color:#fff;font-weight:600}.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--sp-1)}.form-input{width:100%;padding:9px 14px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-sans);color:var(--color-text);transition:border-color var(--ease-fast),box-shadow var(--ease-fast);outline:none}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{border-color:var(--p-400);box-shadow:0 0 0 3px #7c3aed1a}.hero-section{position:relative;background:var(--gradient-hero);overflow:hidden;padding:var(--sp-16) 0 var(--sp-12);color:#fff}.hero-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.hero-inner{position:relative;z-index:1;max-width:var(--content-max);margin:0 auto;padding:0 var(--sp-6);display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-12);align-items:center}.hero-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:5px 14px;background:#ffffff26;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--sp-5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-title{font-size:clamp(28px,4vw,48px);font-weight:800;line-height:var(--lh-tight);letter-spacing:-.03em;margin-bottom:var(--sp-4);white-space:pre-line}.hero-subtitle{font-size:var(--text-lg);line-height:var(--lh-relaxed);opacity:.85;margin-bottom:var(--sp-8);max-width:480px}.hero-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}.hero-btn-primary{padding:13px 28px;background:#fff;color:var(--color-primary);border:none;border-radius:var(--radius-full);font-size:var(--text-base);font-weight:700;cursor:pointer;transition:all var(--ease-fast);box-shadow:0 4px 16px #00000026}.hero-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0003}.hero-btn-ghost{padding:13px 28px;background:#ffffff26;color:#fff;border:1.5px solid rgba(255,255,255,.4);border-radius:var(--radius-full);font-size:var(--text-base);font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all var(--ease-fast)}.hero-btn-ghost:hover{background:#ffffff40;border-color:#fff9}.hero-right{display:flex;align-items:center;justify-content:center}.hero-visual{width:100%;max-width:400px;aspect-ratio:1;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-2xl);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;font-size:120px;box-shadow:0 8px 32px #0003}.empty-state{text-align:center;padding:var(--sp-16) var(--sp-6);color:var(--color-text-secondary)}.empty-icon{font-size:48px;margin-bottom:var(--sp-3)}.empty-state h3{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin:0 0 var(--sp-2)}.empty-state p{font-size:var(--text-base);margin:0 0 var(--sp-5)}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:400px 100%;animation:shimmer 1.4s ease infinite}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.modal-box{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--sp-8);width:100%;max-width:480px;box-shadow:var(--shadow-modal);animation:modal-in .2s cubic-bezier(.34,1.56,.64,1)}@keyframes modal-in{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-box h3{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--sp-2)}.modal-desc{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--lh-relaxed);margin-bottom:var(--sp-5)}.modal-actions{display:flex;gap:var(--sp-3);justify-content:flex-end;margin-top:var(--sp-6)}.modal-form{display:flex;flex-direction:column;gap:var(--sp-4)}.modal-form label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--sp-1)}.modal-warn{max-width:440px}.modal-warn-icon{font-size:40px;margin-bottom:var(--sp-3)}.modal-backup{max-width:520px}.backup-list{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-4)}.backup-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md)}.backup-info{display:flex;flex-direction:column;gap:2px}.backup-date{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.backup-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.backup-label{font-size:var(--text-xs);color:var(--color-primary)}.backup-actions{display:flex;gap:var(--sp-2)}.backup-empty{text-align:center;padding:var(--sp-8);color:var(--color-text-muted);font-size:var(--text-sm)}.btn-sm{padding:5px 12px;font-size:var(--text-xs);border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all var(--ease-fast)}.btn-restore{background:var(--p-50);color:var(--color-primary);border:1px solid var(--p-200)}.btn-restore:hover{background:var(--p-100)}.btn-del-backup{background:none;border:1px solid var(--color-border);color:var(--color-text-muted)}.btn-del-backup:hover{background:var(--color-error-bg);border-color:#fca5a5;color:var(--color-error)}.shelf-publish-info{background:var(--gray-50);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);margin:var(--sp-3) 0}.spi-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--color-text);padding:3px 0}.spi-icon{font-size:16px;width:24px;text-align:center}.notif-popup{padding:4px 0}.notif-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 10px;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);font-weight:600}.notif-empty{text-align:center;padding:var(--sp-8);color:var(--color-text-muted);font-size:var(--text-sm)}.notif-item{padding:10px 16px;cursor:pointer;border-bottom:1px solid var(--color-border-light);transition:background var(--ease-fast)}.notif-item:hover{background:var(--gray-50)}.notif-item.unread{background:var(--p-50)}.notif-item.unread:before{display:none}.notif-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text);margin-bottom:2px}.notif-content{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:4px;line-height:1.5}.notif-time{font-size:var(--text-xs);color:var(--color-text-muted)}.app-footer{background:var(--gray-900);color:#fff9;padding:var(--sp-12) 0 var(--sp-6)}.footer-inner{max-width:var(--content-max);margin:0 auto;padding:0 var(--sp-6);text-align:center}.footer-brand{font-size:var(--text-md);font-weight:600;color:#fff;margin-bottom:var(--sp-4);display:flex;align-items:center;justify-content:center;gap:var(--sp-2)}.footer-links{display:flex;justify-content:center;gap:var(--sp-6);margin-bottom:var(--sp-4)}.footer-links a{color:#ffffff80;text-decoration:none;font-size:var(--text-sm);transition:color var(--ease-fast)}.footer-links a:hover{color:#fff}.footer-copy{font-size:var(--text-xs);opacity:.4}.footer-filing{font-size:11px;opacity:.45;margin-top:var(--sp-2);display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.footer-filing a{color:inherit;text-decoration:none}.footer-filing a:hover{text-decoration:underline;opacity:.8}.footer-filing-sep{opacity:.5}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:100;background:#fffffff7;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(0,0,0,.07);padding-bottom:var(--safe-bottom);height:calc(var(--bottom-nav-height) + var(--safe-bottom));box-shadow:0 -2px 20px #0000000f}.bottom-nav-inner{display:flex;align-items:center;height:var(--bottom-nav-height);max-width:480px;margin:0 auto;padding:0 var(--sp-2)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--gray-400);cursor:pointer;padding:6px 4px;border-radius:var(--radius-md);transition:color var(--ease-fast),background var(--ease-fast);min-height:50px;position:relative}.bottom-nav-item:active{background:var(--gray-100)}.bottom-nav-item svg{width:23px;height:23px;stroke-width:1.6}.bottom-nav-item.active{color:var(--p-700)}.bottom-nav-item.active:after{content:"";position:absolute;bottom:4px;width:4px;height:4px;background:var(--p-700);border-radius:50%}.bn-label{font-size:10px;font-weight:500;letter-spacing:.01em}.bottom-nav-item.active .bn-label{font-weight:700}.bottom-nav-create{flex:1.2}.bottom-nav-create:after{display:none}.bn-create-circle{width:50px;height:50px;background:var(--gradient-primary);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 16px #7c3aed73;margin-bottom:1px;transition:transform var(--ease-fast),box-shadow var(--ease-fast);border:3px solid rgba(255,255,255,.9)}.bottom-nav-create:hover .bn-create-circle{box-shadow:0 6px 20px #7c3aed8c}.bottom-nav-create:active .bn-create-circle{transform:scale(.88)}@media(max-width:1024px){.page-container,.page-container-wide{padding:var(--sp-6) var(--sp-5)}.hero-inner{grid-template-columns:1fr;gap:var(--sp-8)}.hero-right{display:none}}@media(max-width:768px){.app-header{padding:0 var(--sp-4);height:54px;gap:0}.app-header nav{display:none}.app-header .vip-indicator,.app-header .notif-bell,.app-header .btn-cta.desktop-only,.app-header .user-avatar.desktop-only,.app-header .lang-switcher{display:none!important}.app-header .header-right{gap:var(--sp-2)}.hamburger-btn{display:flex}.mobile-coin{padding:5px 11px!important;font-size:var(--text-sm)!important}.bottom-nav{display:block}.app-body{padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom))}.page-container,.page-container-wide{padding:var(--sp-4)}.grid-cards{grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}.hero-section{padding:var(--sp-10) 0 var(--sp-8)}.hero-title{font-size:26px}.hero-actions{flex-direction:column}.hero-btn-primary,.hero-btn-ghost{text-align:center}.modal-box{padding:var(--sp-6);margin:var(--sp-4)}}@media(max-width:480px){.grid-cards{grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.app-footer{margin-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom))}}.mobile-only{display:none}@media(max-width:768px){.desktop-only{display:none!important}.coin-badge:not(.mobile-coin){display:none!important}.header-notif-wrap,.app-header .lang-switcher{display:none!important}}@media(min-width:769px){.mobile-only,.mobile-coin,.hamburger-btn{display:none!important}}.admin-layout{display:flex;min-height:calc(100vh - var(--nav-height))}.admin-sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--sp-5) 0;flex-shrink:0;position:sticky;top:var(--nav-height);height:calc(100vh - var(--nav-height));overflow-y:auto}.admin-content{flex:1;padding:var(--sp-6);overflow:auto;min-width:0}.admin-nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:10px 20px;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);transition:all var(--ease-fast);border-radius:0}.admin-nav-item:hover{background:var(--gray-50);color:var(--color-text)}.admin-nav-item.active{background:var(--p-50);color:var(--color-primary);font-weight:600;border-right:2px solid var(--color-primary)}.divider{height:1px;background:var(--color-border);margin:var(--sp-5) 0}.result-count{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--sp-4)}.loading-state{text-align:center;padding:var(--sp-16);color:var(--color-text-muted);font-size:var(--text-base)}.shelf-pagination{display:flex;justify-content:center;align-items:center;gap:var(--sp-4);margin-top:var(--sp-8)}.shelf-pagination button{padding:7px 18px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--ease-fast);color:var(--color-text-secondary)}.shelf-pagination button:hover{border-color:var(--p-300);color:var(--color-primary)}.shelf-pagination button:disabled{opacity:.4;cursor:not-allowed}.shelf-pagination span{color:var(--color-text-secondary);font-size:var(--text-sm)}.recharge-container{max-width:960px;margin:0 auto}.pay-dialog-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-5)}.cover-genre-fantasy{background:linear-gradient(135deg,#6366f1,#a78bfa)}.cover-genre-romance{background:linear-gradient(135deg,#ec4899,#f9a8d4)}.cover-genre-suspense{background:linear-gradient(135deg,#374151,#6b7280)}.cover-genre-scifi{background:linear-gradient(135deg,#0ea5e9,#38bdf8)}.cover-genre-history{background:linear-gradient(135deg,#b45309,#d97706)}.cover-default{background:var(--gradient-primary)}.fab{position:fixed;right:var(--sp-5);bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--sp-4));width:54px;height:54px;background:var(--gradient-primary);border:none;border-radius:var(--radius-full);color:#fff;font-size:24px;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 4px 16px #7c3aed66,0 2px 8px #00000026;z-index:50;transition:transform var(--ease-fast),box-shadow var(--ease-fast)}.fab:active{transform:scale(.92)}@media(max-width:767px){.fab{display:flex}}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:500;opacity:0;pointer-events:none;transition:opacity var(--ease-slow)}.bottom-sheet-overlay.open{opacity:1;pointer-events:all}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;background:var(--color-surface);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;z-index:510;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);padding-bottom:calc(var(--safe-bottom) + var(--sp-2));max-height:88vh;display:flex;flex-direction:column;box-shadow:0 -4px 24px #0000001f}.bottom-sheet.open{transform:translateY(0)}.bs-handle{width:36px;height:4px;background:var(--gray-200);border-radius:2px;margin:var(--sp-3) auto var(--sp-1);flex-shrink:0}.bs-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-5) var(--sp-3);border-bottom:1px solid var(--color-border-light);flex-shrink:0}.bs-title{font-size:var(--text-lg);font-weight:700;color:var(--color-text)}.bs-close{width:32px;height:32px;border:none;background:var(--gray-100);border-radius:var(--radius-full);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:background var(--ease-fast)}.bs-close:hover{background:var(--gray-200)}.bs-content{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);scrollbar-width:thin}.side-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:500;opacity:0;pointer-events:none;transition:opacity var(--ease-slow)}.side-drawer-overlay.open{opacity:1;pointer-events:all}.side-drawer{position:fixed;top:0;bottom:0;width:82vw;max-width:320px;background:var(--color-surface);z-index:510;display:flex;flex-direction:column;box-shadow:4px 0 24px #0000001f;padding-bottom:var(--safe-bottom);transition:transform .32s cubic-bezier(.32,.72,0,1)}.side-drawer.left{left:0;transform:translate(-100%)}.side-drawer.right{right:0;transform:translate(100%)}.side-drawer.open{transform:translate(0)}.sd-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--color-border);flex-shrink:0}.sd-title{font-size:var(--text-md);font-weight:700;color:var(--color-text)}.sd-close{width:32px;height:32px;border:1.5px solid var(--color-border);background:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:14px;transition:all var(--ease-fast)}.sd-close:hover{background:var(--gray-100)}.sd-content{flex:1;overflow-y:auto;scrollbar-width:thin}.mobile-appbar{display:none;position:sticky;top:0;z-index:90;height:52px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);align-items:center;padding:0 var(--sp-4);gap:var(--sp-3)}.mab-back{width:36px;height:36px;border:1.5px solid var(--color-border);background:none;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;font-size:16px;transition:all var(--ease-fast)}.mab-back:hover{background:var(--gray-100)}.mab-title{flex:1;font-size:var(--text-md);font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mab-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.mab-icon-btn{width:36px;height:36px;border:none;background:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:18px;transition:background var(--ease-fast)}.mab-icon-btn:hover{background:var(--gray-100)}@media(max-width:767px){.mobile-appbar{display:flex}}.seg-control{display:flex;background:var(--gray-100);border-radius:var(--radius-md);padding:3px;gap:2px}.seg-btn{flex:1;padding:7px 12px;background:none;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--ease-fast);white-space:nowrap;text-align:center}.seg-btn.active{background:var(--color-surface);color:var(--color-primary);font-weight:600;box-shadow:var(--shadow-sm)}.list-card{display:flex;align-items:center;gap:var(--sp-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-3);transition:box-shadow var(--ease-fast),border-color var(--ease-fast);cursor:pointer}.list-card:hover{box-shadow:var(--shadow-md);border-color:var(--p-200)}.list-card:active{background:var(--gray-50)}.lc-cover{width:60px;height:80px;border-radius:var(--radius-sm);flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.cover-has-img{background:#111!important}.cover-img-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1}.card-cover .card-badge,.card-cover .like-badge,.card-cover .fav-btn,.card-cover .ws-status-badge,.card-cover .fav-star-badge,.lc-cover .lc-cover-badge{z-index:2;position:relative}.lc-cover-letter{font-size:26px;font-weight:800;color:#ffffffe6}.lc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.lc-title{font-size:var(--text-base);font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lc-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.lc-status{display:inline-flex;align-items:center}.lc-action{flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-1);align-items:flex-end}.lc-cta{padding:7px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity var(--ease-fast)}.lc-cta:hover{opacity:.88}.lc-more{width:28px;height:28px;border:1.5px solid var(--color-border);background:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:14px;transition:all var(--ease-fast)}.lc-more:hover{background:var(--gray-100)}.sticky-filter-bar{position:sticky;top:0;z-index:40;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);padding:var(--sp-2) var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);overflow-x:auto;scrollbar-width:none}.sticky-filter-bar::-webkit-scrollbar{display:none}.h-scroll-cards{display:flex;gap:var(--sp-3);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:var(--sp-1) var(--sp-4) var(--sp-3);margin:0 calc(-1 * var(--sp-4))}.h-scroll-cards::-webkit-scrollbar{display:none}.h-scroll-cards .card{flex-shrink:0;scroll-snap-align:start}.writer-mobile-bar{display:none;position:fixed;bottom:calc(var(--safe-bottom));left:0;right:0;background:#fffffff7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--color-border);padding:var(--sp-2) var(--sp-4);z-index:80;gap:var(--sp-2);align-items:center}@media(max-width:767px){.writer-mobile-bar{display:flex}}.wmb-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--sp-2) var(--sp-1);background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-sm);transition:all var(--ease-fast);min-height:44px;justify-content:center}.wmb-btn:hover{background:var(--gray-100);color:var(--color-text)}.wmb-btn.primary{flex:none;padding:10px 20px;background:var(--gradient-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);flex-direction:row;gap:var(--sp-1);box-shadow:0 2px 8px #7c3aed40}.wmb-btn svg{width:20px;height:20px}.focus-mode-hint{position:fixed;top:var(--sp-3);left:50%;transform:translate(-50%);background:#0009;color:#fff;padding:6px 16px;border-radius:var(--radius-full);font-size:var(--text-xs);z-index:200;pointer-events:none;animation:fade-hint 3s ease forwards}@keyframes fade-hint{0%,70%{opacity:1}to{opacity:0}}@media(max-width:767px){.page-container{padding:var(--sp-4) var(--sp-4) calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--sp-4))}.section-title{font-size:var(--text-xl)}.page-title{font-size:var(--text-2xl)}button,a,[role=button]{min-height:44px}.filter-tag,.seg-btn,.badge{min-height:36px;display:inline-flex;align-items:center}}@media(min-width:768px)and (max-width:1199px){.grid-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-4)}.hero-inner{grid-template-columns:1fr}.hero-right{display:none}.page-container{padding:var(--sp-5) var(--sp-5)}}
