/* CSS untuk struk thermal printer */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    max-width: 100%;
    word-break: normal;
    overflow-wrap: break-word;
}
html, body {
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
    font-size: 10pt;
    font-weight: 500;
    line-height: 1.35;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden;
}
.struk-container {
    width: 100% !important;
    max-width: 100% !important;
    text-align: left;  /* PATCH: Default left, biar tiap elemen atur sendiri */
    font-family: 'Courier New', monospace;
    font-size: 11pt;
    padding: 0 10mm;  /* PATCH: Padding 10mm kiri-kanan untuk centering */
}
table {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    border-collapse: collapse;
    font-family: Arial, sans-serif;
    font-size: 10pt;
    font-weight: 500;
    margin: 0;
    padding: 0;
    border: none;
    table-layout: auto;
}
table td, table th {
    padding: 1px 2px;
    margin: 0;
    vertical-align: top;
    line-height: 1.25;
    border: none;
    overflow: hidden;
}
.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.section {
    margin: 4px 0;
}
.hdr {
    font-weight: bold;
    font-size: 12pt;
    line-height: 1.3;
    padding-right: 8px;
}
.sub {
    font-size: 10pt;
    font-weight: 500;
    line-height: 1.25;
    padding-right: 8px;
}
.ftr {
    font-size: 9pt;
    line-height: 1.25;
    padding-right: 8px;
}
img.logo {
    max-width: 75px;
    max-height: 48px;
    width: auto;
    height: auto;
}
table th {
    font-weight: bold;
    background-color: #f0f0f0;
}
table.items-table {
    width: 100% !important;
    margin: 4px 0;
    padding: 0;
    border: 1px solid #333;
    table-layout: auto;
}
table.items-table td, table.items-table th {
    border: 1px solid #666;
    padding: 2px 3px;
}
table.summary-table {
    width: 100% !important;
    margin-top: 4px;
    border: none;
    padding: 0;
    table-layout: auto;
}
table.summary-table td {
    padding: 1px 0;
    font-size: 10pt;
    border: none;
}
table.total-table {
    width: 100% !important;
    margin: 4px 0;
    border: none;
    padding: 0;
    table-layout: auto;
}
table.total-table td {
    font-weight: bold;
    font-size: 11pt;
    padding: 1px 0;
    border: none;
}
table.payment-table {
    width: 100% !important;
    margin: 4px 0;
    border: none;
    table-layout: auto;
}
table.payment-table td {
    padding: 1px 0;
    font-size: 10pt;
    border: none;
}
.separator {
    text-align: center;
    margin: 2px 0;
    font-family: "Courier New", monospace;
    font-size: 11pt;
    letter-spacing: 0px;
}
.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
