:root {
  color-scheme: only light;
  --ink: #20343b;
  --muted: #6b7c82;
  --line: #dce6e8;
  --paper: #fff;
  --bg: #edf3f3;
  --blue: #4da9c4;
  --blue-soft: #eaf7fb;
  --pink: #dd8093;
  --pink-soft: #fceff2;
  --green: #61aa91;
  --green-soft: #edf8f3;
  --yellow: #e4ad50;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  color: var(--ink);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--bg); }
body { -webkit-text-size-adjust: 100%; }
button, input, textarea { font: inherit; }
select { font: inherit; }
button { cursor: pointer; }
.app-header { min-height: 104px; padding: 20px 28px; background: #173b45; color: white; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.app-header h1 { margin: 2px 0 4px; font-size: 25px; }
.app-header p { margin: 0; color: #cfe1e5; font-size: 14px; }
.app-header .eyebrow { color: #7fd0c2; font-size: 11px; letter-spacing: .08em; font-weight: 700; }
.header-actions { display: flex; gap: 10px; flex-shrink: 0; }
.ipad-hint { display: none; }
.button { border: 0; border-radius: 9px; padding: 11px 16px; font-weight: 700; }
.button.primary { background: #63c5b2; color: #10343a; }
.button.secondary { background: #fff; color: #29464d; border: 1px solid #cddbdd; }
.button.danger { background: #c94e58; color: white; }
.button.small { padding: 8px 12px; font-size: 13px; border-radius: 8px; }
.record-msg { margin: 0 0 10px; min-height: 16px; font-size: 12px; font-weight: 700; color: #398873; }
.record-msg:empty { margin: 0; min-height: 0; }
.record-msg.error { color: #c24b54; }
.login-box { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; }
.login-box label { min-width: 0; }
.login-box .button { align-self: end; }
.login-box .record-msg { grid-column: 1 / -1; }
.records-actions { display: flex; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.record-list { display: grid; gap: 8px; }
.record-empty { margin: 0; color: var(--muted); font-size: 12px; }
.record-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #e2eaeb; border-radius: 10px; background: #fbfdfd; }
.record-info strong { font-size: 14px; color: #20343b; }
.record-info small { display: block; margin-top: 2px; color: #6b7c82; font-size: 11px; }
.record-actions { display: flex; gap: 6px; flex-shrink: 0; }
.workspace { display: grid; grid-template-columns: minmax(520px, 620px) minmax(760px, 1fr); gap: 24px; align-items: start; padding: 24px; max-width: 1600px; margin: auto; }
.editor { display: grid; gap: 16px; }
.panel { background: white; border-radius: 14px; padding: 18px; box-shadow: 0 3px 18px rgba(28,56,62,.07); }
.panel h2 { font-size: 17px; margin: 0 0 14px; }
.panel p { color: var(--muted); font-size: 12px; margin: 4px 0 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
label { display: grid; gap: 6px; font-size: 12px; font-weight: 700; color: #52666c; }
.optional { display: inline-block; margin-left: 5px; color: #398873; font-size: 10px; font-weight: 700; }
input, textarea { width: 100%; border: 1px solid #cddbdd; border-radius: 8px; padding: 10px; color: var(--ink); background: #fbfdfd; }
select { width: 100%; min-height: 39px; border: 1px solid #cddbdd; border-radius: 8px; padding: 8px 10px; color: var(--ink); background: #fbfdfd; }
input:focus, textarea:focus { outline: 3px solid #c9eeea; border-color: #65b8ad; }
select:focus { outline: 3px solid #c9eeea; border-color: #65b8ad; }
textarea { resize: vertical; line-height: 1.6; }
.target-selector { grid-column: 1 / -1; display: grid; grid-template-columns: 70px minmax(220px, 320px); align-items: center; gap: 10px; font-size: 12px; font-weight: 700; color: #52666c; }
.target-selector .segmented button { min-height: 40px; font-size: 13px; }
.mode-segmented { grid-template-columns: repeat(3, 1fr); }
.input-unit { display: flex; align-items: center; gap: 7px; }
.section-heading { display: flex; justify-content: space-between; align-items: start; margin-bottom: 12px; }
.section-heading h2 { margin-bottom: 0; }
.count-badge { background: #e9f5f3; color: #287565; font-size: 12px; font-weight: 800; padding: 6px 10px; border-radius: 20px; }
.inbody-badge { background: #edf3ff; color: #3f6fa9; }
.inbody-values-heading { margin: 15px 0 9px; padding-top: 13px; border-top: 1px solid #e1e9ef; }
.inbody-values-heading h3 { margin: 0; font-size: 14px; color: #314f6e; }
.inbody-values-heading p { margin-top: 4px; }
.inbody-values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.inbody-values-grid label { font-size: 11px; }
.inbody-values-grid input { padding: 8px; }
.result-inputs { display: grid; gap: 8px; }
.result-input { display: grid; grid-template-columns: 145px 86px 1fr; gap: 10px; align-items: center; padding: 9px; border: 1px solid #e2eaeb; border-radius: 10px; }
.result-label { display: flex; gap: 8px; align-items: center; }
.result-label small { display: block; font-size: 9px; color: #7d8d91; }
.result-label strong { font-size: 13px; }
.mini-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; font-size: 11px; font-weight: 800; }
.mini-icon.blue { background: var(--blue-soft); color: #3189a4; }
.mini-icon.pink { background: var(--pink-soft); color: #c35f74; }
.mini-icon.green { background: var(--green-soft); color: #398873; }
.score-label { font-size: 9px; gap: 2px; }
.score-label input { padding: 7px; }
.segmented { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #cddbdd; border-radius: 8px; overflow: hidden; }
.segmented button { border: 0; border-right: 1px solid #cddbdd; background: white; padding: 8px 3px; font-size: 11px; color: #53676c; }
.segmented button:last-child { border-right: 0; }
.segmented button[aria-pressed="true"] { background: #287c72; color: white; font-weight: 800; }
.safety summary { cursor: pointer; font-weight: 700; font-size: 13px; }
.safety li { margin: 6px 0; color: #63757a; font-size: 12px; }
.private-badge { background: #f1edf8; color: #705997; }
.interview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.interview-grid textarea { min-height: 64px; }
.wide-field { grid-column: 1 / -1; }
.print-option { display: flex; grid-template-columns: 20px 1fr; align-items: center; gap: 9px; margin-top: 16px; padding: 12px; border-radius: 9px; background: #edf8f3; color: #286e5d; }
.print-option input { width: 18px; height: 18px; min-height: 0; }
.sheet { width: 210mm; min-height: 297mm; padding: 13mm 14mm 10mm; margin: 0 auto; background: var(--paper); box-shadow: 0 8px 30px rgba(27,53,60,.14); position: sticky; top: 18px; overflow: hidden; }
.sheet-topline { position: absolute; top: 0; left: 0; width: 100%; height: 5mm; background: linear-gradient(90deg, var(--blue) 0 50%, var(--pink) 50% 82%, var(--green) 82%); }
.sheet-header { margin-top: 3mm; display: flex; justify-content: space-between; align-items: end; border-bottom: 1px solid #b8c9cd; padding-bottom: 4mm; }
.sheet-kicker { margin: 0 0 1mm; color: #69aebb; font-size: 7pt; font-weight: 800; letter-spacing: .12em; }
.sheet-header h1 { margin: 0; font-size: 20pt; letter-spacing: .04em; color: #173d48; }
.sheet-meta { min-width: 62mm; font-size: 8pt; }
.sheet-meta p { display: grid; grid-template-columns: 17mm 1fr; gap: 2mm; margin: 2mm 0 0; border-bottom: 1px solid #b9c9cc; padding-bottom: 1mm; }
.sheet-meta span { color: #718287; }
.report-band { display: flex; justify-content: space-between; align-items: center; gap: 6mm; padding: 4.6mm 6mm; border-radius: 3mm; background: linear-gradient(100deg, #57a7cd 0%, #4a92c4 100%); color: #fff; }
.band-title { display: flex; align-items: center; gap: 3.4mm; }
.band-logo { width: 12mm; height: 12mm; flex: none; border-radius: 50%; background: rgba(255,255,255,.18); display: grid; place-items: center; }
.band-logo svg { width: 7mm; height: 7mm; fill: #fff; }
.band-title h1 { margin: 0; font-size: 17pt; letter-spacing: .03em; }
.band-title p { margin: .8mm 0 0; font-size: 7.4pt; color: #e7f3fa; }
.band-meta { font-size: 7.6pt; min-width: 46mm; }
.band-meta p { display: flex; justify-content: flex-end; gap: 2.5mm; margin: .8mm 0; }
.band-meta span { color: #d3e9f5; }
.band-meta strong { min-width: 24mm; text-align: right; font-weight: 700; }
.summary-box { display: flex; align-items: center; gap: 3.6mm; margin-top: 3.4mm; padding: 3.2mm 4mm; border: 1px solid #efe1c2; border-radius: 3mm; background: #fdf6e8; }
.summary-face { width: 11mm; height: 11mm; flex: none; border-radius: 50%; border: 2px solid #e6b96a; background: #fff; display: grid; place-items: center; }
.summary-face svg { width: 7.4mm; height: 7.4mm; }
.summary-lead { margin: 0; font-weight: 800; font-size: 10pt; color: #8a6a2a; }
.summary-body { margin: 1.2mm 0 0; font-size: 7.8pt; line-height: 1.5; color: #6d5c37; }
.summary-box.mood-good .summary-face { border-color: #5aa98c; }
.summary-box.mood-good .summary-lead { color: #2e7d5f; }
.summary-box.mood-watch .summary-face { border-color: #e0ac4d; }
.summary-box.mood-watch .summary-lead { color: #8b6118; }
.summary-box.mood-attention .summary-face { border-color: #d76f79; }
.summary-box.mood-attention .summary-lead { color: #a6404b; }
.report-h { display: flex; align-items: center; gap: 2.2mm; margin: 4.4mm 0 2.6mm; }
.report-h .bar { width: 1.3mm; height: 4.2mm; border-radius: 1mm; background: #4a92c4; }
.report-h h2 { margin: 0; font-size: 11.5pt; color: #20343b; }
.inbody-section, .oral-section { display: none; }
body.show-inbody .inbody-section, body.show-oral .oral-section { display: block; }
.inbody-bar { background: #4f79b7 !important; }
.inbody-card { border: 1px solid #cbd9ee; border-radius: 2.6mm; padding: 3mm 3.4mm; background: #f7faff; }
.inbody-card-head { display: grid; grid-template-columns: 8mm 1fr auto; gap: 2.5mm; align-items: center; }
.inbody-mark { width: 8mm; height: 8mm; border-radius: 50%; display: grid; place-items: center; background: #dfeaff; color: #3f6fa9; font-size: 7pt; font-weight: 800; }
.inbody-card-head small { display: block; font-size: 5.8pt; color: #6f7f96; line-height: 1.1; }
.inbody-card-head h3 { margin: .5mm 0 0; font-size: 10.5pt; color: #243b5b; }
.inbody-card-head strong { max-width: 44mm; text-align: right; font-size: 8pt; color: #43668e; }
.inbody-explain { margin: 2.4mm 0 0; font-size: 7.2pt; line-height: 1.5; color: #45585e; }
.inbody-results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4mm; margin-top: 2.2mm; }
.inbody-results div { min-height: 9.5mm; padding: 1.3mm 1.8mm; border: 1px solid #d7e2f2; border-radius: 1.6mm; background: #fff; }
.inbody-results span { display: block; font-size: 5.4pt; line-height: 1.1; color: #6f7f96; }
.inbody-results strong { display: block; margin-top: .8mm; font-size: 7.7pt; line-height: 1.1; color: #20343b; }
.inbody-result-count { margin: 1.4mm 0 0; text-align: right; font-size: 5.4pt; color: #6f7f96; }
.inbody-plan { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.8mm; margin: 2.3mm 0 0; padding: 0; list-style: none; }
.inbody-plan li { min-height: 8mm; padding: 1.6mm 2mm; border-radius: 1.8mm; background: #fff; border: 1px solid #d7e2f2; font-size: 6.8pt; line-height: 1.35; color: #20343b; }
.dental-point { margin: 2mm 0 0; padding-top: 1.7mm; border-top: 1px solid #d7e2f2; font-size: 6.8pt; line-height: 1.45; color: #52666c; }
.gauge-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.6mm; }
.gauge-card { border: 1px solid #e2eaec; border-radius: 2.6mm; padding: 2.8mm 3mm 3mm; background: #fff; }
.gauge-card.good { border-color: #c4e2d6; background: #f8fcfa; }
.gauge-card.watch { border-color: #eeddb9; background: #fffdf5; }
.gauge-card.attention { border-color: #eec6cb; background: #fff8f8; }
.gauge-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 2mm; }
.gauge-name { display: flex; align-items: center; gap: 2mm; }
.g-icon { width: 6.6mm; height: 6.6mm; flex: none; border-radius: 50%; display: grid; place-items: center; font-size: 7pt; font-weight: 800; }
.g-icon.blue { background: var(--blue-soft); color: #3189a4; }
.g-icon.pink { background: var(--pink-soft); color: #c35f74; }
.g-icon.green { background: var(--green-soft); color: #398873; }
.gauge-name small { display: block; font-size: 5.7pt; color: #7e8b8f; line-height: 1; }
.gauge-name h3 { margin: .5mm 0 0; font-size: 9.5pt; }
.gauge-read { text-align: right; flex: none; }
.gauge-read strong { font-size: 11.5pt; font-weight: 800; color: #55636a; }
.gauge-read span { display: block; font-size: 5.6pt; color: #6d7c81; }
.gauge-card.good .gauge-read strong { color: #2e7d5f; }
.gauge-card.watch .gauge-read strong { color: #8b6118; }
.gauge-card.attention .gauge-read strong { color: #a6404b; }
.meter { padding-top: 3.2mm; }
.meter-track { position: relative; display: flex; gap: .5mm; }
.meter-track .seg { flex: 1; height: 2.6mm; background: #e7edee; }
.meter-track .seg:first-child { border-radius: 1.6mm 0 0 1.6mm; }
.meter-track .seg:last-child { border-radius: 0 1.6mm 1.6mm 0; }
.seg.good { background: #cfe8de; }
.seg.watch { background: #f4e4c4; }
.seg.attention { background: #f1d5d9; }
.marker { position: absolute; top: -2.9mm; transform: translateX(-50%); width: 0; height: 0; border-left: 1.7mm solid transparent; border-right: 1.7mm solid transparent; border-top: 2mm solid #7c8a8e; }
.gauge-card.good .marker { border-top-color: #3a9b78; }
.gauge-card.watch .marker { border-top-color: #d79a34; }
.gauge-card.attention .marker { border-top-color: #cf6470; }
.meter-labels { display: flex; margin-top: 1mm; font-size: 5.5pt; color: #8a969a; }
.meter-labels span { flex: 1; text-align: center; }
.gauge-note { margin: 2.2mm 0 0; font-size: 6.9pt; line-height: 1.5; color: #45585e; }
.gauge-badge { display: inline-block; margin-right: 1.6mm; padding: .3mm 1.7mm; border-radius: 3mm; font-size: 6pt; font-weight: 800; }
.unselected .gauge-badge { background: #e7eced; color: #7a8a8e; }
.good .gauge-badge { background: #d9efe7; color: #28755d; }
.watch .gauge-badge { background: #f6e7c8; color: #8b6118; }
.attention .gauge-badge { background: #f5dadd; color: #a6404b; }
.advice-hero { border: 1px solid #9fd0c0; border-radius: 2.6mm; overflow: hidden; background: #f5fbf9; }
.advice-hero h3 { margin: 0; padding: 1.8mm 3.2mm; background: #2f9e83; color: #fff; font-size: 8.6pt; }
.advice-hero p { margin: 0; padding: 2.8mm 3.2mm; min-height: 25mm; font-size: 8.4pt; line-height: 1.7; }
.advice-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 2.6mm; margin-top: 2.6mm; }
.advice-card { border: 1px solid #cadadd; border-radius: 2.6mm; overflow: hidden; }
.advice-card h3 { margin: 0; padding: 1.6mm 3mm; background: #eaf5f3; color: #255e55; font-size: 7.9pt; }
.advice-card p { margin: 0; padding: 2.4mm 3mm; min-height: 15mm; font-size: 7.9pt; line-height: 1.6; }
.advice-card.next { border-color: #9dbfdd; }
.advice-card.next h3 { background: #3f7fb0; color: #fff; }
.report-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 6mm; border-top: 1px solid #cdd9db; margin-top: 3.6mm; padding-top: 2.6mm; color: #6a7c81; }
.report-foot > p:first-child { margin: 0; max-width: 118mm; font-size: 5.9pt; line-height: 1.46; }
.foot-staff { margin: 0; min-width: 48mm; text-align: right; font-size: 6.4pt; }
.foot-staff .clinic { display: block; margin-top: .6mm; color: #6a7c81; }
.foot-staff #outTemperature { display: block; color: #a34b51; }
.multiline { white-space: pre-wrap; overflow-wrap: anywhere; }
.placeholder-lines { background-image: repeating-linear-gradient(transparent 0, transparent 7.5mm, #e3e9ea 7.5mm, #e3e9ea 7.8mm); }
.sheet-footer { display: flex; justify-content: space-between; align-items: end; gap: 8mm; border-top: 1px solid #b9c9cc; padding-top: 2.5mm; margin-top: 3mm; color: #617378; }
.sheet-footer > p:first-child { margin: 0; max-width: 124mm; font-size: 5.8pt; line-height: 1.45; }
.sheet-footer .staff { min-width: 52mm; margin: 0; font-size: 6.5pt; display: grid; grid-template-columns: 10mm 1fr; gap: 1mm; }
.sheet-footer .staff strong { border-bottom: 1px solid #9db0b4; }
.sheet-footer .staff #outTemperature { grid-column: 1 / -1; color: #a34b51; }
.internal-sheet { display: none; }
@media screen {
  body.include-internal .internal-sheet { display: block; grid-column: 2; position: static; }
}
.internal-header { margin-top: 3mm; }
.internal-notice { margin: 4mm 0; padding: 2.5mm 3mm; border-radius: 1.5mm; background: #f8eeee; color: #954d55; font-size: 7.5pt; font-weight: 700; }
.internal-content h2 { margin: 4mm 0 2mm; padding-bottom: 1.5mm; border-bottom: 1px solid #aec2c6; color: #214c56; font-size: 11pt; }
.internal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5mm; }
.internal-grid > div { min-height: 23mm; padding: 2.5mm 3mm; border: 1px solid #ccdadc; border-radius: 1.5mm; background: #fff; }
.internal-grid.compact > div { min-height: 18mm; }
.internal-grid h3, .internal-summary h3 { margin: 0 0 1.5mm; color: #4e737a; font-size: 7.5pt; }
.internal-grid p, .internal-summary p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: #20343b; font-size: 8pt; line-height: 1.55; }
.internal-summary { display: grid; grid-template-columns: 36mm 1fr; gap: 0; border: 1px solid #bcd0d3; border-radius: 1.5mm; overflow: hidden; }
.internal-summary h3, .internal-summary p { min-height: 13mm; padding: 2.5mm 3mm; border-bottom: 1px solid #d7e1e3; }
.internal-summary h3 { background: #edf5f5; }
.internal-summary h3:last-of-type, .internal-summary p:last-child { border-bottom: 0; }
.internal-footer { position: absolute; left: 14mm; right: 14mm; bottom: 9mm; }
dialog { border: 0; border-radius: 14px; padding: 24px; max-width: 440px; box-shadow: 0 20px 80px #132f3766; }
dialog::backdrop { background: #15343c88; }
dialog h2 { margin-top: 0; font-size: 19px; }
.dialog-actions { display: flex; justify-content: end; gap: 10px; margin-top: 20px; }
@media (max-width: 1250px) {
  .workspace { grid-template-columns: 1fr; }
  .sheet { position: static; }
  body.include-internal .internal-sheet { grid-column: auto; }
}
@media screen and (max-width: 1024px) {
  body { padding-bottom: 78px; }
  .app-header { min-height: auto; padding: 18px 20px; }
  .app-header h1 { font-size: 22px; }
  .app-header > div:first-child { max-width: 100%; }
  .header-actions {
    position: fixed;
    z-index: 50;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: 68px;
    padding: 9px max(16px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    background: rgba(23, 59, 69, .97);
    box-shadow: 0 -3px 18px rgba(19, 47, 55, .2);
    align-items: center;
  }
  .header-actions .button { min-height: 48px; font-size: 15px; }
  .header-actions .primary { flex: 1; }
  .ipad-hint { display: block; max-width: 230px; color: #cfe1e5; font-size: 11px; line-height: 1.35; }
  .workspace { padding: 18px; gap: 18px; }
  .panel { padding: 20px; }
  input, textarea { min-height: 44px; font-size: 16px; }
  select { min-height: 44px; font-size: 16px; }
  textarea { min-height: 118px; }
  .interview-grid textarea { min-height: 82px; }
  #advice { min-height: 180px; }
  .score-label input { min-height: 44px; font-size: 16px; }
  .segmented button { min-height: 46px; font-size: 14px; }
  .sheet {
    width: 100%;
    min-height: 0;
    padding: 34px 28px 24px;
    overflow: visible;
  }
  .sheet-header { margin-top: 7px; }
}
@media screen and (max-width: 760px) {
  .app-header p:not(.eyebrow) { display: none; }
  .header-actions { gap: 8px; }
  .header-actions .button { padding: 9px 12px; }
  .ipad-hint { display: none; }
  .workspace { padding: 12px; }
  .panel { padding: 16px; }
  .form-grid { grid-template-columns: 1fr; }
  .inbody-values-grid { grid-template-columns: 1fr 1fr; }
  .target-selector { grid-template-columns: 60px 1fr; }
  .interview-grid { grid-template-columns: 1fr; }
  .wide-field { grid-column: auto; }
  .result-input {
    grid-template-columns: 1fr 100px;
    gap: 10px;
    padding: 12px;
  }
  .result-input .segmented { grid-column: 1 / -1; }
  .result-label strong { font-size: 15px; }
  .sheet { padding: 30px 18px 20px; }
  .sheet-header { align-items: start; gap: 12px; }
  .sheet-header h1 { font-size: 17pt; }
  .sheet-meta { min-width: 45%; }
  .sheet-section-title > p { display: none; }
  .gauge-grid { grid-template-columns: 1fr; }
  .inbody-plan, .inbody-results { grid-template-columns: 1fr; }
  .advice-duo { grid-template-columns: 1fr; }
  .report-band { flex-direction: column; align-items: flex-start; gap: 10px; }
  .band-meta { text-align: left; min-width: 0; }
  .band-meta p { justify-content: flex-start; }
  .report-foot { align-items: flex-start; }
  .foot-staff { text-align: left; min-width: 0; }
  .sheet-footer { align-items: start; }
}
@page { size: A4 portrait; margin: 0; }
@media print {
  html, body {
    width: 210mm;
    height: 296mm;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    color: #20343b !important;
    color-scheme: only light !important;
  }
  .no-print, dialog { display: none !important; }
  .workspace { display: block; margin: 0; padding: 0; }
  .sheet {
    width: 210mm;
    height: 296mm;
    min-height: 0;
    margin: 0;
    padding: 13mm 14mm 9mm;
    overflow: hidden !important;
    background: #fff !important;
    color: #20343b !important;
    box-shadow: none;
    position: static;
    break-inside: avoid;
    break-after: avoid;
    page-break-inside: avoid;
    page-break-after: avoid;
    forced-color-adjust: none;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .internal-sheet { display: none !important; }
  body.include-internal {
    height: auto !important;
    overflow: visible !important;
  }
  body.include-internal #sheet {
    break-after: page !important;
    page-break-after: always !important;
  }
  body.include-internal .internal-sheet {
    display: block !important;
    break-before: page;
    page-break-before: always;
    break-after: avoid;
    page-break-after: avoid;
  }
  .advice-block,
  .advice-block p,
  .result-card,
  .sheet-header,
  .sheet-footer {
    color: #20343b !important;
    forced-color-adjust: none;
  }
  .advice-block p,
  .placeholder-lines {
    background: #fff none !important;
    background-color: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #20343b !important;
    opacity: 1 !important;
  }
  .internal-sheet,
  .internal-sheet * {
    color-scheme: only light !important;
    forced-color-adjust: none;
  }
  .internal-grid > div,
  .internal-summary,
  .internal-summary h3,
  .internal-summary p {
    background-color: #fff !important;
  }
  .internal-summary h3 { background-color: #edf5f5 !important; }
  .report-band, .summary-box, .gauge-card, .advice-hero, .advice-card, .report-foot, .inbody-card, .inbody-results div,
  .meter-track .seg, .marker, .gauge-badge, .summary-face {
    forced-color-adjust: none;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .report-band, .report-band h1, .report-band p, .report-band span, .report-band strong,
  .advice-hero h3, .advice-card.next h3 { color: #fff !important; }
  .gauge-note span, .summary-body, .advice-hero p, .advice-card p { color: #45585e !important; }
  .advice-card p, .advice-hero p { color: #20343b !important; }
  .inbody-card { background: #f7faff !important; }
  .inbody-plan li, .inbody-results div { background: #fff !important; color: #20343b !important; }

  body.show-inbody:not(.show-oral) .sheet {
    padding-top: 14mm;
    padding-bottom: 10mm;
  }
  body.show-inbody:not(.show-oral) .report-band {
    padding-top: 6mm;
    padding-bottom: 6mm;
  }
  body.show-inbody:not(.show-oral) .summary-box {
    margin-top: 4.6mm;
    padding-top: 4mm;
    padding-bottom: 4mm;
  }
  body.show-inbody:not(.show-oral) .inbody-card {
    padding: 4.8mm 5mm !important;
  }
  body.show-inbody:not(.show-oral) .inbody-card-head {
    grid-template-columns: 11mm 1fr auto;
  }
  body.show-inbody:not(.show-oral) .inbody-mark {
    width: 11mm;
    height: 11mm;
    font-size: 8pt;
  }
  body.show-inbody:not(.show-oral) .inbody-card-head h3 {
    font-size: 12.5pt;
  }
  body.show-inbody:not(.show-oral) .inbody-card-head small,
  body.show-inbody:not(.show-oral) .inbody-card-head strong {
    font-size: 7.2pt;
  }
  body.show-inbody:not(.show-oral) .inbody-explain {
    margin-top: 3.2mm;
    font-size: 8.2pt;
  }
  body.show-inbody:not(.show-oral) .inbody-results {
    gap: 1.8mm;
    margin-top: 3mm;
  }
  body.show-inbody:not(.show-oral) .inbody-results div {
    min-height: 11mm;
    padding: 1.8mm 2.2mm;
  }
  body.show-inbody:not(.show-oral) .inbody-results span {
    font-size: 6pt;
  }
  body.show-inbody:not(.show-oral) .inbody-results strong {
    font-size: 8.6pt;
  }
  body.show-inbody:not(.show-oral) .inbody-plan {
    gap: 2.4mm;
    margin-top: 2.7mm;
  }
  body.show-inbody:not(.show-oral) .inbody-plan li {
    min-height: 13mm;
    padding: 2.6mm 3mm;
    font-size: 7.8pt;
    line-height: 1.45;
  }
  body.show-inbody:not(.show-oral) .dental-point {
    margin-top: 3mm;
    padding-top: 2.2mm;
    font-size: 7.4pt;
  }
  body.show-inbody:not(.show-oral) .advice-section {
    margin-top: 5.5mm;
  }
  body.show-inbody:not(.show-oral) .advice-hero p {
    min-height: 45mm;
    font-size: 9pt;
  }
  body.show-inbody:not(.show-oral) .advice-card p {
    min-height: 21mm;
    font-size: 8.4pt;
  }
  body.show-inbody:not(.show-oral) .report-foot {
    margin-top: 4.5mm;
  }
  body.show-oral:not(.show-inbody) .advice-hero p {
    min-height: 34mm;
  }
  body.show-inbody.show-oral .report-h {
    margin-top: 3.6mm;
    margin-bottom: 2.1mm;
  }
  body.show-inbody.show-oral .inbody-card {
    padding-top: 2.5mm !important;
    padding-bottom: 2.5mm !important;
  }
  body.show-inbody.show-oral .inbody-explain {
    margin-top: 1.8mm;
  }
  body.show-inbody.show-oral .inbody-results {
    grid-template-columns: repeat(4, 1fr);
    gap: 1mm;
    margin-top: 1.5mm;
  }
  body.show-inbody.show-oral .inbody-results div {
    min-height: 8mm;
    padding: 1mm 1.4mm;
  }
  body.show-inbody.show-oral .inbody-results span {
    font-size: 4.9pt;
  }
  body.show-inbody.show-oral .inbody-results strong {
    font-size: 6.8pt;
    margin-top: .5mm;
  }
  body.show-inbody.show-oral .inbody-result-count {
    display: none;
  }
  body.show-inbody.show-oral .inbody-plan {
    margin-top: 1.5mm;
  }
  body.show-inbody.show-oral .dental-point {
    margin-top: 1.6mm;
    padding-top: 1.3mm;
  }
  body.show-inbody.show-oral .gauge-grid {
    gap: 2.1mm;
  }
  body.show-inbody.show-oral .gauge-card {
    padding-top: 2.2mm;
    padding-bottom: 2.4mm;
  }
  body.show-inbody.show-oral .meter {
    padding-top: 2.7mm;
  }
  body.show-inbody.show-oral .gauge-note {
    margin-top: 1.7mm;
    font-size: 6.5pt;
  }
  body.show-inbody.show-oral .advice-hero p {
    min-height: 17mm;
  }
  body.show-inbody.show-oral .advice-card p {
    min-height: 10mm;
  }
  body.show-inbody.show-oral .report-foot {
    margin-top: 2.4mm;
    padding-top: 2mm;
  }
}
