/* Customer dashboard additions. Shared tokens, themes, cards, badges, buttons and navigation come from /billing/styles.css.
   Nothing animates. No absolutely positioned labels: every label sits in normal flow, so a wrapped Russian label grows its row. */
.message > :last-child { margin-bottom: 0; }
.message strong { font-weight: 600; }
.message .member-actions { justify-content: flex-start; margin-top: 12px; }
[tabindex="-1"]:focus { outline: none; }
[tabindex="-1"]:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
.dashboard-page h3 { font-size: 14px; line-height: 1.3; font-weight: 600; margin: 0; }
.dashboard-page h4 { font-size: 13px; line-height: 1.3; font-weight: 600; margin: 20px 0 6px; }
.dashboard-page h4:first-child { margin-top: 0; }
.as-of { font-size: 12px; color: hsl(var(--muted-foreground)); }
.dash-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 20px; margin-bottom: 20px; }
.dash-grid .card { margin-bottom: 0; }
.state-list { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.state-list .badge { white-space: normal; }
.metric-list { list-style: none; padding: 0; margin: 0; }
.metric-list li { padding: 10px 0; border-top: 1px solid hsl(var(--border)); }
.metric-list li:last-child { padding-bottom: 0; }
.metric-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; }
.metric-label { flex: 1 1 9em; min-width: 0; }
.metric-value { font-size: 18px; font-weight: 600; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.metric-value.missing,.key-figures dd.missing { font-size: 13px; font-weight: 500; letter-spacing: 0; color: hsl(var(--muted-foreground)); }
.metric-cover { margin: 2px 0 0; font-size: 12px; color: hsl(var(--muted-foreground)); overflow-wrap: anywhere; }
.machines { list-style: none; padding: 0; margin: 8px 0 0; }
.machines > li { padding: 16px 0; border-top: 1px solid hsl(var(--border)); }
.machines > li:last-child { padding-bottom: 0; }
.machine-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.machine-id { overflow-wrap: anywhere; word-break: break-all; }
.machine-meta { margin: 4px 0 0; font-size: 12px; color: hsl(var(--muted-foreground)); }
.key-figures { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 12px 0 0; }
.key-figures div { min-width: 0; max-width: 100%; }
.key-figures dt { font-size: 12px; color: hsl(var(--muted-foreground)); }
.key-figures dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.notes { list-style: none; padding: 0; margin: 10px 0 0; font-size: 12px; color: hsl(var(--muted-foreground)); }
.notes li + li { margin-top: 2px; }
.machine-actions { margin-top: 12px; }
.machine-detail { margin-top: 16px; padding: 16px; background: hsl(var(--muted)); border-radius: calc(var(--radius) / 2); }
.machine-detail .facts { margin: 6px 0 0; grid-template-columns: minmax(8em,35%) 1fr; }
.section-note { margin: 2px 0 0; font-size: 12px; color: hsl(var(--muted-foreground)); }
.row-list { list-style: none; padding: 0; margin: 6px 0 0; }
.row-list li { padding: 10px 0; border-top: 1px solid hsl(var(--border)); }
.row-list p { margin: 2px 0 0; font-size: 12px; color: hsl(var(--muted-foreground)); overflow-wrap: anywhere; }
.row-line { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-weight: 550; }
.row-list .times span { display: block; }
@media(max-width:640px) {
  .machine-actions button,.dashboard-page .order-actions button,.dashboard-page .order-actions .button,.message .member-actions button,.message .member-actions .button { width: 100%; min-height: 44px; }
  .machine-detail { padding: 12px; }
  .machine-detail .facts { grid-template-columns: 1fr; gap: 0; }
  .machine-detail .facts dd { margin-bottom: 8px; }
}
