:root{--bg: #0c0c0c;--bg-card: #131313;--bg-hover: #1a1a1a;--border: #242424;--text: #e8e8e8;--text-muted: #888;--text-dim: #444;--accent: #4f9cf9;--accent-hover: #6faeff;--danger: #f87171}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{max-width:780px;margin:0 auto;padding:24px 20px 60px}.login-screen{max-width:320px;margin:15vh auto 0;padding:0 20px;text-align:center}.login-screen h1{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;font-weight:500;letter-spacing:-.02em;color:#fff;margin-bottom:24px}.login-screen form{display:flex;flex-direction:column;gap:10px}.login-note{font-size:14px;line-height:1.7;color:var(--text-muted);margin:0 0 20px}.login-note strong{color:var(--text);font-weight:500}.login-fallback{margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}input:not([type=file]),select,textarea{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;background:var(--bg-card);color:var(--text)}input::placeholder{color:var(--text-dim)}select option{background:var(--bg-card);color:var(--text)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent)}input[type=file]{color:var(--text-muted);font-size:13px}button{padding:10px 16px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;font-family:inherit;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{background:#2a2a2a;color:var(--text-dim);cursor:default}button.secondary{background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border)}button.secondary:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}button.link{background:none;border:none;color:var(--text-dim);font-size:13px;font-weight:400;padding:16px 0 0;text-decoration:underline}button.link:hover{background:none;color:var(--text-muted)}.error{color:var(--danger);font-size:13px;margin-top:12px}.tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border)}.tabs button{background:none;color:var(--text-muted);border-radius:0;padding:10px 16px;font-weight:500;border-bottom:2px solid transparent}.tabs button:hover:not(:disabled){background:none;color:var(--text)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.tabs button.active:hover{color:var(--accent)}.session-row{padding:14px 0;border-bottom:1px solid var(--border);cursor:pointer;display:flex;justify-content:space-between;align-items:baseline}.session-row:hover{background:var(--bg-hover)}.session-row .date{font-weight:500}.session-row .count{color:var(--text-muted);font-size:13px}.back-link{background:none;color:var(--accent);padding:0;font-size:14px;margin-bottom:16px}.back-link:hover{background:none;color:var(--accent-hover)}.eln-buttons{display:flex;gap:8px;margin-bottom:20px}.event-card{border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:12px;background:var(--bg-card)}.event-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.event-action{font-weight:600;font-size:15px}.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.badge-confirmed{background:#4ade801f;color:#4ade80}.badge-unconfirmed{background:#fbbf241f;color:#fbbf24}.badge-edited{background:#4f9cf91f;color:var(--accent)}.event-fields{font-size:13px;color:var(--text-muted);margin-bottom:8px}.citation{font-size:13px;font-style:italic;color:var(--text-muted);border-left:2px solid var(--border);padding-left:10px;margin:4px 0}.event-actions{display:flex;gap:8px;margin-top:10px}.event-actions button{padding:6px 12px;font-size:13px}.event-actions button.destructive{background:#f871711f;color:var(--danger)}.event-actions button.destructive:hover:not(:disabled){background:#f8717133}.event-edit-form{display:flex;flex-direction:column;gap:8px;margin:6px 0}.event-edit-form input[type=text]{padding:7px 10px;font-size:13px}.upload-form{display:flex;gap:10px;align-items:center;margin-bottom:24px}.doc-row{padding:12px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;gap:12px}.doc-status{font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap}.doc-status-uploaded,.doc-status-processing{background:#fbbf241f;color:#fbbf24}.doc-status-processed{background:#4ade801f;color:#4ade80}.doc-status-failed{background:#f871711f;color:var(--danger)}.doc-error{font-size:12px;color:var(--danger);margin-top:2px}.empty{color:var(--text-muted);padding:20px 0}.eln-note{font-size:13px;color:var(--text-muted);background:#fbbf2414;border-left:2px solid #fbbf24;padding:10px 12px;border-radius:0 6px 6px 0;margin-bottom:16px;line-height:1.6}.eln-manual textarea{width:100%;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;margin-bottom:16px;resize:vertical}.diagram{overflow-x:auto;padding:8px 0 16px}.diagram svg{max-width:100%;height:auto}.diagram-source{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;color:var(--text-muted)}
