* { box-sizing: border-box; margin: 0; padding: 0; }
body {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
    color: #222;
    background: #fff;
    padding: 15mm 18mm;
    max-width: 210mm;
    margin: 0 auto;
}
.doc-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    border-bottom: 2px solid #2E8B3C;
    padding-bottom: 5mm;
    margin-bottom: 6mm;
}
.doc-header-title h1 {
    font-size: 15pt;
    font-weight: 700;
    color: #1F3B2C;
    margin-bottom: 1mm;
}
.doc-header-title p {
    font-size: 9pt;
    color: #666;
}
.doc-header-logo {
    text-align: right;
    font-size: 9pt;
    color: #555;
    line-height: 1.5;
}
.doc-header-logo img { height: 48px; width: auto; display: block; margin-left: auto; margin-bottom: 3px; }
.doc-header-logo span { color: #555; }
.phase-block { margin-bottom: 7mm; }
.phase-block.page-break { page-break-before: always; }
.alert-box.page-break  { page-break-before: always; }
.phase-title {
    font-size: 12pt;
    font-weight: 700;
    color: #1F3B2C;
    margin-bottom: 1mm;
    margin-top: 6mm;
}
.phase-sub {
    font-size: 8.5pt;
    color: #666;
    margin-bottom: 2.5mm;
}

.section-header {
    padding: 4px 10px;
    border-radius: 4px;
    margin-bottom: 2mm;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
.section-header h2 {
    font-size: 10.5pt;
    font-weight: 700;
    color: #fff;
}
.sh-green   { background-color: #2E8B3C; }
.sh-dark    { background-color: #1F3B2C; }
.sh-success { background-color: #198754; }
.checklist-box {
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 3mm 4mm;
    page-break-inside: avoid;
}
.check-item {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    padding: 2mm 0;
    border-bottom: 1px solid #f0f0f0;
}
.check-item:last-child { border-bottom: none; }
.check-box {
    width: 13px;
    height: 13px;
    min-width: 13px;
    border: 1.5px solid #555;
    border-radius: 2px;
    margin-top: 2px;
    flex-shrink: 0;
}
.check-label strong { display: block; font-size: 9.5pt; font-weight: 700; }
.check-label span   { font-size: 8.5pt; color: #444; line-height: 1.4; }
.alert-box {
    border: 1.5px solid #f59e0b;
    border-radius: 4px;
    padding: 3.5mm 4mm;
    margin-top: 6mm;
    page-break-inside: avoid;
    background: #fffbeb;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
.alert-box h2 {
    font-size: 10.5pt;
    font-weight: 700;
    margin-bottom: 2mm;
    color: #92400e;
}
.alert-box ul { padding-left: 5mm; }
.alert-box li { font-size: 9pt; color: #444; margin-bottom: 1.5mm; line-height: 1.4; }
.doc-footer {
    margin-top: 12mm;
    border-top: 2px solid #2E8B3C;
    padding-top: 4mm;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6mm;
}
.doc-footer img   { height: 28px; width: auto; }
.doc-footer-mid   { text-align: center; font-size: 8pt; color: #555; line-height: 1.6; }
.doc-footer-mid strong { color: #2E8B3C; }
.doc-footer-right { text-align: right; font-size: 7.5pt; color: #888; line-height: 1.6; }
.screen-only {
    position: fixed;
    top: 10px;
    right: 10px;
    background: #2E8B3C;
    color: #fff;
    border: none;
    padding: 8px 18px;
    border-radius: 20px;
    font-size: 10pt;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.screen-only:hover { background: #226B2D; }
@media print {
    .screen-only { display: none !important; }
    body { padding: 10mm 14mm 28mm; }
    @page { size: A4; margin: 0; }
    .doc-footer {
        position: fixed;
        bottom: 0;
        left: 14mm;
        right: 14mm;
        margin-top: 0;
        background: #fff;
        padding: 3mm 0 4mm;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
