/* --- Print Styles --- */
@media print {
    @page { 
        size: A4; 
        margin: 8mm; /* 余白を少し狭く調整 */
    }
    
    body { 
        padding: 0; 
        font-size: 9.5pt; /* フォントサイズを微調整 */
        background-color: #fff !important;
        line-height: 1.35; /* 行間を少し詰める */
        color: #000 !important;
        font-family: 'Noto Sans JP', sans-serif;
    }
    
    .service-header,
    .notice-section,
    .navigation-buttons,
    .footer-section,
    .no-print { 
        display: none !important; 
    }
    
    #app, .card { 
        box-shadow: none !important;
        border: none !important;
        max-width: none !important;
        margin: 0 !important;
        animation: none !important;
    }
    
    .card { 
        padding: 0 !important;
    }
    
    .result-header { 
        background: #f5f5f5 !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        padding: 6mm !important; /* 内側余白を調整 */
        border-radius: 4px !important;
        margin: 0 0 4mm 0 !important; /* 下余白を調整 */
        page-break-inside: avoid;
    }
    
    .result-header h1 { 
        font-size: 15pt !important;
        margin: 0 0 1.5mm 0 !important;
        color: #000 !important;
        -webkit-text-fill-color: #000 !important;
        background: none !important;
    }
    
    .result-header .subtitle { 
        font-size: 11pt !important;
        margin: 0 !important;
        opacity: 1 !important;
    }
    
    .result-body { 
        padding: 0 !important;
    }
    
    .print-header-grid {
        display: grid !important;
        grid-template-columns: 65% 35% !important;
        gap: 5mm !important;
        margin-top: 3mm !important;
    }
    
    .persons-comparison { 
        display: block !important;
        margin: 0 !important;
    }
    
    .person-card {
        padding: 2.5mm !important; /* 内側余白を調整 */
        font-size: 8.5pt !important;
        border: 1px solid #999 !important;
        margin-bottom: 2mm !important;
        border-radius: 3px !important;
        background-color: #f8f8f8 !important;
        break-inside: avoid;
    }
    
    .person-card h4 {
        font-size: 9pt !important;
        margin: 0 0 1mm 0 !important;
        border-bottom: 1px solid #ccc !important;
        padding-bottom: 1mm !important;
        font-weight: 600 !important;
    }
     .person-card h4::after { display: none !important; }

    
    .compatibility-score {
        padding: 2.5mm !important;
        margin: 0 !important;
        border: 1px solid #999 !important;
        text-align: center !important;
        border-radius: 3px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        background: #f8f8f8 !important;
    }
     .compatibility-score::before { display: none !important; }
    
    .compatibility-score h3 {
        font-size: 9pt !important;
        margin: 0 0 1mm 0 !important;
        font-weight: 600 !important;
        text-align: center !important;
    }
    
    .score-display {
        font-size: 20pt !important;
        margin: 1mm auto !important;
        font-weight: 800 !important;
        border: 2px solid #333 !important;
        border-radius: 50% !important;
        width: 45px !important;
        height: 45px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: #000 !important;
        background: none !important;
        -webkit-text-fill-color: #000 !important;
    }
    
    .result-strength-tag {
        background: #e0e0e0 !important;
        color: #000 !important;
        border: 1px solid #999 !important;
        font-size: 7pt !important;
        padding: 1px 4px !important;
        margin: 0.5px !important;
        border-radius: 3px !important;
        font-weight: 500 !important;
        display: inline-block !important;
    }
    
    .result-strengths-list {
        display: flex !important;
        flex-wrap: wrap !important;
        margin: 1mm 0 !important;
        gap: 1px !important;
    }
    
    .result-section {
        break-inside: avoid;
        margin: 0 0 2.5mm 0 !important; /* セクション間余白を削減 */
        padding: 2.5mm !important; /* 内側余白を調整 */
        border: 1px solid #ccc !important;
        border-left-width: 3px !important;
        border-left-color: #333 !important;
        border-radius: 3px !important;
        background: #fff !important;
        box-shadow: none !important;
        transform: none !important;
    }
    
    .result-section:nth-child(even) {
        background-color: #fafafa !important;
    }
    
    .result-section .section-title {
        display: flex !important;
        align-items: center !important;
        font-size: 10pt !important;
        margin-bottom: 1.5mm !important; /* タイトル下余白を削減 */
        line-height: 1.2 !important;
        border-bottom: 1px solid #999 !important;
        font-weight: 600 !important;
        background-color: #f0f0f0 !important;
        padding: 1.5mm !important; /* タイトル内余白を調整 */
        border-radius: 2px !important;
    }
    .result-section .section-title::after { display: none !important; }
    
    .result-section .emoji {
        font-size: 1em !important;
        margin-right: 2mm !important;
    }
    
    .result-section .section-content {
        font-size: 9pt !important;
        line-height: 1.4 !important;
        text-align: justify !important;
        margin-top: 1.5mm !important;
    }
    
    .report-credit {
        font-size: 6pt !important;
        color: #aaa !important;
        position: fixed !important;
        top: 2mm !important;
        right: 2mm !important;
    }
    
    .report-credit a {
        color: inherit !important;
        text-decoration: none !important;
    }
}