:root{--bg:#f4f5f7;--fg:#1a1a2e;--panel:#fff;--border:#e2e8f0;--accent:#2563eb;--muted:#64748b;--danger:#ef4444}.dark{--bg:#0f1117;--fg:#e2e8f0;--panel:#1a1d27;--border:#2d3348;--accent:#3b82f6;--muted:#94a3b8}*{box-sizing:border-box;margin:0;padding:0}html,body,#root,.app-root{background:var(--bg);height:100%;color:var(--fg);font-family:system-ui,-apple-system,sans-serif}button{color:var(--fg)}button:disabled{opacity:.5;cursor:not-allowed}.dashboard{flex-direction:column;height:100%;display:flex}.header{border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex}.logo{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.logo-img{border-radius:8px;width:36px;height:36px;display:block}.logo h1{font-size:16px}.subtitle{color:var(--muted);font-size:11px}.theme-btn{cursor:pointer;background:0 0;border:none;padding:8px;font-size:18px}.main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:40px 24px;overflow:auto}.dropzone{border:2px dashed var(--border);text-align:center;background:var(--panel);cursor:pointer;border-radius:16px;padding:48px;transition:all .2s;position:relative}.dropzone.dragging{border-color:var(--accent);background:#eff6ff;transform:scale(1.01)}.dark .dropzone.dragging{background:#172554}.dropzone-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.dropzone .btn.secondary{z-index:1;position:relative}.drop-icon{margin-bottom:16px;font-size:48px}.dropzone h2{margin-bottom:8px;font-size:20px}.dropzone p{color:var(--muted);margin-bottom:24px;font-size:14px}.actions{justify-content:center;gap:12px;display:flex}.btn{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.secondary:hover{background:var(--border)}.btn.danger{color:var(--danger)}.features{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:48px;display:grid}.feature{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px}.feature h4{margin-bottom:8px}.feature p{color:var(--muted);font-size:13px}.recent{margin-top:32px}.doc-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin-top:12px;display:grid}.doc-card{border:1px solid var(--border);background:var(--panel);text-align:left;cursor:pointer;border-radius:12px;overflow:hidden}.doc-card:hover{border-color:var(--accent)}.thumb{aspect-ratio:3/4;color:#1a1a2e;background:#e5e7eb;justify-content:center;align-items:center;display:flex}.thumb img{object-fit:contain;width:100%;height:100%}.info{padding:10px}.info strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.info small{color:var(--muted);font-size:11px}.editor{flex-direction:column;height:100%;display:flex}.toolbar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:8px;height:48px;padding:0 12px;display:flex}.doc-name{margin-left:8px;font-size:14px;font-weight:500}.spacer{flex:1}.zoom{text-align:center;min-width:48px;font-size:12px}.btn-icon{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px}.btn-icon:hover{background:var(--border)}.workspace{flex:1;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;width:180px;display:flex;overflow:hidden}.tools{flex-direction:column;gap:6px;padding:12px;display:flex}.tools button,.tools .tool-button{text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:12px}.tools button:not(:disabled):hover,.tools .tool-button:hover{background:var(--border)}.tools button.danger{color:var(--danger)}.thumbs{flex:1;padding:8px;overflow-y:auto}.thumbs .thumb{cursor:pointer;aspect-ratio:3/4;background:#e5e7eb;border:2px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:100%;margin-bottom:8px;display:flex;overflow:hidden}.thumbs .thumb.active{border-color:var(--accent)}.thumbs .thumb img{object-fit:contain;pointer-events:none;width:100%;height:100%}.thumbs .thumb.drop-target{box-shadow:0 -4px 0 0 var(--accent)}.thumbs .thumb:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.annotation-toolbar{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:4px 6px;min-height:42px;padding:4px 12px;font-size:13px;display:flex}.annotation-toolbar .tool{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 10px;font-size:13px;line-height:1.4}.annotation-toolbar .tool:not(:disabled):not(.active):hover{background:var(--border)}.annotation-toolbar .tool.active{background:var(--accent);color:#fff}.annotation-toolbar .tool.danger{color:var(--danger);border-color:var(--border)}.annotation-toolbar .separator{background:var(--border);width:1px;height:22px;margin:0 6px}.annotation-toolbar .option{color:var(--muted);align-items:center;gap:6px;display:flex}.annotation-toolbar input[type=color]{cursor:pointer;border:1px solid var(--border);background:var(--panel);border-radius:4px;width:28px;height:24px;padding:1px}.annotation-toolbar select{color:var(--fg);border:1px solid var(--border);background:var(--panel);border-radius:4px;padding:3px 4px;font-size:13px}.canvas-area{background:#e5e7eb;flex:1;min-width:0;overflow:auto}.dark .canvas-area{background:#111827}.btn-icon.active{background:var(--accent);color:#fff}.processing-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.processing-card{background:var(--panel);text-align:center;border-radius:12px;min-width:220px;padding:24px 32px}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto 12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dialog-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--panel);width:100%;max-width:380px;color:var(--fg);border-radius:12px;flex-direction:column;gap:12px;padding:24px;display:flex}.dialog p{overflow-wrap:anywhere;font-size:14px}.dialog-error{color:var(--danger)}.dialog input{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:8px;padding:10px 12px;font-size:14px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}#error-ui{z-index:2000;color:#991b1b;background:#fef2f2;border-top:1px solid #fecaca;padding:12px 24px;display:block;position:fixed;bottom:0;left:0;right:0}#error-ui .reload{color:inherit;margin-left:8px}.save-state{opacity:.7;white-space:nowrap;margin-left:12px;font-size:12px}.btn-icon:disabled{opacity:.4;cursor:default}.site-footer{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:40px;padding-top:20px;font-size:13px;display:flex}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent)}.tool-note{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;max-width:520px;padding:4px 8px;font-size:12px}.dark .tool-note{color:#fcd34d;background:#422006;border-color:#78350f}
