:root{--blue:#2e5189;--blue-light:#eef3fb;--ink:#242d3a;--muted:#667180;--line:#d8dfe7;--surface:#fff;--bg:#f5f6f9;--done:#e5e8ec;--amber:#8b5613;--amber-bg:#fff6e8;--radius:12px}
.steps>.step{min-width:0}.step-body{min-width:0}
@media(max-width:768px){.step-body .table-wrap table{min-width:0}.table-wrap colgroup,.table-wrap thead{display:none}.table-wrap tbody{display:block}.table-wrap tr{display:grid;grid-template-columns:1fr 1fr;padding:12px 8px;border-bottom:1px solid var(--line)}.table-wrap tr:last-child{border-bottom:0}.table-wrap td{display:block;border:0;padding:8px;min-width:0}.table-wrap td:nth-child(2){grid-column:1/-1;grid-row:1}.table-wrap td:nth-child(4){grid-column:1/-1}.table-wrap td:before{content:attr(data-label);display:block;font:11px/1.5 "Hiragino Maru Gothic ProN",sans-serif;color:var(--muted);margin-bottom:4px}.table-wrap .category{height:44px}
/* ★★★ 2026-09-19・オーナー実機発見：インポート元データ「除外済み」行
   （export-excluded-row・列は取引日/取引先/金額/状態の4列）に、上の
   通常行(選択/取引日/取引先/金額/勘定科目の5列)向けnth-child指定が
   そのまま当たり、列の意味がずれて重なっていた（td:nth-child(2)は通常行
   では取引日だが除外済み行では取引先——両方が「1行目・全幅」を取り合う）。
   CLAUDE.md #12-2bと同型の事故（同じ要素に列数の違う構造で同じ位置指定の
   クラスが競合）。除外済み行専用の配置を明示して切り離す。*/
.table-wrap tr.export-excluded-row td:nth-child(1){grid-column:1;grid-row:1}
.table-wrap tr.export-excluded-row td:nth-child(2){grid-column:1/-1;grid-row:2}
.table-wrap tr.export-excluded-row td:nth-child(3){grid-column:2;grid-row:1}
.table-wrap tr.export-excluded-row td:nth-child(4){grid-column:1/-1;grid-row:3}
}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.65 "Hiragino Maru Gothic ProN","Yu Gothic",system-ui,sans-serif}button,select,input{font:inherit}button,select{cursor:pointer}button{min-height:36px;border:1px solid var(--line);border-radius:6px;padding:0 16px;background:white;color:var(--ink);font-weight:600}button:hover:not(:disabled){background:#f0f3f7}button:disabled{cursor:not-allowed;color:#75808e;background:#eef0f3;border-color:#e1e5eb}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}button.primary{background:var(--blue);color:white;border-color:var(--blue)}button.primary:hover:not(:disabled){background:#244371}button.primary:disabled{background:#e5e8ec;border-color:#e5e8ec;color:#75808e}button.text-button{background:transparent;border:0;color:var(--blue);padding:0 8px}.app-header{background:white;border-bottom:1px solid var(--line)}.header-inner{max-width:1160px;margin:auto;padding:0 24px}.brand-row{height:72px;display:flex;gap:20px;align-items:center}.brand-row img{width:150px;height:40px;object-fit:contain}.workspace{color:var(--muted);font-size:12px}.prototype:empty{display:none}.prototype{margin-left:auto;background:var(--blue-light);color:var(--blue);border-radius:4px;font-size:12px;padding:3px 9px}nav{display:flex;gap:8px;align-items:center;padding-bottom:12px}.nav-current,.nav-item{padding:9px 12px;white-space:nowrap;font-size:14px}.nav-current{background:var(--blue);color:white;border-radius:6px;font-weight:700}.nav-item{color:#566171}.nav-spacer{flex:1}main{max-width:1160px;padding:36px 24px 48px;margin:auto}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px}h1{font-size:24px;line-height:1.5;margin:0 0 8px;font-weight:700}p{margin:0}h2{font-size:18px;line-height:1.6;margin:0}h3{font-size:15px;margin:0 0 10px}.page-heading p,.muted{color:var(--muted)}.month-label{display:flex;align-items:center;gap:12px;flex-shrink:0;color:var(--muted);font-size:14px}
/* ★ 依頼書「毎月の運用-対象年度を追加」（2026-09-11）。対象年度・対象月の
   2つのmonth-labelを横に並べる置き場（api-readonly-ui.jsの対象年度と
   同じ見た目に揃える）。 */
.month-select-group{display:flex;gap:12px;flex-shrink:0}select{height:38px;border:1px solid var(--line);background:white;border-radius:6px;padding:0 32px 0 12px;color:var(--ink);max-width:100%}.demo-note{font-size:12px;display:flex;gap:12px;align-items:center;justify-content:space-between;color:var(--muted);margin-bottom:16px}.demo-note button{white-space:nowrap;font-size:12px}.summary{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;display:flex;align-items:center;gap:48px;margin-bottom:24px}.summary strong{font-family:Arial,sans-serif;font-size:28px;color:var(--blue);font-weight:600}.summary .muted{font-size:12px}.summary p span{color:var(--muted);font-size:13px}.summary-right{flex:1;min-width:0}.summary-right p{font-size:13px;margin-bottom:10px}.progress-track{background:#edf0f4;height:10px;border-radius:6px;overflow:hidden}.progress-track span{display:block;height:100%;width:0;background:var(--blue);transition:width .15s}.steps{display:grid;gap:16px}.step{border:1px solid var(--line);border-radius:var(--radius);background:white;overflow:clip}.step.active{border-color:#8ea6ca;box-shadow:0 0 0 1px #8ea6ca}.step.done{border-color:var(--line)}.step-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto 16px;align-items:center;gap:16px;width:100%;min-height:88px;text-align:left;padding:20px 24px;border:0;border-radius:0;background:white;font-weight:400}.step-head:hover:not(:disabled){background:#fafbfd}.step.done .step-head{background:#f2f3f5}.step-number{display:grid;place-items:center;width:36px;height:36px;background:#f0f2f5;border-radius:50%;font:600 15px/1 Arial,sans-serif;color:#697789}.active:not(.done) .step-number{background:var(--blue);color:white}.done .step-number{background:var(--done);color:#454f5a}.step-title{font-size:16px;font-weight:700}.step-description{display:block;color:var(--muted);font-size:12px;margin-top:3px}.state{display:inline-flex;font-size:12px;line-height:1.5;white-space:nowrap;padding:4px 10px;border-radius:5px;background:#f0f2f5;color:#5f6975}.state.working{background:var(--blue-light);color:var(--blue)}.caret{color:#687588;transition:transform .15s}.active .caret{transform:rotate(180deg)}.step-body{padding:24px;border-top:1px solid #e7ebf0}.step-body[hidden]{display:none}.lead{margin-bottom:20px;color:#536071}.small{font-size:12px}.dropzone{border:1px dashed #a5b6cd;background:#f8faff;border-radius:8px;text-align:center;padding:28px 20px}.file-icon{display:block;font-size:14px;font-family:Arial,sans-serif;letter-spacing:1px;border:1px solid #9cb0ce;width:44px;padding:12px 0;margin:0 auto 12px;border-radius:5px;color:var(--blue);background:white}.dropzone p{margin-bottom:16px}.dropzone .small{margin:12px 0 0;color:var(--muted)}.actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:24px;flex-wrap:wrap}.actions .muted{margin-right:auto;font-size:12px}
/* ★★★ 2026-09-19・オーナー指摘（繰り返し）：切り替えボタンの行と、その
   直下の箱との間隔が毎回詰まる。個別に直すのをやめ、共通クラスとして
   固定する——今後「フィルター/切り替えボタンの並び」を追加するときは
   .actions単体ではなくこの.filter-rowを必ず付けること。 */
.actions.filter-row{justify-content:flex-start;margin-bottom:20px}.file-loaded,.callout{border-radius:8px;background:var(--blue-light);padding:14px 16px;display:flex;gap:12px;align-items:center;color:var(--blue);margin-bottom:20px}
/* ★ 依頼書「同じCSVの二重取り込みと削除の見せ方」2（2026-09-10）：削除後、
   残った理由の導線を押すと該当行が一瞬光る。 */
.history-import-highlight{outline:2px solid var(--blue);outline-offset:2px;transition:outline-color .3s}.callout.warning{background:var(--amber-bg);color:var(--amber)}
/* ★ 依頼書「ステルスログイン中バナー・運営の権限3段階」（2026-09-20・オーナー
   指示）。他社実測（Stripeのtest modeインジケーターは常に全ページで見える・
   Zendeskの代理ログインは上部の帯で「元の自分に戻る」を常時出す・Intercom
   の全体バナーはposition:stickyで常駐）に合わせ、position:stickyで
   スクロールしても見失わない形にする。既存の.errorと同系統の赤系配色
   （新しい色を増やさない・DRY）だが、常駐バナーとして一段強い見た目にする。 */
.stealth-banner{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;background:#a43429;color:#fff;padding:10px 24px;font-weight:700;font-size:13px}
.stealth-banner button{background:#fff;color:#a43429;border-color:#fff;white-space:nowrap;flex-shrink:0}
.stealth-banner button:hover:not(:disabled){background:#fff0ee}.file-loaded strong{display:block}.file-loaded .small{color:var(--muted)}.file-loaded button{margin-left:auto}.history-import-item>div:first-child{flex:1 1 auto;min-width:0}.history-import-item>.actions{margin:0 0 0 auto;flex:0 0 auto;display:flex;gap:8px;align-items:center}.history-import-item>.actions button{margin-left:0}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:13px;table-layout:fixed}th,td{text-align:left;padding:14px 16px;vertical-align:middle;border-bottom:1px solid #e8ecf1;overflow-wrap:anywhere}th{background:#f7f8fa;font-weight:500;color:#687382;font-size:12px}tbody tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-family:Arial,sans-serif;font-variant-numeric:tabular-nums}.date{font-family:Arial,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}.channel-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.channel{display:flex;gap:8px;align-items:center;border:1px solid var(--line);padding:8px 12px;border-radius:6px;font-weight:600}.dot{width:7px;height:7px;border-radius:50%;background:var(--blue)}/* ★★★ 依頼書「至急：不足証憑一覧のレイアウト崩れ」（2026-09-18・オーナー
   実機・実データ35件で発見）：この4列グリッドは、2026-09-17の一括不要
   チェックボックス追加(api-evidence-ui.js)で子要素が5個になったのに
   列数を直していなかった。5個目(操作ボタン)が暗黙の2行目・1列目へ
   回り込み、狭い列にボタン文字が押し込まれて折り返していた。子要素の
   個数・並び順に依存しないよう、列数を5列にしたうえで各要素へ
   grid-columnを明示する（並び順が変わっても崩れない）。 */
.missing-row{display:grid;grid-template-columns:36px 80px minmax(0,1fr) 90px auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid #e8ecf1}
.missing-row .missing-row-select{grid-column:1}
.missing-row .date{grid-column:2;font-family:Arial,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.missing-row>strong{grid-column:3;min-width:0}
.missing-row .amount{grid-column:4;font-family:Arial,sans-serif;text-align:right}
.missing-row .match-buttons{grid-column:5}
.missing-row:last-child{border-bottom:0}.empty{padding:24px;text-align:center;background:#f7f8fa;border-radius:8px;color:var(--muted)}.match-list{display:grid;gap:12px}/* ★★★ 至急・オーナー実機で発見（2026-09-19）：この4列グリッドは、
   証憑突合の一括操作(2026-09-17)で選択チェックボックス(.match-card-select)
   が付いた際に子要素が5個になったのに列数を直していなかった。.missing-row
   （2026-09-18・同型事故）と同じ対応：列数を5列にし、各要素へgrid-column
   を明示する（並び順・個数が変わっても崩れない）。 */
.match-card{border:1px solid var(--line);border-radius:8px;padding:16px;display:grid;grid-template-columns:24px minmax(0,1fr) 24px minmax(0,1fr) auto;gap:16px;align-items:center}
.match-card .match-card-select{grid-column:1}
.match-card .match-subject{grid-column:2;min-width:0}
.match-card .match-arrow{grid-column:3}
.match-card .match-evidence{grid-column:4;min-width:0}
.match-card .match-buttons{grid-column:5}.match-card.confirmed{background:#f4f5f7}.match-card .label{font-size:11px;color:var(--muted);margin-bottom:5px}.match-card strong{font-size:14px;display:block}.match-meta{font-size:12px;color:var(--muted);margin-top:6px;display:flex;gap:16px}.match-arrow{text-align:center;color:#8592a3}.match-buttons{display:flex;gap:4px;flex-direction:column;min-width:120px}.match-buttons button{font-size:12px}.receipt-link{color:var(--blue);text-align:left;padding:0!important;min-height:30px!important;font-size:12px;font-weight:400!important}.status-line{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:16px}.checkline{display:flex;gap:10px;align-items:flex-start;margin-top:20px;padding:16px;background:#f7f8fa;border-radius:6px}.checkline input{accent-color:var(--blue);width:18px;height:18px;flex-shrink:0;margin:3px 0 0}
/* ★★ .checklineは「独立した1個の同意チェックボックス」用（padding16px＋
   背景色＋margin-top20pxで1ブロックとして目立たせる意図）。クラスの使い回し
   自体は問題ない——ここでの事故は、行内の複数選択チェックボックス
   (.missing-row-select・.match-card-select)に流用した際、グリッドの狭い
   セル(80px・24px)に大きな灰色の枠が乗って崩れているのを、実ブラウザで
   見た目を確認せずに通したこと（2026-09-18・オーナー実機で発見・
   オーナー訂正：「使い回し自体はむしろ指示していた。問題は確認せず通した
   こと」）。★★★ クラスを使い回した箇所は、必ず実ブラウザで見た目
   （bounding boxの高さ・親要素からのはみ出し等）を確認してから通すこと。*/
.checkline.missing-row-select,.checkline.match-card-select{margin-top:0;padding:9px 0;background:transparent;border-radius:0;display:flex;align-items:center;justify-content:center}
.evidence-no-candidate{min-height:76px;border:1px solid var(--line);border-radius:8px;padding:10px 14px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:14px;align-items:center}.evidence-row-main{min-width:0}.evidence-row-main>strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evidence-row-states{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.evidence-row-states .state{font-size:11px}.evidence-select-all{margin:0 0 12px;padding:0;background:transparent}.receipt-correction{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);gap:20px}.receipt-correction-fields label{display:grid;gap:4px;margin-bottom:10px;font-size:12px;color:var(--muted)}.receipt-correction-fields input{width:100%;min-height:40px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;color:var(--ink)}.receipt-correction-money{display:grid;grid-template-columns:1fr 82px;gap:8px}.receipt-correction .form-error:empty{display:none}#receipt-dialog:has(.receipt-correction){max-width:900px}
.format-group{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.format-group label{border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;padding:16px;align-items:center;cursor:pointer}.format-group label:has(input:checked){border-color:var(--blue);background:var(--blue-light)}input[type=radio]{accent-color:var(--blue);width:18px;height:18px}.format-group label span{font-weight:600}.format-group small{display:block;color:var(--muted);font-weight:400}.bottom-note{font-size:12px;color:var(--muted);margin-top:24px;text-align:center}.locked{padding:12px 0;color:var(--muted)}.download-ready{padding:24px;background:#f2f4f7;border-radius:8px;text-align:center}.download-ready h3{font-size:18px}.download-ready button{margin:16px 0}.category{width:100%;padding-right:20px;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
/* ★ 依頼書「CSVの確認ダイアログを横長に・はみ出す文字列は省略」（2026-09-11）。
   外部から来る・長さが読めない文字列（CSVの中身のセル値など）を1行に
   収めて「...」で切る、共通の道具。全文はtitle属性で見られるようにする側で
   足すこと（この道具自体は見た目だけ）。 */
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog{border:1px solid var(--line);border-radius:12px;max-width:460px;width:calc(100% - 32px);padding:24px;color:var(--ink)}dialog::backdrop{background:#192b4855}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.receipt-paper{border:1px solid #cdd4dd;padding:28px;margin-bottom:16px;background:#fff;line-height:2}.receipt-paper h3{font-size:22px;text-align:center;border-bottom:1px solid var(--line);padding-bottom:14px}
/* ★★★ 依頼書K・K-0（2026-09-10）：証憑プレビューの実物化。ダミーの
   紙(.receipt-paper)の代わりに、原本を画面内(img/iframe)で見せる。
   受け皿(dialog)がmax-width:460pxのままだと領収書が読めないほど小さく
   なるため、この中身が入っているときだけ広げる。 */
#receipt-dialog:has(.receipt-preview){max-width:640px}
.receipt-preview h3{font-size:16px;margin-bottom:8px}
.receipt-file-image{display:block;max-width:100%;max-height:60vh;margin:0 auto 12px;border:1px solid var(--line);border-radius:6px;background:#f7f8fa}
.receipt-file-frame{display:block;width:100%;height:60vh;border:1px solid var(--line);border-radius:6px;margin-bottom:12px;background:#f7f8fa}
.receipt-note{font-size:12px;color:var(--muted)}.receipt-total{font-size:24px;font-family:Arial,sans-serif;border-top:1px solid var(--line);margin-top:20px;padding-top:10px;text-align:right}.error{background:#fff0ee;color:#a43429;padding:12px 16px;border-radius:6px;margin-bottom:16px}small.error{display:inline-block}.journal-one-account-notice{flex-direction:column;align-items:flex-start;gap:4px}.journal-one-account-notice strong{font-size:13px}.journal-one-account-notice span{font-size:13px;line-height:1.6}@media(max-width:768px){.header-inner{padding:0 16px}.brand-row{height:62px;gap:12px}.brand-row img{width:128px}.workspace{display:none}.secondary{display:none}nav{gap:2px}.nav-item,.nav-current{font-size:12px;padding:8px 10px}main{padding:24px 16px 32px}.page-heading{align-items:flex-start;gap:16px;flex-direction:column}h1{font-size:24px}.page-heading p{font-size:13px}.month-label{width:100%;justify-content:space-between}.month-label select{min-width:160px;height:44px}.month-select-group{width:100%;flex-direction:column;gap:8px}.demo-note{align-items:flex-start;flex-direction:column;gap:4px}.summary{gap:16px;padding:16px}.summary>div:first-child{flex-shrink:0}.summary-right p{font-size:12px}.summary strong{font-size:24px}.step-head{grid-template-columns:32px minmax(0,1fr) 16px;padding:18px 16px;gap:12px;min-height:92px}.step-number{width:32px;height:32px}.step-title{font-size:15px}.step-description{font-size:12px}.step-head .state{grid-column:2;grid-row:2;justify-self:start;margin-top:-7px}.caret{grid-column:3;grid-row:1}.step-body{padding:20px 16px}.actions{gap:12px}.actions button{width:100%;min-height:44px}.actions .muted{width:100%}.missing-row{grid-template-columns:28px 64px minmax(0,1fr) 74px auto;gap:8px}.match-card{grid-template-columns:1fr;padding:16px;gap:10px}.match-card .match-card-select{grid-column:1}.match-card .match-subject{grid-column:1}.match-arrow{display:none}.match-card .match-evidence{grid-column:1;border-top:1px solid var(--line);padding-top:10px}.match-card .match-buttons{grid-column:1;flex-wrap:wrap}.match-card .match-buttons button{flex:1 1 calc(50% - 2px)}.match-buttons{flex-direction:row}.match-buttons button{min-height:44px;flex:1}.match-meta{justify-content:space-between}.format-group{grid-template-columns:1fr}.table-wrap table{min-width:580px}.step-body button{min-height:44px}.file-loaded{flex-wrap:wrap}.file-loaded button{margin-left:0}.status-line{align-items:flex-start}.bottom-note{text-align:left}dialog{padding:20px}}

/* ★★★ 依頼書「至急：証憑不足一覧、まだ直っていない」（2026-09-18・
   オーナー実機で再発見・2回目）：この.evidence-requirement-rowが
   .missing-rowと同じ要素に付いており(class="missing-row
   evidence-requirement-row")、どちらも単一クラスセレクタ(詳細度0,1,0)
   でgrid-template-columnsを指定していたため、後に書かれているこちらの
   4列定義(100px minmax(0,1fr) 90px auto)が、9/18の5列修正
   (.missing-row側の36px 80px minmax(0,1fr) 90px auto)を上書きして
   いた——子要素のgrid-column配置(.missing-row .date{grid-column:2}等)
   は子孫セレクタで詳細度が高く生きたままだったため、日付(grid-column:2)
   が本来amountの90px枠ではなくmerchant用の1fr(可変)枠に入って不自然な
   空白が生まれ、merchant(grid-column:3)がamount用の90pxに押し込まれて
   キツキツになっていた。列幅の定義は.missing-row側の1か所に統一し、
   ここでは重複するgrid-template-columnsを持たない（strong/match-buttons
   の付随スタイルだけ残す）。 */
.evidence-requirement-row strong{overflow-wrap:anywhere}
.evidence-requirement-row .match-buttons{flex-direction:row;align-items:center}

/* ★ 至急修正の副産物として発見（2026-09-18）：768pxブレークポイントの
   5列定義(28px 64px minmax(0,1fr) 74px auto)は、390px等のさらに狭い
   スマホ幅では固定列の合計(166px)+gapで可変列(取引先名)がほぼ潰れ、
   日本語の取引先名が1文字ずつ縦に折り返す崩れを起こす（実機で確認・
   このアプリのログイン後画面に幅で弾く仕組みは無く、実際に開ける
   ——grep で is-phone 等の仕組みを確認したが該当0件）。480px以下では
   行を3段に積む(①チェックボックス・日付・金額 ②取引先名 ③操作)。 */
@media(max-width:480px){
  .missing-row{grid-template-columns:24px minmax(0,1fr) auto;gap:4px 8px}
  .missing-row .missing-row-select{grid-column:1;grid-row:1}
  .missing-row .date{grid-column:2;grid-row:1}
  .missing-row .amount{grid-column:3;grid-row:1}
  .missing-row>strong{grid-column:1/-1;grid-row:2}
  .missing-row .match-buttons{grid-column:1/-1;grid-row:3;justify-self:end}
}

/* Keep the unlinked evidence action at the right edge, including narrow screens. */
.match-list>.empty>.match-buttons{align-items:flex-end;margin-top:12px}
.match-list>.empty>.match-buttons button{flex:0 0 auto;margin-left:auto}

/* Keep page-allowance notices readable at narrow widths. */
.callout[data-reading-usage]{display:block;overflow-wrap:anywhere}
.callout[data-reading-usage] p{margin:6px 0}
.callout[data-reading-usage] button{margin-top:4px}

.export-period{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.export-period .ym-field{display:flex;flex-direction:column;gap:6px}.export-period>span{align-self:center}.ym{display:inline-flex;align-items:center;gap:6px}.ym input{min-height:40px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;color:var(--ink);background:#fff;text-align:center}.ym .ym-y{width:5.4em}.ym .ym-m{width:3.6em}.ym input[aria-invalid=true]{border-color:#a43429;background:#fff0ee}

/* Optional journal comparison belongs to export review only. */
.callout[data-booked-panel]{display:block;overflow-wrap:anywhere}
.callout[data-deep-link-notice] button{flex-shrink:0;white-space:nowrap}
[data-booked-panel] summary{cursor:pointer;font-weight:600}
[data-booked-panel] p,[data-booked-panel] label{display:block;margin-top:12px}
[data-booked-panel] input[type=file]{display:block;max-width:100%;margin-top:8px}
[data-booked-detail]{margin-top:6px;font-size:12px;overflow-wrap:anywhere}
[data-booked-detail] summary{cursor:pointer}
[data-booked-detail] button{margin:6px 6px 0 0}
[data-booked-panel] summary,[data-booked-panel] p,[data-booked-panel] label{color:var(--ink)}
[data-booked-panel] input[type=file]{cursor:pointer}


/* 768px実測(2026-09-17 ui-sweep)：base buttonが36px/selectが38pxのままで、
   個別クラスの768px上書きが無い画面(設定タブの保存ボタン・取得先の外部リンク等)で
   --tap-min相当の44pxを割っていた。ここで底上げして揃える。 */
@media(max-width:768px){button{min-height:44px}select{min-height:44px}.ym input{min-height:44px}.export-period>span[aria-hidden]{display:none}}

/* 768px実測(2026-09-17 ui-sweep続き)：証憑の取得先カードの「◯◯を開く」リンク
   (.button-link、実体は<a>でbuttonタグの上のmin-heightが効かない)が43pxで
   44pxを1px割っていた。文中インラインのCSVダウンロード案内リンクはWCAG 2.5.8の
   「文中リンク」除外に当たるため対象外(freeeでのダウンロード方法／MoneyForward
   でのダウンロード方法)。 */
@media(max-width:768px){a.button-link{min-height:44px;display:flex;align-items:center;justify-content:center}}
@media(max-width:768px){.evidence-no-candidate{grid-template-columns:24px minmax(0,1fr);align-items:start}.evidence-no-candidate .match-buttons{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.receipt-correction{grid-template-columns:1fr}.receipt-correction-preview{max-height:42vh;overflow:auto}.receipt-correction-money{grid-template-columns:minmax(0,1fr) 82px}}
/* ★★★ 依頼書「証憑確認画面から、仕訳ルールをその場で追加」（2026-09-23深夜）
   Step2。右下・追従（position:fixed）のクイック追加ボタン。#pay-toast
   （payments.css）のposition:fixedパターンを踏襲。button.primaryの色を
   引き継いだ上で、形と影だけ足す。
   ★ 実測（他社調査・2026-09-23深夜）：Google Material Design（FAB）は
   標準56dp・画面端からの余白は16dp（モバイル）/24dp（デスクトップ）、
   Intercomのメッセンジャーランチャーは画面端から20pxの余白で右下固定、
   WhatsAppはアイコンが48px程度でも視認できる設計を採る——3社とも
   「右下固定・画面端からある程度の余白・44px（--tap-min）を上回る
   タップ領域」という共通点があり、この値（56px・右下24px）へ揃えた。 */
.journal-fab{position:fixed;right:24px;bottom:24px;z-index:9;min-height:56px;padding:0 22px;border-radius:28px;box-shadow:0 4px 14px rgba(36,45,58,.28)}
@media(max-width:768px){.journal-fab{right:16px;bottom:16px}}
/* ★★★ 2026-09-24・オーナー報告のバグ修正（統括経由）。FAB(.journal-fab)
   経由で開くクイック追加は非モーダル（dialog.show()）——backdropは
   :modalのときしか描かれないため、dialog::backdropは自動的に効かなく
   なる（暗転しない）。位置だけはUAの既定（中央寄せ）を上書きする必要が
   あるため、FAB付近（右下・fixed）へ明示的に固定する。汎用の
   dialog{...}（max-width:460pxなど）より詳細度を上げて上書きする。 */
.journal-rule-dialog--quick{position:fixed;top:auto;left:auto;right:24px;bottom:92px;margin:0;max-width:380px;max-height:calc(100vh - 116px);overflow:auto;z-index:10;box-shadow:0 8px 28px rgba(36,45,58,.32)}
@media(max-width:768px){.journal-rule-dialog--quick{right:16px;bottom:84px;max-width:calc(100% - 32px)}}
.callout[data-freee-mapping]{display:block;overflow-wrap:anywhere}
.callout[data-freee-mapping] h3{margin:0 0 8px}
.callout[data-freee-mapping] label,.callout[data-freee-mapping] p,.callout[data-freee-mapping] button{margin-top:8px}
.callout[data-freee-mapping] label.setting-field{margin-top:0}
.bulk-confirm-list{max-height:40vh;overflow:auto;margin:8px 0;padding-left:20px}.bulk-confirm-list li{margin:4px 0;overflow-wrap:anywhere}
[data-bulk-confirm-error]:empty{display:none}
.apply-result{display:block;margin:12px 0;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:#f7f8fa}.apply-result ul{margin:8px 0;padding-left:20px}.apply-result li{margin:6px 0;overflow-wrap:anywhere}.apply-result li>span:not(.reason){display:block}.apply-result .reason{display:block;padding:0;background:none;border:0;color:#4b5563;font-size:.875rem}.apply-result li>button:disabled{opacity:.6}.apply-result li>button{display:block;margin:2px 0 0;padding-left:0;text-align:left}
.apply-result p{margin:4px 0}.apply-choices{list-style:none;margin:8px 0;padding:0}.apply-choices li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line)}.apply-choices li>span{min-width:0;overflow-wrap:anywhere}.apply-choices li>button{display:inline-block;margin:0;padding:0 8px;min-height:36px}.apply-result details{margin-top:8px}
.apply-choices li>.apply-chips{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:flex-start;width:100%}.apply-choices li:has(>.apply-chips){display:block}.apply-chips>button{display:inline-block;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:#fff}
[data-dismiss-edenchoho]{flex:none;white-space:nowrap}
.journal-fab{width:56px;min-width:56px;height:56px;padding:0;font-size:0;line-height:1;display:flex;align-items:center;justify-content:center}.journal-fab::before{content:'＋';font-size:30px;line-height:1}
@media(max-width:1300px){#monthly-view .missing-row,#monthly-view .match-card{margin-right:64px}}
/* UI-L1：不足一覧の上部slot・一括バーは、不要フィルター／未選択でも同じ高さを残す（hidden属性・display:noneは使わない）。この画面のslotだけに効く。 */
.missing-top-slot-body[data-slot-hidden],.missing-bulk-body[data-slot-hidden]{visibility:hidden}

.forwarding-dialog p{overflow-wrap:anywhere}.forwarding-dialog .actions{flex-wrap:wrap}
.forwarding-settings{display:grid;gap:16px}.forwarding-settings>label{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between}.forwarding-settings select{max-width:100%;min-height:40px}.forwarding-request{border-top:1px solid var(--border,#d9d9d9);padding:12px 0}.forwarding-request button+button{margin-left:8px}
