/* Недельный график вывоза ТКО */
#tko-sub-schedule { min-width: 0; color: #11243d; }
#tko-sub-schedule [hidden], .wsch-overlay [hidden] { display: none !important; }
.wsch-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; position: relative; z-index: 1; }
.wsch-head h3 { font-size: 1.35rem; font-weight: 950; letter-spacing: -.02em; margin-top: .55rem; }
.wsch-head p { color: #bfd6ea; font-size: .7rem; font-weight: 700; margin-top: .25rem; }
.wsch-head-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.wsch-dirty { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .7rem; border-radius: 999px; background: #fef3c7; color: #92400e; font-size: .62rem; font-weight: 900; }
.wsch-note { margin-top: .7rem; padding: .55rem .75rem; border-radius: 12px; background: rgba(255,255,255,.1); color: #d7e8f7; font-size: .65rem; font-weight: 750; }
.wsch-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin: 1rem 0 .75rem; }
.wsch-days { display: flex; flex-wrap: wrap; gap: .4rem; }
.wsch-day { position: relative; min-width: 74px; padding: .5rem .7rem; border: 1px solid #dbe5f0; border-radius: 14px; background: white; text-align: left; transition: .18s ease; }
.wsch-day b { display: block; font-size: .85rem; font-weight: 950; color: #1f3149; }
.wsch-day span { display: block; font-size: .56rem; font-weight: 800; color: #8493a8; margin-top: .1rem; }
.wsch-day i { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: #f59e0b; color: white; font-size: .55rem; font-style: normal; font-weight: 950; display: grid; place-items: center; }
.wsch-day:hover { border-color: #93c5fd; }
.wsch-day.is-active { background: linear-gradient(135deg,#168cff,#4f64ee); border-color: transparent; box-shadow: 0 10px 24px rgba(30,112,255,.22); }
.wsch-day.is-active b, .wsch-day.is-active span { color: white; }
.wsch-filter { position: relative; flex: 1 1 260px; max-width: 420px; }
.wsch-filter i { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: #94a3b8; font-size: .72rem; }
.wsch-filter input { width: 100%; height: 40px; padding: 0 .8rem 0 2.2rem; border: 1px solid #dce6f1; border-radius: 12px; background: white; outline: none; font-size: .72rem; font-weight: 700; }
.wsch-kpi { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .6rem; margin-bottom: .9rem; }
.wsch-kpi article { background: white; border: 1px solid #e1e9f2; border-radius: 16px; padding: .7rem .9rem; }
.wsch-kpi span { display: block; color: #8493a8; font-size: .56rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.wsch-kpi strong { display: block; font-size: 1.35rem; font-weight: 950; color: #1f3149; margin-top: .15rem; }
.wsch-kpi article.warn { border-color: #fcd34d; background: #fffbeb; }
.wsch-kpi article.warn strong { color: #b45309; }
.wsch-routes { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: .9rem; align-items: start; padding-bottom: 1.5rem; }
.wsch-card { display: flex; flex-direction: column; border: 1px solid #e1e9f2; border-radius: 18px; background: white; box-shadow: 0 7px 18px rgba(15,37,62,.05); overflow: hidden; }
.wsch-card.no-vehicle { border-color: #fcd34d; }
.wsch-card header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .75rem .85rem; background: linear-gradient(90deg,#f1f7ff,#f7fbff); border-bottom: 1px solid #e6edf5; }
.wsch-card.no-vehicle header { background: linear-gradient(90deg,#fffbeb,#fffdf5); }
.wsch-card-title { min-width: 0; }
.wsch-card-title h5 { font-size: .85rem; font-weight: 950; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wsch-card-title span { color: #8493a8; font-size: .6rem; font-weight: 800; }
.wsch-card-actions { display: flex; gap: .2rem; flex-shrink: 0; }
.wsch-card-actions button { width: 30px; height: 30px; border-radius: 9px; color: #64748b; display: grid; place-items: center; font-size: .72rem; }
.wsch-card-actions button:hover { background: #e0efff; color: #1d4ed8; }
.wsch-vehicle { display: flex; align-items: center; gap: .55rem; padding: .6rem .85rem; border-bottom: 1px solid #eef2f7; color: #2563eb; font-size: .72rem; }
.wsch-vehicle select { flex: 1; min-width: 0; height: 36px; border: 1px solid #dce6f1; border-radius: 10px; padding: 0 .6rem; background: white; font-size: .7rem; font-weight: 800; color: #1f3149; outline: none; }
.wsch-card.no-vehicle .wsch-vehicle select { border-color: #fbbf24; background: #fffbeb; }
.wsch-vehicle span { color: #1f3149; font-weight: 850; }
.wsch-stops { max-height: 320px; overflow: auto; padding: .3rem .6rem .5rem; margin: 0; list-style: none; }
.wsch-stops li { display: flex; align-items: center; gap: .5rem; padding: .38rem .2rem; border-bottom: 1px dashed #edf1f6; }
.wsch-stops li:last-child { border-bottom: 0; }
.wsch-num { flex-shrink: 0; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 6px; background: #eff6ff; color: #2563eb; font-size: .55rem; font-weight: 950; }
.wsch-stop { flex: 1; min-width: 0; }
.wsch-stop b { display: block; font-size: .65rem; font-weight: 850; color: #1f3149; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wsch-stop small { display: block; font-size: .56rem; font-weight: 700; color: #94a3b8; }
.wsch-stops em { flex-shrink: 0; font-style: normal; font-size: .52rem; font-weight: 900; color: #b45309; background: #fef3c7; border-radius: 6px; padding: .12rem .35rem; }
.wsch-x { flex-shrink: 0; width: 24px; height: 24px; border-radius: 8px; color: #a0aec0; display: grid; place-items: center; font-size: .7rem; }
.wsch-x:hover { color: #e11d48; background: #fff1f2; }
.wsch-none { color: #94a3b8; font-size: .65rem; font-weight: 750; justify-content: center; }
.wsch-add { position: relative; display: flex; align-items: center; gap: .45rem; padding: .55rem .85rem .75rem; color: #10b981; font-size: .7rem; border-top: 1px solid #eef2f7; }
.wsch-add input { flex: 1; min-width: 0; height: 34px; border: 1px dashed #a7f3d0; border-radius: 10px; padding: 0 .6rem; outline: none; font-size: .66rem; font-weight: 750; background: #f7fffb; }
.wsch-add input:focus { border-style: solid; border-color: #34d399; background: white; }
.wsch-picker { position: absolute; left: .85rem; right: .85rem; bottom: calc(100% - .2rem); z-index: 30; max-height: 280px; overflow: auto; background: white; border: 1px solid #dce6f1; border-radius: 14px; box-shadow: 0 18px 40px rgba(15,37,62,.18); padding: .3rem; }
.wsch-picker button { display: block; width: 100%; text-align: left; padding: .45rem .55rem; border-radius: 10px; }
.wsch-picker button:hover:not([disabled]) { background: #ecfdf5; }
.wsch-picker button[disabled] { opacity: .5; cursor: default; }
.wsch-picker b { display: block; font-size: .64rem; color: #1f3149; font-weight: 850; }
.wsch-picker small { display: block; font-size: .55rem; color: #94a3b8; font-weight: 700; }
.wsch-pick-none { padding: .6rem; font-size: .62rem; color: #94a3b8; font-weight: 750; }
.wsch-empty { grid-column: 1 / -1; display: grid; place-items: center; min-height: 200px; text-align: center; color: #8a99ac; font-size: .75rem; font-weight: 750; }
.wsch-empty i { display: block; font-size: 1.7rem; color: #c2cfdd; margin-bottom: .6rem; }
.wsch-overlay { position: fixed; inset: 0; z-index: 9000; display: grid; place-items: center; padding: 1rem; background: rgba(7,25,45,.45); backdrop-filter: blur(2px); }
.wsch-modal { width: min(560px, 100%); max-height: calc(100vh - 2rem); display: flex; flex-direction: column; background: white; border-radius: 20px; box-shadow: 0 30px 70px rgba(7,25,45,.35); overflow: hidden; color: #11243d; }
.wsch-modal header { display: flex; justify-content: space-between; align-items: center; padding: .9rem 1.1rem; border-bottom: 1px solid #e7edf4; }
.wsch-modal header h4 { font-size: .9rem; font-weight: 950; }
.wsch-modal header button { width: 32px; height: 32px; border-radius: 10px; color: #64748b; }
.wsch-modal-body { padding: 1rem 1.1rem; overflow: auto; }
.wsch-modal footer { display: flex; justify-content: flex-end; gap: .5rem; padding: .8rem 1.1rem; border-top: 1px solid #e7edf4; background: #fbfdff; }
.wsch-modal-text { font-size: .72rem; font-weight: 650; color: #40536c; line-height: 1.5; margin-bottom: .8rem; }
.wsch-field { display: block; font-size: .6rem; font-weight: 900; color: #6f8199; text-transform: uppercase; letter-spacing: .07em; }
.wsch-field input { display: block; width: 100%; height: 40px; margin-top: .35rem; border: 1px solid #dce6f1; border-radius: 12px; padding: 0 .75rem; font-size: .78rem; font-weight: 750; color: #1f3149; text-transform: none; letter-spacing: 0; outline: none; }
.wsch-dates { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-bottom: .8rem; }
.wsch-daychecks { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .4rem; margin-bottom: .8rem; }
.wsch-daychecks label, .wsch-check { display: flex; align-items: center; gap: .5rem; font-size: .72rem; font-weight: 750; color: #1f3149; }
.wsch-daychecks input, .wsch-check input { width: 16px; height: 16px; accent-color: #168cff; }
.wsch-apply-result { margin-top: .9rem; font-size: .68rem; }
.wsch-apply-result table { width: 100%; border-collapse: collapse; }
.wsch-apply-result th, .wsch-apply-result td { text-align: left; padding: .4rem .45rem; border-bottom: 1px solid #eef2f7; vertical-align: top; }
.wsch-apply-result th { font-size: .56rem; text-transform: uppercase; letter-spacing: .07em; color: #8493a8; }
.wsch-apply-result small { display: block; color: #94a3b8; font-weight: 700; }
.wsch-apply-result tr.st-published td:nth-child(2) { color: #047857; font-weight: 900; }
.wsch-apply-result tr.st-skipped td:nth-child(2), .wsch-apply-result tr.st-error td:nth-child(2) { color: #b45309; font-weight: 900; }
.wsch-error { color: #be123c; font-weight: 800; }
@media (max-width: 767px) {
    .wsch-kpi { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .wsch-routes { grid-template-columns: 1fr; }
    .wsch-day { min-width: 0; flex: 1 1 calc(25% - .4rem); }
}
