/* Tourenplanung-App-spezifisch */

.week-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.week-meta-item {
  background: var(--card-bg, #fff);
  border: 1px solid var(--border, #e5e5e7);
  border-radius: 10px;
  padding: 12px 16px;
}
.week-meta-item .lbl {
  font-size: 11px;
  color: var(--text-secondary, #86868b);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 4px;
}
.week-meta-item .val {
  font-size: 18px;
  font-weight: 600;
}

.test-mode-bar {
  background: #fff8e1;
  border: 1px solid #ffd54f;
  border-radius: 8px;
  padding: 10px 14px;
  margin: 16px 0;
  font-size: 14px;
}
.test-mode-bar code {
  background: rgba(0,0,0,0.06);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 13px;
}

/* Status pills */
.status-pill {
  display: inline-block;
  padding: 2px 10px;
  font-size: 12px;
  border-radius: 12px;
  font-weight: 500;
}
.status-pill.draft     { background: #f1f5f9; color: #475569; }
.status-pill.routing   { background: #ddd6fe; color: #5b21b6; }
.status-pill.review    { background: #fef3c7; color: #92400e; }
.status-pill.mailing   { background: #dbeafe; color: #1e40af; }
.status-pill.confirmed { background: #d1fae5; color: #065f46; }
.status-pill.done      { background: #e5e7eb; color: #374151; }
.status-pill.cancelled { background: #fee2e2; color: #991b1b; }

.match-pill {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  border-radius: 8px;
  font-weight: 500;
}
.match-pill.exact     { background: #d1fae5; color: #065f46; }
.match-pill.fuzzy     { background: #fef3c7; color: #92400e; }
.match-pill.unmatched { background: #fee2e2; color: #991b1b; cursor: pointer; text-decoration: underline; }
.match-pill.manual    { background: #dbeafe; color: #1e40af; }

.row-unmatched { background: #fef9f9 !important; }

.almas-modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.4);
  display: flex; align-items: center; justify-content: center;
  z-index: 1000;
}
.almas-modal {
  background: #fff;
  border-radius: 12px;
  max-width: 720px; width: calc(100% - 40px);
  max-height: 80vh;
  display: flex; flex-direction: column;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.almas-modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #e5e5e7;
}
.almas-modal-header h2 { margin: 0; font-size: 18px; }
.almas-modal-close {
  background: none; border: none; font-size: 28px; cursor: pointer;
  color: #86868b; line-height: 1;
}
.almas-modal-body {
  padding: 20px; overflow-y: auto; flex: 1;
}

.field-row { margin-bottom: 14px; }
.field-row label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 4px; color: #424245; }
.field-row input[type=text], .field-row input[type=email], .field-row input[type=number],
.field-row input[type=time], .field-row select, .field-row textarea {
  width: 100%; padding: 8px 10px;
  border: 1px solid #d2d2d7;
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
}
.field-row textarea { min-height: 80px; resize: vertical; }
.field-row .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.modal-footer { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; padding-top: 16px; border-top: 1px solid #e5e5e7; }

.search-inline {
  position: relative;
}
.search-inline-results {
  position: absolute; top: 100%; left: 0; right: 0;
  max-height: 240px; overflow-y: auto;
  background: #fff; border: 1px solid #d2d2d7;
  border-radius: 8px;
  z-index: 10;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}
.search-inline-result {
  padding: 8px 12px;
  cursor: pointer;
  font-size: 13px;
  border-bottom: 1px solid #f3f4f6;
}
.search-inline-result:hover { background: #f5f5f7; }
.search-inline-result .name { font-weight: 500; }
.search-inline-result .meta { color: #86868b; font-size: 11px; }

.week-detail-tabs {
  display: flex; gap: 4px;
  margin-bottom: 16px;
  border-bottom: 1px solid #e5e5e7;
}
.tab-btn {
  padding: 8px 16px;
  background: none; border: none;
  font-size: 14px; font-weight: 500;
  cursor: pointer;
  color: #6e6e73;
  border-bottom: 2px solid transparent;
  transition: all 0.15s;
}
.tab-btn:hover { color: #1d1d1f; }
.tab-btn.active { color: #1d1d1f; border-bottom-color: #007aff; }

.routes-actions {
  display: flex; gap: 10px; align-items: center;
  margin: 16px 0;
}
.pool-badge {
  display: inline-block;
  padding: 4px 12px;
  background: #1e40af;
  color: white;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 500;
}
.routes-help {
  background: #f0f9ff;
  border-left: 3px solid #0284c7;
  padding: 8px 14px;
  margin: 0 0 16px 0;
  font-size: 13px;
  border-radius: 4px;
}
.tech-route.no-route { opacity: 0.7; }
.tech-route.recommended-next { opacity: 1; border: 2px solid #007aff; box-shadow: 0 4px 12px rgba(0,122,255,0.15); }
.order-badge {
  display: inline-block;
  padding: 2px 10px;
  background: #f1f5f9;
  color: #475569;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 500;
}
.order-badge.primary {
  background: #007aff;
  color: white;
}
.tech-route .plan-btn {
  background: #007aff; color: white;
  border: none; padding: 8px 16px;
  border-radius: 8px; font-size: 13px; font-weight: 500;
  cursor: pointer;
}
.tech-route .plan-btn:hover { background: #0056cc; }
.tech-route .plan-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.tech-route .plan-btn.plan-btn-ai { background: #1d1d1f; }
.tech-route .plan-btn.plan-btn-ai:hover { background: #000; }
.tech-route .replan-btn {
  background: #f5f5f7; color: #1d1d1f;
  border: 1px solid #d2d2d7; padding: 6px 12px;
  border-radius: 8px; font-size: 12px;
  cursor: pointer; margin-right: 6px;
}
.tech-route .replan-btn:hover { background: #e5e5e7; }

.tech-route {
  background: #fff;
  border: 1px solid #e5e5e7;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.tech-route-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #f0f0f0;
}
.tech-route-name { font-size: 16px; font-weight: 600; }
.tech-route-stats {
  font-size: 12px; color: #6e6e73;
  display: flex; gap: 16px;
}
.tech-route-stats strong { color: #1d1d1f; }

.day-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.day-col {
  background: #fafafa;
  border-radius: 8px;
  padding: 8px;
  min-height: 120px;
}
.day-col-header {
  font-size: 11px;
  font-weight: 600;
  color: #6e6e73;
  text-transform: uppercase;
  margin-bottom: 6px;
  letter-spacing: 0.5px;
}
.stop-card {
  background: #fff;
  border: 1px solid #e5e5e7;
  border-radius: 6px;
  padding: 6px 8px;
  margin-bottom: 6px;
  font-size: 12px;
  cursor: pointer;
}
.stop-card:hover { border-color: #007aff; }
.stop-card .customer { font-weight: 500; line-height: 1.2; }
.stop-card .meta { color: #86868b; font-size: 10px; margin-top: 2px; }
.stop-card .drive { color: #007aff; font-size: 10px; }
.stop-card.hotel-after::after {
  content: '🏨 Hotel nach diesem Stop';
  display: block;
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px dashed #ffd54f;
  color: #b45309;
  font-size: 10px;
}

.day-empty {
  color: #c0c0c0; font-size: 11px; text-align: center; padding: 16px 0;
}

.job-status-mini {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 5px;
  font-size: 9px;
  border-radius: 4px;
  font-weight: 500;
  text-transform: uppercase;
}
.job-status-mini.asked      { background: #dbeafe; color: #1e40af; }
.job-status-mini.confirmed  { background: #d1fae5; color: #065f46; }
.job-status-mini.declined   { background: #fee2e2; color: #991b1b; }
.job-status-mini.needs_call { background: #fef3c7; color: #92400e; }

.job-drawer-actions {
  display: flex; gap: 12px; align-items: center;
  margin-bottom: 12px;
}
.msg-list {
  max-height: 50vh; overflow-y: auto;
  display: flex; flex-direction: column; gap: 12px;
}
.msg {
  border: 1px solid #e5e5e7;
  border-radius: 8px;
  padding: 10px 12px;
  background: #fafafa;
  font-size: 13px;
}
.msg.msg-in { border-left: 3px solid #007aff; }
.msg.msg-out { border-left: 3px solid #6e6e73; }
.msg-header { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.msg-meta { color: #6e6e73; font-size: 11px; margin: 4px 0; }
.msg-subject { font-weight: 500; margin: 4px 0; }
.msg-body {
  background: white; padding: 8px;
  border-radius: 4px;
  font-family: -apple-system, sans-serif;
  font-size: 12px;
  white-space: pre-wrap;
  margin: 4px 0 0 0;
  max-height: 200px; overflow-y: auto;
}

.almas-btn-danger { background: #dc2626; color: white; border: none; }
.almas-btn-danger:hover { background: #b91c1c; }

/* Wochen-Liste: Lösch-Button in der Actions-Spalte */
.week-actions-cell { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.week-arrow { color:#94a3b8; }
.week-delete-btn {
  background:transparent; border:none; cursor:pointer; padding:6px 8px; border-radius:6px;
  font-size:16px; line-height:1; opacity:0.4; transition: all .15s ease;
  color:#64748b;
}
.week-delete-btn:hover { opacity:1; background:#fee2e2; color:#dc2626; }
tr:hover .week-delete-btn { opacity:0.85; }

/* Skills & Berechtigungen-View */
.skills-tabs { display:flex; gap:4px; border-bottom:2px solid #e5e7eb; margin-bottom:16px; }
.skills-tab {
  background:transparent; border:none; padding:10px 16px; cursor:pointer;
  border-bottom:2px solid transparent; margin-bottom:-2px; font-weight:500; color:#64748b;
}
.skills-tab:hover { color:#0f172a; }
.skills-tab.active { color:#0f172a; border-bottom-color:#3b82f6; }
.skills-tab-content { padding:8px 0; }

.skills-cat-block { margin-bottom:24px; }
.skills-cat-header { margin:8px 0; font-size:14px; text-transform:uppercase; color:#64748b; letter-spacing:.5px; }
.skills-cat-table { background:white; }
.skills-cat-table code { font-size:12px; color:#475569; background:#f1f5f9; padding:2px 6px; border-radius:4px; }

.techskill-card {
  background:white; border:1px solid #e5e7eb; border-radius:8px;
  padding:12px 16px; margin-bottom:12px;
}
.techskill-card-header { display:flex; align-items:center; gap:6px; margin-bottom:8px; }
.techskill-list { display:flex; flex-wrap:wrap; gap:6px; }
.skill-chip {
  display:inline-block; background:#dbeafe; color:#1e40af;
  padding:3px 10px; border-radius:12px; font-size:12px;
}

.skill-fieldset {
  border:1px solid #e5e7eb; border-radius:6px; padding:8px 12px; margin-bottom:10px;
}
.skill-fieldset legend {
  padding:0 6px; font-weight:600; font-size:12px; color:#64748b;
  text-transform:uppercase; letter-spacing:.5px;
}
.skill-checkbox {
  display:inline-flex; align-items:center; gap:6px; margin:4px 12px 4px 0;
  cursor:pointer; font-size:13px;
}

.cust-result-row {
  padding:8px 12px; cursor:pointer; border-radius:6px; transition:background .1s;
}
.cust-result-row:hover { background:#f1f5f9; }

/* Version-Badge in Sidebar-Footer */
.version-badge {
  margin-top:8px; padding:6px 10px; font-size:11px;
  background:#1e293b; color:#cbd5e1; border-radius:4px;
  cursor:pointer; text-align:center; user-select:none;
  transition: background .15s;
}
.version-badge:hover { background:#334155; color:white; }

/* Info-View / Versionsverlauf */
.info-card {
  background:white; border:1px solid #e5e7eb; border-radius:8px;
  padding:16px 20px; margin-bottom:16px;
}
.info-card h2 { margin:0 0 4px 0; }
.info-contact { margin-top:12px; font-size:14px; }
.info-contact div { margin:2px 0; }

.version-entry {
  background:white; border:1px solid #e5e7eb; border-radius:8px;
  padding:12px 16px; margin-bottom:8px;
}
.version-entry-head { display:flex; gap:8px; align-items:baseline; }
.version-entry-title { font-weight:500; margin:4px 0; }
.version-entry-changes { margin:6px 0 0 0; padding-left:20px; font-size:13px; color:#475569; }
.version-entry-changes li { margin:3px 0; }

/* P4 Status- & Eskalations-Indikatoren */
tr.row-escalated { background: #fff5f5; }
tr.row-escalated:hover { background: #fee2e2 !important; }
tr.row-overdue { background: #fffbeb; }
tr.row-overdue:hover { background: #fef3c7 !important; }

.flag-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.flag-asked { background: #e0e7ff; color: #3730a3; }
.flag-overdue { background: #fef3c7; color: #92400e; }
.flag-escalated { background: #fee2e2; color: #991b1b; }
.flag-confirmed { background: #d1fae5; color: #065f46; }
.flag-declined { background: #fee2e2; color: #991b1b; }
.flag-needscall { background: #fef3c7; color: #92400e; }
.cls-accept { background: #d1fae5; color: #065f46; }
.cls-decline { background: #fee2e2; color: #991b1b; }
.cls-propose { background: #ddd6fe; color: #5b21b6; }
.cls-unclear { background: #e5e7eb; color: #374151; }

/* P5 Dashboard + Karte */
.dashboard-controls {
  display: flex; gap: 18px; flex-wrap: wrap; align-items: center;
  margin-bottom: 14px; padding: 12px 14px; background: var(--card-bg, #fff);
  border: 1px solid var(--border, #e5e5e7); border-radius: 10px;
}
.dashboard-controls label { display: flex; flex-direction: column; font-size: 11px; color: var(--text-secondary, #86868b); text-transform: uppercase; letter-spacing: 0.4px; gap: 4px; }
.dashboard-controls select { padding: 6px 10px; border: 1px solid var(--border,#e5e5e7); border-radius: 6px; font-size: 14px; }
.dashboard-stats { display: flex; gap: 10px; flex-wrap: wrap; }
.dashboard-stats.dash-stat-cards {
  display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 10px; margin-bottom: 14px; padding: 0; background: transparent; border: none;
}
@media (max-width: 1100px) { .dashboard-stats.dash-stat-cards { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); } }
.dash-stat-card { padding: 14px 16px; border-radius: 10px; background: #fff; border: 1px solid var(--border, #e5e5e7); }
.dash-stat-card .v { font-size: 24px; font-weight: 700; color: #1d1d1f; line-height: 1.1; }
.dash-stat-card .l { font-size: 12px; color: #6e6e73; margin-top: 4px; }
.dash-stat-card.urgent { background: #fef2f2; border-color: #fecaca; }
.dash-stat-card.urgent .v { color: #991b1b; }
.dash-stat { font-size: 13px; padding: 4px 10px; background: #f5f5f7; border-radius: 6px; display: inline-flex; align-items: center; gap: 6px; }
.dash-stat strong { font-size: 15px; }

.map-container { height: 620px; width: 100%; border-radius: 12px; overflow: hidden; border: 1px solid var(--border, #e5e5e7); }

.map-legend { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 10px; padding: 10px 14px; background: #f5f5f7; border-radius: 8px; font-size: 12px; }
.map-legend-item { display: inline-flex; align-items: center; gap: 6px; }
.dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,0.1); }
.dot-pending { background: #94a3b8; }
.dot-scheduled { background: #3b82f6; }
.dot-asked { background: #6366f1; }
.dot-confirmed { background: #10b981; }
.dot-declined { background: #ef4444; }
.dot-rescheduled { background: #f59e0b; }
.dot-needscall { background: #f59e0b; }
.dot-tech { background: #fbbf24; border-color: #000; }

/* Import-View */
.import-pane { max-width: 700px; }
.import-week-select { display: flex; gap: 12px; align-items: end; margin-bottom: 16px; }
.import-week-select label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--text-secondary, #86868b); }
.import-week-select select { padding: 8px 12px; min-width: 240px; border: 1px solid var(--border, #e5e5e7); border-radius: 6px; }
.import-success { margin-top: 14px; padding: 14px; background: #d1fae5; border: 1px solid #10b981; border-radius: 8px; }

/* Route-Modal-Legende */
.route-modal-legend { margin-top: 10px; padding: 8px 12px; background: #f5f5f7; border-radius: 6px; font-size: 13px; }
.almas-modal { max-width: 1100px !important; }

/* Route stop divIcon — leaflet override */
.route-stop-icon, .hotel-icon { background: transparent; border: none; }
.hotel-icon { font-size: 22px; text-align: center; line-height: 24px; }

/* P5 AI-Analyse-Pills */
.flag-urgent { background: #fee2e2; color: #991b1b; border: 1px solid #ef4444; }
.flag-high { background: #fef3c7; color: #92400e; }
.flag-multiday { background: #ddd6fe; color: #5b21b6; }
.flag-anchored { background: #dbeafe; color: #1e40af; }
.flag-skill { background: #f0f9ff; color: #075985; font-size: 10px; }
.flag-risk { background: #fff7ed; color: #9a3412; }
.flag-device { background: #f5f3ff; color: #5b21b6; font-family: monospace; font-size: 10px; }
.flag-complexity { background: #f3f4f6; color: #374151; }

.job-ai-block {
  background: linear-gradient(135deg, #f0f9ff 0%, #e0e7ff 100%);
  border: 1px solid #c7d2fe;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
}
.job-ai-block h4 { margin: 0 0 8px 0; font-size: 13px; color: #4338ca; }
.ai-summary { font-size: 14px; color: #1e293b; margin-bottom: 10px; line-height: 1.4; }
.ai-tags { display: flex; flex-wrap: wrap; gap: 5px; }

.import-ai-stats { margin-top: 10px; padding: 8px 10px; background: #fff; border-radius: 6px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; font-size: 13px; }
.ai-stat { padding: 2px 8px; background: #f5f5f7; border-radius: 4px; font-weight: 500; }

/* P5b — Map-Legende als Overlay */
.map-legend-overlay {
  background: rgba(255,255,255,0.95);
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.5;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
  min-width: 160px;
}
.map-legend-overlay .legend-title {
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #64748b;
  margin-bottom: 6px;
}
.map-legend-overlay .legend-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.map-legend-overlay .legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.15);
}

.popup-type {
  display: inline-block;
  color: #fff;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
}

.week-range { color: var(--text-secondary, #86868b); font-weight: 400; font-size: 13px; margin-left: 4px; }

/* P5d — Job-Drawer Detail-Sektionen */
.job-section { margin-bottom: 20px; padding: 14px 16px; background: #fafafa; border: 1px solid #e5e5e7; border-radius: 10px; }
.job-section h4 { margin: 0 0 10px 0; font-size: 14px; color: #1e293b; }
.job-section .ai-source { font-size: 11px; font-weight: 400; color: #64748b; }
.badge-count { display: inline-block; padding: 1px 8px; background: #e5e7eb; color: #374151; border-radius: 10px; font-size: 11px; font-weight: 500; margin-left: 6px; }

.kv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px 16px; }
.kv-row { display: flex; flex-direction: column; gap: 2px; }
.kv-label { font-size: 11px; color: #64748b; text-transform: uppercase; letter-spacing: 0.4px; }
.kv-value { font-size: 14px; color: #1e293b; word-break: break-word; }
.kv-value.mono { font-family: ui-monospace, SFMono-Regular, monospace; font-size: 13px; }
.kv-value a { color: #2563eb; text-decoration: none; }
.kv-value a:hover { text-decoration: underline; }

.task-block { margin-top: 12px; }
.task-text { background: #fff; padding: 10px 12px; border-radius: 6px; border: 1px solid #e5e5e7; font-family: ui-monospace, SFMono-Regular, monospace; font-size: 12.5px; white-space: pre-wrap; max-height: 240px; overflow-y: auto; margin: 4px 0 0; }
.excel-raw { background: #fff; padding: 10px 12px; border-radius: 6px; border: 1px solid #e5e5e7; font-family: ui-monospace, SFMono-Regular, monospace; font-size: 11px; max-height: 280px; overflow: auto; margin: 8px 0 0; }

.audit-list { display: flex; flex-direction: column; gap: 4px; }
.audit-row { display: grid; grid-template-columns: 150px 1fr auto; gap: 10px; padding: 6px 8px; background: #fff; border-radius: 4px; font-size: 12.5px; border: 1px solid #f1f5f9; }
.audit-ts { color: #64748b; font-family: ui-monospace, monospace; font-size: 11.5px; }
.audit-actor { color: #475569; }
.audit-action { padding: 1px 8px; border-radius: 4px; background: #e0e7ff; color: #3730a3; font-size: 11px; font-weight: 500; }
.audit-action.escalate { background: #fee2e2; color: #991b1b; }
.audit-action.send_mail { background: #d1fae5; color: #065f46; }
.audit-action.classify { background: #ddd6fe; color: #5b21b6; }
.audit-action.manual_link { background: #fef3c7; color: #92400e; }
.audit-action.auto_route_single { background: #cffafe; color: #155e75; }
.audit-action.publish { background: #d1fae5; color: #065f46; }
.audit-details { margin-top: 4px; grid-column: 1 / -1; }
.audit-details pre { font-size: 11px; background: #f8fafc; padding: 6px 8px; border-radius: 4px; max-height: 160px; overflow: auto; margin: 4px 0 0; }

/* P5e — Tickets-Übersicht + Info-Bar */
.info-bar { background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 8px 12px; margin-bottom: 14px; font-size: 13px; color: #075985; }
.info-bar a { color: #2563eb; font-weight: 500; }

.tickets-controls { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; padding: 12px 14px; background: var(--card-bg, #fff); border: 1px solid var(--border, #e5e5e7); border-radius: 10px; }
.tickets-controls input[type="search"], .tickets-controls select { padding: 6px 10px; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 13px; background: #fff; }
.tickets-controls input[type="search"] { min-width: 280px; }
.ticket-count { margin-left: auto; font-size: 13px; color: #64748b; font-weight: 500; padding: 4px 10px; background: #f5f5f7; border-radius: 6px; }

.type-pill { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.mono { font-family: ui-monospace, monospace; font-size: 12px; }
.small { font-size: 12.5px; }
.ticket-task { max-width: 340px; }

/* ═══════════ Kalender ═══════════ */
.cal-toolbar {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 18px; background: #fff;
  border-bottom: 1px solid var(--color-border, #e5e5e7);
}
.cal-weeklabel {
  font-weight: 600; font-size: 14px; margin: 0 12px; color: #1d1d1f;
}
.cal-toolbar select { margin-left: auto; padding: 6px 10px; border: 1px solid #d2d2d7; border-radius: 6px; font-size: 13px; }
.cal-grid {
  display: grid; gap: 1px; background: #e5e5e7;
  padding: 1px; min-height: 600px;
  grid-template-columns: 80px repeat(var(--cal-cols, 5), 1fr);
}
.cal-cell { background: #fff; padding: 8px; min-height: 100px; position: relative; }
.cal-cell.cal-corner { background: #f5f5f7; }
.cal-cell.cal-tech-header {
  background: #f5f5f7; font-weight: 600; font-size: 13px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 50px;
}
.cal-cell.cal-day-header {
  background: #f5f5f7; font-weight: 600; font-size: 12px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
}
.cal-cell.cal-day-header.cal-today { background: #007aff; color: #fff; }
.cal-cell.cal-weekend { background: #fafafa; }
.cal-item {
  display: block; margin-bottom: 4px; padding: 5px 7px;
  border-radius: 4px; font-size: 11px; line-height: 1.3;
  border-left: 3px solid;
  cursor: pointer; overflow: hidden;
}
.cal-item:hover { filter: brightness(0.95); }
.cal-item-stop { background: #eff6ff; border-left-color: #3b82f6; color: #1e40af; }
.cal-item-stop.cal-prio-urgent { background: #fef2f2; border-left-color: #ef4444; color: #991b1b; }
.cal-item-stop.cal-prio-high { background: #fffbeb; border-left-color: #f59e0b; color: #92400e; }
.cal-item-block-schulung { background: #f0fdf4; border-left-color: #10b981; color: #14532d; }
.cal-item-block-urlaub { background: #fef3c7; border-left-color: #f59e0b; color: #78350f; }
.cal-item-block-krank { background: #fee2e2; border-left-color: #dc2626; color: #7f1d1d; }
.cal-item-block-sonstiges { background: #ede9fe; border-left-color: #7c3aed; color: #4c1d95; }
.cal-add-hint { color: #6e6e73; font-size: 10px; opacity: 0; transition: opacity 0.2s; cursor: pointer; }
.cal-cell:hover .cal-add-hint { opacity: 1; }
.cal-time-label {
  font-size: 11px; opacity: 0.7; margin-right: 4px;
}

/* Dashboard-Pool-Cards */
.dash-stat-cards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px; padding: 12px 18px; background: #fff;
  border-bottom: 1px solid var(--color-border, #e5e5e7);
}
.dash-stat-card { padding: 10px 14px; border-radius: 8px; background: #f5f5f7; }
.dash-stat-card .v { font-size: 22px; font-weight: 700; color: #1d1d1f; }
.dash-stat-card .l { font-size: 12px; color: #6e6e73; margin-top: 2px; }
.dash-stat-card.urgent { background: #fef2f2; }
.dash-stat-card.urgent .v { color: #991b1b; }

/* Mode-Toggle (Tag/Woche/Monat) */
.cal-mode-toggle { display: inline-flex; border: 1px solid #d2d2d7; border-radius: 6px; overflow: hidden; margin-left: 12px; }
.cal-mode-btn {
  padding: 6px 14px; font-size: 13px; background: #fff; border: none;
  cursor: pointer; color: #1d1d1f; border-right: 1px solid #d2d2d7;
}
.cal-mode-btn:last-child { border-right: none; }
.cal-mode-btn:hover { background: #f5f5f7; }
.cal-mode-btn.active { background: #007aff; color: #fff; }

/* Tag-Ansicht: Zeitleiste */
.cal-day-grid {
  display: grid; gap: 1px; background: #e5e5e7; padding: 1px;
  grid-template-columns: 70px repeat(var(--cal-cols, 5), 1fr);
}
.cal-time-slot { background: #fff; min-height: 44px; position: relative; padding: 4px 8px; font-size: 12px; }
.cal-time-slot.cal-hour-label { background: #f5f5f7; color: #6e6e73; text-align: right; padding-right: 8px; font-weight: 500; }
.cal-time-slot .cal-item { margin-bottom: 2px; }

/* Monat-Ansicht: 5×7 Grid */
.cal-month-grid {
  display: grid; gap: 1px; background: #e5e5e7; padding: 1px;
  grid-template-columns: repeat(7, 1fr);
}
.cal-month-cell {
  background: #fff; min-height: 100px; padding: 6px;
  display: flex; flex-direction: column; gap: 2px;
}
.cal-month-cell.cal-outside { background: #fafafa; color: #b0b0b0; }
.cal-month-cell.cal-weekend { background: #fafafa; }
.cal-month-cell.cal-today .cal-month-date { background: #007aff; color: #fff; }
.cal-month-date {
  font-size: 12px; font-weight: 600; align-self: flex-start;
  padding: 2px 6px; border-radius: 4px;
}
.cal-month-pill {
  font-size: 10px; padding: 1px 5px; border-radius: 3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cal-month-counter { font-size: 11px; color: #6e6e73; margin-top: auto; }

/* Weekday-Chips im Techniker-Modal */
.weekday-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.weekday-chip {
  display: inline-flex; align-items: center; cursor: pointer;
  user-select: none; padding: 6px 12px; border: 1px solid #d2d2d7;
  border-radius: 18px; font-size: 13px; background: #fff; transition: 0.15s;
}
.weekday-chip input { display: none; }
.weekday-chip span { padding: 0; }
.weekday-chip:hover { border-color: #007aff; }
.weekday-chip:has(input:checked) { background: #007aff; color: #fff; border-color: #007aff; }
.form-hint { font-size: 11px; color: #6e6e73; margin-top: 4px; }
.field-row.grid-3 { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 12px; }

/* Route-Modal Layout */
.almas-modal:has(.route-modal-shell) { max-width: 1200px; }
.route-modal-shell {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 12px;
  height: 600px;
}
.route-modal-side {
  background: #f5f5f7;
  border-radius: 8px;
  padding: 14px;
  overflow-y: auto;
}
.route-modal-totals {
  background: #fff;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #e5e5e7;
}
.route-modal-totals-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 5px 0; font-size: 13px; border-bottom: 1px solid #f0f0f0;
}
.route-modal-totals-row:last-child { border-bottom: none; }
.route-modal-totals-row strong { font-size: 14px; color: #1d1d1f; }
.route-day-row {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; padding: 4px 0;
}
.route-day-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.route-day-meta { color: #6e6e73; margin-left: auto; font-size: 11px; }
.route-modal-map {
  border-radius: 8px; overflow: hidden;
  border: 1px solid #e5e5e7;
}
.route-seg-label { pointer-events: none; }

/* Cost-Card unter jeder Route */
.cost-card {
  margin-top: 12px;
  padding: 12px 16px;
  border-radius: 10px;
  background: #f5f5f7;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px 18px;
  font-size: 13px;
}
.cost-card.cost-positive { background: #f0fdf4; border: 1px solid #86efac; }
.cost-card.cost-negative { background: #fef2f2; border: 1px solid #fca5a5; }
.cost-row { display: flex; justify-content: space-between; gap: 10px; padding: 2px 0; }
.cost-row.cost-warn { color: #b45309; }
.cost-row.cost-revenue { color: #15803d; }
.cost-row.cost-net {
  grid-column: 1 / -1;
  border-top: 1px solid rgba(0,0,0,0.1);
  padding-top: 6px;
  margin-top: 4px;
  font-size: 14px;
}

/* Router v2 — Reason-Pills im Stop-Card */
.reason-pills {
  display: flex; gap: 3px; flex-wrap: wrap;
  margin-top: 4px;
}
.reason-pill {
  font-size: 9px; padding: 1px 5px; border-radius: 8px;
  background: #f1f5f9; color: #475569;
  line-height: 1.3; white-space: nowrap;
}
.reason-pill.reason-near { background: #dcfce7; color: #166534; }
.reason-pill.reason-mid { background: #dbeafe; color: #1e40af; }
.reason-pill.reason-warn { background: #fef3c7; color: #92400e; }
.reason-pill.reason-anchor { background: #f3e8ff; color: #6b21a8; }
.reason-pill.reason-hotel { background: #fed7aa; color: #9a3412; }
.reason-pill.reason-same { background: #d1fae5; color: #065f46; }

/* Router v2 — KI-Strategy-Note pro Route */
.strategy-note {
  background: linear-gradient(135deg, #f0f9ff 0%, #ede9fe 100%);
  border-left: 3px solid #6366f1;
  padding: 8px 14px;
  margin: 8px 0 12px 0;
  font-size: 13px;
  color: #1e1b4b;
  border-radius: 0 6px 6px 0;
}

/* Router v2 P4 — Stop-Actions */
.stop-card { position: relative; }
.stop-card.locked { border: 2px solid #6366f1; background: #eef2ff; }
.stop-actions {
  position: absolute; top: 4px; right: 4px;
  display: none; gap: 2px;
}
.stop-card:hover .stop-actions { display: flex; }
.stop-act-btn {
  background: rgba(255,255,255,0.95); border: 1px solid #d2d2d7;
  width: 22px; height: 22px; padding: 0;
  border-radius: 4px; cursor: pointer; font-size: 11px;
  display: flex; align-items: center; justify-content: center;
}
.stop-act-btn:hover { background: #007aff; color: #fff; border-color: #007aff; }
.stop-act-btn.stop-del:hover { background: #ef4444; border-color: #ef4444; }

/* Router v2 — Decision-Log-Modal */
.decision-log { display: flex; flex-direction: column; gap: 4px; max-height: 60vh; overflow-y: auto; }
.log-row {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 6px 10px; border-radius: 5px; font-size: 13px;
  background: #f5f5f7;
}
.log-ico { flex-shrink: 0; font-size: 14px; width: 20px; text-align: center; }
.log-text { line-height: 1.4; }
.log-init { background: #e0e7ff; color: #312e81; }
.log-stop { background: #f0fdf4; color: #14532d; }
.log-hotel { background: #fef3c7; color: #78350f; }
.log-skip { background: #fee2e2; color: #7f1d1d; font-size: 12px; }
.log-ai { background: #ede9fe; color: #4c1d95; font-weight: 500; }
.log-warn { background: #fef3c7; color: #92400e; }
.log-conflict { background: #f1f5f9; color: #1e40af; }
.log-pause { background: #fdf4ff; color: #86198f; }
.log-done { background: #d1fae5; color: #065f46; font-weight: 600; }

/* Operator-Chat Sidebar im Wochen-Detail */
.weekdetail-shell { display: grid; grid-template-columns: 1fr 360px; gap: 16px; align-items: start; }
.weekdetail-main { min-width: 0; }
.week-chat-sidebar {
  position: sticky; top: 16px;
  background: #fff; border: 1px solid #e5e5e7; border-radius: 12px;
  display: flex; flex-direction: column;
  max-height: calc(100vh - 100px);
}
.week-chat-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 14px; border-bottom: 1px solid #e5e5e7; font-weight: 600; font-size: 14px;
}
.week-chat-clear { background: none; border: none; cursor: pointer; font-size: 14px; opacity: 0.6; }
.week-chat-clear:hover { opacity: 1; }
.week-chat-body { flex: 1; overflow-y: auto; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.week-chat-hint { color: #6e6e73; font-size: 12px; padding: 6px 10px; background: #f5f5f7; border-radius: 8px; line-height: 1.4; }
.chat-msg { padding: 8px 12px; border-radius: 8px; font-size: 13px; line-height: 1.4; max-width: 95%; }
.chat-msg.user { background: #007aff; color: #fff; align-self: flex-end; }
.chat-msg.assistant { background: #f5f5f7; color: #1d1d1f; align-self: flex-start; }
.chat-msg.assistant .chat-tools { font-size: 11px; color: #6e6e73; margin-top: 4px; padding-top: 4px; border-top: 1px solid rgba(0,0,0,0.08); }
.chat-msg.assistant .chat-tool-pill { display: inline-block; background: #ede9fe; color: #4c1d95; padding: 1px 6px; border-radius: 8px; margin-right: 4px; font-size: 10px; }
.week-chat-input { display: flex; gap: 6px; padding: 10px; border-top: 1px solid #e5e5e7; }
.week-chat-input textarea { flex: 1; resize: none; padding: 6px 8px; border: 1px solid #d2d2d7; border-radius: 6px; font-size: 13px; font-family: inherit; }
.chat-msg.pending { opacity: 0.6; font-style: italic; }
@media (max-width: 1100px) { .weekdetail-shell { grid-template-columns: 1fr; } .week-chat-sidebar { max-height: 400px; } }

/* ═══════════ MOBILE ═══════════ */
@media (max-width: 768px) {
  /* Stat-Cards 2 Spalten */
  .dashboard-stats.dash-stat-cards { grid-template-columns: repeat(2, 1fr); gap: 8px; padding: 8px 0; }
  .dash-stat-card { padding: 10px 12px; }
  .dash-stat-card .v { font-size: 18px; }

  /* Dashboard-Controls vertikal */
  .dashboard-controls { flex-direction: column; align-items: stretch; gap: 10px; padding: 10px 12px; }
  .dashboard-controls label, .dashboard-controls select { width: 100%; }

  /* Map kleiner */
  #dashboardMap { height: 380px !important; min-height: 380px !important; }

  /* Wochen-Detail-Layout: Chat als Bottom-Sheet */
  .weekdetail-shell { display: block; }
  .week-chat-sidebar {
    position: fixed; bottom: 0; left: 0; right: 0; top: auto;
    z-index: 200; border-radius: 12px 12px 0 0; border-bottom: 0;
    max-height: 70vh; transform: translateY(calc(100% - 50px));
    transition: transform 0.25s;
  }
  .week-chat-sidebar.open { transform: translateY(0); }
  .week-chat-header { cursor: pointer; }
  .week-chat-header::after { content: '⌃'; margin-left: 8px; transition: transform 0.2s; }
  .week-chat-sidebar.open .week-chat-header::after { transform: rotate(180deg); }

  /* Tag-Grid: 1 Spalte */
  .day-grid { grid-template-columns: 1fr; gap: 8px; }
  .day-col { min-height: 60px; }
  .day-col-header { background: #f5f5f7; padding: 6px 10px; border-radius: 6px; margin-bottom: 4px; font-weight: 600; }

  /* Tech-Route-Header: Buttons unter Stats */
  .tech-route-header { flex-direction: column; align-items: stretch; gap: 8px; }
  .tech-route-stats { flex-wrap: wrap; gap: 8px; font-size: 11px; }
  .tech-route-header > div:last-child { display: flex; gap: 6px; flex-wrap: wrap; }

  /* Kalender: horizontal scrollbar */
  .cal-grid, .cal-day-grid { overflow-x: auto; min-width: 100%; }
  .cal-grid { grid-template-columns: 70px repeat(var(--cal-cols, 5), minmax(140px, 1fr)); }
  .cal-day-grid { grid-template-columns: 60px repeat(var(--cal-cols, 5), minmax(140px, 1fr)); }
  .cal-month-grid { grid-template-columns: repeat(7, minmax(60px, 1fr)); overflow-x: auto; }
  .cal-month-cell { min-height: 80px; padding: 4px; }
  .cal-toolbar { flex-wrap: wrap; gap: 6px; padding: 10px 12px; }
  .cal-mode-toggle { margin-left: 0; width: 100%; }
  .cal-mode-btn { flex: 1; }
  #calTechFilter { width: 100%; }

  /* Tickets-Controls vertikal */
  .tickets-controls { flex-direction: column; align-items: stretch; }
  .tickets-controls input[type="search"], .tickets-controls select { width: 100% !important; min-width: 0 !important; }

  /* Tabelle: kleinere Schrift, weniger Padding */
  .almas-table { font-size: 12px; }
  .almas-table th, .almas-table td { padding: 6px 8px; }
  .almas-table th { font-size: 11px; }

  /* Stop-Card: kleiner */
  .stop-card { font-size: 11px; padding: 6px 8px; }
  .stop-actions { display: flex; position: static; margin-top: 4px; }

  /* Routen-Modal-Shell: 1 Spalte, Sidebar oben */
  .route-modal-shell { grid-template-columns: 1fr; height: auto; }
  .route-modal-side { max-height: 200px; overflow-y: auto; }
  .route-modal-map { height: 400px; }
  .almas-modal:has(.route-modal-shell) { max-width: 100%; }

  /* Reason-Pills nicht zu breit */
  .reason-pill { font-size: 9px; padding: 1px 4px; }

  /* Cal-Item kompakter */
  .cal-item { font-size: 10px; padding: 3px 5px; }

  /* Modal kompakter */
  .almas-modal-body { padding: 14px; }
  .field-row .grid-2, .field-row.grid-3 { grid-template-columns: 1fr; }

  /* Weekday-Chips kleiner */
  .weekday-chip { padding: 4px 8px; font-size: 12px; }

  /* Form-Buttons full-width */
  .modal-footer button, .form-actions button { flex: 1; min-width: 0; }

  /* Routen-Action-Leiste: jeder Button full-width, Badge + Status darunter */
  .routes-actions { flex-direction: column; align-items: stretch; gap: 8px; }
  .routes-actions .almas-btn { width: 100%; }
  .routes-actions .pool-badge { width: 100%; text-align: center; box-sizing: border-box; }
  .routes-actions > span:last-child { width: 100%; font-size: 12px; text-align: center; }

  /* Route-Kalender: horizontal scrollbar mit min-Breite pro Tag */
  .rcal-grid { overflow-x: auto; grid-template-columns: 50px repeat(5, minmax(120px, 1fr)); }
  .rcal-stop { font-size: 10px; padding: 3px 5px; }
  .rcal-stop-time { font-size: 9px; }
  .rcal-day-header { font-size: 11px; padding: 4px 6px; }
  .rcal-hour { font-size: 10px; }
}

/* Extra-small Phones */
@media (max-width: 480px) {
  .dashboard-stats.dash-stat-cards { grid-template-columns: 1fr; }
  .almas-content { padding: 8px !important; }
  #dashboardMap { height: 300px !important; min-height: 300px !important; }
  .almas-page-title { font-size: 18px; }
  .almas-btn.almas-btn-sm { padding: 6px 10px; font-size: 11px; }
  .almas-modal { max-height: 95vh; }
}

/* Route-Kalender (Outlook-Style) — ersetzt das alte day-grid */
.rcal-grid {
  display: grid;
  grid-template-columns: 55px repeat(5, 1fr);
  border: 1px solid #e5e5e7;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.rcal-hours-col {
  border-right: 1px solid #e5e5e7;
  background: #fafafa;
}
.rcal-hour {
  border-bottom: 1px dashed #e5e5e7;
  font-size: 11px; color: #6e6e73;
  padding: 2px 6px;
  display: flex; align-items: flex-start; justify-content: flex-end;
}
.rcal-day {
  border-right: 1px solid #e5e5e7;
  min-width: 0;
}
.rcal-day:last-child { border-right: none; }
.rcal-day-header {
  background: #f5f5f7;
  padding: 6px 8px;
  font-size: 12px;
  text-align: center;
  border-bottom: 1px solid #e5e5e7;
  height: 28px;
}
.rcal-day-body { position: relative; }
.rcal-hourline {
  position: absolute; left: 0; right: 0;
  border-top: 1px dashed #f0f0f0;
  pointer-events: none;
}
.rcal-stop {
  position: absolute; left: 3px; right: 3px;
  background: #dbeafe;
  border-left: 3px solid #3b82f6;
  border-radius: 4px;
  padding: 4px 6px;
  font-size: 11px; line-height: 1.3;
  overflow: hidden; cursor: pointer;
  box-shadow: 0 1px 2px rgba(0,0,0,0.08);
  display: flex; flex-direction: column; gap: 2px;
  transition: box-shadow 0.15s;
}
.rcal-stop:hover { box-shadow: 0 2px 6px rgba(0,0,0,0.15); z-index: 10; }
.rcal-stop.rcal-locked { background: #eef2ff; border-left-color: #6366f1; }
.rcal-stop.rcal-urgent { background: #fef2f2; border-left-color: #ef4444; color: #991b1b; }
.rcal-stop.rcal-high   { background: #fffbeb; border-left-color: #f59e0b; color: #92400e; }
.rcal-stop.rcal-hotel { border-bottom: 3px dashed #b45309; }
.rcal-stop-time { font-weight: 600; font-size: 10px; }
.rcal-stop-name { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rcal-stop-meta { font-size: 10px; color: #6e6e73; }
.rcal-drive { display: inline-block; font-size: 9px; color: #007aff; background: rgba(0,122,255,0.08); padding: 0 4px; border-radius: 3px; }
.rcal-stop-actions { position: absolute; top: 2px; right: 2px; display: none; gap: 1px; }
.rcal-stop:hover .rcal-stop-actions { display: flex; }
.rcal-stop .stop-act-btn { width: 18px; height: 18px; font-size: 9px; }

@media (max-width: 768px) {
  .rcal-grid { grid-template-columns: 45px repeat(5, minmax(120px, 1fr)); overflow-x: auto; }
}


/* Drag&Drop im Routen-Kalender */
.rcal-stop[draggable="true"] { cursor: grab; }
.rcal-stop.rcal-dragging { opacity: .45; cursor: grabbing; }
.rcal-day.rcal-drop-hover { background: rgba(37, 99, 235, .06); box-shadow: inset 0 0 0 2px rgba(37, 99, 235, .38); border-radius: 6px; }


/* Fehlerhafte Tickets */
.flag-pill.flag-flaw { background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; font-weight:600; }
.dash-stat-card.flaw .v { color:#dc2626; }
.dash-stat-card.flaw:hover { box-shadow:0 0 0 2px rgba(220,38,38,.35); }
.ticket-flaw-toggle { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:#475569; white-space:nowrap; cursor:pointer; user-select:none; }
.ticket-flaw-toggle input { accent-color:#dc2626; }


/* Job-Drawer Sektions-Kopf mit Aktion rechts */
.job-section-head { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:6px; }
.job-section-head h4 { margin:0; }


/* Kategorie-Chips im Ticket-Drawer */
.cat-chips { display:flex; flex-wrap:wrap; gap:6px; }
.cat-chip { padding:4px 11px; border:1px solid #d2d2d7; border-radius:14px; background:#fff; font-size:12px; cursor:pointer; color:#475569; transition:all .12s; }
.cat-chip:hover { border-color:#94a3b8; }
.cat-chip.on { background:#dc2626; border-color:#dc2626; color:#fff; font-weight:600; }
