/* Dashboard daybook */
.dash-page{ min-width:0; --dash-aging-rust:#B5562B; }
.dash-page .card{ border:1px solid var(--app-line); box-shadow:none; background:var(--app-card); }
.dash-kpi-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.dash-net{ margin-top:12px; padding:12px 16px 16px; border:1px solid var(--app-line); border-radius:var(--bs-border-radius,8px); background:var(--app-card); }
.dash-net-labels{ display:grid; grid-template-columns:1fr auto 1fr; gap:12px; align-items:end; color:var(--muted); font-size:var(--text-xs); }
.dash-net-labels strong{ color:var(--app-ink); text-align:center; }
.dash-net-labels span:last-child{ text-align:right; }
.dash-net-bar,.dash-aging-bar{ display:flex; overflow:hidden; height:12px; margin-top:8px; border-radius:999px; background:var(--app-line-soft); }
.dash-net-bar span,.dash-aging-bar span{ display:block; min-width:0; }
.dash-net-ar,.dash-age-31_60{ background:var(--gold); }.dash-net-ap,.dash-age-91_plus{ background:var(--debt); }
/* Even grid: cards sit in rows of two, each row as tall as its tallest card, so nothing leaves a gap; an odd last card spans the row. */
.dash-columns{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; }
.dash-columns>*{ min-width:0; }
.dash-columns>.card{ height:100%; margin:0; }
.dash-columns>:last-child:nth-child(odd){ grid-column:1/-1; }
.dash-section-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.dash-section-head h5{ margin:0; font-size:var(--text-xl); }.dash-section-head p{ margin:3px 0 0; color:var(--muted); font-size:var(--text-xs); }
.dash-section-head>a{ white-space:nowrap; font-size:var(--text-sm); }
.dash-legend{ display:flex; flex-wrap:wrap; gap:10px; color:var(--muted); font-size:var(--text-xs); }
.dash-swatch,.dash-age-key{ display:inline-block; width:9px; height:9px; margin-right:4px; border-radius:2px; }
.dash-swatch-today,.dash-bar-today,.dash-age-0_30{ fill:var(--green); background:var(--green); }
.dash-swatch-week,.dash-bar-week{ fill:var(--slate-line); background:var(--slate-line); }
.dash-swatch-visitors{ background:var(--blue,#2f6fdb); border-radius:50%; }
.dash-line-visitors{ fill:none; stroke:var(--blue,#2f6fdb); stroke-width:2; stroke-linejoin:round; }
.dash-dot-visitors{ fill:var(--blue,#2f6fdb); stroke:var(--surface,#fff); stroke-width:1.5; }
.dash-chart-scroll{ width:100%; overflow-x:auto; overflow-y:hidden; }
.dash-hourly-svg{ display:block; width:100%; min-width:0; height:auto; max-height:230px; }
@media(max-width:999.98px){.dash-hourly-svg{ min-width:650px; }}
.dash-hourly-svg text{ fill:var(--muted); font-size:var(--text-xs); }.dash-axis{ stroke:var(--app-line); }.dash-now{ stroke:var(--debt); stroke-width:1.5; stroke-dasharray:4 4; }
.dash-log-list{ border-top:1px solid var(--app-line-soft); }
.dash-log-row{ display:grid; grid-template-columns:42px 9px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--app-line-soft); color:var(--app-ink); text-decoration:none; }
.dash-log-row:hover{ background:var(--app-hover); }.dash-log-row time{ color:var(--muted); font-size:var(--text-xs); font-variant-numeric:tabular-nums; }
.dash-dot{ width:8px; height:8px; border-radius:50%; background:var(--green); }.dash-dot-payment_in,.dash-dot-payment_out{ background:var(--gold); }.dash-dot-return{ background:var(--debt); }.dash-dot-order{ background:var(--slate); }
.dash-log-copy{ min-width:0; display:flex; flex-direction:column; }.dash-log-copy small{ color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dash-log-amount{ font-weight:700; white-space:nowrap; }
.dash-aging-bar{ margin:2px 0 9px; }.dash-age-0_30{ background:var(--green); }.dash-age-61_90{ background:var(--dash-aging-rust); }
.dash-aging-labels{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; color:var(--muted); font-size:var(--text-xs); }.dash-aging-labels span{ min-width:0; }.dash-aging-labels strong{ display:block; color:var(--app-ink); margin-left:13px; }
.dash-debtors{ margin-top:12px; }.dash-debtor{ padding:10px 0; border-top:1px solid var(--app-line-soft); }.dash-thin{ height:3px; margin:6px 0; border-radius:3px; background:var(--app-line-soft); }.dash-thin span{ display:block; height:100%; background:var(--gold); border-radius:inherit; }.dash-thin span.is-late{ background:var(--debt); }
.dash-debtor-meta{ display:flex; justify-content:space-between; gap:8px; color:var(--muted); font-size:var(--text-xs); }.dash-actions{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.dash-subsection{ margin-top:12px; padding-top:12px; border-top:2px solid var(--app-line); }.dash-subtitle{ display:flex; justify-content:space-between; font-weight:600; margin-bottom:4px; }.dash-subtitle a{ font-size:var(--text-sm); }
.dash-due{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 8px; padding:9px 0; border-top:1px solid var(--app-line-soft); }.dash-due>div:first-child{ display:flex; flex-direction:column; }.dash-due small{ color:var(--muted); }.dash-due.is-overdue>strong{ color:var(--debt); }.dash-due .dash-actions{ grid-column:1/-1; }
.dash-compact>a,.dash-order>a{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px 0; border-top:1px solid var(--app-line-soft); color:var(--app-ink); text-decoration:none; }.dash-compact span,.dash-order>a span{ display:flex; flex-direction:column; min-width:0; }.dash-compact small,.dash-order small{ color:var(--muted); }
.dash-order{ padding:5px 0 9px; border-top:1px solid var(--app-line-soft); }.dash-order>a{ border:0; padding-bottom:5px; }.dash-order>div{ display:flex; justify-content:space-between; align-items:center; }
.dash-alert{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-top:1px solid var(--app-line-soft); }.dash-alert span{ min-width:0; }
.dash-empty{ padding:16px 0; color:var(--muted); text-align:center; font-size:var(--text-sm); }
@media(max-width:999.98px){.dash-columns{ grid-template-columns:minmax(0,1fr); }}
@media(max-width:999.98px){.dash-kpi-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }}
@media(max-width:519.98px){.dash-kpi-grid{ grid-template-columns:minmax(0,1fr); }}
@media(max-width:519.98px){.dash-store{ align-items:stretch!important; flex-direction:column; }.dash-store .form-select{ width:100%!important; }.dash-net-labels{ grid-template-columns:1fr 1fr; }.dash-net-labels strong{ grid-column:1/-1; grid-row:2; text-align:left; }.dash-log-row{ grid-template-columns:36px 8px minmax(0,1fr); }.dash-log-amount{ grid-column:3; }.dash-debtor-meta{ flex-direction:column; }.dash-actions{ justify-content:flex-start; }.dash-page .card-body{ padding:14px; }}

/* Dashboard layouts (control room / action board) + the picker on Company */
.dash-attn-title { font-size: var(--text-sm, .9rem); margin: 0 0 .5rem; }
.dash-attn { margin-bottom: 1rem; }
.dash-attn-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.dash-attn-card { display: flex; flex-direction: column; gap: .15rem; padding: .85rem 1rem; background: var(--app-card, #fff); border: 1px solid var(--app-line, #e7e3da); border-left: 4px solid var(--slate, #6b7280); border-radius: 10px; color: inherit; text-decoration: none; }
.dash-attn-card span, .dash-attn-card small { color: var(--bs-secondary-color, #6b7280); font-size: var(--text-xs, .78rem); }
.dash-attn-card strong { font-size: 1.35rem; line-height: 1.2; }
.dash-attn-card.is-hot { border-left-color: var(--debt, #b42318); }
.dash-attn-card.is-warm { border-left-color: var(--gold, #b7791f); }
.dash-attn-card.is-ok { border-left-color: var(--green, #1f7a4d); }
.dash-attn-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.dash-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.dash-lane-head { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.dash-lane-head h5 { margin: 0; font-size: var(--text-sm, .9rem); }
.dash-flag { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.dash-flag-hot { background: var(--debt, #b42318); }
.dash-flag-warm { background: var(--gold, #b7791f); }
.dash-flag-slate { background: var(--slate, #6b7280); }
.dash-task { padding: .6rem 0; border-top: 1px solid var(--app-line, #e7e3da); display: flex; flex-direction: column; gap: .2rem; }
.dash-task:first-of-type { border-top: 0; }
.dash-task small { color: var(--bs-secondary-color, #6b7280); }
.dash-layout-picker { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.dash-layout-opt { display: flex; flex-direction: column; gap: .35rem; padding: .6rem; border: 1px solid var(--app-line, #e7e3da); border-radius: 10px; cursor: pointer; }
.dash-layout-opt:has(input:checked) { border-color: var(--green, #1f7a4d); box-shadow: 0 0 0 2px rgba(31,122,77,.18); }
.dash-layout-opt input { position: absolute; opacity: 0; pointer-events: none; }
.dash-layout-thumb { display: grid; gap: 4px; height: 64px; padding: 6px; background: var(--bs-tertiary-bg, #f4f1ea); border-radius: 6px; }
.dash-layout-thumb i { background: var(--app-line, #d9d4c7); border-radius: 3px; }
.dash-layout-thumb-daybook { grid-template: 1fr 1fr / 2fr 1fr; }
.dash-layout-thumb-daybook i:nth-child(1) { grid-row: span 2; }
.dash-layout-thumb-control { grid-template: 1fr 2fr / repeat(4, 1fr); }
.dash-layout-thumb-control i:nth-child(n+3) { grid-row: 2; grid-column: span 2; }
.dash-layout-thumb-control i:nth-child(1), .dash-layout-thumb-control i:nth-child(2) { grid-column: span 2; }
.dash-layout-thumb-board { grid-template: 1fr 1fr / repeat(3, 1fr); }
.dash-layout-thumb-board i:nth-child(4) { grid-column: span 3; grid-row: 2; }
@media (max-width: 999px) { .dash-attn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dash-board { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .dash-attn-grid, .dash-layout-picker { grid-template-columns: 1fr; } }

/* Control room: three-column dense grid */
.dash-columns.dash-cols-3{ display:flex; flex-wrap:wrap; }
.dash-cols-3>*{ flex:1 1 calc(33% - 16px); }
.dash-cols-3>.dash-hourly{ flex:2 1 calc(60% - 16px); }
@media(max-width:999.98px){ .dash-cols-3>*,.dash-cols-3>.dash-hourly{ flex:1 1 100%; } }
.dash-columns.dash-cols-3>.card{ height:auto; }
.dash-customize .dropdown-menu { min-width: min(34rem, 92vw); }
.dash-customize .dash-layout-picker { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 520px) { .dash-customize .dash-layout-picker { grid-template-columns: 1fr; } }
