@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* ── DARK THEME (default) ── */
:root,[data-theme="dark"]{
  --bg:#0f1117;--surface:#181c27;--surface2:#1f2535;
  --border:#2a3047;--accent:#5b8dee;--accent-dim:#1e2d52;
  --text:#e2e8f0;--text-muted:#7a8599;--text-dim:#4a556b;
  --tag-bg:#1a2540;--folder-active:#1e2d52;
  --highlight:#3d5a99;--code-bg:#131720;
  --sql:#f59e0b;--danger:#f87171;--danger-dim:#3d1515;--success:#4ade80;
  --search-bg:#0f1117;--search-text:#e2e8f0;--search-border:#5b8dee;
  --search-card:#181c27;--search-card-border:#2a3047;--search-muted:#7a8599;
}

/* ── LIGHT THEME ── */
[data-theme="light"]{
  --bg:#f2f3f7;--surface:#ffffff;--surface2:#e8eaf2;
  --border:#d4d8e8;--accent:#3b6fe0;--accent-dim:#dde8ff;
  --text:#1a1d2e;--text-muted:#5a6380;--text-dim:#9099b5;
  --tag-bg:#eef0f8;--folder-active:#dde8ff;
  --highlight:#bfcff7;--code-bg:#1a1d2e;
  --sql:#c47d0e;--danger:#dc2626;--danger-dim:#fee2e2;--success:#16a34a;
  --search-bg:#f2f3f7;--search-text:#1a1d2e;--search-border:#3b6fe0;
  --search-card:#ffffff;--search-card-border:#d4d8e8;--search-muted:#5a6380;
}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column;overflow:hidden;font-size:13px}

/* TOPBAR */
.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;min-height:46px}
.logo{font-size:15px;font-weight:600;color:var(--accent);letter-spacing:-.3px;white-space:nowrap}
.logo em{color:var(--text-muted);font-style:normal;font-weight:300}
.search-wrap{flex:1;position:relative;max-width:420px}
.search-wrap input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 12px 7px 32px;color:var(--text);font-family:inherit;font-size:13px;outline:none;transition:border-color .15s}
.search-wrap input:focus{border-color:var(--accent)}
.search-wrap input::placeholder{color:var(--text-dim)}
.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-dim)}
.topbar-actions{display:flex;gap:8px;margin-left:auto}
.btn{padding:6px 12px;border-radius:6px;border:none;cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s}
.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#4a7de0}
.btn-primary.code-save{background:var(--sql)}.btn-primary.code-save:hover{background:#d68a0a}
.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface2);color:var(--text)}
.btn-danger{background:var(--danger-dim);color:var(--danger);border:1px solid transparent}.btn-danger:hover{border-color:var(--danger)}
.btn-success{background:rgba(74,222,128,.15);color:var(--success);border:1px solid transparent}.btn-success:hover{border-color:var(--success)}

/* LAYOUT */
.main{display:flex;flex:1;overflow:hidden;position:relative}

/* SIDEBAR */
.sidebar{width:215px;min-width:140px;max-width:340px;flex-shrink:0;flex:none;background:var(--surface);display:flex;flex-direction:column;overflow:hidden}
.sidebar-section{padding:12px 12px 6px}
.sidebar-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}
.sidebar-label button{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.sidebar-label button:hover{color:var(--accent)}
.folder-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:5px;cursor:pointer;color:var(--text-muted);transition:all .12s;font-size:12px}
.folder-item:hover{background:var(--surface2);color:var(--text)}
.folder-item.active{background:var(--folder-active);color:var(--accent)}
.folder-item .count{margin-left:auto;font-size:10px;color:var(--text-dim);background:var(--bg);padding:1px 5px;border-radius:10px}
.folder-actions{display:none;gap:2px;margin-left:4px}
.folder-item:hover .folder-actions{display:flex}
.folder-act-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:11px;padding:1px 3px;border-radius:3px;line-height:1}
.folder-act-btn:hover{color:var(--accent)}.folder-act-btn.del:hover{color:var(--danger)}
.sidebar-tags{padding:6px 12px 12px;flex:1;overflow-y:auto}
.tag-row{display:flex;align-items:center;margin:2px 0;gap:4px}
.tag-chip{flex:1;display:inline-flex;align-items:center;background:var(--tag-bg);color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:3px 7px;font-size:10px;cursor:pointer;transition:all .12s;gap:6px}
.tag-chip:hover{border-color:var(--accent);color:var(--accent)}
.tag-chip.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}
.tag-name{flex:1}.tag-count{font-size:9px;opacity:.6}
.tag-act-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:11px;padding:1px 3px;border-radius:3px;line-height:1}
.tag-act-btn:hover{color:var(--accent)}.tag-act-btn.del:hover{color:var(--danger)}

/* NOTE LIST */
.note-list{width:260px;min-width:160px;max-width:420px;flex-shrink:0;flex:none;display:flex;flex-direction:column;overflow:hidden}
.note-list-header{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.note-list-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px}
.note-count{font-size:10px;color:var(--text-dim)}
.note-items{flex:1;overflow-y:auto}
.note-item{padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.note-item:hover{background:var(--surface2)}
.note-item.active{background:var(--folder-active);border-left:2px solid var(--accent)}
.note-item-title{font-size:12px;font-weight:500;color:var(--text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.note-item-meta{display:flex;align-items:center;gap:6px}
.note-type-badge{font-size:9px;font-weight:600;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.4px}
.type-code{background:rgba(245,158,11,.15);color:var(--sql)}
.type-plain{background:rgba(91,141,238,.12);color:var(--accent)}
.note-item-folder{font-size:10px;color:var(--text-dim)}
.note-item-modified{font-size:10px;color:var(--text-dim);margin-left:auto}
.note-item-excerpt{font-size:11px;color:var(--text-dim);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.note-empty{padding:24px;text-align:center;color:var(--text-dim);font-size:12px}

/* NOTE DETAIL */
.note-detail{flex:1;min-width:280px;display:flex;flex-direction:column;overflow:hidden}
.note-detail-header{padding:14px 20px 10px;border-bottom:1px solid var(--border);flex-shrink:0}
.note-detail-title{font-size:18px;font-weight:600;color:var(--text);margin-bottom:8px}
.note-detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.detail-folder-badge{font-size:10px;color:var(--accent);background:var(--accent-dim);padding:2px 8px;border-radius:4px;font-weight:500}
.detail-tag{font-size:10px;color:var(--text-muted);background:var(--tag-bg);border:1px solid var(--border);padding:2px 6px;border-radius:4px}
.detail-dates{margin-left:auto;font-size:10px;color:var(--text-dim);display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.detail-actions{display:flex;gap:6px;padding:8px 20px;border-bottom:1px solid var(--border);flex-shrink:0}
.note-detail-content{flex:1;padding:16px 20px;overflow-y:auto}
.capture-bar{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:10px 20px;border-top:1px solid var(--border);background:var(--surface)}
.capture-bar input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:8px 12px;color:var(--text);font-family:inherit;font-size:13px;outline:none;transition:border-color .15s}
.capture-bar input:focus{border-color:var(--accent)}
.capture-hint{font-size:10px;color:var(--text-dim);flex-shrink:0;white-space:nowrap}

/* LOGIN SCREEN */
.login-card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.login-card-top{padding:20px 22px 14px 22px;border-bottom:1px solid var(--border)}
.login-brand{font-size:15px;font-weight:700}
.login-brand em{color:var(--accent);font-style:normal}
.login-subtitle{font-size:10.5px;color:var(--text-dim);font-family:'JetBrains Mono',monospace;margin-top:2px}
.login-job{padding:16px 22px 18px 22px}
.login-code-line{display:flex;align-items:center;gap:9px;margin-bottom:9px;font-family:'JetBrains Mono',monospace;font-size:12px}
.login-gutter{color:var(--text-dim);width:13px;flex-shrink:0;text-align:right;user-select:none}
.login-kw{color:#c792ea;flex-shrink:0}
.login-code-line input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:12px;outline:none;min-width:0}
.login-code-line input:focus{border-color:var(--accent)}
.login-run-btn{width:100%;margin-top:2px;background:var(--accent);color:#0b1220;border:none;border-radius:7px;padding:9px;font-weight:700;font-size:12px;font-family:'JetBrains Mono',monospace;cursor:pointer;letter-spacing:.3px;transition:filter .12s,transform .05s}
.login-run-btn:hover{filter:brightness(1.08)}
.login-run-btn:active{transform:scale(.98)}
.login-run-btn:disabled{opacity:.5;cursor:default}
.login-log-panel{margin-top:12px;background:#0a0c12;border:1px solid var(--border);border-radius:7px;padding:9px 11px;min-height:66px;font-family:'JetBrains Mono',monospace;font-size:10.5px;line-height:1.75;white-space:pre-wrap}
.login-log-line{opacity:0;animation:loginFadeIn .18s forwards}
@keyframes loginFadeIn{to{opacity:1}}
.login-log-note{color:var(--accent)}
.login-log-warn{color:var(--sql)}
.login-log-err{color:var(--danger)}
.login-log-plain{color:var(--text-dim)}
.note-body{line-height:1.8;color:var(--text);white-space:pre-wrap;font-size:13px}
.code-block{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;margin:10px 0;overflow:hidden}
.code-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--surface2);border-bottom:1px solid var(--border)}
.code-lang{font-size:10px;font-weight:600;color:var(--sql);text-transform:uppercase;letter-spacing:.5px}
.code-copy{font-size:10px;cursor:pointer;padding:2px 8px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-family:inherit;transition:all .15s}
.code-copy:hover{background:var(--surface);color:var(--text)}
.code-copy.copied{color:var(--success);border-color:var(--success)}
pre.code-body{padding:12px;overflow-x:auto;font-family:'JetBrains Mono',monospace;font-size:12px;line-height:1.6;color:#e2e8f0;margin:0;white-space:pre}
.kw{color:#93c5fd;font-weight:500}.fn{color:#c4b5fd}.str{color:#86efac}.num{color:#fca5a5}.cm{color:#6b7280;font-style:italic}.sas{color:#60a5fa;font-weight:500}.mac{color:#f472b6;font-weight:500}
.note-desc{margin-top:10px;color:var(--text-muted);font-size:12px;line-height:1.7}
.linked-section{padding:10px 20px 14px;border-top:1px solid var(--border);flex-shrink:0}
.linked-label{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);font-weight:600;margin-bottom:6px}
.linked-chips{display:flex;flex-wrap:wrap;gap:6px}
.linked-chip{font-size:11px;color:var(--accent);background:var(--accent-dim);border-radius:4px;padding:3px 8px;cursor:pointer;border:1px solid transparent;transition:border-color .1s}
.linked-chip:hover{border-color:var(--accent)}
.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);gap:8px}
.empty-state .icon{font-size:32px;opacity:.4}
.empty-state p{font-size:12px}

/* MODALS */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:100}
.modal-overlay.open{display:flex}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;width:580px;max-height:88vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;transition:border-color .2s}
.modal.plain-mode{border-top:3px solid var(--accent)}
.modal.code-mode{border-top:3px solid var(--sql)}
.modal-sm{width:380px}
.modal-title{font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:space-between}
.modal-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:18px;line-height:1}
.modal-close:hover{color:var(--text)}
.form-row{display:flex;flex-direction:column;gap:4px}
.form-label{font-size:11px;color:var(--text-muted);font-weight:500}
.form-hint{font-size:10px;color:var(--text-dim);margin-top:2px}
.form-input{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--text);font-family:inherit;font-size:13px;outline:none;width:100%;transition:border-color .15s}
.form-input:focus{border-color:var(--accent)}
.form-input::placeholder{color:var(--text-dim)}
select.form-input option{background:var(--surface2)}
textarea.form-input{resize:vertical;min-height:90px;font-family:inherit;line-height:1.6}
textarea.code-input{font-family:'JetBrains Mono',monospace;font-size:12px;min-height:110px}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}

/* TAG / LINK SELECTOR */
.selector-wrap{position:relative}
.selector-input-row{display:flex;gap:6px}
.selector-input-row .form-input{flex:1}
.chips-selected{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;min-height:0}
.chip-sel{display:inline-flex;align-items:center;gap:4px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:2px 7px;font-size:11px}
.chip-sel button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0;line-height:1}
.chip-sel button:hover{color:#fff}
.dropdown-list{position:absolute;top:100%;left:0;right:0;background:var(--surface2);border:1px solid var(--border);border-radius:6px;margin-top:3px;max-height:160px;overflow-y:auto;z-index:200;display:none}
.dropdown-list.open{display:block}
.dropdown-item{padding:7px 10px;font-size:12px;cursor:pointer;color:var(--text-muted);transition:background .1s}
.dropdown-item:hover,.dropdown-item.focused{background:var(--folder-active);color:var(--text)}
.dropdown-item.new-item{color:var(--accent);font-style:italic}
.dropdown-empty{padding:10px;font-size:11px;color:var(--text-dim);text-align:center}

/* EXPORT MODAL */
.export-modal{width:460px}
.commit-preview{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-family:'JetBrains Mono',monospace;font-size:12px;color:#86efac;line-height:1.6;white-space:pre-wrap;word-break:break-all}
.copy-row{display:flex;align-items:center;gap:8px}
.copy-row .commit-preview{flex:1}
.copy-success{font-size:11px;color:var(--success);display:none}
.copy-success.show{display:inline}
.info-box{background:var(--surface2);border-radius:6px;padding:10px 12px;font-size:11px;color:var(--text-dim);line-height:1.7}
.info-box strong{color:var(--text-muted)}

/* CONFIRM */
.confirm-box{background:var(--surface2);border:1px solid var(--danger);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:10px;margin:0 20px}
.confirm-box p{font-size:12px;color:var(--text-muted)}
.confirm-actions{display:flex;gap:8px;justify-content:flex-end}

/* BACKUP REMINDER BANNER */



/* ══════════════════════════════════════
   NOTE MODAL — LIGHT MODE (off-white)
══════════════════════════════════════ */
#noteModalOverlay .modal{
  background:#f2f3f7 !important;border:1px solid #d4d8e8 !important;
}
#noteModalOverlay .modal-title{color:#1a1d2e}
#noteModalOverlay .modal-close{color:#9099b5}
#noteModalOverlay .modal-close:hover{color:#1a1d2e}
#noteModalOverlay .form-label{color:#5a6380}
#noteModalOverlay .form-hint{color:#9099b5}
#noteModalOverlay .form-input{
  background:#ffffff;border:1px solid #d4d8e8;color:#1a1d2e;
}
#noteModalOverlay .form-input:focus{border-color:#3b6fe0}
#noteModalOverlay .form-input::placeholder{color:#b0b6cc}
#noteModalOverlay select.form-input option{background:#ffffff;color:#1a1d2e}
#noteModalOverlay .btn-ghost{background:transparent;color:#5a6380;border:1px solid #d4d8e8}
#noteModalOverlay .btn-ghost:hover{background:#e8eaf2;color:#1a1d2e}
#noteModalOverlay .fmt-btn{border:1px solid #d4d8e8;color:#5a6380}
#noteModalOverlay .fmt-btn:hover{border-color:#3b6fe0;color:#3b6fe0}
#noteModalOverlay .dropdown-list{background:#ffffff;border:1px solid #d4d8e8}
#noteModalOverlay .dropdown-item{color:#5a6380}
#noteModalOverlay .dropdown-item:hover,#noteModalOverlay .dropdown-item.focused{background:#dde8ff;color:#3b6fe0}
#noteModalOverlay .dropdown-item.new-item{color:#3b6fe0}
#noteModalOverlay .dropdown-empty{color:#9099b5}
#noteModalOverlay .chip-sel{background:#dde8ff;color:#3b6fe0;border:1px solid #3b6fe0}
#noteModalOverlay .chip-sel button{color:#3b6fe0}
#noteModalOverlay .inline-link-dd{background:#ffffff;border:1px solid #d4d8e8;box-shadow:0 4px 12px rgba(0,0,0,.08)}
#noteModalOverlay .inline-link-dd-item{color:#5a6380}
#noteModalOverlay .inline-link-dd-item:hover,#noteModalOverlay .inline-link-dd-item.focused{background:#dde8ff;color:#3b6fe0}
#noteModalOverlay .dd-folder{color:#9099b5}
#noteModalOverlay .inline-link-dd-empty{color:#9099b5}

/* PLAIN/CODE TOGGLE BUTTONS (replaces select dropdown) */
.type-toggle-row{display:flex;border-radius:6px;overflow:hidden;border:1px solid #d4d8e8;width:fit-content}
.type-toggle-btn{padding:7px 18px;font-size:12px;font-weight:500;border:none;background:#ffffff;color:#9099b5;cursor:pointer;font-family:inherit;transition:all .15s}
.type-toggle-btn.active-plain{background:#dde8ff;color:#3b6fe0}
.type-toggle-btn.active-code{background:#fef3dc;color:#c47d0e}

/* modal top accent bar — adapted for light mode */
#noteModalOverlay .modal.plain-mode{border-top:3px solid #3b6fe0}
#noteModalOverlay .modal.code-mode{border-top:3px solid #c47d0e}

/* save button colors in light modal context */
#noteModalOverlay .btn-primary{background:#3b6fe0;color:#fff}
#noteModalOverlay .btn-primary:hover{background:#2f5bc7}
#noteModalOverlay .btn-primary.code-save{background:#c47d0e}
#noteModalOverlay .btn-primary.code-save:hover{background:#a8690a}

/* code textarea stays dark for contrast/readability even in light modal */
#noteModalOverlay textarea.code-input{background:#131720;color:#e2e8f0;border-color:#2a3047}


/* ══════════════════════════════════════
   ALWAYS-LIGHT MODALS (note + campaign)
   — immune to data-theme changes
══════════════════════════════════════ */
/* code textarea stays dark inside light modal for readability */
#noteModalOverlay textarea.code-input{background:#131720 !important;color:#e2e8f0 !important;border-color:#2a3047 !important}






mark{background:var(--highlight);color:var(--text);border-radius:2px;padding:0 1px}
.md-highlight{background:#f5d90a4d;color:var(--text);border-radius:2px;padding:0 1px}
.fmt-toolbar{display:flex;gap:4px;margin-bottom:6px}
.fmt-btn{width:26px;height:24px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.fmt-btn:hover{border-color:var(--accent);color:var(--accent)}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}

/* RESIZABLE PANES */
.resizer{width:5px;flex-shrink:0;background:var(--border);cursor:col-resize;position:relative;z-index:10;transition:background .15s}
.resizer:hover,.resizer.dragging{background:var(--accent);}
.resizer::after{content:'';position:absolute;inset:0 -3px;background:transparent}

/* PANE COLLAPSE BUTTONS (in pane headers) */
.pane-collapse-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:11px;padding:1px 4px;border-radius:3px;line-height:1;transition:all .12s;flex-shrink:0}
.pane-collapse-btn:hover{background:var(--surface2);color:var(--accent)}
.pane-collapse-btn.collapsed{color:var(--accent)}

/* COLLAPSED PANE */
.sidebar.collapsed,.note-list.collapsed{width:0!important;min-width:0!important;overflow:hidden;flex:none}
.resizer.pane-collapsed{background:var(--accent-dim);cursor:pointer}
.resizer.pane-collapsed::before{content:'›';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;color:var(--accent);line-height:1;pointer-events:none}
.resizer.pane-collapsed:hover{background:var(--accent)}

/* PIN */
.pin-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 4px;color:var(--text-dim);transition:all .15s;line-height:1}
.pin-btn:hover{color:var(--sql)}.pin-btn.pinned{color:var(--sql)}
.note-item-pin{font-size:10px;color:var(--sql);opacity:.8}

/* INLINE LINK DROPDOWN */
.inline-link-dd{position:absolute;background:var(--surface2);border:1px solid var(--border);border-radius:6px;z-index:300;max-height:180px;overflow-y:auto;display:none;min-width:240px;box-shadow:0 4px 12px rgba(0,0,0,.3)}
.inline-link-dd.open{display:block}
.inline-link-dd-item{padding:7px 12px;font-size:12px;cursor:pointer;color:var(--text-muted);transition:background .1s;display:flex;align-items:center;gap:8px}
.inline-link-dd-item:hover,.inline-link-dd-item.focused{background:var(--folder-active);color:var(--text)}
.dd-folder{font-size:9px;color:var(--text-dim);margin-left:auto}
.inline-link-dd-empty{padding:8px 12px;font-size:11px;color:var(--text-dim)}

/* INLINE LINK CHIP rendered in note */
.inline-link{display:inline-flex;align-items:center;gap:3px;color:var(--accent);background:var(--accent-dim);border-radius:3px;padding:1px 6px;font-size:11px;cursor:pointer;border:1px solid transparent;transition:border-color .1s;vertical-align:middle}
.inline-link:hover{border-color:var(--accent)}

/* ══════════════════════════════════════
   FLOATING ACTION BUTTON
══════════════════════════════════════ */
.fab{position:fixed;bottom:22px;right:22px;width:44px;height:44px;border-radius:50%;background:var(--accent);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;box-shadow:0 4px 14px rgba(91,141,238,.45);z-index:50;transition:all .15s}
.fab:hover{background:#4a7de0;transform:scale(1.08);box-shadow:0 6px 18px rgba(91,141,238,.55)}
.fab-tooltip{position:fixed;bottom:72px;right:22px;background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:4px 9px;font-size:10px;color:var(--text-muted);white-space:nowrap;z-index:50;pointer-events:none;opacity:0;transition:opacity .15s}
.fab:hover + .fab-tooltip{opacity:1}

/* ══════════════════════════════════════
   SEARCH SCREEN (off-white overlay)
══════════════════════════════════════ */
.search-screen{position:fixed;inset:0;background-color:var(--search-bg);background-image:radial-gradient(var(--border) 1px, transparent 1px);background-size:22px 22px;z-index:200;display:none;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:80px}
.search-screen.open{display:flex}
.search-screen-bar-wrap{width:100%;max-width:560px;position:relative;margin-bottom:20px}
.search-screen-input{width:100%;border:2px solid var(--search-border);border-radius:10px;padding:13px 16px 13px 44px;font-size:15px;color:var(--search-text);background:var(--search-card);font-family:'Inter',sans-serif;outline:none;box-shadow:0 0 0 4px rgba(59,111,224,.1),0 2px 8px rgba(0,0,0,.08)}
.search-screen-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:17px;color:var(--search-border)}
.search-screen-results{width:100%;max-width:560px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:calc(100vh - 220px)}
.search-result-card{background:var(--search-card);border:1px solid var(--search-card-border);border-radius:8px;padding:10px 14px;cursor:pointer;transition:all .12s}
.search-result-card:hover,.search-result-card.focused{border-color:var(--search-border);box-shadow:0 0 0 2px rgba(59,111,224,.12)}
.search-result-title{font-size:13px;font-weight:600;color:var(--search-text);margin-bottom:3px}
.search-result-excerpt{font-size:11px;color:var(--search-muted);line-height:1.5}
.search-result-type{font-size:9px;font-weight:600;padding:1px 5px;border-radius:3px;text-transform:uppercase;margin-right:6px}
.srt-plain{background:#dde8ff;color:#3b6fe0}
.srt-code{background:#fef3dc;color:#c47d0e}
.search-screen-empty{font-size:13px;color:var(--text-dim);margin-top:20px}

.search-screen mark{background:#dde8ff;color:#3b6fe0;border-radius:2px;padding:0 1px}

/* ══════════════════════════════════════
   NOTE POPUP (inside search screen)
══════════════════════════════════════ */
.note-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:300;display:none;align-items:flex-start;justify-content:center;padding-top:60px}
.note-popup-overlay.open{display:flex}
.note-popup{background:var(--surface);border:1.5px solid var(--border);border-radius:12px;width:100%;max-width:620px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.35)}

/* popup content */
.popup-content{flex:1;padding:14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.popup-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.popup-title{font-size:15px;font-weight:700;color:var(--text);flex:1;line-height:1.3}
.popup-right-col{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.popup-type-badge{font-size:9px;font-weight:600;padding:2px 8px;border-radius:3px;text-transform:uppercase}
.ptb-plain{background:var(--accent-dim);color:var(--accent)}
.ptb-code{background:rgba(245,158,11,.15);color:var(--sql)}

/* show/hide toggle */
.info-toggle{display:flex;align-items:center;gap:5px;background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:3px 9px;cursor:pointer;transition:all .12s}
.info-toggle:hover{border-color:var(--accent)}
.toggle-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--text-dim);background:var(--border);flex-shrink:0;transition:all .15s}
.info-toggle.on .toggle-dot{background:var(--accent);border-color:var(--accent)}
.toggle-label{font-size:9px;color:var(--text-muted);font-weight:500;white-space:nowrap}
.info-toggle.on .toggle-label{color:var(--accent)}

/* metadata row */
.popup-meta{display:flex;gap:5px;flex-wrap:wrap}
.popup-meta.hidden{display:none}
.pm-folder{font-size:9px;background:var(--accent-dim);color:var(--accent);border-radius:3px;padding:2px 7px;font-weight:500}
.pm-tag{font-size:9px;background:var(--tag-bg);color:var(--text-muted);border:1px solid var(--border);border-radius:3px;padding:2px 7px}
.popup-divider{height:1px;background:var(--border)}

/* popup code block — always dark for readability */
.popup-code-block{background:#1a1d2e;border:1px solid #2a3047;border-radius:7px;overflow:hidden}
.popup-code-header{display:flex;align-items:center;justify-content:space-between;padding:5px 12px;background:#1f2535;border-bottom:1px solid #2a3047}
.popup-code-lang{font-size:9px;font-weight:600;color:#f59e0b;text-transform:uppercase;letter-spacing:.5px}
.popup-code-copy{font-size:10px;cursor:pointer;padding:2px 8px;border-radius:3px;border:1px solid #2a3047;background:transparent;color:#7a8599;font-family:'Inter',sans-serif;transition:all .15s}
.popup-code-copy:hover{background:#2a3047;color:#e2e8f0}
.popup-code-copy.copied{color:#4ade80;border-color:#4ade80}
pre.popup-code-body{padding:12px;font-family:'JetBrains Mono',monospace;font-size:11px;line-height:1.65;color:#e2e8f0;overflow-x:auto;margin:0;white-space:pre}

/* popup plain body */
.popup-plain-body{font-size:12px;color:var(--text);line-height:1.8;white-space:pre-wrap}
.popup-desc-text{font-size:11px;color:var(--text-muted);line-height:1.65}

/* popup linked */
.popup-linked{border-top:1px solid var(--border);padding-top:8px}
.popup-linked.hidden{display:none}
.popup-linked-label{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);font-weight:600;margin-bottom:5px}
.popup-linked-chip{display:inline-flex;align-items:center;font-size:10px;color:var(--accent);background:var(--accent-dim);border-radius:4px;padding:2px 8px;margin:2px;cursor:pointer;border:1px solid transparent;transition:border-color .1s}
.popup-linked-chip:hover{border-color:var(--accent)}

/* ══════════════════════════════════════
   TAB SWITCHER
══════════════════════════════════════ */
.tab-group{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-left:6px}
.tab-btn{padding:5px 14px;font-size:11px;font-weight:500;cursor:pointer;color:var(--text-muted);background:var(--bg);border:none;font-family:inherit;white-space:nowrap;transition:all .15s}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{background:var(--accent-dim);color:var(--accent)}

/* GEAR MENU */
.gear-wrap{position:relative}
.gear-btn{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .15s;line-height:1}
.gear-btn:hover{background:var(--surface2);color:var(--text)}
.gear-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;min-width:160px;z-index:150;display:none;box-shadow:0 4px 16px rgba(0,0,0,.4)}
.gear-menu.open{display:block}
.gear-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:5px;font-size:11px;color:var(--text-muted);cursor:pointer;transition:background .1s;white-space:nowrap}
.gear-item:hover{background:var(--surface2);color:var(--text)}
.gear-divider{height:1px;background:var(--border);margin:3px 0}

/* SHORTCUTS MODAL */
.shortcuts-modal{width:420px}
.shortcut-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--text-dim);margin:10px 0 6px}
.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border)}
.shortcut-row:last-child{border-bottom:none}
.shortcut-desc{font-size:12px;color:var(--text-muted)}
.shortcut-keys{display:flex;gap:3px}
.kbd{display:inline-block;background:var(--surface2);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace}

/* ══════════════════════════════════════
   CAMPAIGN VIEW
══════════════════════════════════════ */
.camp-view{display:none;flex:1;flex-direction:column;overflow:hidden}
.camp-view.active{display:flex}
.notes-view{display:flex;flex:1;overflow:hidden}
.notes-view.hidden{display:none}

/* FILTER BAR */
.camp-filter-bar{display:flex;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface);flex-wrap:wrap}
.camp-filter-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text-dim);margin-right:2px}
.camp-filter-input{background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:4px 8px;color:var(--text);font-size:11px;font-family:inherit;outline:none;width:110px;transition:border-color .15s}
.camp-filter-input:focus{border-color:var(--accent)}
.camp-filter-input::placeholder{color:var(--text-dim)}
.camp-filter-select{background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:4px 8px;color:var(--text-muted);font-size:11px;font-family:inherit;outline:none;cursor:pointer}
.camp-filter-select option{background:var(--surface2)}
.camp-filter-divider{width:1px;height:14px;background:var(--border);flex-shrink:0}
.camp-record-count{font-size:10px;color:var(--text-dim);margin-left:auto;white-space:nowrap}
.camp-clear-btn{font-size:10px;color:var(--text-dim);background:none;border:none;cursor:pointer;font-family:inherit;padding:2px 4px}
.camp-clear-btn:hover{color:var(--danger)}

/* CAMP TABLE WRAP */
.camp-table-area{display:flex;flex:1;overflow:hidden}
.camp-table-wrap{flex:1;overflow:auto;min-width:0}
table.camp-table{width:100%;border-collapse:collapse;min-width:860px}
table.camp-table thead{position:sticky;top:0;z-index:5}
table.camp-table th{padding:8px 12px;text-align:left;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;user-select:none;transition:color .1s}
table.camp-table th:hover{color:var(--text-muted)}
table.camp-table th.sort-asc{color:var(--accent)}
table.camp-table th.sort-asc::after{content:' ↑'}
table.camp-table th.sort-desc{color:var(--accent)}
table.camp-table th.sort-desc::after{content:' ↓'}
table.camp-table td{padding:8px 12px;border-bottom:1px solid var(--border);font-size:11px;vertical-align:middle;color:var(--text-muted)}
table.camp-table tr:hover td{background:var(--surface2);cursor:pointer}
table.camp-table tr.camp-row-active td{background:var(--folder-active);border-left:2px solid var(--accent)}
table.camp-table tr.camp-row-active td:first-child{padding-left:10px}

/* CAMP CELL TYPES */
td.cc-date{white-space:nowrap;font-size:10px;color:var(--text-muted)}
td.cc-cd{font-family:'JetBrains Mono',monospace;color:#c4b5fd;font-weight:600;font-size:10px;white-space:nowrap}
td.cc-nm{font-weight:500;color:var(--text);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
td.cc-event{color:var(--text-muted);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
td.cc-note{color:var(--text-dim);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}
td.cc-note.empty{color:var(--text-dim);opacity:.5}

/* CAMP BADGES */
.cb{border-radius:3px;padding:2px 7px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
.cb-bau{background:rgba(91,141,238,.15);color:var(--accent)}
.cb-adhoc{background:rgba(196,181,253,.12);color:#c4b5fd}
.cb-active{background:rgba(74,222,128,.12);color:var(--success)}
.cb-stop{background:rgba(248,113,113,.1);color:var(--danger)}
.cb-batch{background:rgba(245,158,11,.1);color:var(--sql)}
.cb-event{background:rgba(52,211,153,.1);color:#34d399}

/* ADD ROW */
.camp-add-row{display:none}.camp-add-row.visible{display:table-row}.camp-add-row.visible td{background:var(--bg);border-bottom:2px solid var(--border);padding:5px 6px}
.camp-add-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:5px 7px;color:var(--text);font-size:11px;font-family:inherit;outline:none;transition:border-color .15s}
.camp-add-input:focus{border-color:var(--accent)}
.camp-add-input::placeholder{color:var(--text-dim)}
.camp-add-input.mono{font-family:'JetBrains Mono',monospace;color:#c4b5fd;font-size:10px}
.camp-add-select{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:5px 7px;color:var(--text);font-size:11px;font-family:inherit;outline:none;cursor:pointer}
.camp-add-select option{background:var(--surface2)}
.camp-add-save{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:4px 10px;font-size:10px;cursor:pointer;font-family:inherit;font-weight:600}
.camp-add-cancel{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:15px;padding:0 3px;vertical-align:middle}
.camp-add-cancel:hover{color:var(--danger)}

/* SIDE PANEL */
.camp-side-panel{width:320px;min-width:200px;max-width:560px;flex:none;background:var(--surface);border-left:none;display:none;flex-direction:column;overflow:hidden}
.camp-side-panel.open{display:flex}
.camp-resizer{width:5px;flex-shrink:0;background:var(--border);cursor:col-resize;position:relative;z-index:10;transition:background .15s;display:none}
.camp-resizer.visible{display:block}
.camp-resizer:hover,.camp-resizer.dragging{background:var(--accent)}
.csp-close-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;flex-shrink:0}
.csp-close-btn:hover{color:var(--text)}
.csp-header{padding:14px 16px 10px;border-bottom:1px solid var(--border);flex-shrink:0}
.csp-cd{font-family:'JetBrains Mono',monospace;font-size:10px;color:#c4b5fd;background:rgba(196,181,253,.08);border-radius:3px;padding:2px 8px;display:inline-block;margin-bottom:6px}
.csp-nm{font-size:14px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:8px}
.csp-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.csp-date{font-size:10px;color:var(--text-dim);margin-left:auto}
.csp-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.csp-field{display:flex;flex-direction:column;gap:3px}
.csp-field-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text-dim)}
.csp-field-val{font-size:12px;color:var(--text);line-height:1.7}
.csp-note-text{white-space:pre-wrap;color:var(--text-muted);font-size:11px;background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:8px 10px;line-height:1.8}
.csp-empty{color:var(--text-dim);font-style:italic;font-size:11px}
.csp-extra-section{border-top:1px solid var(--border);padding-top:10px}
.csp-extra-row{display:flex;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--border)}
.csp-extra-row:last-of-type{border-bottom:none}
.csp-extra-key{font-size:10px;color:var(--text-muted);font-weight:500;min-width:80px}
.csp-extra-val{font-size:11px;color:var(--text);flex:1}
.csp-extra-del{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:0 2px}
.csp-extra-del:hover{color:var(--danger)}
.csp-add-extra{display:flex;gap:5px;margin-top:8px}
.csp-add-extra-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:5px 8px;color:var(--text);font-size:11px;font-family:inherit;outline:none}
.csp-add-extra-input:focus{border-color:var(--accent)}
.csp-add-extra-input::placeholder{color:var(--text-dim)}
.csp-add-extra-btn{background:none;border:1px solid var(--border);border-radius:4px;color:var(--accent);font-size:11px;padding:4px 8px;cursor:pointer;font-family:inherit;white-space:nowrap}
.csp-add-extra-btn:hover{background:var(--accent-dim)}
.csp-footer{padding:10px 16px;border-top:1px solid var(--border);display:flex;gap:6px;flex-shrink:0}
.csp-edit-btn{flex:1;background:transparent;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);font-size:11px;padding:6px;cursor:pointer;font-family:inherit}
.csp-edit-btn:hover{border-color:var(--accent);color:var(--accent)}
.csp-del-btn{background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-dim);font-size:11px;padding:6px 10px;cursor:pointer;font-family:inherit}
.csp-del-btn:hover{border-color:var(--danger);color:var(--danger)}

/* CAMP EDIT MODAL */
.camp-modal{width:520px}

/* ══════════════════════════════════════════════════
   GRAPH VIEW
   ══════════════════════════════════════════════════ */
.graph-view{display:none;flex:1;overflow:hidden}
.graph-view.active{display:flex}
.graph-canvas-wrap{flex:1;position:relative;overflow:hidden;background:var(--bg)}
.graph-canvas-wrap svg{display:block}
.graph-controls{position:absolute;top:12px;left:12px;z-index:3;display:flex;gap:6px;align-items:center}
.graph-count{font-size:11px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:6px 12px}
.graph-ctrl-btn{font-size:13px;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:5px 10px;cursor:pointer;font-family:inherit;line-height:1}
.graph-ctrl-btn:hover{background:var(--surface2);color:var(--text)}
.graph-canvas-wrap svg{cursor:grab}
.graph-canvas-wrap svg.is-panning{cursor:grabbing}
.graph-legend{position:absolute;bottom:12px;left:12px;z-index:3;background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:9px 11px;display:flex;flex-direction:column;gap:6px}
.graph-legend-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-dim)}
.graph-legend-swatch{width:18px;height:2px;display:inline-block}
.graph-legend-link{background:var(--accent)}
.graph-legend-tag{background:var(--sql);opacity:.7;border-top:2px dashed var(--sql);height:0}

.graph-node{fill:var(--surface2);stroke:var(--border);stroke-width:1.4;cursor:pointer;transition:opacity .15s}
.graph-node:hover{stroke:var(--accent)}
.graph-node.is-active{stroke:var(--accent);stroke-width:2.4}
.graph-node.is-dim{opacity:.2}
.graph-node-label{font-family:'Inter',sans-serif;font-size:10.5px;fill:var(--text-dim);pointer-events:none;transition:opacity .15s}
.graph-edge{stroke:var(--accent);stroke-opacity:.45;transition:opacity .15s}
.graph-edge-tag{stroke:var(--sql);stroke-opacity:.35;stroke-dasharray:3,3}
.graph-edge.is-dim{opacity:.08}

.graph-side-panel{width:260px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}
.graph-empty{font-size:12px;color:var(--text-dim);line-height:1.6}
.graph-node-detail{display:none;flex-direction:column;gap:10px}
.graph-node-detail.show{display:flex}
.graph-node-title{font-size:14px;font-weight:600;color:var(--text)}
.graph-node-meta{font-size:11px;color:var(--text-dim)}
.graph-node-tags{display:flex;flex-wrap:wrap;gap:6px}
.graph-chip{font-size:10px;color:var(--text-muted);background:var(--tag-bg);border:1px solid var(--border);padding:2px 7px;border-radius:10px}
.graph-link-list-title{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);font-weight:600;margin-bottom:6px}
.graph-link-item{font-size:12px;color:var(--accent);cursor:pointer;padding:4px 0}
.graph-link-item:hover{text-decoration:underline}
.graph-open-btn{margin-top:auto;padding:8px;text-align:center;background:var(--accent);color:#fff;font-size:12px;font-weight:500;border:none;border-radius:6px;cursor:pointer;font-family:inherit}
.graph-open-btn:hover{opacity:.9}
