:root {  --hsl-bg-base: 210, 40%, 98%;          --hsl-bg-surface: 0, 0%, 100%;         --hsl-bg-card: 0, 0%, 100%;            --hsl-bg-card-hover: 210, 40%, 96%;    --hsl-bg-subtle: 210, 40%, 94%;        --hsl-border: 214, 32%, 88%;           --hsl-border-subtle: 214, 32%, 92%;    --hsl-border-active: 221, 83%, 53%;    --hsl-text-main: 222, 47%, 11%;        --hsl-text-muted: 215, 25%, 33%;       --hsl-text-dim: 215, 16%, 47%;         --hsl-primary: 221, 83%, 53%;          --hsl-primary-hover: 224, 76%, 46%;    --hsl-accent: 38, 92%, 48%;            --hsl-success: 160, 84%, 35%;          --hsl-warning: 38, 92%, 48%;           --hsl-danger: 0, 84%, 55%;             --hsl-info: 199, 89%, 44%;             --hsl-purple: 262, 83%, 54%;           --bg-main: hsl(var(--hsl-bg-base));  --bg-surface: hsl(var(--hsl-bg-surface));  --bg-card: hsl(var(--hsl-bg-card));  --bg-card-hover: hsl(var(--hsl-bg-card-hover));  --bg-subtle: hsl(var(--hsl-bg-subtle));  --border-color: hsla(var(--hsl-border), 0.95);  --border-subtle: hsla(var(--hsl-border-subtle), 0.9);  --border-focus: hsl(var(--hsl-primary));  --text-main: hsl(var(--hsl-text-main));  --text-muted: hsl(var(--hsl-text-muted));  --text-dim: hsl(var(--hsl-text-dim));  --text-inverse: #ffffff;  --primary: hsl(var(--hsl-primary));  --primary-hover: hsl(var(--hsl-primary-hover));  --accent: hsl(var(--hsl-accent));  --success: hsl(var(--hsl-success));  --warning: hsl(var(--hsl-warning));  --danger: hsl(var(--hsl-danger));  --info: hsl(var(--hsl-info));  --purple: hsl(var(--hsl-purple));  --radius-sm: 6px;  --radius-md: 10px;  --radius-lg: 14px;  --radius-xl: 18px;  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.07), 0 1px 2px rgba(0, 0, 0, 0.04);  --shadow-md: 0 4px 8px -2px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.04);  --shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, 0.12), 0 4px 8px -2px rgba(0, 0, 0, 0.05);  --shadow-glow-blue: 0 0 16px rgba(37, 99, 235, 0.2);  --shadow-glow-amber: 0 0 16px rgba(245, 158, 11, 0.2);  --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;  --font-mono: 'JetBrains Mono', monospace;}body.theme-dark {  --hsl-bg-base: 222, 47%, 9%;          --hsl-bg-surface: 222, 42%, 14%;       --hsl-bg-card: 222, 38%, 17%;          --hsl-bg-card-hover: 222, 34%, 22%;    --hsl-bg-subtle: 222, 47%, 6%;         --hsl-border: 220, 26%, 28%;           --hsl-border-subtle: 220, 26%, 20%;  --hsl-border-active: 221, 83%, 53%;  --hsl-text-main: 210, 40%, 98%;        --hsl-text-muted: 215, 20%, 65%;       --hsl-text-dim: 215, 16%, 48%;         --text-inverse: #ffffff;  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.35), 0 1px 2px rgba(0, 0, 0, 0.2);  --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.45), 0 2px 6px rgba(0, 0, 0, 0.25);  --shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.6), 0 4px 12px rgba(0, 0, 0, 0.35);}body.theme-dark .metric-card {  background: var(--bg-card) !important;  border-color: var(--border-color) !important;}body.theme-dark .metric-value,body.theme-dark .pane-title,body.theme-dark .brand-title,body.theme-dark .project-dropdown {  color: #f8fafc !important;}body.theme-dark .metric-label,body.theme-dark .pane-desc,body.theme-dark .brand-subtitle {  color: #94a3b8 !important;}* {  box-sizing: border-box;  margin: 0;  padding: 0;  -webkit-tap-highlight-color: transparent;}body {  font-family: var(--font-sans);  background-color: var(--bg-main);  color: var(--text-main);  line-height: 1.5;  min-height: 100vh;  display: flex;  flex-direction: column;  overflow-x: hidden;  transition: background-color 0.2s ease, color 0.2s ease;}:focus {  outline: none;}:focus-visible {  outline: 2px solid var(--primary);  outline-offset: 2px;  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.25);}body.theme-dark :focus-visible {  outline-color: #60a5fa;  box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.35);}.btn,.role-btn,.filter-chip,.sub-tab-btn,.tab-btn,.btn-preset-chip,.mobile-nav-item,.btn-status-toggle,.btn-sig-toggle,.stepper-btn,.photo-card-share-btn,.theme-toggle-btn,.modal-close-btn,.lightbox-nav-btn,.lightbox-action-btn,.btn-sync-now,.btn-switch-site,.btn-toggle-sm,.btn-whatsapp-sm,.btn-call-sm,.btn-toggle-dashboard,.fab-main-btn,.fab-item {  transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;  will-change: transform;  -webkit-tap-highlight-color: transparent;  user-select: none;}.btn:active,.role-btn:active,.filter-chip:active,.sub-tab-btn:active,.tab-btn:active,.btn-preset-chip:active,.btn-status-toggle:active,.btn-sig-toggle:active,.photo-card-share-btn:active,.theme-toggle-btn:active,.modal-close-btn:active,.btn-sync-now:active,.btn-switch-site:active,.btn-toggle-sm:active,.btn-whatsapp-sm:active,.btn-call-sm:active,.btn-toggle-dashboard:active {  transform: scale(0.97);}.btn:focus-visible,.role-btn:focus-visible,.filter-chip:focus-visible,.sub-tab-btn:focus-visible,.tab-btn:focus-visible,.btn-preset-chip:focus-visible,.mobile-nav-item:focus-visible,.fab-main-btn:focus-visible,.fab-item:focus-visible,.modal-close-btn:focus-visible,.btn-status-toggle:focus-visible,.btn-sig-toggle:focus-visible,.stepper-btn:focus-visible,.theme-toggle-btn:focus-visible,.btn-toggle-dashboard:focus-visible {  outline: 2px solid var(--primary);  outline-offset: 2px;  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.35);}.form-input:focus-visible,.search-input:focus-visible,.project-dropdown:focus-visible,.filter-dropdown:focus-visible,.input-date:focus-visible,.form-input-compact:focus-visible,.input-date-compact:focus-visible,.batch-row-input:focus-visible,.batch-row-select:focus-visible,.trade-note-input:focus-visible,.ot-hrs-input:focus-visible,.ot-rate-input:focus-visible,.stepper-input:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {  outline: 2px solid var(--primary);  outline-offset: 1px;  border-color: var(--primary) !important;  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);}.top-header {  background-color: var(--bg-surface);  border-bottom: 1px solid var(--border-color);  padding: 10px 20px;  display: flex;  justify-content: space-between;  align-items: center;  gap: 16px;  position: sticky;  top: 0;  z-index: 100;  box-shadow: var(--shadow-sm);}.header-left, .header-right {  display: flex;  align-items: center;  gap: 16px;  flex-wrap: wrap;}.brand-badge {  display: flex;  align-items: center;  gap: 10px;}.brand-icon {  font-size: 22px;  background: var(--warning);  width: 36px;  height: 36px;  display: flex;  align-items: center;  justify-content: center;  border-radius: var(--radius-sm);  color: var(--text-main);}.brand-text {  display: flex;  flex-direction: column;}.brand-title {  font-size: 16px;  font-weight: 800;  letter-spacing: 0.5px;  color: var(--text-main);}.brand-subtitle {  font-size: 11px;  color: var(--text-muted);  font-weight: 500;}.project-selector-wrapper {  display: flex;  align-items: center;  gap: 8px;  background: var(--bg-surface);  padding: 4px 10px;  border-radius: var(--radius-md);  border: 1px solid var(--border-color);}.project-selector-wrapper label {  font-size: 12px;  color: var(--text-muted);  white-space: nowrap;}.project-dropdown {  background: transparent;  color: var(--text-main);  border: none;  font-size: 13px;  font-weight: 600;  cursor: pointer;  outline: none;  max-width: 200px;}.project-dropdown option {  background: var(--bg-surface);  color: var(--text-main);}.role-switcher {  display: flex;  align-items: center;  gap: 8px;  background: var(--bg-card);  padding: 3px 6px;  border-radius: var(--radius-md);  border: 1px solid var(--border-color);}.role-label {  font-size: 11px;  color: var(--text-dim);  text-transform: uppercase;  font-weight: 700;}.role-toggle-group {  display: flex;  gap: 4px;}.role-btn {  background: transparent;  border: none;  color: var(--text-muted);  font-size: 12px;  font-weight: 600;  padding: 4px 10px;  border-radius: var(--radius-sm);  cursor: pointer;  transition: all 0.2s ease;}.role-btn.active {  background: var(--primary);  color: var(--text-inverse);}.network-header-badge {  display: inline-flex;  align-items: center;  gap: 6px;  padding: 4px 10px;  border-radius: var(--radius-sm);  font-size: 11.5px;  font-weight: 700;  font-family: var(--font-mono);  cursor: pointer;  transition: all 0.2s ease;  user-select: none;  border: 1px solid var(--border-color);}.network-header-badge.online {  background: rgba(5, 150, 105, 0.12);  border-color: rgba(5, 150, 105, 0.35);  color: #059669;}body.theme-dark .network-header-badge.online {  background: rgba(16, 185, 129, 0.15);  border-color: rgba(16, 185, 129, 0.4);  color: #34d399;}.network-header-badge.offline {  background: rgba(220, 38, 38, 0.12);  border-color: rgba(220, 38, 38, 0.4);  color: #dc2626;}body.theme-dark .network-header-badge.offline {  background: rgba(239, 68, 68, 0.2);  border-color: rgba(239, 68, 68, 0.5);  color: #f87171;}.network-header-badge.queued {  background: rgba(245, 158, 11, 0.15);  border-color: rgba(245, 158, 11, 0.45);  color: #d97706;}body.theme-dark .network-header-badge.queued {  background: rgba(245, 158, 11, 0.2);  border-color: rgba(245, 158, 11, 0.5);  color: #fbbf24;}.network-header-badge.syncing {  background: rgba(37, 99, 235, 0.15);  border-color: rgba(37, 99, 235, 0.45);  color: #2563eb;}body.theme-dark .network-header-badge.syncing {  background: rgba(59, 130, 246, 0.2);  border-color: rgba(59, 130, 246, 0.5);  color: #60a5fa;}.network-header-badge.weak-signal {  background: rgba(234, 179, 8, 0.15);  border-color: rgba(234, 179, 8, 0.45);  color: #ca8a04;}body.theme-dark .network-header-badge.weak-signal {  background: rgba(234, 179, 8, 0.2);  border-color: rgba(234, 179, 8, 0.5);  color: #facc15;}.network-header-dot {  width: 7px;  height: 7px;  border-radius: 50%;  background: currentColor;  display: inline-block;  flex-shrink: 0;}.network-header-badge.online .network-header-dot {  box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);  animation: pulse-green 2s infinite;}.network-header-badge.offline .network-header-dot,.network-header-badge.queued .network-header-dot {  box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);  animation: pulse-red 1.5s infinite;}.network-header-badge:hover {  filter: brightness(1.08);  transform: translateY(-1px);}.mobile-dashboard-toggle-bar {  display: none !important;}.master-dashboard-bar {  display: none !important;}.dashboard-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 10px 14px;  display: flex;  flex-direction: column;  justify-content: space-between;}.card-header-compact {  display: flex;  justify-content: space-between;  align-items: center;  margin-bottom: 8px;}.card-tag {  font-size: 10px;  font-weight: 700;  letter-spacing: 0.5px;  color: var(--text-dim);  text-transform: uppercase;}.status-live-dot {  font-size: 11px;  font-weight: 600;  color: var(--success);}.stages-stepper {  display: flex;  align-items: center;  justify-content: space-between;  gap: 6px;}.stage-step {  display: flex;  flex-direction: column;  align-items: center;  gap: 4px;}.step-num {  width: 22px;  height: 22px;  border-radius: 50%;  background: var(--border-color);  color: var(--text-muted);  font-size: 11px;  font-weight: 700;  display: flex;  align-items: center;  justify-content: center;}.stage-step.active .step-num {  background: var(--primary);  color: var(--text-inverse);  box-shadow: 0 0 8px rgba(37, 99, 235, 0.6);}.stage-step.done .step-num {  background: var(--success);  color: var(--text-inverse);}.step-label {  font-size: 10px;  color: var(--text-muted);  white-space: nowrap;}.step-divider {  flex: 1;  height: 2px;  background: var(--border-color);}.step-divider.done {  background: var(--success);}.time-countdown-box {  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  padding: 4px 0;}.time-digits {  font-family: var(--font-mono);  font-size: 20px;  font-weight: 700;  color: var(--accent);  letter-spacing: 1px;}.time-subtext {  font-size: 10px;  color: var(--text-dim);}.logs-header-title-group {  display: flex;  align-items: center;  gap: 8px;}.live-pulse-badge {  font-size: 9px;  font-weight: 700;  color: #34d399;  background: rgba(52, 211, 153, 0.12);  border: 1px solid rgba(52, 211, 153, 0.25);  padding: 1px 6px;  border-radius: 10px;  animation: pulseLive 2s infinite ease-in-out;  letter-spacing: 0.5px;}@keyframes pulseLive {  0%, 100% { opacity: 1; transform: scale(1); }  50% { opacity: 0.65; transform: scale(0.97); }}.logs-header-actions {  display: flex;  align-items: center;  gap: 6px;}.btn-test-error {  color: #f87171 !important;  border-color: rgba(248, 113, 113, 0.3) !important;}.btn-test-error:hover {  background: rgba(248, 113, 113, 0.15) !important;  color: var(--danger) !important;}.logs-controls-bar {  display: flex;  align-items: center;  justify-content: space-between;  gap: 6px;  margin-bottom: 6px;  flex-wrap: wrap;}.log-level-pills {  display: flex;  gap: 3px;}.log-pill {  background: var(--bg-subtle);  border: 1px solid var(--border-color);  color: var(--text-muted);  font-size: 9px;  font-weight: 700;  padding: 2px 6px;  border-radius: 4px;  cursor: pointer;  transition: all 0.15s ease;}.log-pill:hover {  border-color: var(--border-focus);  color: var(--text-main);}.log-pill.active {  background: var(--primary);  border-color: var(--primary);  color: var(--text-inverse);}.log-pill.pill-info.active {  background: var(--info);  border-color: var(--info);  color: var(--text-inverse);}.log-pill.pill-success.active {  background: var(--success);  border-color: var(--success);  color: var(--text-inverse);}.log-pill.pill-warn.active {  background: var(--warning);  border-color: var(--warning);  color: var(--text-inverse);}.log-pill.pill-error.active {  background: var(--danger);  border-color: var(--danger);  color: var(--text-inverse);  box-shadow: 0 0 6px rgba(220, 38, 38, 0.5);}.log-module-dropdown {  background: #090e1a;  border: 1px solid #334155;  color: #cbd5e1;  font-size: 9px;  font-weight: 600;  padding: 2px 6px;  border-radius: 4px;  cursor: pointer;  max-width: 110px;}.log-module-dropdown:focus {  outline: none;  border-color: #3b82f6;}.live-logs-terminal {  font-family: var(--font-mono);  font-size: 11px;  background: #090e1a;  border: 1px solid #1e293b;  border-radius: var(--radius-sm);  padding: 6px 10px;  height: 64px;  overflow-y: auto;  display: flex;  flex-direction: column;  gap: 3px;}.log-line {  white-space: nowrap;  overflow: hidden;  text-overflow: ellipsis;  padding: 1px 4px;  border-radius: 2px;  display: flex;  align-items: center;  gap: 6px;}.log-line.info {   color: #94a3b8; }.log-line.success {   color: #34d399; }.log-line.warning,.log-line.warn {   color: #fbbf24;   background: rgba(251, 191, 36, 0.05);}.log-line.error {   color: #fca5a5;  background: rgba(239, 68, 68, 0.16);  border-left: 2px solid #ef4444;  font-weight: 600;  animation: errorHighlightFlash 1.5s ease-out;}@keyframes errorHighlightFlash {  0% { background: rgba(239, 68, 68, 0.45); }  100% { background: rgba(239, 68, 68, 0.16); }}.log-badge-lvl {  font-size: 9px;  font-weight: 800;  padding: 1px 4px;  border-radius: 3px;  text-transform: uppercase;}.log-badge-lvl.error { background: var(--danger); color: var(--text-inverse); }.log-badge-lvl.warn { background: var(--warning); color: var(--text-inverse); }.log-badge-lvl.info { background: var(--info); color: var(--text-inverse); }.log-badge-lvl.success { background: var(--success); color: var(--text-inverse); }.log-mod-tag {  color: #38bdf8;  font-weight: 700;}.log-time {  color: var(--text-dim);  font-weight: 500;}.main-tabs-nav {  display: flex;  background: #0f172a;  border-bottom: 1px solid var(--border-color);  padding: 0 20px;  overflow-x: auto;  gap: 4px;}.tab-btn {  background: transparent;  border: none;  color: var(--text-muted);  font-size: 13px;  font-weight: 600;  padding: 12px 16px;  display: flex;  align-items: center;  gap: 8px;  cursor: pointer;  border-bottom: 2px solid transparent;  white-space: nowrap;  transition: all 0.2s ease;}.tab-btn:hover {  color: var(--primary);}.tab-btn.active {  color: #3b82f6;  border-bottom-color: #3b82f6;  background: rgba(59, 130, 246, 0.05);}.tab-badge {  background: var(--bg-subtle);  color: var(--text-main);  border: 1px solid var(--border-color);  font-size: 11px;  font-weight: 700;  padding: 2px 7px;  border-radius: 10px;}.main-container {  flex: 1;  padding: 20px;  max-width: 1400px;  width: 100%;  margin: 0 auto;}.tab-pane {  display: none;}.tab-pane.active {  display: block;  animation: fadeIn 0.2s ease;}@keyframes fadeIn {  from { opacity: 0; transform: translateY(4px); }  to { opacity: 1; transform: translateY(0); }}.pane-header {  display: flex;  justify-content: space-between;  align-items: center;  margin-bottom: 20px;  gap: 16px;  flex-wrap: wrap;}.pane-title {  font-size: 20px;  font-weight: 800;  color: var(--text-main);}.pane-desc {  font-size: 13px;  color: var(--text-muted);  margin-top: 2px;}.pane-actions {  display: flex;  gap: 10px;  align-items: center;  flex-wrap: wrap;}.metrics-grid {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));  gap: 16px;  margin-bottom: 24px;}.metric-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 16px;  display: flex;  align-items: center;  gap: 14px;}.metric-icon-box {  width: 46px;  height: 46px;  border-radius: var(--radius-md);  display: flex;  align-items: center;  justify-content: center;  font-size: 22px;  flex-shrink: 0;}.bg-blue { background: rgba(37, 99, 235, 0.2); }.bg-emerald { background: rgba(16, 185, 129, 0.2); }.bg-amber { background: rgba(245, 158, 11, 0.2); }.bg-purple { background: rgba(168, 85, 247, 0.2); }.bg-indigo { background: rgba(99, 102, 241, 0.2); }.metric-info {  display: flex;  flex-direction: column;  flex: 1;}.metric-label {  font-size: 12px;  color: var(--text-muted);  font-weight: 600;}.metric-value {  font-size: 20px;  font-weight: 800;  color: var(--text-main);  margin: 2px 0;}.metric-subtext {  font-size: 11px;  color: var(--text-dim);}.progress-bar-thin {  height: 6px;  background: var(--border-color);  border-radius: 3px;  overflow: hidden;  margin-top: 4px;}.progress-fill {  height: 100%;  background: var(--primary);  border-radius: 3px;}.analytics-section {  display: flex;  flex-direction: column;  gap: 20px;  margin-bottom: 24px;}.analytics-row-grid {  display: grid;  grid-template-columns: 1.15fr 0.85fr;  gap: 16px;}@media (max-width: 980px) {  .analytics-row-grid {    grid-template-columns: 1fr;  }}.analytics-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 18px 20px;  display: flex;  flex-direction: column;  gap: 16px;  box-shadow: var(--shadow-sm);  transition: border-color 0.2s ease, box-shadow 0.2s ease;}.analytics-card:hover {  border-color: var(--border-focus);}.analytics-card-header {  display: flex;  justify-content: space-between;  align-items: center;  gap: 12px;  flex-wrap: wrap;  padding-bottom: 12px;  border-bottom: 1px solid var(--border-color);}.analytics-card-title-group {  display: flex;  align-items: center;  gap: 12px;}.analytics-card-icon {  width: 38px;  height: 38px;  border-radius: var(--radius-sm);  display: flex;  align-items: center;  justify-content: center;  font-size: 18px;  flex-shrink: 0;}.bg-rose { background: rgba(244, 63, 94, 0.2); color: #fb7185; }.analytics-card-title {  font-size: 15px;  font-weight: 700;  color: var(--text-main);  letter-spacing: 0.2px;}.analytics-card-subtitle {  font-size: 11px;  color: var(--text-muted);}.analytics-card-actions {  display: flex;  align-items: center;  gap: 8px;}.analytics-badge {  font-size: 11px;  font-weight: 700;  padding: 3px 9px;  border-radius: 12px;  background: #334155;  color: #f8fafc;  display: inline-flex;  align-items: center;  gap: 4px;}.analytics-badge.badge-primary { background: rgba(37, 99, 235, 0.25); color: #60a5fa; border: 1px solid rgba(59, 130, 246, 0.4); }.analytics-badge.badge-success { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.3); }.analytics-badge.badge-warning { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.3); }.analytics-badge.badge-danger { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.3); }.spend-analytics-body {  display: grid;  grid-template-columns: 190px 1fr;  gap: 20px;  align-items: center;  min-height: 190px;}@media (max-width: 640px) {  .spend-analytics-body {    grid-template-columns: 1fr;  }}.donut-chart-container {  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  position: relative;}.donut-svg-wrapper {  position: relative;  width: 165px;  height: 165px;}.donut-svg {  width: 100%;  height: 100%;  transform: rotate(-90deg);}.donut-segment {  fill: none;  stroke-width: 20;  transition: stroke-width 0.25s ease, opacity 0.2s ease;  cursor: pointer;}.donut-segment:hover {  stroke-width: 24;  filter: drop-shadow(0 0 6px currentColor);}.donut-center-info {  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);  text-align: center;  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  pointer-events: none;  width: 100px;}.donut-center-label {  font-size: 10px;  font-weight: 700;  text-transform: uppercase;  color: var(--text-dim);  letter-spacing: 0.5px;}.donut-center-val {  font-size: 13px;  font-weight: 800;  color: var(--text-main);  margin-top: 1px;}.donut-center-sub {  font-size: 9px;  color: var(--text-muted);  max-width: 90px;  overflow: hidden;  text-overflow: ellipsis;  white-space: nowrap;}.spend-bars-list {  display: flex;  flex-direction: column;  gap: 10px;  max-height: 220px;  overflow-y: auto;  padding-right: 4px;}.spend-bar-row {  display: flex;  flex-direction: column;  gap: 4px;  padding: 4px 6px;  border-radius: var(--radius-sm);  transition: background 0.15s ease;}.spend-bar-row:hover {  background: var(--bg-card-hover);}.spend-bar-info {  display: flex;  justify-content: space-between;  align-items: center;  font-size: 12px;}.spend-bar-label-group {  display: flex;  align-items: center;  gap: 6px;  font-weight: 600;  color: var(--text-main);}.spend-cat-dot {  width: 8px;  height: 8px;  border-radius: 50%;  flex-shrink: 0;}.spend-bar-counts {  font-size: 10px;  color: var(--text-dim);  font-weight: 400;}.spend-bar-amounts {  display: flex;  align-items: center;  gap: 8px;  font-family: var(--font-mono);}.spend-bar-amount {  font-weight: 700;  color: var(--text-main);  font-size: 12px;}.spend-bar-pct {  font-size: 10px;  color: var(--text-muted);  background: #334155;  padding: 1px 5px;  border-radius: 4px;}.spend-track {  height: 6px;  background: #0f172a;  border-radius: 3px;  overflow: hidden;  position: relative;}.spend-fill {  height: 100%;  border-radius: 3px;  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);}.analytics-empty-state {  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  padding: 30px 20px;  text-align: center;  gap: 10px;  color: var(--text-muted);  grid-column: 1 / -1;  width: 100%;}.analytics-empty-icon {  font-size: 32px;  opacity: 0.6;}.analytics-empty-text {  font-size: 13px;}.burndown-analytics-body {  display: flex;  flex-direction: column;  gap: 14px;}.burndown-meter-box {  display: flex;  flex-direction: column;  gap: 6px;}.burndown-meter-header {  display: flex;  justify-content: space-between;  align-items: center;  font-size: 11px;  color: var(--text-muted);  font-weight: 600;}.burndown-bar-multi {  height: 14px;  background: #0f172a;  border-radius: 7px;  overflow: hidden;  display: flex;  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);  border: 1px solid rgba(255, 255, 255, 0.05);}.burndown-segment {  height: 100%;  transition: width 0.4s ease;  position: relative;}.burndown-segment.seg-completed { background: #10b981; }.burndown-segment.seg-in-progress { background: #3b82f6; }.burndown-segment.seg-todo { background: #64748b; }.burndown-segment.seg-delayed { background: #f43f5e; }.burndown-stat-grid {  display: grid;  grid-template-columns: repeat(4, 1fr);  gap: 8px;}@media (max-width: 500px) {  .burndown-stat-grid {    grid-template-columns: repeat(2, 1fr);  }}.burndown-stat-card {  background: rgba(15, 23, 42, 0.6);  border: 1px solid rgba(255, 255, 255, 0.06);  border-radius: var(--radius-sm);  padding: 8px 10px;  display: flex;  flex-direction: column;  gap: 2px;  transition: border-color 0.2s ease;}.burndown-stat-card:hover {  border-color: #475569;}.burndown-stat-card.stat-completed { border-left: 3px solid #10b981; }.burndown-stat-card.stat-inprogress { border-left: 3px solid #3b82f6; }.burndown-stat-card.stat-todo { border-left: 3px solid #64748b; }.burndown-stat-card.stat-delayed { border-left: 3px solid #f43f5e; }.burndown-stat-top {  display: flex;  justify-content: space-between;  align-items: center;}.burndown-stat-lbl {  font-size: 10px;  font-weight: 700;  text-transform: uppercase;  color: var(--text-dim);}.burndown-stat-num {  font-size: 16px;  font-weight: 800;  color: var(--text-main);  font-family: var(--font-mono);}.burndown-stat-pct {  font-size: 10px;  font-weight: 600;  color: var(--text-muted);}.burndown-attention-list {  display: flex;  flex-direction: column;  gap: 6px;  margin-top: 4px;}.burndown-attention-header {  font-size: 11px;  font-weight: 700;  text-transform: uppercase;  color: var(--text-dim);  display: flex;  align-items: center;  gap: 6px;}.burndown-attention-item {  background: var(--bg-subtle);  border: 1px solid rgba(244, 63, 94, 0.4);  border-radius: var(--radius-sm);  padding: 8px 12px;  display: flex;  justify-content: space-between;  align-items: center;  gap: 10px;  font-size: 12px;}.burndown-attention-left {  display: flex;  flex-direction: column;  gap: 2px;}.burndown-attention-title {  font-weight: 700;  color: var(--text-main);}.burndown-attention-meta {  font-size: 10px;  color: #f43f5e;  display: flex;  gap: 8px;}.vendor-alerts-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));  gap: 12px;}.vendor-alert-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  padding: 14px 16px;  display: flex;  flex-direction: column;  justify-content: space-between;  gap: 12px;  transition: transform 0.2s ease, border-color 0.2s ease;  position: relative;  overflow: hidden;}.vendor-alert-card::before {  content: '';  position: absolute;  top: 0;  left: 0;  width: 4px;  height: 100%;  background: #f59e0b;}.vendor-alert-card.high-balance::before {  background: #f43f5e;}.vendor-alert-card:hover {  transform: translateY(-2px);  border-color: #64748b;  box-shadow: var(--shadow-sm);}.vendor-alert-top {  display: flex;  justify-content: space-between;  align-items: flex-start;  gap: 8px;}.vendor-alert-name {  font-size: 14px;  font-weight: 700;  color: var(--text-main);  line-height: 1.3;}.vendor-alert-cat {  font-size: 10px;  color: var(--text-muted);  background: var(--bg-subtle);  border: 1px solid var(--border-color);  padding: 2px 6px;  border-radius: 4px;  display: inline-block;  margin-top: 2px;}.vendor-alert-balance-box {  text-align: right;  flex-shrink: 0;}.vendor-alert-balance-label {  font-size: 10px;  font-weight: 700;  text-transform: uppercase;  color: var(--text-dim);}.vendor-alert-balance-val {  font-size: 15px;  font-weight: 800;  color: #fbbf24;  font-family: var(--font-mono);}.vendor-alert-card.high-balance .vendor-alert-balance-val {  color: #f87171;}.vendor-alert-contact-row {  display: flex;  justify-content: space-between;  font-size: 11px;  color: var(--text-muted);  border-top: 1px solid var(--border-color);  padding-top: 8px;}.vendor-alert-actions {  display: grid;  grid-template-columns: 1fr auto;  gap: 8px;}.btn-whatsapp-sm {  background: #059669;  color: var(--text-inverse);  border: none;  font-size: 11px;  font-weight: 700;  padding: 7px 12px;  border-radius: var(--radius-sm);  display: inline-flex;  align-items: center;  justify-content: center;  gap: 6px;  text-decoration: none;  cursor: pointer;  transition: all 0.2s ease;}.btn-whatsapp-sm:hover {  background: #10b981;  transform: translateY(-1px);  color: var(--text-inverse);}.btn-call-sm {  background: var(--bg-subtle);  color: var(--text-main);  border: 1px solid var(--border-color);  font-size: 11px;  font-weight: 600;  padding: 7px 10px;  border-radius: var(--radius-sm);  display: inline-flex;  align-items: center;  justify-content: center;  gap: 4px;  text-decoration: none;  cursor: pointer;  transition: all 0.2s ease;}.btn-call-sm:hover {  background: var(--bg-card-hover);  color: var(--primary);  border-color: var(--primary);}.portfolio-header-actions {  display: flex;  align-items: center;  gap: 12px;}.view-toggle-group {  display: flex;  background: var(--bg-subtle);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  padding: 2px;  gap: 2px;}.btn-toggle-sm {  background: transparent;  border: none;  color: var(--text-muted);  font-size: 11px;  font-weight: 700;  padding: 4px 10px;  border-radius: 4px;  cursor: pointer;  transition: all 0.15s ease;}.btn-toggle-sm.active {  background: var(--primary);  color: var(--text-inverse);  box-shadow: 0 1px 4px rgba(37, 99, 235, 0.4);}.portfolio-kpi-bar {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));  gap: 12px;  margin-bottom: 16px;}.portfolio-kpi-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  padding: 10px 14px;  display: flex;  flex-direction: column;  gap: 2px;}.portfolio-kpi-lbl {  font-size: 10px;  font-weight: 700;  text-transform: uppercase;  color: var(--text-dim);  letter-spacing: 0.5px;}.portfolio-kpi-val {  font-size: 17px;  font-weight: 800;  color: var(--text-main);  font-family: var(--font-mono);}.portfolio-kpi-sub {  font-size: 10px;  color: var(--text-muted);}.portfolio-table {  width: 100%;  border-collapse: collapse;}.portfolio-table th {  padding: 10px 14px;  font-size: 11px;  text-transform: uppercase;  letter-spacing: 0.5px;  background: var(--bg-subtle);  color: var(--text-muted);  border-bottom: 1px solid var(--border-color);}.portfolio-table td {  padding: 12px 14px;  font-size: 12px;  border-bottom: 1px solid var(--border-subtle);  vertical-align: middle;}.portfolio-table tr {  transition: background 0.15s ease;}.portfolio-table tr:hover {  background: var(--bg-card-hover);}.portfolio-table tr.active-site-row {  background: rgba(37, 99, 235, 0.12);  border-left: 3px solid #3b82f6;}.portfolio-table tr.active-site-row td {  font-weight: 600;}.site-name-cell {  display: flex;  flex-direction: column;  gap: 2px;}.site-primary-name {  font-weight: 700;  color: var(--text-main);  display: flex;  align-items: center;  gap: 6px;}.active-site-badge {  background: var(--primary);  color: var(--text-inverse);  font-size: 9px;  font-weight: 800;  padding: 1px 5px;  border-radius: 10px;  text-transform: uppercase;}.site-client-meta {  font-size: 11px;  color: var(--text-dim);}.dual-progress-cell {  min-width: 140px;}.dual-progress-wrapper {  display: flex;  flex-direction: column;  gap: 4px;}.progress-header-text {  display: flex;  justify-content: space-between;  font-size: 11px;}.burn-rate-chip {  font-size: 11px;  font-weight: 700;  padding: 2px 6px;  border-radius: 4px;  background: #334155;  color: #f1f5f9;  display: inline-block;}.burn-rate-chip.burn-normal { color: #34d399; background: rgba(16, 185, 129, 0.15); }.burn-rate-chip.burn-warning { color: #fbbf24; background: rgba(245, 158, 11, 0.15); }.burn-rate-chip.burn-over { color: #f87171; background: rgba(239, 68, 68, 0.15); }.health-status-badge {  font-size: 10px;  font-weight: 700;  padding: 3px 8px;  border-radius: 12px;  display: inline-flex;  align-items: center;  gap: 4px;  white-space: nowrap;}.health-status-badge.status-ontrack { background: rgba(16, 185, 129, 0.18); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.3); }.health-status-badge.status-attention { background: rgba(245, 158, 11, 0.18); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.3); }.health-status-badge.status-delayed { background: rgba(239, 68, 68, 0.18); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.3); }.btn-switch-site {  background: rgba(37, 99, 235, 0.2);  color: #60a5fa;  border: 1px solid rgba(59, 130, 246, 0.4);  font-size: 11px;  font-weight: 700;  padding: 5px 10px;  border-radius: var(--radius-sm);  cursor: pointer;  transition: all 0.15s ease;  white-space: nowrap;}.btn-switch-site:hover {  background: var(--primary);  color: var(--text-inverse);}.content-section {  margin-top: 24px;}.section-header {  display: flex;  justify-content: space-between;  align-items: center;  margin-bottom: 14px;  flex-wrap: wrap;  gap: 10px;}.section-title {  font-size: 16px;  font-weight: 700;  color: var(--text-main);}.section-subtitle {  font-size: 12px;  color: var(--text-muted);  margin-top: 2px;}.section-badge {  background: var(--bg-subtle);  font-size: 11px;  font-weight: 600;  padding: 3px 8px;  border-radius: var(--radius-sm);  color: var(--text-muted);  border: 1px solid var(--border-color);}.projects-cards-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));  gap: 16px;}.project-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 16px;  cursor: pointer;  transition: all 0.2s ease;  display: flex;  flex-direction: column;  justify-content: space-between;}.project-card:hover {  border-color: var(--primary);  transform: translateY(-2px);  box-shadow: var(--shadow-md);}.project-card.active {  border-color: var(--primary);  background: var(--bg-subtle);}.proj-card-top {  display: flex;  justify-content: space-between;  align-items: flex-start;  margin-bottom: 10px;}.proj-code-badge {  font-size: 10px;  font-weight: 700;  font-family: var(--font-mono);  background: var(--bg-subtle);  padding: 2px 6px;  border-radius: 4px;  color: var(--text-muted);  border: 1px solid var(--border-color);}.proj-name {  font-size: 15px;  font-weight: 700;  color: var(--text-main);}.proj-location {  font-size: 12px;  color: var(--text-muted);}.proj-stats-row {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 8px;  margin: 12px 0;  font-size: 11px;  color: var(--text-muted);}.sub-tabs-bar {  display: flex;  gap: 8px;  border-bottom: 1px solid var(--border-color);  margin-bottom: 16px;  overflow-x: auto;}.sub-tab-btn {  background: transparent;  border: none;  color: var(--text-muted);  font-size: 13px;  font-weight: 600;  padding: 8px 14px;  cursor: pointer;  border-bottom: 2px solid transparent;  transition: all 0.2s ease;}.sub-tab-btn.active {  color: var(--primary);  border-bottom-color: var(--primary);  background: var(--bg-subtle);}.sub-pane {  display: none;}.sub-pane.active {  display: block;}.table-responsive {  width: 100%;  overflow-x: auto;  border-radius: var(--radius-md);  border: 1px solid var(--border-color);  background: var(--bg-surface);}.data-table {  width: 100%;  border-collapse: collapse;  text-align: left;  font-size: 13px;}.data-table th {  background: #0f172a;  color: var(--text-muted);  font-weight: 700;  padding: 12px 14px;  border-bottom: 1px solid var(--border-color);  white-space: nowrap;}.data-table td {  padding: 12px 14px;  border-bottom: 1px solid var(--border-color);  color: var(--text-main);}.data-table tr:hover {  background: var(--bg-card-hover);}.badge {  font-size: 11px;  font-weight: 700;  padding: 3px 8px;  border-radius: 4px;  display: inline-block;  letter-spacing: 0.3px;}.badge-pending { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }.badge-active { background: #dbeafe; color: #1e40af; border: 1px solid #bfdbfe; }.badge-approved { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }.badge-delivered { background: #e0f2fe; color: #0369a1; border: 1px solid #bae6fd; }.badge-rejected { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }.badge-urgent { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; font-weight: 800; }body.theme-dark .badge-pending { background: rgba(245, 158, 11, 0.18); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.35); }body.theme-dark .badge-active { background: rgba(59, 130, 246, 0.2); color: #93c5fd; border: 1px solid rgba(59, 130, 246, 0.4); }body.theme-dark .badge-approved { background: rgba(16, 185, 129, 0.2); color: #6ee7b7; border: 1px solid rgba(16, 185, 129, 0.4); }body.theme-dark .badge-delivered { background: rgba(59, 130, 246, 0.2); color: #93c5fd; border: 1px solid rgba(59, 130, 246, 0.4); }body.theme-dark .badge-rejected { background: rgba(239, 68, 68, 0.2); color: #fca5a5; border: 1px solid rgba(239, 68, 68, 0.4); }body.theme-dark .badge-urgent { background: rgba(239, 68, 68, 0.28); color: #fca5a5; border: 1px solid rgba(239, 68, 68, 0.5); }.thumb-bill {  width: 48px;  height: 48px;  border-radius: 4px;  border: 1px solid var(--border-color);  object-fit: cover;  cursor: pointer;  background: var(--bg-surface);}.filter-chips-bar {  display: flex;  gap: 8px;  overflow-x: auto;  overflow-y: hidden;  white-space: nowrap;  flex-wrap: nowrap;  -webkit-overflow-scrolling: touch;  touch-action: pan-x;  overscroll-behavior-x: contain;  scroll-behavior: smooth;  scrollbar-width: none;  -ms-overflow-style: none;  padding: 4px 2px 8px 2px;  margin-bottom: 12px;}.filter-chips-bar::-webkit-scrollbar {  display: none;}.filter-chip {  flex-shrink: 0;  display: inline-flex;  align-items: center;  gap: 6px;  background: var(--bg-surface);  border: 1.5px solid var(--border-color);  color: var(--text-muted);  font-size: 12.5px;  font-weight: 600;  padding: 6px 14px;  border-radius: 20px;  cursor: pointer;  white-space: nowrap;  user-select: none;  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);  min-height: 36px;}.filter-chip:hover {  background: var(--bg-card-hover);  color: var(--text-main);  border-color: var(--border-focus);}.filter-chip.active {  background: var(--primary);  color: var(--text-inverse) !important;  border-color: var(--primary);  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.35);  font-weight: 700;}.photos-gallery-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));  gap: 16px;}.photo-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md, 8px);  overflow: hidden;  display: flex;  flex-direction: column;  position: relative;  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;  cursor: pointer;}.photo-card:hover {  transform: translateY(-2px);  border-color: var(--primary, #2563eb);  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);}.photo-img-wrapper {  position: relative;  width: 100%;  aspect-ratio: 4 / 3;  background: #020617;  overflow: hidden;  cursor: pointer;}.photo-img-wrapper img {  width: 100%;  height: 100%;  object-fit: cover;  display: block;  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);}.photo-card:hover .photo-img-wrapper img {  transform: scale(1.05);}.photo-cat-badge {  position: absolute;  top: 8px;  left: 8px;  background: rgba(15, 23, 42, 0.88);  font-size: 11px;  font-weight: 700;  padding: 3px 8px;  border-radius: 6px;  color: #60a5fa;  border: 1px solid rgba(96, 165, 250, 0.3);  backdrop-filter: blur(6px);  text-transform: uppercase;  letter-spacing: 0.4px;  z-index: 2;  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);}.photo-info {  padding: 10px 12px;  display: flex;  flex-direction: column;  gap: 4px;  flex: 1;  justify-content: space-between;}.photo-caption {  font-size: 13px;  font-weight: 600;  color: var(--text-main, #f8fafc);  line-height: 1.35;  overflow: hidden;  display: -webkit-box;  -webkit-line-clamp: 2;  -webkit-box-orient: vertical;}.photo-meta {  font-size: 11px;  color: var(--text-dim, #94a3b8);  display: flex;  justify-content: space-between;  align-items: center;  gap: 6px;  margin-top: 4px;  flex-wrap: wrap;}.task-summary-kpis {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));  gap: 12px;  margin-bottom: 16px;}.task-kpi-badge {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 12px 14px;  display: flex;  flex-direction: column;  gap: 4px;  transition: transform 0.15s ease, box-shadow 0.15s ease;}.task-kpi-badge:hover {  transform: translateY(-2px);  box-shadow: var(--shadow-sm);}.task-kpi-num {  font-size: 22px;  font-weight: 800;  font-family: var(--font-mono);  color: var(--text-main);  line-height: 1.1;}.task-kpi-label {  font-size: 11px;  font-weight: 600;  color: var(--text-dim);  text-transform: uppercase;  letter-spacing: 0.4px;}.task-kpi-badge.kpi-inprogress .task-kpi-num { color: #2563eb; }.task-kpi-badge.kpi-delayed .task-kpi-num { color: #dc2626; }.task-kpi-badge.kpi-todo .task-kpi-num { color: #475569; }.task-kpi-badge.kpi-completed .task-kpi-num { color: #059669; }.task-kpi-badge.kpi-progress .task-kpi-num { color: #d97706; }body.theme-dark .task-kpi-badge.kpi-inprogress .task-kpi-num { color: #60a5fa; }body.theme-dark .task-kpi-badge.kpi-delayed .task-kpi-num { color: #f87171; }body.theme-dark .task-kpi-badge.kpi-todo .task-kpi-num { color: #94a3b8; }body.theme-dark .task-kpi-badge.kpi-completed .task-kpi-num { color: #34d399; }body.theme-dark .task-kpi-badge.kpi-progress .task-kpi-num { color: #fbbf24; }.task-filter-container {  display: flex;  gap: 12px;  align-items: center;  justify-content: space-between;  flex-wrap: wrap;  margin-bottom: 14px;}.task-search-box {  position: relative;  flex: 1;  min-width: 240px;}.task-search-icon {  position: absolute;  left: 12px;  top: 50%;  transform: translateY(-50%);  font-size: 14px;  color: var(--text-dim);  pointer-events: none;}.task-search-input {  width: 100%;  padding: 8px 36px 8px 34px;  background: var(--bg-surface);  border: 1.5px solid var(--border-color);  border-radius: var(--radius-md);  color: var(--text-main);  font-size: 13px;  transition: border-color 0.2s ease, box-shadow 0.2s ease;}.task-search-input:focus {  outline: none;  border-color: var(--border-focus);  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);}.task-search-clear-btn {  position: absolute;  right: 10px;  top: 50%;  transform: translateY(-50%);  background: none;  border: none;  color: var(--text-dim);  cursor: pointer;  font-size: 14px;  display: none;  padding: 4px;}.task-status-chips {  display: flex;  gap: 6px;  overflow-x: auto;  overflow-y: hidden;  white-space: nowrap;  flex-wrap: nowrap;  -webkit-overflow-scrolling: touch;  touch-action: pan-x;  scrollbar-width: none;  padding: 2px 0;}.task-status-chips::-webkit-scrollbar {  display: none;}.task-status-chips .filter-chip {  font-size: 12px;  font-weight: 600;  padding: 6px 12px;  border-radius: 20px;  background: var(--bg-surface);  border: 1.5px solid var(--border-color);  color: var(--text-muted);  cursor: pointer;  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);}.task-status-chips .filter-chip:hover {  background: var(--bg-card-hover);  color: var(--text-main);}.task-status-chips .filter-chip[data-status="All"].active {  background: #2563eb;  color: var(--text-inverse) !important;  border-color: #2563eb;  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.35);}.task-status-chips .filter-chip[data-status="in_progress"].active {  background: #1d4ed8;  color: var(--text-inverse) !important;  border-color: #1d4ed8;  box-shadow: 0 2px 6px rgba(29, 78, 216, 0.35);}.task-status-chips .filter-chip[data-status="delayed"].active {  background: #dc2626;  color: var(--text-inverse) !important;  border-color: #dc2626;  box-shadow: 0 2px 6px rgba(220, 38, 38, 0.35);}.task-status-chips .filter-chip[data-status="todo"].active {  background: #475569;  color: var(--text-inverse) !important;  border-color: #475569;  box-shadow: 0 2px 6px rgba(71, 85, 105, 0.35);}.task-status-chips .filter-chip[data-status="completed"].active {  background: #059669;  color: var(--text-inverse) !important;  border-color: #059669;  box-shadow: 0 2px 6px rgba(5, 150, 105, 0.35);}body.theme-dark .task-status-chips .filter-chip {  background: #1a253a;  border-color: #334155;  color: #cbd5e1;}body.theme-dark .task-status-chips .filter-chip:hover {  background: var(--bg-card-hover);  color: var(--text-main);}body.theme-dark .task-status-chips .filter-chip[data-status="All"].active {  background: #3b82f6;  border-color: #60a5fa;  color: var(--text-inverse) !important;  box-shadow: 0 0 12px rgba(59, 130, 246, 0.4);}body.theme-dark .task-status-chips .filter-chip[data-status="in_progress"].active {  background: #2563eb;  border-color: #60a5fa;  color: var(--text-inverse) !important;  box-shadow: 0 0 12px rgba(37, 99, 235, 0.4);}body.theme-dark .task-status-chips .filter-chip[data-status="delayed"].active {  background: #ef4444;  border-color: #f87171;  color: var(--text-inverse) !important;  box-shadow: 0 0 12px rgba(239, 68, 68, 0.4);}body.theme-dark .task-status-chips .filter-chip[data-status="todo"].active {  background: #64748b;  border-color: #94a3b8;  color: var(--text-inverse) !important;  box-shadow: 0 0 12px rgba(100, 116, 139, 0.4);}body.theme-dark .task-status-chips .filter-chip[data-status="completed"].active {  background: #10b981;  border-color: #34d399;  color: var(--text-inverse) !important;  box-shadow: 0 0 12px rgba(16, 185, 129, 0.4);}.task-trades-bar {  background: var(--bg-subtle);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 12px 14px;  margin-bottom: 16px;  position: relative;}.task-trades-title {  display: flex;  align-items: center;  justify-content: space-between;  margin-bottom: 8px;  font-size: 11.5px;  font-weight: 700;  color: var(--text-dim);  text-transform: uppercase;  letter-spacing: 0.5px;}.task-trades-bar .filter-chips-bar {  margin-bottom: 0;  padding-bottom: 4px;}.tasks-list {  display: flex;  flex-direction: column;  gap: 14px;}.task-item-card {  background: var(--bg-surface);  border: 1.5px solid var(--border-color);  border-radius: var(--radius-md);  padding: 16px;  display: flex;  flex-direction: column;  gap: 12px;  box-shadow: var(--shadow-sm);  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;}.task-item-card:hover {  transform: translateY(-1px);  border-color: var(--border-focus);  box-shadow: var(--shadow-md);}.task-item-header {  display: flex;  justify-content: space-between;  align-items: flex-start;  gap: 12px;}.task-title {  font-size: 15px;  font-weight: 700;  color: var(--text-main);  line-height: 1.3;}.task-category-pill {  font-size: 11px;  font-weight: 600;  background: var(--bg-subtle);  border: 1px solid var(--border-color);  padding: 3px 8px;  border-radius: 4px;  color: var(--text-muted);  display: inline-flex;  align-items: center;  gap: 4px;}.task-slider-container {  position: relative;  width: 100%;  display: flex;  flex-direction: column;  gap: 6px;  margin: 4px 0;}.task-slider-bubble-track {  position: relative;  width: calc(100% - 68px);  height: 22px;  pointer-events: none;}.task-slider-bubble {  position: absolute;  top: 0;  transform: translateX(-50%);  background: var(--text-main);  color: var(--text-inverse);  font-family: var(--font-mono);  font-size: 11px;  font-weight: 800;  padding: 2px 7px;  border-radius: 5px;  white-space: nowrap;  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);  transition: background-color 0.2s ease, left 0.05s linear;  pointer-events: none;  line-height: 1.2;}.task-slider-bubble::after {  content: '';  position: absolute;  top: 100%;  left: 50%;  transform: translateX(-50%);  border-width: 4px;  border-style: solid;  border-color: var(--text-main) transparent transparent transparent;}body.theme-dark .task-slider-bubble {  background: var(--primary);  color: var(--text-inverse);  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);}body.theme-dark .task-slider-bubble::after {  border-color: var(--primary) transparent transparent transparent;}.task-slider-row {  display: flex;  align-items: center;  gap: 14px;  width: 100%;}.task-range-slider {  -webkit-appearance: none;  appearance: none;  flex: 1;  height: 10px;  border-radius: 6px;  background: linear-gradient(to right, #2563eb 0%, #3b82f6 var(--range-progress, 0%), #e2e8f0 var(--range-progress, 0%), #e2e8f0 100%);  outline: none;  cursor: pointer;  transition: background 0.08s ease;}body.theme-dark .task-range-slider {  background: linear-gradient(to right, #2563eb 0%, #3b82f6 var(--range-progress, 0%), #334155 var(--range-progress, 0%), #334155 100%);}.task-range-slider::-webkit-slider-thumb {  -webkit-appearance: none;  appearance: none;  width: 26px;  height: 26px;  border-radius: 50%;  background: #2563eb;  border: 3.5px solid #ffffff;  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(37, 99, 235, 0.3);  cursor: grab;  transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s ease, background-color 0.15s ease;}.task-range-slider::-webkit-slider-thumb:hover {  transform: scale(1.15);  box-shadow: 0 3px 12px rgba(37, 99, 235, 0.5), 0 0 0 2px rgba(37, 99, 235, 0.4);}.task-range-slider:active::-webkit-slider-thumb {  cursor: grabbing;  transform: scale(1.22);  background: #1d4ed8;  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.6), 0 0 0 3px rgba(37, 99, 235, 0.5);}.task-range-slider::-moz-range-thumb {  width: 26px;  height: 26px;  border-radius: 50%;  background: #2563eb;  border: 3.5px solid #ffffff;  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(37, 99, 235, 0.3);  cursor: grab;  transition: transform 0.15s ease, box-shadow 0.15s ease;}.task-range-slider::-moz-range-thumb:hover {  transform: scale(1.15);  box-shadow: 0 3px 12px rgba(37, 99, 235, 0.5);}.task-percent-badge {  font-family: var(--font-mono);  font-size: 14px;  font-weight: 800;  color: var(--primary);  min-width: 52px;  text-align: right;  padding: 3px 8px;  border-radius: 6px;  background: var(--bg-subtle);  border: 1px solid var(--border-color);  line-height: 1.2;}.task-percent-badge.complete {  color: #059669;  background: rgba(16, 185, 129, 0.12);  border-color: rgba(16, 185, 129, 0.3);}body.theme-dark .task-percent-badge.complete {  color: #34d399;  background: rgba(16, 185, 129, 0.2);  border-color: rgba(16, 185, 129, 0.4);}.task-meta-footer {  display: flex;  justify-content: space-between;  align-items: center;  font-size: 12px;  color: var(--text-muted);  border-top: 1px solid var(--border-color);  padding-top: 10px;  flex-wrap: wrap;  gap: 8px;}.dpr-sheet {  background: var(--bg-surface);  color: var(--text-main);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 30px;  box-shadow: var(--shadow-lg);  max-width: 900px;  margin: 0 auto;}.dpr-sheet-header {  display: flex;  justify-content: space-between;  border-bottom: 2px solid #0f172a;  padding-bottom: 16px;  margin-bottom: 20px;  flex-wrap: wrap;  gap: 16px;}.dpr-logo {  font-size: 24px;  font-weight: 900;  color: #1e3a8a;  display: block;}.dpr-sub {  font-size: 12px;  font-weight: 700;  color: #64748b;  letter-spacing: 0.5px;}.dpr-meta {  font-size: 13px;  display: flex;  flex-direction: column;  gap: 4px;  text-align: right;}.dpr-section {  margin-bottom: 20px;}.dpr-section-title {  font-size: 14px;  font-weight: 800;  color: #1e3a8a;  text-transform: uppercase;  margin-bottom: 8px;  border-bottom: 1px solid #e2e8f0;  padding-bottom: 4px;}.dpr-summary-box {  width: 100%;  padding: 10px;  border: 1px solid #cbd5e1;  border-radius: 4px;  font-size: 13px;  color: #0f172a;  font-family: inherit;  resize: vertical;}.dpr-items-grid, .dpr-tasks-grid, .dpr-materials-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));  gap: 10px;  font-size: 12px;}.dpr-pill-item {  background: #f1f5f9;  padding: 8px 12px;  border-radius: 4px;  border: 1px solid #e2e8f0;}.dpr-photos-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));  gap: 12px;}.dpr-photo-box {  border: 1px solid #cbd5e1;  border-radius: 4px;  overflow: hidden;}.dpr-photo-box img {  width: 100%;  height: 120px;  object-fit: cover;}.dpr-photo-caption {  font-size: 11px;  padding: 4px 6px;  background: #f8fafc;  color: #334155;}.vendors-controls {  display: flex;  gap: 12px;  margin-bottom: 20px;  flex-wrap: wrap;}.search-input {  flex: 1;  min-width: 250px;  background: var(--bg-surface);  border: 1px solid var(--border-color);  color: var(--text-main);  padding: 10px 14px;  border-radius: var(--radius-sm);  font-size: 13px;}.vendors-cards-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));  gap: 16px;}.vendor-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 16px;  display: flex;  flex-direction: column;  justify-content: space-between;  gap: 12px;}.vendor-card-header {  display: flex;  justify-content: space-between;  align-items: flex-start;}.vendor-name {  font-size: 15px;  font-weight: 700;  color: var(--text-main);}.vendor-category {  font-size: 11px;  font-weight: 600;  color: var(--accent);}.vendor-contact {  font-size: 12px;  color: var(--text-muted);}.vendor-financials {  display: flex;  justify-content: space-between;  font-size: 12px;  background: var(--bg-subtle);  color: var(--text-main);  border: 1px solid var(--border-color);  padding: 8px 10px;  border-radius: 4px;}.vendor-actions {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 8px;}.btn-call {  background: #16a34a;  color: var(--text-inverse);  border: none;  padding: 8px;  border-radius: var(--radius-sm);  font-size: 12px;  font-weight: 700;  cursor: pointer;  display: flex;  align-items: center;  justify-content: center;  gap: 6px;  text-decoration: none;}.btn-call:hover {  background: #15803d;}.btn-whatsapp {  background: #25d366;  color: var(--text-inverse);  border: none;  padding: 8px;  border-radius: var(--radius-sm);  font-size: 12px;  font-weight: 700;  cursor: pointer;  display: flex;  align-items: center;  justify-content: center;  gap: 6px;  text-decoration: none;}.btn-whatsapp:hover {  background: #1eb857;}.btn {  font-family: inherit;  font-size: 13px;  font-weight: 600;  padding: 8px 16px;  border-radius: var(--radius-sm);  border: none;  cursor: pointer;  display: inline-flex;  align-items: center;  justify-content: center;  gap: 8px;  transition: all 0.2s ease;  text-decoration: none;}.btn-sm {  padding: 6px 12px;  font-size: 12px;}.btn-xs {  padding: 2px 7px;  font-size: 11px;  font-weight: 600;  border-radius: 4px;  min-height: 24px;  line-height: 1.2;}.btn-primary {  background: var(--primary);  color: var(--text-inverse);}.btn-primary:hover {  background: var(--primary-hover);}.btn-outline {  background: transparent;  border: 1px solid var(--border-color);  color: var(--text-main);}.btn-outline:hover {  background: var(--bg-card-hover);  border-color: var(--primary);  color: var(--primary);}.btn-success {  background: #16a34a;  color: var(--text-inverse);}.btn-text-xs {  background: transparent;  border: none;  color: var(--text-muted);  font-size: 10px;  cursor: pointer;}.input-date {  background: var(--bg-surface);  border: 1px solid var(--border-color);  color: var(--text-main);  padding: 7px 10px;  border-radius: var(--radius-sm);  font-size: 13px;}.form-group {  margin-bottom: 14px;  display: flex;  flex-direction: column;  gap: 6px;}.form-group label {  font-size: 12px;  font-weight: 600;  color: var(--text-muted);}.form-input {  background: var(--bg-surface);  border: 1px solid var(--border-color);  color: var(--text-main);  padding: 9px 12px;  border-radius: var(--radius-sm);  font-size: 13px;  font-family: inherit;  width: 100%;}.form-input:focus {  outline: none;  border-color: var(--border-focus);}.form-row {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));  gap: 12px;}.image-preview-box {  width: 100%;  height: 140px;  background: var(--bg-subtle);  border: 1px dashed var(--border-color);  border-radius: var(--radius-sm);  display: flex;  align-items: center;  justify-content: center;  overflow: hidden;  margin-top: 6px;}.image-preview-box img {  max-width: 100%;  max-height: 100%;  object-fit: contain;}.modal-overlay {  position: fixed;  top: 0;  left: 0;  width: 100vw;  height: 100vh;  background: rgba(0, 0, 0, 0.75);  display: none;  align-items: center;  justify-content: center;  z-index: 1000;  backdrop-filter: blur(4px);  padding: 16px;}.modal-overlay.active {  display: flex;}.modal-container {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-lg);  width: 100%;  max-width: 580px;  max-height: 90vh;  overflow-y: auto;  box-shadow: var(--shadow-lg);  animation: modalPop 0.2s ease;}@keyframes modalPop {  from { opacity: 0; transform: scale(0.95); }  to { opacity: 1; transform: scale(1); }}.modal-header {  padding: 16px 20px;  border-bottom: 1px solid var(--border-color);  display: flex;  justify-content: space-between;  align-items: center;}.modal-title {  font-size: 16px;  font-weight: 800;  color: var(--text-main);}.modal-close {  background: transparent;  border: none;  color: var(--text-muted);  font-size: 24px;  cursor: pointer;  line-height: 1;}.modal-body {  padding: 20px;}.modal-footer {  padding: 14px 20px;  border-top: 1px solid var(--border-color);  display: flex;  justify-content: flex-end;  gap: 10px;}.lightbox-overlay {  background: rgba(8, 12, 22, 0.95);  backdrop-filter: blur(10px);  position: fixed;  top: 0;  left: 0;  width: 100vw;  height: 100vh;  display: none;  align-items: center;  justify-content: center;  z-index: 99999;  padding: 16px;}.lightbox-overlay.active {  display: flex;}.lightbox-wrapper {  position: relative;  max-width: 96vw;  max-height: 94vh;  width: 1060px;  display: flex;  flex-direction: column;  background: #0f172a;  border: 1px solid rgba(255, 255, 255, 0.15);  border-radius: var(--radius-lg, 12px);  box-shadow: 0 25px 60px -12px rgba(0, 0, 0, 0.85);  overflow: hidden;  animation: lightboxPop 0.2s cubic-bezier(0.16, 1, 0.3, 1);}@keyframes lightboxPop {  from { opacity: 0; transform: scale(0.95); }  to { opacity: 1; transform: scale(1); }}.lightbox-header {  display: flex;  justify-content: space-between;  align-items: center;  padding: 12px 20px;  background: rgba(15, 23, 42, 0.95);  border-bottom: 1px solid rgba(255, 255, 255, 0.1);  z-index: 10;}.lightbox-header-left {  display: flex;  align-items: center;  gap: 12px;}.lightbox-badge {  background: var(--primary);  color: var(--text-inverse);  font-size: 12px;  font-weight: 700;  padding: 3px 10px;  border-radius: 9999px;  text-transform: uppercase;  letter-spacing: 0.5px;}.lightbox-counter {  color: #94a3b8;  font-size: 13px;  font-weight: 600;}.lightbox-header-actions {  display: flex;  align-items: center;  gap: 8px;}.lightbox-action-btn {  background: rgba(255, 255, 255, 0.1);  border: 1px solid rgba(255, 255, 255, 0.2);  color: var(--text-inverse);  font-size: 12px;  font-weight: 600;  padding: 6px 12px;  border-radius: var(--radius-sm, 6px);  cursor: pointer;  text-decoration: none;  display: inline-flex;  align-items: center;  gap: 6px;  transition: all 0.2s ease;}.lightbox-action-btn:hover {  background: rgba(255, 255, 255, 0.25);  color: var(--text-inverse);  transform: translateY(-1px);}.lightbox-close {  background: transparent;  border: none;  color: #94a3b8;  font-size: 28px;  line-height: 1;  cursor: pointer;  padding: 0 4px;  margin-left: 6px;  display: flex;  align-items: center;  justify-content: center;  transition: all 0.15s ease;}.lightbox-close:hover {  color: #ef4444;  transform: scale(1.15);}.lightbox-stage {  position: relative;  display: flex;  align-items: center;  justify-content: center;  min-height: 340px;  max-height: 70vh;  background: #020617;  overflow: hidden;}.lightbox-img-container {  display: flex;  align-items: center;  justify-content: center;  width: 100%;  height: 100%;  max-height: 68vh;  padding: 12px;}.lightbox-img-container img {  max-width: 100%;  max-height: 66vh;  object-fit: contain;  border-radius: 4px;  user-select: none;  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);}.lightbox-nav-btn {  position: absolute;  top: 50%;  transform: translateY(-50%);  background: rgba(15, 23, 42, 0.85);  color: var(--text-inverse);  border: 1px solid rgba(255, 255, 255, 0.25);  width: 46px;  height: 46px;  border-radius: 50%;  display: flex;  align-items: center;  justify-content: center;  font-size: 20px;  cursor: pointer;  z-index: 20;  transition: all 0.2s ease;  user-select: none;  backdrop-filter: blur(6px);}.lightbox-nav-btn:hover {  background: var(--primary, #2563eb);  border-color: var(--primary, #2563eb);  transform: translateY(-50%) scale(1.1);  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.4);}.lightbox-nav-prev {  left: 16px;}.lightbox-nav-next {  right: 16px;}.lightbox-footer {  padding: 12px 20px;  background: rgba(15, 23, 42, 0.98);  border-top: 1px solid rgba(255, 255, 255, 0.1);  display: flex;  flex-direction: column;  gap: 4px;}.lightbox-caption {  color: #f8fafc;  font-size: 14px;  font-weight: 600;  line-height: 1.4;}.lightbox-meta {  color: #94a3b8;  font-size: 12px;  display: flex;  gap: 16px;  flex-wrap: wrap;}.photo-card-share-btn {  position: absolute;  bottom: 8px;  right: 8px;  background: rgba(37, 211, 102, 0.95);  color: var(--text-inverse);  border: none;  border-radius: 50%;  width: 32px;  height: 32px;  display: flex;  align-items: center;  justify-content: center;  font-size: 14px;  cursor: pointer;  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);  transition: transform 0.2s ease, background 0.2s ease;}.photo-card-share-btn:hover {  background: #25d366;  transform: scale(1.12);}body.role-engineer .col-financial,body.role-engineer .col-financial-row,body.role-engineer .col-owner-only,body.role-engineer #metricSpendCard {  display: none !important;}.toast-container {  position: fixed;  bottom: 24px;  right: 24px;  display: flex;  flex-direction: column;  gap: 8px;  z-index: 2000;}.toast {  background: var(--bg-surface);  border: 1px solid var(--border-color);  color: var(--text-main);  padding: 10px 16px;  border-radius: var(--radius-sm);  font-size: 13px;  box-shadow: var(--shadow-lg);  display: flex;  align-items: center;  gap: 8px;  animation: slideIn 0.2s ease;}@keyframes slideIn {  from { transform: translateX(100%); opacity: 0; }  to { transform: translateX(0); opacity: 1; }}@media print {  body { background: #fff !important; color: #000 !important; }  .top-header, .master-dashboard-bar, .main-tabs-nav, .pane-actions, .mobile-nav,   .quick-action-bar, .floating-actions, .toast-container, .tab-header, .btn,  .modal-close, .modal-footer, #toastContainer, .offline-sync-banner,  .modal-overlay:not(#paymentVoucherModal):not(#vendorLedgerModal) {     display: none !important;   }  .tab-pane:not(.active) { display: none !important; }  .tab-pane.active { display: block !important; padding: 0 !important; }  .dpr-sheet {     box-shadow: none !important;     padding: 0 !important;     max-width: 100% !important;     border: none !important;   }  .dpr-section {     break-inside: avoid !important;     page-break-inside: avoid !important;     margin-bottom: 20px !important;  }  .dpr-summary-box {    border: none !important;    padding: 0 !important;    background: transparent !important;    font-size: 14px !important;  }  .dpr-photos-grid {     grid-template-columns: repeat(3, 1fr) !important;   }  #paymentVoucherModal.active,  #vendorLedgerModal.active {    display: block !important;    position: static !important;    background: transparent !important;    padding: 0 !important;    margin: 0 !important;    width: 100% !important;    height: auto !important;    overflow: visible !important;    z-index: auto !important;  }  #paymentVoucherModal.active .modal-container,  #vendorLedgerModal.active .modal-container {    background: #ffffff !important;    color: #0f172a !important;    box-shadow: none !important;    border: none !important;    padding: 0 !important;    margin: 0 !important;    max-width: 100% !important;    width: 100% !important;  }  #paymentVoucherModal.active .modal-header,  #vendorLedgerModal.active .modal-header,  #vendorLedgerModal.active .ledger-actions-bar {    display: none !important;  }  #paymentVoucherModal.active .modal-body,  #vendorLedgerModal.active .modal-body {    background: #ffffff !important;    color: #0f172a !important;    padding: 0 !important;    max-height: none !important;    overflow: visible !important;  }  .voucher-sheet {    box-shadow: none !important;    border: 1.5px solid #0f172a !important;    border-radius: 4px !important;    padding: 24px !important;    max-width: 100% !important;    margin: 0 auto !important;    background: #ffffff !important;    color: #0f172a !important;    page-break-inside: avoid !important;    break-inside: avoid !important;  }  .voucher-amount-panel {    background: #f0fdf4 !important;    border: 1.5px solid #86efac !important;    -webkit-print-color-adjust: exact !important;    print-color-adjust: exact !important;  }  .voucher-summary-table th {    background: #f1f5f9 !important;    color: #0f172a !important;    -webkit-print-color-adjust: exact !important;    print-color-adjust: exact !important;  }  .voucher-signatures-grid {    page-break-inside: avoid !important;    break-inside: avoid !important;  }}.analytics-charts-grid {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));  gap: 16px;  margin-bottom: 24px;}.analytics-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 16px;  display: flex;  flex-direction: column;  justify-content: space-between;}.analytics-card-header {  display: flex;  justify-content: space-between;  align-items: center;  margin-bottom: 14px;}.analytics-card-title {  font-size: 14px;  font-weight: 700;  color: var(--text-main);}.analytics-badge {  background: #334155;  font-size: 11px;  font-weight: 700;  padding: 3px 8px;  border-radius: 4px;  color: #94a3b8;}.category-bars-list {  display: flex;  flex-direction: column;  gap: 10px;}.cat-bar-item {  display: flex;  flex-direction: column;  gap: 4px;}.cat-bar-header {  display: flex;  justify-content: space-between;  font-size: 12px;  color: var(--text-muted);}.cat-bar-header strong {  color: var(--text-main);}.task-health-meter {  display: grid;  grid-template-columns: repeat(4, 1fr);  gap: 8px;  background: #0f172a;  padding: 12px 8px;  border-radius: var(--radius-sm);  text-align: center;}.health-stat-box {  display: flex;  flex-direction: column;  gap: 2px;}.health-num {  font-size: 18px;  font-weight: 800;  font-family: var(--font-mono);}.health-lbl {  font-size: 10px;  color: var(--text-dim);  text-transform: uppercase;  font-weight: 600;}.text-emerald { color: #10b981; }.text-blue { color: #3b82f6; }.text-amber { color: #f59e0b; }.text-rose { color: #f43f5e; }.w-100 { width: 100%; }.mt-2 { margin-top: 8px; }.mt-3 { margin-top: 12px; }.mobile-bottom-nav {  display: none;}@media (max-width: 768px) {  .mobile-bottom-nav {    display: flex;    position: fixed;    bottom: 0;    left: 0;    right: 0;    height: 66px;    background: rgba(11, 17, 32, 0.96);    backdrop-filter: blur(16px);    -webkit-backdrop-filter: blur(16px);    border-top: 1px solid var(--border-color);    z-index: 900;    justify-content: space-around;    align-items: center;    padding: 0 4px;    padding-bottom: max(6px, env(safe-area-inset-bottom, 0));    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.45);  }  .mobile-nav-item {    display: flex;    flex-direction: column;    align-items: center;    justify-content: center;    background: transparent;    border: none;    color: var(--text-dim);    font-size: 10.5px;    font-weight: 700;    min-width: 48px;    min-height: 48px;    flex: 1;    cursor: pointer;    position: relative;    padding: 6px 2px;    transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), color 0.15s ease;    border-radius: var(--radius-sm);    text-decoration: none;    -webkit-tap-highlight-color: transparent;    touch-action: manipulation;  }  .mobile-nav-item:active {    transform: scale(0.95);  }  .mobile-nav-item.active {    color: #60a5fa;  }  .mobile-nav-item.active .mobile-nav-icon {    transform: scale(1.18);    filter: drop-shadow(0 2px 6px rgba(59, 130, 246, 0.5));  }  .mobile-nav-icon {    font-size: 19px;    line-height: 1.2;    margin-bottom: 2px;    transition: transform 0.2s ease, filter 0.2s ease;  }  .mobile-nav-label {    font-size: 10px;    letter-spacing: 0.2px;    line-height: 1;  }  .mobile-nav-badge {    position: absolute;    top: 3px;    right: calc(50% - 18px);    background: var(--danger);    color: var(--text-inverse);    font-size: 9px;    font-weight: 800;    padding: 1px 5px;    border-radius: 10px;    min-width: 16px;    text-align: center;    border: 1.5px solid #0b1120;    line-height: 1.2;  }  .main-tabs-nav {    display: none !important;   }  .main-container {    padding-bottom: 96px !important;   }}.fab-speed-dial-container {  position: fixed;  bottom: 24px;  right: 24px;  z-index: 950;  display: flex;  flex-direction: column-reverse;  align-items: flex-end;  pointer-events: none;}@media (max-width: 768px) {  .fab-speed-dial-container {    bottom: 76px;     right: 16px;  }}.fab-backdrop {  position: fixed;  top: 0;  left: 0;  width: 100vw;  height: 100vh;  background: rgba(15, 23, 42, 0.72);  backdrop-filter: blur(4px);  -webkit-backdrop-filter: blur(4px);  z-index: 940;  opacity: 0;  pointer-events: none;  transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);}.fab-speed-dial-container.open .fab-backdrop {  opacity: 1;  pointer-events: auto;}.fab-main-btn {  pointer-events: auto;  width: 58px;  height: 58px;  border-radius: 50%;  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);  border: 2px solid rgba(255, 255, 255, 0.25);  color: var(--text-inverse);  font-size: 24px;  display: flex;  align-items: center;  justify-content: center;  cursor: pointer;  box-shadow: 0 8px 24px rgba(37, 99, 235, 0.5), 0 2px 6px rgba(0, 0, 0, 0.35);  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);  z-index: 960;  touch-action: manipulation;  user-select: none;}.fab-main-btn:hover {  transform: scale(1.08);  box-shadow: 0 10px 28px rgba(37, 99, 235, 0.65);}.fab-main-btn:active {  transform: scale(0.92);}.fab-main-icon {  display: inline-block;  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);  font-size: 24px;  line-height: 1;}.fab-speed-dial-container.open .fab-main-btn {  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);  box-shadow: 0 8px 24px rgba(239, 68, 68, 0.55);  border-color: rgba(255, 255, 255, 0.4);}.fab-speed-dial-container.open .fab-main-icon {  transform: rotate(135deg);}.fab-menu {  display: flex;  flex-direction: column;  align-items: flex-end;  gap: 12px;  margin-bottom: 14px;  z-index: 960;  pointer-events: none;}.fab-item {  pointer-events: none;  opacity: 0;  transform: translateY(20px) scale(0.85);  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);  display: flex;  align-items: center;  gap: 10px;  background: transparent;  border: none;  cursor: pointer;  touch-action: manipulation;  -webkit-tap-highlight-color: transparent;}.fab-speed-dial-container.open .fab-item {  pointer-events: auto;  opacity: 1;  transform: translateY(0) scale(1);}.fab-speed-dial-container.open .fab-menu .fab-item:nth-child(5) { transition-delay: 0.02s; }.fab-speed-dial-container.open .fab-menu .fab-item:nth-child(4) { transition-delay: 0.05s; }.fab-speed-dial-container.open .fab-menu .fab-item:nth-child(3) { transition-delay: 0.08s; }.fab-speed-dial-container.open .fab-menu .fab-item:nth-child(2) { transition-delay: 0.11s; }.fab-speed-dial-container.open .fab-menu .fab-item:nth-child(1) { transition-delay: 0.14s; }.fab-item-label {  background: var(--bg-surface);  color: var(--text-main);  font-size: 13px;  font-weight: 700;  padding: 6px 14px;  border-radius: 20px;  border: 1px solid var(--border-color);  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);  white-space: nowrap;  letter-spacing: 0.2px;  transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;}.fab-item-icon {  width: 44px;  height: 44px;  border-radius: 50%;  background: var(--bg-surface);  border: 1px solid var(--border-color);  color: var(--text-inverse);  display: flex;  align-items: center;  justify-content: center;  font-size: 18px;  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), border-color 0.2s ease;}.fab-item:hover .fab-item-label,.fab-item:active .fab-item-label {  background: var(--bg-card-hover);  border-color: var(--primary);  transform: translateX(-4px);}.fab-item:hover .fab-item-icon,.fab-item:active .fab-item-icon {  transform: scale(1.12);  border-color: #60a5fa;}.fab-item-delivery .fab-item-icon { background: linear-gradient(135deg, #1e3a8a, #2563eb); border-color: #3b82f6; }.fab-item-photo .fab-item-icon { background: linear-gradient(135deg, #581c87, #9333ea); border-color: #a855f7; }.fab-item-indent .fab-item-icon { background: linear-gradient(135deg, #78350f, #d97706); border-color: #f59e0b; }.fab-item-task .fab-item-icon { background: linear-gradient(135deg, #134e4a, #0d9488); border-color: #14b8a6; }.fab-item-labor .fab-item-icon { background: linear-gradient(135deg, #312e81, #4f46e5); border-color: #6366f1; }@media (max-width: 768px) {  .top-header {    padding: 8px 12px;    flex-direction: row;    justify-content: space-between;    align-items: center;    gap: 8px;    background: var(--bg-surface);  }  .header-left {    display: flex;    align-items: center;    gap: 6px;    flex: 1;    min-width: 0;  }  .header-right {    display: flex;    align-items: center;    gap: 6px;    flex-shrink: 0;  }  .brand-badge {    gap: 6px;    flex-shrink: 0;  }  .brand-icon {    width: 28px;    height: 28px;    font-size: 16px;  }  .brand-title {    font-size: 13px;    display: none;   }  .project-selector-wrapper {    background: hsl(var(--hsl-bg-surface));  }  .project-selector-wrapper label {    font-size: 11px;  }  .project-dropdown {    max-width: 170px;    font-size: 12px;  }  .role-switcher {    flex: 1;    display: flex;    align-items: center;    justify-content: space-between;    padding: 3px 6px;    background: hsl(var(--hsl-bg-subtle));  }  .role-label {    font-size: 10px;  }  .role-toggle-group {    display: flex;    gap: 4px;  }  .role-btn {    min-height: 44px;    padding: 6px 12px;    font-size: 12px;    font-weight: 700;    border-radius: var(--radius-sm);    display: inline-flex;    align-items: center;    justify-content: center;    touch-action: manipulation;  }  .header-actions .btn {    min-height: 44px;    padding: 6px 14px;    font-size: 13px;    font-weight: 700;    display: inline-flex;    align-items: center;    justify-content: center;    touch-action: manipulation;  }  .mobile-dashboard-toggle-bar {    display: block;    background: var(--bg-surface);    border-bottom: 1px solid var(--border-color);    padding: 8px 12px;  }  .btn-toggle-dashboard {    width: 100%;    min-height: 48px;    padding: 8px 14px;    background: var(--bg-subtle);    border: 1px solid var(--border-color);    border-radius: var(--radius-md);    color: var(--text-main);    display: flex;    align-items: center;    justify-content: space-between;    gap: 8px;    cursor: pointer;    font-family: inherit;    transition: all 0.2s ease;    user-select: none;    -webkit-tap-highlight-color: transparent;    touch-action: manipulation;  }  .btn-toggle-dashboard:hover,  .btn-toggle-dashboard:active {    background: var(--bg-card-hover);    border-color: var(--primary);  }  .btn-toggle-dashboard.active {    background: var(--bg-card);    border-color: var(--primary);    box-shadow: 0 0 0 1px var(--primary);  }  .toggle-dash-left {    display: flex;    align-items: center;    gap: 8px;  }  .toggle-dash-icon {    font-size: 15px;    line-height: 1;  }  .toggle-dash-label {    font-size: 12px;    font-weight: 700;    letter-spacing: 0.2px;    color: var(--text-main);  }  .toggle-dash-badge {    font-size: 9.5px;    font-weight: 700;    color: var(--success);    background: rgba(16, 185, 129, 0.12);    border: 1px solid rgba(16, 185, 129, 0.3);    padding: 1px 6px;    border-radius: 10px;    letter-spacing: 0.3px;  }  .toggle-dash-right {    display: flex;    align-items: center;    gap: 6px;  }  .toggle-dash-state {    font-size: 11px;    font-weight: 600;    color: var(--text-dim);  }  .toggle-dash-arrow {    font-size: 11px;    color: var(--primary);    transition: transform 0.2s ease;  }  .btn-toggle-dashboard.active .toggle-dash-arrow {    transform: rotate(180deg);  }  .master-dashboard-bar {    grid-template-columns: 1fr;    gap: 8px;    padding: 8px 12px;    background: var(--bg-subtle);    border-bottom: 1px solid var(--border-color);  }  .master-dashboard-bar.collapsed {    display: none !important;  }  .master-dashboard-bar.expanded {    display: flex !important;    flex-direction: column;    animation: dashBarSlide 0.2s ease-out;  }  @keyframes dashBarSlide {    from { opacity: 0; transform: translateY(-4px); }    to { opacity: 1; transform: translateY(0); }  }  .stage-tracker-card {    overflow: hidden;  }  .stages-stepper {    overflow-x: auto;    white-space: nowrap;    padding-bottom: 4px;    justify-content: flex-start;    gap: 10px;    -webkit-overflow-scrolling: touch;  }  .stage-step {    flex-shrink: 0;  }  .step-divider {    min-width: 24px;    flex-shrink: 0;  }  .time-tracker-card {    padding: 8px 12px;  }  .time-countdown-box {    flex-direction: row;    justify-content: space-between;    padding: 0;  }  .time-digits {    font-size: 17px;  }  .logs-monitor-card {    padding: 8px 12px;  }  .live-logs-terminal {    height: 44px;    font-size: 10.5px;  }  .main-tabs-nav {    display: none !important;  }  .main-container {    padding: 12px 12px 96px 12px !important;  }  .metrics-grid {    grid-template-columns: repeat(2, 1fr) !important;    gap: 8px;    margin-bottom: 16px;  }  .metric-card {    padding: 10px 12px;    gap: 10px;    background: linear-gradient(180deg, hsl(var(--hsl-bg-card)) 0%, hsl(var(--hsl-bg-surface)) 100%);    border-radius: var(--radius-md);  }  .metric-icon-box {    width: 36px;    height: 36px;    font-size: 18px;  }  .metric-label {    font-size: 10.5px;  }  .metric-value {    font-size: 16px;  }  .metric-subtext {    font-size: 9.5px;  }  .pane-header {    flex-direction: column;    align-items: flex-start;    gap: 10px;    margin-bottom: 14px;  }  .pane-title {    font-size: 17px;  }  .pane-desc {    font-size: 11.5px;  }  .pane-actions {    width: 100%;    display: flex;    flex-wrap: wrap;    gap: 8px;  }  .pane-actions .btn,  .pane-actions input,  .pane-actions select {    min-height: 48px;    flex: 1 1 calc(50% - 8px);    justify-content: center;    font-size: 14px;  }  .analytics-section {    gap: 14px;    margin-bottom: 16px;  }  .analytics-card {    padding: 14px;    gap: 12px;  }  .analytics-card-title {    font-size: 13.5px;  }  .spend-analytics-body {    grid-template-columns: 1fr;    gap: 14px;  }  .donut-svg-wrapper {    width: 140px;    height: 140px;    margin: 0 auto;  }  .sub-tabs-bar {    overflow-x: auto;    white-space: nowrap;    -webkit-overflow-scrolling: touch;    padding: 4px 0 8px 0;    gap: 8px;    display: flex;    align-items: center;  }  .sub-tab-btn {    min-height: 48px;    padding: 10px 18px;    font-size: 13px;    font-weight: 700;    display: inline-flex;    align-items: center;    justify-content: center;    flex-shrink: 0;    border-radius: var(--radius-sm);    touch-action: manipulation;  }  .filter-chips-bar,  .filter-chips-wrapper,  .batch-presets-bar {    overflow-x: auto;    white-space: nowrap;    -webkit-overflow-scrolling: touch;    padding: 4px 0 8px 0;    gap: 8px;    display: flex;    align-items: center;  }  .filter-chip {    min-height: 48px;    padding: 10px 18px;    font-size: 13px;    font-weight: 700;    display: inline-flex;    align-items: center;    justify-content: center;    border-radius: 24px;    flex-shrink: 0;    touch-action: manipulation;  }  .btn-preset-chip {    min-height: 48px;    padding: 10px 16px;    font-size: 12px;    font-weight: 700;    display: inline-flex;    align-items: center;    justify-content: center;    border-radius: 20px;    flex-shrink: 0;    touch-action: manipulation;  }  .btn,  .btn-primary,  .btn-secondary,  .btn-outline,  .btn-success,  .btn-whatsapp,  .btn-call,  .dpr-btn-submit,  .btn-switch-site,  .btn-sync-now,  .btn-status-toggle,  .btn-sig-toggle {    min-height: 48px;    padding: 12px 18px;    font-size: 14px;    font-weight: 700;    display: inline-flex;    align-items: center;    justify-content: center;    box-sizing: border-box;    touch-action: manipulation;  }  .btn-sm {    min-height: 44px;    padding: 8px 14px;    font-size: 13px;    font-weight: 600;    display: inline-flex;    align-items: center;    justify-content: center;    touch-action: manipulation;  }  .btn-xs {    min-height: 36px;    padding: 6px 12px;    font-size: 12px;  }  .form-input,  .search-input,  .filter-dropdown,  .project-dropdown,  .input-date,  .input-date-compact,  .form-input-compact,  .trade-note-input,  .batch-row-input,  .batch-row-select,  input[type="text"],  input[type="number"],  input[type="date"],  input[type="search"],  input[type="tel"],  input[type="email"],  input[type="file"],  select,  textarea {    min-height: 48px;    padding: 12px 14px;    font-size: 16px !important;     box-sizing: border-box;    border-radius: var(--radius-sm);    touch-action: manipulation;  }  textarea.form-input {    min-height: 96px;  }  .stepper-btn {    width: 44px;    height: 44px;    min-width: 44px;    min-height: 44px;    font-size: 20px;    display: flex;    align-items: center;    justify-content: center;    touch-action: manipulation;  }  .stepper-input {    width: 56px;    height: 44px;    font-size: 17px;  }  .modal-overlay {    align-items: flex-end;    padding: 0;    backdrop-filter: blur(8px);    -webkit-backdrop-filter: blur(8px);  }  .modal-container {    max-width: 100%;    width: 100%;    border-radius: 20px 20px 0 0;    max-height: 90vh;    border-bottom: none;    border-left: none;    border-right: none;    box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.7);    animation: modalSlideUp 0.28s cubic-bezier(0.32, 1, 0.23, 1);    position: relative;  }  .modal-container::before {    content: '';    position: absolute;    top: 8px;    left: 50%;    transform: translateX(-50%);    width: 38px;    height: 4px;    background: var(--border-color);    border-radius: 2px;  }  @keyframes modalSlideUp {    from { transform: translateY(100%); }    to { transform: translateY(0); }  }  .modal-header {    padding: 18px 16px 12px 16px;  }  .modal-title {    font-size: 15px;  }  .modal-body {    padding: 14px 16px;    max-height: calc(90vh - 120px);  }  .modal-footer {    padding: 12px 16px;    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0));  }  .dpr-sheet {    padding: 14px;  }  .dpr-sheet-header {    flex-direction: column;    gap: 10px;  }  .dpr-meta {    grid-template-columns: 1fr;    gap: 6px;  }  .photos-gallery-grid {    grid-template-columns: repeat(2, 1fr) !important;    gap: 10px !important;  }  .photo-img-wrapper {    aspect-ratio: 4 / 3 !important;  }  .photo-cat-badge {    font-size: 10px !important;    padding: 2px 6px !important;    top: 6px !important;    left: 6px !important;  }  .photo-info {    padding: 8px 10px !important;  }  .photo-caption {    font-size: 12px !important;    line-height: 1.3 !important;  }  .photo-meta {    font-size: 10.5px !important;    flex-direction: column !important;    align-items: flex-start !important;    gap: 2px !important;  }  .lightbox-overlay {    align-items: center !important;    padding: 0 !important;  }  .lightbox-wrapper {    width: 100vw !important;    max-width: 100vw !important;    height: 100vh !important;    max-height: 100vh !important;    border-radius: 0 !important;    border: none !important;    display: flex !important;    flex-direction: column !important;    justify-content: space-between !important;  }  .lightbox-header {    padding: 10px 14px !important;  }  .lightbox-stage {    flex: 1 !important;    min-height: 0 !important;    max-height: none !important;  }  .lightbox-img-container {    max-height: calc(100vh - 160px) !important;    padding: 6px !important;  }  .lightbox-img-container img {    max-height: calc(100vh - 170px) !important;    max-width: 96vw !important;  }  .lightbox-nav-btn {    width: 40px !important;    height: 40px !important;    font-size: 18px !important;    background: rgba(15, 23, 42, 0.85) !important;  }  .lightbox-nav-prev {    left: 8px !important;  }  .lightbox-nav-next {    right: 8px !important;  }  .lightbox-footer {    padding: 10px 14px !important;  }}@media (max-width: 480px) {  .projects-cards-grid,  .vendors-cards-grid {    grid-template-columns: 1fr;  }  .photos-gallery-grid {    grid-template-columns: repeat(2, 1fr) !important;    gap: 8px !important;  }  .photo-info {    padding: 6px 8px !important;  }  .photo-caption {    font-size: 11.5px !important;  }  .vendor-directory-kpis-grid {    grid-template-columns: repeat(2, 1fr);    gap: 8px;  }  .vendor-directory-kpis-grid .metric-card {    padding: 10px;  }}body.role-engineer .col-financial,body.role-engineer .col-financial-row,body.role-engineer .col-owner-only,body.role-engineer #metricSpendCard,body.role-engineer .vendor-financials {  display: none !important;}.offline-sync-banner {  width: 100%;  background-color: #f0fdf4;  border-bottom: 1px solid #bbf7d0;  padding: 6px 18px;  font-size: 12.5px;  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);  position: relative;  z-index: 95;}.offline-banner-inner {  display: flex;  justify-content: space-between;  align-items: center;  gap: 12px;  flex-wrap: wrap;  max-width: 1400px;  margin: 0 auto;}.banner-status-indicator {  display: flex;  align-items: center;  gap: 8px;}.status-pulse-dot {  width: 9px;  height: 9px;  border-radius: 50%;  background-color: var(--success);  box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);  animation: pulse-green 2s infinite;  display: inline-block;}.banner-status-text {  color: #1e293b;  font-size: 12px;}.banner-status-text strong {  font-weight: 700;  color: #065f46;}.banner-info-badge {  display: flex;  align-items: center;  gap: 12px;}.pending-count-badge {  background: #f1f5f9;  color: #334155;  border: 1px solid #cbd5e1;  padding: 2px 8px;  border-radius: 12px;  font-size: 11px;  font-family: var(--font-mono);  font-weight: 600;}.pending-count-badge.has-items {  background: #fef3c7;  color: #92400e;  border-color: #fcd34d;  font-weight: 700;}.last-sync-text {  color: #475569;  font-size: 11px;  font-weight: 500;}.btn-sync-now {  background: var(--bg-card);  color: var(--text-main);  border: 1px solid var(--border-color);  padding: 4px 12px;  border-radius: var(--radius-sm);  font-size: 11.5px;  font-weight: 700;  cursor: pointer;  display: inline-flex;  align-items: center;  gap: 6px;  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);  transition: all 0.2s ease;}.btn-sync-now:hover {  background: #f8fafc;  border-color: var(--primary);  color: var(--primary);}.offline-sync-banner.offline {  background-color: #fef2f2;  border-bottom-color: #fecaca;}.offline-sync-banner.offline .status-pulse-dot {  background-color: var(--danger);  animation: pulse-red 1.5s infinite;}.offline-sync-banner.offline .banner-status-text {  color: #991b1b;}.offline-sync-banner.offline .banner-status-text strong {  color: #7f1d1d;}.offline-sync-banner.offline .btn-sync-now {  background: var(--bg-card);  color: var(--danger);  border-color: var(--border-color);}.offline-sync-banner.syncing {  background-color: var(--bg-subtle);  border-bottom-color: var(--warning);}.offline-sync-banner.syncing .status-pulse-dot {  background-color: var(--warning);  animation: pulse-amber 1s infinite;}.offline-sync-banner.syncing .banner-status-text {  color: #92400e;}.offline-sync-banner.syncing .banner-status-text strong {  color: #78350f;}.offline-sync-banner.syncing .sync-icon {  animation: spin 1s linear infinite;}.offline-sync-banner.weak-signal {  background-color: #fefce8;  border-bottom-color: #fef08a;}.offline-sync-banner.weak-signal .status-pulse-dot {  background-color: #ca8a04;  animation: pulse-amber 2s infinite;}.offline-sync-banner.weak-signal .banner-status-text {  color: #854d0e;}body.theme-dark .offline-sync-banner {  background-color: #0b1120;  border-bottom-color: #1e293b;}body.theme-dark .offline-sync-banner .banner-status-text {  color: #f8fafc;}body.theme-dark .offline-sync-banner .banner-status-text strong {  color: #34d399;}body.theme-dark .pending-count-badge {  background: rgba(51, 65, 85, 0.8);  color: #cbd5e1;  border: 1px solid #334155;}body.theme-dark .pending-count-badge.has-items {  background: rgba(245, 158, 11, 0.2);  color: #fbbf24;  border-color: rgba(245, 158, 11, 0.4);}body.theme-dark .last-sync-text {  color: #94a3b8;}body.theme-dark .btn-sync-now {  background: rgba(30, 41, 59, 0.9);  color: #f8fafc;  border: 1px solid #334155;}body.theme-dark .btn-sync-now:hover {  background: var(--bg-card-hover);  border-color: var(--primary);  color: var(--primary);}body.theme-dark .offline-sync-banner.offline {  background-color: #2b0c0c;  border-bottom-color: #ef4444;}body.theme-dark .offline-sync-banner.offline .banner-status-text {  color: #fca5a5;}body.theme-dark .offline-sync-banner.offline .banner-status-text strong {  color: #f87171;}body.theme-dark .offline-sync-banner.offline .btn-sync-now {  background: rgba(43, 12, 12, 0.9);  color: #fca5a5;  border-color: rgba(239, 68, 68, 0.5);}body.theme-dark .offline-sync-banner.syncing {  background-color: #2e1e07;  border-bottom-color: #f59e0b;}body.theme-dark .offline-sync-banner.syncing .banner-status-text {  color: #fde68a;}body.theme-dark .offline-sync-banner.syncing .banner-status-text strong {  color: #fbbf24;}body.theme-dark .offline-sync-banner.weak-signal {  background-color: #261f0c;  border-bottom-color: #eab308;}body.theme-dark .offline-sync-banner.weak-signal .banner-status-text {  color: #fef08a;}@keyframes pulse-green {  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }  70% { transform: scale(1.1); box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }}@keyframes pulse-red {  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }  70% { transform: scale(1.15); box-shadow: 0 0 0 7px rgba(239, 68, 68, 0); }  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }}@keyframes pulse-amber {  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); }  70% { transform: scale(1.1); box-shadow: 0 0 0 6px rgba(245, 158, 11, 0); }  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }}@keyframes spin {  from { transform: rotate(0deg); }  to { transform: rotate(360deg); }}@media (max-width: 640px) {  .offline-banner-inner {    flex-direction: row;    justify-content: space-between;  }  .last-sync-text {    display: none;  }  .offline-sync-banner {    padding: 6px 12px;  }}.labor-sub-pane {  display: none;  animation: fadeIn 0.2s ease-in-out;}.labor-sub-pane.active {  display: block;}.labor-grid-header-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-lg);  padding: 16px 20px;}.grid-header-top {  display: flex;  justify-content: space-between;  align-items: center;  gap: 16px;  flex-wrap: wrap;}.grid-header-controls {  display: flex;  align-items: center;  gap: 12px;  flex-wrap: wrap;}.form-group-compact {  display: flex;  align-items: center;  gap: 8px;}.form-group-compact label {  font-size: 12px;  color: var(--text-muted);  white-space: nowrap;  font-weight: 600;}.input-date-compact, .form-input-compact {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  color: var(--text-main);  padding: 6px 10px;  font-size: 13px;  outline: none;}.btn-sig-toggle {  background: hsla(var(--hsl-primary), 0.1);  border-color: var(--primary);  color: var(--primary);  font-weight: 600;  transition: all 0.2s ease;}.btn-sig-toggle.signed,.btn-sig-toggle.btn-sig-verified {  background: hsla(var(--hsl-success), 0.15);  border-color: var(--success);  color: var(--success);}.headcount-cards-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));  gap: 14px;  margin-bottom: 110px; }.headcount-card,.headcount-trade-card {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-lg);  padding: 16px;  display: flex;  flex-direction: column;  gap: 12px;  transition: all 0.2s ease;  position: relative;  box-shadow: var(--shadow-sm);}.headcount-card:hover,.headcount-trade-card:hover {  border-color: var(--border-focus);  box-shadow: var(--shadow-md);}.headcount-card.card-active,.headcount-trade-card.has-workers {  border-color: var(--primary);  background: hsla(var(--hsl-primary), 0.03);}.headcount-card-header,.trade-card-header {  display: flex;  justify-content: space-between;  align-items: center;  gap: 8px;}.trade-title-group {  display: flex;  align-items: center;  gap: 10px;}.trade-icon,.trade-avatar-icon {  font-size: 22px;  width: 40px;  height: 40px;  border-radius: var(--radius-md);  display: flex;  align-items: center;  justify-content: center;  background: var(--bg-subtle);  border: 1px solid var(--border-color);  flex-shrink: 0;}.trade-name,.trade-title-name {  font-size: 15px;  font-weight: 700;  color: var(--text-main);}.trade-gang-badge {  font-size: 11px;  color: var(--text-muted);  background: var(--bg-subtle);  border: 1px solid var(--border-color);  padding: 2px 6px;  border-radius: 4px;  display: inline-block;  margin-top: 2px;}.trade-rate-label {  font-size: 11px;  color: var(--text-muted);}.trade-subtotal,.trade-subtotal-pill {  font-size: 14px;  font-weight: 800;  padding: 4px 10px;  border-radius: var(--radius-sm);  background: hsla(var(--hsl-success), 0.12);  color: var(--success);  border: 1px solid hsla(var(--hsl-success), 0.3);  font-family: var(--font-mono);  white-space: nowrap;}.headcount-card-body {  display: flex;  flex-direction: column;  gap: 10px;}.stepper-control-group {  display: flex;  flex-direction: column;  gap: 6px;}.stepper-header-line {  display: flex;  justify-content: space-between;  align-items: center;}.stepper-label {  font-size: 12px;  font-weight: 700;  color: var(--text-main);}.stepper-rate-indicator {  font-size: 11px;  color: var(--text-muted);  font-family: var(--font-mono);}.stepper-row {  display: flex;  align-items: center;  justify-content: space-between;  background: var(--bg-subtle);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 4px 6px;  gap: 6px;}.stepper-controls {  display: flex;  align-items: center;  gap: 6px;}.btn-stepper {  width: 44px;  height: 44px;  min-width: 44px;  min-height: 44px;  border-radius: var(--radius-sm);  background: var(--bg-card);  border: 1px solid var(--border-color);  color: var(--text-main);  font-size: 17px;  font-weight: 800;  display: flex;  align-items: center;  justify-content: center;  cursor: pointer;  user-select: none;  transition: all 0.15s ease;  touch-action: manipulation;  box-shadow: var(--shadow-sm);}.btn-stepper:active {  transform: scale(0.94);  background: var(--primary);  color: var(--text-inverse);  border-color: var(--primary);}.stepper-input {  flex: 1;  height: 44px;  min-height: 44px;  text-align: center;  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  color: var(--text-main);  font-size: 18px;  font-weight: 800;  font-family: var(--font-mono);  outline: none;}.card-rates-grid {  display: grid;  grid-template-columns: repeat(3, 1fr);  gap: 8px;}.rate-field {  display: flex;  flex-direction: column;  gap: 4px;}.rate-field-label,.rate-field label {  font-size: 10.5px;  font-weight: 700;  color: var(--text-muted);  text-transform: uppercase;  letter-spacing: 0.3px;  white-space: nowrap;}.rate-field .form-input-xs {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  color: var(--text-main);  padding: 6px 8px;  font-size: 13px;  font-family: var(--font-mono);  font-weight: 600;  width: 100%;  outline: none;}.rate-field .form-input-xs:focus {  border-color: var(--primary);}.stepper-xs-row {  display: flex;  align-items: center;  gap: 2px;  background: var(--bg-subtle);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  padding: 2px;}.btn-stepper-xs {  width: 32px;  height: 32px;  min-width: 32px;  min-height: 32px;  border-radius: 4px;  background: var(--bg-card);  border: 1px solid var(--border-color);  color: var(--text-main);  font-size: 11px;  font-weight: 700;  cursor: pointer;  display: flex;  align-items: center;  justify-content: center;  user-select: none;  transition: all 0.15s ease;  touch-action: manipulation;}.btn-stepper-xs:active {  background: var(--primary);  color: var(--text-inverse);}.form-input-ot-hrs {  flex: 1;  min-width: 30px;  text-align: center;  padding: 4px 2px !important;  font-size: 12px !important;  font-weight: 700 !important;  font-family: var(--font-mono);  background: transparent !important;  border: none !important;  color: var(--warning) !important;}.card-gang-select-wrap {  margin-top: 4px;  display: flex;  flex-direction: column;  gap: 4px;}.gang-select-label,.card-gang-select-wrap label {  font-size: 11px;  font-weight: 600;  color: var(--text-muted);}.card-gang-select {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  color: var(--text-main);  padding: 6px 10px;  font-size: 12.5px;  width: 100%;  outline: none;}.trade-card-ot-row {  display: flex;  align-items: center;  justify-content: space-between;  gap: 8px;  background: hsla(var(--hsl-warning), 0.08);  border: 1px dashed hsla(var(--hsl-warning), 0.35);  border-radius: var(--radius-sm);  padding: 6px 10px;}.ot-row-label {  font-size: 11px;  color: var(--warning);  font-weight: 600;}.ot-inputs-group {  display: flex;  align-items: center;  gap: 6px;}.ot-hrs-input {  width: 50px;  padding: 4px 6px;  background: var(--bg-card);  border: 1px solid hsla(var(--hsl-warning), 0.4);  border-radius: 4px;  color: var(--warning);  font-size: 12px;  font-weight: 700;  text-align: center;}.ot-rate-input {  width: 60px;  padding: 4px 6px;  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: 4px;  color: var(--text-muted);  font-size: 11px;  text-align: center;}.trade-note-input {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  padding: 6px 10px;  color: var(--text-main);  font-size: 11px;  width: 100%;}.labor-cost-widget {  position: fixed;  bottom: 16px;  left: 50%;  transform: translateX(-50%);  width: calc(100% - 40px);  max-width: 1100px;  background: var(--bg-card);  backdrop-filter: blur(16px);  -webkit-backdrop-filter: blur(16px);  border: 1px solid var(--border-color);  box-shadow: var(--shadow-lg);  border-radius: var(--radius-lg);  padding: 12px 20px;  z-index: 95;  animation: slideUp 0.3s ease-out;}.cost-widget-main {  display: flex;  justify-content: space-between;  align-items: center;  gap: 16px;  flex-wrap: wrap;}.widget-metric-group {  display: flex;  align-items: center;  gap: 16px;  flex-wrap: wrap;}.widget-metric {  display: flex;  flex-direction: column;}.widget-label {  font-size: 10px;  font-weight: 700;  text-transform: uppercase;  color: var(--text-dim);  letter-spacing: 0.5px;}.widget-val {  font-size: 16px;  font-weight: 800;  color: var(--text-main);  font-family: var(--font-mono);}.widget-val.highlight-blue {  color: var(--primary);}.widget-val.highlight-amber {  color: var(--warning);}.widget-val.highlight-emerald {  color: var(--success);  font-size: 18px;}.widget-divider {  width: 1px;  height: 28px;  background: var(--border-color);}.widget-actions {  display: flex;  align-items: center;  gap: 10px;}.btn-pulse {  animation: pulse-border 2s infinite;}@keyframes pulse-border {  0% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.6); }  70% { box-shadow: 0 0 0 8px rgba(37, 99, 235, 0); }  100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0); }}.gangs-cards-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));  gap: 16px;}.gang-card {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-lg);  padding: 16px;  display: flex;  flex-direction: column;  justify-content: space-between;  gap: 12px;  box-shadow: var(--shadow-sm);}.gang-card-header {  display: flex;  justify-content: space-between;  align-items: flex-start;}.gang-name {  font-size: 15px;  font-weight: 800;  color: var(--text-main);}.gang-headcount-badge {  background: hsla(var(--hsl-primary), 0.12);  color: var(--primary);  border: 1px solid var(--primary);  font-size: 11px;  font-weight: 700;  padding: 2px 8px;  border-radius: 20px;}.gang-trades-list {  display: flex;  flex-wrap: wrap;  gap: 6px;}.gang-trade-chip {  background: var(--bg-subtle);  border: 1px solid var(--border-color);  border-radius: 4px;  padding: 3px 8px;  font-size: 11px;  color: var(--text-muted);}.gang-financial-row {  display: flex;  justify-content: space-between;  align-items: center;  padding-top: 10px;  border-top: 1px solid var(--border-color);}.workers-cards-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));  gap: 14px;}.worker-card {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 14px;  display: flex;  flex-direction: column;  gap: 10px;  box-shadow: var(--shadow-sm);}.worker-card-top {  display: flex;  justify-content: space-between;  align-items: center;}.worker-name {  font-size: 14px;  font-weight: 700;  color: var(--text-main);}.worker-trade-tag {  font-size: 10px;  font-weight: 600;  background: var(--bg-subtle);  border: 1px solid var(--border-color);  padding: 2px 6px;  border-radius: 4px;  color: var(--primary);}.worker-meta-line {  font-size: 11px;  color: var(--text-muted);  display: flex;  align-items: center;  gap: 6px;}.worker-rates-row {  display: flex;  justify-content: space-between;  font-size: 11px;  color: var(--text-dim);  background: var(--bg-subtle);  border: 1px solid var(--border-color);  padding: 4px 8px;  border-radius: 4px;}.wage-summary-preview {  background: var(--bg-subtle);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  padding: 10px 14px;  margin-bottom: 12px;}.wage-preview-line {  display: flex;  justify-content: space-between;  align-items: center;  font-size: 12px;  color: var(--text-muted);}.sig-verified-stamp {  display: inline-flex;  align-items: center;  gap: 4px;  background: hsla(var(--hsl-success), 0.15);  border: 1px solid hsla(var(--hsl-success), 0.4);  color: var(--success);  font-size: 10px;  font-weight: 700;  padding: 2px 6px;  border-radius: 4px;}.batch-presets-bar {  display: flex;  align-items: center;  gap: 8px;  flex-wrap: wrap;  background: var(--bg-subtle);  padding: 8px 12px;  border-radius: var(--radius-md);  border: 1px solid var(--border-color);}.btn-preset-chip {  background: var(--bg-card);  border: 1px solid var(--border-color);  color: var(--text-main);  font-size: 11.5px;  font-weight: 600;  padding: 6px 12px;  border-radius: 14px;  cursor: pointer;  transition: all 0.2s ease;  white-space: nowrap;}.btn-preset-chip:hover {  background: var(--primary);  color: var(--text-inverse);  border-color: var(--primary);  transform: translateY(-1px);}.batch-entry-table th {  background: var(--bg-subtle);  font-size: 11px;  font-weight: 700;  color: var(--text-muted);  text-transform: uppercase;  padding: 8px 10px;}.batch-entry-table td {  padding: 6px 8px;  vertical-align: middle;}.batch-row-input {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  color: var(--text-main);  padding: 6px 8px;  font-size: 12px;  width: 100%;  outline: none;}.batch-row-input:focus {  border-color: var(--primary);}.batch-row-select {  background: var(--bg-card);  border: 1px solid var(--border-color);  border-radius: var(--radius-sm);  color: var(--text-main);  padding: 6px 8px;  font-size: 12px;  width: 100%;  outline: none;}.batch-aggregate-summary-box {  background: var(--bg-subtle);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 12px 16px;  box-shadow: var(--shadow-sm);}.batch-summary-grid {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));  gap: 12px;  align-items: center;}.summary-metric-item {  display: flex;  flex-direction: column;  gap: 2px;}.summary-metric-item.highlight-box {  background: hsla(var(--hsl-success), 0.1);  border: 1px solid hsla(var(--hsl-success), 0.3);  padding: 6px 12px;  border-radius: var(--radius-sm);}.metric-mini-label {  font-size: 9.5px;  font-weight: 700;  color: var(--text-dim);  letter-spacing: 0.5px;}.metric-mini-val {  font-size: 14px;  font-weight: 800;  font-family: var(--font-mono);  color: var(--text-main);}.trade-chart-row {  display: flex;  flex-direction: column;  gap: 6px;  margin-bottom: 12px;}.trade-chart-header {  display: flex;  justify-content: space-between;  align-items: center;  font-size: 12px;}.trade-chart-title {  font-weight: 700;  color: var(--text-main);  display: flex;  align-items: center;  gap: 6px;}.trade-chart-meta {  color: var(--text-muted);  font-size: 11px;}.trade-chart-bar-bg {  width: 100%;  height: 8px;  background: var(--bg-subtle);  border-radius: 4px;  overflow: hidden;}.trade-chart-bar-fill {  height: 100%;  border-radius: 4px;  transition: width 0.4s ease;}@media (max-width: 768px) {  .headcount-cards-grid {    grid-template-columns: 1fr;    gap: 12px;    margin-bottom: 200px;   }  .labor-cost-widget {    bottom: 74px;     width: calc(100% - 16px);    padding: 10px 12px;    border-radius: var(--radius-md);  }  .cost-widget-main {    flex-direction: column;    align-items: stretch;    gap: 10px;  }  .widget-metric-group {    display: grid;    grid-template-columns: repeat(2, 1fr);    gap: 8px 10px;    width: 100%;  }  .widget-divider {    display: none;  }  .widget-actions {    width: 100%;    display: flex;    gap: 8px;  }  .widget-actions .btn {    flex: 1;    min-height: 48px;    font-size: 13.5px;    font-weight: 700;  }  .stepper-row {    min-height: 52px;    padding: 4px 6px;  }  .btn-stepper {    width: 48px;    height: 48px;    min-width: 48px;    min-height: 48px;    font-size: 18px;    font-weight: 800;  }  .stepper-input {    height: 48px;    min-height: 48px;    font-size: 19px;  }  .card-rates-grid {    gap: 6px;  }  .rate-field .form-input-xs {    min-height: 46px;    font-size: 14px;    padding: 6px 8px;  }  .stepper-xs-row {    min-height: 46px;    padding: 3px;  }  .btn-stepper-xs {    width: 36px;    height: 38px;    min-width: 36px;    min-height: 38px;    font-size: 12px;  }  .form-input-ot-hrs {    font-size: 14px !important;    min-height: 38px;  }  .card-gang-select {    min-height: 46px;    font-size: 13.5px;  }  .batch-presets-bar {    gap: 6px;    padding: 6px;  }  .btn-preset-chip {    padding: 8px 10px;    font-size: 12px;    min-height: 38px;    white-space: normal;    text-align: center;  }  .batch-summary-grid {    grid-template-columns: repeat(2, 1fr);    gap: 8px;  }  .summary-metric-item.highlight-box {    grid-column: 1 / -1;  }}@keyframes slideUp {  from { transform: translate(-50%, 40px); opacity: 0; }  to { transform: translate(-50%, 0); opacity: 1; }}@keyframes fadeIn {  from { opacity: 0; }  to { opacity: 1; }}@keyframes pulse-critical-glow {  0%, 100% {    box-shadow: 0 0 0 1px rgba(239, 68, 68, 0.5), 0 2px 8px rgba(239, 68, 68, 0.4);  }  50% {    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.7), 0 4px 14px rgba(239, 68, 68, 0.6);  }}.snags-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));  gap: 16px;  margin-top: 12px;}@media (max-width: 768px) {  .snags-grid {    grid-template-columns: 1fr;    gap: 14px;  }}.snag-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-lg);  padding: 16px;  display: flex;  flex-direction: column;  gap: 12px;  position: relative;  transition: all 0.2s ease;  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);  backdrop-filter: blur(8px);  -webkit-backdrop-filter: blur(8px);}.snag-card:hover {  border-color: rgba(59, 130, 246, 0.45);  transform: translateY(-2px);  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.38);}.snag-card.severity-critical {  border-left: 6px solid #dc2626;  background: linear-gradient(180deg, rgba(220, 38, 38, 0.08) 0%, var(--bg-surface) 100%);}.snag-card.severity-critical:hover {  border-color: rgba(239, 68, 68, 0.5);  box-shadow: 0 8px 22px rgba(220, 38, 38, 0.22);}.snag-card.severity-major {  border-left: 6px solid #d97706;  background: linear-gradient(180deg, rgba(217, 119, 6, 0.08) 0%, var(--bg-surface) 100%);}.snag-card.severity-major:hover {  border-color: rgba(245, 158, 11, 0.5);  box-shadow: 0 8px 22px rgba(217, 119, 6, 0.2);}.snag-card.severity-minor {  border-left: 6px solid #2563eb;  background: linear-gradient(180deg, rgba(37, 99, 235, 0.08) 0%, var(--bg-surface) 100%);}.snag-card.severity-minor:hover {  border-color: rgba(59, 130, 246, 0.5);  box-shadow: 0 8px 22px rgba(37, 99, 235, 0.2);}.snag-header-row {  display: flex;  justify-content: space-between;  align-items: center;  gap: 8px;}.snag-badges-wrap {  display: flex;  flex-wrap: wrap;  gap: 6px;  align-items: center;}.badge-severity {  font-size: 11px;  font-weight: 800;  padding: 4px 10px;  border-radius: 6px;  text-transform: uppercase;  letter-spacing: 0.7px;  display: inline-flex;  align-items: center;  gap: 5px;  line-height: 1;  border: 1px solid transparent;  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);}.badge-severity.critical {  background: linear-gradient(135deg, #dc2626 0%, #991b1b 100%);  color: var(--text-inverse);  border-color: #ef4444;  animation: pulse-critical-glow 2.2s infinite ease-in-out;}.badge-severity.major {  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);  color: var(--text-inverse);  border-color: #f59e0b;  box-shadow: 0 2px 8px rgba(217, 119, 6, 0.4);}.badge-severity.minor {  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);  color: var(--text-inverse);  border-color: #60a5fa;  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.4);}.badge-status {  font-size: 11px;  font-weight: 800;  padding: 4px 9px;  border-radius: 6px;  display: inline-flex;  align-items: center;  gap: 5px;  letter-spacing: 0.4px;}.badge-status.open {  background: rgba(239, 68, 68, 0.2);  color: #fca5a5;  border: 1px solid rgba(239, 68, 68, 0.45);}.badge-status.resolved {  background: rgba(168, 85, 247, 0.2);  color: #e9d5ff;  border: 1px solid rgba(168, 85, 247, 0.45);}.badge-status.verified {  background: rgba(16, 185, 129, 0.2);  color: #6ee7b7;  border: 1px solid rgba(16, 185, 129, 0.45);}.snag-body {  display: flex;  gap: 14px;}.snag-photo-box {  width: 104px;  height: 104px;  min-width: 104px;  border-radius: var(--radius-md);  overflow: hidden;  border: 1.5px solid rgba(255, 255, 255, 0.14);  background: #090d16;  cursor: pointer;  position: relative;  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);  transform: translateZ(0);}.snag-photo-box img {  width: 100%;  height: 100%;  object-fit: cover;  object-position: center;  image-rendering: -webkit-optimize-contrast;  image-rendering: crisp-edges;  transform: translateZ(0);  -webkit-backface-visibility: hidden;  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);}.snag-photo-box:hover img {  transform: scale(1.08);}.snag-photo-box .photo-zoom-icon {  position: absolute;  bottom: 4px;  right: 4px;  background: rgba(15, 23, 42, 0.88);  backdrop-filter: blur(6px);  -webkit-backdrop-filter: blur(6px);  color: var(--text-inverse);  font-size: 10px;  font-weight: 700;  padding: 3px 6px;  border-radius: 4px;  border: 1px solid rgba(255, 255, 255, 0.2);  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);  display: flex;  align-items: center;  gap: 3px;  letter-spacing: 0.3px;}.snag-details {  flex: 1;  display: flex;  flex-direction: column;  gap: 6px;  min-width: 0;}.snag-title {  font-size: 14.5px;  font-weight: 700;  color: var(--text-main);  line-height: 1.35;  word-break: break-word;}.snag-meta-row {  display: flex;  flex-wrap: wrap;  gap: 6px;  font-size: 12px;  color: var(--text-dim);}.snag-meta-tag {  display: inline-flex;  align-items: center;  gap: 4px;  background: var(--bg-subtle);  padding: 3px 7px;  border-radius: 4px;  border: 1px solid var(--border-color);  font-size: 11.5px;}.snag-remarks-box {  background: var(--bg-subtle);  padding: 8px 10px;  border-radius: var(--radius-sm);  border-left: 3px solid var(--text-dim);  font-size: 12px;  color: var(--text-muted);  line-height: 1.4;}.snag-lifecycle-stepper {  display: flex;  align-items: center;  justify-content: space-between;  background: rgba(15, 23, 42, 0.6);  border: 1px solid rgba(255, 255, 255, 0.08);  border-radius: 8px;  padding: 8px 12px;  gap: 6px;}.stepper-stage {  display: flex;  align-items: center;  gap: 6px;  font-size: 11px;  font-weight: 700;  color: var(--text-dim);  transition: all 0.2s ease;}.stepper-stage.active {  color: var(--primary);}.stepper-stage.done {  color: #34d399;}.stepper-icon {  width: 20px;  height: 20px;  border-radius: 50%;  display: inline-flex;  align-items: center;  justify-content: center;  font-size: 10px;  background: var(--bg-subtle);  border: 1px solid var(--border-color);}.stepper-stage.active .stepper-icon {  background: var(--primary);  border-color: var(--primary);  color: var(--text-inverse);  box-shadow: 0 0 8px rgba(37, 99, 235, 0.5);}.stepper-stage.done .stepper-icon {  background: var(--success);  border-color: var(--success);  color: var(--text-inverse);}.stepper-divider {  flex: 1;  height: 2px;  background: var(--border-color);}.stepper-divider.active {  background: #059669;}.snag-timestamps-bar {  display: flex;  flex-direction: column;  gap: 4px;  font-size: 11px;  color: var(--text-dim);  background: rgba(15, 23, 42, 0.45);  padding: 8px 10px;  border-radius: var(--radius-sm);  border: 1px dashed rgba(255, 255, 255, 0.1);}.timestamp-item {  display: flex;  align-items: center;  justify-content: space-between;  gap: 8px;}.timestamp-item.highlight-resolved {  color: #c084fc;  font-weight: 600;}.timestamp-item.highlight-verified {  color: #34d399;  font-weight: 700;}.snag-actions-row {  display: flex;  justify-content: space-between;  align-items: center;  gap: 8px;  margin-top: 4px;  padding-top: 10px;  border-top: 1px solid rgba(255, 255, 255, 0.08);}.btn-status-toggle {  display: inline-flex;  align-items: center;  gap: 6px;  padding: 8px 14px;  font-size: 12px;  font-weight: 800;  border-radius: var(--radius-sm);  border: none;  cursor: pointer;  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);  letter-spacing: 0.3px;  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);}.btn-status-toggle:hover {  transform: translateY(-1.5px);}.btn-status-toggle:active {  transform: translateY(0);}.btn-status-toggle.btn-to-resolved {  background: linear-gradient(135deg, #9333ea 0%, #7e22ce 100%);  color: var(--text-inverse);  border: 1px solid #a855f7;  box-shadow: 0 2px 10px rgba(147, 51, 234, 0.4);}.btn-status-toggle.btn-to-resolved:hover {  background: linear-gradient(135deg, #a855f7 0%, #9333ea 100%);  box-shadow: 0 4px 14px rgba(147, 51, 234, 0.55);}.btn-status-toggle.btn-to-verified {  background: linear-gradient(135deg, #059669 0%, #047857 100%);  color: var(--text-inverse);  border: 1px solid #10b981;  box-shadow: 0 2px 10px rgba(16, 185, 129, 0.4);}.btn-status-toggle.btn-to-verified:hover {  background: linear-gradient(135deg, #10b981 0%, #059669 100%);  box-shadow: 0 4px 14px rgba(16, 185, 129, 0.55);}.btn-status-toggle.btn-to-reopen {  background: var(--bg-subtle);  border: 1px solid var(--border-color);  color: var(--text-muted);  font-size: 11.5px;  font-weight: 700;  padding: 6px 10px;}.btn-status-toggle.btn-to-reopen:hover {  background: rgba(239, 68, 68, 0.18);  color: #f87171;  border-color: rgba(239, 68, 68, 0.5);}.snag-modal-preview-box {  width: 100%;  height: 140px;  border-radius: var(--radius-md);  overflow: hidden;  border: 1.5px solid var(--border-color);  background: #090d16;  position: relative;  margin-top: 8px;  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.4);}.snag-modal-preview-box img {  width: 100%;  height: 100%;  object-fit: cover;  object-position: center;  image-rendering: -webkit-optimize-contrast;}.snag-modal-preview-box .preview-badge {  position: absolute;  top: 8px;  left: 8px;  background: rgba(15, 23, 42, 0.85);  backdrop-filter: blur(4px);  color: var(--text-inverse);  font-size: 10px;  font-weight: 700;  padding: 3px 8px;  border-radius: 4px;  border: 1px solid rgba(255, 255, 255, 0.2);}.snag-empty-state {  grid-column: 1 / -1;  text-align: center;  padding: 48px 24px;  background: var(--bg-surface);  border: 1px dashed var(--border-color);  border-radius: var(--radius-lg);  color: var(--text-dim);}.snag-empty-icon {  font-size: 40px;  margin-bottom: 12px;}@media (max-width: 640px) {  .snag-card {    padding: 14px;    gap: 10px;  }  .snag-body {    gap: 10px;  }  .snag-photo-box {    width: 90px;    height: 90px;    min-width: 90px;  }  .snag-title {    font-size: 13.5px;  }  .snag-actions-row {    flex-direction: column;    align-items: stretch;    gap: 8px;  }  .btn-status-toggle {    justify-content: center;    width: 100%;    min-height: 40px;  }  .snag-lifecycle-stepper {    padding: 6px 8px;  }  .stepper-stage {    font-size: 10px;  }}.voucher-sheet {  background: #ffffff;  color: #0f172a;  border-radius: var(--radius-md);  padding: 32px;  box-shadow: var(--shadow-lg);  max-width: 860px;  margin: 0 auto;  font-family: var(--font-sans);  border: 1px solid #cbd5e1;}.voucher-header {  display: flex;  justify-content: space-between;  align-items: flex-start;  border-bottom: 2px solid #0f172a;  padding-bottom: 16px;  margin-bottom: 20px;  gap: 16px;}.voucher-brand-group {  display: flex;  flex-direction: column;  gap: 3px;}.voucher-brand-title {  font-size: 22px;  font-weight: 900;  color: #1e3a8a;  letter-spacing: 0.5px;  text-transform: uppercase;}.voucher-brand-tagline {  font-size: 11px;  font-weight: 700;  color: #475569;  text-transform: uppercase;  letter-spacing: 0.5px;}.voucher-company-address {  font-size: 11px;  color: #64748b;  max-width: 420px;  line-height: 1.4;  margin-top: 4px;}.voucher-company-tax {  font-size: 11px;  font-weight: 600;  color: #334155;  margin-top: 4px;}.voucher-meta-box {  text-align: right;  display: flex;  flex-direction: column;  gap: 4px;}.voucher-doc-title {  font-size: 18px;  font-weight: 900;  color: #047857;  letter-spacing: 0.5px;  background: #ecfdf5;  padding: 4px 12px;  border-radius: 4px;  border: 1px solid #a7f3d0;  display: inline-block;}.voucher-doc-num {  font-size: 13px;  font-weight: 800;  color: #0f172a;  font-family: monospace;}.voucher-doc-date {  font-size: 12px;  color: #475569;}.voucher-grid-two-col {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 16px;  margin-bottom: 20px;}.voucher-box {  background: #f8fafc;  border: 1px solid #e2e8f0;  border-radius: 6px;  padding: 14px;}.voucher-box-title {  font-size: 11px;  font-weight: 800;  text-transform: uppercase;  color: #64748b;  letter-spacing: 0.5px;  margin-bottom: 8px;  border-bottom: 1px solid #e2e8f0;  padding-bottom: 4px;}.voucher-party-name {  font-size: 15px;  font-weight: 800;  color: #0f172a;  margin-bottom: 4px;}.voucher-party-meta {  font-size: 12px;  color: #475569;  line-height: 1.45;}.voucher-amount-panel {  background: #f0fdf4;  border: 2px solid #86efac;  border-radius: 8px;  padding: 16px;  margin-bottom: 20px;  display: flex;  justify-content: space-between;  align-items: center;  gap: 16px;  flex-wrap: wrap;}.voucher-amount-main {  display: flex;  flex-direction: column;  gap: 2px;}.voucher-amount-label {  font-size: 11px;  font-weight: 800;  text-transform: uppercase;  color: #166534;  letter-spacing: 0.5px;}.voucher-amount-value {  font-size: 26px;  font-weight: 900;  color: #15803d;  letter-spacing: -0.5px;}.voucher-amount-words {  font-size: 12px;  font-weight: 600;  font-style: italic;  color: #1e293b;  background: rgba(255, 255, 255, 0.7);  padding: 6px 12px;  border-radius: 4px;  border: 1px solid #dcfce7;  flex: 1;  min-width: 250px;}.voucher-summary-table {  width: 100%;  border-collapse: collapse;  margin-bottom: 20px;  font-size: 12px;}.voucher-summary-table th {  background: #f1f5f9;  color: #334155;  font-weight: 700;  text-align: left;  padding: 8px 12px;  border: 1px solid #cbd5e1;}.voucher-summary-table td {  padding: 8px 12px;  border: 1px solid #cbd5e1;  color: #0f172a;}.voucher-notes-box {  background: #fffbeb;  border: 1px solid #fde68a;  border-radius: 6px;  padding: 10px 14px;  font-size: 12px;  color: #92400e;  margin-bottom: 24px;}.voucher-signatures-grid {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 40px;  margin-top: 32px;  padding-top: 16px;}.voucher-sig-block {  display: flex;  flex-direction: column;  align-items: center;  text-align: center;  gap: 6px;}.voucher-sig-line {  width: 100%;  max-width: 220px;  border-bottom: 1.5px dashed #64748b;  margin-bottom: 6px;  height: 36px;}.voucher-sig-title {  font-size: 12px;  font-weight: 800;  color: #0f172a;}.voucher-sig-sub {  font-size: 10px;  color: #64748b;  text-transform: uppercase;}.voucher-footer-note {  margin-top: 24px;  padding-top: 10px;  border-top: 1px solid #e2e8f0;  text-align: center;  font-size: 10px;  color: #94a3b8;  text-transform: uppercase;  letter-spacing: 0.5px;}@media (max-width: 640px) {  .voucher-sheet {    padding: 16px 12px;    border-radius: 8px;  }  .voucher-header {    flex-direction: column;    align-items: stretch;    gap: 14px;    padding-bottom: 12px;    margin-bottom: 14px;  }  .voucher-brand-title {    font-size: 18px;  }  .voucher-meta-box {    text-align: left;    background: #f8fafc;    padding: 10px 12px;    border-radius: 6px;    border: 1px solid #e2e8f0;  }  .voucher-doc-title {    font-size: 15px;    padding: 3px 8px;  }  .voucher-grid-two-col {    grid-template-columns: 1fr;    gap: 12px;    margin-bottom: 14px;  }  .voucher-amount-panel {    flex-direction: column;    align-items: stretch;    gap: 10px;    padding: 12px;    margin-bottom: 14px;  }  .voucher-amount-value {    font-size: 22px;  }  .voucher-amount-words {    font-size: 11px;    min-width: 0;    width: 100%;  }  .voucher-summary-table {    font-size: 11px;    display: block;    overflow-x: auto;    -webkit-overflow-scrolling: touch;    margin-bottom: 14px;  }  .voucher-summary-table th,  .voucher-summary-table td {    padding: 6px 8px;    white-space: nowrap;  }  .voucher-signatures-grid {    grid-template-columns: 1fr;    gap: 24px;    margin-top: 20px;    padding-top: 10px;  }}.desktop-only-table {  display: block;}.mobile-only-cards {  display: none;}@media (max-width: 768px) {  .desktop-only-table {    display: none !important;  }  .mobile-only-cards {    display: flex !important;    flex-direction: column;    gap: 12px;    margin-top: 10px;  }}.material-mobile-card {  background: var(--bg-surface, #1e293b);  border: 1px solid var(--border-color, #334155);  border-radius: var(--radius-md, 10px);  padding: 14px 16px;  display: flex;  flex-direction: column;  gap: 10px;  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.28);  position: relative;  transition: transform 0.15s ease, border-color 0.2s ease, box-shadow 0.2s ease;}.material-mobile-card:active {  transform: scale(0.99);}.material-mobile-card.card-warning-border {  border-color: rgba(245, 158, 11, 0.6) !important;  box-shadow: 0 0 14px rgba(245, 158, 11, 0.18) !important;}.material-mobile-card.card-danger-border {  border-color: rgba(239, 68, 68, 0.6) !important;  box-shadow: 0 0 14px rgba(239, 68, 68, 0.18) !important;}.mat-card-header {  display: flex;  justify-content: space-between;  align-items: flex-start;  gap: 8px;}.mat-card-title {  font-size: 15px;  font-weight: 700;  color: var(--text-main, #f8fafc);  line-height: 1.3;}.mat-card-subtitle {  font-size: 12px;  color: var(--text-muted, #94a3b8);  margin-top: 2px;}.mat-card-badges {  display: flex;  flex-wrap: wrap;  gap: 6px;  align-items: center;  justify-content: flex-end;}.mat-metrics-grid {  display: grid;  grid-template-columns: repeat(2, 1fr);  gap: 8px;  background: rgba(15, 23, 42, 0.65);  border: 1px solid rgba(255, 255, 255, 0.06);  border-radius: var(--radius-sm, 6px);  padding: 9px 12px;}.mat-metrics-grid.cols-3 {  grid-template-columns: repeat(3, 1fr);}.mat-metric-col {  display: flex;  flex-direction: column;  gap: 2px;}.mat-metric-label {  font-size: 10px;  text-transform: uppercase;  letter-spacing: 0.5px;  color: var(--text-muted, #94a3b8);}.mat-metric-val {  font-size: 13.5px;  font-weight: 700;  color: var(--text-main, #f8fafc);}.mat-metric-val.highlight-green {  color: #10b981;}.mat-metric-val.highlight-amber {  color: #f59e0b;}.mat-metric-val.highlight-red {  color: #ef4444;}.stock-progress-wrapper {  display: flex;  flex-direction: column;  gap: 4px;  margin: 2px 0;}.stock-progress-labels {  display: flex;  justify-content: space-between;  font-size: 11px;  color: var(--text-muted, #94a3b8);}.stock-progress-track {  width: 100%;  height: 6px;  background: rgba(255, 255, 255, 0.08);  border-radius: 999px;  overflow: hidden;}.stock-progress-fill {  height: 100%;  border-radius: 999px;  transition: width 0.3s ease;}.badge-overdraft {  display: inline-flex !important;  align-items: center;  gap: 5px;  font-weight: 700 !important;  letter-spacing: 0.3px;  padding: 4px 9px;  border-radius: 4px;}.pulse-dot-amber {  width: 7px;  height: 7px;  border-radius: 50%;  background-color: #f59e0b;  display: inline-block;  box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7);  animation: pulseAmber 1.8s infinite;}.pulse-dot-red {  width: 7px;  height: 7px;  border-radius: 50%;  background-color: #ef4444;  display: inline-block;  box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);  animation: pulseRed 1.8s infinite;}@keyframes pulseAmber {  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); }  70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(245, 158, 11, 0); }  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }}@keyframes pulseRed {  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }  70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }}.indent-summary-pill-box {  background: rgba(16, 185, 129, 0.08);  border: 1px solid rgba(16, 185, 129, 0.25);  border-radius: var(--radius-sm, 6px);  padding: 12px 14px;  margin-bottom: 14px;}.indent-summary-row {  display: flex;  justify-content: space-between;  align-items: center;  gap: 12px;}.mat-card-actions {  display: flex;  gap: 8px;  margin-top: 4px;  flex-wrap: wrap;}.mat-card-actions .btn {  flex: 1;  min-height: 42px;  display: inline-flex;  align-items: center;  justify-content: center;  font-size: 12.5px;  font-weight: 600;  padding: 8px 12px;  white-space: nowrap;}.btn-touch-primary {  background: var(--color-primary, #3b82f6) !important;  color: #fff !important;  border: none !important;  border-radius: var(--radius-sm, 6px);}.btn-touch-success {  background: linear-gradient(135deg, #10b981, #059669) !important;  color: #fff !important;  border: none !important;  border-radius: var(--radius-sm, 6px);}.btn-touch-warning {  background: linear-gradient(135deg, #f59e0b, #d97706) !important;  color: #111827 !important;  font-weight: 700 !important;  border: none !important;  border-radius: var(--radius-sm, 6px);}.btn-touch-whatsapp {  background: #25d366 !important;  color: #fff !important;  font-weight: 600 !important;  border: none !important;  border-radius: var(--radius-sm, 6px);}.btn-touch-outline {  background: transparent !important;  color: var(--text-main, #f8fafc) !important;  border: 1px solid var(--border-color, #475569) !important;  border-radius: var(--radius-sm, 6px);}.modal-conversion-container {  max-width: 580px;  width: 94%;}.project-workspace-header {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 16px;  margin-bottom: 20px;  display: flex;  justify-content: space-between;  align-items: center;  flex-wrap: wrap;  gap: 12px;}.workspace-subnav {  display: flex;  gap: 8px;  overflow-x: auto;  padding-bottom: 6px;  margin-bottom: 16px;  border-bottom: 1px solid var(--border-color);}.workspace-subnav-btn {  background: var(--bg-surface);  border: 1px solid var(--border-color);  color: var(--text-muted);  font-size: 13px;  font-weight: 600;  padding: 8px 16px;  border-radius: 20px;  cursor: pointer;  white-space: nowrap;  transition: all 0.2s ease;  min-height: 40px;  display: inline-flex;  align-items: center;  gap: 6px;}.workspace-subnav-btn:hover,.workspace-subnav-btn.active {  background: var(--primary);  color: #fff;  border-color: var(--primary);  box-shadow: var(--shadow-sm);}.document-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));  gap: 14px;  margin-top: 14px;}.document-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 14px;  display: flex;  flex-direction: column;  gap: 10px;  transition: transform 0.15s ease, box-shadow 0.15s ease;}.document-card:hover {  transform: translateY(-2px);  box-shadow: var(--shadow-md);}.doc-card-header {  display: flex;  align-items: flex-start;  gap: 10px;}.doc-icon-box {  width: 40px;  height: 40px;  border-radius: var(--radius-sm);  background: rgba(59, 130, 246, 0.12);  color: var(--primary);  display: flex;  align-items: center;  justify-content: center;  font-size: 20px;  flex-shrink: 0;}.doc-title-box {  flex: 1;}.doc-title {  font-size: 13.5px;  font-weight: 700;  color: var(--text-main);  margin-bottom: 2px;}.doc-meta {  font-size: 11.5px;  color: var(--text-dim);}.doc-preview-box {  height: 120px;  border-radius: var(--radius-sm);  background: var(--bg-subtle);  border: 1px solid var(--border-color);  overflow: hidden;  display: flex;  align-items: center;  justify-content: center;  position: relative;}.doc-preview-box img {  max-width: 100%;  max-height: 100%;  object-fit: cover;}.doc-card-footer {  display: flex;  justify-content: space-between;  align-items: center;  padding-top: 8px;  border-top: 1px solid var(--border-color);}.more-hub-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));  gap: 14px;}.more-hub-card {  background: var(--bg-surface);  border: 1px solid var(--border-color);  border-radius: var(--radius-md);  padding: 16px;  display: flex;  align-items: center;  gap: 14px;  cursor: pointer;  transition: all 0.2s ease;}.more-hub-card:hover {  background: var(--bg-card);  border-color: var(--primary);  transform: translateY(-2px);  box-shadow: var(--shadow-md);}.more-icon-box {  width: 48px;  height: 48px;  border-radius: var(--radius-md);  display: flex;  align-items: center;  justify-content: center;  font-size: 24px;  flex-shrink: 0;}.more-info-box {  flex: 1;}.more-card-title {  font-size: 14.5px;  font-weight: 700;  color: var(--text-main);  margin-bottom: 2px;}.more-card-desc {  font-size: 11.5px;  color: var(--text-dim);}.more-arrow {  color: var(--text-dim);  font-size: 16px;}@media (max-width: 768px) {  .ocr-split-view {    grid-template-columns: 1fr !important;  }}.top-header {
  height: 58px;
  padding: 0 16px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: var(--shadow-sm);
}
.header-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}
.brand-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  cursor: pointer;
}
.brand-icon {
  font-size: 18px;
  color: var(--primary);
}
.brand-title {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.5px;
  color: var(--text-main);
}
.project-selector-wrapper {
  display: flex;
  align-items: center;
  gap: 6px;
}
.project-dropdown {
  background: var(--bg-subtle);
  border: 1px solid var(--border-color);
  color: var(--text-main);
  font-size: 13.5px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  max-width: 200px;
  outline: none;
  transition: border-color 0.2s;
}
.project-dropdown:focus {
  border-color: var(--primary);
}
.header-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.connection-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #10b981;
}
.connection-status-dot.offline {
  background: #ef4444;
}
.btn-user-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  border: none;
  font-weight: 700;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.15s;
}
.btn-user-avatar:active {
  transform: scale(0.95);
}
.owner-welcome-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding: 4px 0;
}
.welcome-heading {
  font-size: 19px;
  font-weight: 800;
  color: var(--text-main);
  margin-bottom: 2px;
}
.welcome-subtext {
  font-size: 12.5px;
  color: var(--text-dim);
}
.clean-section-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
}
.clean-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.clean-section-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.attention-projects-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.attention-project-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: var(--bg-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background 0.15s;
}
.attention-project-row:hover {
  background: var(--bg-card-hover);
  border-color: var(--border-color);
}
.proj-row-left {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.proj-row-name {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-main);
}
.proj-row-flags {
  font-size: 11.5px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.flag-badge {
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10.5px;
  font-weight: 600;
}
.flag-badge.warning {
  background: rgba(245, 158, 11, 0.15);
  color: #b45309;
}
.flag-badge.success {
  background: rgba(16, 185, 129, 0.15);
  color: #047857;
}
.flag-badge.danger {
  background: rgba(239, 68, 68, 0.15);
  color: #b91c1c;
}
.today-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}
.today-metric-tile {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  padding: 10px 8px;
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.today-metric-num {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-main);
  line-height: 1.2;
}
.today-metric-label {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--text-dim);
  margin-top: 2px;
}
.workspace-hub-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
}
.hub-hero-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}
.hub-hero-title {
  font-size: 17px;
  font-weight: 800;
  color: var(--text-main);
}
.hub-hero-meta {
  font-size: 12px;
  color: var(--text-dim);
  margin-top: 2px;
}
.hub-progress-pill {
  font-size: 13px;
  font-weight: 800;
  color: var(--primary);
  background: rgba(37, 99, 235, 0.1);
  padding: 4px 10px;
  border-radius: 12px;
}
.hub-progress-track {
  height: 6px;
  background: var(--bg-subtle);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 16px;
}
.hub-progress-bar {
  height: 100%;
  background: var(--primary);
  border-radius: 3px;
  transition: width 0.3s;
}
.more-group-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.more-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.more-group-label {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--text-dim);
  padding-left: 4px;
}
.more-group-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.more-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  border-bottom: 1px solid var(--border-subtle);
  cursor: pointer;
  transition: background 0.15s;
}
.more-list-row:last-child {
  border-bottom: none;
}
.more-list-row:hover {
  background: var(--bg-card-hover);
}
.more-row-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.more-row-icon {
  font-size: 18px;
  width: 28px;
  text-align: center;
}
.more-row-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.more-row-title {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text-main);
}
.more-row-subtext {
  font-size: 11px;
  color: var(--text-dim);
}
.more-row-arrow {
  font-size: 14px;
  color: var(--text-dim);
}
.fab-main-btn {
  width: 54px;
  height: 54px;
  border-radius: 27px;
  background: var(--primary);
  color: #ffffff;
  border: none;
  font-size: 26px;
  font-weight: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35);
  cursor: pointer;
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.fab-main-btn:active {
  transform: scale(0.92);
}
.fab-main-icon {
  line-height: 1;
}
.fab-speed-dial-container.open .fab-main-btn {
  transform: rotate(45deg);
  background: #475569;
}
body {
  font-family: var(--font-sans);
  color: var(--text-main);
  background-color: var(--bg-main);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, .pane-title, .welcome-heading {
  letter-spacing: -0.025em;
  font-weight: 800;
  color: var(--text-main);
}
h4, h5, .clean-section-title, .more-card-title {
  letter-spacing: -0.015em;
  font-weight: 700;
}
.pane-desc, .welcome-subtext, .hub-hero-meta {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.45;
}
.clean-section-card,
.workspace-hub-card,
.metric-card,
.more-group-card,
.document-card,
.today-metric-tile {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.clean-section-card:hover,
.workspace-hub-card:hover,
.more-group-card:hover,
.today-metric-tile:hover {
  border-color: rgba(37, 99, 235, 0.25);
  box-shadow: var(--shadow-md);
}
.badge, .flag-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}
.badge-approved, .flag-badge.success {
  background: #ecfdf5 !important;
  color: #047857 !important;
  border: 1px solid rgba(16, 185, 129, 0.2);
}
.badge-warning, .flag-badge.warning {
  background: #fffbeb !important;
  color: #b45309 !important;
  border: 1px solid rgba(245, 158, 11, 0.25);
}
.badge-danger, .flag-badge.danger {
  background: #fef2f2 !important;
  color: #b91c1c !important;
  border: 1px solid rgba(239, 68, 68, 0.2);
}
.badge-primary, .badge-info {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  border: 1px solid rgba(37, 99, 235, 0.2);
}
.form-input, .project-dropdown, .search-input, .filter-dropdown {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  color: var(--text-main);
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  font-size: 13.5px;
  font-family: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.form-input:focus, .project-dropdown:focus, .search-input:focus, .filter-dropdown:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
  min-height: 38px;
}
.btn:active {
  transform: scale(0.98);
}
.btn-primary {
  background: var(--primary);
  color: #ffffff;
  box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
}
.btn-primary:hover {
  background: var(--primary-hover);
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.3);
}
.btn-outline {
  background: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-main);
}
.btn-outline:hover {
  background: var(--bg-card-hover);
  border-color: var(--text-dim);
}
.workspace-subnav-btn {
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 9999px;
  font-size: 12.5px;
  color: var(--text-muted);
  background: var(--bg-subtle);
  border: 1px solid transparent;
  transition: all 0.15s ease;
}
.workspace-subnav-btn:hover {
  color: var(--text-main);
  background: var(--bg-card-hover);
}
.workspace-subnav-btn.active {
  background: var(--primary);
  color: #ffffff !important;
  box-shadow: 0 1px 3px rgba(37, 99, 235, 0.3);
}
.empty-state-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  text-align: center;
  background: var(--bg-subtle);
  border: 1px dashed var(--border-color);
  border-radius: var(--radius-md);
}
.empty-state-icon {
  font-size: 32px;
  margin-bottom: 8px;
}
.empty-state-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-main);
  margin-bottom: 4px;
}
.empty-state-text {
  font-size: 12.5px;
  color: var(--text-dim);
  max-width: 280px;
  margin-bottom: 12px;
}
.login-overlay {
  position: fixed;
  inset: 0;
  background: #090d16;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.login-modal-card {
  width: 100%;
  max-width: 420px;
  background: #ffffff;
  border-radius: 20px;
  padding: 28px 24px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
}
.login-brand-header {
  text-align: center;
  margin-bottom: 20px;
}
.login-logo-badge {
  width: 52px;
  height: 52px;
  background: linear-gradient(135deg, #f59e0b, #d97706);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  margin: 0 auto 10px auto;
  box-shadow: 0 8px 16px -4px rgba(245, 158, 11, 0.4);
}
.login-title {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.5px;
  color: #0f172a;
  margin: 0 0 4px 0;
}
.login-subtitle {
  font-size: 12px;
  font-weight: 500;
  color: #64748b;
  margin: 0;
}
.login-role-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #f1f5f9;
  padding: 4px;
  border-radius: 10px;
  margin-bottom: 18px;
  gap: 4px;
}
.login-role-tab {
  padding: 8px 10px;
  border-radius: 8px;
  border: none;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s ease;
}
.login-role-tab.active {
  background: #ffffff;
  color: #0f172a;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
}
.login-form .form-group {
  margin-bottom: 12px;
}
.login-form .form-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 4px;
}
.login-form .form-input {
  width: 100%;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
}
.login-form .form-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.quick-login-section {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #e2e8f0;
}
.quick-login-divider {
  text-align: center;
  margin-bottom: 10px;
}
.quick-login-divider span {
  font-size: 10px;
  font-weight: 800;
  color: #94a3b8;
  letter-spacing: 0.5px;
}
.quick-login-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.btn-quick-login {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s ease;
}
.btn-quick-login:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}
.btn-quick-login .ql-icon {
  font-size: 16px;
}
.btn-quick-login .ql-label {
  font-size: 12px;
  font-weight: 700;
  color: #1e293b;
}
.login-footer-notice {
  margin-top: 16px;
  text-align: center;
  font-size: 10px;
  line-height: 1.4;
  color: #94a3b8;
}
.pane-header-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  margin-bottom: 6px;
}
.pane-title-compact {
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}
.task-mini-metrics-bar {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 6px;
  margin-bottom: 8px;
  scrollbar-width: none;
}
.task-mini-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.chip-inprogress { background: #eff6ff; color: #1d4ed8; border: 1px solid #dbeafe; }
.chip-delayed { background: #fef2f2; color: #b91c1c; border: 1px solid #fee2e2; }
.chip-todo { background: #f8fafc; color: #475569; border: 1px solid #e2e8f0; }
.chip-completed { background: #f0fdf4; color: #15803d; border: 1px solid #dcfce7; }
.chip-dot { font-size: 8px; }
.task-compact-filter-bar {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 6px;
  margin-bottom: 12px;
}
.task-search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.task-search-input-wrapper .search-icon {
  position: absolute;
  left: 8px;
  font-size: 12px;
  color: #94a3b8;
  pointer-events: none;
}
.compact-search-input {
  width: 100%;
  padding: 6px 24px 6px 26px;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  font-size: 12px;
  font-weight: 500;
  background: #ffffff;
}
.search-clear-btn {
  position: absolute;
  right: 6px;
  background: transparent;
  border: none;
  font-size: 11px;
  color: #94a3b8;
  cursor: pointer;
}
.compact-dropdown {
  padding: 6px 8px;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  font-size: 12px;
  font-weight: 600;
  color: #1e293b;
  background: #ffffff;
}
.team-engineer-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  margin-bottom: 8px;
}
.team-engineer-info h5 {
  margin: 0 0 2px 0;
  font-size: 14px;
  font-weight: 700;
  color: #0f172a;
}
.team-engineer-info p {
  margin: 0;
  font-size: 12px;
  color: #64748b;
}
.team-engineer-actions {
  display: flex;
  gap: 6px;
}
.site-engineer-container {
  min-height: 100vh;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  padding-bottom: 24px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #0f172a;
}
.eng-header {
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.eng-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.eng-brand-badge {
  display: flex;
  align-items: center;
  gap: 4px;
}
.eng-brand-icon {
  font-size: 15px;
}
.eng-brand-title {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.5px;
  color: #0f172a;
}
.eng-project-pill {
  display: flex;
  align-items: center;
  gap: 4px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 11px;
}
.eng-project-label {
  color: #64748b;
  font-weight: 600;
}
.eng-project-name {
  color: #0f172a;
  font-weight: 700;
}
.eng-header-right {
  display: flex;
  align-items: center;
}
.eng-user-profile {
  display: flex;
  align-items: center;
  gap: 5px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  padding: 3px 8px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 11px;
}
.eng-user-name {
  font-weight: 600;
  color: #334155;
}
.eng-logout-tag {
  font-size: 10px;
  color: #dc2626;
  font-weight: 700;
  text-transform: uppercase;
  margin-left: 2px;
}
.eng-main-content {
  padding: 12px;
  max-width: 520px;
  margin: 0 auto;
  width: 100%;
}
.eng-primary-actions-section {
  margin-bottom: 14px;
}
.eng-actions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.eng-action-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 6px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  text-align: center;
  cursor: pointer;
  transition: all 0.1s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.eng-action-card:active {
  background: #f1f5f9;
  border-color: #94a3b8;
}
.card-work {
  border-top: 3px solid #2563eb;
}
.card-material {
  border-top: 3px solid #d97706;
}
.card-photo {
  border-top: 3px solid #059669;
}
.eng-action-icon-wrapper {
  font-size: 20px;
  margin-bottom: 4px;
}
.eng-action-text h3 {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2px;
  color: #0f172a;
  text-transform: uppercase;
}
.eng-action-text p {
  display: none; 
}
.eng-work-section {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 12px;
  margin-bottom: 14px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.eng-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid #f1f5f9;
}
.eng-section-title {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  color: #0f172a;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.eng-task-count-badge {
  background: #f1f5f9;
  color: #475569;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid #e2e8f0;
}
.eng-task-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 10px 12px;
  margin-bottom: 8px;
}
.eng-task-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 6px;
}
.eng-task-title {
  font-size: 13px;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 2px 0;
}
.eng-task-trade {
  font-size: 11px;
  font-weight: 500;
  color: #64748b;
  margin: 0;
}
.eng-task-percent-badge {
  font-size: 12px;
  font-weight: 800;
  color: #1e40af;
  background: #eff6ff;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid #dbeafe;
}
.eng-progress-bar-container {
  height: 4px;
  background: #e2e8f0;
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 8px;
}
.eng-progress-bar-fill {
  height: 100%;
  background: #2563eb;
  border-radius: 2px;
  transition: width 0.15s ease;
}
.eng-quick-buttons-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
}
.btn-eng-quick {
  padding: 5px 2px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #334155;
  cursor: pointer;
  transition: all 0.1s ease;
}
.btn-eng-quick:hover {
  background: #e2e8f0;
}
.btn-eng-quick.active {
  background: #1e40af;
  color: #ffffff;
  border-color: #1e40af;
}
.eng-activity-section {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.eng-today-activity-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.eng-activity-stat-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  padding: 8px 10px;
  text-align: center;
}
.eng-activity-stat-num {
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 1px;
}
.eng-activity-stat-label {
  font-size: 10px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
}
.eng-modal-container {
  max-width: 440px;
  border-radius: 8px !important;
  border: 1px solid #cbd5e1;
}
.eng-photo-picker-box {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 12px;
  text-align: center;
}
.eng-camera-btn {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  padding: 6px;
}
.eng-camera-btn .camera-icon {
  font-size: 20px;
}
.eng-camera-btn .camera-label {
  font-size: 13px;
  font-weight: 700;
  color: #2563eb;
}
.form-input-lg {
  padding: 8px 10px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
}
:root, [data-theme="industrial-gold"] {
  --theme-primary: #f59e0b;
  --theme-primary-hover: #d97706;
  --theme-primary-text: #0f172a;
  --theme-primary-light: #fef3c7;
  --theme-primary-border: #fde68a;
  --theme-bg-main: #f8fafc;
  --theme-bg-surface: #ffffff;
  --theme-bg-subtle: #f1f5f9;
  --theme-border: #e2e8f0;
  --theme-border-strong: #cbd5e1;
  --theme-text-main: #0f172a;
  --theme-text-muted: #64748b;
  --theme-accent: #2563eb;
  --theme-accent-light: #eff6ff;
  --theme-header-bg: #ffffff;
  --theme-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
[data-theme="blueprint-navy"] {
  --theme-primary: #2563eb;
  --theme-primary-hover: #1d4ed8;
  --theme-primary-text: #ffffff;
  --theme-primary-light: #eff6ff;
  --theme-primary-border: #bfdbfe;
  --theme-bg-main: #f0f4f8;
  --theme-bg-surface: #ffffff;
  --theme-bg-subtle: #e2e8f0;
  --theme-border: #cbd5e1;
  --theme-border-strong: #94a3b8;
  --theme-text-main: #0f2744;
  --theme-text-muted: #475569;
  --theme-accent: #0284c7;
  --theme-accent-light: #e0f2fe;
  --theme-header-bg: #0f2744;
  --theme-header-text: #ffffff;
  --theme-card-shadow: 0 1px 3px rgba(15, 39, 68, 0.06);
}
[data-theme="nordic-minimal"] {
  --theme-primary: #18181b;
  --theme-primary-hover: #27272a;
  --theme-primary-text: #ffffff;
  --theme-primary-light: #f4f4f5;
  --theme-primary-border: #e4e4e7;
  --theme-bg-main: #fafafa;
  --theme-bg-surface: #ffffff;
  --theme-bg-subtle: #f4f4f5;
  --theme-border: #e4e4e7;
  --theme-border-strong: #d4d4d8;
  --theme-text-main: #18181b;
  --theme-text-muted: #71717a;
  --theme-accent: #059669;
  --theme-accent-light: #ecfdf5;
  --theme-header-bg: #ffffff;
  --theme-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
[data-theme="terracotta-civil"] {
  --theme-primary: #ea580c;
  --theme-primary-hover: #c2410c;
  --theme-primary-text: #ffffff;
  --theme-primary-light: #ffedd5;
  --theme-primary-border: #fed7aa;
  --theme-bg-main: #fdfaf6;
  --theme-bg-surface: #ffffff;
  --theme-bg-subtle: #f5efe6;
  --theme-border: #e8ded2;
  --theme-border-strong: #d3c4b2;
  --theme-text-main: #2b1f1d;
  --theme-text-muted: #7c6c68;
  --theme-accent: #d97706;
  --theme-accent-light: #fef3c7;
  --theme-header-bg: #2b1f1d;
  --theme-header-text: #ffffff;
  --theme-card-shadow: 0 1px 3px rgba(43, 31, 29, 0.05);
}
[data-theme="midnight-dark"] {
  --theme-primary: #f59e0b;
  --theme-primary-hover: #fbbf24;
  --theme-primary-text: #0b0f19;
  --theme-primary-light: #1e293b;
  --theme-primary-border: #334155;
  --theme-bg-main: #0b0f19;
  --theme-bg-surface: #131b2e;
  --theme-bg-subtle: #1e293b;
  --theme-border: #243049;
  --theme-border-strong: #3b4d75;
  --theme-text-main: #f8fafc;
  --theme-text-muted: #94a3b8;
  --theme-accent: #38bdf8;
  --theme-accent-light: #0c253d;
  --theme-header-bg: #131b2e;
  --theme-header-text: #f8fafc;
  --theme-card-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}
[data-font="inter"] {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, sans-serif !important;
}
[data-font="roboto"] {
  font-family: "Roboto", "Segoe UI", Arial, sans-serif !important;
}
[data-font="outfit"] {
  font-family: "Plus Jakarta Sans", "Outfit", system-ui, sans-serif !important;
}
[data-font="system"] {
  font-family: system-ui, -apple-system, sans-serif !important;
}
[data-radius="sharp"] {
  --radius-custom: 2px !important;
}
[data-radius="rounded"] {
  --radius-custom: 6px !important;
}
[data-radius="card"] {
  --radius-custom: 10px !important;
}
[data-anim="instant"] * {
  transition: none !important;
  animation-duration: 0.001s !important;
}
[data-anim="smooth"] * {
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease !important;
}
body {
  background-color: var(--theme-bg-main) !important;
  color: var(--theme-text-main) !important;
}
.site-engineer-container {
  background: var(--theme-bg-main) !important;
  color: var(--theme-text-main) !important;
}
.eng-header {
  background: var(--theme-header-bg) !important;
  border-bottom: 1px solid var(--theme-border) !important;
}
[data-theme="blueprint-navy"] .eng-header,
[data-theme="terracotta-civil"] .eng-header {
  color: #ffffff;
}
[data-theme="blueprint-navy"] .eng-brand-title,
[data-theme="terracotta-civil"] .eng-brand-title {
  color: #ffffff !important;
}
[data-theme="blueprint-navy"] .eng-project-pill,
[data-theme="terracotta-civil"] .eng-project-pill {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
}
[data-theme="blueprint-navy"] .eng-project-label,
[data-theme="terracotta-civil"] .eng-project-label,
[data-theme="blueprint-navy"] .eng-project-name,
[data-theme="terracotta-civil"] .eng-project-name {
  color: #ffffff !important;
}
.eng-action-card,
.eng-work-section,
.eng-activity-section,
.eng-task-card,
.overview-card,
.metric-card,
.task-card,
.material-delivery-card,
.photo-card {
  background: var(--theme-bg-surface) !important;
  border-color: var(--theme-border) !important;
  box-shadow: var(--theme-card-shadow) !important;
  border-radius: var(--radius-custom, 6px) !important;
}
.eng-action-text h3,
.eng-section-title,
.eng-task-title {
  color: var(--theme-text-main) !important;
}
.eng-task-trade,
.eng-task-count-badge,
.eng-today-date {
  color: var(--theme-text-muted) !important;
}
.btn-eng-quick {
  background: var(--theme-bg-subtle) !important;
  border-color: var(--theme-border-strong) !important;
  color: var(--theme-text-main) !important;
  border-radius: var(--radius-custom, 4px) !important;
}
.btn-eng-quick.active {
  background: var(--theme-primary) !important;
  color: var(--theme-primary-text) !important;
  border-color: var(--theme-primary-hover) !important;
}
.eng-task-percent-badge {
  background: var(--theme-primary-light) !important;
  color: var(--theme-primary-hover) !important;
  border-color: var(--theme-primary-border) !important;
  border-radius: var(--radius-custom, 4px) !important;
}
.eng-progress-bar-fill {
  background: var(--theme-primary) !important;
}
.theme-modal-container {
  max-width: 480px;
  background: var(--theme-bg-surface) !important;
  color: var(--theme-text-main) !important;
  border: 1px solid var(--theme-border-strong) !important;
  border-radius: 8px !important;
}
.theme-options-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
.theme-card-option {
  border: 2px solid var(--theme-border);
  background: var(--theme-bg-subtle);
  border-radius: 6px;
  padding: 10px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: all 0.1s ease;
}
.theme-card-option:hover {
  border-color: var(--theme-primary);
}
.theme-card-option.active {
  border-color: var(--theme-primary);
  background: var(--theme-primary-light);
  box-shadow: 0 0 0 2px var(--theme-primary);
}
.theme-swatch-bar {
  display: flex;
  height: 14px;
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.1);
}
.theme-swatch-color {
  flex: 1;
}
.theme-card-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--theme-text-main);
  margin: 0;
}
.theme-card-desc {
  font-size: 10px;
  color: var(--theme-text-muted);
  margin: 0;
}
.setting-row-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.setting-chip {
  padding: 6px 12px;
  border: 1px solid var(--theme-border-strong);
  background: var(--theme-bg-subtle);
  color: var(--theme-text-main);
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.setting-chip.active {
  background: var(--theme-primary);
  color: var(--theme-primary-text);
  border-color: var(--theme-primary-hover);
}
:root {
  --safe-top: max(10px, env(safe-area-inset-top, 0px));
  --safe-bottom: max(16px, env(safe-area-inset-bottom, 0px));
  --safe-left: max(0px, env(safe-area-inset-left, 0px));
  --safe-right: max(0px, env(safe-area-inset-right, 0px));
}
.top-header {
  padding-top: max(10px, var(--safe-top)) !important;
  padding-left: max(16px, var(--safe-left)) !important;
  padding-right: max(16px, var(--safe-right)) !important;
}
.main-container {
  padding-bottom: calc(88px + var(--safe-bottom)) !important;
}
.mobile-bottom-nav {
  height: calc(62px + var(--safe-bottom)) !important;
  padding-bottom: var(--safe-bottom) !important;
  display: flex !important;
  justify-content: space-around !important;
  align-items: center !important;
}
.mobile-nav-item {
  flex: 1 !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}
.header-project-context {
  display: flex;
  align-items: center;
  gap: 8px;
}
.btn-back-projects {
  background: var(--bg-subtle, #f1f5f9);
  border: 1px solid var(--border-color, #cbd5e1);
  color: var(--text-main, #0f172a);
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.btn-back-projects:hover, .btn-back-projects:active {
  background: var(--bg-card-hover, #e2e8f0);
  border-color: var(--primary);
}
.context-divider {
  color: var(--text-dim, #64748b);
  font-weight: 700;
}
.context-project-name {
  font-size: 15px;
  font-weight: 800;
  color: var(--text-main, #0f172a);
  max-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.projects-list-header-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.projects-search-box {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
}
.projects-search-box .search-icon {
  position: absolute;
  left: 12px;
  font-size: 14px;
  color: var(--text-dim);
  pointer-events: none;
}
.compact-search-input {
  width: 100%;
  padding: 10px 32px 10px 36px;
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  font-size: 14px;
  color: var(--text-main);
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.compact-search-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.search-clear-btn {
  position: absolute;
  right: 10px;
  background: none;
  border: none;
  color: var(--text-dim);
  font-size: 14px;
  cursor: pointer;
  padding: 4px;
}
.btn-new-project {
  white-space: nowrap;
  padding: 10px 14px !important;
  font-weight: 700;
  border-radius: 10px;
}
.projects-filter-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.filter-chips-group {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 2px;
}
.filter-chip {
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 20px;
  border: 1px solid var(--border-color);
  background: var(--bg-surface);
  color: var(--text-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.12s ease;
}
.filter-chip.active {
  background: var(--primary);
  color: #ffffff;
  border-color: var(--primary);
}
.chip-priority-high.active {
  background: #ef4444 !important;
  border-color: #ef4444 !important;
  color: #fff !important;
}
.chip-priority-medium.active {
  background: #f59e0b !important;
  border-color: #f59e0b !important;
  color: #fff !important;
}
.chip-priority-low.active {
  background: #64748b !important;
  border-color: #64748b !important;
  color: #fff !important;
}
.status-toggle-group {
  display: inline-flex;
  background: var(--bg-subtle);
  padding: 3px;
  border-radius: 8px;
  border: 1px solid var(--border-color);
}
.status-toggle-btn {
  background: none;
  border: none;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.12s ease;
}
.status-toggle-btn.active {
  background: var(--bg-surface);
  color: var(--text-main);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.dense-projects-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dense-project-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-left: 4px solid #94a3b8; /* Subtle 4px left priority border */
  border-radius: 12px;
  cursor: pointer;
  transition: transform 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
  position: relative;
  overflow: hidden;
}
.dense-project-card:hover {
  border-color: var(--primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}
.dense-project-card:active {
  transform: scale(0.99);
}
.dense-project-card.priority-high {
  border-left-color: #ef4444;
}
.dense-project-card.priority-medium {
  border-left-color: #f59e0b;
}
.dense-project-card.priority-low {
  border-left-color: #94a3b8;
}
.dense-proj-left {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
}
.dense-proj-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
}
.dense-proj-name {
  font-size: 15px;
  font-weight: 800;
  color: var(--text-main);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.35;
  word-break: break-word;
}
.dense-proj-location {
  font-size: 12px;
  color: var(--text-dim);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 3px;
}
.dense-proj-right {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-left: 12px;
}
.dense-proj-arrow {
  color: var(--text-dim);
  font-size: 18px;
  font-weight: 700;
}
.project-detail-header-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 16px;
}
.project-detail-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.btn-back-to-list {
  background: none;
  border: none;
  color: var(--primary);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
}
.project-priority-badge {
  font-size: 11px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 20px;
  letter-spacing: 0.4px;
}
.project-priority-badge.high { background: rgba(239, 68, 68, 0.12); color: #dc2626; }
.project-priority-badge.medium { background: rgba(245, 158, 11, 0.12); color: #d97706; }
.project-priority-badge.low { background: rgba(100, 116, 139, 0.12); color: #64748b; }
.project-detail-name {
  font-size: 22px;
  font-weight: 900;
  color: var(--text-main);
  margin: 0;
  letter-spacing: -0.3px;
}
.project-detail-location {
  font-size: 13px;
  color: var(--text-dim);
  margin: 4px 0 0 0;
}
.project-tiles-container {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.project-big-tile {
  display: flex;
  align-items: center;
  padding: 22px 20px;
  border-radius: 16px;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s ease, border-color 0.15s ease;
  position: relative;
  overflow: hidden;
}
.project-big-tile:active {
  transform: scale(0.98);
}
.project-big-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.tile-material {
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
  border-color: #bfdbfe;
  color: #1e3a8a;
}
.tile-material .tile-icon-wrapper {
  background: #2563eb;
  color: #ffffff;
}
.tile-labour {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
  border-color: #fde68a;
  color: #78350f;
}
.tile-labour .tile-icon-wrapper {
  background: #d97706;
  color: #ffffff;
}
.tile-file {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border-color: #bbf7d0;
  color: #14532d;
}
.tile-file .tile-icon-wrapper {
  background: #16a34a;
  color: #ffffff;
}
body.theme-dark .tile-material {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.15) 0%, rgba(30, 58, 138, 0.3) 100%);
  border-color: rgba(59, 130, 246, 0.3);
  color: #93c5fd;
}
body.theme-dark .tile-labour {
  background: linear-gradient(135deg, rgba(217, 119, 6, 0.15) 0%, rgba(146, 64, 14, 0.3) 100%);
  border-color: rgba(245, 158, 11, 0.3);
  color: #fcd34d;
}
body.theme-dark .tile-file {
  background: linear-gradient(135deg, rgba(22, 163, 74, 0.15) 0%, rgba(20, 83, 45, 0.3) 100%);
  border-color: rgba(34, 197, 94, 0.3);
  color: #86efac;
}
.tile-icon-wrapper {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  margin-right: 18px;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.tile-text-content {
  flex: 1;
  min-width: 0;
}
.tile-title {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0.5px;
  margin: 0 0 4px 0;
  line-height: 1.2;
}
.tile-description {
  font-size: 13px;
  margin: 0;
  opacity: 0.85;
  line-height: 1.3;
}
.tile-chevron {
  font-size: 20px;
  font-weight: 900;
  margin-left: 14px;
  opacity: 0.7;
}
.task-checklist-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  margin-bottom: 8px;
  transition: all 0.12s ease;
  min-height: 50px;
}
.task-checklist-item:hover {
  border-color: var(--primary);
}
.task-chk-toggle {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  border: 2px solid var(--border-color-strong, #cbd5e1);
  background: var(--bg-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.12s ease;
  color: transparent;
  user-select: none;
}
.task-checklist-item.completed .task-chk-toggle {
  background: #10b981;
  border-color: #10b981;
  color: #ffffff;
}
.task-chk-body {
  flex: 1;
  min-width: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  padding: 2px 0;
}
.task-chk-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text-main);
  line-height: 1.35;
  word-break: break-word;
}
.task-checklist-item.completed .task-chk-title,
.task-chk-title.task-done {
  text-decoration: line-through;
  color: var(--text-dim);
}
.task-chk-sub {
  font-size: 11px;
  color: var(--text-dim);
  margin-top: 2px;
}
.task-chk-right {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.task-chk-trade-chip {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--bg-subtle);
  color: var(--text-muted);
}
.task-chk-progress-chip {
  font-size: 11px;
  font-weight: 800;
  font-family: var(--font-mono);
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(37, 99, 235, 0.1);
  color: var(--primary);
}
.task-checklist-item.completed .task-chk-progress-chip {
  background: rgba(16, 185, 129, 0.12);
  color: #10b981;
}
.task-detail-progress-card {
  background: var(--bg-subtle);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 14px;
}
.progress-label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  font-weight: 700;
  font-size: 14px;
}
.progress-percent-val {
  font-family: var(--font-mono);
  font-size: 16px;
  font-weight: 900;
  color: var(--primary);
}
.task-progress-range {
  width: 100%;
  height: 8px;
  border-radius: 4px;
  background: #e2e8f0;
  outline: none;
  cursor: pointer;
  margin-bottom: 12px;
}
.progress-pill-selectors {
  display: flex;
  gap: 6px;
  justify-content: space-between;
}
.prog-pill {
  flex: 1;
  padding: 6px 0;
  font-size: 12px;
  font-weight: 800;
  border: 1px solid var(--border-color);
  background: var(--bg-surface);
  border-radius: 6px;
  cursor: pointer;
  text-align: center;
  color: var(--text-muted);
  transition: all 0.1s ease;
}
.prog-pill:hover, .prog-pill:active {
  background: var(--primary);
  color: #ffffff;
  border-color: var(--primary);
}
.task-remarks-history-box {
  background: var(--bg-subtle);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 10px;
  max-height: 130px;
  overflow-y: auto;
}
.remarks-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.remark-item {
  font-size: 12px;
  color: var(--text-main);
  padding: 4px 6px;
  background: var(--bg-surface);
  border-radius: 4px;
  border-left: 3px solid var(--primary);
}
/* 4. Single Transient Floating Toast (Relocated Above Bottom Nav, pointer-events: none, 1400ms) */
.transient-toast-container {
  position: fixed;
  bottom: calc(72px + var(--safe-bottom, 16px));
  top: auto;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99999;
  pointer-events: none !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 90%;
  max-width: 360px;
}

.transient-toast {
  background: #0f172a;
  color: #f8fafc;
  padding: 9px 18px;
  border-radius: 25px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.18);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.18s ease, transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none !important;
}

.transient-toast.show {
  opacity: 1;
  transform: translateY(0);
}

.transient-toast.success { background: #065f46; border-color: #059669; }
.transient-toast.warning { background: #92400e; border-color: #d97706; }
.transient-toast.error { background: #991b1b; border-color: #dc2626; }

/* 5. Sticky Bottom Submit CTA & Safe-Area Drawer Modals */
#newDeliveryModal .modal-container,
#taskDetailModal .modal-container {
  display: flex !important;
  flex-direction: column !important;
  max-height: 88vh !important;
  margin-top: auto !important;
  margin-bottom: 0 !important;
  border-radius: 22px 22px 0 0 !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 480px !important;
}

#taskDetailModal .modal-container {
  transform: translateY(100%);
  transition: transform 0.26s cubic-bezier(0.33, 1, 0.68, 1);
}

#taskDetailModal.active .modal-container {
  transform: translateY(0);
}

#newDeliveryModal .modal-body,
#taskDetailModal .modal-body {
  flex: 1 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 16px !important;
  padding-bottom: 20px !important;
}

#newDeliveryModal .modal-footer,
#taskDetailModal .modal-footer {
  position: sticky !important;
  bottom: 0 !important;
  background: var(--bg-surface) !important;
  border-top: 1px solid var(--border-color) !important;
  padding: 12px 16px !important;
  padding-bottom: max(14px, var(--safe-bottom, 16px)) !important;
  z-index: 20 !important;
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08) !important;
}

/* 6. Top Header Avatar Drawer */
.avatar-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
  display: flex;
  justify-content: flex-end;
}

.avatar-drawer-overlay.active {
  opacity: 1;
  visibility: visible;
}

.avatar-drawer-panel {
  width: 85%;
  max-width: 340px;
  height: 100%;
  background: var(--bg-surface);
  border-left: 1px solid var(--border-color);
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.28s cubic-bezier(0.33, 1, 0.68, 1);
  padding-top: max(16px, var(--safe-top, 0px));
  padding-bottom: max(16px, var(--safe-bottom, 16px));
}

.avatar-drawer-overlay.active .avatar-drawer-panel {
  transform: translateX(0);
}

.avatar-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-color);
}

.drawer-user-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.drawer-avatar-circle {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), #3b82f6);
  color: #ffffff;
  font-size: 18px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3);
}

.drawer-user-details {
  display: flex;
  flex-direction: column;
}

.drawer-user-name {
  font-size: 16px;
  font-weight: 800;
  color: var(--text-main);
  margin: 0;
}

.drawer-user-role {
  font-size: 12px;
  color: var(--text-dim);
  font-weight: 600;
  margin-top: 2px;
}

.drawer-close-btn {
  background: none;
  border: none;
  font-size: 26px;
  color: var(--text-dim);
  cursor: pointer;
  line-height: 1;
  padding: 4px;
}

.avatar-drawer-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.drawer-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.drawer-group-title {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--text-dim);
  padding-left: 4px;
  margin-bottom: 2px;
}

.drawer-menu-item {
  display: flex;
  align-items: center;
  padding: 12px 14px;
  background: var(--bg-subtle);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
  gap: 12px;
}

.drawer-menu-item:hover, .drawer-menu-item:active {
  background: var(--bg-card-hover);
  transform: translateX(2px);
}

.drawer-item-icon {
  font-size: 20px;
  flex-shrink: 0;
}

.drawer-item-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.drawer-item-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-main);
}

.drawer-item-sub {
  font-size: 11px;
  color: var(--text-dim);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.drawer-item-chevron {
  font-size: 18px;
  color: var(--text-dim);
  font-weight: 700;
}

.drawer-item-action {
  font-size: 11px;
  font-weight: 800;
  color: var(--primary);
  background: rgba(37, 99, 235, 0.1);
  padding: 4px 8px;
  border-radius: 6px;
}

.drawer-footer-actions {
  margin-top: auto;
  padding-top: 16px;
}

.btn-drawer-logout {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  border-radius: 12px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  color: #dc2626;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.btn-drawer-logout:active {
  background: rgba(239, 68, 68, 0.2);
}
