.sidebar { width: 230px; flex-shrink: 0; min-height: calc(100vh - 56px); }
.sidebar .nav-link { color: #333; padding: .55rem 1.25rem; }
.sidebar .nav-link.active { background: #e9f1ff; color: #0d6efd; font-weight: 600; }
.min-w-0 { min-width: 0; }
.checkbox-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.checkbox-list li { display: flex; align-items: center; gap: .35rem; }
.ltr { direction: ltr; unicode-bidi: embed; }
.plate { display: inline-block; unicode-bidi: plaintext; border: 2px solid #212529; border-radius: .35rem;
         padding: 0 .45rem; background: #fff; font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.plate-lg { font-size: 1.35rem; padding: .1rem .7rem; }
.plate-input { direction: ltr; text-align: center; font-weight: 700; letter-spacing: .08em; }
.nav-search { max-width: 340px; }
/* workshop board */
.board-col { background: #eef1f4; border-radius: .5rem; padding: .6rem; min-height: 140px; }
.board-card:hover { box-shadow: 0 .25rem .6rem rgba(0,0,0,.08); }
/* check-in */
.car-diagram { width: 100%; max-width: 230px; touch-action: manipulation; cursor: crosshair; }
.car-diagram .body { fill: #f8f9fa; stroke: #495057; stroke-width: 1.2; }
.car-diagram .glass { fill: #dbe7f3; stroke: #6c757d; stroke-width: .6; }
.car-diagram .roof { fill: #e9ecef; stroke: #adb5bd; stroke-width: .5; }
.car-diagram .wheel { fill: #343a40; }
.car-diagram .lbl { font-size: 6px; text-anchor: middle; fill: #6c757d; }
.car-diagram .mark circle, .car-diagram .mark-static circle { fill: #dc3545; }
.car-diagram .mark text, .car-diagram .mark-static text { font-size: 4px; fill: #fff; text-anchor: middle; font-weight: 700; }
.signature-pad { width: 100%; height: 160px; border: 1px dashed #adb5bd; border-radius: .4rem; background: #fff; touch-action: none; }
.signature-img { max-height: 90px; }
.fuel-gauge { display: inline-block; width: 80px; height: 8px; background: #e9ecef; border-radius: 4px; overflow: hidden; vertical-align: middle; }
.fuel-gauge div { height: 100%; background: #198754; }
.photo-grid img { width: 120px; height: 90px; object-fit: cover; border-radius: .3rem; border: 1px solid #dee2e6; }
/* timers */
.timer-running { animation: pulse 1.6s infinite; }
@keyframes pulse { 50% { opacity: .55; } }
@media print {
  .no-print { display: none !important; }
  body { background: #fff !important; }
  main { padding: 0 !important; }
  .print-sheet { border: 0 !important; }
  .photo-grid img { width: 90px; height: 68px; }
}
/* public status steps */
.status-steps { display: flex; list-style: none; padding: 0; margin: 0; gap: .25rem; }
.status-steps li { flex: 1; text-align: center; font-size: .8rem; padding: .4rem .2rem; border-radius: .3rem; background: #e9ecef; color: #6c757d; }
.status-steps li.done { background: #d1e7dd; color: #0f5132; }
.status-steps li.current { background: #0d6efd; color: #fff; font-weight: 600; }
/* appointments */
.capacity-bar { display: flex; gap: 2px; }
.capacity-bar span { flex: 1; height: 10px; border-radius: 2px; background: #d1e7dd; }
.capacity-bar span.used { background: #fd7e14; }
.appt-card { background: #fff; }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: .4rem; }
/* reports */
.bar { height: 10px; background: #0d6efd; border-radius: 3px; min-width: 2px; }
.print-only { display: none; }
@media print { .print-only { display: block; } }
/* rating stars */
.stars { direction: ltr; display: inline-flex; flex-direction: row-reverse; gap: .2rem; }
.stars input { display: none; }
.stars label { font-size: 2.4rem; color: #ced4da; cursor: pointer; line-height: 1; }
.stars input:checked ~ label, .stars label:hover, .stars label:hover ~ label { color: #f59f00; }
