/* Portal de cliente FullTruck — extiende admin.css con detalles propios */
.client-stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:24px; }
.client-stat { padding:20px; background:var(--ink-2); border:1px solid var(--line); border-radius:12px; }
.client-stat .lbl { color:var(--text-muted); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:6px; }
.client-stat .val { font-family:var(--font-display); font-size:2rem; font-weight:800; color:var(--text); line-height:1; }
.client-stat .val .small { font-size:0.7rem; color:var(--text-muted); font-weight:400; display:block; margin-top:4px; }

.alert-feed { display:flex; flex-direction:column; gap:8px; margin-bottom:24px; }
.alert-row { display:flex; gap:12px; align-items:center; padding:12px 16px; background:var(--ink-2); border:1px solid var(--line); border-left:4px solid var(--brand); border-radius:8px; }
.alert-row.is-critical { border-left-color:#e23a2c; background:rgba(226,58,44,0.06); }
.alert-row .pill-mini { padding:2px 8px; border-radius:99px; font-size:0.7rem; font-weight:700; background:var(--ink-3); color:var(--text-muted); }
.alert-row .alert-msg { flex:1; }
.alert-row a { color:var(--brand); font-weight:600; }

.equipo-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.equipo-card { padding:20px; background:var(--ink-2); border:1px solid var(--line); border-radius:12px; transition:border-color 0.2s, transform 0.2s; }
.equipo-card:hover { border-color:var(--brand); transform:translateY(-2px); }
.equipo-card h3 { font-size:1.1rem; margin-bottom:4px; color:var(--text); }
.equipo-card .meta { color:var(--text-muted); font-size:0.85rem; margin-bottom:12px; }
.equipo-card .row { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px dashed var(--line); font-size:0.85rem; }
.equipo-card .row:last-of-type { border-bottom:none; }
.equipo-card .row .lbl { color:var(--text-muted); }
.equipo-card .badge { display:inline-block; padding:2px 8px; border-radius:99px; font-size:0.7rem; font-weight:700; background:var(--brand); color:#fff; margin-bottom:8px; }
.equipo-card .badge.warn { background:#e2952c; }
.equipo-card .badge.danger { background:#e23a2c; }

.passport-header { padding:24px; background:linear-gradient(135deg,var(--ink-2),var(--ink-3)); border:1px solid var(--line); border-radius:12px; margin-bottom:24px; }
.passport-header h2 { margin-bottom:4px; }
.passport-header .meta-row { display:flex; gap:24px; flex-wrap:wrap; color:var(--text-muted); font-size:0.9rem; }
.passport-header .meta-row strong { color:var(--text); }

.doc-list { display:flex; flex-direction:column; gap:8px; }
.doc-row { display:flex; gap:16px; align-items:center; padding:12px 16px; background:var(--ink-2); border:1px solid var(--line); border-radius:8px; }
.doc-row svg { width:24px; height:24px; color:var(--brand); flex-shrink:0; }
.doc-row .doc-info { flex:1; }
.doc-row .doc-title { font-weight:600; }
.doc-row .doc-meta { color:var(--text-muted); font-size:0.78rem; }
.doc-row a.btn-mini { background:var(--brand); color:#fff; padding:6px 14px; border-radius:6px; font-size:0.8rem; font-weight:600; }

.timeline { border-left:2px solid var(--line); padding-left:24px; margin-left:8px; }
.timeline-item { position:relative; margin-bottom:20px; }
.timeline-item::before { content:""; position:absolute; left:-31px; top:6px; width:14px; height:14px; border-radius:50%; background:var(--brand); border:2px solid var(--ink); }
.timeline-item .timeline-date { font-size:0.78rem; color:var(--text-muted); }
.timeline-item .timeline-title { font-weight:600; margin:2px 0; }
