/* ==========================================================================
   Фильтры «Документов» и реестр ЭСФ (doc-filters.js, window.DOCF; Нургыз 14.10.2026).
   Строка фильтров .dflt — над таблицей во вкладке «Счета/акты/ЭСФ» → «Документы»; списки фильтров
   .dflt-pop — в body (position: fixed). Палитра как у «Подготовки документов»: основной #074783.
   ========================================================================== */
:is(.dflt, .dflt-pop, .dflt-nothing) {
    --df-card: #ffffff;
    --df-bg: #f8fafc;
    --df-bdr: #e2e8f0;
    --df-bdr-strong: #cbd5e1;
    --df-ink: #0f172a;
    --df-ink2: #334155;
    --df-ink3: #64748b;
    --df-ink4: #94a3b8;
    --df-pri: #074783;
    --df-pri-2: #0b5aa6;
    --df-pri-ink: #074783;
    --df-pri-soft: rgba(7, 71, 131, .07);
    --df-pri-line: rgba(7, 71, 131, .3);
    --df-xls: #107c41;
    --df-xls-2: #0b6b37;
    --df-warn-bg: #fff7ed;
    --df-warn-ink: #9a3412;
    --df-shadow: 0 18px 48px rgba(15, 23, 42, .18), 0 3px 10px rgba(15, 23, 42, .08);
}
body[data-theme="dark"] :is(.dflt, .dflt-pop, .dflt-nothing) {
    --df-card: #0f172a;
    --df-bg: #121d31;
    --df-bdr: #1f2b3f;
    --df-bdr-strong: #2c3b54;
    --df-ink: #e2e8f0;
    --df-ink2: #cbd5e1;
    --df-ink3: #94a3b8;
    --df-ink4: #64748b;
    --df-pri: #2563eb;
    --df-pri-2: #1d4ed8;
    --df-pri-ink: #93c5fd;
    --df-pri-soft: rgba(96, 165, 250, .12);
    --df-pri-line: rgba(96, 165, 250, .42);
    --df-xls: #15803d;
    --df-xls-2: #166534;
    --df-warn-bg: rgba(251, 146, 60, .14);
    --df-warn-ink: #fdba74;
    --df-shadow: 0 18px 48px rgba(0, 0, 0, .55), 0 3px 10px rgba(0, 0, 0, .3);
}

/* ---------- строка фильтров ---------- */
.dflt {
    margin: 0 0 12px; padding: 10px 12px 8px; border: 1px solid var(--df-bdr); border-radius: 10px;
    background: var(--df-card); box-shadow: 0 1px 2px rgba(15, 23, 42, .04); transition: border-color .2s;
}
.dflt[hidden] { display: none; }
.dflt.is-filtered { border-color: var(--df-pri-line); }
.dflt-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.dflt-search {
    position: relative; display: inline-flex; align-items: center; gap: 7px; flex: 0 1 330px; min-width: 240px;
    height: 34px; padding: 0 30px 0 11px; box-sizing: border-box; border: 1px solid var(--df-bdr); border-radius: 9px;
    background: var(--df-bg); color: var(--df-ink3); cursor: text; transition: border-color .15s, box-shadow .15s, background .15s;
}
.dflt-search:hover { border-color: var(--df-bdr-strong); }
.dflt-search:focus-within { border-color: var(--df-pri); background: var(--df-card); box-shadow: 0 0 0 3px var(--df-pri-soft); }
.dflt-search input { flex: 1; min-width: 0; height: 100%; border: none; outline: none; background: transparent; font: inherit; font-size: 13px; color: var(--df-ink); }
.dflt-search input::placeholder { color: var(--df-ink4); }
.dflt-search-x {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: none; align-items: center; justify-content: center;
    width: 22px; height: 22px; padding: 0; border: none; border-radius: 50%; background: transparent; color: var(--df-ink3); cursor: pointer;
}
.dflt-search.has-v .dflt-search-x { display: inline-flex; }
.dflt-search-x:hover { background: var(--df-pri-soft); color: var(--df-pri-ink); }

.dflt-pills { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dflt-pill {
    display: inline-flex; align-items: center; gap: 6px; max-width: 340px; height: 34px; padding: 0 9px 0 11px; box-sizing: border-box;
    border: 1px solid var(--df-bdr); border-radius: 9px; background: var(--df-card); color: var(--df-ink2);
    font: inherit; font-size: 13px; white-space: nowrap; cursor: pointer; transition: border-color .15s, background .15s, color .15s, box-shadow .15s;
}
.dflt-pill svg { color: var(--df-ink3); transition: color .15s; }
.dflt-pill:hover { border-color: var(--df-pri-line); color: var(--df-pri-ink); }
.dflt-pill:hover svg { color: var(--df-pri-ink); }
.dflt-pill.open { border-color: var(--df-pri); box-shadow: 0 0 0 3px var(--df-pri-soft); }
.dflt-pill:focus-visible { outline: 2px solid var(--df-pri); outline-offset: 2px; }
.dflt-pill.on { background: var(--df-pri-soft); border-color: var(--df-pri-line); color: var(--df-pri-ink); }
.dflt-pill.on svg { color: var(--df-pri-ink); }
.dflt-pill-l { font-weight: 500; }
.dflt-pill.on .dflt-pill-l::after { content: ':'; }
.dflt-pill-v { min-width: 0; max-width: 200px; overflow: hidden; text-overflow: ellipsis; font-weight: 700; }
.dflt-pill-chev { display: inline-flex; margin-left: -1px; opacity: .75; }
.dflt-pill.open .dflt-pill-chev svg { transform: rotate(180deg); }
.dflt-pill-chev svg { transition: transform .15s; }
.dflt-pill-x {
    display: inline-flex; align-items: center; justify-content: center; flex: none; width: 20px; height: 20px; margin-right: -3px;
    border-radius: 50%; transition: background .12s;
}
.dflt-pill-x:hover { background: var(--df-pri); }
.dflt-pill-x:hover svg { color: #fff; }

.dflt-right { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.dflt-right:empty { display: none; }
.dflt-xls {
    display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 11px; box-sizing: border-box;
    border: 1px solid var(--df-xls); border-radius: 9px; background: var(--df-xls); color: #fff;
    font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer;
    box-shadow: 0 1px 2px rgba(16, 124, 65, .25); transition: background .15s, box-shadow .15s, transform .1s;
}
.dflt-xls svg { color: #fff; }
.dflt-xls:hover:not(:disabled) { background: var(--df-xls-2); box-shadow: 0 4px 12px rgba(16, 124, 65, .28); }
.dflt-xls:active:not(:disabled) { transform: translateY(1px); }
.dflt-xls:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.dflt-xls.busy { cursor: progress; opacity: .85; }
.dflt-xls.busy svg { animation: dflt-pulse 1s ease-in-out infinite; }
.dflt-xls-tag { padding: 1px 6px; border-radius: 5px; background: rgba(255, 255, 255, .2); font-size: 10.5px; font-weight: 700; letter-spacing: .3px; }
@keyframes dflt-pulse { 50% { opacity: .35; } }

.dflt-sum {
    display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; min-height: 34px; margin-top: 8px; padding-top: 8px;
    border-top: 1px dashed var(--df-bdr); font-size: 12.5px; color: var(--df-ink3);
}
.dflt-sum-l { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.dflt-sum-n b { color: var(--df-ink); font-weight: 700; }
.dflt-sum-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--df-ink4); }
.dflt-sum-money { color: var(--df-ink); font-weight: 700; font-variant-numeric: tabular-nums; cursor: default; }
.dflt-sum-note {
    display: inline-flex; align-items: center; gap: 4px; padding: 1px 9px 1px 7px; border-radius: 999px;
    background: var(--df-warn-bg); color: var(--df-warn-ink); font-size: 11.5px; cursor: help;
}
.dflt-reset {
    display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px;
    border: none; border-radius: 7px; background: transparent; color: var(--df-pri-ink); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.dflt-reset:hover { background: var(--df-pri-soft); }

/* ---------- ничего не нашлось ---------- */
.dflt-nothing {
    display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 36px 20px; border: 1px dashed var(--df-bdr-strong);
    border-radius: 10px; background: var(--df-bg); color: var(--df-ink3); font-size: 13px; text-align: center;
}
.dflt-nothing > svg { color: var(--df-ink4); margin-bottom: 2px; }
.dflt-nothing b { color: var(--df-ink); font-size: 14px; }
.dflt-nothing .dflt-btn { margin-top: 8px; }

/* ---------- всплывающие списки ---------- */
.dflt-pop {
    position: fixed; z-index: 10060; display: flex; flex-direction: column; width: 340px; box-sizing: border-box; overflow: hidden;
    border: 1px solid var(--df-bdr); border-radius: 12px; background: var(--df-card); color: var(--df-ink); box-shadow: var(--df-shadow);
    font-size: 13px; opacity: 0; transform: translateY(-4px); transition: opacity .12s ease, transform .12s ease;
}
.dflt-pop.show { opacity: 1; transform: none; }
.dflt-pop--period { width: 376px; }
.dflt-pop--party { width: 410px; }
.dflt-pop--comment { width: 380px; }
.dflt-pop-h { display: flex; flex-direction: column; gap: 2px; flex: none; padding: 12px 14px 9px; }
.dflt-pop-h b { font-size: 13.5px; font-weight: 700; }
.dflt-pop-h small { font-size: 11.5px; line-height: 1.35; color: var(--df-ink3); }
.dflt-pop-pad { padding: 2px 14px 14px; overflow-y: auto; }
.dflt-pop-search {
    display: flex; align-items: center; gap: 7px; flex: none; height: 34px; margin: 0 12px 6px; padding: 0 10px; box-sizing: border-box;
    border: 1px solid var(--df-bdr); border-radius: 9px; background: var(--df-bg); color: var(--df-ink3); transition: border-color .15s, box-shadow .15s;
}
.dflt-pop-search:focus-within { border-color: var(--df-pri); background: var(--df-card); box-shadow: 0 0 0 3px var(--df-pri-soft); }
.dflt-pop-search input { flex: 1; min-width: 0; height: 100%; border: none; outline: none; background: transparent; font: inherit; font-size: 13px; color: var(--df-ink); }
.dflt-pop-search input::placeholder { color: var(--df-ink4); }
.dflt-pop-list { display: flex; flex-direction: column; gap: 1px; flex: 1 1 auto; min-height: 0; padding: 2px 6px 8px; overflow-y: auto; }
.dflt-pop-sub { flex: none; padding: 6px 14px 7px; font-size: 10.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--df-ink4); }
.dflt-pop-foot { display: flex; justify-content: flex-end; gap: 6px; flex: none; padding: 8px 10px; border-top: 1px solid var(--df-bdr); background: var(--df-bg); }
.dflt-pop-foot .dflt-btn:first-child { margin-right: auto; }

.dflt-opt {
    display: flex; align-items: center; gap: 9px; width: 100%; min-height: 34px; padding: 6px 9px; box-sizing: border-box; flex: none;
    border: none; border-radius: 8px; background: transparent; color: var(--df-ink2); font: inherit; font-size: 13px; text-align: left; cursor: pointer;
}
.dflt-opt:hover { background: var(--df-bg); }
.dflt-opt.on { background: var(--df-pri-soft); color: var(--df-pri-ink); font-weight: 600; }
.dflt-opt.zero:not(.on) { color: var(--df-ink4); }
.dflt-opt-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dflt-opt-name small { display: block; overflow: hidden; text-overflow: ellipsis; font-size: 11px; font-weight: 400; color: var(--df-ink3); }
.dflt-opt-n {
    flex: none; min-width: 26px; padding: 1px 7px; box-sizing: border-box; border-radius: 999px; background: var(--df-bg);
    color: var(--df-ink3); font-size: 11.5px; font-weight: 600; text-align: center; font-variant-numeric: tabular-nums;
}
.dflt-opt:hover .dflt-opt-n { background: var(--df-card); }
.dflt-opt.on .dflt-opt-n { background: var(--df-pri); color: #fff; }
.dflt-opt-sum { flex: none; font-size: 11.5px; color: var(--df-ink3); font-variant-numeric: tabular-nums; }
.dflt-radio { flex: none; width: 16px; height: 16px; box-sizing: border-box; border: 1.5px solid var(--df-bdr-strong); border-radius: 50%; background: var(--df-card); transition: border .12s; }
.dflt-opt.on .dflt-radio { border: 5px solid var(--df-pri); }
.dflt-opt--cb .dflt-radio { display: none; }
.dflt-cb {
    flex: none; display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; box-sizing: border-box;
    border: 1.5px solid var(--df-bdr-strong); border-radius: 5px; background: var(--df-card); color: transparent; transition: background .12s, border-color .12s;
}
.dflt-opt.on .dflt-cb { border-color: var(--df-pri); background: var(--df-pri); color: #fff; }
.dflt-dot { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; vertical-align: 1px; }
.dflt-dot--ok { background: #16a34a; }
.dflt-dot--sent { background: #2563eb; }
.dflt-dot--new { background: #d97706; }
.dflt-dot--bad { background: #dc2626; }
.dflt-dot--off { background: #94a3b8; }
.dflt-empty { padding: 14px 10px; color: var(--df-ink3); font-size: 12.5px; text-align: center; }

.dflt-words { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px 12px; overflow-y: auto; }
.dflt-word {
    display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border: 1px solid var(--df-bdr); border-radius: 999px;
    background: var(--df-card); color: var(--df-ink2); font: inherit; font-size: 12.5px; cursor: pointer; transition: border-color .12s, color .12s, background .12s;
}
.dflt-word small { font-size: 11px; font-weight: 600; color: var(--df-ink4); }
.dflt-word:hover { border-color: var(--df-pri-line); color: var(--df-pri-ink); }
.dflt-word.on { border-color: var(--df-pri); background: var(--df-pri); color: #fff; }
.dflt-word.on small { color: rgba(255, 255, 255, .8); }
.dflt-words .dflt-empty { width: 100%; }

.dflt-btn {
    height: 30px; padding: 0 12px; border: 1px solid var(--df-bdr); border-radius: 8px; background: var(--df-card); color: var(--df-ink2);
    font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; transition: border-color .12s, color .12s, background .12s;
}
.dflt-btn:hover:not(:disabled) { border-color: var(--df-pri-line); color: var(--df-pri-ink); }
.dflt-btn.primary { border-color: var(--df-pri); background: var(--df-pri); color: #fff; }
.dflt-btn.primary:hover:not(:disabled) { background: var(--df-pri-2); color: #fff; }
.dflt-btn:disabled { opacity: .45; cursor: default; }

/* период */
.dflt-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.dflt-chip {
    height: 28px; padding: 0 10px; border: 1px solid var(--df-bdr); border-radius: 999px; background: var(--df-card); color: var(--df-ink2);
    font: inherit; font-size: 12.5px; cursor: pointer; transition: border-color .12s, color .12s, background .12s;
}
.dflt-chip:hover { border-color: var(--df-pri-line); color: var(--df-pri-ink); }
.dflt-chip.on { border-color: var(--df-pri); background: var(--df-pri); color: #fff; }
.dflt-year { display: flex; align-items: center; gap: 6px; margin: 14px 0 8px; }
.dflt-yr-nav {
    display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; padding: 0;
    border: 1px solid var(--df-bdr); border-radius: 8px; background: var(--df-card); color: var(--df-ink2); cursor: pointer;
}
.dflt-yr-nav:hover { border-color: var(--df-pri-line); color: var(--df-pri-ink); }
.dflt-yr {
    display: inline-flex; align-items: baseline; justify-content: center; gap: 8px; flex: 1; height: 32px; padding: 0 10px; box-sizing: border-box;
    border: 1px solid var(--df-bdr); border-radius: 8px; background: var(--df-bg); color: var(--df-ink); font: inherit; cursor: pointer; line-height: 30px;
}
.dflt-yr b { font-size: 14px; }
.dflt-yr small { font-size: 11.5px; color: var(--df-ink3); }
.dflt-yr:hover { border-color: var(--df-pri-line); }
.dflt-yr.on { border-color: var(--df-pri); background: var(--df-pri); color: #fff; }
.dflt-yr.on small { color: rgba(255, 255, 255, .8); }
.dflt-qgrid, .dflt-mgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.dflt-qgrid { margin-bottom: 6px; }
.dflt-qcell, .dflt-mcell {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; height: 42px; padding: 0;
    border: 1px solid var(--df-bdr); border-radius: 8px; background: var(--df-card); color: var(--df-ink); font: inherit; cursor: pointer;
    transition: border-color .12s, background .12s;
}
.dflt-qcell { height: 38px; background: var(--df-bg); }
.dflt-qcell b, .dflt-mcell b { font-size: 12.5px; font-weight: 600; }
.dflt-qcell small, .dflt-mcell small { font-size: 11px; color: var(--df-ink3); font-variant-numeric: tabular-nums; }
.dflt-qcell:hover, .dflt-mcell:hover { border-color: var(--df-pri-line); }
.dflt-qcell.zero, .dflt-mcell.zero { opacity: .5; }
.dflt-mcell.in { border-color: var(--df-pri-line); background: var(--df-pri-soft); }
.dflt-qcell.on, .dflt-mcell.on { border-color: var(--df-pri); background: var(--df-pri); color: #fff; opacity: 1; }
.dflt-qcell.on small, .dflt-mcell.on small { color: rgba(255, 255, 255, .8); }
.dflt-custom {
    display: flex; align-items: center; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--df-bdr);
    font-size: 12.5px; color: var(--df-ink3);
}
.dflt-custom input {
    flex: 1; min-width: 0; height: 30px; padding: 0 6px; box-sizing: border-box; border: 1px solid var(--df-bdr); border-radius: 7px;
    background: var(--df-card); color: var(--df-ink); font: inherit; font-size: 12.5px; color-scheme: light;
}
body[data-theme="dark"] .dflt-custom input { color-scheme: dark; }
.dflt-custom input:focus { outline: none; border-color: var(--df-pri); box-shadow: 0 0 0 3px var(--df-pri-soft); }

/* узкий экран: поиск на всю строку */
@media (max-width: 1100px) {
    .dflt-search { flex: 1 1 100%; }
}
