:root{--bg: #eef1f6;--panel: #ffffff;--panel-2: #f8fafc;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--line-strong: #cbd5e1;--accent: #2563eb;--accent-2: #1d4ed8;--accent-soft: #eff6ff;--danger: #dc2626;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 10px 30px -12px rgba(15, 23, 42, .25);--radius: 12px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overflow:hidden}button,input{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}.muted{color:var(--muted)}.error{color:var(--danger);font-size:13px;margin:4px 0 0}.boot{height:100%;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted)}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}.spinner.small{width:18px;height:18px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);background:var(--panel)}.login-art{position:relative;overflow:hidden;padding:64px;display:flex;flex-direction:column;justify-content:center;color:#e2e8f0;background:radial-gradient(900px 500px at 15% 10%,rgba(37,99,235,.45),transparent 60%),radial-gradient(700px 500px at 90% 90%,rgba(14,165,233,.28),transparent 55%),linear-gradient(150deg,#0b1220,#111c33 55%,#0b1220)}.login-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(148,163,184,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);pointer-events:none}.brand-mark{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#3b82f6,#0ea5e9);box-shadow:0 10px 28px -8px #2563ebcc}.brand-mark.small{width:32px;height:32px;border-radius:9px}.login-art h1{position:relative;margin:22px 0 0;font-size:42px;letter-spacing:-.04em;font-weight:750}.login-art .tagline{position:relative;margin:14px 0 0;max-width:42ch;font-size:16px;line-height:1.6;color:#94a3b8}.login-art ul{position:relative;list-style:none;padding:0;margin:34px 0 0;display:grid;gap:11px}.login-art li{display:flex;align-items:center;gap:10px;color:#cbd5e1;font-size:13.5px}.login-art li:before{content:"";width:6px;height:6px;border-radius:50%;background:#38bdf8;box-shadow:0 0 0 4px #38bdf821}.login-art .fine{position:relative;margin-top:44px;font-size:11.5px;color:#64748b}.login-card{align-self:center;justify-self:center;width:min(380px,84%);display:flex;flex-direction:column;gap:14px;padding:34px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-md)}.login-card h2{margin:0;font-size:23px;letter-spacing:-.025em}.login-card>.muted{margin:-8px 0 6px;font-size:13px}.login-card label{display:grid;gap:6px;font-size:12.5px;font-weight:600;color:#334155}.login-card input{height:40px;border:1px solid var(--line-strong);border-radius:9px;padding:0 12px;outline:none;background:var(--panel);transition:border-color .15s,box-shadow .15s}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb21}.login-card .hint{margin:4px 0 0;font-size:11.5px;color:var(--muted);line-height:1.5}.app{height:100%;display:flex;flex-direction:column}.topbar{height:58px;flex:none;display:flex;align-items:center;gap:18px;padding:0 18px;background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand b{display:block;font-size:14.5px;letter-spacing:-.02em;line-height:1.1}.brand span{display:block;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:var(--muted)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;margin-left:4px;background:var(--accent-soft);color:var(--accent-2);border:1px solid #dbeafe;font-size:12.5px;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 13px;border:1px solid transparent;border-radius:9px;background:transparent;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .1s}.btn:hover{background:var(--panel-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn.primary:hover{background:var(--accent-2)}.btn.ghost{border-color:var(--line);color:#334155;background:var(--panel)}.btn.ghost:hover{border-color:var(--line-strong);background:var(--panel-2)}.btn:disabled{opacity:.55;cursor:default;transform:none}.workspace{flex:1;min-height:0;display:flex}.library{width:302px;flex:none;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-right:1px solid var(--line)}.lib-head{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 18px}.lib-head h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.lib-head span{font-size:11.5px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:1px 7px}.drop-lite{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 14px 10px;height:38px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--panel-2);color:#475569;font-size:12.5px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.drop-lite:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.empty{padding:18px;margin:0;text-align:center;font-size:12.5px;line-height:1.6;color:var(--muted)}.doc-list{flex:1;overflow:auto;padding:0 8px 12px}.doc-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px;margin-bottom:2px;border:1px solid transparent;border-radius:9px;background:transparent;text-align:left;cursor:pointer;transition:background .12s,border-color .12s}.doc-item:hover{background:var(--panel-2)}.doc-item.active{background:var(--accent-soft);border-color:#dbeafe}.doc-icon{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:8px;background:#f1f5f9;color:#64748b}.doc-item.active .doc-icon{background:#dbeafe;color:var(--accent)}.doc-meta{min-width:0;flex:1}.doc-meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;letter-spacing:-.01em}.doc-meta em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:10.5px;font-style:normal;color:var(--muted)}.doc-del{flex:none;width:24px;height:24px;display:none;place-items:center;border-radius:6px;color:var(--muted)}.doc-item:hover .doc-del{display:grid}.doc-del:hover{background:#fee2e2;color:var(--danger)}.stage{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(1200px 600px at 70% -10%,rgba(37,99,235,.08),transparent 60%),var(--bg)}.welcome{height:100%;display:grid;place-items:center;padding:30px;overflow:auto}.welcome-inner{width:min(620px,100%);text-align:center}.welcome-icon{width:64px;height:64px;margin:0 auto 18px;display:grid;place-items:center;border-radius:18px;color:var(--accent);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-md)}.welcome h1{margin:0;font-size:26px;letter-spacing:-.03em}.welcome p{margin:8px 0 20px;color:var(--muted);font-size:13.5px}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:38px;text-align:left}.feature-row div{padding:14px;border:1px solid var(--line);border-radius:11px;background:#ffffffb3}.feature-row b{display:block;font-size:12.5px;margin-bottom:3px}.feature-row span{display:block;font-size:11.5px;line-height:1.45;color:var(--muted)}.drop-overlay{position:absolute;top:14px;right:14px;bottom:14px;left:14px;z-index:20;display:grid;place-items:center;border:2px dashed var(--accent);border-radius:16px;background:#eff6ffdb;color:var(--accent-2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drop-overlay div{display:grid;justify-items:center;gap:8px}.drop-overlay p{margin:0;font-size:14px;font-weight:700}.viewer{position:relative;height:100%;display:flex;flex-direction:column;min-height:0}.viewer-toolbar{height:48px;flex:none;display:flex;align-items:center;gap:14px;padding:0 12px;background:#ffffffe6;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.viewer-toolbar .group{display:flex;align-items:center;gap:4px}.viewer-toolbar .group.right{margin-left:auto}.tool{height:30px;min-width:30px;display:inline-flex;align-items:center;justify-content:center;padding:0 7px;border:1px solid transparent;border-radius:7px;background:transparent;color:#334155;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.tool:hover{background:var(--panel-2);border-color:var(--line)}.tool:disabled{opacity:.4;cursor:default}.tool.wide{padding:0 10px}a.tool{color:#334155}.page-box{display:flex;align-items:center;gap:5px;padding:0 6px;height:30px;border:1px solid var(--line);border-radius:7px;background:var(--panel);font-size:12px;color:var(--muted)}.page-box input{width:38px;border:0;outline:none;background:transparent;text-align:right;font-size:12.5px;font-weight:600;color:var(--ink);-moz-appearance:textfield}.page-box input::-webkit-outer-spin-button,.page-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.zoom{min-width:46px;text-align:center;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.viewport{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable}.page-wrap{position:relative;display:grid;place-items:center;padding:28px;min-height:100%}.page{display:block;max-width:none;background:#fff;border-radius:2px;box-shadow:0 0 0 1px #0f172a0f,0 18px 44px -18px #0f172a61}.render-loading{position:absolute;top:28px;right:28px;bottom:28px;left:28px;display:grid;place-content:center;justify-items:center;gap:10px;border-radius:3px;background:#ffffff9e;color:var(--muted);font-size:12px;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.render-error{position:absolute;top:28px;right:28px;bottom:28px;left:28px;display:grid;place-items:center;border-radius:3px;background:#ffffffe6;color:var(--danger);font-size:13px}.statusbar{height:28px;flex:none;display:flex;align-items:center;gap:16px;padding:0 14px;background:var(--panel);border-top:1px solid var(--line);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.statusbar .grow{flex:1}@media(max-width:860px){.login-wrap{grid-template-columns:1fr}.login-art{display:none}.library{width:248px}.feature-row{grid-template-columns:1fr}}@media(max-width:640px){.library{display:none}.topbar{padding:0 12px}.top-actions .btn span{display:none}}.findbar{position:absolute;top:58px;right:18px;z-index:12;display:flex;align-items:center;gap:5px;height:40px;padding:0 7px 0 10px;border:1px solid var(--line-strong);border-radius:10px;background:#fffffff7;box-shadow:0 12px 34px -14px #0f172a66;color:var(--muted)}.findbar input{width:210px;height:28px;border:0;outline:none;padding:0 4px;background:transparent;font-size:12.5px;color:var(--ink)}.findbar .match-count{min-width:48px;text-align:center;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
