:root{--bg: #0f172a;--surface: #1e293b;--surface2: #273549;--border: #334155;--accent: #3b82f6;--accent-hover: #2563eb;--text: #f8fafc;--text-muted: #94a3b8;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--radius: 8px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.6;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;border-radius:var(--radius);padding:8px 16px;font-size:14px;font-family:var(--font);transition:background .15s}button:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-full{width:100%}.btn-sm{padding:5px 12px;font-size:13px}input,select,textarea{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:8px 12px;font-size:14px;font-family:var(--font);outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:70px}.app-shell{display:flex;flex-direction:column;min-height:100vh}.nav{position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--border);padding:0 16px;height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-brand{font-size:18px;font-weight:700;color:var(--text);letter-spacing:-.3px}.nav-brand span{color:var(--accent)}.nav-links{display:flex;gap:4px;align-items:center}.nav-link{color:var(--text-muted);padding:6px 10px;border-radius:var(--radius);font-size:14px;font-weight:500;transition:color .15s,background .15s}.nav-link:hover,.nav-link.active{color:var(--text);background:var(--surface2);text-decoration:none}.nav-right{display:flex;align-items:center;gap:8px}.page{flex:1;max-width:720px;margin:0 auto;padding:24px 16px;width:100%}.page-header{margin-bottom:20px}.page-header h1{font-size:22px;font-weight:700}.page-header p{color:var(--text-muted);font-size:14px;margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.card-link{display:block;text-decoration:none;color:inherit}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:500;color:var(--text-muted)}.hint{font-size:12px;color:var(--text-muted);font-weight:400}.alert{border-radius:var(--radius);padding:10px 14px;font-size:13px;margin-bottom:14px}.alert-success{background:#065f4630;color:#6ee7b7;border:1px solid #065f46}.alert-error{background:#7f1d1d30;color:#fca5a5;border:1px solid #7f1d1d}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}.text-muted{color:var(--text-muted);font-size:13px}.mt-16{margin-top:16px}.loading-block{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:14px;padding:8px 0}.spinner{display:flex;justify-content:center;align-items:center;padding:48px;color:var(--text-muted)}.spinner-icon{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;margin-right:6px;vertical-align:-2px;opacity:.8}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:48px 16px;color:var(--text-muted)}.empty-state p{margin-bottom:16px}.hero{text-align:center;padding:40px 16px 24px}.hero h1{font-size:28px;font-weight:700;margin-bottom:8px}.hero p{color:var(--text-muted);font-size:15px;max-width:480px;margin:0 auto 24px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:40px 20px;text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.drag-active{border-color:var(--accent);background:var(--surface)}.dropzone input[type=file]{display:none}.doc-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.doc-row .doc-name{font-weight:600}.doc-row .doc-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.doc-row-actions{display:flex;gap:6px;flex-shrink:0}.editor-shell{display:flex;flex-direction:column;height:calc(100vh - 56px)}.toolbar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.toolbar-group{display:flex;gap:4px;align-items:center;padding-right:10px;margin-right:10px;border-right:1px solid var(--border)}.toolbar-group:last-child{border-right:none}.toolbar-tool{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);padding:6px 10px;font-size:13px;display:flex;align-items:center;gap:4px}.toolbar-tool:hover{color:var(--text)}.toolbar-tool.active{background:var(--accent);border-color:var(--accent);color:#fff}.toolbar-color{width:26px;height:26px;padding:0;border-radius:6px;border:2px solid var(--border);cursor:pointer}.toolbar-color.active{border-color:var(--text)}.toolbar-spacer{flex:1}.editor-body{flex:1;overflow:auto;background:#0b1220;padding:24px;display:flex;flex-direction:column;align-items:center;gap:16px}.pdf-page-wrap{position:relative;box-shadow:0 4px 24px #0006;background:#fff}.pdf-page-wrap canvas{display:block}.annotation-overlay{position:absolute;top:0;right:0;bottom:0;left:0}.annotation-overlay.tool-active{cursor:crosshair}.ann-text{position:absolute;font-family:var(--font);white-space:pre-wrap;cursor:move;min-width:20px;color:#1d4ed8}.ann-text textarea{background:#ffffffe6;border:1px dashed var(--accent);color:#0f172a;padding:2px 4px;font-family:var(--font);width:220px}.ann-markup{position:absolute;pointer-events:none}.ann-markup.highlight{background:currentColor;opacity:.35}.ann-markup.underline{border-bottom:2px solid currentColor}.ann-shape{position:absolute;pointer-events:none;border-style:solid}.ann-shape.ellipse{border-radius:50%}.ann-comment-marker{position:absolute;width:22px;height:22px;border-radius:50% 50% 50% 0;background:var(--warning);color:#1e293b;font-size:12px;display:flex;align-items:center;justify-content:center;transform:translate(-4px,-18px) rotate(45deg);cursor:pointer;box-shadow:0 1px 4px #0006}.ann-comment-marker span{transform:rotate(-45deg)}.sticky-popover{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px;width:200px;box-shadow:0 8px 24px #00000080;z-index:20}.sticky-popover textarea{font-size:13px;margin-bottom:8px}.sticky-popover-actions{display:flex;justify-content:flex-end;gap:6px}.editor-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--surface);border-top:1px solid var(--border);font-size:13px;color:var(--text-muted)}
