:root{--bg:#f6f7f9;--panel:#fff;--border:#e3e6ea;--text:#1c2024;--muted:#6b7280;--accent:#2563eb;--accent-hover:#1d4ed8;--danger:#dc2626;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:880px;margin:0 auto;padding:32px 20px 64px}.topbar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px}.brand{font-size:20px;font-weight:700;color:var(--text)}.brand:hover{text-decoration:none}h1{font-size:24px;margin:0 0 4px}h2{font-size:16px;margin:28px 0 12px;text-transform:uppercase;letter-spacing:.04em}.muted,h2{color:var(--muted)}.muted{font-size:14px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.row{display:flex;gap:10px;align-items:center}input[type=file],input[type=password],input[type=text]{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;width:100%}.btn,button{font:inherit;font-weight:600;cursor:pointer;padding:10px 16px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;white-space:nowrap}.btn:hover,button:hover{background:var(--accent-hover);text-decoration:none}.btn-secondary{background:#fff;color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:#f3f4f6}.btn-danger{background:#fff;color:var(--danger);border-color:var(--border);padding:6px 10px;font-size:13px}.btn-danger:hover{background:#fef2f2;border-color:var(--danger)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.item{justify-content:space-between;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.item,.item-main{display:flex;align-items:center;gap:12px}.item-main{min-width:0}.doc-group{margin-top:16px}.group-heading{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin:0 0 8px}.group-heading .muted{font-weight:500}.doc-row{transition:opacity .12s ease,box-shadow .12s ease}.doc-row[draggable=true]{cursor:-webkit-grab;cursor:grab}.doc-row.dragging{opacity:.5}.doc-row.drag-over{box-shadow:0 0 0 2px var(--accent)}.drag-handle{color:var(--muted);font-size:16px;line-height:1;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.badge{font-size:11px;font-weight:700;text-transform:uppercase;padding:3px 7px;border-radius:5px;background:#eef2ff;color:var(--accent);flex-shrink:0}.badge.pdf{background:#fef2f2;color:var(--danger)}.item-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sharebox{display:flex;gap:8px;align-items:center;margin-top:8px}.sharebox code{flex:1 1;background:#f3f4f6;padding:10px 12px;border-radius:8px;font-size:13px;overflow-x:auto;white-space:nowrap}.empty{text-align:center;color:var(--muted);padding:32px;border:1px dashed var(--border);border-radius:var(--radius)}.viewer-shell{display:grid;grid-template-columns:300px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--border);background:var(--panel);padding:24px 16px;overflow-y:auto}.sidebar-head{gap:2px;margin:0 4px 20px}.doc-nav,.sidebar-head{display:flex;flex-direction:column}.doc-nav{gap:18px}.nav-empty{padding:0 4px}.nav-group-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 4px 6px}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;color:var(--text)}.nav-item:hover{background:#f3f4f6;text-decoration:none}.nav-item.active{background:#eef2ff}.nav-item.active .nav-item-name{color:var(--accent);font-weight:600}.nav-item-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-main{padding:32px 36px 64px;overflow-y:auto;width:100%;max-width:920px}.viewer-empty{color:var(--muted);text-align:center;padding:80px 20px}.viewer-doc-head{display:flex;align-items:center;gap:10px;margin-bottom:20px}.viewer-doc-head h1{margin:0}.pdfv{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#f1f3f5}.pdfv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:1}.pdfv-pages{font-size:13px;color:var(--muted);font-weight:600}.pdfv-controls{display:flex;align-items:center;gap:6px}.pdfv-btn{font:inherit;font-weight:600;cursor:pointer;padding:4px 10px;min-width:32px;border-radius:6px;border:1px solid var(--border);background:#fff;color:var(--text);line-height:1.4}.pdfv-btn:hover:not(:disabled){background:#f3f4f6;text-decoration:none}.pdfv-btn:disabled{opacity:.4;cursor:default}.pdfv-btn-text,.pdfv-zoom{font-size:13px}.pdfv-zoom{color:var(--muted);min-width:44px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pdfv-scroll{overflow-y:auto;max-height:calc(100vh - 200px);padding:16px;display:flex;flex-direction:column;align-items:center;gap:16px}.pdfv-page{box-shadow:0 1px 4px rgba(0,0,0,.12);background:#fff}.pdfv-page .react-pdf__Page__canvas{display:block}.pdfv-msg{color:var(--muted);padding:48px 16px;text-align:center}@media (max-width:720px){.viewer-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.viewer-main{padding:24px 20px 48px}.pdfv-scroll{max-height:calc(100vh - 220px);padding:10px}}.markdown{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px}.markdown h1,.markdown h2,.markdown h3{color:var(--text);text-transform:none;letter-spacing:0}.markdown pre{background:#f3f4f6;padding:14px;border-radius:8px;overflow-x:auto}.markdown code{background:#f3f4f6;padding:2px 5px;border-radius:4px;font-size:.9em}.markdown pre code{background:none;padding:0}.markdown table{border-collapse:collapse;width:100%}.markdown td,.markdown th{border:1px solid var(--border);padding:8px 12px;text-align:left}.markdown img{max-width:100%}.markdown blockquote{border-left:3px solid var(--border);margin:0;padding-left:16px;color:var(--muted)}