/* Фільтри пошуку тендерів: бічна панель (десктоп) / нижня панель (мобільний) */
.tl{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.fpanel{background:#fff;border:1px solid var(--line);border-radius:12px;position:sticky;top:12px;max-height:calc(100vh - 24px);display:flex;flex-direction:column}
.fp-grab,.fp-close,.fp-bar,.fbtn{display:none}
.fp-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.fp-hd b{font-size:16px}
.fp-reset{color:var(--err);font-size:13px;font-weight:600}
.fp-body{overflow:auto;overscroll-behavior:contain;flex:1}
.fp-sec{padding:12px 16px;border-bottom:1px solid #eef1f5;display:block}.fp-sec:last-child{border-bottom:0}
.fp-h{margin:0 0 8px;font-size:13.5px;display:flex;justify-content:space-between;align-items:baseline}.fp-h small{font-weight:400;color:var(--mut);font-size:12px}
.ck{display:flex;align-items:center;gap:10px;min-height:34px;font-size:14px;cursor:pointer}
.ck input{width:18px;height:18px;margin:0;flex:0 0 18px;accent-color:var(--pri)}.ck span:first-of-type{flex:1;min-width:0}
.ck .n{color:var(--mut);font-size:12.5px;margin-left:auto;flex:0 0 auto}.ck.sm{min-height:30px;font-size:13.5px}
.mine{font-size:11px;color:#0b7a72;font-weight:600}
.coll{cursor:pointer;color:var(--pri);font-weight:600;font-size:13.5px;min-height:30px;display:flex;align-items:center;justify-content:space-between;list-style:none}
.coll::-webkit-details-marker{display:none}.coll::after{content:"▸"}details[open]>.coll::after{content:"▾"}
.cpvl,.reglist{max-height:220px;overflow:auto;margin-top:6px}
.hist{display:flex;align-items:flex-end;gap:2px;height:30px;margin:0 9px -10px}.hist i{flex:1;background:#dfe7f2;border-radius:2px 2px 0 0}.hist i.in{background:#9cc0ea}
.range{position:relative;height:32px}
.range input[type=range]{position:absolute;left:0;right:0;top:6px;width:100%;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none;height:20px;min-height:0}
.range input[type=range]::-webkit-slider-runnable-track{height:4px;background:transparent}
.range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--pri);margin-top:-9px;box-shadow:0 1px 4px rgba(0,0,0,.2);cursor:pointer}
.range input[type=range]::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--pri);cursor:pointer}
.range::before{content:"";position:absolute;left:9px;right:9px;top:14px;height:4px;border-radius:2px;background:linear-gradient(90deg,#dfe5ee var(--a,0%),var(--pri) var(--a,0%),var(--pri) var(--b,100%),#dfe5ee var(--b,100%))}
.rvals{display:flex;gap:8px}.rvals label{flex:1;border:1px solid #cfd6e2;border-radius:9px;padding:4px 10px;min-width:0}.rvals small{display:block;color:var(--mut);font-size:11px}
.rvals input{border:0;padding:0;width:100%;font-weight:600;font-size:14px;background:transparent;min-height:0;outline:none}
.rsearch{width:100%;margin-bottom:4px}
.seg{display:flex;flex-wrap:wrap;background:#eef1f5;border-radius:10px;padding:3px;gap:2px}
.seg label{flex:1 1 auto;cursor:pointer}.seg input,.pills input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;text-align:center;padding:7px 6px;border-radius:8px;font-size:13px;color:#445;white-space:nowrap}
.seg input:checked+span{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seg input:focus-visible+span,.pills input:focus-visible+span{outline:2px solid var(--pri)}
.pills{display:flex;flex-wrap:wrap;gap:6px}.pills label{cursor:pointer}
.pills span{display:inline-block;border:1px solid #cfd6e2;border-radius:16px;padding:5px 11px;font-size:13px}
.pills input:checked+span{background:#e7f0fb;border-color:#9cc0ea;color:#0d3f73;font-weight:600}
.sv{display:flex;align-items:center;gap:4px;border-radius:8px;margin:0 -6px}.sv.on{background:#e7f0fb}
.sv-a{flex:1;min-width:0;display:flex;justify-content:space-between;gap:6px;padding:7px 6px;color:var(--ink);font-size:13.5px;text-decoration:none!important}
.sv.on .sv-a{color:#0d3f73;font-weight:600}.sv-n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-c{color:var(--mut);font-size:12.5px;white-space:nowrap}
.sv-new{background:#dcf3e6;color:#11683e;border-radius:9px;padding:0 6px;font-size:11.5px}
.sv-act{display:flex;opacity:.55}.sv:hover .sv-act{opacity:1}
.ico{background:none;border:0;color:var(--mut);padding:2px 5px;min-height:0;font-size:13px;cursor:pointer}
.sv-save{display:flex;gap:6px;margin-top:8px}.sv-save input{flex:1;min-width:0}.sv-save button{white-space:nowrap;padding:6px 10px;font-size:13px}
/* результати */
.sbar2{display:flex;gap:8px;margin-bottom:10px}
.sinput{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #cfd6e2;border-radius:10px;padding:0 12px;height:42px}
.sinput input{border:0;outline:none;flex:1;min-width:0;padding:0;background:transparent;font-size:15px;min-height:0;height:100%}
.sortsel{flex:0 0 200px;width:200px;border-radius:10px}
.fbtn{position:relative;align-items:center;gap:6px;height:42px;padding:0 14px;border-radius:10px;background:#fff;border:1px solid var(--pri);color:var(--pri);font-weight:600;font-size:15px;white-space:nowrap}
.badge{min-width:22px;height:22px;border-radius:11px;background:var(--pri);color:#fff;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chips.act{flex-wrap:wrap;overflow:visible;gap:6px}
.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 6px 0 12px;border-radius:17px;background:#e7f0fb;color:#0d3f73;border:1px solid #c5d9f2;font-size:13px;white-space:nowrap;text-decoration:none!important}
.chip .x{width:26px;height:26px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;color:#46607e}
.chip:hover .x{background:rgba(0,0,0,.07)}
.chip.reset{background:transparent;border-color:transparent;color:var(--err);padding:0 8px;font-weight:600}
.presets .chip{background:#fff;border-color:#d5dce7;color:var(--ink);padding:0 14px}.presets .chip.on{background:var(--pri);border-color:var(--pri);color:#fff}
.rhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 8px}.rhead b{font-size:17px}
.jobbox:empty{display:none}.jobbox{margin-bottom:8px}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}
.tcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;min-width:0}
.tcard .id{font-size:12px;color:var(--mut)}.tcard h4{margin:3px 0 6px;font-size:15px;line-height:1.35}.tcard h4 a{color:var(--ink)}
.tcard .meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:#445}.tcard .meta.tags{margin-top:8px;gap:6px}
.tcard .cf{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto;padding-top:10px;gap:8px}
.cf-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.amt{font-size:17px;font-weight:700;white-space:nowrap}
.tg{display:inline-block;padding:2px 9px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}
.tg.red{background:#fde2e4;color:#b42330}.tg.amb{background:#fff1d6;color:#8a5300}.tg.grn{background:#dcf3e6;color:#11683e}
.tg.blu{background:#e6effa;color:#0d3f73;white-space:normal}.tg.gry{background:#eef1f5;color:#56607a}
.chance{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--mut)}.chance i{display:block;width:54px;height:6px;border-radius:3px;background:#e6eaf0;position:relative;overflow:hidden}
.chance i b{position:absolute;left:0;top:0;bottom:0}
/* ≤1024: нижня панель */
@media (max-width:1024px){
  .tl{display:block}
  .fbtn{display:inline-flex}.sortsel{display:none}
  .fpanel{position:fixed;left:0;right:0;bottom:0;top:auto;height:calc(100% - 44px);max-height:none;border-radius:18px 18px 0 0;z-index:60;
    transform:translateY(105%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s;box-shadow:0 -10px 30px rgba(0,0,0,.25);border:0}
  .fpanel.open{transform:none;visibility:visible;transition:transform .22s ease}
  body.fs-open{overflow:hidden}
  body.fs-open::after{content:"";position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:55}
  .fp-grab{display:block;width:42px;height:5px;border-radius:3px;background:#cfd6e2;margin:8px auto 0;flex:0 0 5px}
  .fp-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:0;color:var(--mut);font-size:20px;margin:-8px -10px -8px 0}
  .fp-hd .fp-reset{margin-left:auto;margin-right:12px}
  .fp-bar{display:flex;gap:10px;padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;box-shadow:0 -4px 12px rgba(0,0,0,.06)}
  .fp-bar .btn{flex:0 0 auto;height:50px;border-radius:11px}
  .fp-go{flex:1;height:50px;border-radius:11px;font-weight:700;font-size:16px}
  .fp-go.busy{opacity:.75}
  .fp-sec{padding:14px 16px}.fp-h{font-size:15px}
  .ck{min-height:44px;font-size:15px}.ck input{width:22px;height:22px;flex-basis:22px}.ck.sm{min-height:44px;font-size:14.5px}
  .seg span{padding:11px 6px;font-size:14px}.pills span{padding:10px 14px;font-size:14px}
  .ico{min-width:40px;min-height:40px;font-size:16px}.sv-act{opacity:1}.sv-a{padding:10px 6px;font-size:15px;min-height:44px;align-items:center}
  .coll{min-height:44px;font-size:15px}
  .rvals input{font-size:16px}
  .cpvl,.reglist{max-height:none}
  .range input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-12px}
  .sinput{height:46px}.fbtn{height:46px}
  .chip{height:38px}.chip .x{width:30px;height:30px}
}
@media (max-width:768px){.tgrid{grid-template-columns:1fr}.rhead .rjob button{font-size:13px}}
.range input[type=range],.rvals input,.sinput input{min-height:0!important}
.range input[type=range]{border:0!important;padding:0!important;box-shadow:none!important;outline:none;background:transparent!important}
.range input[type=range]::-moz-range-track{background:transparent}
