/* ════════════════════════════════════════════════════════════════════════════
   Кондитерская: заказы, план выпечки, маршрут доставки, сообщения.
   Дополняет app.css.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── заказы ────────────────────────────────────────────────────────────── */
.ords2{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
/* На узком карточки заказов едут лентой — как остальные сетки в кабинетах.
   Класс свой, поэтому общее правило из app.css его не цепляет. */
@media(max-width:820px){
  .ords2{display:flex;grid-template-columns:none;gap:10px;overflow-x:auto;
    scroll-snap-type:x mandatory;scroll-padding-left:12px;margin-inline:-12px;
    padding:2px 12px 12px;scrollbar-width:none;overscroll-behavior-x:contain}
  .ords2::-webkit-scrollbar{display:none}
  .ords2 > *{flex:0 0 min(88%,300px);scroll-snap-align:start;min-width:0}
  .ords2::after{content:"";flex:0 0 1px}
}
.oc{--tint:transparent;border-radius:6px;display:flex;flex-direction:column;
  background:color-mix(in srgb, var(--tint) 9%, color-mix(in srgb, var(--plate) 86%, transparent));
  border:1px solid color-mix(in srgb, var(--tint) 26%, var(--hair));
  backdrop-filter:blur(12px) saturate(1.2);
  box-shadow:inset 0 1px 0 var(--plate-lip), 0 12px 26px -20px var(--shadow)}
.oc.new{--tint:var(--signal)} .oc.bake{--tint:var(--warn)}
.oc.ready{--tint:var(--live)} .oc.road{--tint:var(--live)}
.oc-h{display:flex;align-items:center;gap:9px;padding:12px 14px;
  border-bottom:1px solid color-mix(in srgb, var(--tint) 22%, var(--hair))}
.oc-h b{font-family:var(--display);font-weight:600;font-size:15px}
.oc-h .num{font-family:var(--mono);font-size:11.5px;opacity:.5}
.oc-b{padding:13px 14px;flex:1}
.oc-lines{list-style:none;margin:0 0 11px;padding:0;font-size:13.5px}
.oc-lines li{display:flex;gap:9px;align-items:center;padding:5px 0;
  border-bottom:1px solid color-mix(in srgb,var(--hair) 28%,transparent)}
.oc-lines li:last-child{border:0}
.oc-lines img{width:34px;height:34px;object-fit:cover;border-radius:4px;flex:0 0 34px}
.oc-lines em{font-style:normal;margin-left:auto;font-family:var(--mono);font-size:12.5px}
.when{display:flex;align-items:baseline;gap:8px;font-family:var(--mono);font-size:12.5px;
  margin-bottom:9px}
.when b{font-size:15px;font-weight:400}
.when .exact{color:var(--signal);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid color-mix(in srgb,var(--signal) 40%,var(--hair));border-radius:3px;padding:2px 6px}
.lim-cap{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  opacity:.4;align-self:center;margin-right:2px}
.lim-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.lim-tag{font-family:var(--mono);font-size:10px;letter-spacing:.06em;padding:3px 7px;
  border-radius:3px;border:1px solid color-mix(in srgb,var(--warn) 45%,var(--hair));
  color:var(--warn)}
.oc-f{display:flex;gap:8px;padding:11px 14px;
  border-top:1px solid color-mix(in srgb, var(--tint) 22%, var(--hair))}
.oc-f .btn{flex:1;padding:9px 12px;font-size:13.5px}

/* ── план выпечки ──────────────────────────────────────────────────────── */
.plan{list-style:none;margin:0;padding:0}
.plan li{display:grid;grid-template-columns:66px 1fr auto;gap:13px;align-items:center;
  padding:12px 0;border-bottom:1px solid color-mix(in srgb,var(--hair) 34%,transparent)}
.plan li:last-child{border:0}
.plan .st{font-family:var(--mono);font-size:15px;text-align:right}
.plan .st small{display:block;font-size:10.5px;opacity:.45;letter-spacing:.06em;
  text-transform:uppercase}
.plan .wh b{font-family:var(--display);font-weight:600;font-size:14.5px;display:block}
.plan .wh span{font-size:12.5px;opacity:.55}
.plan .to{font-family:var(--mono);font-size:12.5px;opacity:.6;text-align:right;white-space:nowrap}
.plan li.now{background:color-mix(in srgb,var(--signal) 7%,transparent);
  margin:0 -10px;padding:12px 10px;border-radius:5px}
.plan li.late .st{color:var(--signal)}

/* ── маршрут ───────────────────────────────────────────────────────────── */
.route{list-style:none;margin:0;padding:0;position:relative}
.route::before{content:"";position:absolute;left:33px;top:14px;bottom:14px;width:1px;
  background:var(--hair)}
.route li{display:grid;grid-template-columns:68px 1fr auto;gap:14px;align-items:start;
  padding:13px 0;position:relative}
.route .t{font-family:var(--mono);font-size:14px;text-align:right;padding-top:1px}
.route .dot{position:absolute;left:29px;top:19px;width:9px;height:9px;border-radius:50%;
  background:var(--plate);border:2px solid var(--hair)}
.route li.strict .dot{border-color:var(--signal);background:var(--signal)}
.route .who b{font-family:var(--display);font-weight:600;font-size:14.5px;display:block}
.route .who span{font-size:12.5px;opacity:.6;line-height:1.4}
.route .sum{font-family:var(--mono);font-size:13px;opacity:.65;white-space:nowrap}

/* ── сообщения ─────────────────────────────────────────────────────────── */
.msgs{display:grid;gap:12px}
.msg{border-radius:6px;padding:14px 16px;border:1px solid var(--hair);
  background:color-mix(in srgb,var(--plate) 70%,transparent)}
.msg.kind{border-color:color-mix(in srgb,var(--live) 34%,var(--hair));
  background:color-mix(in srgb,var(--live) 7%,transparent)}
.msg-h{display:flex;align-items:baseline;gap:10px;margin-bottom:7px}
.msg-h b{font-family:var(--display);font-weight:600;font-size:14.5px}
.msg-h .tag{margin:0 0 0 auto}
.msg p{margin:0;font-size:13.5px;line-height:1.55;opacity:.8;white-space:pre-wrap}
.msg .who2{font-family:var(--mono);font-size:11.5px;opacity:.5;margin-top:8px;display:block}
.msg .fields{display:grid;gap:5px;margin-top:9px;font-size:13px}
.msg .fields span{display:flex;gap:9px}
.msg .fields i{font-style:normal;opacity:.5;min-width:96px}

/* В шапке две ссылки — на сайт и в каталог демо. На 320 пикселях они
   не помещаются рядом с логотипом; сайт остаётся кнопкой на экране «Сегодня». */
@media(max-width:560px){
  .top .clock .back:first-of-type{display:none}
}

/* ── оплата в карточке заказа ──────────────────────────────────────────── */
.pay{margin-top:9px;font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;
  padding:7px 10px;border-radius:4px;border:1px dashed var(--hair);opacity:.85}
.pay.part{border-color:color-mix(in srgb,var(--live) 42%,var(--hair));color:var(--live)}
.pay.later{border-color:color-mix(in srgb,var(--warn) 38%,var(--hair));color:var(--warn)}

/* ── тех-карты ─────────────────────────────────────────────────────────── */
.tcs{display:grid;gap:10px}
.tc{border:1px solid var(--hair);border-radius:6px;overflow:hidden;
  background:color-mix(in srgb,var(--plate) 74%,transparent)}
.tc.op{border-color:color-mix(in srgb,var(--signal) 34%,var(--hair))}
.tc-h{display:flex;align-items:center;gap:13px;width:100%;padding:11px 14px;text-align:left;
  background:transparent;border:0;color:inherit;font:inherit;cursor:pointer}
.tc-h:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
.tc-h img{width:46px;height:46px;object-fit:cover;border-radius:5px;flex:0 0 46px}
.tc-n{flex:1;min-width:0}
.tc-n b{display:block;font-family:var(--display);font-weight:600;font-size:14.5px}
.tc-n span{font-size:12.5px;opacity:.55}
.tc-m{text-align:right;flex:0 0 auto}
.tc-m b{display:block;font-family:var(--mono);font-size:16px;color:var(--live)}
.tc-m span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:.45}
.tc-x{width:26px;height:26px;border-radius:50%;border:1px solid var(--hair);flex:0 0 26px;
  display:grid;place-items:center;font-family:var(--mono);font-size:15px;opacity:.6}
.tc-b{padding:2px 14px 14px;border-top:1px solid var(--hair)}
.tcw{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
.tcw th{text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;opacity:.45;font-weight:400;padding:7px 8px}
.tcw td{padding:6px 8px;border-top:1px solid color-mix(in srgb,var(--hair) 40%,transparent)}
.tcw .r{text-align:right} .tcw .dim{opacity:.5}
.tcw tfoot td{border-top:1px solid var(--hair);opacity:.75}
.tcw tfoot tr.mg td{color:var(--live);opacity:1}
.tc-ab{margin:12px 0 0;font-size:13px;line-height:1.6;opacity:.6}

/* ── склад ─────────────────────────────────────────────────────────────── */
table.wh{width:100%;border-collapse:collapse;font-size:13px}
table.wh th{text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;opacity:.45;font-weight:400;padding:8px 9px;white-space:nowrap}
table.wh td{padding:9px;border-top:1px solid color-mix(in srgb,var(--hair) 40%,transparent)}
table.wh .r{text-align:right} table.wh .dim{opacity:.5}
table.wh .u{display:block;font-size:11px;opacity:.4}
table.wh tr.warn td:nth-child(4){color:var(--warn)}
table.wh tr.bad{background:color-mix(in srgb,var(--signal) 7%,transparent)}
table.wh tr.bad td:nth-child(4){color:var(--signal);font-weight:600}
.card-f{padding:12px 16px;border-top:1px solid var(--hair);font-size:12.5px;
  line-height:1.55;opacity:.6}

/* ── финансы ───────────────────────────────────────────────────────────── */
.chart{width:100%;height:170px;display:block}
.chart-x{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;
  opacity:.45;margin-top:7px}
.note2{margin:14px 0 0;font-size:13px;line-height:1.6;opacity:.65}
.fin-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:9px 0;border-bottom:1px solid color-mix(in srgb,var(--hair) 34%,transparent);
  font-size:13.5px}
.fin-row:last-child{border-bottom:0}
.fin-row span{opacity:.65} .fin-row b{font-weight:600}
.fin-row.dimr{opacity:.55;font-size:12.5px}
.fin-row.tot{border-top:1px solid var(--hair);margin-top:4px;padding-top:12px}
.fin-row.tot span{opacity:1}

/* На узком широкие таблицы едут вбок внутри карточки — как в остальных
   кабинетах; сжимать их до 320 без потери смысла нельзя. */
@media(max-width:820px){
  table.wh{min-width:620px}
  .tcw{min-width:420px}
  .tc-b{overflow-x:auto}
}

/* ── источники клиентов ────────────────────────────────────────────────── */
table.wh tr.own td{opacity:.82}
table.wh tr.own td:first-child b::before{content:"";display:inline-block;width:6px;height:6px;
  border-radius:50%;background:var(--live);margin-right:7px;vertical-align:middle}
table.wh tr.sep td{font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;opacity:.35;padding-top:16px;border-top:1px solid var(--hair)}
table.wh .up{color:var(--live)} table.wh .sig{color:var(--signal)}
@media(max-width:820px){table.wh.src{min-width:820px}}
