.form-message.error{color:#c94c3e}
.module-page a{color:var(--orange);font-weight:700;text-decoration:none}
.module-page .module-kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.user-row .logout-button{display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:9px;color:#84909b}
.user-row .logout-button:hover{background:#e8f7f6;color:#0f9d9a}
.dv-loss{margin:16px 0 0;padding:10px 12px;border-radius:8px;background:#fff2f2;color:#b14646;font-size:12px;font-weight:600}

/* cash flow, exports, inventory count */
.segmented { display: inline-flex; gap: 4px; padding: 3px; border-radius: 12px; background: rgba(0, 0, 0, .06); }
.segmented button { border: 0; background: transparent; padding: 7px 14px; border-radius: 9px; font: inherit; font-weight: 600; cursor: pointer; color: inherit; transition: background .2s, box-shadow .2s; }
.segmented button.active { background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .12); }
.export-buttons { display: flex; flex-wrap: wrap; gap: 10px; padding: 4px 0; }
.text-danger { color: #c2412d; }
.text-success { color: #3f8a5a; }
#countForm input[type=number] { width: 110px; }
#countForm > label { display: block; margin: 16px 0 8px; max-width: 220px; }

/* purchases (bozorchi) */
.buy-form .buy-line{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr auto auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line,#e8ebee)}
.buy-form .field{display:flex;flex-direction:column;gap:4px;font-size:13px}
.buy-form .field input,.buy-form .field select{height:44px;padding:0 10px;border:1px solid var(--line,#d9dee3);border-radius:10px;font:inherit;background:#fff;min-width:0}
.buy-form .buy-line-total{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:90px}
.buy-form .buy-line-total strong{font-size:16px;line-height:44px}
.buy-form .buy-pay{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end;margin:16px 0}
.buy-form .buy-total{display:flex;flex-direction:column;gap:2px;font-size:13px}
.buy-form .buy-total strong{font-size:22px}
.buy-form [data-submit]{width:100%;height:52px;font-size:16px}
@media (max-width:720px){.buy-form .buy-line{grid-template-columns:1fr 1fr}.buy-form .buy-line>.field:first-child{grid-column:1/-1}}
.buy-form [hidden]{display:none !important}

/* receipts and suppliers */
.receipts details.receipt{border-bottom:1px solid var(--line,#e8ebee);padding:10px 4px}
.receipts details.receipt>summary{display:grid;grid-template-columns:110px 1fr 1fr 1.2fr auto auto;gap:10px;align-items:center;cursor:pointer;list-style:none;font-size:14px}
.receipts details.receipt>summary::-webkit-details-marker{display:none}
.receipts details.receipt.refunded{opacity:.7}
.receipts .receipt-foot{font-size:13px;color:var(--muted,#6b7780);margin:8px 0 0}
.receipts tr.voided td{text-decoration:line-through;opacity:.6}
.receipt-filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.receipt-filters input[type=search]{flex:1;min-width:220px;height:42px;padding:0 12px;border:1px solid var(--line,#d9dee3);border-radius:10px;font:inherit}
.receipt-filters select{height:42px;padding:0 10px;border:1px solid var(--line,#d9dee3);border-radius:10px;font:inherit}
[data-supplier-detail] h3{margin:18px 0 8px}
[data-supplier-detail] .field{display:flex;flex-direction:column;gap:4px;font-size:13px}
@media (max-width:720px){.receipts details.receipt>summary{grid-template-columns:1fr auto}}

/* check history */
.rc-timeline{list-style:none;margin:8px 0 0;padding:0;border-left:2px solid var(--line,#e8ebee)}
.rc-timeline li{display:flex;gap:12px;padding:6px 0 6px 14px;position:relative;font-size:14px}
.rc-timeline li::before{content:"";position:absolute;left:-6px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--accent,#0f9d9a)}
.rc-timeline time{color:var(--muted,#6b7780);font-variant-numeric:tabular-nums;min-width:70px;font-size:13px}
.rc-timeline div{display:flex;flex-direction:column}
.rc-timeline span{color:var(--ink,#1f2a33)}
.rc-timeline em{color:var(--muted,#6b7780);font-size:12px;font-style:normal}
.receipts h4{margin:14px 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b7780)}
.rc-device{display:block;color:var(--muted,#6b7780);font-size:12px}
.rc-flag{font-size:11px;padding:2px 8px;border-radius:999px;background:#fff1ea;color:#b4441c;border:1px solid #f7d3c3;white-space:nowrap}
.receipts details.receipt>summary{grid-template-columns:110px 1fr 1fr 1.2fr auto auto auto}

/* live sales feed */
.live-status{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.live-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--line,#e8ebee);background:#fff;font-size:13px;margin:0 8px 6px 0}
.live-chip i{width:9px;height:9px;border-radius:50%;background:#98a2b3}
.live-chip.on i{background:#16a34a;box-shadow:0 0 0 0 rgba(22,163,74,.5);animation:livePulse 2s infinite}
.live-chip.off{border-color:#f5c2b4;color:#b4441c}.live-chip.off i{background:#e2603a}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}70%{box-shadow:0 0 0 8px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.live-updated{font-size:12px;color:var(--muted,#6b7780)}
.live-banner{background:#fff1ea;border:1px solid #f7d3c3;color:#b4441c;border-radius:10px;padding:8px 12px;margin:0 0 10px}
.live-grid{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:16px;align-items:start}
.live-open,.live-feed{list-style:none;margin:0;padding:0}
.live-open li{display:grid;gap:2px;padding:10px 4px;border-bottom:1px solid var(--line,#e8ebee)}
.live-open li span,.live-open li em{font-size:13px;color:var(--muted,#6b7780);font-style:normal}
.live-count{background:var(--accent,#0f9d9a);color:#fff;border-radius:999px;padding:2px 10px;font-weight:700}
.live-item{display:flex;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line,#e8ebee)}
.live-item time{color:var(--muted,#6b7780);font-variant-numeric:tabular-nums;min-width:74px;font-size:13px}
.live-item div{display:flex;flex-direction:column}.live-item em{font-size:12px;color:var(--muted,#6b7780);font-style:normal}
.live-item.live-paid strong{color:#15803d}.live-item.live-order-cancelled strong,.live-item.live-item-cancelled strong,.live-item.live-refunded strong{color:#b4441c}
.live-fresh{animation:liveIn .9s ease-out}
@keyframes liveIn{from{background:#fff7d6;transform:translateY(-6px);opacity:.3}to{background:transparent;transform:none;opacity:1}}
.live-bump{animation:liveBump .8s ease-out}
@keyframes liveBump{0%{transform:scale(1.08);color:#15803d}100%{transform:none}}
.live-empty{color:var(--muted,#6b7780);padding:14px 4px}
@media (max-width:820px){.live-grid{grid-template-columns:1fr}}

/* restaurants overview */
.rs-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;margin-top:16px}
.rs-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.rs-card header p{margin:2px 0 0;color:var(--muted,#6b7780);font-size:13px}
.rs-badges{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.rs-health{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.rs-h-ok{background:#e6f6ec;color:#15803d}.rs-h-warning{background:#fff4d6;color:#a16207}.rs-h-critical{background:#fde8e4;color:#b42318}
.rs-card.rs-critical{border-color:#f3b9ad}.rs-card.rs-warning{border-color:#f2dc9b}
.rs-alerts{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px}
.rs-alerts li{font-size:14px;padding:6px 10px;border-radius:8px;background:#f5f6f7}
.rs-a-critical{background:#fde8e4 !important;color:#8a1c10}.rs-a-warning{background:#fff4d6 !important;color:#7a4b06}.rs-a-info{color:var(--muted,#6b7780)}
.rs-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:8px 0}
.rs-row{display:flex;justify-content:space-between;gap:8px;font-size:13px;border-bottom:1px dashed var(--line,#e8ebee);padding:4px 0}
.rs-row span{color:var(--muted,#6b7780)}
.rs-card h3{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b7780)}
.rs-devices{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.rs-devices li{display:flex;gap:8px;align-items:center;font-size:13px}.rs-devices span{color:var(--muted,#6b7780);margin-left:auto}
.rs-devices i{width:8px;height:8px;border-radius:50%;background:#98a2b3}.rs-devices i.on{background:#16a34a}
.rs-errors{margin-top:10px;font-size:12px}.rs-errors ul{padding-left:16px}.rs-errors time{color:var(--muted,#6b7780)}
.rs-card footer{margin-top:10px;font-size:12px;color:var(--muted,#6b7780)}
@media (max-width:520px){.rs-cards{grid-template-columns:1fr}.rs-grid{grid-template-columns:1fr}}

/* Telegram notifications */
.tg-steps{margin:8px 0 14px;padding-left:20px;line-height:1.7}
.tg-rules{display:grid;gap:4px}
.tg-rule{display:flex;align-items:center;gap:12px;padding:8px 4px;border-bottom:1px solid var(--line,#e8ebee);cursor:pointer}
.tg-rule>span:nth-child(2){display:flex;flex-direction:column;flex:1}.tg-rule small{color:var(--muted,#6b7780)}
.tg-rule input[type=checkbox]{width:20px;height:20px}
.tg-urgent{font-style:normal;font-size:11px;background:#fde8e4;color:#b42318;border-radius:999px;padding:1px 8px;margin-left:6px}
.tg-min input{width:120px;height:36px;border:1px solid var(--line,#d9dee3);border-radius:8px;padding:0 8px}
.tg-chats,.tg-recent{list-style:none;margin:0;padding:0}
.tg-chats li{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line,#e8ebee)}.tg-chats li span{color:var(--muted,#6b7780);font-size:13px;margin-left:auto}
.tg-recent li{display:grid;grid-template-columns:110px 1fr auto;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line,#e8ebee);font-size:13px}
.tg-recent time{color:var(--muted,#6b7780)}.tg-recent .failed em{color:#b42318}.tg-recent .sent em{color:#15803d}.tg-recent em{font-style:normal}
@media (max-width:640px){.tg-recent li{grid-template-columns:1fr}.tg-chats li{flex-wrap:wrap}}

/* the restaurant's receipt template dialog (Restoranlar holati) */
.rs-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.rs-dialog { border: 1px solid var(--line, #e4e7ec); border-radius: 16px; padding: 20px; width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; background: var(--surface, #fff); color: inherit; }
.rs-dialog::backdrop { background: rgba(16, 25, 54, .45); }
.rs-dialog h2 { margin: 0 0 12px; font-size: 1.05rem; }
.rs-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.rs-tabs [aria-current] { background: var(--accent, #0d9488); color: #fff; border-color: transparent; }
.rs-form { display: grid; gap: 4px; }
.rs-check { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(127, 127, 127, .15); cursor: pointer; }
.rs-check input { width: 18px; height: 18px; }
.rs-field { display: grid; gap: 4px; margin-top: 8px; font-size: .85rem; }
.rs-field input, .rs-field select { padding: 8px 10px; border: 1px solid var(--line, #d0d5dd); border-radius: 10px; background: transparent; color: inherit; font: inherit; }

/* live: how far an open check got */
.live-tag { display: inline-block; justify-self: start; font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: rgba(13, 148, 136, .12); color: #0f766e; margin-right: 4px; }
.live-tag.precheck { background: rgba(245, 158, 11, .16); color: #b45309; }
.live-tag.precheck.late, .live-tag.warn { background: rgba(220, 38, 38, .12); color: #b42318; }
.live-open li.live-warn { box-shadow: inset 3px 0 0 #dc2626; padding-left: 10px; }

/* balance and top-ups */
.bill-balance strong { color: var(--accent, #0d9488); }
.bill-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.bill-card { display: grid; gap: 4px; padding: 16px; border-radius: 16px; background: linear-gradient(135deg, #0f766e, #0d9488); color: #fff; margin: 10px 0; }
.bill-card strong { font-size: 1.35rem; letter-spacing: .08em; font-variant-numeric: tabular-nums; }
.bill-card span, .bill-card em { opacity: .85; font-style: normal; font-size: .85rem; }
.bill-card button { justify-self: start; margin-top: 6px; }
.bill-steps { padding-left: 18px; margin: 0 0 8px; font-size: .9rem; display: grid; gap: 4px; }
.bill-error { color: #b42318; font-size: .85rem; min-height: 1.2em; margin: 0; }
.bill-in { color: #067647; font-weight: 700; } .bill-out { color: #b42318; font-weight: 700; }
.bill-reject { color: #b42318; }
.bill-list { display: grid; gap: 12px; }
.bill-request header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.bill-request h3 { margin: 0; }
.bill-amount { font-size: 1.25rem; white-space: nowrap; }
.bill-decide { margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(127, 127, 127, .2); }
.bill-reject-btn { color: #b42318; }
