/* Accounting screens are kept separate from the general resident directory. */
#billing-dialog .billing-new-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:12px 0 6px}#billing-dialog .billing-new-item .field{min-width:0}#billing-dialog .billing-new-item input{width:100%}#billing-dialog .billing-new-rate-actions{grid-column:1/-1;display:flex;justify-content:flex-end}#billing-dialog .billing-new-rate-actions button{min-height:32px;padding:5px 9px}#billing-dialog [data-rate-name] .billing-item-name span{overflow-wrap:anywhere}#billing-new-item-status:empty{display:none}
@media(max-width:500px){#billing-dialog .billing-new-item{grid-template-columns:minmax(0,1fr)}#billing-dialog .billing-new-item button{width:100%;min-height:44px}}
.billing-daily-field{grid-column:2/4;display:grid;gap:5px}.billing-mobile-label{display:none}
@media(max-width:750px){.billing-daily-field{grid-column:1/-1}.billing-mobile-label{display:inline}}
.billing-workspace{min-width:0}.billing-filters{display:grid;grid-template-columns:minmax(150px,1fr) 160px minmax(180px,1.3fr) auto;gap:10px;align-items:end;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:12px}.billing-filters label{display:grid;gap:5px;font-size:var(--font-xs);color:var(--muted)}.billing-filters input,.billing-filters select{width:100%}.billing-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.billing-tabs button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-border);color:var(--link)}.billing-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.billing-summary>div{padding:10px 14px;background:white;border:1px solid var(--line);border-radius:var(--radius-md);min-width:0}.billing-summary small{display:block;color:var(--muted);font-size:var(--font-xs)}.billing-summary strong{display:block;font-size:23px;line-height:1.5;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.billing-workspace .data-table th,.billing-workspace .data-table td{padding:8px 10px}.billing-workspace .data-table td{vertical-align:top}.billing-money{white-space:nowrap;text-align:right!important;font-variant-numeric:tabular-nums}.billing-negative{color:var(--red-text)}.billing-workspace .data-table small{display:block;font-size:var(--font-2xs);color:var(--muted);line-height:1.6}.billing-workspace .data-table .actions{min-width:115px}.billing-workspace .data-table button{min-height:30px;padding:4px 7px;font-size:var(--font-xs)}.billing-section-title{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 10px}.billing-section-title h2{font-size:var(--font-lg);margin:0}.billing-inline-note{font-size:var(--font-xs);color:var(--muted);line-height:1.7;margin:7px 0}.billing-state{white-space:nowrap}.billing-state.draft{color:var(--amber-text)}.billing-state.confirmed{color:#096954}.billing-detail-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.billing-detail-heading h3{margin:0;font-size:18px}.billing-detail-meta{font-size:var(--font-sm);color:var(--muted);line-height:1.7}.billing-calculation{font-size:var(--font-xs);line-height:1.65;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.billing-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.billing-toolbar label{display:flex;gap:7px;align-items:center;font-size:var(--font-sm)}.billing-toolbar input[type=checkbox]{width:18px;height:18px}
#billing-dialog{max-width:980px}#billing-dialog .modal-content{min-width:0}#billing-dialog form{margin:0}#billing-dialog .form-grid{gap:12px 16px}#billing-dialog .error-box{overflow-wrap:anywhere}#billing-dialog .table-wrap{margin:12px 0}#billing-dialog .data-table{font-size:var(--font-sm)}#billing-dialog .data-table td,#billing-dialog .data-table th{padding:7px 9px}#billing-dialog .data-table td{vertical-align:top}#billing-dialog .billing-money-input{width:calc(8em + 26px);text-align:right;font-variant-numeric:tabular-nums}#billing-dialog .billing-checkbox{display:flex;gap:8px;align-items:center;min-height:36px;font-size:var(--font-sm)}#billing-dialog .billing-checkbox input{width:18px;height:18px;min-height:18px}#billing-dialog .billing-option-row{display:grid;grid-template-columns:minmax(150px,1fr) 130px 145px 120px;gap:9px;align-items:center;border-top:1px solid var(--line);padding:9px 0}#billing-dialog .billing-option-row>*{min-width:0}#billing-dialog .billing-option-row select,#billing-dialog .billing-option-row input[type=number]{width:100%}#billing-dialog .billing-option-row label{font-size:var(--font-xs)}#billing-dialog .billing-item-name{display:flex;align-items:center;gap:8px}#billing-dialog .billing-item-name small{display:block;color:var(--muted);font-size:var(--font-2xs)}#billing-dialog .billing-option-head{color:var(--muted);font-size:var(--font-xs);border-top:0;padding-bottom:2px}#billing-dialog .billing-amount-summary{border:1px solid #bed6cc;background:var(--green-soft);border-radius:var(--radius-md);padding:10px 13px;margin:12px 0;font-size:var(--font-md);line-height:1.8}#billing-dialog .billing-settings-section{margin:18px 0 10px;font-size:var(--font-lg)}#billing-dialog .billing-immutable{background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:10px;font-size:var(--font-sm);line-height:1.8}#billing-dialog .billing-footer{position:sticky;bottom:0;background:white;border-top:1px solid var(--line);padding-top:12px}#billing-dialog .billing-subheading{font-size:15px;margin:15px 0 8px}
#billing-receipt-print-root{display:none}.billing-receipt-preview{background:#edf1f4;padding:18px;overflow:auto}.billing-receipt-sheet{background:white;color:#111;width:186mm;max-width:100%;margin:auto;padding:0;font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif;font-size:10pt;line-height:1.7;overflow-wrap:anywhere}.billing-receipt{padding:7mm 5mm;min-height:124mm;position:relative;break-inside:avoid}.billing-receipt+.billing-receipt{border-top:1px dashed #777}.billing-receipt .receipt-top{display:flex;justify-content:space-between;gap:10px;font-size:8.5pt}.billing-receipt h1{font-size:22pt;text-align:center;letter-spacing:.25em;margin:6mm 0 5mm;font-weight:600}.billing-receipt .receipt-recipient{font-size:14pt;border-bottom:1px solid #333;display:inline-block;min-width:55%;margin:0 0 5mm;padding-bottom:2mm}.billing-receipt .receipt-amount{font-size:23pt;letter-spacing:.03em;text-align:center;border-bottom:2px solid #111;border-top:1px solid #777;margin:0 0 4mm;padding:2mm 0;font-variant-numeric:tabular-nums}.billing-receipt .receipt-amount span{font-size:10pt;letter-spacing:0;margin-right:5mm}.billing-receipt .receipt-purpose{margin:2mm 0;font-size:10pt}.billing-receipt .receipt-issuer{margin-top:5mm;display:flex;justify-content:space-between;gap:6mm}.billing-receipt .receipt-issuer strong{font-size:12pt}.billing-receipt .receipt-issuer p{margin:0;white-space:pre-wrap}.billing-receipt .receipt-stamp{height:21mm;width:18mm;border:1px solid #777;font-size:7pt;color:#555;display:grid;place-items:center;flex:none;text-align:center}.billing-receipt .receipt-foot{font-size:7.5pt;margin-top:4mm;color:#444}.billing-receipt .receipt-void{position:absolute;inset:45% 15% auto;border:3px solid #a22;color:#a22;transform:rotate(-15deg);font-size:25pt;text-align:center;background:#ffffffdb}.billing-receipt .receipt-lines{border-collapse:collapse;width:100%;font-size:8.5pt;margin:3mm 0}.billing-receipt .receipt-lines td{border-bottom:1px solid #ccc;padding:1mm 0}.billing-receipt .receipt-lines td:last-child{text-align:right;white-space:nowrap}
@media(max-width:750px){.billing-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.billing-filters .billing-search{grid-column:1/-1}.billing-filters>button{grid-column:1/-1}.billing-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.billing-summary>div{padding:9px}.billing-summary strong{font-size:20px}.billing-tabs button{flex:1;min-width:90px;font-size:12px;padding:8px}.billing-workspace .data-table{min-width:680px!important}.billing-workspace .data-table button{min-height:36px}#billing-dialog .billing-option-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:12px 0}#billing-dialog .billing-option-row .billing-item-name{grid-column:1/-1}#billing-dialog .billing-option-head{display:none}#billing-dialog .billing-option-row label{display:grid;gap:4px}#billing-dialog .billing-option-row .billing-checkbox{display:flex}#billing-dialog .billing-option-row select,#billing-dialog .billing-option-row input[type=number]{min-height:44px}#billing-dialog .modal-content{padding:14px}#billing-dialog .form-grid{grid-template-columns:minmax(0,1fr)}#billing-dialog .button-row button{flex:1;min-width:100px}#billing-dialog .billing-footer{position:static}.billing-receipt-preview{padding:8px}.billing-receipt-sheet{font-size:11px}.billing-receipt{min-height:0;padding:14px 10px}.billing-receipt h1{font-size:22px;margin:18px 0}.billing-receipt .receipt-top{font-size:9px;flex-wrap:wrap}.billing-receipt .receipt-recipient{font-size:15px;min-width:75%}.billing-receipt .receipt-amount{font-size:25px}.billing-receipt .receipt-amount span{font-size:11px}.billing-receipt .receipt-purpose{font-size:11px}.billing-receipt .receipt-issuer{font-size:10px;gap:8px}.billing-receipt .receipt-issuer strong{font-size:13px}.billing-receipt .receipt-stamp{height:60px;width:45px;font-size:8px}.billing-receipt .receipt-foot{font-size:9px}.billing-receipt .receipt-lines{font-size:10px}}
@media print{@page caremadoReceipt{size:A4 portrait;margin:10mm 12mm;@bottom-left{content:none}@bottom-right{content:none}}body.printing-billing-receipt #app,body.printing-billing-receipt .skip,body.printing-billing-receipt #modal,body.printing-billing-receipt #toast,body.printing-billing-receipt dialog,body.printing-billing-receipt #report-print-root{display:none!important}body.printing-billing-receipt #billing-receipt-print-root{display:block!important}body.printing-billing-receipt{margin:0;background:white;color:black}.billing-receipt-sheet{width:100%;max-width:none}.billing-receipt{break-inside:avoid}.billing-receipt .receipt-top{font-size:8.5pt}.billing-receipt h1{font-size:22pt;margin:6mm 0 5mm}.billing-receipt .receipt-recipient{font-size:14pt;min-width:55%}.billing-receipt .receipt-amount{font-size:23pt}.billing-receipt .receipt-purpose{font-size:10pt}.billing-receipt .receipt-foot{font-size:7.5pt}.billing-receipt .receipt-issuer{font-size:10pt}.billing-receipt .receipt-issuer strong{font-size:12pt}.billing-receipt .receipt-lines{font-size:8.5pt}}
@media print{
  body.printing-billing-receipt .billing-receipt-sheet{page:caremadoReceipt;font-size:9pt;line-height:1.4}
  body.printing-billing-receipt .billing-receipt{box-sizing:border-box;min-height:130mm;padding:5mm 4mm;break-inside:avoid}
  body.printing-billing-receipt .receipt-top{font-size:8pt;flex-wrap:wrap;gap:2mm}
  body.printing-billing-receipt .billing-receipt h1{font-size:18pt;line-height:1.4;margin:3mm 0}
  body.printing-billing-receipt .receipt-recipient{font-size:12pt;line-height:1.4;min-width:55%;padding-bottom:1mm;margin:0 0 3mm}
  body.printing-billing-receipt .receipt-amount{font-size:20pt;line-height:1.4;margin:0 0 3mm;padding:1.5mm 0}
  body.printing-billing-receipt .receipt-amount span{font-size:9pt;margin-right:4mm}
  body.printing-billing-receipt .receipt-purpose{font-size:9pt;line-height:1.4;margin:1.5mm 0}
  body.printing-billing-receipt .receipt-lines{font-size:8.5pt;line-height:1.4;margin:2mm 0}
  body.printing-billing-receipt .receipt-lines td{padding:.7mm 0}
  body.printing-billing-receipt .receipt-issuer{font-size:9pt;line-height:1.4;margin-top:3mm;gap:4mm}
  body.printing-billing-receipt .receipt-issuer strong{font-size:11pt}
  body.printing-billing-receipt .receipt-stamp{height:18mm;width:15mm;font-size:7pt}
  body.printing-billing-receipt .receipt-foot{font-size:7.5pt;line-height:1.4;margin-top:2mm}
}
.billing-warning{background:#fff8e6;border:1px solid #f0d9a8;color:#6f4a00;border-radius:9px;padding:9px 12px;line-height:1.6;margin:0 0 12px;overflow-wrap:anywhere}
td .billing-warning{display:block;margin:6px 0 0;padding:6px 8px;font-size:var(--font-sm)}
/* Phones: keep the first screen for the list (filters in two rows, kinds in one scrollable row). */
@media(max-width:750px){.billing-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.billing-filters>:nth-child(2){grid-column:2/-1}.billing-filters .billing-search{grid-column:1/3}.billing-filters>button{grid-column:3}.billing-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.billing-tabs button{flex:0 0 auto;min-width:0;padding:8px 12px}}
/* Billing documents (collection schedule, payment check, refund statement, move-out settlement): paper colours like receipts. */
.billing-doc{background:#fff;color:#111;width:186mm;max-width:100%;margin:auto;padding:8mm 7mm;font-family:"BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif;font-size:10pt;line-height:1.6;overflow-wrap:anywhere;box-sizing:border-box}
.billing-doc .doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:6mm;border-bottom:2px solid #111;padding-bottom:3mm;margin-bottom:4mm}
.billing-doc h1{font-size:18pt;margin:1mm 0;letter-spacing:.1em}
.billing-doc h2{font-size:11pt;margin:5mm 0 2mm;border-left:3px solid #333;padding-left:2mm}
.billing-doc .doc-head p{margin:0}.billing-doc .doc-facility,.billing-doc .doc-printed{font-size:8.5pt;color:#444}
.billing-doc .doc-table{width:100%;border-collapse:collapse;font-size:8.5pt;margin:0 0 2mm}
.billing-doc .doc-table th,.billing-doc .doc-table td{border:1px solid #999;padding:1.2mm 1.5mm;text-align:left;vertical-align:top}
.billing-doc .doc-table thead th{background:#f0f0f0;white-space:nowrap}
.billing-doc .doc-table tfoot th,.billing-doc .doc-table tfoot td{background:#fafafa;font-weight:700}
.billing-doc .doc-money{text-align:right!important;white-space:nowrap;font-variant-numeric:tabular-nums}
.billing-doc .doc-seal{min-width:14mm}.billing-doc .doc-formula{font-size:7.5pt;color:#333}.billing-doc .doc-empty{text-align:center!important;color:#555}
.billing-doc .doc-fields{display:grid;grid-template-columns:38mm minmax(0,1fr);gap:1.5mm 4mm;margin:3mm 0}
.billing-doc .doc-fields dt{color:#444}.billing-doc .doc-fields dd{margin:0}
.billing-doc .doc-total{font-size:14pt;font-weight:700}
.billing-doc .doc-summary{border-top:1px solid #999;padding-top:2mm}
/* 退去精算書の「精算の計算」（v0.13.34）。① − ② − ③ ＝ 返金金額 を 1 つの表で示す */
.billing-doc .doc-calc th{width:8mm;text-align:center;background:#f7f7f7;font-size:10pt}.billing-doc .doc-calc td{font-size:9.5pt}.billing-doc .doc-calc .doc-money{width:32mm;white-space:nowrap}
.billing-doc .doc-calc .doc-calc-result td,.billing-doc .doc-calc .doc-calc-result th{border-top:2px solid #333;font-size:11pt;font-weight:700;background:#fafafa}
.billing-doc .doc-calc-inline{font-size:8.5pt;color:#333;line-height:1.5}.billing-doc .doc-calc-detail{margin:.5mm 0 0;padding-left:5mm;font-size:8.5pt;color:#333;line-height:1.5}
.billing-doc .doc-breakdown{margin:1mm 0 0;font-size:9pt;line-height:1.5}.billing-doc .doc-breakdown p{margin:0;color:#444}.billing-doc .doc-breakdown ul{margin:0;padding-left:5mm}.billing-doc .doc-breakdown span{color:#444}
/* 退去精算書の結果欄・計算し直した費目（v0.13.35） */
.billing-doc .doc-result{border:1px solid #999;padding:2mm 3mm;margin:3mm 0}.billing-doc .doc-result p{margin:0}.billing-doc .doc-result .doc-meta{font-size:9pt;color:#333}
.billing-doc .doc-recalc{table-layout:fixed}.billing-doc .doc-recalc .c-month{width:20mm}.billing-doc .doc-recalc .c-days{width:22mm}.billing-doc .doc-recalc .c-money{width:19mm}.billing-doc .doc-recalc .c-formula{width:46mm}.billing-doc .doc-recalc td{padding:.8mm 1.5mm}.billing-doc .doc-recalc td:nth-child(3){white-space:nowrap}
.billing-doc .doc-sign-lines{display:flex;flex-wrap:wrap;gap:2mm 10mm}
.billing-doc .doc-sign{margin-top:7mm;border:1px solid #777;padding:4mm;display:grid;gap:3mm}.billing-doc .doc-sign p{margin:0}
.billing-doc .doc-issuer{margin-top:5mm;display:flex;flex-wrap:wrap;gap:2mm 6mm;font-size:9pt}
.billing-doc .doc-note{font-size:8pt;color:#444}.billing-doc .doc-list{margin:0;padding-left:5mm;font-size:9pt}
.billing-doc .doc-void{border:2px solid #a22;color:#a22;padding:2mm;text-align:center;font-weight:700}
/* スマートフォンの画面だけ。印刷（用紙幅は約 700px）には当てない（v0.13.35。以前は印刷にも効いて退去精算書が 2 ページになっていた） */
@media screen and (max-width:750px){.billing-receipt-preview .billing-doc{padding:12px 10px;font-size:11px}.billing-receipt-preview .billing-doc .doc-head{flex-direction:column;gap:4px}.billing-receipt-preview .billing-doc .doc-fields{grid-template-columns:minmax(0,1fr)}.billing-receipt-preview .billing-doc .doc-table{font-size:10px}.billing-receipt-preview .billing-doc .doc-recalc{table-layout:auto}.billing-receipt-preview .billing-doc .doc-recalc col{width:auto}}
/* 印刷する紙の組み方（v0.13.35）。印刷用ルートと、1 枚に収まるかを測る見えない複製で同じ規則を使う */
.billing-doc-measure{position:absolute;left:-10000px;top:0;width:186mm;visibility:hidden;pointer-events:none}
#billing-receipt-print-root .billing-doc,.billing-doc-measure .billing-doc{width:100%;max-width:none;padding:0;font-size:9.5pt}#billing-receipt-print-root .billing-doc .doc-head,.billing-doc-measure .billing-doc .doc-head{margin-bottom:3mm;padding-bottom:2mm}#billing-receipt-print-root .billing-doc h2,.billing-doc-measure .billing-doc h2{margin:3mm 0 1.5mm}#billing-receipt-print-root .billing-doc .doc-fields,.billing-doc-measure .billing-doc .doc-fields{gap:1mm 4mm;margin:2mm 0}#billing-receipt-print-root .billing-doc .doc-sign,.billing-doc-measure .billing-doc .doc-sign{margin-top:4mm;padding:3mm;gap:2mm}#billing-receipt-print-root .billing-doc .doc-issuer,.billing-doc-measure .billing-doc .doc-issuer{margin-top:3mm}
@media print{body.printing-billing-receipt .billing-doc{page:caremadoReceipt}body.printing-billing-receipt .billing-doc thead{display:table-header-group}body.printing-billing-receipt .billing-doc tr,body.printing-billing-receipt .billing-doc .doc-sign{break-inside:avoid}}
.billing-nowrap{white-space:nowrap}
@media(max-width:750px){.billing-workspace .data-table{min-width:760px!important}}
@media(max-width:750px){.billing-workspace .data-table td:first-child{min-width:7.5em}}

.billing-rate-metadata{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;background:var(--bg,#f6f8fa);padding:10px}.billing-rate-metadata label{font-size:12px}.billing-rate-metadata input:not([type=checkbox]){display:block;width:100%;min-width:0}.billing-workspace .data-table th{white-space:nowrap}.billing-optional-fees{grid-column:1/-1;display:grid;gap:8px}@media(max-width:550px){.billing-rate-metadata{grid-template-columns:1fr}}

@media print{.billing-receipt-sheet+.billing-receipt-sheet{break-before:page}}

.billing-ledger .data-table td:first-child{min-width:8em}.billing-ledger .data-table td:last-child{min-width:10em}.billing-ledger .data-table .actions{display:flex;flex-wrap:wrap;gap:4px}.billing-ledger .data-table td{padding:8px}.billing-ledger .data-table td:last-child{position:sticky;right:0;background:var(--panel,#fff);box-shadow:-1px 0 #e4e9ec}.billing-rate-metadata[hidden]{display:none}

/* v0.13.1 入金確認表: 作業の進み具合・次の操作・行ごとの状態。PCでは密度を保ち、狭い画面では操作を縦に並べる。 */
.billing-progress{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;margin:12px 0}
.billing-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.billing-steps li{border:1px solid var(--line);border-radius:var(--radius-md);background:white;padding:8px 10px;display:grid;gap:2px;min-width:0}
.billing-steps li span{font-weight:600;font-size:var(--font-sm)}.billing-steps li small{color:var(--muted);font-size:var(--font-xs)}
.billing-steps li.done{border-color:#bed6cc;background:var(--green-soft)}.billing-steps li.done small{color:#096954}
.billing-steps li.open{border-color:#f0d9a8;background:#fff8e6}.billing-steps li.open small{color:#6f4a00}
.billing-next{border:1px solid var(--accent-border,#bcd3ee);background:var(--accent-soft,#eef5ff);border-radius:var(--radius-md);padding:8px 12px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;min-width:0}
.billing-next strong{font-size:var(--font-xs);color:var(--muted);flex:1 0 100%}.billing-next p{margin:0;flex:1 1 220px;font-size:var(--font-sm);line-height:1.6}.billing-next button{flex:0 0 auto}
.billing-tabs .billing-tab-main{font-weight:600}.billing-tabs-label{align-self:center;font-size:var(--font-xs);color:var(--muted);margin-left:8px}
.billing-pending-amount{color:var(--muted);font-weight:500}
.billing-ledger .data-table td{padding:6px 8px;font-size:var(--font-sm)}
.billing-ledger .data-table .billing-next-cell{min-width:15em}.billing-row-status{display:flex;flex-wrap:wrap;gap:3px 6px;align-items:center;margin-bottom:4px}.billing-row-status small{display:inline;font-size:var(--font-2xs);color:var(--muted)}
.billing-ledger .data-table .actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.billing-more{position:relative;display:inline-block}.billing-more summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:4px 7px;font-size:var(--font-xs);min-height:30px;display:inline-flex;align-items:center;background:white}.billing-more summary::-webkit-details-marker{display:none}
.billing-more[open] summary{background:var(--accent-soft)}.billing-more-menu{position:absolute;right:0;top:100%;z-index:5;background:white;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 6px 18px rgba(0,0,0,.12);padding:6px;display:grid;gap:4px;min-width:14em}.billing-more-menu button{width:100%;text-align:left;white-space:nowrap}
.billing-ledger .data-table tr.billing-row-unpaid td:first-child,.billing-ledger .data-table tr.billing-row-old_unpaid td:first-child{box-shadow:inset 3px 0 var(--red-text,#b42318)}
.billing-ledger .data-table tr.billing-row-none td:first-child,.billing-ledger .data-table tr.billing-row-draft td:first-child{box-shadow:inset 3px 0 #e0a100}
.billing-allocation-mode{font-size:var(--font-xs);line-height:1.8;display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:36px}
#billing-dialog .billing-immutable small{display:block;color:var(--muted)}#billing-dialog .success-box{overflow-wrap:anywhere}
@media(max-width:750px){.billing-progress{grid-template-columns:minmax(0,1fr)}.billing-steps{gap:4px}.billing-steps li{padding:6px 8px}.billing-steps li span{font-size:var(--font-xs)}.billing-next{padding:8px 10px}.billing-next button{width:100%}.billing-tabs-label{display:none}.billing-ledger .data-table{min-width:820px!important}.billing-ledger .data-table .actions{flex-direction:column;align-items:stretch}.billing-ledger .data-table .actions button,.billing-more summary{min-height:38px}.billing-more{display:block}.billing-more summary{width:100%;justify-content:center}.billing-more-menu{position:static;box-shadow:none;margin-top:4px}}
@media(max-width:750px){.billing-ledger .data-table{min-width:680px!important}.billing-ledger .data-table .billing-next-cell{min-width:9.5em;max-width:11em;box-shadow:-3px 0 6px rgba(0,0,0,.08)}.billing-ledger .data-table .actions{flex-direction:row;align-items:center}.billing-ledger .data-table .actions button{min-height:36px;padding:4px 8px}.billing-more{display:inline-block}.billing-more summary{width:auto}.billing-more-menu{position:absolute;box-shadow:0 6px 18px rgba(0,0,0,.12);margin-top:0}}

/* Money columns are sized by the largest amount (9 digits with commas) and aligned on the digits. */
.billing-money{min-width:7.5em}
.billing-filters{grid-template-columns:auto calc(9em + 26px) minmax(14em,24em) auto;justify-content:start}
.billing-filters select{width:auto;min-width:12em;max-width:100%}
@media(max-width:750px){.billing-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.billing-filters select{width:100%}}
/* v0.13.8 人ごとの推移（入金確認表の行を開く）と残高台帳（人 × 月）。月の列は金額の最大桁（7 桁）に合わせた 6 文字幅で、12 か月を横に並べる。 */
.billing-trend-toggle{display:block;margin-top:4px;padding:2px 8px;font-size:var(--font-2xs);min-height:0;line-height:1.4}
.billing-ledger .data-table tr.billing-row-open td{border-bottom:0}
.billing-ledger .data-table tr.billing-trend-row td{padding:0 8px 10px;background:var(--bg,#f6f8fa);position:static;box-shadow:none}
.billing-trend{display:grid;gap:6px;padding:8px 10px 2px}
.billing-trend-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.billing-trend-head small{color:var(--muted)}
.billing-trend-table,.billing-history-table{font-variant-numeric:tabular-nums}
.billing-trend-table th[scope=row],.billing-history-table th[scope=row]{text-align:left;white-space:nowrap;font-weight:600}
.billing-trend-table th[scope=col],.billing-history-table th[scope=col]{text-align:right}
.billing-trend-table th small,.billing-history-table th small{display:block;font-weight:400;color:var(--muted);font-size:var(--font-2xs)}
.billing-trend-table .billing-money,.billing-history-table .billing-money{min-width:6em;max-width:7em;padding:4px 6px}
.billing-trend-table td,.billing-history-table td{padding:4px 6px;font-size:var(--font-sm)}
.billing-trend-current{background:rgba(31,111,98,.08)}
.billing-trend-table button.link,.billing-history-table button.link{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline dotted;cursor:pointer;min-height:0}
.billing-cell-none{color:var(--muted)}.billing-cell-draft{background:#fff7dc}.billing-cell-review{background:#fff7dc}.billing-cell-unpaid{background:#fde8e6;color:var(--red-text,#b42318);font-weight:600}.billing-cell-partial{background:#fff1cc}.billing-cell-paid{color:var(--muted)}.billing-cell-zero{color:var(--muted)}
.billing-history .data-table{width:auto}.billing-history .data-table td:first-child,.billing-history .data-table thead th:first-child,.billing-history .data-table tfoot th:first-child{position:sticky;left:0;background:var(--panel,#fff);min-width:8em;max-width:10em;box-shadow:1px 0 #e4e9ec;z-index:1}
.billing-history .data-table td:first-child strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.billing-history .data-table tfoot td,.billing-history .data-table tfoot th{border-top:2px solid #cfd6da;background:var(--bg,#f6f8fa)}
.billing-history .data-table tfoot small{display:block;font-weight:400;color:var(--muted);font-size:var(--font-2xs)}
.billing-history .data-table tr.billing-row-unpaid td:first-child{box-shadow:inset 3px 0 var(--red-text,#b42318),1px 0 #e4e9ec}
.billing-inline-field{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-sm)}
@media(max-width:750px){.billing-ledger .data-table tr.billing-trend-row td{padding:0 4px 8px}.billing-trend-table .billing-money,.billing-history-table .billing-money{min-width:5.5em}.billing-history .data-table{min-width:0!important}}
.billing-history .table-wrap{max-width:none}
.billing-trend-table .billing-money{min-width:5em;max-width:6em;padding:4px 4px}
.billing-trend-table th[scope=row]{position:sticky;left:0;background:var(--panel,#fff);z-index:1;box-shadow:1px 0 #e4e9ec;min-width:3em}
.billing-trend-table thead th:first-child{position:sticky;left:0;background:var(--panel,#fff);z-index:1}
/* v0.13.9 「詳細」メニューを開いた行の固定セルを、下の行より前面に出す（固定セルは行ごとに重なり順の文脈を作るため）。 */
.billing-ledger .data-table td.billing-more-open,.billing-ledger .data-table td:has(.billing-more[open]){z-index:6}
/* v0.13.11 入金確認表の行を 1 段に詰める（氏名・居室・推移を横並び、状態と操作ボタンを横並び、未入金の行に背景色、領収証の表示と発行を色分け）。 */
.billing-ledger .data-table td{padding:3px 8px}
.billing-ledger .data-table td:first-child{min-width:12em}
.billing-name-line{display:flex;flex-wrap:nowrap;align-items:center;gap:2px 8px}.billing-name-line strong{white-space:nowrap}.billing-name-line small{display:inline;margin:0;white-space:nowrap}
/* v0.13.12 氏名 6 文字・居室 6.5 文字（「1234号室」が入る幅）の幅を固定し、居室番号と「推移」の横位置を全行でそろえる。長い氏名は省略（…）。 */
.billing-ledger .data-table .billing-name-line strong{flex:none;width:6em;overflow:hidden;text-overflow:ellipsis}.billing-ledger .data-table .billing-name-line small{flex:none;width:6.5em;overflow:hidden;text-overflow:ellipsis}
.billing-ledger .billing-trend-toggle{margin-top:0;min-height:24px;padding:1px 7px;white-space:nowrap}.billing-ledger .data-table td:first-child{white-space:nowrap}.billing-ledger .data-table td.billing-money{min-width:6.5em}
.billing-ledger .data-table .billing-row-line{display:flex;flex-wrap:nowrap;align-items:center;gap:3px 6px;width:max-content}.billing-ledger .data-table .billing-row-line .billing-row-status{margin-bottom:0}.billing-ledger .data-table .billing-row-line .actions{flex-wrap:nowrap}
.billing-row-notes{display:flex;flex-wrap:wrap;gap:0 8px;margin-top:1px}.billing-row-notes small{font-size:var(--font-2xs);color:var(--muted);line-height:1.5}
.billing-ledger .data-table .billing-next-cell{min-width:17em}
.billing-ledger .data-table .actions button,.billing-ledger .billing-more summary{min-height:28px;padding:2px 8px;white-space:nowrap}
.billing-ledger .data-table .badge{padding:2px 7px}.billing-ledger .data-table .billing-row-status .badge{width:8.5em;justify-content:center;box-sizing:border-box}.billing-ledger .data-table .billing-row-status{flex:none}
.billing-ledger .data-table .billing-money small,.billing-ledger .data-table td>small{line-height:1.4}
.billing-ledger .data-table .billing-row-line .actions>button:first-child{min-width:8.5em;justify-content:center}
.billing-ledger .data-table button.billing-view-receipt{background:#eef6f3;color:#0f5f52;border-color:#9fcfbf}.billing-ledger .data-table button.billing-view-receipt:hover{background:#dcefe7}
.billing-ledger .data-table tr.billing-row-unpaid td,.billing-ledger .data-table tr.billing-row-old_unpaid td{background:#fdeeed}
.billing-ledger .data-table tr.billing-row-partial td{background:#fff6e3}
.billing-ledger .data-table tr.billing-row-unpaid td:last-child,.billing-ledger .data-table tr.billing-row-old_unpaid td:last-child{background:#fdeeed}
.billing-ledger .data-table tr.billing-row-partial td:last-child{background:#fff6e3}
@media(max-width:750px){.billing-ledger .data-table td{padding:3px 6px}.billing-ledger .data-table .actions button,.billing-ledger .billing-more summary{min-height:34px}.billing-ledger .data-table .billing-next-cell{min-width:16em;max-width:none}.billing-ledger .data-table .billing-row-line{flex-wrap:wrap;width:auto}.billing-ledger .data-table .billing-row-line .actions{flex-wrap:nowrap}.billing-ledger .data-table td:first-child{min-width:9em}.billing-name-line{flex-wrap:wrap}.billing-ledger .data-table .billing-name-line strong{width:auto;max-width:6em}.billing-ledger .data-table .billing-name-line small{width:auto}}
/* v0.13.18: 入金の一括入力 */
.billing-bulk-bar{margin:0 0 10px;padding:10px 12px;background:#fff7e6;border:1px solid #e9c46a;border-radius:var(--radius-md)}
.billing-bulk-fields{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:end}.billing-bulk-fields label{display:grid;gap:4px;font-size:var(--font-xs);color:var(--muted)}.billing-bulk-fields input[type=date]{width:calc(10em + 26px)}.billing-bulk-fields input[type=month]{width:calc(9em + 26px)}.billing-bulk-fields select{width:auto;min-width:10em}.billing-bulk-notes input{width:16em}
.billing-bulk-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:8px}.billing-bulk-actions span{flex:1 1 auto;font-size:var(--font-sm)}
.billing-ledger .data-table .billing-bulk-cell{min-width:9em;white-space:nowrap}.billing-bulk-cell .billing-money-input{width:calc(8em + 20px);padding:6px 8px}.billing-bulk-fill{display:block;font-size:var(--font-xs);padding:2px 0;color:var(--muted)}
@media(max-width:800px){.billing-bulk-fields label{flex:1 1 10em}.billing-bulk-fields input,.billing-bulk-fields select,.billing-bulk-notes input{width:100%}}
/* 退去手続き（v0.13.31）: 入居者別の会計の先頭に 5 段階を縦に並べる。完了は緑、次の操作は黄、待ちは灰色。 */
.move-out{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle);padding:10px 12px;margin:10px 0 14px}
.move-out-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.move-out-head .billing-subheading{margin:0}
.move-out-steps{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.move-out-step{border:1px solid var(--line);border-radius:var(--radius-md);background:white;padding:8px 10px;min-width:0}
.move-out-step-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.move-out-num{font-weight:700;color:var(--muted)}
.move-out-mark{margin-left:auto;font-size:var(--font-xs);padding:1px 8px;border-radius:999px;background:var(--surface-grey);color:var(--muted);white-space:nowrap}
.move-out-step p{margin:4px 0 0;font-size:var(--font-sm)}
.move-out-step .actions{margin-top:6px}
.move-out-step.done{background:var(--green-soft);border-color:#bed6cc}.move-out-step.done .move-out-mark{background:white;color:#096954}
.move-out-step.open{background:#fff8e6;border-color:#f0d9a8}.move-out-step.open .move-out-mark{background:#f0d9a8;color:#6f4a00;font-weight:600}
.move-out-step.waiting{color:var(--muted)}
.move-out-step.ready .move-out-mark{background:#e3eefc;color:#1d4f91}
.modal-head .billing-back{margin-left:auto;margin-right:8px;font-size:var(--font-sm);white-space:nowrap}
.move-out-mini{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:6px 0;padding:0}
.move-out-mini li{font-size:var(--font-xs);padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:white;color:var(--muted)}
.move-out-mini li.done{background:var(--green-soft);border-color:#bed6cc;color:#096954}
.move-out-mini li.open{background:#fff8e6;border-color:#f0d9a8;color:#6f4a00;font-weight:600}
.move-out-summary p{margin:0 0 4px}.move-out-summary+.move-out-summary{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.billing-ledger .data-table tr.billing-row-moved_out td{color:var(--muted)}
/* v0.13.38: 入金・返金・精算のダイアログ（UI設計指針 18）。幅は中身に合わせて 4 段階にし、受け取る・返す金額を一番目立たせる。
   s=確認・1 件の記録（36 文字）、m=入金などの入力と詳細（46 文字、従来の約 3/4）、doc=A4 の書類（用紙幅 186mm＋余白）、l=表の多い画面（従来の 980px）。 */
#billing-dialog.billing-size-s{max-width:36em}
#billing-dialog.billing-size-m{max-width:46em}
#billing-dialog.billing-size-doc{max-width:calc(186mm + 96px)}
#billing-dialog .billing-person{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:0 0 10px}
#billing-dialog .billing-person>span{font-size:var(--font-xs);color:var(--muted)}
#billing-dialog .billing-person strong{font-size:17px}
#billing-dialog .billing-person small{font-size:var(--font-sm);color:var(--muted)}
#billing-dialog .billing-person-select{margin-bottom:12px}
/* 大事な入力をまとめる枠。左の太線と薄い緑の地で「ここに入れる」を示す。金額は 24px の太字、増減の矢印は出さない。 */
#billing-dialog .billing-key{border:1px solid #a9d3c8;border-left:5px solid var(--teal);background:#f1f8f6;border-radius:var(--radius-md);padding:10px 14px 14px;margin:0 0 14px}
#billing-dialog .billing-key-title{margin:0 0 8px;font-size:15px;color:var(--green-text)}
#billing-dialog .billing-key-title small{margin-left:10px;font-size:var(--font-xs);font-weight:400;color:var(--muted)}
#billing-dialog .billing-key .form-grid+.form-grid{margin-top:12px}
#billing-dialog .billing-key-amount label{font-size:var(--font-md);font-weight:700;color:var(--text)}
#billing-dialog .billing-yen{display:flex;align-items:center;gap:8px}
#billing-dialog .billing-yen input{font-size:24px;font-weight:700;height:50px;min-height:50px;width:calc(6.5em + 26px);padding:4px 10px;text-align:right;font-variant-numeric:tabular-nums;border:2px solid var(--teal);background:white;color:var(--text);-moz-appearance:textfield;appearance:textfield}
#billing-dialog .billing-yen input::-webkit-inner-spin-button,#billing-dialog .billing-yen input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#billing-dialog .billing-yen span{font-size:18px;font-weight:700}
#billing-dialog .billing-key-hint{font-size:var(--font-sm);color:var(--text);min-height:1.6em}
#billing-dialog .billing-key-hint strong{font-size:var(--font-lg);font-variant-numeric:tabular-nums}
#billing-dialog .billing-key-money{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0 0 2px}
#billing-dialog .billing-key-money span{font-size:var(--font-md);font-weight:700}
#billing-dialog .billing-key-money strong{font-size:26px;font-variant-numeric:tabular-nums}
#billing-dialog .billing-key-lines{margin:0 0 10px;font-size:var(--font-sm);color:var(--muted);line-height:1.7}
#billing-dialog .billing-sub-fields{margin:0 0 4px}
#billing-dialog .billing-sub-fields textarea{min-height:0}
#billing-dialog .billing-subheading small{margin-left:10px;font-size:var(--font-sm);font-weight:400;color:var(--muted)}
#billing-dialog .billing-allocation-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}
#billing-dialog .billing-allocation-mode{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:34px;font-size:var(--font-sm)}
#billing-dialog .billing-allocation-mode small{color:var(--muted)}
#billing-dialog #billing-allocate-oldest{margin-left:auto}
#billing-dialog .billing-allocation-result{display:flex;flex-wrap:wrap;gap:2px 28px}
#billing-dialog .billing-allocation-result p{margin:0;display:flex;align-items:baseline;gap:8px}
#billing-dialog .billing-allocation-result span{font-size:var(--font-sm)}
#billing-dialog .billing-allocation-result strong{font-size:18px;font-variant-numeric:tabular-nums}
#billing-dialog .billing-amount-summary>.billing-negative{margin:2px 0 0}
#billing-dialog .billing-fee-details{margin-top:4px;font-size:var(--font-sm)}
#billing-dialog .billing-fee-details ul{margin:4px 0 0;padding-left:20px}
/* 表の日付と操作ボタンは途中で折り返さない（文字の多い列が折り返す）。 */
@media(min-width:751px){#billing-dialog .data-table td:first-child,#billing-dialog .data-table td>.actions button{white-space:nowrap}#billing-dialog .data-table td>.actions{flex-wrap:nowrap}}
@media(max-width:750px){#billing-dialog .billing-key{padding:10px 12px 12px}#billing-dialog .billing-key-title small,#billing-dialog .billing-subheading small{display:block;margin:2px 0 0}#billing-dialog .billing-yen input{width:calc(7em + 26px)}#billing-dialog #billing-allocate-oldest{margin-left:0}}
/* スマホでは「今回充てる額」の欄が横にはみ出さないよう、請求額の列を省き、期限は月の下に出す。 */
@media(max-width:750px){#billing-dialog .billing-allocation-table th:nth-child(2),#billing-dialog .billing-allocation-table td:nth-child(2){display:none}#billing-dialog .billing-allocation-table td small{display:block}#billing-dialog .billing-allocation-table th,#billing-dialog .billing-allocation-table td{padding:6px 5px}#billing-dialog .billing-allocation-table th{white-space:normal}#billing-dialog .billing-allocation-table .data-table{min-width:0;width:100%}#billing-dialog .billing-allocation-table .billing-money{min-width:0}#billing-dialog .billing-allocation-table .billing-money-input{width:calc(6em + 20px)}}
/* 入居日・退去日の食事（v0.13.46）。入居日・退去日の選択は「夕食から」「食事なし」の4文字＋1文字の余白（未選択は「未選択」の3文字）、費目の区分は「食事以外」の4文字分＋選択の飾り分。 */
#billing-dialog .billing-meal-field{grid-column:2/4;display:grid;gap:5px}#billing-dialog .billing-meal-field select{max-width:calc(6em + 40px)}
#billing-dialog .billing-stay-meals{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-subtle);padding:4px 13px 10px;margin:12px 0}
#billing-dialog .billing-stay-meals .billing-subheading{margin:10px 0 4px}
#billing-dialog .billing-stay-meal{display:grid;grid-template-columns:13em calc(5em + 48px) minmax(0,1fr);gap:6px 12px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
#billing-dialog .billing-stay-meal label{font-weight:600;display:flex;gap:8px;font-size:var(--font-sm)}#billing-dialog .billing-stay-meal label span{font-weight:400;font-variant-numeric:tabular-nums}
#billing-dialog .billing-stay-meal select{width:100%}
#billing-dialog .billing-stay-meal-summary{font-size:var(--font-sm);color:var(--green-text)}#billing-dialog .billing-stay-meal-summary.missing{color:var(--red-text)}
@media(max-width:750px){#billing-dialog .billing-meal-field{grid-column:1/-1}#billing-dialog .billing-meal-field select{max-width:none}#billing-dialog .billing-stay-meal{grid-template-columns:calc(5em + 48px) minmax(0,1fr)}#billing-dialog .billing-stay-meal label{grid-column:1/-1}#billing-dialog .billing-stay-meal select{min-height:44px}}

/* 請求書（v0.13.54）。1 名 1 枚。画面の見本は紙を縦に並べ、印刷では 1 名ごとに改ページする */
.billing-doc .doc-invoice-parties{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm;margin:4mm 0 3mm}
.billing-doc .doc-invoice-to{margin:0;font-size:14pt;border-bottom:1px solid #333;min-width:50%;padding-bottom:1mm}
.billing-doc .doc-invoice-parties .doc-issuer{margin:0;flex-direction:column;align-items:flex-end;gap:.5mm;text-align:right}
.billing-doc .doc-invoice-amount{display:flex;align-items:baseline;justify-content:center;gap:6mm;border-top:1px solid #777;border-bottom:2px solid #111;padding:2mm 0;margin:2mm 0 3mm}
.billing-doc .doc-invoice-amount span{font-size:10pt}.billing-doc .doc-invoice-amount strong{font-size:20pt;font-variant-numeric:tabular-nums;letter-spacing:.03em}
.billing-receipt-preview .doc-invoice+.doc-invoice{margin-top:18px}
@media print{body.printing-billing-receipt .doc-invoice+.doc-invoice{break-before:page}body.printing-billing-receipt .doc-invoice-amount,body.printing-billing-receipt .doc-invoice-parties{break-inside:avoid}}
@media screen and (max-width:750px){.billing-receipt-preview .billing-doc .doc-invoice-parties{flex-direction:column;align-items:stretch}.billing-receipt-preview .billing-doc .doc-invoice-parties .doc-issuer{align-items:flex-start;text-align:left}.billing-receipt-preview .billing-doc .doc-invoice-amount strong{font-size:18px}.billing-receipt-preview .billing-doc .doc-invoice-table{table-layout:auto}}
.billing-doc .doc-invoice-table{table-layout:fixed}.billing-doc .doc-invoice-table th:last-child{width:30mm}.billing-doc .doc-invoice-table thead th:first-child:nth-last-child(3){width:36mm}
/* 名前付きの用紙（page:caremadoReceipt）の中で表の tfoot を使うと、Chromium は合計行を次のページへ送り白紙に近いページができる（v0.13.54 で確認）。
   合計行は表の最後に 1 回だけ出せばよいので、印刷では普通の行として組む */
@media print{body.printing-billing-receipt .billing-doc tfoot{display:table-row-group}}
