/* iFix Local POS — Public Styles */
:root {
  --ifix-teal:    #00897B;
  --ifix-teal-dk: #00695C;
  --ifix-teal-lt: #E0F2F1;
  --ifix-border:  #E0E0E0;
  --ifix-bg:      #F5F7FA;
  --ifix-text:    #212121;
  --ifix-muted:   #757575;
  --ifix-red:     #D32F2F;
}

/* ── Repair Tracker ── */
.ifix-tracker-wrap { max-width:680px; margin:2rem auto; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.ifix-tracker-header { text-align:center; margin-bottom:2rem; }
.ifix-tracker-logo { height:55px; margin-bottom:1rem; }
.ifix-tracker-header h2 { font-size:1.7rem; color:var(--ifix-teal); margin:.5rem 0; }
.ifix-tracker-header p { color:var(--ifix-muted); }

.ifix-tracker-form { display:flex; gap:.5rem; margin-bottom:1.5rem; }
.ifix-tracker-input { flex:1; padding:.65rem 1rem; border:2px solid var(--ifix-border); border-radius:6px; font-size:1rem; }
.ifix-tracker-input:focus { border-color:var(--ifix-teal); outline:none; }
.ifix-tracker-btn { background:var(--ifix-teal); color:#fff; border:none; padding:.65rem 1.5rem; border-radius:6px; font-size:1rem; cursor:pointer; font-weight:600; white-space:nowrap; }
.ifix-tracker-btn:hover { background:var(--ifix-teal-dk); }
.ifix-tracker-btn:disabled { opacity:.6; cursor:not-allowed; }

.ifix-tracker-error { background:#FFEBEE; color:var(--ifix-red); border-radius:6px; padding:.75rem 1rem; margin-bottom:1rem; font-size:.95rem; }

.ifix-tracker-card { background:#fff; border:1px solid var(--ifix-border); border-radius:10px; padding:1.5rem; margin-bottom:1rem; }
.ifix-tracker-ticket-header { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:.5rem; margin-bottom:.75rem; }
.ifix-tracker-ticket-num { font-size:1.2rem; font-weight:700; color:var(--ifix-teal); }
.ifix-tracker-device { font-size:1rem; color:var(--ifix-text); margin-left:.75rem; }
.ifix-tracker-status-badge { display:inline-block; padding:.35rem .85rem; border-radius:16px; font-size:.85rem; font-weight:700; background:var(--ifix-teal-lt); color:var(--ifix-teal-dk); }
.ifix-tracker-service { color:var(--ifix-muted); font-size:.95rem; margin-bottom:.75rem; }
.ifix-tracker-diagnostic { background:#FFF9C4; border-left:3px solid #F9A825; padding:.6rem .9rem; border-radius:0 5px 5px 0; font-size:.9rem; margin-bottom:1rem; }

/* Timeline */
.ifix-timeline { list-style:none; padding:0; margin:1rem 0 0; }
.ifix-tl-item { display:flex; justify-content:space-between; align-items:center; padding:.5rem .75rem; border-left:3px solid var(--ifix-teal); margin-bottom:.4rem; background:var(--ifix-bg); border-radius:0 5px 5px 0; font-size:.88rem; }
.ifix-tl-status { font-weight:600; color:var(--ifix-teal-dk); }
.ifix-tl-date { color:var(--ifix-muted); font-size:.8rem; }

/* Status-specific colours */
.ifix-ts-repaired-collected .ifix-tracker-status-badge,
.ifix-ts-repaired { background:#E8F5E9 !important; color:#1B5E20 !important; }
.ifix-ts-cancelled,.ifix-ts-no-fix { background:#FFEBEE !important; color:#B71C1C !important; }
.ifix-ts-waiting-for-parts,.ifix-ts-delay-in-repair { background:#FFF3E0 !important; color:#E65100 !important; }

.ifix-tracker-contact { text-align:center; font-size:.9rem; color:var(--ifix-muted); padding:1rem; }

/* ── Booking Form ── */
.ifix-booking-section-title { font-size:1rem; font-weight:700; color:var(--ifix-teal-dk); margin:1.25rem 0 .75rem; padding-bottom:.35rem; border-bottom:1px solid var(--ifix-teal-lt); }
.ifix-booking-hint { font-size:.78rem; font-weight:400; color:var(--ifix-muted); margin-left:.3rem; }
.ifix-req { color:var(--ifix-red); }
.ifix-booking-input option:disabled { color:var(--ifix-muted); }

.ifix-booking-wrap { max-width:600px; margin:2rem auto; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.ifix-booking-header { margin-bottom:1.5rem; }
.ifix-booking-header h2 { color:var(--ifix-teal); margin-bottom:.4rem; }
.ifix-booking-header p { color:var(--ifix-muted); }

.ifix-booking-form { background:#fff; border:1px solid var(--ifix-border); border-radius:10px; padding:1.75rem; }
.ifix-booking-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:540px) { .ifix-booking-row { grid-template-columns:1fr; } }
.ifix-booking-field { margin-bottom:1rem; }
.ifix-booking-field label { display:block; font-weight:600; font-size:.88rem; margin-bottom:.3rem; }
.ifix-booking-input,.ifix-booking-textarea { width:100%; padding:.55rem .85rem; border:1.5px solid var(--ifix-border); border-radius:6px; font-size:.95rem; font-family:inherit; box-sizing:border-box; }
.ifix-booking-input:focus,.ifix-booking-textarea:focus { border-color:var(--ifix-teal); outline:none; box-shadow:0 0 0 2px rgba(0,137,123,.15); }
.ifix-booking-textarea { resize:vertical; }
.ifix-booking-submit { background:var(--ifix-teal); color:#fff; border:none; padding:.75rem 2rem; border-radius:6px; font-size:1rem; font-weight:600; cursor:pointer; width:100%; margin-top:.5rem; }
.ifix-booking-submit:hover { background:var(--ifix-teal-dk); }
.ifix-booking-submit:disabled { opacity:.6; cursor:not-allowed; }
.ifix-booking-error { background:#FFEBEE; color:var(--ifix-red); padding:.65rem .85rem; border-radius:6px; font-size:.9rem; margin-bottom:.75rem; }
.ifix-booking-success { background:#E8F5E9; border:1px solid #A5D6A7; border-radius:10px; padding:1.5rem 2rem; text-align:center; }
.ifix-booking-success h3 { color:#1B5E20; margin:0 0 .5rem; }
.ifix-booking-small { font-size:.82rem; color:var(--ifix-muted); margin-top:1.25rem; line-height:1.7; }


/* ── Repair Tracker: progress stepper (added) ── */
.ifix-progress { display:flex; margin:1.4rem 0 1.1rem; }
.ifix-step { flex:1; text-align:center; position:relative; }
.ifix-step-dot { width:34px; height:34px; line-height:30px; box-sizing:border-box; border-radius:50%; background:#fff; color:var(--ifix-muted); border:2px solid var(--ifix-border); margin:0 auto .45rem; font-weight:700; font-size:.9rem; position:relative; z-index:1; }
.ifix-step-label { font-size:.78rem; color:var(--ifix-muted); line-height:1.2; }
.ifix-step::before { content:''; position:absolute; top:17px; left:-50%; width:100%; height:3px; background:var(--ifix-border); z-index:0; }
.ifix-step:first-child::before { display:none; }
.ifix-step.is-done .ifix-step-dot { background:var(--ifix-teal); border-color:var(--ifix-teal); color:#fff; }
.ifix-step.is-done::before { background:var(--ifix-teal); }
.ifix-step.is-active .ifix-step-dot { background:#fff; border-color:var(--ifix-teal); color:var(--ifix-teal); box-shadow:0 0 0 4px var(--ifix-teal-lt); }
.ifix-step.is-active .ifix-step-label { color:var(--ifix-teal-dk); font-weight:700; }
.ifix-step.is-active::before { background:var(--ifix-teal); }
.ifix-progress.is-stopped .ifix-step-dot { background:#FFEBEE; border-color:#FFCDD2; color:#B71C1C; }
.ifix-progress.is-stopped .ifix-step::before { background:#FFCDD2; }

.ifix-tracker-statusmsg { background:var(--ifix-teal-lt); color:var(--ifix-teal-dk); border-radius:8px; padding:.8rem 1rem; font-size:.95rem; line-height:1.4; margin-bottom:1rem; text-align:center; }

.ifix-tracker-history { margin-top:.5rem; }
.ifix-tracker-history summary { cursor:pointer; color:var(--ifix-teal); font-size:.88rem; font-weight:600; padding:.35rem 0; list-style:none; }
.ifix-tracker-history summary::-webkit-details-marker { display:none; }
.ifix-tracker-history summary::before { content:'▸ '; }
.ifix-tracker-history[open] summary::before { content:'▾ '; }

@media (max-width:480px) {
  .ifix-tracker-form { flex-direction:column; }
  .ifix-tracker-btn { width:100%; padding:.85rem; font-size:1.05rem; }
  .ifix-tracker-input { padding:.85rem 1rem; font-size:1.05rem; }
  .ifix-step-label { font-size:.68rem; }
  .ifix-step-dot { width:30px; height:30px; line-height:26px; }
}
