/* ── Documents tab panel ── */
#panel-documents{flex-direction:column;}

/* ── Document bar (open docs tabs) ── */
.doc-bar{flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:thin;scrollbar-color:var(--border2) transparent;}
.doc-bar::-webkit-scrollbar{height:3px;}
.doc-bar::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
.doc-bar-inner{display:inline-flex;align-items:stretch;gap:0;min-width:100%;padding:0;}
.doc-bar-empty{font-size:12px;color:var(--text3);padding:10px 16px;white-space:nowrap;align-self:center;}
.doc-bar-item{display:inline-flex;align-items:center;gap:8px;padding:0 14px 0 0;height:40px;font-size:12px;font-weight:500;color:var(--text2);cursor:pointer;border:none;background:transparent;border-right:1px solid var(--border);white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s;position:relative;}
.doc-bar-item:hover{background:var(--bg3);color:var(--text);}
.doc-bar-item.active{color:var(--accent);background:var(--accent-bg);}
.doc-bar-item.active::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent);}
.doc-bar-label{max-width:200px;overflow:hidden;text-overflow:ellipsis;}
.doc-bar-badge{font-size:9px;font-weight:700;letter-spacing:.4px;padding:1px 5px;border-radius:10px;text-transform:uppercase;flex-shrink:0;}
.doc-bar-badge.bm{background:var(--accent-bg);color:var(--accent);}
.doc-bar-badge.hist{background:var(--bg3);color:var(--text3);}
.doc-bar-close{font-size:13px;color:var(--text3);line-height:1;padding:2px;border-radius:3px;transition:color .1s;}
.doc-bar-close:hover{color:var(--danger);}
.doc-bar-sep{font-size:11px;color:var(--text3);align-self:center;padding:0 2px;flex-shrink:0;user-select:none;}
.doc-bar-folder-icon{display:inline-flex;align-items:center;font-size:13px;padding:0 3px;flex-shrink:0;background:none;border:none;cursor:pointer;transition:opacity .15s;}
.doc-bar-folder-icon:hover{opacity:.65;}
.doc-bar-folder-empty{color:var(--text3) !important;opacity:.35;}
.doc-bar-folder-empty:hover{opacity:.7 !important;}
.doc-bar-bm-wrap{display:inline-flex;align-items:stretch;border-right:1px solid var(--border);flex-shrink:0;transition:background .12s;padding-left:4px;}
.doc-bar-bm-wrap:hover{background:var(--bg3);}
.doc-bar-bm-wrap.active{background:var(--accent-bg);position:relative;}
.doc-bar-bm-wrap.active::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent);}
.doc-bar-bm-wrap .doc-bar-item{border-right:none;background:transparent !important;}
.doc-bar-bm-wrap .doc-bar-item:hover{background:transparent !important;}
.doc-bar-bm-wrap.active .doc-bar-item{color:var(--accent);}
.doc-bar-bm-star{background:none;border:none;cursor:pointer;font-size:15px;color:#ef4444;padding:0 4px;transition:opacity .15s;flex-shrink:0;}
.doc-bar-bm-star:hover{opacity:.55;}
.doc-bar-bm-folder{font-size:15px;padding:0 4px;flex-shrink:0;}
.doc-bar-section-label{font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.6px;text-transform:uppercase;padding:0 10px 0 14px;align-self:center;white-space:nowrap;flex-shrink:0;border-right:1px solid var(--border);height:100%;display:inline-flex;align-items:center;}
button.doc-bar-folder-dropdown{background:none;border:none;cursor:pointer;transition:background .15s;border-right:1px solid var(--border);align-self:stretch;height:auto;}
button.doc-bar-folder-dropdown:hover{background:var(--bg3);color:var(--text2);}

/* ── Document viewer wrapper ── */
.doc-viewer-wrap{flex:1;min-height:0;overflow:hidden;display:flex;}
.doc-viewer-wrap .lex-viewer{flex:1;min-height:0;}

/* ── In-document search bar ── */
.doc-search-bar{flex-shrink:0;display:flex;align-items:center;background:var(--surface);border-bottom:1px solid var(--border);padding:6px 12px;gap:8px;}
.doc-search-wrap{flex:1;position:relative;display:flex;align-items:center;}
.doc-search-input{width:100%;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:6px 10px 6px 32px;color:var(--text);font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;}
.doc-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);}
.doc-search-input::placeholder{color:var(--text3);}
.doc-search-icon{position:absolute;left:10px;color:var(--text3);font-size:13px;pointer-events:none;}
.doc-search-count{position:absolute;right:10px;font-size:11px;color:var(--text3);white-space:nowrap;pointer-events:none;}
.doc-search-nav{display:flex;gap:2px;flex-shrink:0;}
.doc-search-nav-btn{width:28px;height:28px;border-radius:var(--radius-xs);border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .15s;}
.doc-search-nav-btn:hover{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-bg2);}
.doc-search-nav-btn:disabled{opacity:.35;cursor:default;}
.doc-search-clear{width:28px;height:28px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:color .15s;flex-shrink:0;}
.doc-search-clear:hover{color:var(--text);}

/* ── In-document search highlights ── */
.doc-hl{background:#fef08a;color:#78350f;border-radius:2px;padding:0 1px;}
.doc-hl.doc-hl-active{background:#f59e0b;color:#fff;border-radius:2px;outline:2px solid #f59e0b;}
[data-theme="dark"] .doc-hl{background:rgba(250,204,21,.35);color:#fef9c3;}
[data-theme="dark"] .doc-hl.doc-hl-active{background:#d97706;color:#fff;outline-color:#d97706;}

/* ── Bayern Decision viewer ── */
.by-decision-body{padding:24px 32px;max-width:860px;margin:0 auto;}

/* Entry header: court, AZ, date */
.by-dec-header{margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--border);}
.by-dec-az{font-size:18px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:6px;}
.by-dec-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--text2);}
.by-dec-meta-item{display:flex;align-items:center;gap:4px;}
.by-dec-gerichtsbarkeit{font-size:10px;font-weight:700;letter-spacing:.4px;padding:2px 7px;border-radius:20px;text-transform:uppercase;background:var(--bg3);color:var(--text2);}

/* gesetze-bayern.de decision HTML elements */
.by-decision-body .entsueber{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.4px;text-transform:uppercase;margin-bottom:14px;}
.by-decision-body .rsprbox{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:20px;font-size:12px;}
.by-decision-body .rsprboxzeile{display:flex;gap:8px;padding:3px 0;line-height:1.5;color:var(--text2);}
.by-decision-body .rsprboxzeile:not(:last-child){border-bottom:1px solid var(--border);}
.by-decision-body .rsprboxzeile b,.by-decision-body .rsprboxzeile strong{color:var(--text);min-width:140px;flex-shrink:0;font-weight:600;}

/* Numbered paragraphs (Randnummern) */
.by-decision-body .rdblock{display:flex;gap:12px;margin-bottom:10px;line-height:1.9;font-size:15px;color:var(--text);}
.by-decision-body .rdblock .rd{min-width:28px;flex-shrink:0;font-size:11px;font-weight:600;color:var(--text3);padding-top:3px;text-align:right;}
.by-decision-body .rdblock .absatz{flex:1;}

/* Fallback: unnumbered paragraphs */
.by-decision-body p{font-size:15px;line-height:1.9;color:var(--text);margin:0 0 10px;}
.by-decision-body a{color:var(--accent);}
.by-decision-body a:hover{text-decoration:underline;}
.by-decision-body h2,.by-decision-body h3{font-size:13px;font-weight:700;color:var(--text);margin:18px 0 8px;}
.by-decision-html,.bund-decision-html{font-size:15px;line-height:1.9;font-family:Georgia,'Times New Roman',serif;color:var(--text);}

/* No HTML stored yet placeholder */
.by-dec-no-html{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:8px;color:var(--text3);font-size:13px;}
.by-dec-no-html i{font-size:32px;opacity:.4;}

[data-theme="dark"] .by-decision-body .rsprbox{background:rgba(255,255,255,.04);}

/* ── Gavel button (Entscheidungen zu Paragraph) ── */
.by-citing-btn{background:var(--bg3);border:1px solid var(--border);cursor:pointer;padding:2px 6px;border-radius:var(--radius-xs);color:var(--text3);font-size:14px;line-height:1;transition:color .12s,background .12s,border-color .12s;flex-shrink:0;margin-left:4px;}
.by-citing-btn:hover{color:var(--accent);background:var(--accent-bg);}

/* ── Citing decisions sidebar (popup-style) ── */
.by-citing-sidebar{position:fixed;top:10px;right:10px;bottom:10px;width:320px;max-width:calc(100vw - 20px);background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:8500;display:flex;flex-direction:column;overflow:hidden;transform:translateX(calc(100% + 20px));transition:transform .22s cubic-bezier(.4,0,.2,1);}
.by-citing-sidebar.open{transform:translateX(0);}
.by-citing-sidebar-head{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg3);border-bottom:1px solid var(--border);flex-shrink:0;}
.by-citing-sidebar-title{font-size:13px;font-weight:700;color:var(--accent);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.by-citing-count{font-size:11px;font-weight:700;background:var(--accent-bg);color:var(--accent);padding:1px 7px;border-radius:20px;flex-shrink:0;}
.by-citing-list{flex:1;overflow-y:auto;}
.by-citing-list::-webkit-scrollbar{width:4px;}
.by-citing-list::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px;}
.by-citing-item{padding:9px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s;}
.by-citing-item:last-child{border-bottom:none;}
.by-citing-item:hover{background:var(--bg3);}
.by-citing-az{font-size:12px;font-weight:500;color:var(--text);line-height:1.4;display:flex;align-items:center;gap:6px;}
.by-citing-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--accent-bg);color:var(--accent);padding:1px 5px;border-radius:3px;flex-shrink:0;}
.by-citing-meta{font-size:11px;color:var(--text3);margin-top:2px;}
.by-citing-empty{padding:24px 14px;font-size:12px;color:var(--text3);text-align:center;}
.by-citing-loading{padding:16px 14px;font-size:12px;color:var(--text3);text-align:center;}
.by-citing-load-more{display:block;width:calc(100% - 28px);margin:10px 14px;padding:7px 0;background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-xs);font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:background .12s,color .12s;}
.by-citing-load-more:hover{background:var(--accent);color:#fff;}

/* ── Bundesgerichtliche Entscheidung HTML (docLayout* classes from rechtsprechung-im-internet.de) ── */
.bund-decision-html{margin-top:8px;}
.bund-decision-html .bund-leitsatz-box{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:20px;font-size:12px;line-height:1.5;color:var(--text2);}
.bund-decision-html .bund-leitsatz-box>b:first-child{display:block;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text3);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.bund-decision-html .bund-leitsatz-box p,.bund-decision-html .bund-leitsatz-box dd{font-size:12px;line-height:1.5;margin-bottom:4px;}
[data-theme="dark"] .bund-decision-html .bund-leitsatz-box{background:rgba(255,255,255,.04);}
.bund-decision-html .docLayoutTitel{font-size:14px;font-weight:700;color:var(--text);margin-bottom:16px;line-height:1.45;}
.bund-decision-html .docLayoutText{margin-bottom:20px;}
.bund-decision-html .docLayoutText h1,.bund-decision-html .docLayoutText h2{font-size:12px;font-weight:700;color:var(--text3);letter-spacing:.4px;text-transform:uppercase;margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border);}
.bund-decision-html .docLayoutText h3,.bund-decision-html .docLayoutText h4{font-size:12px;font-weight:600;color:var(--text2);margin:12px 0 6px;}
/* Section divider headings (Tenor, Gründe, etc.) */
.bund-decision-html h3.doc,.bund-decision-html h4.doc{font-size:11px;font-weight:700;color:var(--text3);letter-spacing:.5px;text-transform:uppercase;margin:20px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border);}
.bund-decision-html .docLayoutMarginTopMore{margin-top:20px;}
/* Verfahrensgang section (MinMax = collapsible in JPortal, we show it static) */
.bund-decision-html .docLayoutMinMax{margin:16px 0 4px;}
.bund-decision-html .docLayoutMinMax h3{font-size:11px;font-weight:700;color:var(--text3);letter-spacing:.5px;text-transform:uppercase;padding-bottom:4px;border-bottom:1px solid var(--border);margin:0;}
.bund-decision-html .docLayoutMinMaxText{font-size:12px;color:var(--text2);line-height:1.6;padding:8px 10px;background:var(--bg2);border-radius:var(--radius-sm);margin-bottom:14px;}
/* Randnummern beside paragraphs (dl.RspDL: dt=number, dd=text) */
.bund-decision-html dl.RspDL{display:flex;gap:12px;align-items:flex-start;margin:0 0 8px;}
.bund-decision-html dl.RspDL dt{flex-shrink:0;width:28px;font-size:10px;color:var(--text3);font-weight:600;padding-top:4px;text-align:right;line-height:1;}
.bund-decision-html dl.RspDL dt a{color:var(--text3);text-decoration:none;}
.bund-decision-html dl.RspDL dd{flex:1;min-width:0;margin:0;}
.bund-decision-html .docLayoutParNr{font-size:11px;color:var(--text3);font-weight:600;margin-bottom:2px;}
.bund-decision-html .docLayoutPar{font-size:15px;line-height:1.9;color:var(--text);margin-bottom:10px;}
.bund-decision-html p{font-size:15px;line-height:1.9;color:var(--text);margin:0 0 10px;}
.bund-decision-html a{color:var(--accent);}
.bund-decision-html a:hover{text-decoration:underline;}
.bund-decision-html table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:14px;}
.bund-decision-html td,.bund-decision-html th{padding:4px 8px;border:1px solid var(--border);vertical-align:top;}
.bund-decision-html th{font-weight:600;background:var(--bg3);}
.bund-decision-plaintext{font-size:13.5px;line-height:1.75;color:var(--text);white-space:pre-wrap;}

/* ── Verfahrensgang / Vorinstanz Timeline ── */
.by-vg-timeline{padding:14px 0 8px;position:relative;}
.by-vg-node{display:flex;gap:10px;padding:0 14px 0 16px;position:relative;cursor:default;}
.by-vg-node:not(:last-child)::before{content:'';position:absolute;left:20px;top:7px;bottom:-8px;width:2px;background:var(--border2);}
.by-vg-node:not(:last-child){padding-bottom:16px;}
.by-vg-node-last{padding-bottom:8px;}
.by-vg-dot{width:10px;height:10px;border-radius:50%;background:var(--text3);border:2px solid var(--bg);flex-shrink:0;margin-top:2px;position:relative;z-index:1;}
.by-vg-dot-current{background:var(--accent);border-color:var(--accent-bg);}
.by-vg-content{flex:1;min-width:0;}
.by-vg-datum{font-size:10px;color:var(--text3);margin-bottom:1px;}
.by-vg-gericht{font-size:11px;font-weight:600;color:var(--text2);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.by-vg-vart{font-size:10px;color:var(--text3);margin-bottom:1px;}
.by-vg-az{font-size:11px;color:var(--text2);font-family:monospace;line-height:1.4;word-break:break-all;}
.by-vg-az-unknown{color:var(--text3);}
.by-vg-node-current .by-vg-gericht{color:var(--text);font-weight:700;}
.by-vg-node-current .by-vg-az{color:var(--accent);font-weight:600;}
.by-vg-content-link{cursor:pointer;}
.by-vg-node:has(.by-vg-content-link):hover .by-vg-gericht{color:var(--accent);}
.by-vg-node:has(.by-vg-content-link):hover .by-vg-az{color:var(--accent);}
.by-vg-node:has(.by-vg-content-link):hover .by-vg-dot{background:var(--accent);}
.by-vg-node:has(.by-vg-content-link):hover{background:var(--accent-bg);border-radius:var(--radius-sm);}
/* Toast */
.by-vg-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);padding:7px 16px;font-size:12px;color:var(--text2);box-shadow:var(--shadow-lg);z-index:9000;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;}
.by-vg-toast.visible{opacity:1;transform:translateX(-50%) translateY(0);}

/* ── Paragraph citation links in decision full text ── */
.lex-para-link{color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);}
.lex-para-link:hover{text-decoration-color:var(--accent);}

/* ── Keyboard shortcut help overlay ── */
#kb-help-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9999;}
.kb-help-box{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);padding:28px 32px;box-shadow:var(--shadow-lg);min-width:300px;}
.kb-help-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:18px;}
.kb-help-grid{display:grid;grid-template-columns:auto 1fr;gap:5px 18px;align-items:center;}
.kb-help-section{grid-column:1/-1;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.kb-help-section:first-child{margin-top:0;padding-top:0;border-top:none;}
.kb-help-grid kbd{background:var(--bg3);border:1px solid var(--border2);border-radius:4px;padding:2px 7px;font-size:11px;font-family:monospace;color:var(--text2);white-space:nowrap;justify-self:end;}
.kb-help-grid span{font-size:13px;color:var(--text2);}
