/* A4 business document, based on the supplied Japanese invoice layout. */
.invoice-document { background:#fff; color:#111; padding:22px 12px 10px; line-height:1.55; font-size:12px; font-variant-numeric:tabular-nums; }
.invoice-document p,.invoice-document h1,.invoice-document h2,.invoice-document h3,.invoice-document dl { margin:0; }
.invoice-letterhead { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; border-bottom:3px double #476247; padding-bottom:15px; min-height:120px; }
.invoice-logo { width:108px; flex:0 0 108px; }
.invoice-logo img { display:block; max-width:108px; height:98px; object-fit:contain; object-position:left top; }
.invoice-brand { display:flex; min-height:90px; align-items:center; justify-content:center; border:1px solid #476247; color:#365737; padding:10px; text-align:center; font-size:15px; line-height:1.3; overflow-wrap:anywhere; }
.invoice-company { text-align:right; max-width:70%; overflow-wrap:anywhere; }
.invoice-document .invoice-company h1 { font-size:17px; font-weight:700; line-height:1.4; margin-bottom:5px; }
.invoice-company p { margin-top:3px; }
.invoice-document .invoice-title { font-size:23px; font-weight:700; letter-spacing:.16em; text-align:center; margin:20px 0 16px; }
.invoice-document .invoice-draft { border:1px dashed #9b711e; padding:7px 10px; margin:0 0 14px; color:#72510e; }
.invoice-parties { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:30px; align-items:start; }
.invoice-document h3 { font-size:12px; font-weight:700; margin-bottom:4px; }
.invoice-recipient h3 { text-transform:uppercase; }
.invoice-recipient strong { display:block; font-size:14px; font-weight:700; margin-bottom:0; }
.invoice-recipient { overflow-wrap:anywhere; }
.invoice-document .invoice-contact { display:grid; grid-template-columns: minmax(0,max-content) minmax(0,1fr); column-gap:28px; row-gap:2px; margin-top:18px; }
.invoice-contact dt { font-weight:700; }
.invoice-contact dd { margin:0; overflow-wrap:anywhere; }
.invoice-meta-row { display:grid; grid-template-columns:minmax(85px,.85fr) minmax(0,1.15fr); gap:8px; margin-bottom:3px; }
.invoice-meta-row dt { font-weight:600; }
.invoice-meta-row dd { margin:0; overflow-wrap:anywhere; }
.invoice-document .invoice-intro { margin:26px 0 18px; }
.invoice-amount { display:flex; flex-wrap:wrap; align-items:baseline; gap:20px; margin-bottom:7px; font-size:18px; }
.invoice-amount b { font-size:21px; }
.invoice-amount small { font-size:11px; font-weight:400; }
.invoice-document table { width:100%; min-width:0; border-collapse:collapse; table-layout:fixed; }
.invoice-document table th,.invoice-document table td { padding:5px 7px; border:1px solid #333; font-size:11px; vertical-align:top; white-space:normal; overflow-wrap:anywhere; }
.invoice-document .invoice-lines th { background:#ddd; text-align:center; font-weight:600; color:#111; }
.invoice-document .invoice-lines { border:1px solid #333; }
.invoice-document .invoice-lines th,.invoice-document .invoice-lines td { border:0; border-bottom:1px solid #333; padding-top:3px; padding-bottom:3px; }
.invoice-document .invoice-lines tbody tr:last-child td { border-bottom:0; }
.invoice-document .invoice-lines th:nth-child(2) { text-align:left; }
.invoice-document .invoice-lines td.invoice-numeric { text-align:right; }
.invoice-document .invoice-lines td.invoice-quantity { text-align:center; }
.invoice-col-code { width:13%; }.invoice-col-name { width:auto; }.invoice-col-qty { width:11%; }.invoice-col-price { width:16%; }.invoice-col-discount { width:13%; }.invoice-col-total { width:17%; }
.invoice-bottom { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:24px; margin-top:20px; align-items:start; break-inside:avoid; }
.invoice-payment p { white-space:normal; overflow-wrap:anywhere; }
.invoice-document .invoice-summary th { text-align:left; width:56%; font-weight:500; }
.invoice-document .invoice-summary td { text-align:right; }
.invoice-document .invoice-grand-total th,.invoice-document .invoice-grand-total td { background:#ddd; font-weight:700; }
.invoice-document .invoice-balance th,.invoice-document .invoice-balance td { font-weight:700; border-top:2px solid #333; }
.invoice-notes { margin:22px 0 32px; overflow-wrap:anywhere; }
.invoice-footer { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; border-top:3px double #476247; padding-top:7px; margin-top:24px; overflow-wrap:anywhere; }
.invoice-footer div { text-align:right; }
.invoice-logo-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.invoice-logo-controls img { width:72px; height:72px; object-fit:contain; border:1px solid #d6dce3; padding:4px; background:white; }
@media screen and (max-width:600px) {
 .invoice-document { padding:12px 0; font-size:11px; }
 .invoice-letterhead { gap:12px; }.invoice-logo { width:70px; flex-basis:70px; }.invoice-logo img { max-width:70px; height:78px; }.invoice-brand { font-size:11px; padding:6px; min-height:72px; }
 .invoice-document .invoice-company h1 { font-size:14px; }
 .invoice-parties,.invoice-bottom { grid-template-columns:minmax(0,1fr); gap:18px; }
 .invoice-document table th,.invoice-document table td { padding:5px 3px; font-size:10px; }
 .invoice-amount { gap:10px; font-size:15px; }.invoice-amount b { font-size:18px; }
 .invoice-col-code { width:14%; }.invoice-col-price { width:18%; }.invoice-col-total { width:20%; }
}
@media print {
 @page { size:A4; margin:12mm 12mm 23mm; @bottom-left { content:counter(page) " / " counter(pages); font:9pt sans-serif; } }
 html,body { height:auto!important; margin:0!important; background:white!important; }
 dialog[open] { margin:0!important; padding:0!important; border:0!important; border-radius:0!important; overflow:visible!important; }
 .modal-body { overflow:visible!important; max-height:none!important; }
 #toast { display:none!important; }
 .invoice-document { padding:0; font-size:9pt; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
 .invoice-document table th,.invoice-document table td { font-size:8.5pt; }
 .invoice-parties { break-inside:avoid; }
 .invoice-title,.invoice-intro,.invoice-amount { break-after:avoid; }
 .invoice-lines thead { display:table-header-group; }
 .invoice-lines tr { break-inside:avoid; }
 .invoice-notes h3 { break-after:avoid; }
 .invoice-footer { position:fixed; bottom:-15mm; left:0; right:0; height:12mm; margin:0; font-size:8pt; }
}
/* Full Japanese character coverage for company names, addresses, and customer data. */
@font-face { font-family:'Ternus Invoice Japanese'; src:url('../fonts/Ternus-Invoice-Japanese.woff') format('woff'); font-style:normal; font-weight:400; font-display:swap; }
.invoice-document { font-family:'Ternus Invoice Japanese','Yu Gothic','Meiryo',Arial,sans-serif; }
.invoice-document table th { color:#111; }
@media print {
 .invoice-document { display:flex; flex-direction:column; min-height:250mm; }
 .invoice-document > * { flex-shrink:0; }
 .invoice-footer { position:static; height:auto; margin-top:auto; padding-top:7px; }
}
.invoice-brand { font-size:28px; letter-spacing:.08em; }
@media screen and (max-width:600px) { .invoice-brand { font-size:21px; } }
