/* Indicators library dialog on the charting page (Views/Market/Charting.cshtml).
   Moved out of the view's <style> block to keep the Web string heap under budget. */
.indicator-library-dialog {
    --il-accent: var(--bs-info);
    --il-accent-rgb: var(--bs-info-rgb);
    --il-soft: rgba(var(--il-accent-rgb), .12);
    --il-surface: var(--panel-2, var(--panel));
}
.indicator-library-dialog[hidden] { display:none!important; }
.indicator-library-dialog { width:min(960px,calc(100vw - 32px)); height:min(760px,calc(100dvh - 48px)); max-width:none; max-height:none; margin:auto; padding:0; border:1px solid var(--border-color); border-radius:18px; background:var(--panel); color:var(--bs-body-color); box-shadow:0 30px 90px rgb(0 0 0 / .45), 0 0 0 1px rgb(255 255 255 / .03) inset; overflow:hidden; }
.indicator-library-dialog[open] { display:flex; flex-direction:column; animation:il-pop .16s ease-out; }
.indicator-library-dialog::backdrop { background:rgb(4 8 14 / .58); backdrop-filter:blur(3px); }
@keyframes il-pop { from { opacity:0; transform:translateY(8px) scale(.985); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .indicator-library-dialog[open] { animation:none; } }
body:has(.indicator-library-dialog[open]) { overflow:hidden; }

/* Header */
.indicator-library-header { display:flex; flex:none; align-items:center; justify-content:space-between; padding:1.25rem 1.5rem .85rem; gap:1rem; background:linear-gradient(180deg, rgba(var(--il-accent-rgb), .07), transparent); }
.indicator-library-header h2 { font-size:1.35rem; font-weight:700; letter-spacing:-.01em; margin:0; }
.indicator-library-header .badge { border-radius:999px; padding:.32em .7em; font-weight:600; letter-spacing:.02em; }
.indicator-library-header .btn-close { padding:.6rem; border-radius:10px; background-size:.8rem; opacity:.65; transition:background-color .15s, opacity .15s; }
.indicator-library-header .btn-close:hover { opacity:1; background-color:var(--hover-bg); }

/* Search: one rounded field; focus rings the whole field instead of the bare input */
.indicator-library-dialog .charting-studies { flex:none; min-width:0; padding:0 1.5rem 1rem; }
.indicator-library-search { flex-wrap:nowrap; align-items:center; padding:.3rem; border:1px solid var(--border-color); border-radius:14px; background:var(--il-surface); transition:border-color .15s, box-shadow .15s; }
.indicator-library-search:focus-within { border-color:var(--il-accent); box-shadow:0 0 0 4px rgba(var(--il-accent-rgb), .18); }
.indicator-library-search > .input-group-text { border:0; background:transparent; padding:0 .4rem 0 .75rem; color:var(--muted-text); }
.indicator-library-search:focus-within > .input-group-text { color:var(--il-accent); }
.indicator-library-search > input.form-control { min-width:0; min-height:42px; border:0; background:transparent; box-shadow:none; padding-inline:.35rem; font-size:1rem; }
.indicator-library-search > input.form-control:focus,
.indicator-library-search > input.form-control:focus-visible { outline:0!important; box-shadow:none!important; background:transparent; }
.indicator-library-search > .btn { flex:none; width:42px; height:42px; margin-left:.25rem; display:inline-grid; place-items:center; padding:0; border:0; border-radius:10px!important; background:var(--il-soft); color:var(--il-accent); transition:background-color .15s, color .15s; }
.indicator-library-search > .btn:hover { background:var(--il-accent); color:#fff; }

/* Body: category rail + results */
.indicator-library-body { display:grid; grid-template-columns:220px minmax(0,1fr); min-height:0; flex:1; border-block:1px solid var(--border-color); }
.indicator-library-nav { display:flex; flex-direction:column; gap:.2rem; padding:.85rem .7rem; border-right:1px solid var(--border-color); background:rgba(var(--il-accent-rgb), .025); overflow:auto; }
.indicator-library-nav button { position:relative; display:flex; align-items:center; gap:.7rem; text-align:start; border:0; border-radius:10px; padding:.62rem .75rem; background:transparent; color:inherit; font-size:.9rem; transition:background-color .12s, color .12s; }
.indicator-library-nav button > i { flex:none; display:inline-grid; place-items:center; width:28px; height:28px; border-radius:8px; color:var(--muted-text); background:var(--hover-bg); font-size:.9rem; transition:inherit; }
.indicator-library-nav button:hover { background:var(--hover-bg); }
.indicator-library-nav button[aria-pressed="true"] { background:var(--il-soft); color:var(--bs-info-text-emphasis,var(--il-accent)); font-weight:600; }
.indicator-library-nav button[aria-pressed="true"] > i { background:var(--il-accent); color:#fff; }
.indicator-library-results { min-width:0; min-height:0; display:flex; flex-direction:column; }
.indicator-library-result-heading { display:flex; align-items:center; justify-content:space-between; padding:.7rem 1.25rem; color:var(--muted-text); font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; border-bottom:1px solid var(--border-color); }
.indicator-library-result-heading #studyResultCount:not(:empty) { min-width:1.9rem; padding:.15rem .55rem; border-radius:999px; background:var(--hover-bg); color:var(--bs-body-color); text-align:center; letter-spacing:0; }
.indicator-library-dialog .study-autocomplete-menu { display:block; position:static; flex:1; min-height:0; max-height:none; margin:0; padding:.45rem .6rem; border:0; border-radius:0; box-shadow:none; background:transparent; overscroll-behavior:contain; }

/* Result rows */
.indicator-library-row { display:flex; align-items:center; border-radius:10px; transition:background-color .12s; }
.indicator-library-row + .indicator-library-row { margin-top:2px; }
.indicator-library-row:hover { background:var(--hover-bg); }
.indicator-library-favorite { flex:none; border:0; border-radius:8px; background:transparent; color:var(--muted-text); width:40px; height:44px; transition:color .12s, transform .12s; }
.indicator-library-favorite:hover { color:var(--bs-warning); transform:scale(1.12); }
.indicator-library-favorite[aria-pressed="true"] { color:var(--bs-warning-text-emphasis,var(--bs-warning)); }
.indicator-library-dialog .study-autocomplete-item { min-width:0; min-height:54px; padding:.6rem .6rem .6rem .35rem; border-radius:10px; }
.indicator-library-dialog .study-autocomplete-item:hover { background:transparent; }
.indicator-library-dialog .study-autocomplete-item[aria-pressed="true"] strong { color:var(--bs-info-text-emphasis,var(--il-accent)); }
.indicator-library-dialog .study-autocomplete-item > span:first-child { min-width:0; display:flex; flex-direction:column; gap:.1rem; }
.indicator-library-dialog .study-autocomplete-item strong { overflow-wrap:anywhere; font-size:.92rem; font-weight:600; }
.indicator-library-dialog .study-autocomplete-item small { font-size:.7rem; letter-spacing:.04em; }
.indicator-library-dialog .study-autocomplete-item .badge { flex-shrink:0; border-radius:999px; padding:.3em .65em; font-weight:600; }
.indicator-plan-badges { display:flex; align-items:center; justify-content:flex-end; gap:.35rem; flex-wrap:wrap; }
.indicator-library-row.is-plan-locked .study-autocomplete-item { opacity:.72; }

/* Empty state */
.indicator-library-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; min-height:220px; padding:2rem 1rem; text-align:center; color:var(--muted-text); }
.indicator-library-empty > i { display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--il-soft); color:var(--il-accent); font-size:1.4rem; }
.indicator-library-empty > strong { color:var(--bs-body-color); font-size:.98rem; font-weight:600; }
.indicator-library-empty > span { font-size:.82rem; }

/* Footer */
.indicator-library-footer { flex:none; padding:.85rem 1.25rem; background:rgba(var(--il-accent-rgb), .025); }
.indicator-library-presets { display:flex; align-items:end; flex-wrap:wrap; gap:.6rem; }
.indicator-library-presets > div { flex:1; min-width:130px; }
.indicator-library-presets .form-select { border-radius:10px; min-height:36px; }
.indicator-library-presets > .btn { max-width:100%; min-height:36px; border-radius:10px; }
.indicator-library-actions { display:flex; align-items:center; gap:.5rem; margin-top:.75rem; }
.indicator-library-actions p { flex:1; margin:0; font-size:.72rem; }
.indicator-library-actions .btn { border-radius:10px; }
.indicator-library-dialog button:focus-visible { outline:2px solid var(--il-accent)!important; outline-offset:-2px; box-shadow:none!important; }
.indicator-library-dialog .btn-outline-secondary { --bs-btn-color:var(--bs-body-color); --bs-btn-border-color:var(--border-color); }
[data-bs-theme="dark"] .indicator-library-dialog .text-secondary { color:#aab6c5!important; }

@media (max-width:600px) {
    .indicator-library-dialog { width:calc(100vw - 16px); height:calc(100dvh - 16px); border-radius:14px; }
    .indicator-library-header { padding:.75rem 1rem; }
    .indicator-library-header h2 { font-size:1.15rem; }
    .indicator-library-dialog .charting-studies { padding:0 .75rem .75rem; }
    .indicator-library-body { display:flex; flex-direction:column; }
    .indicator-library-nav { flex-direction:row; flex:none; padding:.5rem; border-right:0; border-bottom:1px solid var(--border-color); }
    .indicator-library-nav button { white-space:nowrap; padding:.45rem .6rem; }
    .indicator-library-nav button > i { width:24px; height:24px; }
    .indicator-library-results { flex:1; }
    .indicator-library-footer { padding:.6rem .75rem; max-height:35%; overflow:auto; }
    .indicator-library-actions { flex-wrap:wrap; }
    .indicator-library-actions p { flex-basis:100%; }
    .indicator-library-presets > .btn { font-size:.75rem; }
}
