/* ========================================
   IMG-CORPUS V2 — CSS
   ======================================== */
:root {
    --bg-deep:#0d0d12; --bg-main:#131318; --bg-surf:#1a1a22; --bg-elev:#22222e;
    --bg-hover:#2a2a38; --bg-active:#32324a;
    --brd:#2a2a3a; --brd-m:#3a3a4e; --brd-s:#4a4a62;
    --t1:#e8e8f0; --t2:#9898b0; --t3:#686880; --t-inv:#0d0d12;
    --ac:#4ecdc4; --ac-dim:rgba(78,205,196,0.15); --ac-mid:rgba(78,205,196,0.4);
    --ac2:#a78bfa; --ac2-dim:rgba(167,139,250,0.15);
    --warn:#f59e42; --warn-dim:rgba(245,158,66,0.15);
    --danger:#f06060; --danger-dim:rgba(240,96,96,0.15);
    --blue:#60a5fa; --green:#34d399;
    --ff:'IBM Plex Sans',-apple-system,sans-serif;
    --fm:'IBM Plex Mono','Consolas',monospace;
    --hdr-h:44px; --side-w:210px; --rpanel-w:320px; --tb-h:40px;
    --r-s:4px; --r-m:6px; --r-l:10px;
    --ease:cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;font-family:var(--ff);font-size:13px;color:var(--t1);background:var(--bg-deep);-webkit-font-smoothing:antialiased}
::selection{background:var(--ac-mid);color:var(--t1)}
input,textarea,select,button{font-family:inherit;font-size:inherit;color:inherit}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--brd-m);border-radius:3px}

/* HEADER */
#app-header{height:var(--hdr-h);display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:var(--bg-surf);border-bottom:1px solid var(--brd);gap:12px;user-select:none}
.header-left{display:flex;align-items:center;gap:8px;flex-shrink:0}
.logo{font-size:15px;font-weight:700;letter-spacing:-.5px;text-decoration:none;cursor:pointer;display:inline-flex;align-items:baseline;gap:0}
.logo-img{color:var(--ac)}.logo-dash{color:var(--t3)}.logo-corpus{color:var(--t1)}.logo-ver{font-size:10px;color:var(--t3);font-weight:400;margin-left:5px}
.header-center{flex:1;display:flex;justify-content:center}
.session-name{font-family:var(--fm);font-size:12px;color:var(--t2);padding:3px 10px;border:1px solid transparent;border-radius:var(--r-s);outline:none;text-align:center;min-width:160px}
.session-name:focus{border-color:var(--ac);color:var(--t1);background:var(--bg-elev)}
.autosave-indicator{font-size:9px;font-family:var(--fm);color:var(--t3);display:flex;align-items:center;gap:3px;transition:opacity .3s}
.autosave-indicator .material-symbols-outlined{font-size:12px}
.autosave-indicator.saving{color:var(--ac)}
.autosave-indicator.unsaved{color:var(--warn)}
.header-right{display:flex;align-items:center;gap:3px;flex-shrink:0}
.hdr-sep{width:1px;height:20px;background:var(--brd);margin:0 4px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid transparent;border-radius:var(--r-s);cursor:pointer;font-weight:500;font-size:12px;transition:all .12s var(--ease);background:transparent;white-space:nowrap}
.btn .material-symbols-outlined{font-size:17px}
.btn-ghost{color:var(--t2)}.btn-ghost:hover{color:var(--t1);background:var(--bg-hover)}
.btn-accent{background:var(--ac-dim);color:var(--ac);border-color:rgba(78,205,196,.2)}.btn-accent:hover{background:rgba(78,205,196,.25)}
.btn-primary{background:var(--ac);color:var(--t-inv);font-weight:600}.btn-primary:hover{background:#3dbdb5}
.btn-danger{background:var(--danger-dim);color:var(--danger);border-color:rgba(240,96,96,.2)}
.btn-sm{padding:4px 7px;font-size:11px}.btn-xs{padding:3px 5px;font-size:11px}
.btn-xs .material-symbols-outlined{font-size:15px}
.btn-label{font-size:11px}

/* LAYOUT */
#app-main{display:flex;height:calc(100vh - var(--hdr-h));overflow:hidden}

/* RESIZE HANDLES */
.resize-handle{width:5px;min-width:5px;cursor:col-resize;background:var(--brd);transition:background .15s;position:relative;z-index:10;flex-shrink:0}
.resize-handle:hover,.resize-handle.dragging{background:var(--ac)}

/* SIDEBAR */
#sidebar{width:var(--side-w);min-width:140px;max-width:400px;background:var(--bg-main);border-right:none;display:flex;flex-direction:column;overflow:hidden}
.side-tabs{display:flex;border-bottom:1px solid var(--brd);background:var(--bg-surf)}
.side-tab{flex:1;padding:6px 2px;text-align:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);border:none;background:transparent;cursor:pointer;border-bottom:2px solid transparent}
.side-tab:hover{color:var(--t2)}.side-tab.active{color:var(--ac);border-bottom-color:var(--ac)}
.side-panel{display:none;flex:1;flex-direction:column;overflow:hidden}.side-panel.active{display:flex}
.side-header{display:flex;align-items:center;justify-content:flex-end;padding:6px 8px;border-bottom:1px solid var(--brd)}
.side-header-actions{display:flex;gap:3px}
.sel-bar{display:flex;align-items:center;gap:3px;padding:5px 6px;background:var(--ac-dim);border-bottom:1px solid rgba(78,205,196,.15);flex-wrap:wrap}
.sel-bar.hidden{display:none}
.sel-info{font-size:11px;color:var(--ac);font-weight:600;font-family:var(--fm);margin-right:2px}
.sel-sep{width:1px;height:16px;background:rgba(78,205,196,.2);margin:0 2px}
.gallery-item.selected{border-color:var(--ac2);box-shadow:0 0 0 1px var(--ac2)}
.coll-filter-bar{display:flex;align-items:center;gap:5px;padding:5px 8px;background:var(--warn-dim);border-bottom:1px solid rgba(245,158,66,.2);font-size:11px;font-weight:600;color:var(--warn)}
.coll-filter-bar.hidden{display:none}
.coll-filter-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coll-filter-clear{background:none;border:none;color:var(--warn);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}
.coll-filter-clear:hover{color:var(--t1)}
.gallery-scroll{flex:1;overflow-y:auto;padding:5px}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.gallery-item{position:relative;aspect-ratio:1;border-radius:var(--r-s);overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .12s var(--ease)}
.gallery-item:hover{border-color:var(--brd-m)}.gallery-item.active{border-color:var(--ac)}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-item .item-idx{position:absolute;top:2px;left:2px;background:rgba(0,0,0,.7);color:var(--t1);font-family:var(--fm);font-size:10px;padding:0 4px;border-radius:2px}
.gallery-item .item-remove{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:rgba(240,96,96,.85);color:#fff;border:none;cursor:pointer;font-size:11px;display:none;align-items:center;justify-content:center}
.gallery-item:hover .item-remove{display:flex}
.gallery-item .batch-ck{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.5);border:2px solid var(--t3);display:none;align-items:center;justify-content:center}
.gallery-item.selected .batch-ck{display:flex;background:var(--ac2);border-color:var(--ac2)}
.gallery-item.selected .batch-ck::after{content:'✓';color:#fff;font-size:9px;font-weight:700}

/* Assign collection list */
.assign-coll-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--r-s);cursor:pointer;font-size:12px;transition:background .1s}
.assign-coll-item:hover{background:var(--bg-hover)}
.assign-coll-item .material-symbols-outlined{font-size:16px;color:var(--t3)}
.assign-coll-item .acl-name{flex:1}
.assign-coll-item .acl-count{font-family:var(--fm);font-size:10px;color:var(--t3)}
.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 16px;color:var(--t3);text-align:center;gap:6px}
.gallery-empty .material-symbols-outlined{font-size:36px;opacity:.4}
.gallery-empty p{font-size:11px}
.gallery-empty.hidden{display:none}
.gallery-hint{font-size:9px;color:var(--t3);text-align:center;padding:4px 0;opacity:.7}

/* Thumbnail slider */
.thumb-slider-row{display:flex;align-items:center;gap:4px;padding:4px 8px;border-top:1px solid var(--brd);color:var(--t3)}
.thumb-slider{flex:1;-webkit-appearance:none;appearance:none;height:3px;background:var(--brd);border-radius:2px;outline:none;cursor:pointer}
.thumb-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--ac);cursor:pointer}

/* Status badges on thumbnails */
.item-status{position:absolute;bottom:2px;left:2px;display:flex;gap:2px;flex-wrap:wrap;max-width:calc(100% - 8px)}
.item-status-dot{width:6px;height:6px;border-radius:50%;border:1px solid rgba(0,0,0,.4);flex-shrink:0}
.item-status-icon{font-size:10px;color:rgba(255,255,255,.7);text-shadow:0 1px 2px rgba(0,0,0,.6)}

/* Hover highlight */
.gallery-item.hover-highlight{outline:2px solid var(--warn);outline-offset:-2px}
.ann-item.hover-highlight{background:var(--warn-dim)!important;border-color:var(--warn)!important}

/* Pan cursor */
.canvas-wrap.panning{cursor:grab!important}
.canvas-wrap.panning canvas{cursor:grab!important}
.canvas-wrap.panning-active{cursor:grabbing!important}
.canvas-wrap.panning-active canvas{cursor:grabbing!important}
.gallery-scroll.drag-over{background:var(--ac-dim);outline:2px dashed var(--ac);outline-offset:-3px}
.gallery-item.dragging{opacity:.35;border-color:var(--ac)!important}
.gallery-item.drag-above{border-top:3px solid var(--ac)!important;border-radius:0}
.gallery-item.drag-below{border-bottom:3px solid var(--ac)!important;border-radius:0}
.gallery-item{cursor:grab}
.gallery-item:active{cursor:grabbing}
.side-section{border-top:1px solid var(--brd);padding:6px 8px}
.section-hdr{display:flex;align-items:center;justify-content:space-between}
.section-hdr h3{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--t3)}
.category-item{display:flex;align-items:center;gap:5px;padding:3px 4px;border-radius:var(--r-s);font-size:11px;cursor:default}
.category-item:hover{background:var(--bg-hover)}
.cat-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.cat-name{flex:1}.cat-rm{opacity:0;cursor:pointer;background:none;border:none;color:var(--t3);font-size:13px;padding:0}
.category-item:hover .cat-rm{opacity:1}

/* COLLECTIONS TREE */
.collections-tree{flex:1;overflow-y:auto;padding:6px}
.coll-empty{color:var(--t3);font-size:11px;padding:12px 6px;text-align:center}
.coll-help{padding:8px;font-size:10px;color:var(--t3);line-height:1.5;border-bottom:1px solid var(--brd);background:var(--bg-surf)}
.coll-help p{margin-bottom:4px}
.coll-help strong{color:var(--t2)}
.coll-node{margin-left:0;font-size:12px}
.coll-node .coll-node{margin-left:14px}
.coll-row{display:flex;align-items:center;gap:4px;padding:3px 4px;border-radius:var(--r-s);cursor:pointer;transition:background .1s}
.coll-row:hover{background:var(--bg-hover)}
.coll-row.active{background:var(--ac-dim);color:var(--ac)}
.coll-row.coll-has-current{color:var(--warn)}
.coll-row.coll-has-current .material-symbols-outlined{color:var(--warn)}
.coll-row .material-symbols-outlined{font-size:16px;color:var(--t3)}
.coll-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coll-count{font-family:var(--fm);font-size:10px;color:var(--t3)}
.coll-actions{display:flex;gap:2px;opacity:.5;transition:opacity .1s}
.coll-row:hover .coll-actions{opacity:1}
.coll-actions button{background:none;border:none;color:var(--t3);cursor:pointer;padding:0;font-size:14px;line-height:1;display:flex;align-items:center}
.coll-actions button:hover{color:var(--t1)}
.coll-row.coll-has-current{background:var(--ac-dim)}
.coll-row.coll-has-current .coll-label{color:var(--ac)}

/* TOOLBAR */
.toolbar{height:var(--tb-h);display:flex;align-items:center;padding:0 6px;background:var(--bg-surf);border-bottom:1px solid var(--brd);gap:3px;user-select:none}
.tool-group{display:flex;align-items:center;gap:2px}
.tool-sep{width:1px;height:20px;background:var(--brd);margin:0 3px}
.tool-btn{width:30px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--r-s);cursor:pointer;background:transparent;color:var(--t2);transition:all .1s var(--ease)}
.tool-btn:hover{background:var(--bg-hover);color:var(--t1)}
.tool-btn.active{background:var(--ac-dim);color:var(--ac);border-color:rgba(78,205,196,.2)}
.tool-btn .material-symbols-outlined{font-size:18px}
.tool-select{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);padding:3px 6px;font-size:11px;color:var(--t1);cursor:pointer;outline:none}
.tool-select:focus{border-color:var(--ac)}
.marker-select{width:72px;font-family:var(--fm)}.marker-select.hidden{display:none}
.zoom-lbl{font-family:var(--fm);font-size:10px;color:var(--t3);min-width:36px;text-align:center}
.tool-spacer{flex:1}
.bg-toggle{gap:3px!important}
.bg-btn{width:16px;height:16px;border-radius:50%;border:2px solid var(--brd);cursor:pointer}
.bg-btn:hover{border-color:var(--brd-s)}.bg-btn.active{border-color:var(--ac)}
.bg-btn[data-bg="#111118"]{background:#111118}.bg-btn[data-bg="#555566"]{background:#555566}.bg-btn[data-bg="#e8e8e8"]{background:#e8e8e8}
.view-toggle{border:1px solid var(--brd);border-radius:var(--r-s);overflow:hidden;gap:0}
.view-toggle .tool-btn{border:none;border-radius:0;width:28px;height:26px}
.view-toggle .tool-btn+.tool-btn{border-left:1px solid var(--brd)}

/* WORKSPACE */
#workspace{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-deep)}
.canvas-wrap{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%,var(--bg-main),var(--bg-deep))}
.canvas-wrap.hidden{display:none}
.canvas-wrap .canvas-container{position:absolute!important}
.canvas-empty{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--t3);gap:8px;pointer-events:none;z-index:1}
.canvas-empty .material-symbols-outlined{font-size:48px;opacity:.3}
.canvas-empty p{font-size:12px}
.canvas-empty.hidden{display:none}
.grid-view{flex:1;overflow-y:auto;padding:0;background:var(--bg-deep);display:flex;flex-direction:column}
.grid-view.hidden{display:none}
.grid-toolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg-surf);border-bottom:1px solid var(--brd);flex-shrink:0}
.grid-toolbar-info{font-size:11px;color:var(--t3);font-family:var(--fm)}
.grid-slider-row{display:flex;align-items:center;gap:6px}
.grid-slider{width:140px}
.grid-view-inner{flex:1;overflow-y:auto;padding:12px;display:grid;gap:12px;align-content:start}
.grid-item{background:var(--bg-surf);border:1px solid var(--brd);border-radius:var(--r-m);overflow:hidden;cursor:pointer;transition:border-color .12s}
.grid-item:hover{border-color:var(--ac)}
.grid-item-selected{border-color:var(--ac2)!important;box-shadow:0 0 0 1px var(--ac2)}
.grid-item-selected .grid-item-name{color:var(--ac2)}
.grid-item-notes{font-size:10px;color:var(--t3);margin-top:3px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.grid-item-ann-preview{font-size:10px;color:var(--t2);margin-top:2px;display:flex;align-items:flex-start;gap:3px;line-height:1.3}
.grid-ann-num{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--ac);color:var(--t-inv);font-size:8px;font-weight:700;font-family:var(--fm);flex-shrink:0}
.grid-item-img{width:100%;overflow:hidden;background:var(--bg-deep)}
.grid-item-img img{width:100%;height:auto;display:block}
.grid-item-body{padding:8px 10px}
.grid-item-name{font-size:11px;font-weight:600;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grid-item-tags{display:flex;flex-wrap:wrap;gap:2px}
.grid-item-tag{font-size:9px;padding:1px 5px;background:var(--ac-dim);color:var(--ac);border-radius:8px}
.concordance-view{flex:1;overflow-y:auto;padding:16px;background:var(--bg-deep)}
.concordance-view.hidden{display:none}
.conc-header{margin-bottom:12px}
.conc-header h3{font-size:16px;font-weight:600;margin-bottom:4px}
.conc-header p{font-size:12px;color:var(--t2)}
.conc-select{margin-bottom:12px}
.conc-select select{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);padding:5px 8px;font-size:12px;color:var(--t1);min-width:200px}
.conc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.conc-card{background:var(--bg-surf);border:1px solid var(--brd);border-radius:var(--r-m);overflow:hidden}
.conc-card-img{width:100%;aspect-ratio:1;overflow:hidden;background:var(--bg-deep)}
.conc-card-img img{width:100%;height:100%;object-fit:contain}
.conc-card-body{padding:6px 8px;font-size:11px}
.conc-card-from{color:var(--t3);font-size:10px;margin-bottom:2px}
.conc-card-desc{color:var(--t2)}
.graph-view{flex:1;overflow:hidden;background:var(--bg-deep)}
.graph-view.hidden{display:none}
#graphSvg{width:100%;height:100%}
.graph-view .gv-node circle{cursor:pointer}.graph-view .gv-node text{fill:var(--t2);font-size:10px}
.graph-view .gv-link{stroke:var(--brd-m);stroke-opacity:.6}

/* RIGHT PANEL */
#rightPanel{width:var(--rpanel-w);min-width:200px;max-width:500px;background:var(--bg-main);border-left:none;display:flex;flex-direction:column;overflow:hidden}
.rpanel-tabs{display:flex;border-bottom:1px solid var(--brd);background:var(--bg-surf)}
.rpanel-tab{flex:1;padding:6px 2px;text-align:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--t3);border:none;background:transparent;cursor:pointer;border-bottom:2px solid transparent}
.rpanel-tab:hover{color:var(--t2)}.rpanel-tab.active{color:var(--ac);border-bottom-color:var(--ac)}
.rpanel-content{flex:1;overflow-y:auto;padding:8px;display:none}.rpanel-content.active{display:block}
.rp-section{margin-bottom:10px}
.rp-section h4{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);margin-bottom:5px;display:flex;align-items:center;gap:5px}
.rp-hint{font-size:11px;color:var(--t3);margin-bottom:8px;line-height:1.4}
.ann-count{font-family:var(--fm);font-size:9px;background:var(--bg-elev);padding:1px 5px;border-radius:8px}

/* Info button */
.info-btn{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--bg-elev);border:1px solid var(--brd);color:var(--t3);font-size:9px;font-weight:700;font-family:var(--fm);cursor:pointer;transition:all .12s;flex-shrink:0;line-height:1;padding:0}
.info-btn:hover{background:var(--ac-dim);border-color:var(--ac);color:var(--ac)}

/* Info popover */
.info-popover{position:fixed;z-index:2000;background:var(--bg-surf);border:1px solid var(--brd-m);border-radius:var(--r-m);padding:10px 12px;max-width:280px;font-size:11px;line-height:1.5;color:var(--t2);box-shadow:0 8px 24px rgba(0,0,0,.4);pointer-events:none;opacity:0;transition:opacity .15s}
.info-popover.visible{opacity:1;pointer-events:auto}
.info-popover::before{content:'';position:absolute;top:-5px;left:16px;width:10px;height:10px;background:var(--bg-surf);border-left:1px solid var(--brd-m);border-top:1px solid var(--brd-m);transform:rotate(45deg)}

/* Scope indicator */
.scope-indicator{padding:5px 8px;margin-bottom:6px;border-radius:var(--r-s);font-size:11px;display:flex;align-items:center;gap:5px}
.scope-indicator.scope-single{background:var(--ac-dim);color:var(--ac)}
.scope-indicator.scope-multi{background:var(--ac2-dim);color:var(--ac2)}
.scope-indicator .material-symbols-outlined{font-size:14px}
.scope-indicator .scope-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* NOTES */
.note-display{width:100%;padding:5px 6px;font-size:12px;line-height:1.4;color:var(--t1);background:var(--bg-surf);border:1px solid transparent;border-radius:var(--r-s);cursor:pointer;white-space:pre-wrap;word-break:break-word;min-height:22px;transition:all .1s}
.note-display:hover{border-color:var(--brd);background:var(--bg-elev)}
.note-display.empty{color:var(--t3);font-style:italic}
.note-textarea{width:100%;min-height:48px;padding:5px 6px;background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);color:var(--t1);resize:vertical;outline:none;font-size:12px;line-height:1.4}
.note-textarea:focus{border-color:var(--ac)}
.note-textarea::placeholder{color:var(--t3)}
.note-hint{font-size:10px;color:var(--t3);margin-top:2px}
.hidden{display:none!important}

/* STRUCTURED ANNOTATION */
.ann-item{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-m);padding:7px;border-left:3px solid var(--ac);margin-bottom:6px;transition:border-color .12s}

/* Note items */
.note-item{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);padding:6px;margin-bottom:4px}
.note-item-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}
.note-item-label{font-size:10px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.3px}
.note-item-rm{background:none;border:none;color:var(--t3);cursor:pointer;font-size:14px;padding:0;line-height:1}
.note-item-rm:hover{color:var(--danger)}

/* Level items */
.level-item{display:flex;align-items:center;gap:5px;padding:3px 4px;border-radius:var(--r-s);margin-bottom:2px}
.level-item:hover{background:var(--bg-hover)}
.level-name{flex:1;font-size:11px;padding:2px 4px;border:1px solid transparent;border-radius:var(--r-s);outline:none;cursor:text}
.level-name:hover{border-color:var(--brd)}
.level-name:focus{border-color:var(--ac);background:var(--bg-elev)}
.level-rm{background:none;border:none;color:var(--t3);cursor:pointer;font-size:14px;padding:0;opacity:0;transition:opacity .1s}
.level-item:hover .level-rm{opacity:1}
.level-rm:hover{color:var(--danger)}
.ann-item:hover{border-color:var(--brd-m)}.ann-item.selected{border-color:var(--ac);background:var(--ac-dim)}
.ann-hdr{display:flex;align-items:center;gap:5px;margin-bottom:4px}
.ann-num{font-family:var(--fm);font-size:10px;font-weight:700;background:var(--ac);color:var(--t-inv);width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ann-cat-sel{flex:1;background:var(--bg-surf);border:1px solid var(--brd);border-radius:var(--r-s);padding:2px 4px;font-size:10px;color:var(--t2);outline:none}
.ann-del{background:none;border:none;color:var(--t3);cursor:pointer;padding:1px;display:flex;align-items:center}
.ann-del:hover{color:var(--danger)}.ann-del .material-symbols-outlined{font-size:15px}
.ann-field{margin-top:4px}
.ann-field-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);margin-bottom:2px;display:flex;align-items:center;gap:3px}
.ann-field-label .material-symbols-outlined{font-size:12px}
.ann-note-display{width:100%;padding:3px 5px;font-size:11px;line-height:1.35;color:var(--t1);background:var(--bg-surf);border:1px solid transparent;border-radius:var(--r-s);cursor:pointer;white-space:pre-wrap;word-break:break-word;min-height:18px}
.ann-note-display:hover{border-color:var(--brd)}
.ann-note-display.empty{color:var(--t3);font-style:italic;font-size:10px}
.ann-note-edit{width:100%;min-height:32px;padding:3px 5px;background:var(--bg-surf);border:1px solid var(--brd);border-radius:var(--r-s);color:var(--t1);resize:vertical;outline:none;font-size:11px;line-height:1.35}
.ann-note-edit:focus{border-color:var(--ac)}
.ann-chain-link{font-size:10px;color:var(--blue);cursor:pointer;margin-top:3px;display:inline-flex;align-items:center;gap:2px}
.ann-chain-link:hover{text-decoration:underline}
.ann-chain-link .material-symbols-outlined{font-size:12px}

/* RELATIONS */
.rel-item{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);padding:5px 7px;margin-bottom:4px;font-size:11px;display:flex;align-items:center;gap:6px}
.rel-nums{font-family:var(--fm);font-weight:700;color:var(--ac);white-space:nowrap}
.rel-type{flex:1;color:var(--t2)}
.rel-rm{background:none;border:none;color:var(--t3);cursor:pointer;font-size:13px;padding:0}.rel-rm:hover{color:var(--danger)}

/* METADATA */
.meta-fields{display:flex;flex-direction:column;gap:6px}
.mf{margin-bottom:6px}
.mf label{display:block;font-size:10px;font-weight:600;color:var(--t3);margin-bottom:2px;text-transform:uppercase;letter-spacing:.3px}
.mf input[type="text"],.mf input[type="url"],.mf input[type="date"],.mf textarea,.mf select{width:100%;padding:4px 6px;background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);color:var(--t1);outline:none;font-size:11px}
.mf input:focus,.mf textarea:focus,.mf select:focus{border-color:var(--ac)}
.mf textarea{min-height:40px;resize:vertical;line-height:1.4}
.mf input::placeholder,.mf textarea::placeholder{color:var(--t3)}
.mf input[type="color"]{width:36px;height:26px;border:1px solid var(--brd);border-radius:var(--r-s);background:var(--bg-elev);cursor:pointer;padding:2px}

/* TAGS */
.tag-input-row{display:flex;gap:3px;margin-bottom:6px}
.tag-input{flex:1;padding:4px 6px;background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);color:var(--t1);outline:none;font-size:11px}
.tag-input:focus{border-color:var(--ac)}.tag-input::placeholder{color:var(--t3)}
.tags-cloud{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px}
.tag-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;background:var(--ac-dim);color:var(--ac);border-radius:10px;font-size:10px;font-weight:500}
.tag-chip .tag-rm{cursor:pointer;background:none;border:none;color:inherit;opacity:.6;font-size:13px;padding:0;line-height:1}.tag-chip .tag-rm:hover{opacity:1}
.corpus-tag{display:inline-flex;align-items:center;gap:2px;padding:1px 7px;background:var(--bg-elev);color:var(--t2);border-radius:10px;font-size:10px;cursor:pointer;border:1px solid var(--brd);transition:all .1s}
.corpus-tag:hover{background:var(--bg-hover);color:var(--t1)}
.corpus-tag .tcount{font-family:var(--fm);font-size:9px;color:var(--t3)}

/* SEARCH */
.search-builder{display:flex;flex-direction:column;gap:4px}
.search-row{display:flex;gap:4px}
.search-field{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);padding:4px 6px;font-size:11px;color:var(--t1)}
.search-input{flex:1;padding:4px 6px;background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);color:var(--t1);outline:none;font-size:11px}
.search-result{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);padding:6px 8px;margin-bottom:4px;font-size:11px;cursor:pointer}
.search-result:hover{border-color:var(--ac)}
.search-result-img{font-weight:600;color:var(--t1);margin-bottom:2px}
.search-result-text{color:var(--t2)}
.search-result mark{background:var(--ac-dim);color:var(--ac);border-radius:2px;padding:0 2px}

/* MODALS */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);z-index:1000;align-items:center;justify-content:center}
.modal-overlay.active{display:flex}
.modal{background:var(--bg-surf);border:1px solid var(--brd-m);border-radius:var(--r-l);width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 16px 50px rgba(0,0,0,.4)}
.modal-lg{width:560px}
.modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--brd)}
.modal-hdr h3{font-size:14px;font-weight:600}
.modal-x{background:none;border:none;color:var(--t2);cursor:pointer;font-size:18px;padding:2px}
.modal-body{padding:14px}
.modal-foot{display:flex;justify-content:flex-end;gap:5px;padding:10px 14px;border-top:1px solid var(--brd)}
.ck{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:12px;cursor:pointer}
.ck input{accent-color:var(--ac)}
.report-scope{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-m);padding:8px 10px;margin-bottom:10px;font-size:12px}
.report-opts{display:flex;flex-direction:column;gap:2px}
.report-opts h4{font-size:11px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.4px}

/* DIARY */
.diary-body{max-height:60vh;overflow-y:auto}
.diary-new{margin-bottom:12px}
.diary-new textarea{width:100%;padding:8px;background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-s);color:var(--t1);resize:vertical;outline:none;font-size:12px;line-height:1.5}
.diary-new textarea:focus{border-color:var(--ac)}
.diary-entry{background:var(--bg-elev);border:1px solid var(--brd);border-radius:var(--r-m);padding:10px;margin-bottom:8px}
.diary-entry-date{font-family:var(--fm);font-size:10px;color:var(--t3);margin-bottom:4px}
.diary-entry-text{font-size:12px;line-height:1.5;white-space:pre-wrap}
.diary-entry-rm{float:right;background:none;border:none;color:var(--t3);cursor:pointer;font-size:13px}.diary-entry-rm:hover{color:var(--danger)}

/* AUDIT */
.audit-entries{max-height:60vh;overflow-y:auto}
.audit-entry{padding:6px 0;border-bottom:1px solid var(--brd);font-size:11px}
.audit-entry-time{font-family:var(--fm);font-size:10px;color:var(--t3)}
.audit-entry-text{color:var(--t2);margin-top:2px}

/* TOAST */
.toast-container{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:3000;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}
.toast{background:var(--bg-surf);border:1px solid var(--brd-m);border-radius:var(--r-m);padding:8px 16px;font-size:12px;color:var(--t1);box-shadow:0 6px 20px rgba(0,0,0,.4);opacity:0;transform:translateY(10px);transition:all .2s var(--ease);pointer-events:auto;display:flex;align-items:center;gap:6px}
.toast.visible{opacity:1;transform:translateY(0)}
.toast .material-symbols-outlined{font-size:16px;color:var(--ac)}
.toast-warn .material-symbols-outlined{color:var(--warn)}

/* PROJECT SETTINGS MODAL */
.settings-section{margin-bottom:14px}
.settings-section h4{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);margin-bottom:6px}

/* GUIDED MODE */
.guide-tip{display:none;padding:8px 10px;margin:4px 0;background:rgba(78,205,196,.08);border:1px solid rgba(78,205,196,.2);border-radius:var(--r-m);font-size:11px;line-height:1.55;color:var(--t2)}
.guide-tip strong{color:var(--ac);font-weight:600}
.guide-tip em{color:var(--t1);font-style:normal;background:var(--bg-elev);padding:0 4px;border-radius:2px;font-family:var(--fm);font-size:10px}
.guide-tip-inline{margin:0;border-radius:0;border-left:none;border-right:none;border-top:none}
.guide-tip-overlay{position:absolute;top:8px;left:8px;right:8px;z-index:5;border-radius:var(--r-m);background:rgba(13,13,18,.88);backdrop-filter:blur(4px);border:1px solid rgba(78,205,196,.25)}

body.guided .guide-tip{display:block}

#btnGuideMode.active{background:var(--ac-dim);color:var(--ac);border-color:rgba(78,205,196,.3)}
#btnGuideMode.active .material-symbols-outlined{color:var(--ac)}
