/* css/screens/linen.css — Grand Mumtoz Director · «Бельё / Choyshab».
 * Оборот белья одной лентой: чистое → на руках → в номерах → грязное. Только токены. */

.ln-head { display: flex; flex-direction: column; gap: 4px; }
.ln-title { font: 600 26px/30px var(--font-display); color: var(--text-1); margin: 0; }
.ln-sub { color: var(--text-3); }
.ln-tabs { margin-top: 14px; }
.ln-body { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }

/* ---------- лента оборота ---------- */
.ln-bar { display: flex; gap: 3px; height: 34px; border-radius: var(--r-sm); overflow: hidden; }
.ln-bar--s { height: 8px; gap: 2px; margin-top: 7px; }
.ln-bar__seg { display: flex; align-items: center; justify-content: center; min-width: 4px; border-radius: 3px; overflow: hidden; transition: flex-grow var(--t-med) var(--e-velvet); }
.ln-bar__seg--none { flex: 1; background: var(--bg-3); }
.ln-bar__seg--clean { background: var(--success); }
.ln-bar__seg--hands { background: var(--dept-maid); }
.ln-bar__seg--rooms { background: var(--info); }
.ln-bar__seg--dirty { background: var(--warning); }
.ln-bar__n { font: 700 13px/16px var(--font-ui); font-variant-numeric: tabular-nums; color: var(--text-inverse); padding: 0 4px; }

.ln-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ln-dot--clean { background: var(--success); }
.ln-dot--hands { background: var(--dept-maid); }
.ln-dot--rooms { background: var(--info); }
.ln-dot--dirty { background: var(--warning); }

/* ---------- шапка-герой ---------- */
.ln-hero { display: flex; flex-direction: column; gap: 12px; padding: 16px; }
.ln-hero__top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.ln-hero__n { font: 600 22px/26px var(--font-display); font-variant-numeric: tabular-nums; color: var(--text-1); }
.ln-hero__off { color: var(--text-3); }
.ln-legend { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ln-legend__i { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ln-legend__l { font: 500 11px/14px var(--font-ui); color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ln-legend__n { font: 700 17px/21px var(--font-ui); font-variant-numeric: tabular-nums; color: var(--text-1); }

/* ---------- действия ---------- */
.ln-acts { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- позиции ---------- */
.ln-items { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.ln-item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; background: none; border: 0; border-bottom: 1px solid var(--line); text-align: left; cursor: pointer; color: inherit; }
.ln-item:last-child { border-bottom: 0; }
.ln-item:hover { background: var(--bg-3); }
.ln-item__e { font-size: 20px; line-height: 1; flex-shrink: 0; }
.ln-item__body { flex: 1; min-width: 0; }
.ln-item__name { display: block; font: 600 15px/19px var(--font-ui); color: var(--text-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ln-item__n { font: 700 18px/22px var(--font-ui); font-variant-numeric: tabular-nums; color: var(--text-1); flex-shrink: 0; }
.ln-neg { color: var(--danger); }

/* ---------- карточка позиции ---------- */
.ln-card { display: flex; flex-direction: column; gap: 12px; }
.ln-card__list { display: flex; flex-direction: column; }
.ln-card__row { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.ln-card__row:last-child { border-bottom: 0; }
.ln-card__l { flex: 1; min-width: 0; font: 500 14px/18px var(--font-ui); color: var(--text-2); }
.ln-card__row .num { font: 700 17px/21px var(--font-ui); font-variant-numeric: tabular-nums; color: var(--text-1); }
.ln-card__foot { display: flex; justify-content: space-between; gap: 10px; padding-top: 4px; border-top: 1px solid var(--line-gold); }

/* ---------- выбор действия ---------- */
.ln-pick { display: flex; flex-direction: column; gap: 10px; }
.ln-pick .caption { color: var(--text-3); }

/* ---------- окно количеств ---------- */
.ln-qsheet { display: flex; flex-direction: column; gap: 12px; }
.ln-qsheet__hint { color: var(--text-3); }
.ln-qlist { display: flex; flex-direction: column; max-height: 54vh; overflow-y: auto; border: 1px solid var(--line); border-radius: var(--r-sm); }
.ln-qrow { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.ln-qrow:last-child { border-bottom: 0; }
.ln-qrow.is-off { opacity: .45; }
.ln-qrow__e { font-size: 18px; line-height: 1; flex-shrink: 0; }
.ln-qrow__body { flex: 1; min-width: 0; }
.ln-qrow__name { display: block; font: 600 14px/18px var(--font-ui); color: var(--text-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- журнал ---------- */
.ln-log { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.ln-logrow { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.ln-logrow:last-child { border-bottom: 0; }
.ln-logrow__e { font-size: 18px; line-height: 1; flex-shrink: 0; }
.ln-logrow__body { flex: 1; min-width: 0; }
.ln-logrow__t { display: block; font: 500 14px/18px var(--font-ui); color: var(--text-1); }
.ln-logrow__n { font: 700 16px/20px var(--font-ui); font-variant-numeric: tabular-nums; color: var(--text-2); flex-shrink: 0; }
.ln-k--intro { color: var(--success); }
.ln-k--wash, .ln-k--back { color: var(--success); }
.ln-k--writeoff { color: var(--danger); }

@media (max-width: 420px) {
  .ln-legend { grid-template-columns: repeat(3, 1fr); gap: 10px 6px; }
  .ln-acts > * { flex: 1 1 auto; }
}
