/* ==========================================================================
   CoreSync Construction — Modern Brand Theme
   Navy #004368 · Teal #008A8A · Mid-Teal #007687
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* 1. CSS VARIABLES --------------------------------------------------------- */
:root {
  --cs-primary:  #004368;
  --cs-accent:   #008A8A;
  --cs-mid:      #007687;
  --cs-white:    #FFFFFF;
  --cs-light:    #F0F7FA;
  --cs-border:   #E2EBF0;
  --cs-shadow:   0 2px 8px rgba(0, 67, 104, 0.08);
  --cs-radius:   10px;
}

/* 2. GLOBAL FONT ----------------------------------------------------------- */
*, body, .frappe-app {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
/* Preserve icon fonts */
.fa, .fas, .far, .fal, .fab, .octicon,
[class^="fa-"], [class*=" fa-"] {
  font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands", FontAwesome, octicons !important;
}

/* 3. NAVBAR ---------------------------------------------------------------- */
.navbar, .navbar-default {
  background: var(--cs-primary) !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(0, 67, 104, 0.2) !important;
  height: 52px !important;
  min-height: 52px !important;
}
.navbar .navbar-brand,
.navbar .navbar-brand span,
.navbar-header .navbar-brand {
  color: white !important;
  font-weight: 700 !important;
  font-size: 15px !important;
}
.navbar .nav > li > a,
.navbar .navbar-nav > li > a {
  color: rgba(255, 255, 255, 0.85) !important;
}
.navbar .nav > li > a:hover {
  color: white !important;
  background: rgba(255, 255, 255, 0.1) !important;
}
/* Search bar */
.navbar .form-control,
.navbar .search-bar input,
.nav-search .awesomplete > input,
.navbar .awesomplete input {
  background: rgba(255, 255, 255, 0.12) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: white !important;
  border-radius: 6px !important;
}
.navbar .form-control::placeholder,
.nav-search input::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}
.navbar-nav .dropdown-toggle,
.navbar .btn,
.navbar .btn-default {
  color: rgba(255, 255, 255, 0.85) !important;
  background: transparent !important;
  border: none !important;
}
/* Hide Frappe's default app logo — we draw our own brand via ::before / ::after */
.navbar-brand .app-logo,
.navbar-brand img {
  display: none !important;
}
/* Make the brand anchor a flex row so icon and text align perfectly */
.navbar-brand.navbar-home {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-decoration: none !important;
  padding: 0 12px 0 0 !important;
  flex-shrink: 0 !important;
}
/* Teal brand icon — ring (CSS radial-gradient) on teal pill */
.navbar-brand.navbar-home::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background:
    radial-gradient(
      circle at center,
      transparent 4.5px,
      white 4.5px 7px,
      transparent 7px
    ) center / 100% 100% no-repeat,
    var(--cs-accent);
}
/* "CoreSync Construction" brand text */
.navbar-brand.navbar-home::after {
  content: 'CoreSync Construction';
  color: white !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: -0.2px !important;
  white-space: nowrap;
}
/* Style the breadcrumb trail that follows the brand in the navbar */
#navbar-breadcrumbs {
  padding-left: 6px !important;
}
#navbar-breadcrumbs li a,
#navbar-breadcrumbs li span {
  color: rgba(255, 255, 255, 0.65) !important;
  font-size: 13px !important;
}
#navbar-breadcrumbs li.active a,
#navbar-breadcrumbs li:last-child a {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 500 !important;
}

/* 4. SIDEBAR (desk left nav) ----------------------------------------------- */
.desk-sidebar,
.sidebar-column,
.standard-sidebar {
  background: white !important;
  border-right: 1px solid var(--cs-border) !important;
}
.desk-sidebar .sidebar-item,
.standard-sidebar-item,
.sidebar-item {
  border-radius: 0 !important;
  transition: all 0.15s ease !important;
}
.desk-sidebar .sidebar-item:hover,
.standard-sidebar-item:hover {
  background: #F5FAFA !important;
}
.desk-sidebar .sidebar-item.selected,
.desk-sidebar .sidebar-item.active,
.standard-sidebar-item.selected {
  background: #E8F4F4 !important;
  border-left: 3px solid var(--cs-accent) !important;
  padding-left: 13px !important;
}
.desk-sidebar .sidebar-item.selected .sidebar-label,
.desk-sidebar .sidebar-item.selected a,
.standard-sidebar-item.selected .sidebar-label {
  color: var(--cs-primary) !important;
  font-weight: 600 !important;
}
.desk-sidebar .sidebar-label,
.standard-sidebar-item .sidebar-label {
  color: #374151 !important;
  font-size: 13px !important;
}
.sidebar-section-header,
.standard-sidebar .section-label {
  font-size: 9px !important;
  font-weight: 700 !important;
  color: #9CA3AF !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  padding: 14px 14px 4px !important;
}

/* 5. PAGE BACKGROUND ------------------------------------------------------- */
.page-container,
.layout-main,
.container-fluid,
body.frappe-web,
.frappe-app .page-body {
  background: var(--cs-light) !important;
}

/* 6. PAGE HEADER ----------------------------------------------------------- */
.page-head,
.page-header {
  background: white !important;
  border-bottom: 1px solid var(--cs-border) !important;
  box-shadow: none !important;
}
.page-head .page-title,
.page-header .page-title,
h1.page-title,
.title-text {
  color: var(--cs-primary) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
}
.breadcrumb > li > a,
.page-head .breadcrumb a {
  color: var(--cs-accent) !important;
}

/* 7. CARDS AND FORMS ------------------------------------------------------- */
.frappe-card,
.card,
.form-section,
.section-body,
.widget-body,
.form-layout .form-page {
  background: white !important;
  border-radius: var(--cs-radius) !important;
  border: 1px solid var(--cs-border) !important;
  box-shadow: var(--cs-shadow) !important;
}
.section-head,
.form-section .section-head {
  color: var(--cs-primary) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border-bottom: 1px solid var(--cs-border) !important;
}
.control-label,
.frappe-control .control-label,
label.control-label {
  color: #6B7280 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.6px !important;
}

/* 8. INPUTS ---------------------------------------------------------------- */
.form-control,
input.form-control,
textarea.form-control,
select.form-control,
.input-with-feedback {
  border: 1.5px solid var(--cs-border) !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  color: #1F2937 !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}
.form-control:focus,
input.form-control:focus,
textarea.form-control:focus {
  border-color: var(--cs-accent) !important;
  box-shadow: 0 0 0 3px rgba(0, 138, 138, 0.12) !important;
  outline: none !important;
}

/* 9. BUTTONS --------------------------------------------------------------- */
.btn-primary {
  background: var(--cs-primary) !important;
  border-color: var(--cs-primary) !important;
  color: white !important;
  border-radius: 6px !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  transition: all 0.2s ease !important;
}
.btn-primary:hover {
  background: var(--cs-accent) !important;
  border-color: var(--cs-accent) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 138, 138, 0.3) !important;
}
.btn-secondary,
.btn-default {
  background: white !important;
  border: 1.5px solid var(--cs-primary) !important;
  color: var(--cs-primary) !important;
  border-radius: 6px !important;
  font-weight: 500 !important;
  font-size: 13px !important;
}
.btn-secondary:hover,
.btn-default:hover {
  background: var(--cs-light) !important;
}

/* 10. TABLES --------------------------------------------------------------- */
.datatable,
.dt-scrollable,
.list-row-container,
.result-list {
  border-radius: var(--cs-radius) !important;
  overflow: hidden !important;
  border: 1px solid var(--cs-border) !important;
  box-shadow: var(--cs-shadow) !important;
}
.datatable .dt-header .dt-cell,
.list-row.head,
thead th,
.dt-header {
  background: var(--cs-primary) !important;
  color: white !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}
.datatable .dt-row:nth-child(even) .dt-cell,
.list-row:nth-child(even) {
  background: #F8FBFC !important;
}
/* ROW HOVER — the `.list-row:hover` arm was DELETED, not repaired (row 120).
   It was unscoped, `!important` and a hardcoded `#E8F4F4`, and that hex is the
   exact value of `--cs-grid-selected`, so after D27 made the selected state
   render for the first time a hovered row and a selected row painted the SAME
   fill.  Nothing needed to replace it: `coresync_grid_system.css` §2 already
   carries `body.cs-skin .list-row-container .list-row:hover { background:
   var(--cs-grid-hover) }`, which loads AFTER this sheet and out-specifies it —
   it was losing only to the `!important`.  Deleting the arm hands hover to the
   grid design system on skinned lists (D27) and returns every UNSKINNED desk
   list to Frappe's stock hover, which is what an unskinned list is supposed to
   look like.  Do not re-add a `.list-row` rule here; this sheet is loaded on
   every desk page and cannot scope itself to the skin registry.

   The `.datatable` arm STAYS, deliberately.  It is the report surface, and it
   is the half that must keep working: a standalone query report
   (`/app/query-report/...`) is route family `query-report`, which
   `coresync_skin.js::doctype_for` never resolves, so it never receives
   `body.cs-skin` and the grid sheet's `.datatable` rules do not reach it.
   Scoping this arm would delete hover from every query report in the product.
   Its hex is now the token, so the report view and the skinned list agree. */
.datatable .dt-row:hover .dt-cell {
  background: var(--cs-grid-hover) !important;
}
.dt-cell {
  border-bottom: 1px solid #F0F7FA !important;
  font-size: 12px !important;
  color: #374151 !important;
}

/* 11. INDICATORS AND BADGES ------------------------------------------------ */
.indicator,
.badge {
  border-radius: 20px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  padding: 3px 10px !important;
}
.indicator.green,  .indicator-pill.green  { background: #D1FAE5 !important; color: #065F46 !important; }
.indicator.blue,   .indicator-pill.blue   { background: #DBEAFE !important; color: #1E40AF !important; }
.indicator.orange, .indicator-pill.orange { background: #FEF3C7 !important; color: #92400E !important; }
.indicator.red,    .indicator-pill.red    { background: #FEE2E2 !important; color: #991B1B !important; }
.indicator.gray,   .indicator-pill.gray   { background: #F3F4F6 !important; color: #6B7280 !important; }
.indicator.cyan,   .indicator-pill.cyan   { background: #CCFBF1 !important; color: #065F46 !important; }
.indicator.purple, .indicator-pill.purple { background: #EDE9FE !important; color: #4C1D95 !important; }

/* 12. WORKSPACE — SHORTCUT TILES ------------------------------------------ */
/* Main shortcut box */
.widget.shortcut-widget-box,
.workspace-shortcut-card,
.module-card {
  background: white !important;
  border-radius: 14px !important;
  border: 1.5px solid var(--cs-border) !important;
  box-shadow: 0 1px 6px rgba(0, 67, 104, 0.07) !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
}
.widget.shortcut-widget-box:hover,
.workspace-shortcut-card:hover,
.module-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(0, 67, 104, 0.14) !important;
  border-color: var(--cs-accent) !important;
}
/* Icon inside shortcut */
.widget.shortcut-widget-box .shortcut-widget-icon,
.widget.shortcut-widget-box .widget-icon,
.widget.shortcut-widget-box .icon {
  background: var(--cs-light) !important;
  border-radius: 10px !important;
  padding: 10px !important;
  margin-bottom: 8px !important;
}
.widget.shortcut-widget-box .shortcut-widget-icon svg use,
.widget.shortcut-widget-box .widget-icon svg use {
  fill: var(--cs-accent) !important;
}
/* Shortcut label */
.widget.shortcut-widget-box .widget-head .widget-label,
.widget.shortcut-widget-box .widget-head .widget-title,
.widget.shortcut-widget-box .shortcut-title {
  color: var(--cs-primary) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}
/* Count badge on shortcuts */
.widget.shortcut-widget-box .indicator-pill,
.widget.shortcut-widget-box .badge,
.widget.shortcut-widget-box .shortcut-count {
  background: var(--cs-accent) !important;
  color: white !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  border-radius: 20px !important;
  padding: 2px 8px !important;
}

/* 13. WORKSPACE — NUMBER CARDS (KPI tiles) --------------------------------- */
/*
   Frappe adds class "number-widget-box" to the .widget element at render time
   (see number_card_widget.js: this.widget.addClass("number-widget-box"))
*/
.widget.number-widget-box,
.number-widget-box {
  background: white !important;
  border-radius: 12px !important;
  border: 1px solid var(--cs-border) !important;
  box-shadow: 0 1px 4px rgba(0, 67, 104, 0.06) !important;
  transition: all 0.2s ease !important;
  overflow: hidden !important;
}
.widget.number-widget-box:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(0, 67, 104, 0.12) !important;
  border-color: var(--cs-accent) !important;
}
/* Card label (small uppercase above the number) */
.number-widget-box .widget-head {
  padding: 14px 16px 2px !important;
  border-bottom: none !important;
}
.number-widget-box .widget-head .widget-label .widget-title {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: #9CA3AF !important;
}
/* Big number */
.number-widget-box .widget-body {
  padding: 2px 16px 14px !important;
}
.number-widget-box .widget-content .number {
  font-size: 26px !important;
  font-weight: 700 !important;
  color: var(--cs-primary) !important;
  line-height: 1.3 !important;
}
/* Percentage change indicator */
.number-widget-box .card-stats {
  font-size: 11px !important;
  font-weight: 600 !important;
  margin-top: 4px !important;
}
.number-widget-box .card-stats.green { color: #059669 !important; }
.number-widget-box .card-stats.red   { color: #DC2626 !important; }

/* 14. WORKSPACE — LINK CARDS (Reports / Setup sections) ------------------- */
.widget.links-widget-box {
  background: white !important;
  border-radius: 14px !important;
  border: 1.5px solid var(--cs-border) !important;
  box-shadow: 0 1px 6px rgba(0, 67, 104, 0.07) !important;
  overflow: hidden !important;
}
.widget.links-widget-box .widget-head {
  background: linear-gradient(90deg, var(--cs-primary) 0%, var(--cs-mid) 100%) !important;
  padding: 10px 14px !important;
  margin-bottom: 0 !important;
}
.widget.links-widget-box .widget-head .widget-title {
  color: white !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}
.widget.links-widget-box .link-item {
  padding: 0 6px !important;
  border-bottom: 1px solid #F5F9FB !important;
}
.widget.links-widget-box .link-item:last-child {
  border-bottom: none !important;
}
.widget.links-widget-box .link-item a,
.widget.links-widget-box .sidebar-item {
  display: flex !important;
  align-items: center !important;
  padding: 8px 10px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #1A2D3D !important;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s, padding-left 0.15s !important;
  gap: 6px !important;
}
.widget.links-widget-box .link-item a:hover,
.widget.links-widget-box .sidebar-item:hover {
  background: #EDF8F8 !important;
  color: var(--cs-accent) !important;
  padding-left: 16px !important;
  text-decoration: none !important;
}

/* 15. WORKSPACE — SECTION HEADER ------------------------------------------ */
.workspace-section-header,
.widget.header-widget-box .widget-head,
.widget.header-widget-box h4 {
  color: var(--cs-primary) !important;
}

/* 15b. WORKSPACE — LINK-CARD HEADER CONTRAST FIX -------------------------- */
/* Force solid navy background + pure white text on every module card header */
.workspace-section-head,
.codex-section-head,
.workspace-sidebar-item.standard-sidebar-item,
.widget.links-widget-box .widget-head .widget-title,
.widget.links-widget-box .widget-header {
  background-color: #004368 !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
}

/* Make card header text white and bold (child spans / h3 / .title) */
.widget.links-widget-box .widget-head .widget-title span,
.widget.links-widget-box .widget-head h3,
.widget.links-widget-box .widget-head .title {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}

/* 16. LOGIN PAGE ----------------------------------------------------------- */
.login-content,
body.login-page,
.page-card {
  background: linear-gradient(135deg, #004368 0%, #007687 55%, #008A8A 100%) !important;
  min-height: 100vh !important;
}
.login-content .page-card,
.page-card-body,
.login-form {
  background: white !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2) !important;
  border: none !important;
  padding: 36px !important;
  max-width: 420px !important;
}
.login-content .for-login h4,
.page-card .for-login h4 {
  color: var(--cs-primary) !important;
  font-weight: 700 !important;
  font-size: 22px !important;
}
.login-content .btn-login,
.login-content .btn-primary {
  min-height: 46px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
}

/* 17. SCROLLBAR ------------------------------------------------------------ */
::-webkit-scrollbar          { width: 6px; height: 6px; }
::-webkit-scrollbar-track    { background: var(--cs-light); }
::-webkit-scrollbar-thumb    { background: #CBD5E1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--cs-accent); }

/* 18. HIDE FRAPPE BRANDING ------------------------------------------------- */
.powered-by,
.frappe-footer .powered-by,
footer .frappe-tag,
.web-footer .powered-by,
.powered-by-frappe,
footer .frappe-footer {
  display: none !important;
}
/* Note: navbar-brand img is already hidden in section 3 */

/* 19. HIDE FORM SIDEBAR & COMMENTS / ACTIVITY TIMELINE --------------------
   The right-side panel in every form (Assign To / Attachments / Tags /
   Share / Follow / last-edited) and the bottom Comments + Activity log are
   hidden globally.  The main form section expands to fill the freed width.
   ------------------------------------------------------------------ */
.layout-side-section,
.form-sidebar {
  display: none !important;
}
.layout-main-section-wrapper {
  width: 100% !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
}
.form-footer,
.new-timeline {
  display: none !important;
}

/* ═══════════════════════════════════════
   Child Table Row Editor Fix
   ═══════════════════════════════════════ */

/* Main editor container */
.grid-row-open,
.form-in-grid,
.grid-body .grid-row.grid-row-open {
  background: #ffffff !important;
  color: #333333 !important;
}

/* Field labels */
.form-in-grid .control-label,
.form-in-grid label,
.grid-row-open .control-label,
.grid-row-open label {
  color: #4b5563 !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  display: block !important;
}

/* Input fields */
.form-in-grid .form-control,
.form-in-grid input,
.form-in-grid select,
.form-in-grid textarea,
.grid-row-open .form-control,
.grid-row-open input,
.grid-row-open select,
.grid-row-open textarea {
  color: #111827 !important;
  background: #f9fafb !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 6px !important;
}

/* Editor header */
.grid-row-open .edit-row-header,
.form-in-grid .edit-row-header {
  background: #f0f7fa !important;
  color: #004368 !important;
  font-weight: 600 !important;
  padding: 8px 16px !important;
  border-bottom: 1px solid #e5e7eb !important;
  border-radius: 6px 6px 0 0 !important;
}

/* Buttons in editor */
.form-in-grid .btn-primary,
.grid-row-open .btn-primary {
  background: #004368 !important;
  border-color: #004368 !important;
  color: #ffffff !important;
}

/* Grid row text visibility */
.grid-body .grid-row td,
.grid-body .grid-row .col,
.grid-body .static-area,
.grid-body .grid-row .like-disabled-input {
  color: #374151 !important;
}

/* Selected row highlight */
.grid-body .grid-row.row-selected {
  background: rgba(0,138,138,0.08) !important;
}

/* Grid row hover */
.grid-body .grid-row:hover {
  background: rgba(0,138,138,0.04) !important;
  cursor: pointer;
}

/* Panel heading in grid */
.grid-row-open .panel-heading,
.form-in-grid .panel-heading {
  background: #f8fafc !important;
  color: #004368 !important;
  font-weight: 600 !important;
  border-bottom: 1px solid #e5e7eb !important;
}

/* Insert Above/Below buttons */
.grid-row-open .grid-footer-toolbar .btn,
.form-in-grid .grid-footer-toolbar .btn {
  color: #004368 !important;
  border-color: #008A8A !important;
}

/* ═══════════════════════════════════════
   Report DataTable Header Fix
   ═══════════════════════════════════════ */

/* Primary header cells */
.dt-header .dt-cell--header,
.dt-header .dt-cell--header .dt-cell__content,
.datatable .dt-cell--header,
.datatable .dt-cell--header .dt-cell__content,
.report-wrapper .dt-cell--header {
  color: #ffffff !important;
  background-color: #004368 !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 0.02em !important;
}

/* Header text spans */
.dt-cell--header .dt-cell__content span,
.dt-cell--header span,
.datatable-wrapper .dt-cell--header span {
  color: #ffffff !important;
}

/* Sort indicator icons */
.dt-cell--header .dt-sort-indicator,
.dt-cell--header svg {
  color: rgba(255,255,255,0.75) !important;
  fill: rgba(255,255,255,0.75) !important;
}

/* Resize handle */
.dt-cell__resize-handle {
  background: rgba(255,255,255,0.25) !important;
}

/* Frozen/first column header */
.dt-cell--header.dt-cell--col-0,
.frozen .dt-cell--header {
  color: #ffffff !important;
  background-color: #004368 !important;
}

/* Alternating body rows */
.dt-body .dt-row:nth-child(even) {
  background: #f8fafc !important;
}
.dt-body .dt-row:nth-child(odd) {
  background: #ffffff !important;
}

/* Row hover */
.dt-body .dt-row:hover {
  background: rgba(0,138,138,0.06) !important;
  cursor: pointer;
}

/* Total/summary row highlight */
.dt-row--highlight,
.dt-row.dt-row--highlight {
  background: #f0f7fa !important;
  font-weight: 600 !important;
}

.dt-row--highlight .dt-cell__content,
.dt-row.dt-row--highlight .dt-cell__content {
  color: #004368 !important;
}

/* Report filter bar */
.report-wrapper .filter-section,
.report-wrapper .filter-area {
  background: #f8fafc !important;
  border-bottom: 1px solid #e5e7eb !important;
  padding: 12px 16px !important;
}

/* Cell content text */
.dt-body .dt-cell__content {
  color: #374151 !important;
}

/* ═══════════════════════════════════════
   Simplified User Form Styles
   ═══════════════════════════════════════ */

/* User form intro banner */
.form-message.blue {
  background: #F0F7FA !important;
  border-left: 3px solid #008A8A !important;
  color: #004368 !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
  padding: 12px 16px !important;
}

/* Style visible User form sections */
.page-head[data-doctype="User"] .page-title {
  color: #004368 !important;
}

/* Clean up User form layout */
[data-doctype="User"] .layout-main-section {
  max-width: 860px !important;
}

/* ═══════════════════════════════════════
   CHILD TABLE EDITOR — FORCE VISIBLE
   MUST BE LAST IN FILE
   ═══════════════════════════════════════ */
/* Force visibility on all editor children.

   THE `:not(.tooltip-content)` EXCLUSION, and why it is on four rules in this
   file rather than one.  `.tooltip-content` is Frappe's own fieldname tooltip
   (desk.bundle: `.tooltip-content { opacity: 0 }`, revealed by
   `.show-tooltip .frappe-control:hover .tooltip-content { opacity: 1 }`).  It
   is a DESCENDANT of every open child-table row editor, so a blanket
   `<editor> *` rule that forces opacity/visibility overrides Frappe's own
   `opacity: 0` and paints a grey pill reading the raw fieldname over every
   field label in the editor — `boq_ref`, `wbs_code`, `description` … — on
   every child table in the product, clipping the section headings behind them.

   Measured on the walk bench (Administrator, BOQ-PROJ-0007-00045, row 1 open,
   1366px): 28 `.tooltip-content` spans on the page, 15 painted, and FOUR rules
   in this file matched them and set opacity/visibility — this one and the
   three marked `TOOLTIP EXCLUSION` below.  `body` carried no `.show-tooltip`
   and no ancestor did either, so Frappe intended all 28 to be invisible.

   The exclusion is deliberately NOT a re-assertion of `opacity: 0` on
   `.tooltip-content`: ours would need `!important` to win here, and that would
   also beat Frappe's un-`!important` hover rule, killing the hover behaviour
   the tooltip exists for.  Excluding the element instead hands it back to
   Frappe entirely — hidden by default, revealed on hover under `.show-tooltip`
   — and leaves every OTHER descendant these blocks rescue exactly as visible
   as it was.  `.tooltip-content` is the only element whose behaviour changes.

   The blocks themselves are NOT narrowed here.  What they were rescuing was
   never written down and establishing it is a separate task; TECH_DEBT §3
   row 13 is the coupling this whole family sits on. */
.grid-row-open *:not(.tooltip-content),
.form-in-grid *:not(.tooltip-content),
.grid-popup-open *:not(.tooltip-content) {
  visibility: visible !important;
}
/* Force white background */
.grid-row-open,
.grid-row-open .panel,
.grid-row-open .panel-body,
.form-in-grid,
.form-in-grid .panel,
.form-in-grid .panel-body,
.grid-popup-open {
  background-color: #ffffff !important;
  background: #ffffff !important;
  opacity: 1 !important;
}
/* Force field labels visible */
.grid-row-open .control-label,
.grid-row-open label,
.grid-row-open .help-box,
.grid-row-open .frappe-control,
.form-in-grid .control-label,
.form-in-grid label,
.form-in-grid .frappe-control {
  color: #374151 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
/* Force input fields visible */
.grid-row-open input,
.grid-row-open select,
.grid-row-open textarea,
.grid-row-open .form-control,
.grid-row-open .like-disabled-input,
.form-in-grid input,
.form-in-grid select,
.form-in-grid textarea,
.form-in-grid .form-control,
.form-in-grid .like-disabled-input {
  color: #111827 !important;
  background-color: #f9fafb !important;
  background: #f9fafb !important;
  border: 1px solid #d1d5db !important;
  opacity: 1 !important;
  visibility: visible !important;
}
/* Force read-only / currency fields */
.grid-row-open .control-value,
.form-in-grid .control-value,
.grid-row-open [data-fieldtype="Currency"] .like-disabled-input,
.form-in-grid [data-fieldtype="Currency"] .like-disabled-input {
  color: #374151 !important;
  opacity: 1 !important;
}
/* Editor header bar */
.grid-row-open > .row:first-child,
.form-in-grid > .row:first-child {
  background: #f0f7fa !important;
  border-bottom: 1px solid #e5e7eb !important;
  padding: 8px !important;
}
/* Editing Row # label */
.grid-row-open h6,
.form-in-grid h6,
.grid-row-open .edit-row-label,
.form-in-grid .edit-row-label {
  color: #004368 !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}
/* Action buttons */
.grid-row-open .btn,
.form-in-grid .btn {
  opacity: 1 !important;
  visibility: visible !important;
}
/* Insert Below / Above / Duplicate */
.grid-row-open .grid-footer-toolbar .btn-xs,
.form-in-grid .grid-footer-toolbar .btn-xs {
  color: #004368 !important;
  border-color: #008A8A !important;
  background: #ffffff !important;
}
/* Row hover in grid */
.grid-body .grid-row:hover {
  background: rgba(0,138,138,0.04) !important;
}
/* Selected row */
.grid-body .grid-row.row-selected {
  background: rgba(0,138,138,0.08) !important;
}
/* Grid cell text */
.grid-body .grid-row td,
.grid-body .static-area,
.grid-body .like-disabled-input {
  color: #374151 !important;
  opacity: 1 !important;
}
/* ── END CHILD TABLE EDITOR FIX ──── */

/* ═══════════════════════════════════════
   USER FORM — Hide extra tabs
   ═══════════════════════════════════════ */
/* Hide by tab href attributes */
[data-doctype="User"] .form-tabs-list .nav-item:has([href*="settings"]),
[data-doctype="User"] .form-tabs-list .nav-item:has([href*="connection"]) {
  display: none !important;
}
/* Hide tab content panels */
[data-doctype="User"] #form-tab-settings,
[data-doctype="User"] #form-tab-connections,
[data-doctype="User"] .tab-pane[id*="settings"],
[data-doctype="User"] .tab-pane[id*="connection"] {
  display: none !important;
}
/* ── END USER FORM TAB FIX ──── */

/* ═══════════════════════════════════════
   GRID COLLAPSED ROW — FORCE VISIBLE
   ═══════════════════════════════════════ */
/* TOOLTIP EXCLUSION — see the block comment on `.grid-row-open *` above.
   An OPEN row editor is rendered inside its `.grid-row`, which is inside
   `.grid-body .rows`, so this rule reaches the editor's tooltips too. */
.grid-body .rows,
.grid-body .rows *:not(.tooltip-content),
.grid-body .data-row,
.grid-body .data-row *:not(.tooltip-content) {
  opacity: 1 !important;
  visibility: visible !important;
}
.grid-body .static-area,
.grid-body .static-area *,
.grid-body .ellipsis,
.grid-body .like-disabled-input {
  color: #374151 !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: transparent !important;
}
.grid-body .grid-row > .col,
.grid-body .data-row > .col,
.grid-body .grid-row > [class*="col-"],
.grid-body .data-row > [class*="col-"] {
  opacity: 1 !important;
  visibility: visible !important;
  color: #374151 !important;
}
.grid-heading-row .col,
.grid-heading-row [data-fieldname] {
  color: #004368 !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}
/* TOOLTIP EXCLUSION — see the block comment on `.grid-row-open *` above.
   The `.static-area span` arm is excluded as well: the pill IS a span. */
.form-grid .grid-body *:not(.tooltip-content),
.form-grid .grid-body .like-disabled-input,
.form-grid .grid-body .static-area span:not(.tooltip-content) {
  opacity: 1 !important;
  visibility: visible !important;
  color: #374151 !important;
}
/* TOOLTIP EXCLUSION — see the block comment on `.grid-row-open *` above.
   Near-duplicate of that rule on purpose; reconciling the two is out of
   scope here, so both are fixed and both are left in place. */
.grid-row-open *:not(.tooltip-content),
.form-in-grid *:not(.tooltip-content) {
  visibility: visible !important;
  opacity: 1 !important;
}
.grid-row-open,
.form-in-grid {
  background: #ffffff !important;
}
.grid-row-open input,
.grid-row-open .form-control,
.form-in-grid input,
.form-in-grid .form-control {
  color: #111827 !important;
  background: #f9fafb !important;
  border: 1px solid #d1d5db !important;
  opacity: 1 !important;
}
.grid-row-open .control-label,
.grid-row-open label,
.form-in-grid .control-label,
.form-in-grid label {
  color: #374151 !important;
  opacity: 1 !important;
}
/* ── END GRID ROW FIX ────────── */

/* ═══════════════════════════════════════
   USER FORM — Hide irrelevant roles
   Frappe v15 role multicheck: .unit-checkbox with data-unit="<role>".
   CSS fallback for known-irrelevant roles (the JS allow-list is the primary
   mechanism and covers everything else).
   ═══════════════════════════════════════ */
.unit-checkbox:has([data-unit="Academics User"]),
.unit-checkbox:has([data-unit="Agriculture Manager"]),
.unit-checkbox:has([data-unit="Agriculture User"]),
.unit-checkbox:has([data-unit="Analytics"]),
.unit-checkbox:has([data-unit="Blogger"]),
.unit-checkbox:has([data-unit="Dashboard Manager"]),
.unit-checkbox:has([data-unit="Delivery Manager"]),
.unit-checkbox:has([data-unit="Delivery User"]),
.unit-checkbox:has([data-unit="Fleet Manager"]),
.unit-checkbox:has([data-unit="Fulfillment User"]),
.unit-checkbox:has([data-unit="Inbox User"]),
.unit-checkbox:has([data-unit="Item Manager"]),
.unit-checkbox:has([data-unit="Knowledge Base Contributor"]),
.unit-checkbox:has([data-unit="Knowledge Base Editor"]),
.unit-checkbox:has([data-unit="Maintenance Manager"]),
.unit-checkbox:has([data-unit="Maintenance User"]),
.unit-checkbox:has([data-unit="Manufacturing Manager"]),
.unit-checkbox:has([data-unit="Manufacturing User"]),
.unit-checkbox:has([data-unit="Newsletter Manager"]),
.unit-checkbox:has([data-unit="Quality Manager"]),
.unit-checkbox:has([data-unit="Sales Manager"]),
.unit-checkbox:has([data-unit="Sales Master Manager"]),
.unit-checkbox:has([data-unit="Sales User"]),
.unit-checkbox:has([data-unit="Script Manager"]),
.unit-checkbox:has([data-unit="Support Team"]),
.unit-checkbox:has([data-unit="Supplier"]),
.unit-checkbox:has([data-unit="Translator"]),
.unit-checkbox:has([data-unit="Website Manager"]),
.unit-checkbox:has([data-unit="Workspace Manager"]),
.unit-checkbox:has([data-unit="Customer"]) {
  display: none !important;
}
/* ── END ROLE FILTER ─────────── */

/* ═══════════════════════════════════════
   GRID ROW EDITOR — Prevent page dimming
   ═══════════════════════════════════════ */
/* When an inline grid row editor (pencil / expand) opens, Frappe injects a dark
   full-page overlay: .modal-backdrop.grid-form (opacity 0.8) that washes out the
   form, sidebar and navbar. Neutralize ONLY that grid backdrop — leave the plain
   .modal-backdrop (used by real dialogs) untouched — so the rest of the page
   stays fully visible and interactive while a row is being edited. */
.modal-backdrop.grid-form {
  opacity: 0 !important;
  background-color: transparent !important;
  pointer-events: none !important;
}
/* Belt-and-suspenders: never let the persistent sidebar / navbar appear dimmed */
#coresync-persistent-sidebar,
header.navbar,
.navbar-main,
#navbar-main {
  opacity: 1 !important;
  filter: none !important;
}

/* ═══════════════════════════════════════════════════════════
   USER DROPDOWN — Hide irrelevant items
   ═══════════════════════════════════════════════════════════ */

/* Hide Apps */
.dropdown-menu a[href="/apps"],
.dropdown-menu a[href*="/apps"],
.navbar-nav .dropdown-menu a[href="/apps"] {
  display: none !important;
}
.dropdown-menu li:has(a[href="/apps"]) {
  display: none !important;
}

/* Hide Manage Billing */
.dropdown-menu a[href*="billing"],
.dropdown-menu a[href*="subscription"] {
  display: none !important;
}
.dropdown-menu li:has(a[href*="billing"]),
.dropdown-menu li:has(a[href*="subscription"]) {
  display: none !important;
}

/* Hide Toggle Theme */
.dropdown-menu [onclick*="toggle_theme"],
.dropdown-menu [data-label="Toggle Theme"] {
  display: none !important;
}

/* ── END USER DROPDOWN ───────────────────────────────────── */


/* ═══════════════════════════════════════════════════════════
   NAVBAR — Hide irrelevant items
   ═══════════════════════════════════════════════════════════ */

/* Hide Help button */
.navbar .help-link,
.navbar a[href*="docs"],
.navbar a[href*="support"],
.navbar-nav .nav-item:has(a[href*="docs"]),
.navbar-nav .nav-item:has(a[href*="help"]),
#navbar-main .help-link,
.navbar .d-none.d-sm-inline-block:has([href*="help"]) {
  display: none !important;
}

/* ── END NAVBAR ──────────────────────────────────────────── */


/* ═══════════════════════════════════════════════════════════
   LIST VIEW — Hide social clutter
   ═══════════════════════════════════════════════════════════ */

/* Hide heart/like icons on list rows */
.list-row .like-action,
.list-row .liked-by,
.list-row-col .like-action,
.result-list .like-action,
.like-action {
  display: none !important;
}

/* Hide comment count on list rows */
.list-row .comment-count,
.list-row-col .comment-count,
.result-list .comment-count,
.list-row .num-comments,
.comment-count {
  display: none !important;
}

/* Hide the total likes count on list */
.list-count .like-count,
.list-header .like-count {
  display: none !important;
}

/* ── END LIST VIEW ───────────────────────────────────────── */


/* ═══════════════════════════════════════════════════════════
   LIST ⋯ MENU — Hide developer tools
   ═══════════════════════════════════════════════════════════ */

[data-label="User Permissions"],
[data-label="Role Permissions Manager"],
[data-label="Customize"],
[data-label="List Settings"],
[data-label="Toggle Sidebar"],
.list-view-menu [data-label="Customize"],
.list-view-menu [data-label="User Permissions"],
.list-view-menu [data-label="Role Permissions Manager"],
.list-view-menu [data-label="List Settings"] {
  display: none !important;
}

/* ── END LIST MENU ───────────────────────────────────────── */
/* ── END GRID DIM FIX ────────── */
