/**
 * KaamPoint - Print Stylesheet
 * 
 * Optimized styles for printing. Applied via media print only.
 */

@media print {
  /* ========== PAGE SETUP ========== */

  @page {
    margin: 2cm;
    size: A4;
  }

  html {
    background: white;
  }

  body {
    background: white;
    color: black;
    font-size: 12pt;
    line-height: 1.5;
  }

  /* ========== HIDE PRINT-UNFRIENDLY ELEMENTS ========== */

  .no-print,
  .navbar,
  .navbar-public,
  .navbar-dashboard,
  .kp-navbar-public,
  .kp-navbar-dashboard,
  .kp-sidebar,
  .kp-footer-public,
  .kp-footer-dashboard,
  .sidebar,
  footer,
  .topbar,
  .kp-topbar,
  .kp-breadcrumb,
  .pagination,
  .kp-pagination,
  .form-inline,
  .modal,
  .kp-modal,
  .toast,
  .kp-toast,
  button,
  .kp-btn,
  input[type="search"],
  nav,
  .navbar-toggle,
  .sidebar-toggle,
  .offcanvas,
  .collapse:not(.show),
  [hidden],
  .d-none {
    display: none !important;
  }

  /* ========== TYPOGRAPHY ========== */

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    page-break-after: avoid;
    page-break-inside: avoid;
    color: black;
  }

  h1 {
    font-size: 24pt;
    margin: 0.5cm 0;
  }

  h2 {
    font-size: 18pt;
    margin: 0.3cm 0;
  }

  h3 {
    font-size: 14pt;
    margin: 0.25cm 0;
  }

  p {
    margin: 0 0 0.5cm 0;
    orphans: 3;
    widows: 3;
    page-break-inside: avoid;
  }

  a {
    color: black;
    text-decoration: underline;
  }

  a::after {
    content: " (" attr(href) ")";
    font-size: 8pt;
    color: #666;
  }

  code {
    background: #f5f5f5;
    border: 1px solid #ddd;
    padding: 2px 4px;
  }

  pre {
    background: #f5f5f5;
    border: 1px solid #ddd;
    padding: 10px;
    page-break-inside: avoid;
    white-space: pre-wrap;
    word-wrap: break-word;
  }

  blockquote {
    border-left: 3px solid #ccc;
    padding-left: 1cm;
    margin-left: 0;
    page-break-inside: avoid;
  }

  /* ========== TABLES ========== */

  table {
    width: 100%;
    border-collapse: collapse;
    page-break-inside: avoid;
    margin: 0.5cm 0;
  }

  thead {
    display: table-header-group;
    background: #f5f5f5;
    page-break-after: avoid;
  }

  tbody {
    display: table-row-group;
  }

  th,
  td {
    border: 1px solid #ccc;
    padding: 4pt;
    text-align: left;
  }

  th {
    background: #f5f5f5;
    font-weight: bold;
  }

  tr {
    page-break-inside: avoid;
  }

  /* ========== LISTS ========== */

  ul,
  ol,
  dl {
    margin: 0 0 0.5cm 1cm;
  }

  li {
    margin-bottom: 0.25cm;
    page-break-inside: avoid;
  }

  /* ========== IMAGES & MEDIA ========== */

  img,
  figure {
    max-width: 100%;
    page-break-inside: avoid;
    margin: 0.5cm 0;
  }

  figure {
    text-align: center;
  }

  figcaption {
    font-style: italic;
    font-size: 10pt;
    margin-top: 0.25cm;
  }

  picture,
  svg {
    max-width: 100%;
  }

  /* ========== CARDS & CONTAINERS ========== */

  .kp-card,
  .card {
    page-break-inside: avoid;
    border: 1px solid #ccc;
    padding: 10pt;
    margin: 0.5cm 0;
  }

  .kp-alert,
  .alert {
    page-break-inside: avoid;
    border: 1px solid #ccc;
    padding: 10pt;
    margin: 0.5cm 0;
  }

  /* ========== BADGES & LABELS ========== */

  .kp-badge,
  .badge {
    border: 1px solid #999;
    padding: 2pt 4pt;
  }

  /* ========== BACKGROUND COLORS ========== */

  .bg-primary,
  .bg-success,
  .bg-warning,
  .bg-danger,
  .bg-info {
    background: none;
    color: black;
  }

  /* ========== FORMS ========== */

  input,
  select,
  textarea {
    border: 1px solid #ccc;
    padding: 4pt;
    font-family: inherit;
  }

  input[type="radio"],
  input[type="checkbox"] {
    border: 1px solid #ccc;
    width: 12pt;
    height: 12pt;
  }

  label {
    page-break-inside: avoid;
  }

  /* ========== CONTENT LAYOUT ========== */

  .kp-content {
    max-width: 100%;
  }

  /* ========== PAGE BREAKS ========== */

  /* Force page breaks before certain elements */
  .page-break {
    page-break-before: always;
  }

  .page-break-after {
    page-break-after: always;
  }

  .avoid-break {
    page-break-inside: avoid;
  }

  /* ========== MARGINS & PADDING FOR PRINT ========== */

  /* Remove unnecessary spacing */
  .m-0,
  .m-1,
  .m-2,
  .m-3,
  .m-4,
  .m-5,
  .m-6 {
    margin: 0;
  }

  .p-0 {
    padding: 0;
  }

  .p-1 {
    padding: 2pt;
  }

  .p-2 {
    padding: 4pt;
  }

  .p-3 {
    padding: 6pt;
  }

  .p-4 {
    padding: 10pt;
  }

  /* ========== UTILITIES FOR PRINTING ========== */

  .text-center {
    text-align: center;
  }

  .text-right {
    text-align: right;
  }

  .text-left {
    text-align: left;
  }

  .text-justify {
    text-align: justify;
  }

  .font-bold {
    font-weight: bold;
  }

  /* ========== REDUCED MOTION FOR PRINT ========== */

  * {
    animation: none !important;
    transition: none !important;
  }

  /* ========== FINAL ADJUSTMENTS ========== */

  body {
    color: #333;
    line-height: 1.6;
  }

  a {
    color: #333;
  }

  img {
    border: 1px solid #ddd;
  }
}
