/* ── Detail sidebar ── */
.detail-backdrop{position:fixed;inset:0;z-index:350;background:transparent;pointer-events:none;}
.detail-backdrop.open{pointer-events:auto;}
.detail-sidebar{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:95vw;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:351;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .22s cubic-bezier(.4,0,.2,1);}
.detail-sidebar.open{transform:translateX(0);}
.detail-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:10px;background:var(--bg);flex-shrink:0;}
.detail-title{font-size:13px;font-weight:500;color:var(--text);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;}
.detail-celex{font-size:11px;color:var(--text3);margin-top:2px;}
.detail-close{background:var(--bg3);border:none;color:var(--text2);cursor:pointer;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;transition:all .15s;margin-left:auto;}
.detail-close:hover{background:var(--border2);color:var(--text);}
.detail-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;padding:0 16px;}
.d-tab{padding:9px 14px;font-size:12px;font-weight:500;color:var(--text3);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;}
.d-tab:hover{color:var(--text2);}
.d-tab.active{color:var(--accent);border-bottom-color:var(--accent);}
.detail-body{flex:1;overflow-y:auto;}
.detail-body::-webkit-scrollbar{width:3px;}
.detail-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
.d-panel{display:none;padding:16px;}
.d-panel.active{display:block;}
.m-loading{text-align:center;color:var(--text3);padding:48px;font-size:13px;}

/* ── Animated phrase loader ── */
.lex-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px;opacity:0;transition:opacity .2s;}
.lex-loader.visible{opacity:1;}
.lex-loader-slot{height:18px;overflow:hidden;font-size:12px;color:var(--text3);text-align:center;min-width:160px;}
.lex-loader-slot-inner{display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);}
.lex-loader-slot-inner span{height:18px;line-height:18px;white-space:nowrap;}

/* ── Meta grid ── */
.meta-grid{display:grid;grid-template-columns:108px 1fr;gap:9px 14px;}
.mk{font-size:11px;color:var(--text3);font-weight:500;align-self:start;padding-top:2px;}
.mv{font-size:12px;color:var(--text2);word-break:break-word;line-height:1.5;}
.mv a{color:var(--accent);}
.mv a:hover{text-decoration:underline;}

/* ── Citations panel ── */
.cit-section{margin-bottom:16px;}
.cit-head{font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.8px;text-transform:uppercase;margin-bottom:8px;}
.cit-group{margin-bottom:14px;}
.cit-group-header{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;padding:4px 0;}
.cit-group-header:hover .cit-group-label{color:var(--accent);}
.cit-group-chevron{font-size:10px;color:var(--text3);flex-shrink:0;width:10px;}
.cit-group-label{font-size:11px;font-weight:600;color:var(--text);letter-spacing:.3px;text-transform:uppercase;display:flex;align-items:center;gap:6px;}
.cit-group-count{font-weight:400;color:var(--text3);}
.cit-group-desc{font-size:11px;color:var(--text3);margin:2px 0 0 16px;}
.cit-group-body{display:none;margin-top:8px;}
.cit-group-body.open{display:block;}
.cit-item{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;}
.cit-item:last-child{border-bottom:none;}
.cit-item:hover{color:var(--accent);}
.cit-celex{font-family:monospace;font-size:10px;color:var(--text3);background:var(--bg3);padding:1px 5px;border-radius:3px;flex-shrink:0;white-space:nowrap;}
.cit-title{font-size:12px;color:var(--text2);line-height:1.4;}
.cit-item:hover .cit-title{color:var(--accent);}
.cit-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.cit-tag{font-size:10px;font-weight:500;padding:2px 6px;border-radius:20px;}
.ct-reference{background:var(--accent-bg);color:var(--accent);}
.ct-repeal,.ct-repealedBy{background:rgba(192,57,43,.1);color:var(--danger);}
.ct-amends,.ct-amendedBy{background:rgba(180,83,9,.1);color:var(--amber);}
.ct-implements,.ct-legalBasis{background:rgba(37,99,235,.1);color:#2563eb;}
.ct-citedBy{background:var(--bg3);color:var(--text3);}

/* ── Versions timeline ── */
.vtl{padding:4px 0;}
.vtl-item{display:flex;gap:12px;padding:10px 0;position:relative;}
.vtl-item:not(:last-child)::before{content:'';position:absolute;left:6px;top:22px;bottom:-10px;width:1px;background:var(--border);}
.vtl-dot{width:13px;height:13px;border-radius:50%;border:2px solid var(--border2);background:var(--bg);flex-shrink:0;margin-top:3px;}
.vtl-dot--latest{background:var(--accent);border-color:var(--accent);}
.vtl-content{flex:1;min-width:0;}
.vtl-date{font-size:11px;color:var(--text3);font-weight:500;margin-bottom:2px;}
.vtl-label{font-size:12px;color:var(--text);line-height:1.4;margin-bottom:6px;}
.vtl-open{font-size:11px;font-weight:500;padding:3px 10px;border-radius:var(--radius-sm);border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;transition:all .12s;}
.vtl-open:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg);}
.vtl-proposals-wrap{border-bottom:1px solid var(--border);margin-bottom:4px;}
.vtl-proposals-header{display:flex;align-items:center;gap:7px;padding:9px 14px;cursor:pointer;user-select:none;}
.vtl-proposals-header:hover .vtl-proposals-label{color:var(--text);}
.vtl-proposals-chevron{font-size:10px;color:var(--text3);width:10px;flex-shrink:0;}
.vtl-proposals-label{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;flex:1;}
.vtl-proposals-count{font-size:11px;color:var(--text3);}
.vtl-proposals-body{display:none;padding:0 14px 10px;}
.vtl-proposals-body.open{display:block;}

/* ── Context panel ── */
.ctx-section{margin-bottom:20px;}
.ctx-section-label{font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.6px;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.ctx-item{padding:8px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:color .1s;}
.ctx-item:last-child{border-bottom:none;}
.ctx-item:hover .ctx-item-title{color:var(--accent);}
.ctx-item-title{font-size:13px;color:var(--text);line-height:1.4;margin-bottom:3px;}
.ctx-item-meta{display:flex;align-items:center;gap:8px;}
.ctx-item-celex{font-size:11px;color:var(--text3);font-family:monospace;}
.ctx-item-date{font-size:11px;color:var(--text3);}

/* ── National implementation panel ── */
.nat-summary{font-size:12px;color:var(--text3);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);}
.nat-country-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;user-select:none;}
.nat-country-row:last-of-type{border-bottom:none;}
.nat-country-row:hover{color:var(--accent);}
.nat-country-flag{font-size:15px;flex-shrink:0;}
.nat-country-name{font-size:13px;font-weight:500;color:var(--text);flex:1;}
.nat-country-row:hover .nat-country-name{color:var(--accent);}
.nat-country-count{font-size:11px;color:var(--text3);white-space:nowrap;}
.nat-country-chevron{font-size:11px;color:var(--text3);margin-left:4px;transition:transform .15s;}
.nat-measures-list{display:none;padding:4px 0 8px 28px;}
.nat-measures-list.open{display:block;}
.nat-measure-row{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);cursor:pointer;}
.nat-measure-row:last-child{border-bottom:none;}
.nat-measure-row:hover .nat-measure-title{color:var(--accent);}
.nat-measure-celex{font-family:monospace;font-size:10px;color:var(--text3);background:var(--bg3);padding:1px 5px;border-radius:3px;flex-shrink:0;white-space:nowrap;}
.nat-measure-title{font-size:12px;color:var(--text2);line-height:1.4;}
