/* Shared styles for MCM staff views */
.mcm-app { font-family: Arial, Helvetica, sans-serif; }
.mcm-login-required { padding: 16px; background: #fffbe6; border: 1px solid #ffe58f; border-radius: 6px; }
.mcm-toolbar { display:flex; gap:8px; align-items:center; margin:8px 0 12px; flex-wrap:wrap; }
.mcm-toolbar input[type="search"] { padding:6px 8px; border:1px solid #ccc; border-radius:4px; min-width:240px; }
.mcm-search-input { width:75%; padding:10px 12px; border:1px solid #ddd; border-radius:6px; font-size:14px; font-family: Arial, Helvetica, sans-serif; }
.mcm-btn-primary { padding:11px 24px; background:#2d3748; color:#fff; border:none; border-radius:8px; cursor:pointer; font-size:15px; font-weight:500; white-space:nowrap; box-shadow:0 2px 4px rgba(0,0,0,0.1); transition:all 0.2s ease; width:auto; }
.mcm-btn-primary:hover { background:#1a202c; box-shadow:0 4px 8px rgba(0,0,0,0.15); transform:translateY(-1px); }
.mcm-btn-primary:active { background:#4a5568; box-shadow:0 1px 2px rgba(0,0,0,0.1); transform:translateY(0); }
.mcm-btn-edit { padding:11px 24px; background:transparent; color:#4a5568; border:1px solid #cbd5e0; border-radius:8px; cursor:pointer; font-size:15px; font-weight:500; white-space:nowrap; box-shadow:none; transition:all 0.2s ease; width:auto; }
.mcm-btn-edit:hover { background:#f7fafc; border-color:#a0aec0; box-shadow:0 2px 4px rgba(0,0,0,0.05); transform:translateY(-1px); }
.mcm-btn-edit:active { background:#edf2f7; border-color:#a0aec0; transform:translateY(0); }
.mcm-btn-save { padding:11px 24px; background:#9CF1FF; color:#000; border:none; border-radius:8px; cursor:pointer; font-size:15px; font-weight:500; white-space:nowrap; box-shadow:0 2px 4px rgba(156,241,255,0.3); transition:all 0.2s ease; }
.mcm-btn-save:hover { background:#7AD4E8; box-shadow:0 4px 8px rgba(156,241,255,0.4); transform:translateY(-1px); }
.mcm-btn-save:active { background:#5BB8CC; box-shadow:0 1px 2px rgba(156,241,255,0.2); transform:translateY(0); }
.mcm-btn-cancel { padding:11px 24px; background:#e5e7eb; color:#000; border:none; border-radius:8px; cursor:pointer; font-size:15px; font-weight:500; white-space:nowrap; box-shadow:0 2px 4px rgba(0,0,0,0.15); transition:all 0.2s ease; }
.mcm-btn-cancel:hover { background:#d1d5db; box-shadow:0 4px 8px rgba(0,0,0,0.2); transform:translateY(-1px); }
.mcm-btn-cancel:active { background:#9ca3af; box-shadow:0 1px 2px rgba(0,0,0,0.1); transform:translateY(0); }
.mcm-btn-secondary { padding:11px 24px; background:#fff; color:#2d3748; border:1px solid #d1d5db; border-radius:8px; cursor:pointer; font-size:15px; font-weight:500; white-space:nowrap; box-shadow:0 2px 4px rgba(0,0,0,0.05); transition:all 0.2s ease; }
.mcm-btn-secondary:hover { background:#f9fafb; border-color:#9ca3af; box-shadow:0 4px 8px rgba(0,0,0,0.1); transform:translateY(-1px); }
.mcm-btn-secondary:active { background:#e5e7eb; border-color:#9ca3af; transform:translateY(0); }
.mcm-btn-danger { padding:11px 24px; background:#dc2626; color:#fff; border:none; border-radius:8px; cursor:pointer; font-size:15px; font-weight:500; white-space:nowrap; box-shadow:0 2px 4px rgba(220,38,38,0.3); transition:all 0.2s ease; }
.mcm-btn-danger:hover { background:#b91c1c; box-shadow:0 4px 8px rgba(220,38,38,0.4); transform:translateY(-1px); }
.mcm-btn-danger:active { background:#991b1b; box-shadow:0 1px 2px rgba(220,38,38,0.2); transform:translateY(0); }

/* Selection mode for bulk actions */
.selection-mode #tbl th:first-child, .selection-mode #tbl td:first-child { width:40px !important; text-align:center; }
.selection-mode #tbl tr:hover { background:#f0f9ff; }
.selection-mode #tbl tr.selected { background:#dbeafe; }
/* Jobs table selection mode */
.selection-mode #mcmJobsTable th:first-child, .selection-mode #mcmJobsTable td:first-child { width:40px !important; text-align:center; }
.selection-mode #mcmJobsTable tr:hover { background:#f0f9ff; }
.selection-mode #mcmJobsTable tr.selected { background:#dbeafe; }
.checkbox-cell { cursor:pointer; }
.checkbox-cell input[type="checkbox"] { width:18px; height:18px; cursor:pointer; }
.mcm-status-bubble { display:inline-block; padding:4px 12px; border-radius:12px; font-size:13px; font-weight:500; }
.mcm-status-bubble.active { background:#d1fae5; color:#065f46; border:1px solid #6ee7b7; }
.mcm-status-bubble.inactive { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }
.mcm-status-bubble.green { background:#d1fae5; color:#065f46; border:1px solid #6ee7b7; }
.mcm-status-bubble.red { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }
.mcm-status-bubble.blue { background:#dbeafe; color:#1e40af; border:1px solid #93c5fd; }
.mcm-status-bubble.gray { background:#f3f4f6; color:#1f2937; border:1px solid #d1d5db; }
.mcm-status-bubble.lead { background:#f3e8ff; color:#6b21a8; border:1px solid #c084fc; }
.mcm-section-header { background:#eaf4ff !important; }
.mcm-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:14px; }
.mcm-table th, .mcm-table td { border:1px solid #eaf4ff; padding:6px; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mcm-table th { background:#eaf4ff; font-weight:600; }
.mcm-table th:first-child { border-top-left-radius:8px; }
.mcm-table th:last-child { border-top-right-radius:8px; }
.mcm-table th.sortable { cursor:pointer; user-select:none; position:relative; padding-right:22px; transition:background 0.2s ease; }
.mcm-table th.sortable:hover { background:#d4e9ff; }
.mcm-table th.sortable::after { content:'⇅'; position:absolute; right:6px; top:50%; transform:translateY(-50%); opacity:0.3; font-size:12px; }
.mcm-table th.sortable.sort-asc::after { content:'▲'; opacity:0.8; color:#2563eb; }
.mcm-table th.sortable.sort-desc::after { content:'▼'; opacity:0.8; color:#2563eb; }
.mcm-modal-mask { position:fixed; inset:0; background:rgba(0,0,0,.45); display:none; align-items:center; justify-content:center; z-index:9999; }
.mcm-modal { background:#fff; width:860px; max-width:95%; max-height:90%; overflow:auto; border-radius:6px; padding:20px; position:relative; box-shadow:0 4px 18px rgba(0,0,0,.3); }
.mcm-modal h3 { margin:0 0 8px; border-bottom:1px solid #eee; padding-bottom:6px; }
.mcm-close {position:fixed;top:calc(6px + var(--mcm-toolbar));right:32px;font-size:28px;line-height:1;cursor:pointer;color:#666;padding:6px 12px;background:#f5f5f5;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 4px rgba(0,0,0,0.1);z-index:10001;transition:all 0.2s ease}
.mcm-close hover {background:#e5e5e5;color:#000;box-shadow:0 3px 6px rgba(0,0,0,0.15);transform:translateY(-1px)}
.mcm-pill { display:inline-block; padding:2px 8px; border-radius:12px; border:1px solid #ddd; font-size:12px; background:#f5f5f5; }
.mcm-badge { display:inline-block; padding:2px 6px; border-radius:6px; background:#eef5ff; border:1px solid #cfe1ff; font-size:12px; }
.mcm-btn { padding:6px 10px; border:1px solid #888; border-radius:4px; background:#f5f5f5; cursor:pointer; }
.mcm-btn.primary { background:#f7f7f7; color:#fff; border-color:#ccc; }
.mcm-flex { display:flex; gap:8px; align-items:center; }
.mcm-right { margin-left:auto; }
/* === MCM inline-edit look === */
/* No background highlight on edit fields */
.mcm-toast {
  position:fixed;top:12px;left:50%;transform:translateX(-50%);
  padding:10px 18px;border-radius:6px;font-size:14px;z-index:9999;
  box-shadow:0 2px 6px rgba(0,0,0,.25); color:#fff;
  height:auto !important; max-height:60px; width:auto; max-width:90vw;
  display:block; flex:none;
}
.mcm-toast.ok    { background:#28a745; }
.mcm-toast.error { background:#c0392b; }

/* Calendar specifics */
.mcm-cal-header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; background:#fff; padding:8px 0; border-bottom:1px solid #ddd; }
.mcm-cal-grid { display:flex; flex-direction:column; border:1px solid #ddd; border-radius:4px; overflow:hidden; height:calc(100vh - 160px); min-height:520px; }
.mcm-cal-scale { display:flex; height:40px; background:#f8f9fa; }
.mcm-cal-people { width:160px; min-width:160px; border-right:1px solid #ddd; display:flex; align-items:center; justify-content:center; font-weight:600; }
.mcm-cal-hours { display:flex; width:100%; }
.mcm-cal-hour { width:calc(100%/12); display:flex; align-items:center; justify-content:center; border-right:1px solid #eee; font-weight:600; font-size:12px; }
.mcm-cal-rows { display:flex; flex-direction:column; overflow-y:auto; flex:1; }
.mcm-cal-row { display:flex; height:84px; border-bottom:1px solid #eee; }
.mcm-cal-name { width:160px; min-width:160px; padding:0 10px; display:flex; align-items:center; border-right:1px solid #eee; border-left:4px solid #ccc; font-weight:600; background:#f8f9fa; }
.mcm-cal-slots { flex:1; display:flex; position:relative; }
.mcm-cal-slot { width:calc(100%/12); border-right:1px solid #f3f3f3; background:#fff; }
.mcm-cal-slot:nth-child(odd){ background:#fafafa; }
.mcm-cal-event { position:absolute; top:5px; bottom:5px; color:#fff; border-radius:4px; padding:6px 10px; overflow:hidden; cursor:pointer; box-shadow:0 1px 3px rgba(0,0,0,0.2); display:flex; flex-direction:column; justify-content:center; }
.mcm-cal-evt-time { font-size:12px; line-height:1.2; margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mcm-cal-evt-title { font-weight:700; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mcm-cal-evt-loc { font-size:11px; opacity:.9; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ============================================================================
   ADDRESS AUTOCOMPLETE STYLES
   ============================================================================ */

.mcm-address-autocomplete-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: white;
  border: 1px solid #ddd;
  border-top: none;
  max-height: 300px;
  overflow-y: auto;
  z-index: 10000;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
  display: none;
  margin-top: -1px;
  border-radius: 0 0 4px 4px;
}

.mcm-address-autocomplete-item {
  padding: 10px 12px;
  cursor: pointer;
  border-bottom: 1px solid #f0f0f0;
  font-size: 14px;
  transition: background-color 0.15s ease;
}

.mcm-address-autocomplete-item:last-child {
  border-bottom: none;
}

.mcm-address-autocomplete-item:hover {
  background-color: #f5f5f5;
}

.mcm-address-autocomplete-item:active {
  background-color: #e8e8e8;
}

/* Fix for address autocomplete dropdown being clipped by sections */
.section {
  overflow: visible !important;
}

.section .rows {
  overflow: visible !important;
}

.grid2col {
  overflow: visible !important;
}

/* ============================================================================
   FILE HANDLING STYLES
   ============================================================================ */

/* Files tab header with upload button */
.files-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e5e5e5;
}

.files-head h4 {
	font-weight:575;
	padding:10px 12px;
	font-family: Arial;
}

/* File upload button */
.file-upload-btn { padding:11px 24px; background:#2d3748; color:#fff; border:none; border-radius:8px; cursor:pointer; font-size:15px; font-weight:500; white-space:nowrap; box-shadow:0 2px 4px rgba(0,0,0,0.1); transition:all 0.2s ease; width:auto; }
.file-upload-btn:hover { background:#1a202c; box-shadow:0 4px 8px rgba(0,0,0,0.15); transform:translateY(-1px); }
.file-upload-btn:active { background:#4a5568; box-shadow:0 1px 2px rgba(0,0,0,0.1); transform:translateY(0); }
.file-upload-btn:disabled { background: #ccc; cursor: not-allowed; }

/* Hidden file input */
input[type="file"].file-input-hidden {
  display: none;
}

/* File list container */
.files-section {
  margin-bottom: 24px;
}

.files-section-title {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
  color: #555;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.files-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Individual file item */
.file-item {
  display: flex;
  align-items: center;
  padding: 12px;
  background: #f8f9fa;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  transition: background 0.2s;
}

.file-item:hover {
  background: #e9ecef;
}

.file-icon {
  font-size: 24px;
  margin-right: 12px;
  flex-shrink: 0;
}

.file-info {
  flex: 1;
  min-width: 0;
}

.file-name {
  font-weight: 600;
  font-size: 14px;
  color: #333;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.file-meta {
  font-size: 12px;
  color: #666;
}

.file-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.file-action-btn {
  padding: 6px 10px;
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  transition: all 0.2s;
}

.file-action-btn:hover {
  background: #007bff;
  color: #fff;
  border-color: #007bff;
}

.file-action-btn.delete:hover {
  background: #dc3545;
  border-color: #dc3545;
}

/* Job files group (for customer view) */
.job-files-group {
  margin-bottom: 16px;
}

.job-files-header {
  font-size: 13px;
  font-weight: 600;
  color: #555;
  margin-bottom: 8px;
  padding: 6px 10px;
  background: #f0f0f0;
  border-radius: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
}

.job-files-header:hover {
  background: #e5e5e5;
}

.job-files-header .toggle-icon {
  font-size: 10px;
  transition: transform 0.2s;
}

.job-files-header.collapsed .toggle-icon {
  transform: rotate(-90deg);
}

.job-files-list {
  margin-left: 20px;
}

/* Empty state */
.files-empty {
  text-align: center;
  padding: 40px 20px;
  color: #999;
  font-style: italic;
}

/* Upload progress indicator */
.upload-progress {
  padding: 12px;
  background: #e7f3ff;
  border: 1px solid #b3d9ff;
  border-radius: 4px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.upload-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid #007bff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.upload-progress-text {
  font-size: 14px;
  color: #0056b3;
}

/* ============================================================================
   ACTIVITY SECTION STYLES
   ============================================================================ */

/* Activity tab header with Add Note button */
.activity-head {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e5e5e5;
}

/* Activity items container */
#activity-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Individual activity item */
.activity-item {
  background: #f8f9fa;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  padding: 16px;
  transition: box-shadow 0.2s;
}

.activity-item:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* Activity header (context + meta) */
.activity-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #dee2e6;
}

.activity-context {
  font-weight: 600;
  font-size: 14px;
  color: #333;
}

.activity-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 12px;
  color: #6c757d;
}

.activity-creator {
  font-weight: 500;
}

.activity-date {
  font-style: italic;
}

/* Activity body (HTML content from Monday.com) */
.activity-body {
  font-size: 14px;
  line-height: 1.6;
  color: #333;
}

/* Style Monday.com HTML content */
.activity-body p {
  margin: 8px 0;
}

.activity-body ul, 
.activity-body ol {
  margin: 8px 0;
  padding-left: 24px;
}

.activity-body li {
  margin: 4px 0;
}

.activity-body strong {
  font-weight: 700;
}

.activity-body em {
  font-style: italic;
}

.activity-body u {
  text-decoration: underline;
}

.activity-body del {
  text-decoration: line-through;
}

.activity-body h4 {
  font-size: 16px;
  font-weight: 700;
  margin: 12px 0 8px;
}

.activity-body table {
  border-collapse: collapse;
  width: 100%;
  margin: 12px 0;
  font-size: 13px;
}

.activity-body table td {
  border: 1px solid #ddd;
  padding: 8px;
}

.activity-body a {
  color: #1f5fbf;
  text-decoration: none;
}

.activity-body a:hover {
  text-decoration: underline;
}

/* User mentions styling */
.activity-body .user_mention_editor {
  background: #e7f3ff;
  padding: 2px 6px;
  border-radius: 3px;
  color: #0056b3;
  font-weight: 500;
}

/* Activity item content - better list formatting */
.activity-body ul,
.activity-body ol {
  margin: 8px 0;
  padding-left: 24px;
}

.activity-body ul li {
  list-style-type: disc;
  margin: 4px 0;
}

.activity-body ol li {
  list-style-type: decimal;
  margin: 4px 0;
}

.activity-body pre {
  background: #f5f5f5;
  padding: 8px;
  border-radius: 4px;
  overflow-x: auto;
  font-family: 'Courier New', monospace;
  font-size: 13px;
}

.activity-delete {
	cursor: pointer;
	margin-left: 8px;
	opacity: 0.6;
	font-size: 16px;
	transition: opacity 0.2s;
}

.activity-delete:hover {
	opacity: 1;
}

/* Activity sections (customer notes vs job activity) */
.activity-section {
  margin-bottom: 24px;
}

.activity-section-header {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid #dee2e6;
}

/* Job activity group (collapsible) */
.job-activity-group {
  margin-bottom: 12px;
}

.job-activity-header {
  font-size: 13px;
  font-weight: 600;
  color: #555;
  margin-bottom: 8px;
  padding: 6px 10px;
  background: #f0f0f0;
  border-radius: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
}

.job-activity-header:hover {
  background: #e5e5e5;
}

.job-activity-header .toggle-icon {
  font-size: 10px;
  transition: transform 0.2s;
}

.job-activity-header.collapsed .toggle-icon {
  transform: rotate(-90deg);
}

.job-activity-list {
  margin-left: 20px;
}

/* ============================================================================
   EQUIPMENT SECTION STYLES - SHARED ACROSS CUSTOMERS & JOBS
   ============================================================================ */

/* Equipment header with search and actions */
.eq-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px;
	border: 1px solid #e5e5e5;
	border-bottom: none;
	border-radius: 6px 6px 0 0;
	background: #f7f7f7;
}

.eq-search {
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 6px;
	min-width: 260px;
}

/* Equipment grid header */
.eq-grid-header {
	display: grid;
	gap: 12px;
	padding: 10px 12px;
	border: 1px solid #e5e5e5;
	background: #f2f2f2;
	font-weight: 600;
}

/* Equipment row */
.eq-row {
	display: grid;
	gap: 12px;
	padding: 12px;
	background: #fafafa;
	border: 1px solid #e5e5e5;
	border-top: none;
	align-items: center;
}

/* Equipment details section */
.eq-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	padding: 12px;
	border: 1px solid #e5e5e5;
	border-top: none;
	border-bottom: 1px solid #e5e5e5;
}

.eq-kv {
	margin: 2px 0;
}

.eq-empty {
	padding: 20px;
	text-align: center;
	color: #666;
}

/* Equipment input fields */
.eq-input {
	width: 100%;
	padding: 6px 8px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
	font-size: 14px;
	box-sizing: border-box;
}

.eq-input:focus {
	outline: none;
	border-color: #2563eb;
	box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.1);
}

textarea.eq-input {
	resize: vertical;
	min-height: 60px;
	font-family: inherit;
}

select.eq-input {
	cursor: pointer;
}

/* Equipment edit actions */
.eq-edit-actions {
	display: none;
	gap: 8px;
	margin-top: 8px;
	padding: 8px 12px;
	background: #f8f9fa;
	border-top: 1px solid #e5e5e5;
}

.eq-edit-actions .btn {
	padding: 6px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #f7f7f7;
	cursor: pointer;
	font-size: 14px;
}

.eq-edit-actions .primary {
	background: #007bff;
	color: #fff;
	border-color: #007bff;
}

.eq-edit-actions .btn:hover {
	background: #e6e6e6;
}

.eq-edit-actions .primary:hover {
	background: #0056b3;
}

/* Equipment rows in edit mode - no yellow highlight */
[data-equipment-index].eq-editing {
	background: #fafafa !important;
}

[data-equipment-index].eq-editing .eq-details {
	background: #fafafa !important;
}

/* Equipment chips for job history */
.eq-chip {
	display: inline-block;
	padding: 6px 10px;
	border-radius: 6px;
	border: 1px solid #f3e7b3;
	background: #fff9db;
}

.eq-chip-blue {
	display: inline-block;
	padding: 6px 10px;
	border-radius: 6px;
	border: 1px solid #bcd1f6;
	background: #e9f1ff;
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.eq-grid-header,
	.eq-row {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.eq-details {
		grid-template-columns: 1fr;
	}
}

/* ============================================================================
   AUTH FORMS - Forgot Password & Reset Password
   ============================================================================ */

.mcm-auth-container {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 400px;
	padding: 40px 20px;
	font-family: Arial, Helvetica, sans-serif;
}

.mcm-auth-box {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
	padding: 40px;
	width: 100%;
	max-width: 420px;
}

.mcm-auth-title {
	font-size: 24px;
	font-weight: 700;
	color: #1e3a5f;
	margin: 0 0 8px 0;
	text-align: center;
}

.mcm-auth-subtitle {
	font-size: 14px;
	color: #666;
	text-align: center;
	margin: 0 0 30px 0;
	line-height: 1.5;
}

.mcm-auth-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.mcm-form-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.mcm-form-group label {
	font-size: 14px;
	font-weight: 600;
	color: #333;
}

.mcm-form-group input {
	padding: 12px 14px;
	border: 1px solid #ddd;
	border-radius: 8px;
	font-size: 15px;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.mcm-form-group input:focus {
	outline: none;
	border-color: #1e3a5f;
	box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.1);
}

.mcm-form-group input.readonly,
.mcm-form-group input[readonly] {
	background: #f5f5f5;
	color: #666;
	cursor: not-allowed;
}

.mcm-field-hint {
	font-size: 12px;
	color: #888;
}

.mcm-auth-btn {
	padding: 14px 24px;
	background: #c41e3a;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s, transform 0.1s;
	margin-top: 10px;
}

.mcm-auth-btn:hover {
	background: #a31830;
}

.mcm-auth-btn:active {
	transform: scale(0.98);
}

.mcm-auth-btn:disabled {
	background: #ccc;
	cursor: not-allowed;
}

.mcm-form-message {
	padding: 12px 14px;
	border-radius: 6px;
	font-size: 14px;
	line-height: 1.4;
}

.mcm-form-message.success {
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.mcm-form-message.error {
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.mcm-auth-link {
	text-align: center;
	margin-top: 20px;
	font-size: 14px;
}

.mcm-auth-link a {
	color: #1e3a5f;
	text-decoration: none;
	font-weight: 500;
}

.mcm-auth-link a:hover {
	text-decoration: underline;
}

.mcm-auth-message {
	padding: 20px;
	background: #f8f9fa;
	border-radius: 8px;
	text-align: center;
}

.mcm-auth-message p {
	margin: 0;
	font-size: 15px;
	color: #555;
}

.mcm-auth-message a {
	color: #1e3a5f;
	font-weight: 500;
}

/* Responsive auth forms */
@media (max-width: 480px) {
	.mcm-auth-box {
		padding: 30px 20px;
	}

	.mcm-auth-title {
		font-size: 20px;
	}
}

/* ============================================================================
   HOVER MAPS - Leaflet map tooltips on address hover
   ============================================================================ */

.mcm-address-cell {
	cursor: pointer;
	position: relative;
}

.mcm-address-cell:hover {
	background-color: rgba(18, 101, 196, 0.08);
}

.mcm-map-tooltip {
	pointer-events: none;
	animation: mcm-map-fadein 0.15s ease-out;
}

@keyframes mcm-map-fadein {
	from { opacity: 0; transform: translateY(-5px); }
	to { opacity: 1; transform: translateY(0); }
}

.mcm-map-container {
	width: 300px;
	height: 200px;
	border: 2px solid #ccc;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.25);
	background: #f0f0f0;
}

.mcm-no-map-message {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 6px;
	padding: 12px 16px;
	font-size: 13px;
	color: #666;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

/* ============================================
   Square Payment Button - Tech Mobile
   ============================================ */
.tech-square-pay-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	padding: 16px 24px;
	background: linear-gradient(135deg, #006aff 0%, #0052cc 100%);
	color: white;
	border: none;
	border-radius: 8px;
	font-size: 18px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0, 106, 255, 0.3);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tech-square-pay-btn:active {
	transform: scale(0.98);
	box-shadow: 0 2px 8px rgba(0, 106, 255, 0.2);
}

.tech-square-pay-btn .square-icon {
	font-size: 22px;
	font-weight: bold;
}

.tech-square-note {
	text-align: center;
	margin-top: 12px;
	font-size: 13px;
	color: #666;
}

.tech-square-error {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px;
	margin-bottom: 16px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-radius: 6px;
	color: #dc2626;
	font-size: 13px;
}

.tech-square-error .error-icon {
	flex-shrink: 0;
}

.tech-square-paid {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 16px;
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 8px;
	color: #16a34a;
	font-size: 16px;
	font-weight: 600;
}