/* BoilerPlate app-level overrides + kmc-table tweaks. */

/* Phase 4.A — draggable column headers. */
.kmc-view-table th.kmc-col-handle { cursor: grab; user-select: none; }
.kmc-view-table th.kmc-col-handle:active { cursor: grabbing; }
.kmc-view-table th.kmc-col-handle::before {
  content: '\22EE\22EE';                       /* '⋮⋮' — two vertical ellipses */
  display: inline-block;
  margin-right: 8px;
  letter-spacing: 0;                           /* keep the two dots clearly separated */
  color: var(--phoenix-body-quaternary-color);
  opacity: 0.55;
  vertical-align: middle;
  transition: opacity 0.15s ease, color 0.15s ease;
}
.kmc-view-table th.kmc-col-handle:hover::before {
  opacity: 1;
  color: var(--phoenix-primary);
}
.kmc-col-ghost  { opacity: 0.4; }
.kmc-col-chosen { background-color: var(--phoenix-body-tertiary-bg); }

/* Phase 4.F — kanban card drag states. */
.kmc-kanban-cards .card { cursor: grab; }
.kmc-kanban-cards .card:active { cursor: grabbing; }
.kmc-card-ghost  { opacity: 0.4; }
.kmc-card-chosen { box-shadow: 0 0 0 2px var(--phoenix-primary) inset; }

/* Phase 4.D — Calendar view. */
.kmc-cal-grid     { display: grid; gap: 1px; background: var(--phoenix-border-color-translucent); border: 1px solid var(--phoenix-border-color-translucent); border-radius: 0.375rem; overflow: hidden; }
.kmc-cal-headrow  { display: grid; grid-template-columns: repeat(7, 1fr); background: var(--phoenix-body-bg); }
.kmc-cal-body     { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--phoenix-border-color-translucent); }
.kmc-cal-cell     { background: var(--phoenix-body-bg); min-height: 110px; max-height: 160px; overflow: auto; padding-top: 4px; }
.kmc-cal-month .kmc-cal-cell { min-height: 100px; max-height: 130px; }
.kmc-cal-week  .kmc-cal-cell { min-height: 420px; max-height: 60vh; }
.kmc-cal-outside { background: var(--phoenix-body-tertiary-bg); opacity: 0.7; }
.kmc-cal-today   { background: color-mix(in srgb, var(--phoenix-primary) 8%, var(--phoenix-body-bg)); }
.kmc-cal-day     { padding-top: 2px; }
.kmc-cal-items   { font-size: 11px; }
.kmc-cal-items .btn { font-size: 11px; line-height: 1.3; }
.kmc-cal-headcell { background: var(--phoenix-body-bg); }

/* Phase 4.C — PDF export via window.print() + Save-as-PDF. */
.kmc-print-only { display: none; }                     /* shown only in print */

@page { size: A4 landscape; margin: 1cm; }

@media print {
  /* Hide app chrome */
  .navbar-vertical, .navbar-top, .navbar-glass, .footer,
  .kmc-table-toolbar, .kmc-table-pagination,
  .offcanvas, .modal-backdrop, .toast-container, #kmctoast,
  .dropdown-menu, .btn-close { display: none !important; }

  /* Pull content edge-to-edge */
  body, html { background: #fff !important; color: #000 !important; }
  .main, .content, .container, .container-fluid { padding: 0 !important; margin: 0 !important; max-width: none !important; }
  .page-header, .breadcrumb { display: none !important; }

  /* Cards: flatten borders, no shadows */
  .card { box-shadow: none !important; border: 1px solid #ccc !important; }

  /* Tables: compact, no row hover bg, allow long content */
  .kmc-view-table .table { font-size: 9pt; width: 100%; }
  .kmc-view-table thead th { background: #f4f4f4 !important; color: #000 !important;
                             -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .kmc-view-table tr { break-inside: avoid; page-break-inside: avoid; }
  .kmc-view-table th.kmc-col-handle::before { display: none !important; }

  /* Tiles / kanban: avoid splitting a card across pages */
  .kmc-view-tiles [class*="col-"] { break-inside: avoid; page-break-inside: avoid; }
  .kmc-view-kanban [data-kmc-kanban-col] { break-inside: avoid; page-break-inside: avoid; }

  /* Show the injected print header */
  .kmc-print-only { display: block !important; }
  .kmc-print-header { margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #000; }
  .kmc-print-header h1 { font-size: 14pt; margin: 0 0 4pt 0; }
  .kmc-print-header .kmc-print-meta { font-size: 8pt; color: #444; }
}
