/* -------------------------------------------------------------------
   Stage 105.1H CLEAN — Workflow / Sales / Helpdesk / Installer App /
   Calendar Professional Layout v1

   Frontend-only CSS layout transformation for operational workflow-style
   pages. Styling/layout only: no route changes, no API calls, no data
   writes, no Job Card writes, no Calendar storage/runtime changes, no
   Installer App Android/runtime changes, no Helpdesk/Sales backend changes,
   no worker/queue/runtime changes, and no protected logic changes.
------------------------------------------------------------------- */

:root{
  --ui2-ops-bg:
    radial-gradient(circle at 9% 3%, rgba(59,130,246,.16), transparent 31%),
    radial-gradient(circle at 92% 9%, rgba(16,185,129,.13), transparent 30%),
    radial-gradient(circle at 75% 88%, rgba(168,85,247,.10), transparent 34%),
    linear-gradient(135deg, rgba(248,250,252,.98), rgba(239,246,255,.80) 50%, rgba(240,253,250,.88));
  --ui2-ops-hero: rgba(255,255,255,.952);
  --ui2-ops-hero-strong: rgba(255,255,255,.992);
  --ui2-ops-panel: rgba(255,255,255,.968);
  --ui2-ops-panel-soft: rgba(248,250,252,.910);
  --ui2-ops-border: rgba(148,163,184,.26);
  --ui2-ops-border-strong: rgba(59,130,246,.30);
  --ui2-ops-text: #0f172a;
  --ui2-ops-muted: #64748b;
  --ui2-ops-accent: #2563eb;
  --ui2-ops-accent-2: #059669;
  --ui2-ops-accent-3: #7c3aed;
  --ui2-ops-warning: #d97706;
  --ui2-ops-danger: #dc2626;
  --ui2-ops-shadow: 0 24px 70px rgba(15,23,42,.105);
  --ui2-ops-shadow-soft: 0 14px 36px rgba(15,23,42,.075);
  --ui2-ops-radius-xl: 30px;
  --ui2-ops-radius-lg: 24px;
  --ui2-ops-radius-md: 18px;
}

html[data-theme="dark"], body.dark, body.theme-dark{
  --ui2-ops-bg:
    radial-gradient(circle at 9% 3%, rgba(96,165,250,.18), transparent 31%),
    radial-gradient(circle at 92% 9%, rgba(52,211,153,.14), transparent 30%),
    radial-gradient(circle at 75% 88%, rgba(196,181,253,.10), transparent 34%),
    linear-gradient(135deg, rgba(2,6,23,.985), rgba(15,23,42,.94) 56%, rgba(30,64,175,.18));
  --ui2-ops-hero: rgba(15,23,42,.925);
  --ui2-ops-hero-strong: rgba(15,23,42,.978);
  --ui2-ops-panel: rgba(15,23,42,.925);
  --ui2-ops-panel-soft: rgba(30,41,59,.72);
  --ui2-ops-border: rgba(148,163,184,.22);
  --ui2-ops-border-strong: rgba(96,165,250,.28);
  --ui2-ops-text: #e5edf8;
  --ui2-ops-muted: #9fb0c5;
  --ui2-ops-accent: #60a5fa;
  --ui2-ops-accent-2: #34d399;
  --ui2-ops-accent-3: #a78bfa;
  --ui2-ops-shadow: 0 26px 74px rgba(0,0,0,.34);
  --ui2-ops-shadow-soft: 0 16px 42px rgba(0,0,0,.24);
}

/* Scope: operational workflow-style pages only. */
body.ispforge-ui-v2-ops-professional-active #page,
body.ispforge-ui-v2-ops-professional-active main,
body.ispforge-ui-v2-ops-professional-active .main-content,
body.ispforge-ui-v2-ops-professional-active .content,
body.ispforge-ui-v2-ops-professional-active .page{
  background: var(--ui2-ops-bg) !important;
}

body.ispforge-ui-v2-ops-professional-active #page,
body.ispforge-ui-v2-ops-professional-active .page,
body.ispforge-ui-v2-ops-professional-active .main-content{
  max-width: 1680px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.ispforge-ui-v2-ops-professional-active .page-title-row,
body.ispforge-ui-v2-ops-professional-active .page-header,
body.ispforge-ui-v2-ops-professional-active .section-header,
body.ispforge-ui-v2-ops-professional-active .workflow-header,
body.ispforge-ui-v2-ops-professional-active .sales-header,
body.ispforge-ui-v2-ops-professional-active .helpdesk-header,
body.ispforge-ui-v2-ops-professional-active .installer-header,
body.ispforge-ui-v2-ops-professional-active .calendar-header,
body.ispforge-ui-v2-ops-professional-active [class*="workflow"][class*="header"],
body.ispforge-ui-v2-ops-professional-active [class*="sales"][class*="header"],
body.ispforge-ui-v2-ops-professional-active [class*="helpdesk"][class*="header"],
body.ispforge-ui-v2-ops-professional-active [class*="ticket"][class*="header"],
body.ispforge-ui-v2-ops-professional-active [class*="installer"][class*="header"],
body.ispforge-ui-v2-ops-professional-active [class*="calendar"][class*="header"]{
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 18px !important;
  align-items: center !important;
  margin: 2px 0 20px !important;
  padding: clamp(22px, 2.15vw, 34px) clamp(22px, 2.4vw, 38px) !important;
  border: 1px solid var(--ui2-ops-border-strong) !important;
  border-radius: var(--ui2-ops-radius-xl) !important;
  background:
    radial-gradient(circle at 88% 18%, rgba(37,99,235,.20), transparent 25%),
    radial-gradient(circle at 5% 83%, rgba(5,150,105,.14), transparent 30%),
    linear-gradient(135deg, var(--ui2-ops-hero-strong), var(--ui2-ops-hero)) !important;
  box-shadow: var(--ui2-ops-shadow) !important;
  overflow: hidden !important;
}

body.ispforge-ui-v2-ops-professional-active .page-title-row::before,
body.ispforge-ui-v2-ops-professional-active .page-header::before,
body.ispforge-ui-v2-ops-professional-active .workflow-header::before,
body.ispforge-ui-v2-ops-professional-active .sales-header::before,
body.ispforge-ui-v2-ops-professional-active .helpdesk-header::before,
body.ispforge-ui-v2-ops-professional-active .installer-header::before,
body.ispforge-ui-v2-ops-professional-active .calendar-header::before{
  content: "" !important;
  position: absolute !important;
  inset: auto 28px 0 28px !important;
  height: 4px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, var(--ui2-ops-accent), var(--ui2-ops-accent-2), var(--ui2-ops-accent-3)) !important;
  opacity: .92 !important;
}

body.ispforge-ui-v2-ops-professional-active .page-title-row::after,
body.ispforge-ui-v2-ops-professional-active .page-header::after{
  content: "Operations" !important;
  position: absolute !important;
  right: 24px !important;
  top: 18px !important;
  padding: 7px 12px !important;
  border: 1px solid rgba(37,99,235,.24) !important;
  border-radius: 999px !important;
  background: rgba(37,99,235,.090) !important;
  color: var(--ui2-ops-accent) !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  letter-spacing: .085em !important;
  text-transform: uppercase !important;
}

body.ispforge-ui-v2-ops-professional-active .page-title-row > *,
body.ispforge-ui-v2-ops-professional-active .page-header > *,
body.ispforge-ui-v2-ops-professional-active .section-header > *{
  position: relative !important;
  z-index: 1 !important;
}

body.ispforge-ui-v2-ops-professional-active h1,
body.ispforge-ui-v2-ops-professional-active .page-title-row h1,
body.ispforge-ui-v2-ops-professional-active .page-header h1,
body.ispforge-ui-v2-ops-professional-active .section-header h1{
  margin: 0 !important;
  color: var(--ui2-ops-text) !important;
  font-size: clamp(28px, 3vw, 46px) !important;
  line-height: 1.02 !important;
  font-weight: 950 !important;
  letter-spacing: -.045em !important;
}

body.ispforge-ui-v2-ops-professional-active h2,
body.ispforge-ui-v2-ops-professional-active h3,
body.ispforge-ui-v2-ops-professional-active .card-title,
body.ispforge-ui-v2-ops-professional-active .panel-title{
  color: var(--ui2-ops-text) !important;
  letter-spacing: -.025em !important;
}

body.ispforge-ui-v2-ops-professional-active p,
body.ispforge-ui-v2-ops-professional-active .muted,
body.ispforge-ui-v2-ops-professional-active .text-muted,
body.ispforge-ui-v2-ops-professional-active .help-text,
body.ispforge-ui-v2-ops-professional-active small{
  color: var(--ui2-ops-muted) !important;
}

/* Operational boards, queues, schedules and ticket cards. */
body.ispforge-ui-v2-ops-professional-active .kpi-grid,
body.ispforge-ui-v2-ops-professional-active .summary-grid,
body.ispforge-ui-v2-ops-professional-active .stat-grid,
body.ispforge-ui-v2-ops-professional-active .dashboard-grid,
body.ispforge-ui-v2-ops-professional-active .queue-grid,
body.ispforge-ui-v2-ops-professional-active [class*="kpi"][class*="grid"],
body.ispforge-ui-v2-ops-professional-active [class*="summary"][class*="grid"],
body.ispforge-ui-v2-ops-professional-active [class*="dashboard"][class*="grid"],
body.ispforge-ui-v2-ops-professional-active [class*="queue"][class*="grid"]{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 16px !important;
  margin: 0 0 18px !important;
}

body.ispforge-ui-v2-ops-professional-active .kpi-card,
body.ispforge-ui-v2-ops-professional-active .summary-card,
body.ispforge-ui-v2-ops-professional-active .stat-card,
body.ispforge-ui-v2-ops-professional-active .metric-card,
body.ispforge-ui-v2-ops-professional-active [class*="kpi"]:not(table):not(tbody):not(thead):not(tr):not(td):not(th),
body.ispforge-ui-v2-ops-professional-active [class*="summary-card"],
body.ispforge-ui-v2-ops-professional-active [class*="metric-card"]{
  border: 1px solid var(--ui2-ops-border) !important;
  border-radius: var(--ui2-ops-radius-lg) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.42), rgba(255,255,255,.10)),
    var(--ui2-ops-panel) !important;
  box-shadow: var(--ui2-ops-shadow-soft) !important;
  color: var(--ui2-ops-text) !important;
}

body.ispforge-ui-v2-ops-professional-active .card,
body.ispforge-ui-v2-ops-professional-active .panel,
body.ispforge-ui-v2-ops-professional-active .box,
body.ispforge-ui-v2-ops-professional-active .widget,
body.ispforge-ui-v2-ops-professional-active .section,
body.ispforge-ui-v2-ops-professional-active .table-card,
body.ispforge-ui-v2-ops-professional-active .filter-card,
body.ispforge-ui-v2-ops-professional-active .workflow-card,
body.ispforge-ui-v2-ops-professional-active .sales-card,
body.ispforge-ui-v2-ops-professional-active .helpdesk-card,
body.ispforge-ui-v2-ops-professional-active .ticket-card,
body.ispforge-ui-v2-ops-professional-active .installer-card,
body.ispforge-ui-v2-ops-professional-active .calendar-card,
body.ispforge-ui-v2-ops-professional-active [class*="workflow"][class*="card"],
body.ispforge-ui-v2-ops-professional-active [class*="sales"][class*="card"],
body.ispforge-ui-v2-ops-professional-active [class*="helpdesk"][class*="card"],
body.ispforge-ui-v2-ops-professional-active [class*="ticket"][class*="card"],
body.ispforge-ui-v2-ops-professional-active [class*="installer"][class*="card"],
body.ispforge-ui-v2-ops-professional-active [class*="calendar"][class*="card"],
body.ispforge-ui-v2-ops-professional-active [class*="queue"][class*="card"],
body.ispforge-ui-v2-ops-professional-active [class*="handoff"][class*="card"]{
  border: 1px solid var(--ui2-ops-border) !important;
  border-radius: var(--ui2-ops-radius-lg) !important;
  background: var(--ui2-ops-panel) !important;
  box-shadow: var(--ui2-ops-shadow-soft) !important;
  color: var(--ui2-ops-text) !important;
}

body.ispforge-ui-v2-ops-professional-active .card,
body.ispforge-ui-v2-ops-professional-active .panel,
body.ispforge-ui-v2-ops-professional-active .section,
body.ispforge-ui-v2-ops-professional-active .box,
body.ispforge-ui-v2-ops-professional-active .widget{
  padding: clamp(16px, 1.45vw, 24px) !important;
}

body.ispforge-ui-v2-ops-professional-active .toolbar,
body.ispforge-ui-v2-ops-professional-active .filters,
body.ispforge-ui-v2-ops-professional-active .filter-row,
body.ispforge-ui-v2-ops-professional-active .search-row,
body.ispforge-ui-v2-ops-professional-active .actions-row,
body.ispforge-ui-v2-ops-professional-active .button-row,
body.ispforge-ui-v2-ops-professional-active [class*="toolbar"],
body.ispforge-ui-v2-ops-professional-active [class*="filter"][class*="row"],
body.ispforge-ui-v2-ops-professional-active [class*="search"][class*="row"],
body.ispforge-ui-v2-ops-professional-active [class*="action"][class*="row"]{
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 16px !important;
  padding: 14px !important;
  border: 1px solid var(--ui2-ops-border) !important;
  border-radius: var(--ui2-ops-radius-lg) !important;
  background: var(--ui2-ops-panel-soft) !important;
}

body.ispforge-ui-v2-ops-professional-active input,
body.ispforge-ui-v2-ops-professional-active select,
body.ispforge-ui-v2-ops-professional-active textarea{
  border: 1px solid rgba(148,163,184,.34) !important;
  border-radius: 14px !important;
  background: var(--ui2-ops-hero-strong) !important;
  color: var(--ui2-ops-text) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18) !important;
}

body.ispforge-ui-v2-ops-professional-active input:focus,
body.ispforge-ui-v2-ops-professional-active select:focus,
body.ispforge-ui-v2-ops-professional-active textarea:focus{
  outline: none !important;
  border-color: rgba(37,99,235,.60) !important;
  box-shadow: 0 0 0 4px rgba(37,99,235,.14) !important;
}

body.ispforge-ui-v2-ops-professional-active .btn,
body.ispforge-ui-v2-ops-professional-active button,
body.ispforge-ui-v2-ops-professional-active input[type="button"],
body.ispforge-ui-v2-ops-professional-active input[type="submit"]{
  border-radius: 14px !important;
  font-weight: 850 !important;
  letter-spacing: -.01em !important;
}

body.ispforge-ui-v2-ops-professional-active .btn-primary,
body.ispforge-ui-v2-ops-professional-active .primary,
body.ispforge-ui-v2-ops-professional-active button.primary,
body.ispforge-ui-v2-ops-professional-active button[class*="primary"]{
  border-color: transparent !important;
  background: linear-gradient(135deg, var(--ui2-ops-accent), var(--ui2-ops-accent-2)) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(37,99,235,.22) !important;
}

body.ispforge-ui-v2-ops-professional-active .table-wrap,
body.ispforge-ui-v2-ops-professional-active .table-responsive,
body.ispforge-ui-v2-ops-professional-active .data-table-wrap,
body.ispforge-ui-v2-ops-professional-active [class*="table"][class*="wrap"],
body.ispforge-ui-v2-ops-professional-active [class*="table"][class*="container"]{
  border: 1px solid var(--ui2-ops-border) !important;
  border-radius: var(--ui2-ops-radius-lg) !important;
  background: var(--ui2-ops-panel) !important;
  box-shadow: var(--ui2-ops-shadow-soft) !important;
  overflow: auto !important;
}

body.ispforge-ui-v2-ops-professional-active table{
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: transparent !important;
  color: var(--ui2-ops-text) !important;
}

body.ispforge-ui-v2-ops-professional-active thead th,
body.ispforge-ui-v2-ops-professional-active table th{
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
  background: linear-gradient(180deg, var(--ui2-ops-panel), var(--ui2-ops-panel-soft)) !important;
  color: var(--ui2-ops-muted) !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: .075em !important;
  font-weight: 950 !important;
  border-bottom: 1px solid var(--ui2-ops-border) !important;
  white-space: nowrap !important;
}

body.ispforge-ui-v2-ops-professional-active td,
body.ispforge-ui-v2-ops-professional-active th{
  padding: 13px 14px !important;
  border-bottom: 1px solid rgba(148,163,184,.14) !important;
}

body.ispforge-ui-v2-ops-professional-active tbody tr:hover{
  background: rgba(37,99,235,.060) !important;
}

body.ispforge-ui-v2-ops-professional-active .badge,
body.ispforge-ui-v2-ops-professional-active .chip,
body.ispforge-ui-v2-ops-professional-active .status,
body.ispforge-ui-v2-ops-professional-active [class*="badge"],
body.ispforge-ui-v2-ops-professional-active [class*="chip"]{
  border-radius: 999px !important;
  font-weight: 900 !important;
  letter-spacing: .02em !important;
}

body.ispforge-ui-v2-ops-professional-active .modal,
body.ispforge-ui-v2-ops-professional-active .popup,
body.ispforge-ui-v2-ops-professional-active .dialog,
body.ispforge-ui-v2-ops-professional-active .modal-content,
body.ispforge-ui-v2-ops-professional-active .popup-content,
body.ispforge-ui-v2-ops-professional-active .dialog-content{
  border-radius: 28px !important;
  border: 1px solid var(--ui2-ops-border) !important;
  background: var(--ui2-ops-panel) !important;
  box-shadow: 0 32px 90px rgba(15,23,42,.28) !important;
  color: var(--ui2-ops-text) !important;
}

body.ispforge-ui-v2-ops-professional-active .empty,
body.ispforge-ui-v2-ops-professional-active .empty-state,
body.ispforge-ui-v2-ops-professional-active .no-data,
body.ispforge-ui-v2-ops-professional-active .loading,
body.ispforge-ui-v2-ops-professional-active [class*="empty"],
body.ispforge-ui-v2-ops-professional-active [class*="no-data"]{
  border: 1px dashed rgba(148,163,184,.42) !important;
  border-radius: var(--ui2-ops-radius-lg) !important;
  background: var(--ui2-ops-panel-soft) !important;
  color: var(--ui2-ops-muted) !important;
}

/* Calendar / scheduler style surfaces. */
body.ispforge-ui-v2-ops-professional-active .calendar-grid,
body.ispforge-ui-v2-ops-professional-active .calendar-board,
body.ispforge-ui-v2-ops-professional-active .schedule-grid,
body.ispforge-ui-v2-ops-professional-active .schedule-board,
body.ispforge-ui-v2-ops-professional-active [class*="calendar"][class*="grid"],
body.ispforge-ui-v2-ops-professional-active [class*="schedule"][class*="grid"]{
  border: 1px solid var(--ui2-ops-border) !important;
  border-radius: var(--ui2-ops-radius-xl) !important;
  background: var(--ui2-ops-panel) !important;
  box-shadow: var(--ui2-ops-shadow-soft) !important;
  overflow: hidden !important;
}

body.ispforge-ui-v2-ops-professional-active .calendar-day,
body.ispforge-ui-v2-ops-professional-active .calendar-cell,
body.ispforge-ui-v2-ops-professional-active .schedule-cell,
body.ispforge-ui-v2-ops-professional-active [class*="calendar"][class*="cell"],
body.ispforge-ui-v2-ops-professional-active [class*="schedule"][class*="cell"]{
  border-color: rgba(148,163,184,.18) !important;
  background: rgba(255,255,255,.060) !important;
}

body.ispforge-ui-v2-ops-professional-active .calendar-event,
body.ispforge-ui-v2-ops-professional-active .schedule-event,
body.ispforge-ui-v2-ops-professional-active .appointment,
body.ispforge-ui-v2-ops-professional-active [class*="calendar"][class*="event"],
body.ispforge-ui-v2-ops-professional-active [class*="schedule"][class*="event"],
body.ispforge-ui-v2-ops-professional-active [class*="appointment"]{
  border-radius: 14px !important;
  border: 1px solid rgba(37,99,235,.20) !important;
  background: rgba(37,99,235,.085) !important;
  color: var(--ui2-ops-text) !important;
  box-shadow: 0 8px 18px rgba(15,23,42,.08) !important;
}

/* Queue / board style operational columns. */
body.ispforge-ui-v2-ops-professional-active .kanban,
body.ispforge-ui-v2-ops-professional-active .board,
body.ispforge-ui-v2-ops-professional-active .queue-board,
body.ispforge-ui-v2-ops-professional-active .handoff-board,
body.ispforge-ui-v2-ops-professional-active [class*="kanban"],
body.ispforge-ui-v2-ops-professional-active [class*="queue"][class*="board"],
body.ispforge-ui-v2-ops-professional-active [class*="handoff"][class*="board"]{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 16px !important;
}

body.ispforge-ui-v2-ops-professional-active .kanban-column,
body.ispforge-ui-v2-ops-professional-active .board-column,
body.ispforge-ui-v2-ops-professional-active .queue-column,
body.ispforge-ui-v2-ops-professional-active [class*="column"]{
  border: 1px solid var(--ui2-ops-border) !important;
  border-radius: var(--ui2-ops-radius-lg) !important;
  background: var(--ui2-ops-panel-soft) !important;
}

@media (max-width: 920px){
  body.ispforge-ui-v2-ops-professional-active .page-title-row,
  body.ispforge-ui-v2-ops-professional-active .page-header,
  body.ispforge-ui-v2-ops-professional-active .section-header{
    grid-template-columns: 1fr !important;
    padding: 22px !important;
  }
  body.ispforge-ui-v2-ops-professional-active .page-title-row::after,
  body.ispforge-ui-v2-ops-professional-active .page-header::after{
    position: static !important;
    justify-self: start !important;
    margin-top: 8px !important;
  }
  body.ispforge-ui-v2-ops-professional-active table{
    min-width: 780px !important;
  }
}
