:root{color-scheme:light;--font-display: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif;--bg: #F8F9FC;--bg-warm: #EEF0F6;--surface: #FFFFFF;--surface-dim: #F4F5FA;--ink: #0F172A;--ink-soft: #334155;--muted: #64748B;--muted-soft: #94A3B8;--line: #E2E8F0;--line-soft: #F1F5F9;--accent: #6366F1;--accent-soft: #EEF2FF;--accent-glow: rgba(99, 102, 241, .15);--accent-hover: #4F46E5;--success: #10B981;--success-soft: #ECFDF5;--danger: #EF4444;--danger-soft: #FEF2F2;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 2px 8px rgba(15, 23, 42, .06);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 48px rgba(15, 23, 42, .1);--shadow-xl: 0 32px 64px rgba(15, 23, 42, .14)}[data-theme=dark]{color-scheme:dark;--bg: #0F172A;--bg-warm: #1E293B;--surface: #1E293B;--surface-dim: #334155;--ink: #F1F5F9;--ink-soft: #CBD5E1;--muted: #94A3B8;--muted-soft: #64748B;--line: #334155;--line-soft: #1E293B;--accent: #818CF8;--accent-soft: rgba(99, 102, 241, .15);--accent-glow: rgba(99, 102, 241, .25);--accent-hover: #A5B4FC;--success: #34D399;--success-soft: rgba(16, 185, 129, .15);--danger: #F87171;--danger-soft: rgba(239, 68, 68, .15);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .18);--shadow-md: 0 8px 24px rgba(0, 0, 0, .24);--shadow-lg: 0 20px 48px rgba(0, 0, 0, .32);--shadow-xl: 0 32px 64px rgba(0, 0, 0, .42)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.6;min-height:100vh;overflow-x:hidden}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}input,select,textarea{outline:none;transition:border-color .2s,box-shadow .2s}.center-state{min-height:100vh;display:grid;place-items:center;color:var(--muted);font-size:.95rem;letter-spacing:.04em}.auth-screen{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:24px;background:var(--bg)}.auth-decor{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.auth-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55}.auth-orb-1{width:480px;height:480px;top:-160px;left:-120px;background:var(--accent-glow)}.auth-orb-2{width:400px;height:400px;bottom:-140px;right:-100px;background:#10b9811a}.auth-orb-3{width:320px;height:320px;top:40%;left:60%;background:var(--accent-glow);opacity:.35}.auth-overlay{position:relative;z-index:1;display:flex;flex-direction:column;width:min(420px,100%);animation:auth-rise .5s cubic-bezier(.22,1,.36,1) both}@keyframes auth-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.auth-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:28px}.auth-logo{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--radius-lg);background:var(--accent);color:#fff;box-shadow:0 8px 24px var(--accent-glow),var(--shadow-sm);margin-bottom:20px}.auth-logo svg{width:30px;height:30px}.auth-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.2rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;margin-bottom:10px;color:var(--ink)}.auth-desc{font-size:.95rem;line-height:1.6;color:var(--muted)}.auth-card{display:flex;flex-direction:column;padding:clamp(24px,4vw,36px);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.auth-card-header{margin-bottom:24px}.auth-card-header h2{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--ink);margin-bottom:6px}.auth-card-header p{color:var(--muted);font-size:.9rem}.field{display:grid;gap:8px;margin-bottom:20px}.field span{font-size:.82rem;font-weight:600;color:var(--ink-soft);letter-spacing:.02em}.field input{width:100%;padding:14px 16px;border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface-dim);font-size:.95rem;transition:border-color .2s,box-shadow .2s,background .2s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:var(--surface)}.field input::placeholder{color:var(--muted-soft)}.primary-action{width:100%;padding:15px 24px;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-weight:600;font-size:.95rem;letter-spacing:.02em;transition:transform .15s,box-shadow .15s,background .15s;box-shadow:0 4px 16px #6366f14d;margin-top:8px}.primary-action:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #6366f159;background:#4f46e5}.primary-action:active:not(:disabled){transform:translateY(0)}.primary-action:disabled{opacity:.5;cursor:not-allowed}.primary-action.small{width:auto;margin-top:0;padding:10px 20px;font-size:.88rem}.ghost-button{padding:9px 16px;border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface);color:var(--ink-soft);font-size:.88rem;font-weight:500;transition:transform .15s,border-color .15s,background .15s,color .15s;white-space:nowrap}.ghost-button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--muted-soft);background:var(--surface-dim)}.ghost-button:disabled{opacity:.4;cursor:not-allowed}.danger-button{color:var(--danger)!important;border-color:#ef444433!important;background:var(--danger-soft)!important}.danger-button:hover:not(:disabled){background:#ef44441a!important}.auth-error,.panel-error{padding:12px 16px;border-radius:var(--radius-md);background:var(--danger-soft);border:1px solid rgba(239,68,68,.15);color:var(--danger);font-size:.88rem;margin-bottom:4px}.app-shell{position:relative;isolation:isolate;min-height:100vh;min-height:100dvh;background-color:var(--bg);background-image:var(--bg-image, none);background-size:cover;background-position:center;background-attachment:fixed}.app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;background:var(--bg-image-overlay, transparent)}[data-theme=light] .app-shell:before{background:#f8f9fcd1}[data-theme=dark] .app-shell:before{background:#0f172ac7}.first-login-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-radius:0;background:#fffbeb;border-bottom:1px solid rgba(245,158,11,.2);color:#92400e;flex-wrap:wrap;position:relative;z-index:10}.first-login-banner strong{line-height:1.6}.panel-tag{display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--radius-pill);background:#f59e0b1a;color:#92400e;font-size:.78rem;font-weight:600;white-space:nowrap;flex-shrink:0}.viewer-label{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.user-pill{position:relative;flex-shrink:0}.user-pill-toggle{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:var(--radius-pill);background:var(--surface-dim);border:1px solid var(--line);cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.user-pill-toggle:hover{background:var(--surface);border-color:var(--line-strong)}.user-pill-toggle[aria-expanded=true]{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.user-pill-avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#4F46E5);color:#fff;font-size:.85rem;font-weight:700}.user-pill-name{font-size:.88rem;font-weight:600;color:var(--ink);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-pill-chevron{width:16px;height:16px;color:var(--muted);transition:transform .2s ease}.user-pill-chevron.open{transform:rotate(180deg)}.user-pill-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 12px 40px #0000002e;padding:6px;z-index:100;animation:menuFadeIn .15s ease}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.user-pill-menu-header{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}.user-pill-menu-name{font-size:.95rem;font-weight:600;color:var(--ink)}.user-pill-menu-role{font-size:.75rem;font-weight:500;color:var(--muted);width:fit-content}.user-pill-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--ink);font-size:.9rem;cursor:pointer;transition:background .15s ease,color .15s ease;text-align:left}.user-pill-menu-item:hover{background:var(--surface-dim)}.user-pill-menu-item svg{width:18px;height:18px;flex-shrink:0;color:var(--muted)}.user-pill-menu-item:hover svg{color:var(--ink)}.user-pill-menu-logout{color:var(--danger)}.user-pill-menu-logout:hover{background:#ef444414}.user-pill-menu-logout svg{color:var(--danger)}.empty-mini-state{padding:20px;text-align:center;color:var(--muted);font-size:.88rem}.muted-text{color:var(--muted);font-size:.88rem;padding:12px 0}.search-icon-svg{width:20px;height:20px;flex-shrink:0;color:var(--muted-soft);transition:color .2s}.home-view{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative}.home-topbar{position:absolute;top:0;right:0;padding:16px 24px;z-index:10;display:flex;justify-content:flex-end}.home-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px 48px;min-height:100vh;min-height:100dvh}.home-brand{text-align:center;margin-bottom:40px}.home-brand h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.03em;color:var(--ink);line-height:1.1;margin-bottom:12px}.home-brand p{color:var(--muted);font-size:1.05rem;max-width:40ch}.home-search{width:100%;max-width:680px;position:relative;margin-bottom:48px}.home-search .search-icon-svg{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:22px;height:22px;color:var(--muted-soft);pointer-events:none}.home-search-input{width:100%;height:56px;padding:0 20px 0 54px;border-radius:28px;border:1.5px solid var(--line);background:var(--surface);font-size:1.05rem;box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s}.home-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow),var(--shadow-md);outline:none}.home-search-input::placeholder{color:var(--muted-soft)}.recent-section{width:100%;max-width:860px}.recent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.recent-header h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--ink-soft)}.recent-header-actions{display:flex;align-items:center;gap:8px}.refresh-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.refresh-btn:hover:not(:disabled){background:var(--surface-dim);border-color:var(--line-strong);color:var(--ink)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.refresh-btn svg{width:16px;height:16px}.refresh-btn-spinning svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.browse-all-btn{padding:8px 18px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:.85rem;font-weight:600;border:1px solid rgba(99,102,241,.15);transition:background .15s,transform .15s}.browse-all-btn:hover{background:#6366f126;transform:translateY(-1px)}.recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.file-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);text-align:left;transition:transform .15s,box-shadow .15s,border-color .15s}.file-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--accent)}.file-card-main{display:flex;flex-direction:column;gap:8px;width:100%;padding:0;border:none;background:transparent;text-align:left;cursor:pointer}.file-card-delete{position:absolute;top:8px;right:8px;opacity:0;transition:opacity .15s ease}.file-card:hover .file-card-delete{opacity:1}.file-card-name{font-size:.9rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:28px}.file-card-meta{display:flex;gap:12px;font-size:.78rem;color:var(--muted)}.results-view{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.results-navbar{position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-xs);padding:12px 24px}.results-navbar-inner{width:100%;max-width:800px;margin:0 auto;display:flex;align-items:center;gap:16px;box-sizing:border-box}.results-navbar-search{flex:1;max-width:560px;position:relative;display:flex;align-items:center}.results-navbar-search .search-icon-svg{position:absolute;left:14px;width:18px;height:18px;color:var(--muted-soft);pointer-events:none}.results-navbar-search input{width:100%;height:42px;padding:0 36px 0 42px;border-radius:var(--radius-pill);border:1.5px solid var(--line);background:var(--surface-dim);font-size:.92rem;transition:border-color .2s,box-shadow .2s,background .2s}.results-navbar-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:var(--surface);outline:none}.results-navbar-search input::placeholder{color:var(--muted-soft)}.search-clear-btn{position:absolute;right:10px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-dim);color:var(--muted);font-size:.72rem;border:1px solid var(--line);transition:background .15s,color .15s;padding:0}.search-clear-btn:hover{background:var(--line);color:var(--ink-soft)}.results-list{max-width:800px;margin:0 auto;width:100%;padding:24px 24px 48px}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}.results-count{font-size:.9rem;color:var(--muted)}.sort-toggle{display:flex;gap:4px;background:var(--surface-dim);border-radius:var(--radius-pill);padding:3px;border:1px solid var(--line)}.sort-btn{padding:6px 14px;border-radius:var(--radius-pill);font-size:.82rem;font-weight:500;color:var(--muted);transition:background .15s,color .15s}.sort-btn:hover{color:var(--ink-soft)}.sort-btn-active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs);font-weight:600}.result-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:16px 20px;border-radius:var(--radius-md);margin-bottom:8px;border:1px solid transparent;transition:background .15s,border-color .15s}.result-item:hover{background:var(--surface);border-color:var(--line)}.result-item-main{flex:1;min-width:0;padding:0;border:none;background:transparent;text-align:left;cursor:pointer}.result-item-delete{flex-shrink:0;opacity:0;transition:opacity .15s ease}.result-item:hover .result-item-delete{opacity:1}.result-item-name{font-size:1.05rem;font-weight:600;color:var(--accent);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-item-name:hover{text-decoration:underline}.result-item-meta{display:flex;gap:16px;font-size:.8rem;color:var(--muted)}.preview-view{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:50}.preview-view:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,0,.08) 100%);pointer-events:none;z-index:0}.preview-view:fullscreen{background:var(--bg)}.floating-top-bar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;gap:16px;padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 85%,transparent) 0%,transparent 100%);transition:opacity .3s ease,transform .3s ease}.floating-top-bar.floating-hidden{opacity:0;transform:translateY(-100%);pointer-events:none}.floating-top-bar.floating-visible{opacity:1;transform:translateY(0)}.floating-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-dim) 85%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--ink-soft);font-size:.88rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.floating-btn:hover{background:color-mix(in srgb,var(--surface) 95%,transparent);border-color:var(--muted-soft);color:var(--ink)}.floating-btn svg{width:18px;height:18px}.floating-title{flex:1;color:var(--ink-soft);font-size:.9rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.floating-user-actions{display:flex;align-items:center}.preview-view .user-pill-toggle{background:color-mix(in srgb,var(--surface-dim) 85%,transparent);border-color:var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.preview-view .user-pill-toggle:hover{background:color-mix(in srgb,var(--surface) 95%,transparent);border-color:var(--muted-soft)}.preview-view .user-pill-toggle[aria-expanded=true]{background:color-mix(in srgb,var(--surface) 95%,transparent);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.preview-view .user-pill-name{color:var(--ink)}.preview-view .user-pill-chevron{color:var(--muted)}.preview-view .user-pill-menu{background:color-mix(in srgb,var(--surface) 98%,transparent);border-color:var(--line)}.preview-view .user-pill-menu-header{border-bottom-color:var(--line)}.preview-view .user-pill-menu-name{color:var(--ink)}.preview-view .user-pill-menu-item{color:var(--ink-soft)}.preview-view .user-pill-menu-item:hover{background:var(--surface-dim)}.preview-view .user-pill-menu-item svg{color:var(--muted)}.preview-view .user-pill-menu-item:hover svg{color:var(--ink)}.preview-view .user-pill-menu-logout:hover{background:#ef44441f}.viewer-frame{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:56px 24px 200px;box-sizing:border-box;touch-action:manipulation;position:relative;z-index:1}.viewer-frame .center-state{color:var(--muted);font-size:1rem}.pdf-preview-image{display:block;max-width:100%;max-height:100%;box-shadow:var(--shadow-lg);background:var(--surface);border-radius:6px}.image-loading-overlay{position:absolute;pointer-events:none}.floating-bottom-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px 14px;padding-bottom:max(14px,env(safe-area-inset-bottom));max-width:100vw;background:linear-gradient(0deg,color-mix(in srgb,var(--surface) 90%,transparent) 0%,transparent 100%);transition:opacity .3s ease,transform .3s ease}.floating-bottom-bar.floating-hidden{opacity:0;transform:translate(-50%) translateY(100%);pointer-events:none}.floating-bottom-bar.floating-visible{transform:translate(-50%) translateY(0)}.floating-controls-group{display:flex;align-items:center;gap:4px;padding:5px 8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-dim) 80%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);transition:background .2s ease,border-color .2s ease}.floating-controls-group:hover,.floating-page-indicator:hover{background:color-mix(in srgb,var(--surface) 95%,transparent);border-color:var(--muted-soft)}.floating-icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:transparent;color:var(--ink-soft);cursor:pointer;transition:background .2s ease,color .2s ease}.floating-icon-btn:hover:not(:disabled){background:var(--line-soft);color:var(--ink)}.floating-icon-btn:disabled{opacity:.35;cursor:not-allowed}.floating-icon-btn svg{width:19px;height:19px}.floating-scale-indicator{color:var(--ink-soft);font-size:.82rem;font-weight:500;min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.floating-page-indicator{display:flex;align-items:center;gap:4px;padding:5px 8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-dim) 80%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);transition:background .2s ease,border-color .2s ease}.floating-page-num{color:var(--ink-soft);font-size:.88rem;font-weight:500;min-width:64px;text-align:center;font-variant-numeric:tabular-nums}.search-overlay{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:65;width:min(560px,90vw);transition:opacity .3s ease}.search-overlay.floating-hidden{opacity:0;pointer-events:none}.search-floating-form{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface) 95%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid color-mix(in srgb,var(--line) 80%,transparent)}.search-floating-form input{flex:1;min-width:0;padding:8px 12px;border:none;background:transparent;color:var(--ink);font-size:.9rem;outline:none}.search-floating-form input::placeholder{color:var(--muted-soft)}.search-floating-form .primary-action{padding:6px 14px;font-size:.85rem}.search-snippet-floating{margin-top:8px;padding:8px 14px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 95%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:var(--ink-soft);font-size:.82rem;line-height:1.5}.floating-search-count{color:var(--muted);font-size:.82rem;min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.password-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:color-mix(in srgb,var(--ink) 75%,transparent);display:flex;align-items:center;justify-content:center;padding:20px;overscroll-behavior:contain}.password-dialog{width:min(380px,100%);padding:36px 28px 28px;border-radius:20px;background:var(--surface);box-shadow:0 24px 64px #00000059,0 4px 12px #00000026;display:flex;flex-direction:column;gap:14px}.password-dialog-icon{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--accent-soft) 0%,rgba(99,102,241,.08) 100%);display:flex;align-items:center;justify-content:center;margin:0 auto 4px}.password-dialog-icon svg{width:28px;height:28px;color:var(--accent)}.password-dialog-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--ink);text-align:center}.password-dialog-desc{font-size:.88rem;color:var(--muted);text-align:center;margin-bottom:4px}.password-dialog-filename{font-size:.9rem;font-weight:600;color:var(--accent);text-align:center;padding:10px 14px;background:var(--accent-soft);border-radius:var(--radius-md);word-break:break-all;line-height:1.4;-webkit-user-select:all;user-select:all;cursor:pointer}.password-dialog-actions{display:flex;gap:10px;margin-top:4px}.password-dialog-actions button{flex:1}.thumbnail-strip{position:fixed;bottom:68px;left:50%;transform:translate(-50%);max-width:calc(100vw - 32px);z-index:58;display:flex;gap:6px;padding:5px 8px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-dim) 80%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--muted-soft) transparent;transition:opacity .3s ease,transform .3s ease}.thumbnail-strip.floating-hidden{opacity:0;transform:translate(-50%) translateY(120%);pointer-events:none}.thumbnail-strip.floating-visible{transform:translate(-50%) translateY(0)}.thumbnail-strip::-webkit-scrollbar{height:3px}.thumbnail-strip::-webkit-scrollbar-track{background:transparent}.thumbnail-strip::-webkit-scrollbar-thumb{background:var(--muted-soft);border-radius:2px}.thumbnail-item{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:3px;border:2px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:border-color .2s ease,background .2s ease;position:relative}.thumbnail-item:hover{background:var(--line-soft)}.thumbnail-item-active{border-color:var(--accent);background:var(--accent-soft)}.thumbnail-item img,.thumbnail-img{display:block;width:44px;height:58px;object-fit:cover;border-radius:3px;background:var(--surface);box-shadow:var(--shadow-sm)}.thumbnail-img-placeholder{background:linear-gradient(135deg,var(--line) 0%,var(--line-soft) 100%);animation:thumbnail-pulse 1.6s ease-in-out infinite}@keyframes thumbnail-pulse{0%,to{opacity:.5}50%{opacity:.8}}.thumbnail-zoom-popup{position:fixed;bottom:150px;left:50%;transform:translate(-50%);width:180px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;background:color-mix(in srgb,var(--surface) 95%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:10px;box-shadow:var(--shadow-lg);z-index:210;pointer-events:none;animation:thumbZoomIn .15s ease}.thumbnail-zoom-popup img{display:block;width:164px;height:218px;object-fit:contain;background:var(--surface);border-radius:4px;box-shadow:var(--shadow-md)}.thumbnail-zoom-page{font-size:12px;color:var(--ink-soft);font-weight:500}@keyframes thumbZoomIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.thumbnail-page-num{color:var(--muted);font-size:.65rem;font-weight:500;font-variant-numeric:tabular-nums}@media (max-width: 960px){.viewer-frame{padding:50px 16px 180px}.floating-top-bar{padding:10px 14px}.floating-bottom-bar{padding:8px 12px 12px;gap:10px}.thumbnail-strip{bottom:64px}.thumbnail-item img{width:44px;height:58px}}@media (max-width: 640px){.viewer-frame{padding:44px 8px 170px}.floating-btn span{display:none}.floating-btn{padding:8px}.floating-title{font-size:.82rem}.floating-controls-group{padding:4px 6px;gap:2px}.floating-icon-btn{width:30px;height:30px}.floating-icon-btn svg{width:17px;height:17px}.floating-scale-indicator{font-size:.72rem;min-width:38px}.floating-page-num{font-size:.78rem;min-width:48px}.thumbnail-strip{bottom:60px;padding:5px 8px;gap:5px}.thumbnail-item img{width:38px;height:50px}.thumbnail-page-num{font-size:.6rem}.password-dialog{padding:24px 20px}}@media (max-width: 380px){.viewer-frame{padding:40px 6px 160px}.floating-bottom-bar{flex-wrap:wrap;gap:6px;padding:6px 8px 8px}.floating-controls-group{padding:3px 4px}.floating-icon-btn{width:26px;height:26px}.floating-icon-btn svg{width:15px;height:15px}.thumbnail-strip{bottom:56px;padding:4px 6px;gap:4px}.thumbnail-item img{width:32px;height:42px}.thumbnail-page-num{font-size:.55rem}}@media (prefers-reduced-motion: reduce){.floating-top-bar,.floating-bottom-bar,.thumbnail-strip,.pdf-canvas,.search-overlay{transition:none}.thumbnail-item:hover img{transform:none}}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:color-mix(in srgb,var(--ink) 45%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;animation:settingsFadeIn .2s ease;overscroll-behavior:contain}@keyframes settingsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes settingsSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes settingsFadeInScale{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.settings-modal{width:100%;max-height:85vh;max-height:85dvh;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #0003;display:flex;flex-direction:column;animation:settingsSlideUp .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.settings-grab-handle{width:36px;height:4px;border-radius:2px;background:var(--line);margin:8px auto 4px;flex-shrink:0}.settings-header{position:relative;display:flex;align-items:center;justify-content:center;padding:12px 20px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.settings-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--ink);text-align:center;padding:0 72px}.settings-close-btn{position:absolute;right:20px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:var(--surface-dim);color:var(--muted);cursor:pointer;transition:background .2s ease,color .2s ease}.settings-close-btn:hover{background:var(--line);color:var(--ink)}.settings-close-btn svg{width:18px;height:18px}.settings-back-btn{position:absolute;left:20px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;padding:6px 10px;border:none;background:transparent;color:var(--accent);font-size:.88rem;font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:background .2s ease}.settings-back-btn:hover{background:var(--accent-soft)}.settings-back-btn svg{width:18px;height:18px}.settings-body{flex:1;overflow-y:auto;padding:8px 0 24px;overscroll-behavior:contain}.settings-home{display:flex;flex-direction:column;padding:8px 16px}.settings-item{display:flex;align-items:center;gap:14px;padding:14px 12px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease;text-align:left;width:100%}.settings-item:hover{background:var(--surface-dim)}.settings-item:active{background:var(--line)}.settings-item-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;flex-shrink:0}.settings-item-icon svg{width:20px;height:20px}.settings-icon-security{background:#6366f11f;color:var(--accent)}.settings-icon-users{background:#10b9811f;color:var(--success)}.settings-icon-path{background:#f59e0b1f;color:#f59e0b}.settings-icon-mode{background:#3b82f61f;color:#3b82f6}.settings-icon-appearance{background:#ec48991f;color:#ec4899}.settings-icon-music{background:#6366f11f;color:#6366f1}.settings-item-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.settings-item-title{font-size:.95rem;font-weight:600;color:var(--ink)}.settings-item-desc{font-size:.78rem;color:var(--muted)}.settings-item-arrow{width:18px;height:18px;color:var(--muted-soft);flex-shrink:0}.settings-subpage{padding:16px 20px;display:flex;flex-direction:column;gap:16px}.settings-section-title{font-family:var(--font-display);font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.settings-toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;cursor:pointer}.settings-toggle input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.settings-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:24px;background:var(--line);transition:background .2s ease}@media (prefers-reduced-motion: reduce){.settings-toggle-slider,.settings-toggle-slider:before{transition:none}}.settings-toggle-slider:before{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px #00000026;transition:transform .2s ease}.settings-toggle input:checked+.settings-toggle-slider{background:var(--accent)}.settings-toggle input:checked+.settings-toggle-slider:before{transform:translate(20px)}.settings-toggle input:disabled+.settings-toggle-slider{opacity:.6;cursor:not-allowed}.settings-form{display:flex;flex-direction:column;gap:14px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field span{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.settings-field input,.settings-select{padding:12px 14px;border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface-dim);font-size:.92rem;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease}.settings-field input:focus,.settings-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none;background:var(--surface)}.settings-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px}.settings-submit-btn{padding:12px 16px;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:.92rem;font-weight:600;cursor:pointer;transition:background .2s ease,transform .1s ease;margin-top:4px}.settings-submit-btn:hover:not(:disabled){background:#5558e0}.settings-submit-btn:active:not(:disabled){transform:scale(.98)}.settings-submit-btn:disabled{opacity:.6;cursor:not-allowed}.mode-options{display:flex;flex-direction:column;gap:12px}.mode-option{position:relative;text-align:left;padding:14px 16px;border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface-dim);color:var(--ink);cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .1s ease}.mode-option:hover:not(:disabled){border-color:var(--accent);background:var(--surface)}.mode-option:active:not(:disabled){transform:scale(.99)}.mode-option-active{border-color:var(--accent);background:#6366f114}.mode-option:disabled{opacity:.6;cursor:wait}.mode-option-title{font-size:.95rem;font-weight:700;margin-bottom:4px}.mode-option-desc{font-size:.78rem;color:var(--muted);line-height:1.35}.mode-option-badge{position:absolute;top:14px;right:14px;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--accent);color:#fff}.settings-mode-page{position:relative}.mode-options-restarting{pointer-events:none;opacity:.5}.mode-restarting-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:var(--radius-md);color:var(--ink);font-size:.9rem;font-weight:600;text-align:center;padding:20px}.mode-restarting-spinner{width:28px;height:28px;border:3px solid rgba(99,102,241,.25);border-top-color:var(--accent);border-radius:50%;animation:mode-spin .8s linear infinite}@keyframes mode-spin{to{transform:rotate(360deg)}}.settings-add-user-form{display:flex;flex-direction:column;gap:12px}.settings-error{padding:10px 14px;border-radius:var(--radius-md);background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--danger);font-size:.85rem;white-space:pre-wrap;word-break:break-word}.settings-success{padding:10px 14px;border-radius:var(--radius-md);background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:var(--success);font-size:.85rem}.settings-muted{color:var(--muted);font-size:.85rem}.settings-warn-banner{padding:10px 14px;border-radius:var(--radius-md);background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:#92400e;font-size:.85rem;line-height:1.5}.settings-info-banner{padding:10px 14px;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid rgba(99,102,241,.15);color:var(--ink-soft);font-size:.85rem;line-height:1.5}.settings-current-path{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:var(--radius-md);background:var(--surface-dim);border:1px solid var(--line)}.settings-background-preview{width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-dim);background-size:cover;background-position:center;overflow:hidden}.settings-background-preview-empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem}.settings-file-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.settings-file-label{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);border:1px dashed var(--line);background:var(--surface-dim);cursor:pointer;transition:border-color .2s ease,background .2s ease}.settings-file-label:hover{border-color:var(--accent);background:var(--surface)}.settings-file-button{flex-shrink:0;padding:6px 12px;border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);border:1px solid var(--line);font-size:.85rem;font-weight:500}.settings-file-name{color:var(--ink-soft);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-file-list{list-style:none;margin:8px 0 0;padding:8px 10px;display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;border-radius:var(--radius-md);background:var(--surface-dim);border:1px solid var(--line)}.settings-file-list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.82rem}.settings-file-list-name{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.settings-file-list-size{color:var(--muted);flex-shrink:0;font-variant-numeric:tabular-nums}.settings-appearance-actions{display:flex;gap:10px;flex-wrap:wrap}.settings-appearance-actions .settings-submit-btn{flex:1 1 auto;min-width:120px}.settings-remove-bg-btn{flex:1 1 auto;min-width:120px;padding:10px 16px;border-radius:var(--radius-md);border:1px solid var(--danger);background:transparent;color:var(--danger);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s ease,color .2s ease}.settings-remove-bg-btn:hover:not(:disabled){background:var(--danger-soft)}.settings-remove-bg-btn:disabled{opacity:.6;cursor:not-allowed}.settings-track-list{display:flex;flex-direction:column;gap:8px}.settings-track-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line)}.settings-track-number{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:700;flex-shrink:0}.settings-track-title{flex:1;min-width:0;font-size:.9rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-track-remove{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:var(--danger-soft);color:var(--danger);font-size:1rem;line-height:1;cursor:pointer;flex-shrink:0;transition:background .2s ease}.settings-track-remove:hover:not(:disabled){background:var(--danger);color:#fff}.settings-track-remove:disabled{opacity:.5;cursor:not-allowed}.settings-track-empty{padding:16px;border-radius:var(--radius-md);background:var(--surface);border:1px dashed var(--line);color:var(--muted);font-size:.85rem;text-align:center}.settings-current-label{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.settings-current-value{font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:.85rem;color:var(--ink);word-break:break-all;line-height:1.5}.user-card-list{display:flex;flex-direction:column;gap:8px}.user-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.user-card:hover{border-color:var(--muted-soft);box-shadow:var(--shadow-xs)}.user-card-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,#818CF8 100%);color:#fff;font-size:1rem;font-weight:700;flex-shrink:0}.user-card-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.user-card-name-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-card-name-line strong{font-size:.9rem;color:var(--ink)}.user-role-badge{display:inline-flex;padding:2px 8px;border-radius:var(--radius-pill);font-size:.68rem;font-weight:600}.user-role-badge.role-admin{background:var(--accent-soft);color:var(--accent)}.user-role-badge.role-user{background:var(--surface-dim);color:var(--muted);border:1px solid var(--line)}.user-card-created{font-size:.72rem;color:var(--muted)}.user-card-actions{display:flex;gap:4px;flex-shrink:0}.user-card-icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:var(--radius-md);background:var(--surface-dim);color:var(--muted);cursor:pointer;transition:background .2s ease,color .2s ease}.user-card-icon-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.user-card-icon-btn:disabled{opacity:.35;cursor:not-allowed}.user-card-delete-btn:hover:not(:disabled){background:#ef44441a;color:var(--danger)}.user-card-icon-btn svg{width:17px;height:17px}@media (min-width: 641px){.settings-overlay{align-items:center;padding:20px}.settings-modal{width:min(480px,100%);max-height:min(80vh,640px);max-height:min(80dvh,640px);border-radius:20px;box-shadow:0 24px 64px #00000040,0 4px 12px #0000001a;animation:settingsFadeInScale .25s cubic-bezier(.4,0,.2,1)}.settings-grab-handle{display:none}.settings-header{padding:20px 24px 16px}.settings-title{font-size:1.2rem}}@media (prefers-reduced-motion: reduce){.settings-modal,.settings-overlay,.auth-overlay{animation:none}}@media (max-width: 960px){.results-navbar-inner{flex-wrap:wrap}.results-navbar-search{max-width:none;order:3;flex-basis:100%}}@media (max-width: 640px){.home-center{padding:80px 16px 32px}.home-brand h1{font-size:clamp(1.6rem,6vw,2.5rem)}.home-search-input{height:48px;font-size:.95rem;border-radius:24px;padding-left:46px}.home-search .search-icon-svg{left:16px;width:18px;height:18px}.recent-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.file-card{padding:12px}.file-card-name{font-size:.84rem}.results-navbar{padding:10px 14px}.results-list{padding:16px 14px 32px}.result-item{padding:12px 14px}.result-item-name{font-size:.95rem}.ghost-button{padding:8px 12px;font-size:.82rem}.primary-action.small{padding:8px 14px;font-size:.82rem}.first-login-banner{flex-direction:column;align-items:flex-start}.auth-brand{margin-bottom:20px}.auth-logo{width:56px;height:56px;margin-bottom:16px}.auth-title{font-size:1.7rem;margin-bottom:8px}.auth-card{padding:22px 20px}.auth-card-header{text-align:center;margin-bottom:20px}.auth-card-header h2{font-size:1.2rem}.field input,.primary-action{padding:14px;font-size:1rem}.home-topbar{padding:10px 14px}.recent-header{flex-direction:column;align-items:flex-start;gap:12px}.recent-header-actions{width:100%;justify-content:flex-end}.user-pill-name{max-width:80px;font-size:.82rem}.user-pill-menu{right:0;left:auto;min-width:170px}.sort-toggle{width:100%;justify-content:center}.results-header{flex-direction:column;align-items:stretch}}@media (max-width: 380px){.home-search-input{height:44px;font-size:.9rem}.recent-grid{grid-template-columns:1fr}.results-navbar-inner{gap:8px}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--muted-soft);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.music-player{position:fixed;right:16px;bottom:16px;z-index:100;width:220px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 30px #0000001f;overflow:hidden;transition:width .2s ease,box-shadow .2s ease}.music-player-expanded{width:260px;box-shadow:0 14px 40px #00000029}.music-player-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-dim);border-bottom:1px solid var(--line)}.music-player-title{font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.music-player-toggle{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:var(--surface);color:var(--ink-soft);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.music-player-toggle:hover{background:var(--accent-soft);color:var(--accent)}.music-player-body{padding:12px;display:flex;flex-direction:column;gap:10px}.music-player-controls{display:flex;align-items:center;justify-content:center;gap:14px}.music-player-prev,.music-player-next,.music-player-repeat{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--ink-soft);line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.music-player-prev .music-icon-svg,.music-player-next .music-icon-svg,.music-player-repeat .music-icon-svg{width:15px;height:15px}.music-player-prev:hover,.music-player-next:hover,.music-player-repeat:hover{background:var(--accent-soft);color:var(--accent)}.music-player-active{color:var(--accent);background:var(--accent-soft)}.music-player-play{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:var(--accent);color:#fff;line-height:1;cursor:pointer;transition:transform .15s ease,background .2s ease}.music-player-play .music-icon-svg{width:18px;height:18px}.music-player-play:hover{background:var(--accent-hover);transform:scale(1.05)}.music-player-track{font-size:.85rem;font-weight:600;color:var(--ink);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-player-volume{display:flex;align-items:center;gap:8px}.music-player-volume span{font-size:.75rem;color:var(--muted);flex-shrink:0}.music-player-volume input[type=range]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--line);outline:none}.music-player-volume input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer}.music-player-volume input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}.music-player-volume input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.music-player-tracklist{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;padding-top:6px;border-top:1px solid var(--line)}.music-player-track-item{width:100%;text-align:left;padding:8px 10px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--ink-soft);font-size:.8rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background .2s ease,color .2s ease}.music-player-track-item:hover{background:var(--surface-dim);color:var(--ink)}.music-player-track-active{background:var(--accent-soft);color:var(--accent);font-weight:600}@media (max-width: 480px){.music-player{right:12px;bottom:12px;width:190px}.music-player-expanded{width:220px}}.home-music-bar{position:absolute;top:0;left:0;z-index:10;display:flex;align-items:center;gap:14px;padding:16px 20px;max-width:calc(100vw - 200px)}.home-music-vinyl{position:relative;width:56px;height:56px;flex-shrink:0;border-radius:50%;background:radial-gradient(circle at center,transparent 18%,rgba(255,255,255,.04) 19%,transparent 20%),radial-gradient(circle at center,transparent 28%,rgba(255,255,255,.04) 29%,transparent 30%),radial-gradient(circle at center,transparent 38%,rgba(255,255,255,.04) 39%,transparent 40%),radial-gradient(circle at center,transparent 45%,rgba(255,255,255,.05) 46%,transparent 47%),repeating-radial-gradient(circle at center,#0a0a0a,#0a0a0a,#161616,#161616 3px),#000;box-shadow:0 6px 18px #00000059,inset 0 0 0 1px #ffffff0f;overflow:hidden;transition:transform .3s ease}.home-music-vinyl.vinyl-spinning{animation:vinyl-spin 6s linear infinite}@media (prefers-reduced-motion: reduce){.home-music-vinyl.vinyl-spinning{animation:none}}@keyframes vinyl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vinyl-disc{position:absolute;top:22%;right:22%;bottom:22%;left:22%;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,var(--accent),var(--accent-hover, #4F46E5));box-shadow:inset 0 0 0 1px #ffffff1a}.vinyl-cover{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.vinyl-default-icon{color:#fff;font-size:1rem;font-weight:700;line-height:1}.vinyl-center-hole{position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background:var(--bg);transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #0006;z-index:2}.home-music-info{display:flex;align-items:center;width:180px;--title-visible: 148px;flex-shrink:0;padding:6px 14px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);overflow:hidden}.home-music-title{font-size:.82rem;font-weight:600;color:var(--ink);overflow:hidden;white-space:nowrap;display:block;width:100%}.home-music-title-text{display:inline-block;padding-right:32px}.home-music-title-scroll .home-music-title-text{animation:music-title-marquee 9s linear infinite}@media (prefers-reduced-motion: reduce){.home-music-title-scroll .home-music-title-text{animation:none}}@keyframes music-title-marquee{0%{transform:translate(0)}to{transform:translate(calc(-100% + var(--title-visible, 148px)))}}.music-icon-svg{width:16px;height:16px;flex-shrink:0}.home-music-controls{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 10px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.music-control-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:var(--surface-dim);color:var(--ink-soft);line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease,transform .15s ease}.music-control-btn:hover{background:var(--accent-soft);color:var(--accent)}.music-control-btn:active{transform:scale(.94)}.music-control-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.music-control-btn:disabled:hover{background:var(--surface-dim);color:var(--ink-soft)}.music-play-btn{width:42px;height:42px;background:var(--accent);color:#fff;box-shadow:0 4px 14px var(--accent-glow)}.music-play-btn .music-icon-svg{width:18px;height:18px}.music-play-btn:hover{background:var(--accent-hover, #4F46E5);color:#fff}.music-play-btn:disabled{background:var(--muted-soft);box-shadow:none}.music-play-btn:disabled:hover{background:var(--muted-soft);color:#fff}.music-control-active{color:var(--accent);background:var(--accent-soft)}.music-volume-wrap{position:relative;display:flex;align-items:center}.music-volume-popover{position:absolute;top:calc(100% + 12px);right:0;z-index:30;display:flex;align-items:center;gap:8px;width:220px;padding:10px 12px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .12));animation:volume-popover-in .18s ease}@keyframes volume-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.music-volume-popover{animation:none}}.music-volume-mute-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;border:none;background:transparent;color:var(--ink-soft);cursor:pointer;transition:background .2s ease,color .2s ease}.music-volume-mute-btn:hover{background:var(--accent-soft);color:var(--accent)}.music-volume-mute-btn .music-icon-svg{width:16px;height:16px}.music-volume-value{flex-shrink:0;min-width:34px;text-align:right;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--muted)}.music-volume-popover input[type=range]{flex:1;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--line);outline:none;cursor:pointer}.music-volume-popover input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer}.music-volume-popover input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}.music-volume-popover input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.music-volume-popover input[type=range]:focus-visible,.music-volume-mute-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 720px){.home-music-bar{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;max-width:calc(100vw - 32px)}.home-music-info{width:100%;max-width:260px;--title-visible: 228px}}@media (max-width: 480px){.home-music-bar{padding:10px 12px}.home-music-info{display:none}}
