/* ======================================================
   Custom ERP — main.css (BOOTSTRAP BASED CLEAN)
   Date: 2026-02-14
   Bootstrap Layout | Custom Theme Layer Only
   ====================================================== */

/* ================= ROOT THEME ================= */
:root{
  --page-bg:#f4f6fb;
  --card-bg:#ffffff;
  --fg:#1f2937;
  --muted:#6b7280;

  --primary:#7e78c8;
  --primary-dark:#6b65b7;
  --primary-soft:#f0effa;

  --success:#2ecc71;
  --warning:#ff9f43;
  --danger:#ff4d4f;
  --info:#4da3ff;

  --radius:12px;
  --shadow-sm:0 4px 10px rgba(0,0,0,.05);
  --shadow-md:0 8px 24px rgba(0,0,0,.08);
}

/* ================= BASE RESET ================= */
*,
*::before,
*::after{
  box-sizing:border-box;
}

body{
  margin:0;
  background:var(--page-bg);
  color:var(--fg);
  font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;
}

/* ================= CONTAINER CONTROL ================= */
/* Force ERP width consistency */
.container,
.container-fluid{
  padding-top:20px;
  padding-bottom:20px;
}

/* ================= CARD ENHANCEMENT ================= */
.card{
  border:none;
  border-radius:var(--radius);
  box-shadow:var(--shadow-md);
}

.card-header{
  background:#fff;
  border-bottom:1px solid #eee;
  font-weight:600;
}

/* ================= FORM IMPROVEMENTS ================= */
.form-label{
  font-size:13px;
  font-weight:600;
  color:var(--muted);
}

.form-control,
.form-select{
  border-radius:10px;
  height:38px;
  font-size:14px;
}

textarea.form-control{
  height:auto;
  min-height:90px;
}

.form-control:focus,
.form-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 2px var(--primary-soft);
}

/* ================= BUTTON THEME ================= */
.btn-primary{
  background:var(--primary);
  border:none;
  border-radius:10px;
  font-weight:600;
}

.btn-primary:hover{
  background:var(--primary-dark);
}

.btn-outline-primary{
  border-radius:10px;
}

/* ================= BADGES ================= */
.badge{
  border-radius:8px;
  font-weight:600;
  padding:6px 10px;
}

/* ================= TABLE STYLING ================= */
.table{
  border-radius:var(--radius);
  overflow:hidden;
}

.table thead{
  background:var(--primary-soft);
}

.table th{
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  color:var(--muted);
}

.table td{
  vertical-align:middle;
}

/* ================= NOTICE (CUSTOM ALERT) ================= */
.notice{
  border-radius:var(--radius);
  padding:14px 18px;
  font-weight:600;
  box-shadow:var(--shadow-sm);
  margin-bottom:20px;
}

.notice--success{
  background:var(--success);
  color:#fff;
}

.notice--danger{
  background:var(--danger);
  color:#fff;
}

.notice--warning{
  background:var(--warning);
  color:#222;
}

.notice--info{
  background:var(--info);
  color:#fff;
}

/* ================= HEADER BAR OPTIONAL ================= */
.main-header-bar{
  background:var(--primary);
  color:#fff;
}

/* ================= PRINT SAFE ================= */
@media print{
  header,
  nav,
  footer,
  .btn,
  .no-print{
    display:none!important;
  }

  body{
    background:#fff!important;
    color:#000!important;
  }
}
/* ========================================
   GLOBAL PRINT CLEAN MODE
   Hide ERP header & footer everywhere
   ======================================== */

@media print {

  /* TOP PURPLE HEADER BAR */
  .main-header-bar {
    display: none !important;
  }

  /* NAV MENU STRIP */
  .nav-bottom-strip {
    display: none !important;
  }

  /* Any bootstrap nav */
  nav,
  .navbar,
  .topbar {
    display: none !important;
  }

  /* Footer */
  footer,
  .footer,
  .main-footer,
  .site-footer {
    display: none !important;
  }

  /* Reset body spacing */
  body {
    margin: 0 !important;
    padding: 10mm !important;
    background: #fff !important;
  }

}
@media print {
  .card {
    box-shadow: none !important;
  }
}
/* page: yarn_out_report
   added: 2026-02-17
*/

.yarn-assign-select {
    min-height: 180px;
}

@media (min-width: 992px) {
    .yarn-assign-select {
        min-height: 220px;
    }
}
/* page: yarn_out_report
   added: 2026-02-17
*/

.yarn-assign-select {
    min-height: 180px;
}

@media (min-width: 992px) {
    .yarn-assign-select {
        min-height: 220px;
    }
}

.table thead th {
    font-size: 12px;
    letter-spacing: 0.5px;
}

.table tbody td {
    font-size: 13px;
}

.table tfoot td {
    font-weight: 700;
    background: #f8f9fa;
}

/* =====================================================
   page: mesr_total_by_denier
   added: 2026-02-23
   purpose: professional print layout
===================================================== */

@media print {

  /* ===== GENERAL RESET ===== */

  body {
      background: #fff !important;
  }

  .container,
  .container-fluid {
      padding: 0 !important;
      margin: 0 !important;
  }

  .card {
      box-shadow: none !important;
      border: 1px solid #ddd !important;
      margin-bottom: 20px !important;
  }

  /* Hide filter/form cards fully in print to avoid blank space */
  .card:has(form),
  .no-print {
      display: none !important;
  }

  /* ===== TABLE IMPROVEMENTS ===== */

  table {
      width: 100% !important;
      border-collapse: collapse !important;
  }

  th, td {
      padding: 4px 6px !important;
      font-size: 12px !important;
  }

  thead {
      display: table-header-group !important;
  }

  tfoot {
      display: table-footer-group !important;
  }

  /* ===== PRINT FLOW FIX ===== */

  .card,
  .table-responsive,
  table,
  tbody,
  tr {
      page-break-inside: auto !important;
      break-inside: auto !important;
  }

  .table-responsive {
      overflow: visible !important;
  }

  .card-header {
      page-break-after: avoid !important;
      break-after: avoid !important;
  }

  /* ===== REMOVE UI ELEMENTS FROM PRINT ===== */

  .btn,
  form,
  input,
  select,
  .nav-bottom-strip,
  .main-header-bar,
  .user-wrapper {
      display: none !important;
  }

  /* ===== ALERT STYLE ===== */

  .alert {
      border: 1px solid #000 !important;
      background: none !important;
      color: #000 !important;
  }

}
/* ============================================
   Header Responsive Fix
   added: 2026-02-28
   ============================================ */

/* Desktop dropdown */
.nav-sec { position: relative; }

.nav-submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    min-width: 180px;
    box-shadow: 0 4px 10px rgba(0,0,0,.15);
    z-index: 2000;
}

.nav-sec:hover .nav-submenu {
    display: block;
}

/* ===== MOBILE FIX ===== */
@media (max-width: 768px){

    .nav-bottom-strip{
        flex-direction: column;
    }

    .nav-sec{
        width: 100%;
    }

    .nav-sec > button{
        width: 100%;
        text-align: left;
    }

    .nav-submenu{
        position: static;   /* KEY FIX */
        box-shadow: none;
        width: 100%;
    }

    .nav-sec.active .nav-submenu{
        display: block;
    }
}
/* page: intercom_manage
   added: 2026-03-17
   update: dual print (2 copy) + 2 column layout */

.print-area {
    display: none;
}

@media print {

    /* Hide normal UI */
    .no-print {
        display: none !important;
    }

    /* Show print content */
    .print-area {
        display: block;
        width: 100%;
    }

    /* Each copy (top + bottom) */
    .print-block {
        height: 48%;
        margin-bottom: 12px;
        page-break-inside: avoid;
    }

    /* Table styling */
    .print-table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
    }

    .print-table th,
    .print-table td {
        border: 1px solid #000;
        padding: 4px 6px;
        font-size: 11px;
        line-height: 1.2;
        word-wrap: break-word;
    }

    .print-table th {
        background: #eee;
        font-weight: bold;
    }

    /* Header alignment */
    h3 {
        margin: 4px 0 6px;
        font-size: 14px;
    }

    /* Remove page margins for better fit */
    @page {
        margin: 10mm;
    }
}
/* page: gray-receive-entry */
.ts-wrapper > select {
    display: none !important;
}
.ts-control {
    min-height: 38px;
}

/* =====================================================
   page: shift-report
   added: 2026-03-24
   updated: overflow fix + print fit
   ===================================================== */

.a4-report {
    width: 210mm;
    margin: 0 auto;
    background: #fff;
}

/* ===== TABLE ===== */
.report-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 12px;
}

/* Cells */
.report-table th,
.report-table td {
    border: 1px solid #000;
    padding: 5px 3px;
    text-align: center;
    vertical-align: middle;
    box-sizing: border-box; /* CRITICAL FIX */
}

/* ===== COLUMN WIDTH (SAFE TOTAL ~92%) ===== */
.report-table th:nth-child(1),
.report-table td:nth-child(1) { width: 7%; }

.report-table th:nth-child(2),
.report-table td:nth-child(2) { width: 15%; }

.report-table th:nth-child(3),
.report-table td:nth-child(3) { width: 13%; }

.report-table th:nth-child(4),
.report-table td:nth-child(4) { width: 17%; }

.report-table th:nth-child(5),
.report-table td:nth-child(5) { width: 13%; }

.report-table th:nth-child(6),
.report-table td:nth-child(6) { width: 9%; }

.report-table th:nth-child(7),
.report-table td:nth-child(7) { width: 18%; }

/* ===== ROW HEIGHT ===== */
.report-table tbody tr {
    height: 26px;
}

/* ===== TITLES ===== */
.report-title {
    font-weight: bold;
    margin: 8px 0 5px;
    font-size: 13px;
}

/* ===== REMARK BOX ===== */
.remarks-space {
    height: 140px;
    border: 1px solid #000;
    margin: 12px 0;
    position: relative;
}

.remarks-space::before {
    content: "REMARKS";
    position: absolute;
    top: -8px;
    left: 10px;
    background: #fff;
    font-size: 11px;
    padding: 0 5px;
}

/* ===== PRINT CONTROL ===== */
@media print {

    body {
        margin: 0 !important;
        padding: 5mm !important;
        background: #fff !important;
    }

    .a4-report {
        width: 100%;
    }

    .report-table {
        max-width: 100%;
        overflow: hidden;
    }

    /* avoid page break inside table */
    .report-table {
        page-break-inside: avoid;
    }

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

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

/* =====================================================
   page: shift-report
   update: duplex print binding margin
===================================================== */

/* Screen view (centered) */
.a4-report {
    width: 210mm;
    margin: 0 auto;
    background: #fff;
    padding: 10mm; /* inner breathing space */
}

/* ===== PRINT MODE ===== */
@media print {

    body {
        margin: 0;
        padding: 0;
    }

    .a4-report {
        width: 100%;
        padding: 0;
    }

    /* ===== PAGE SETUP ===== */
    @page {
        size: A4;
    }

    /* ODD pages (Page 1,3,5...) → LEFT binding */
    @page :right {
        margin-top: 10mm;
        margin-bottom: 10mm;
        margin-left: 20mm;   /* binding space */
        margin-right: 10mm;
    }

    /* EVEN pages (Page 2,4,6...) → RIGHT binding */
    @page :left {
        margin-top: 10mm;
        margin-bottom: 10mm;
        margin-left: 10mm;
        margin-right: 20mm;  /* binding space */
    }

    /* Safety spacing inside */
    .report-block {
        margin-bottom: 8mm;
    }

    .remarks-space {
        margin: 10mm 0;
    }
}
/* =====================================================
   page: shift-report
   final: duplex + page break + overflow fix
===================================================== */

.a4-report {
    width: 210mm;
    margin: 0 auto;
    background: #fff;
    padding: 10mm;
}

/* TABLE */
.report-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 12px;
}

.report-table th,
.report-table td {
    border: 1px solid #000;
    padding: 5px 3px;
    text-align: center;
    box-sizing: border-box;
}

/* SAFE WIDTH */
.report-table th:nth-child(1),
.report-table td:nth-child(1){width:7%;}
.report-table th:nth-child(2),
.report-table td:nth-child(2){width:15%;}
.report-table th:nth-child(3),
.report-table td:nth-child(3){width:13%;}
.report-table th:nth-child(4),
.report-table td:nth-child(4){width:17%;}
.report-table th:nth-child(5),
.report-table td:nth-child(5){width:13%;}
.report-table th:nth-child(6),
.report-table td:nth-child(6){width:9%;}
.report-table th:nth-child(7),
.report-table td:nth-child(7){width:18%;}

.report-table tbody tr {
    height: 26px;
}

/* TITLE */
.report-title {
    font-weight: bold;
    margin: 6px 0;
}

/* REMARKS */
.remarks-space {
    height: 140px;
    border: 1px solid #000;
    margin: 10px 0;
    position: relative;
}

.remarks-space::before {
    content: "REMARKS";
    position: absolute;
    top: -8px;
    left: 10px;
    background: #fff;
    font-size: 11px;
    padding: 0 5px;
}

/* PAGE BREAK */
.page-break {
    display: none;
}

@media print {

    .page-break {
        display: block;
        page-break-before: always;
    }

    body {
        margin: 0;
        padding: 0;
    }

    .a4-report {
        width: 100%;
        padding: 0;
    }

    /* DUPLEX MARGIN */
    @page {
        size: A4;
    }

    @page :right {
        margin: 10mm 10mm 10mm 20mm;
    }

    @page :left {
        margin: 10mm 20mm 10mm 10mm;
    }
}