.print-session-sheet { display: none; }
@media print {
  #result-screen.print-has-session > :not(.print-session-sheet),
  #result-screen.print-has-session > #tab-sheet:not(.print-session-sheet),
  #doc-root.print-has-session > :not(.print-session-sheet) { display: none !important; }
  #result-screen.print-has-session.container, .container.print-session-container,
  .container:has(> #doc-root.print-has-session) { max-width: none; width: auto; margin: 0; padding: 0; }
  #result-screen.print-has-session > .print-session-sheet, #doc-root.print-has-session > .print-session-sheet { display: block !important; }
  .print-session-sheet, .print-session-sheet * { box-sizing: border-box; }
  .print-session-sheet { color: #403447; font-family: 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif; font-size: 9pt; line-height: 1.2; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .print-session-page { position: relative; width: 186mm; min-height: 0; margin: 0; padding: 2.5mm; break-after: auto; }
  #result-screen .print-session-page { margin-top: 7mm; }
  .print-session-page::before { content: ''; position: absolute; inset: 0; border: .18mm solid #e8d9e9; border-radius: 4mm; pointer-events: none; }
  .print-session-masthead { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 3mm; min-height: 11mm; padding: 2mm 4mm; border-radius: 4mm; background: radial-gradient(ellipse at 26% 4%, #fff 0%, rgba(255,255,255,.1) 60%), radial-gradient(ellipse at 94% 8%, #e9dcf5 0%, transparent 65%), linear-gradient(115deg, #fbe7ef, #f4ecfb); }
  .print-session-masthead::before { content: ''; position: absolute; z-index: -1; width: 24mm; height: 24mm; right: 23mm; top: -15mm; border: .2mm solid rgba(174,143,193,.3); border-radius: 50%; box-shadow: 0 0 0 3mm rgba(255,255,255,.2), 0 0 0 6mm rgba(255,255,255,.13); }
  .print-session-masthead::after { content: '✧  ·  ✦'; position: absolute; z-index: -1; right: 4mm; top: 0; color: #bc9bcc; font-size: 11pt; letter-spacing: 2mm; opacity: .65; }
  .print-session-title { font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-size: 11pt; font-weight: 600; letter-spacing: .09em; line-height: 1.2; margin: 0; padding: 0; border: 0; color: #59465e; }
  .print-session-title::before { content: '✦'; color: #b899c0; font-size: 10pt; margin-right: 2mm; }
  .print-session-date { align-self: flex-end; padding-bottom: .6mm; color: #6b596e; font-size: 8pt; white-space: nowrap; }
  .print-session-heading { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 19mm; margin: 1mm 0 3mm; padding: 1mm 4mm; text-align: center; background: radial-gradient(ellipse at center, #fcf5fc 0, #fff 72%); }
  .print-session-name { max-width: 100%; font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-size: 20pt; font-weight: 600; letter-spacing: .08em; overflow-wrap: anywhere; line-height: 1.2; color: #59445f; }
  .print-session-name-long { font-size: 14pt; letter-spacing: .03em; }
  .print-session-name-very-long { font-size: 10pt; letter-spacing: 0; }
  .print-session-birth { margin-top: 1mm; color: #78647c; font-size: 8pt; }
  .print-session-columns { display: grid; grid-template-columns: 40% minmax(0, 1fr); gap: 4mm; align-items: stretch; }
  .print-session-left { display: flex; flex-direction: column; justify-content: space-between; gap: 2mm; min-width: 0; }
  .print-session-right { min-width: 0; padding: 2mm 2.5mm; border: .2mm solid #eee4ef; border-radius: 3mm; background: linear-gradient(155deg, #fff 55%, #fbf7fd); }
  .print-session-sheet table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; margin: 0; font-size: 9pt; color: #403447; }
  .print-session-sheet th, .print-session-sheet td { border: 0; padding: .7mm 1mm; text-align: center; vertical-align: middle; line-height: 1.13; background: transparent; }
  .print-session-kin, .print-session-relation { overflow: hidden; border: .2mm solid #eaddea !important; border-radius: 2.5mm; background: #fdfafd; }
  .print-session-kin th { font-size: 7.5pt; font-weight: bold; white-space: nowrap; color: #806b83; }
  .print-session-col-number { width: 13mm; }
  .print-session-col-chakra { width: 13mm; }
  .print-session-col-tone { width: 9mm; }
  .print-session-kin .print-session-kin-title { text-align: left; padding-left: 2mm; color: #765b7d; }
  .print-session-number { width: 13mm; font-size: 11pt; font-weight: bold; color: #705278; }
  .print-session-kin td:first-child { width: 13mm; }
  .print-session-personal { padding: 2mm; border-radius: 3mm; background: radial-gradient(circle at 10% 0, #fff 0, transparent 45%), linear-gradient(120deg, #faedf4, #eee8f8); }
  .print-session-personal .print-session-kin { background: rgba(255,255,255,.72); border-color: #e6d5e8 !important; }
  .print-session-personal .print-session-number { font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-size: 15pt; color: #715579; }
  .print-session-seal { font-weight: bold; overflow-wrap: anywhere; }
  .print-session-badge { display: inline-block; font-size: 8pt; font-weight: bold; margin-top: 1mm; padding: .5mm 2mm; border-radius: 3mm; background: #403447; color: #fff; }
  .print-session-small { font-size: 9pt; }
  .print-session-sheet .print-session-red { background: #fbebed; }
  .print-session-sheet .print-session-blue { background: #edf1f8; }
  .print-session-sheet .print-session-yellow { background: #faf4e5; }
  .print-session-sheet .print-session-white { background: #fff; }
  .print-session-relation-label { width: 14mm; font-size: 9pt; color: #806b83; }
  .print-session-explanation { font-size: 7.5pt; line-height: 1.25; margin-top: 1mm; color: #6c5c6f; }
  .print-session-year-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1mm; margin: 0 1mm 1mm; color: #765b7d; }
  .print-session-section-title { font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-size: 10pt; line-height: 1.2; letter-spacing: .04em; margin: 0 0 1mm; padding: 0; border: 0; color: #705978; }
  .print-session-section-title::before { content: '✧'; margin-right: 1.5mm; color: #b794b8; }
  .print-session-reference { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2mm; }
  .print-session-reference-item { min-height: 14.3mm; display: grid; grid-template-columns: 10mm minmax(0, 1fr); align-items: center; border-bottom: .15mm solid #eee5ef; }
  .print-session-reference-item:last-child { border-bottom: 0; }
  .print-session-icon { display: block; width: 8.5mm; height: 8.5mm; object-fit: contain; margin: auto; }
  .print-session-reference-words { align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: .6mm; min-width: 0; padding: .6mm 1mm; }
  .print-session-reference-name { font-size: 9pt; line-height: 1.1; overflow-wrap: anywhere; }
  .print-session-reference-keyword { font-size: 8.5pt; line-height: 1.16; overflow-wrap: normal; line-break: strict; }
  .print-session-keyword-part { display: inline-block; white-space: nowrap; }
  .print-session-tone-title { margin-top: 3mm; }
  .print-session-tone-relations { display: grid; grid-template-columns: 1fr 1fr; gap: 2mm 3mm; }
  .print-session-tone-box { background: linear-gradient(110deg, #fdf4f8, #f8f5fc); border-radius: 2mm; display: flex; flex-direction: column; min-width: 0; padding: 1mm 2mm; }
  .print-session-tone-label { color: #765b7d; padding: 0 0 .4mm; }
  .print-session-tone-value { font-size: 8.5pt; overflow-wrap: anywhere; }
  .print-session-tones { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1.5mm 1mm; margin-top: 2.5mm; }
  .print-session-tone { display: flex; flex-direction: column; padding: .8mm 1.3mm; border-radius: 1.5mm; background: #faf6fb; min-height: 9mm; font-size: 8.5pt; }
  .print-session-tone strong { color: #806789; }
  .print-session-notice { text-align: center; border-top: .15mm solid #eadfea; padding-top: 2mm; margin: 3mm 1mm 0; color: #786d7b; font-size: 7pt; line-height: 1.25; }
  .print-session-message { break-before: page; page-break-before: always; color: #403447; padding: 0; font-size: 10pt; }
  .print-session-message h2 { margin: 0 0 5mm; padding: 2mm 3mm; border: 0; border-radius: 2mm; background: linear-gradient(110deg, #fdf0f5, #f1eafa); color: #705978; font-family: 'Hiragino Mincho ProN', 'Yu Mincho', serif; font-size: 14pt; }
  .container.print-session-container > .app-footer { color: #78647c; font-size: 8pt; line-height: 1.2; margin-top: 2mm; }
  .container.print-session-container > .app-footer p { margin: 0 0 .5mm; }
  .container.print-session-container > .app-footer a { color: #78647c; }
  .print-session-message-body { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
}
