:root {
    --sky-card-blue: #5b79ac;
    --a5-page-width: 148mm;
    --a5-page-height: 210mm;
    --a5-page-margin: 5mm;
    --a5-preview-bottom-padding: 5mm;
    --a5-print-area-height: 210mm;
    --a5-section-gap: 3mm;
    --a5-system-section-height: 136mm;
    --a5-main-section-height: 71mm;
    --a5-card-font-size: 10.5px;
    --a5-inspection-row-height: 6mm;
    --a5-data-cell-padding: 2px;
    --a5-owner-horizontal-padding: 6px;
}

body {
    font-family: "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.brand-image.bi {
    align-items: center;
    display: inline-flex;
    font-size: 1.35rem;
    height: 2.1rem;
    justify-content: center;
    margin-right: .5rem;
    width: 2.1rem;
}

.header-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.view {
    display: none;
    padding-bottom: 1.25rem;
}

.view.active {
    display: block;
}

.card-title {
    font-weight: 600;
}

.data-table th,
.data-table td {
    vertical-align: middle;
}

.data-table thead th {
    white-space: nowrap;
}

.sortable-col {
    cursor: pointer;
    padding-right: 1.75rem !important;
    position: relative;
    user-select: none;
}

.sort-icon {
    color: var(--bs-secondary-color);
    font-size: .75rem;
    position: absolute;
    right: .55rem;
    top: 50%;
    transform: translateY(-50%);
}

.filter-row th {
    background: var(--bs-tertiary-bg);
    padding: .5rem;
}

.filter-input {
    border: 1px solid var(--bs-border-color);
    border-radius: .375rem;
    font-size: .8125rem;
    padding: .35rem .5rem;
    width: 100%;
}

.active-row td {
    background-color: rgba(var(--bs-primary-rgb), .12) !important;
    font-weight: 600;
}

.status-badge {
    border-radius: 999px;
    display: inline-block;
    font-size: .8125rem;
    font-weight: 700;
    line-height: 1;
    padding: .35rem .6rem;
}

.status-valid {
    background: rgba(var(--bs-success-rgb), .14);
    color: #0f5132;
}

.status-warning {
    background: rgba(var(--bs-warning-rgb), .2);
    color: #7a4b00;
}

.status-expired {
    background: rgba(var(--bs-danger-rgb), .14);
    color: #842029;
}

.btn-sm {
    white-space: nowrap;
}

.del-insp-btn {
    background: #dc3545;
    border: 0;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    font-size: .7em;
    margin-left: 5px;
    padding: 2px 6px;
}

.edit-insp-btn {
    background: #0d6efd;
    border: 0;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    font-size: .7em;
    padding: 2px 6px;
}

/* Physical card preview and print layout */
.physical-card {
    align-items: flex-start;
    color: #000;
    display: flex;
    flex-direction: row;
    font-family: Arial, sans-serif;
    font-size: var(--a5-card-font-size);
    gap: 10mm;
    justify-content: flex-start;
    margin: 0 auto;
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: 1rem;
}

.print-page {
    background: #fff;
    border-radius: 4px;
    box-sizing: border-box;
    box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
    display: flex;
    flex: 0 0 var(--a5-page-width);
    flex-direction: column;
    gap: 0;
    height: 209mm;
    justify-content: flex-start;
    max-width: none;
    overflow: hidden;
    padding: 0;
    width: var(--a5-page-width);
}

/* --- Linia cięcia z nożyczkami --- */
.cut-line {
    align-items: center;
    box-sizing: border-box;
    color: #aaa;
    display: flex;
    flex: 0 0 var(--a5-section-gap);
    font-size: 11px;
    height: var(--a5-section-gap);
    width: 100%;
}

.cut-line::after {
    border-top: 1px dashed #bbb;
    content: '';
    flex: 1;
}

.cut-scissors {
    display: inline-block;
    font-size: 13px;
    line-height: 1;
    margin-right: 2px;
}

.print-page .card-section:first-child {
    flex: 1 1 0;
    min-height: 0;
}

.print-page .card-section:last-child {
    flex: 0 0 var(--a5-main-section-height);
    height: var(--a5-main-section-height);
}

.back-page {
    page-break-before: always;
    overflow: hidden;
}

.card-section {
    border: 2px solid var(--sky-card-blue);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.card-section > * {
    flex-shrink: 0;
}

.card-section > .flex-spacer {
    flex-shrink: 1;
}

.card-header-blue {
    background: var(--sky-card-blue);
    color: #fff;
    font-size: 1.1em;
    font-weight: 700;
    letter-spacing: 1px;
    margin-top: 2px;
    padding: 3px 5px;
    text-align: center;
}

.en-text {
    color: #4a4a4a;
    font-size: .75em;
    font-style: italic;
    font-weight: 400;
}

.card-header-blue .en-text {
    color: #e0e0e0;
}

.card-owner-row {
    border-bottom: 2px solid var(--sky-card-blue);
    display: flex;
}

.logo-box {
    align-items: center;
    border-right: 2px solid var(--sky-card-blue);
    color: #777;
    display: flex;
    flex-direction: column;
    font-size: .8em;
    justify-content: center;
    padding: 2px;
    width: 92px;
}

.logo-box .bi {
    font-size: 1.5rem;
}

.owner-details {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.card-owner-row {
}

.owner-label {
    color: #3b5998;
    font-size: .8em;
    font-weight: 700;
    padding: 1px var(--a5-owner-horizontal-padding);
}

.owner-name-phone {
    border-bottom: 1px solid var(--sky-card-blue);
    display: flex;
    font-size: 1.2em;
    font-weight: 700;
    overflow: hidden;
    padding: 1px var(--a5-owner-horizontal-padding);
    white-space: nowrap;
}

.owner-name-phone span {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

.owner-name-phone .phone-text,
.owner-phone-label {
    flex: none;
    width: 170px;
}

.owner-name-label {
    flex: 1;
}

.owner-sublabels {
    color: #3b5998;
    display: flex;
    font-size: .65em;
    font-weight: 700;
    padding: 0 var(--a5-owner-horizontal-padding);
}

.owner-address {
    border-bottom: 1px solid var(--sky-card-blue);
    font-size: 1em;
    font-weight: 700;
    overflow: hidden;
    padding: 1px var(--a5-owner-horizontal-padding);
    text-overflow: ellipsis;
    white-space: nowrap;
}

table.card-components-table,
table.card-inspections-table,
table.card-main-canopy-table {
    border-collapse: collapse;
    table-layout: fixed;
    width: 100%;
}

.flex-spacer {
    flex-grow: 1;
    flex-shrink: 1;
    min-height: 0;
}

table.card-components-table th,
table.card-components-table td,
table.card-main-canopy-table th,
table.card-main-canopy-table td {
    border: 1px solid var(--sky-card-blue);
    overflow: hidden;
    padding: var(--a5-data-cell-padding);
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

table.card-inspections-table th,
table.card-inspections-table td {
    border: 1px solid var(--sky-card-blue);
    overflow: hidden;
    padding: 4px;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

table.card-components-table th,
table.card-inspections-table th,
table.card-main-canopy-table th {
    color: #3b5998;
    font-size: .75em;
    font-weight: 400;
}

.card-components-table th,
.card-components-table td {
    width: 25%;
}

.card-inspections-table th:nth-child(1),
.card-inspections-table td:nth-child(1) {
    width: 14%;
}

.card-inspections-table th:nth-child(2),
.card-inspections-table td:nth-child(2) {
    width: 30%;
}

.card-inspections-table th:nth-child(3),
.card-inspections-table td:nth-child(3) {
    width: 20%;
}

.card-inspections-table th:nth-child(4),
.card-inspections-table td:nth-child(4) {
    width: 22%;
}

.card-inspections-table th:nth-child(5),
.card-inspections-table td:nth-child(5) {
    width: 14%;
}

.card-main-canopy-table th:first-child,
.card-main-canopy-table td:first-child {
    width: 75%;
}

.card-main-canopy-table th:last-child,
.card-main-canopy-table td:last-child {
    width: 25%;
}

.row-label {
    color: #3b5998;
    font-size: .75em;
    font-weight: 700;
    text-align: right !important;
}

.bold-val {
    font-size: 1.05em;
    font-weight: 700;
}

table.card-inspections-table tbody tr,
table.card-inspections-table tbody td {
    height: var(--a5-inspection-row-height);
    max-height: var(--a5-inspection-row-height);
}

table.card-inspections-table tbody td {
    font-size: .9em;
}

@media (max-width: 991.98px) {
    .header-actions {
        justify-content: flex-start;
        margin-top: .5rem;
        width: 100%;
    }

    .physical-card {
        flex-direction: column;
    }
}

@media print {

    .no-print,
    .modal,
    .modal-backdrop,
    .app-sidebar,
    .app-header,
    .app-content-header {
        display: none !important;
    }

    @page {
        margin: 0mm 0mm 0mm 0mm;
        size: A5 portrait;
    }

    html {
        border: none !important;
        margin: 0 !important;
        outline: none !important;
        padding: 0 !important;
    }

    body {
        background: #fff !important;
        border: none !important;
        margin: 0 !important;
        outline: none !important;
        padding: 0 !important;
    }

    .app-wrapper,
    .app-main,
    .app-content,
    .container-fluid,
    #view-rig-detail {
        border: none !important;
        box-shadow: none !important;
        display: block !important;
        left: auto !important;
        margin: 0 !important;
        max-width: none !important;
        outline: none !important;
        padding: 0 !important;
        position: static !important;
        top: auto !important;
        transform: none !important;
        width: 100% !important;
    }

    .print-page {
        border: none !important;
        outline: none !important;
    }

    table.card-components-table,
    table.card-inspections-table,
    table.card-main-canopy-table {
        border: 0 !important;
    }

    body.print-card-only .view:not(#view-rig-detail),
    body.print-card-only #view-rig-detail> :not(#rig-print-area) {
        display: none !important;
    }

    body.print-card-only #rig-print-area {
        display: block !important;
    }

    .physical-card {
        border: 0;
        box-shadow: none;
        display: block !important;
        font-size: var(--a5-card-font-size);
        max-width: none;
        overflow: visible;
        padding-bottom: 0;
        width: 100%;
    }

    .print-page {
        border-radius: 0;
        box-shadow: none;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        gap: 0;
        justify-content: flex-start;
        margin: 0;
        height: 209mm !important;
        /* twarda wysokość mniejsza niż 210mm papieru, by uniknąć 3 strony */
        max-width: none;
        overflow: hidden;
        padding: 0;
        width: 100%;
    }

    .back-page {
        page-break-before: always;
    }

    .card-section {
        border: 2px solid #5b79ac;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        margin: 0 !important;
        overflow: hidden;
    }

    .print-page .card-section:first-child {
        flex: 1 1 0;
        min-height: 0;
    }

    .print-page .card-section:last-child {
        flex: 0 0 var(--a5-main-section-height);
        height: var(--a5-main-section-height);
    }

    .card-header-blue {
        -webkit-print-color-adjust: exact;
        background-color: var(--sky-card-blue) !important;
        color: #fff !important;
        print-color-adjust: exact;
    }

    .owner-label,
    .owner-sublabels,
    table th,
    .row-label {
        color: #3b5998 !important;
    }

    .del-insp-btn {
        display: none !important;
    }

    table.card-inspections-table tbody tr,
    table.card-inspections-table tbody td {
        height: var(--a5-inspection-row-height) !important;
        max-height: var(--a5-inspection-row-height) !important;
    }

    table.card-inspections-table tbody td {
        overflow: hidden !important;
    }

    .print-page {
        gap: 0;
    }

    /* Linia cięcia – widoczna na wydruku */
    .cut-line {
        color: #333;
        flex: 0 0 var(--a5-section-gap);
        height: var(--a5-section-gap);
    }

    .cut-line::after {
        border-top: 0.5pt dashed #555;
    }

    .cut-scissors {
        color: #333;
        font-size: 10pt;
    }

    /* --- TRYB NADRUKU (OVERPRINT) --- */
    /* Strona bez żadnego zaznaczonego wpisu nie jest drukowana (brak pustej kartki A5). */
    body.print-overprint-only .print-page.overprint-empty {
        display: none !important;
    }
    body.print-overprint-only .card-wrapper,
    body.print-overprint-only .card-section {
        border: none !important;
        box-shadow: none !important;
    }
    body.print-overprint-only .card-header-blue,
    body.print-overprint-only .card-owner-row,
    body.print-overprint-only .cut-line,
    body.print-overprint-only .flex-spacer,
    body.print-overprint-only .card-components-table,
    body.print-overprint-only .card-main-canopy-table {
        visibility: hidden !important;
    }
    body.print-overprint-only table {
        border: none !important;
    }
    body.print-overprint-only th,
    body.print-overprint-only td {
        border: none !important;
    }
    body.print-overprint-only th {
        visibility: hidden !important;
    }
    body.print-overprint-only tr:not(.print-selected) td {
        visibility: hidden !important;
    }
    body.print-overprint-only tr.print-selected td {
        visibility: visible !important;
        color: #000 !important;
    }
    body.print-overprint-only .status-badge {
        /* W trybie nadruku usuwamy ewentualne tła i marginesy żeby tekst był czysty */
        background: transparent !important;
        color: #000 !important;
        border: none !important;
    }
}
/* --- UI SELECTION MODE --- */
.print-row-toggle-label {
    display: none;
}
body.selection-mode .print-row-toggle-label {
    display: inline-block;
}
body.selection-mode .del-insp-btn {
    display: none !important;
}
