/* Дашборд директора / завуча (ir-dash.js) — окно программы для ПК, 1200×720, масштабируется целиком.
   Палитра — как у панелей и Школьного звонка ПРО. */
.ird-stage { position: relative; overflow: hidden; margin: 0 auto; border-radius: 10px; box-shadow: 0 10px 30px rgba(16,38,64,.12); }
.ird {
  --d-blue: #1565C0; --d-dblue: #0D47A1; --d-soft: #E3F2FD; --d-green: #2E7D32; --d-gsoft: #E8F5E9;
  --d-red: #C62828; --d-rsoft: #FFEBEE; --d-orange: #E65100; --d-osoft: #FFF3E0; --d-purple: #6A1B9A; --d-psoft: #F3E5F5;
  --d-ink: #17202A; --d-ink2: #44515E; --d-ink3: #6B7785; --d-line: #D5DBE1; --d-line2: #EEF1F4; --d-bg: #F3F3F3;
  position: absolute; left: 0; top: 0; width: 1200px; height: 720px; transform-origin: 0 0; overflow: hidden;
  background: var(--d-bg); color: var(--d-ink); border: 1px solid #C2CAD3; border-radius: 10px;
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; font-size: 13px; line-height: 1.3; text-align: left;
}
.ird *, .ird *::before, .ird *::after { box-sizing: border-box; }
.ird button { font: inherit; color: inherit; cursor: pointer; }
.ird :focus-visible { outline: 3px solid #FFB300; outline-offset: 1px; }
.ird h5, .ird p { margin: 0; }
.ird-i { width: 18px; height: 18px; flex: none; }
.ird section, .ird aside { padding: 0; margin: 0; }
.ird-main { position: absolute; inset: 0; display: flex; flex-direction: column; }

/* заголовок окна и верхняя панель */
.ird-tbar { flex: none; display: flex; align-items: center; gap: 8px; height: 30px; padding: 0 0 0 10px; background: #fff; color: #6B7785; font-size: 12px; border-bottom: 1px solid #E3E7EC; }
.ird-tbar > i { width: 10px; height: 10px; border-radius: 2px; background: var(--d-blue); flex: none; }
.ird-tbar > span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-wb { display: flex; height: 100%; font-weight: 400; color: #444; }
.ird-wb em { font-style: normal; width: 44px; display: grid; place-items: center; font-size: 12px; }
.ird-wb em:last-child { font-size: 13px; }
.ird-top { flex: none; display: flex; align-items: center; gap: 18px; height: 56px; padding: 0 14px; background: #FAFAFA; border-bottom: 1px solid #E3E7EC; }
.ird-school { display: flex; align-items: center; gap: 9px; min-width: 0; }
.ird-school > svg { width: 30px; height: 30px; padding: 5px; border-radius: 7px; background: var(--d-blue); color: #fff; flex: none; }
.ird-school b { display: block; font-size: 15px; white-space: nowrap; }
.ird-school span { font-size: 12px; color: var(--d-ink2); white-space: nowrap; }
.ird-seg { display: inline-flex; flex: none; border: 1px solid #C9CED4; border-radius: 6px; overflow: hidden; background: #fff; }
.ird-seg button { border: 0; background: #fff; padding: 6px 16px; font-weight: 600; color: var(--d-ink2); }
.ird-seg button + button { border-left: 1px solid #C9CED4; }
.ird-seg button:hover { background: #E5F1FB; }
.ird-seg button[aria-pressed="true"] { background: var(--d-blue); color: #fff; }
.ird-now { flex: 1; min-width: 0; padding-left: 14px; border-left: 1px solid var(--d-line); }
.ird-now b { display: block; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.ird-now span { display: block; font-size: 12px; color: var(--d-ink3); white-space: nowrap; }
.ird-nets { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--d-ink2); flex: none; }
.ird-nets span { display: flex; align-items: center; white-space: nowrap; }
.ird-clock { flex: none; font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; min-width: 96px; text-align: right; }
.ird-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #9AA8B6; margin-right: 6px; flex: none; }
.ird-dot.ok { background: #2A9A55; } .ird-dot.warn { background: #F9A825; } .ird-dot.bad { background: var(--d-red); }

/* тревога */
.ird-alarm { flex: none; display: flex; align-items: center; gap: 10px; height: 32px; padding: 0 14px; background: var(--d-red); color: #fff; font-size: 13px; animation: ird-bl 1s steps(2) infinite; }
.ird-alarm.al-lock { background: var(--d-purple); } .ird-alarm.al-evac { background: #BF360C; }
.ird-alarm b { font-size: 14px; letter-spacing: .02em; white-space: nowrap; }
.ird-alarm span { opacity: .92; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@keyframes ird-bl { 50% { opacity: .82; } }

/* тело и строка состояния */
.ird-body { flex: 1; min-height: 0; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.ird-status { flex: none; display: flex; align-items: center; gap: 18px; height: 26px; padding: 0 14px; font-size: 12px; color: var(--d-ink2); background: #FAFAFA; border-top: 1px solid #E3E7EC; white-space: nowrap; }
.ird-status span { display: flex; align-items: center; overflow: hidden; text-overflow: ellipsis; }
.ird-status span:nth-child(2) { flex: 1; min-width: 0; color: var(--d-blue); }

/* кнопки */
.ird-b { display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: #fff; border: 1px solid #C9CED4; border-radius: 4px; padding: 5px 12px; white-space: nowrap; }
.ird-b:hover { background: #E5F1FB; border-color: #0078D7; }
.ird-b:active { background: #CCE4F7; }
.ird-acc { background: var(--d-blue); border-color: var(--d-blue); color: #fff !important; font-weight: 600; }
.ird-acc:hover { background: var(--d-dblue); border-color: var(--d-dblue); }
.ird-red { color: var(--d-red) !important; border-color: #E3B4B4; }
.ird-red:hover { background: var(--d-rsoft); border-color: var(--d-red); }
.ird-sm { padding: 2px 9px; font-size: 12px; flex: none; }
.ird-lnk { border: 0; background: none; padding: 0 2px; color: var(--d-blue); font-size: 12px; flex: none; }
.ird-lnk:hover { text-decoration: underline; }
.ird-x { border: 0; background: none; padding: 3px; border-radius: 4px; color: var(--d-ink3); flex: none; display: grid; place-items: center; }
.ird-x:hover { background: #E9EDF1; color: var(--d-ink); }
.ird-x .ird-i { width: 16px; height: 16px; }
.ird-ed { color: var(--d-blue); padding: 2px; }
.ird-ed .ird-i { width: 14px; height: 14px; }

/* карточки */
.ird-card { background: #fff; border: 1px solid #E0E4E9; border-radius: 8px; min-height: 0; min-width: 0; display: flex; flex-direction: column; }
.ird-ch { flex: none; display: flex; align-items: center; gap: 9px; padding: 8px 12px; border-bottom: 1px solid var(--d-line2); min-height: 44px; }
.ird-ch > svg { color: var(--d-blue); }
.ird-ch > div { flex: 1; min-width: 0; }
.ird-ch b { display: block; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-ch span { display: block; font-size: 12px; color: var(--d-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-note { font-size: 12px; color: var(--d-ink3); padding: 8px 12px; }
.ird-ok { display: flex; align-items: center; gap: 6px; padding: 10px 12px; color: var(--d-green); font-weight: 600; }
.ird-ok svg { width: 16px; height: 16px; }
.ird .red { color: var(--d-red); } .ird .pur { color: var(--d-purple); } .ird .mut { color: var(--d-ink3); }
.ird-legend { display: flex; align-items: center; gap: 4px; margin-left: auto; font-size: 11.5px; color: var(--d-ink3); white-space: nowrap; flex: none; }
.ird-legend i { width: 11px; height: 11px; border-radius: 3px; margin-left: 8px; border: 1px solid transparent; }
.lg-busy { background: var(--d-soft); border-color: #90CAF9 !important; }
.lg-sub { background: var(--d-osoft); border-color: #FFB74D !important; }
.lg-move { background: var(--d-psoft); border-color: #CE93D8 !important; }
.lg-cancel { background: var(--d-rsoft); border-color: #EF9A9A !important; }
.lg-free { background: #fff; border-color: #CFD6DD !important; }
.lg-win { background: repeating-linear-gradient(45deg, #fff 0 3px, #E8ECF0 3px 5px); border-color: #CFD6DD !important; }

/* ===== Директор ===== */
.ird-kpis { flex: none; display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.ird-kpi { position: relative; height: 64px; padding: 7px 10px 6px 14px; background: #fff; border: 1px solid #E0E4E9; border-radius: 8px; overflow: hidden; min-width: 0; }
.ird-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--kc, var(--d-blue)); }
.ird-kpi b { display: inline-block; vertical-align: baseline; font-size: 22px; line-height: 26px; font-weight: 700; color: var(--kc, var(--d-blue)); margin-right: 6px; font-variant-numeric: tabular-nums; }
.ird-kpi span { font-size: 12.5px; font-weight: 600; color: var(--d-ink2); white-space: nowrap; }
.ird-kpi > div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-kpi small { display: block; font-size: 11.5px; color: var(--d-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 3px; }
.k-blue { --kc: var(--d-blue); } .k-orange { --kc: var(--d-orange); } .k-red { --kc: var(--d-red); }
.k-green { --kc: var(--d-green); } .k-purple { --kc: var(--d-purple); } .k-grey { --kc: #7D8A97; }

.ird-line { flex: none; display: flex; align-items: stretch; gap: 12px; height: 54px; padding: 6px 12px 6px 12px; background: #fff; border: 1px solid #E0E4E9; border-radius: 8px; }
.ird-lh { flex: none; width: 128px; display: flex; flex-direction: column; justify-content: center; }
.ird-lh b { font-size: 13.5px; }
.ird-lh span { font-size: 12px; color: var(--d-ink2); }
.ird-lh small { font-size: 10.5px; color: var(--d-ink3); line-height: 1.15; }
.ird-track { position: relative; flex: 1; margin-right: 8px; background: repeating-linear-gradient(90deg, #F1F3F6 0 6px, #F7F8FA 6px 12px); border-radius: 5px; }
.ird-seg-l { position: absolute; top: 3px; bottom: 3px; display: flex; flex-direction: column; justify-content: center; padding: 0 8px; overflow: hidden;
  background: var(--d-soft); border: 1px solid #BBDEFB; border-radius: 5px; color: var(--d-dblue); text-align: left; }
.ird-seg-l b { position: relative; font-size: 12.5px; white-space: nowrap; }
.ird-seg-l span { position: relative; font-size: 11.5px; color: var(--d-ink2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ird-seg-l:hover { border-color: var(--d-blue); }
.ird-seg-l.past { background: #EEF1F4; border-color: #DDE2E7; color: var(--d-ink3); }
.ird-seg-l.past span { color: var(--d-ink3); }
.ird-seg-l.cur { background: #BBDEFB; border-color: var(--d-blue); }
.ird-seg-l.cur i { position: absolute; left: 0; top: 0; bottom: 0; background: #90CAF9; }
.ird-seg-l.sel { box-shadow: 0 0 0 2px var(--d-blue); }
.ird-mark { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px; background: var(--d-red); pointer-events: none; z-index: 2; }
.ird-mark[hidden] { display: none; }
.ird-mark em { position: absolute; top: -2px; left: 4px; font-style: normal; font-size: 10.5px; font-weight: 700; color: #fff; background: var(--d-red); border-radius: 3px; padding: 0 4px; line-height: 14px; font-variant-numeric: tabular-nums; }

.ird-dgrid { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 272px; gap: 10px; }
.ird-map { min-height: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid #E0E4E9; border-radius: 8px; padding: 0 10px 10px; }
.ird-mhead { flex: none; display: flex; align-items: center; gap: 10px; height: 36px; }
.ird-mhead > b { font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ird-floors { flex: 1; min-height: 0; display: grid; grid-template-rows: repeat(3, 1fr); gap: 8px; }
.ird-floor { min-height: 0; display: flex; gap: 6px; }
.ird-fl { flex: none; width: 34px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #F3F5F8; border-radius: 6px; font-size: 11px; color: var(--d-ink3); }
.ird-fl b { font-size: 20px; line-height: 1; color: var(--d-ink2); }
.ird-rooms { flex: 1; min-width: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 5px; }
.ird-room { min-width: 0; min-height: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 1px; padding: 6px 5px 5px 6px; text-align: left; overflow: hidden;
  background: var(--d-soft); border: 1px solid #BBDEFB; border-radius: 6px; color: var(--d-ink); }
.ird-room:hover { border-color: var(--d-blue); }
.ird-room.sel { box-shadow: 0 0 0 2px var(--d-dblue); border-color: var(--d-dblue); }
.ird-room .rt { display: flex; align-items: center; gap: 4px; min-width: 0; margin-bottom: 2px; }
.ird-room .rn { font-size: 12.5px; color: var(--d-dblue); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ird-room .rt em { margin-left: auto; flex: none; font-style: normal; font-size: 10px; font-weight: 700; color: #fff; background: var(--d-orange); border-radius: 3px; padding: 0 4px; line-height: 14px; }
.ird-room strong { font-size: 17px; line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-room .rs, .ird-room .rteach, .ird-room .rf { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-room .rs { color: var(--d-ink2); }
.ird-room .rteach { color: var(--d-ink3); font-size: 11px; letter-spacing: -.03em; }
.ird-room.free { background: #fff; border-color: #DCE1E7; }
.ird-room.free .rn { color: var(--d-ink2); }
.ird-room.free .rf { color: #9AA6B2; }
.ird-room.sub { background: var(--d-osoft); border-color: #FFCC80; }
.ird-room.sub .rn { color: var(--d-orange); }
.ird-room.sub .rteach { color: var(--d-orange); }
.ird-room.move { background: var(--d-psoft); border-color: #CE93D8; }
.ird-room.move .rn { color: var(--d-purple); }
.ird-room.move .rt em, .ird-room.from .rt em { background: var(--d-purple); }
.ird-room.from { background: #fff; border: 1px dashed #BA68C8; }
.ird-room.from .rn, .ird-room.from .rf { color: var(--d-purple); }
.ird-room.cancel, .ird-room.conflict { background: var(--d-rsoft); border-color: #EF9A9A; }
.ird-room.cancel .rn, .ird-room.conflict .rn, .ird-room.cancel .rteach, .ird-room.conflict .rteach { color: var(--d-red); }
.ird-room.cancel .rt em, .ird-room.conflict .rt em { background: var(--d-red); }

.ird-side { min-height: 0; display: flex; flex-direction: column; }
.ird-side > .ird-card { flex: 1; overflow: hidden; }
.ird-chg { list-style: none; margin: 0; padding: 2px 0; overflow-y: auto; flex: 0 1 auto; min-height: 0; }
.ird-chg li { display: flex; align-items: flex-start; gap: 8px; padding: 6px 12px; border-bottom: 1px solid var(--d-line2); border-left: 3px solid var(--d-orange); }
.ird-chg li.c-room { border-left-color: var(--d-purple); }
.ird-chg li.c-cancel { border-left-color: var(--d-red); }
.ird-chg .n { flex: none; width: 20px; height: 20px; border-radius: 50%; background: #EEF1F4; display: grid; place-items: center; font-weight: 700; font-size: 11.5px; }
.ird-chg .c { flex: none; width: 30px; font-weight: 700; }
.ird-chg .d { flex: 1; min-width: 0; }
.ird-chg .d small { display: block; font-size: 11.5px; color: var(--d-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-rt { width: 100%; border-collapse: collapse; font-size: 12.5px; table-layout: fixed; }
.ird-rt th, .ird-rt td { padding: 5px 4px; border-bottom: 1px solid var(--d-line2); text-align: left; vertical-align: middle; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ird-rt thead th { font-weight: 600; color: var(--d-ink3); font-size: 11.5px; padding-top: 6px; }
.ird-rt thead th:nth-child(1) { width: 40px; } .ird-rt thead th:nth-child(2) { width: 47px; } .ird-rt thead th:nth-child(3) { width: 66px; }
.ird-rt tbody th { font-weight: 700; }
.ird-rt tbody th span { display: block; font-weight: 400; font-size: 11px; color: var(--d-ink3); }
.ird-rt td small { display: block; font-size: 11px; color: var(--d-ink3); overflow: hidden; text-overflow: ellipsis; }
.ird-rt tr.cur { background: #F1F8FE; }
.ird-rt tr.cur th { color: var(--d-blue); }
.ird-rt tr.sel th { box-shadow: inset 3px 0 0 var(--d-blue); }
.ird-rt tr.t-sub td { background: var(--d-osoft); } .ird-rt tr.t-move td { background: var(--d-psoft); } .ird-rt tr.t-cancel td { background: var(--d-rsoft); }

/* ===== Завуч ===== */
.ird-zgrid { flex: 1; min-height: 0; display: grid; grid-template-columns: 316px 1fr 282px; gap: 10px; }
.ird-col { overflow: hidden; }
.ird-scroll { flex: 1; min-height: 0; overflow-y: auto; }
.ird-col h5 { font-size: 13px; padding: 10px 12px 4px; border-top: 1px solid var(--d-line2); }
.ird-un { list-style: none; margin: 0; padding: 4px 0; }
.ird-un li { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-left: 3px solid var(--d-red); background: #FFF8F8; margin: 0 8px 4px; border-radius: 0 6px 6px 0; }
.ird-un .n { flex: none; width: 36px; font-weight: 700; font-size: 14px; text-align: center; }
.ird-un .n small { display: block; font-weight: 400; font-size: 10.5px; color: var(--d-ink3); }
.ird-un .d { flex: 1; min-width: 0; }
.ird-un .d small { display: block; font-size: 11.5px; color: var(--d-red); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-abs { margin: 4px 8px 6px; border: 1px solid #E6EAEE; border-radius: 6px; overflow: hidden; }
.ird-abh { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: #F6F8FA; }
.ird-abh b { white-space: nowrap; }
.ird-abh span { flex: 1; min-width: 0; font-size: 11.5px; color: var(--d-red); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-abs ul { list-style: none; margin: 0; padding: 0; }
.ird-abs li { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-top: 1px solid var(--d-line2); font-size: 12px; }
.ird-abs li .n { flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--d-osoft); color: var(--d-orange); display: grid; place-items: center; font-weight: 700; font-size: 11px; }
.ird-abs li.red .n { background: var(--d-rsoft); color: var(--d-red); }
.ird-abs li .d { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.ird-load { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 12.5px; }
.ird-load th, .ird-load td { height: 27px; padding: 0 3px; border-bottom: 1px solid var(--d-line2); text-align: center; vertical-align: middle; }
.ird-load thead th { height: 32px; font-weight: 700; color: var(--d-ink2); font-size: 12.5px; line-height: 1.1; }
.ird-load thead th span { display: block; font-weight: 400; font-size: 10.5px; color: var(--d-ink3); font-variant-numeric: tabular-nums; }
.ird-load th.nm { width: 162px; text-align: left; padding-left: 10px; }
.ird-load th.tot, .ird-load td.tot { width: 54px; color: var(--d-ink2); font-weight: 600; }
.ird-load thead th.tot { font-size: 11px; }
.ird-load th.cur { background: var(--d-blue); color: #fff; border-radius: 5px 5px 0 0; }
.ird-load th.cur span { color: #E3F2FD; }
.ird-load td.cur { background: #EEF6FD; }
.ird-load tbody th.nm button { display: flex; align-items: center; gap: 4px; width: 100%; border: 0; background: none; padding: 3px 4px; border-radius: 4px; text-align: left; font-weight: 600; white-space: nowrap; overflow: hidden; }
.ird-load tbody th.nm button:hover { background: #E5F1FB; color: var(--d-blue); }
.ird-load tbody th.nm em { margin-left: auto; flex: none; font-style: normal; font-size: 10px; font-weight: 700; color: #fff; background: var(--d-red); border-radius: 3px; padding: 0 4px; line-height: 14px; }
.ird-load tbody th.nm em.pt { background: #F9A825; color: #3E2723; max-width: 52px; overflow: hidden; text-overflow: ellipsis; }
.ird-load tr.abs th.nm button { color: var(--d-ink3); }
.ird-load tr.abs td { background: #FBFBFC; }
.ird-load td b { display: block; margin: 0 2px; border-radius: 4px; line-height: 20px; font-weight: 700; }
.ird-load td.c-busy b { background: var(--d-soft); color: var(--d-dblue); }
.ird-load td.c-sub b { background: var(--d-orange); color: #fff; }
.ird-load td.c-move b { background: var(--d-psoft); color: var(--d-purple); box-shadow: inset 0 0 0 1px #CE93D8; }
.ird-load td.c-off s { color: #9AA6B2; }
.ird-load td.c-cancel s { color: var(--d-red); font-weight: 700; }
.ird-load td.c-win span { display: block; margin: 0 2px; line-height: 20px; font-size: 10.5px; color: #9AA6B2; border-radius: 4px; background: repeating-linear-gradient(45deg, #fff 0 3px, #EEF1F4 3px 5px); }
.ird-lfoot { flex: none; display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-top: 1px solid var(--d-line2); font-size: 11.5px; color: var(--d-ink3); white-space: nowrap; }
.ird-lfoot .ird-legend { margin-left: 0; }
.ird-lfoot .ird-legend i:first-child { margin-left: 0; }

.ird-rsum { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 10px 10px 4px; }
.ird-rsum div { background: #F5F7FA; border-radius: 6px; padding: 6px 8px; font-size: 11.5px; color: var(--d-ink3); border-top: 3px solid var(--kc); }
.ird-rsum b { display: block; font-size: 20px; line-height: 24px; color: var(--kc); }
.ird-rep { width: calc(100% - 20px); margin: 6px 10px 0; border-collapse: collapse; font-size: 12.5px; table-layout: fixed; }
.ird-rep th { font-weight: 600; color: var(--d-ink3); font-size: 11.5px; text-align: right; padding: 4px; border-bottom: 1px solid var(--d-line); }
.ird-rep th:first-child { text-align: left; }
.ird-rep th:nth-child(2), .ird-rep th:nth-child(3) { width: 54px; }
.ird-rep td { padding: 5px 4px; border-bottom: 1px solid var(--d-line2); text-align: right; vertical-align: top; font-variant-numeric: tabular-nums; }
.ird-rep td:first-child { text-align: left; overflow: hidden; }
.ird-rep td small { display: block; font-size: 11px; color: var(--d-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-rep tfoot td { font-weight: 700; border-bottom: 0; border-top: 1px solid var(--d-line); }
.ird-foot { flex: none; padding: 10px; border-top: 1px solid var(--d-line2); }
.ird-foot .ird-b { width: 100%; padding: 7px 12px; }

/* диалог */
.ird-dlg { position: absolute; inset: 0; z-index: 8; background: rgba(23,32,42,.32); display: flex; align-items: center; justify-content: center; }
.ird-dwin { width: 560px; max-height: 600px; display: flex; flex-direction: column; background: #fff; border: 1px solid #AEB7C1; border-radius: 8px; box-shadow: 0 18px 50px rgba(0,0,0,.28); cursor: default; }
.ird-dt { flex: none; display: flex; align-items: center; gap: 8px; padding: 9px 10px 9px 14px; border-bottom: 1px solid var(--d-line2); }
.ird-dt b { flex: 1; min-width: 0; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-db { flex: 1; min-height: 0; overflow-y: auto; padding: 12px 14px; }
.ird-dinfo { font-size: 13px; color: var(--d-ink2); margin-bottom: 10px; }
.ird-cands { display: flex; flex-direction: column; gap: 4px; }
.ird-cand { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 10px; border: 1px solid #E0E4E9; border-radius: 6px; background: #fff; text-align: left; }
.ird-cand:hover { border-color: var(--d-blue); background: #F1F8FE; }
.ird-cand .st { flex: none; width: 14px; color: #F9A825; font-size: 14px; }
.ird-cand .d { flex: 1; min-width: 0; }
.ird-cand .d small { display: block; font-size: 11.5px; color: var(--d-ink3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird-cand .m { flex: none; font-size: 11.5px; color: var(--d-ink3); text-align: right; }
.ird-cand .m em { display: block; font-style: normal; color: var(--d-green); font-weight: 600; }
.ird-dbtn { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.ird-plan { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.ird-plan th { text-align: left; font-weight: 600; color: var(--d-ink3); border-bottom: 1px solid var(--d-line); padding: 4px 6px; }
.ird-plan td { border-bottom: 1px solid var(--d-line2); padding: 5px 6px; }
.ird-plan td span, .ird-plan td small { color: var(--d-ink3); }

/* уведомление */
.ird-toast { position: absolute; right: 16px; bottom: 40px; z-index: 9; display: flex; align-items: center; gap: 8px; max-width: 460px; background: #fff; border: 1px solid #A5D6A7; border-left: 4px solid var(--d-green); border-radius: 6px; padding: 9px 14px; font-size: 13px; font-weight: 600; box-shadow: 0 8px 24px rgba(16,38,64,.18); animation: ird-in .3s ease; pointer-events: none; }
.ird-toast[hidden] { display: none; }
.ird-toast svg { width: 18px; height: 18px; color: var(--d-green); flex: none; }
@keyframes ird-in { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .ird-alarm, .ird-toast { animation: none; } }
.ird-lh { width: 150px; overflow: hidden; }
.ird-lh b, .ird-lh span { line-height: 1.15; }
.ird-lh small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ird .nm button { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.ird .nm em.pt { font-size: 10px; padding: 0 4px; }
