/* 文章による仕訳ルール（依頼書 2026-09-09「文章仕訳ルール」§7）。
 * 汎用セレクタ（body/header/nav/main/button/dialog/.panel/.row/.actions等）は
 * ここへコピーしない。既存の style.css / payments.css の変数・共通クラスだけ使う。
 */
.journal-ai-panel{border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:20px;background:#fafbfd}
.journal-ai-head{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap}
.journal-ai-head strong{font-size:14px}
.journal-ai-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.state.is-danger{background:#fff0ee;color:#a43429}
.journal-ai-note{display:block;margin-top:6px;color:var(--blue)}
.journal-ai-note.error{display:block}
.journal-ai-note button{margin:0 8px;font-size:12px;min-height:26px;padding:0 10px}
.journal-ai-reason{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.journal-rule-save{margin-top:16px;background:#f7f8fa}
.journal-rule-draft{margin-top:10px;padding:14px;background:#f7f8fa;border-radius:6px}
.journal-rule-draft label{display:block;font-size:13px;margin-bottom:6px}
.journal-rule-draft textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:inherit;resize:vertical}
.journal-rule-draft p{margin-top:6px}
.journal-rules-list{display:grid;gap:14px;margin-bottom:16px}
.journal-rules-card{border:1px solid var(--line);border-radius:8px;padding:16px}
.journal-rules-card.is-inactive{background:#f7f8fa;color:var(--muted)}
.journal-rules-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.journal-rules-text{white-space:pre-wrap;line-height:1.8;margin-bottom:8px}
#journal-rule-dialog{width:520px;max-width:calc(100% - 32px)}
#journal-rule-dialog label{display:block;font-size:13px;margin-bottom:8px}
#journal-rule-dialog textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:inherit;resize:vertical}
@media(max-width:768px){
 .journal-ai-head{flex-direction:column;align-items:flex-start;gap:8px}
 .journal-ai-note button{margin:6px 0}
 #journal-rule-dialog{padding:20px 16px}
}
/* 仕訳提案の確度・候補・まとめて承認（依頼書 2026-09-21）。api-suggest-review.js が出す。 */
.suggest-panel{border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:16px;background:#fafbfd}
.suggest-summary{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap}
.suggest-count{font-size:14px}
.suggest-toggle-review{color:var(--amber);border-color:#e8c88f;background:var(--amber-bg)}
.suggest-toggle.is-solo{margin-left:0}
.suggest-toggle{margin-left:auto;order:0;display:flex;gap:8px;flex-wrap:wrap}
.suggest-toggle button[aria-pressed="true"]{background:var(--blue-light);border-color:var(--blue);color:var(--blue)}
.suggest-done{margin-top:10px;color:var(--blue)}
.table-wrap tr:has(+ tr.suggest-detail-row) td{border-bottom:0;padding-bottom:6px}
.table-wrap tr.suggest-detail-row td{padding:0 16px 12px 52px}
.table-wrap tr.suggest-detail-row td>*{vertical-align:middle;margin-right:10px}
.suggest-level{display:inline-block;font-size:12px;line-height:1.6;padding:2px 10px;border-radius:5px;white-space:nowrap}
.suggest-level-high{background:#e8f5ec;color:#1f6b3a}
.suggest-level-mid{background:var(--amber-bg);color:var(--amber)}
.suggest-level-low{background:#fff0ee;color:#a43429}
.suggest-level-done{background:#eef0f3;color:#5f6975}
.suggest-reason{font-size:12px;color:var(--muted)}
.suggest-candidates{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.suggest-candidate{min-height:30px;padding:0 12px;font-size:12px}
.suggest-candidate[aria-pressed="true"]{background:var(--blue-light);border-color:var(--blue);color:var(--blue)}
.suggest-approve-list{list-style:none;margin:12px 0;padding:0;max-height:50vh;overflow:auto;border:1px solid var(--line);border-radius:8px}
.suggest-approve-list li{display:grid;grid-template-columns:90px minmax(0,1fr) 110px 120px;gap:4px 12px;align-items:baseline;padding:10px 14px;border-bottom:1px solid #e8ecf1;font-size:13px}
.suggest-approve-list li:last-child{border-bottom:0}
.suggest-approve-list small{grid-column:2/-1;color:var(--muted);font-size:12px}
#export-row-dialog:has(.suggest-approve-list){width:720px;max-width:calc(100% - 32px)}
@media(max-width:768px){
 .suggest-toggle{margin-left:0}
 .table-wrap tr:has(+ tr.suggest-detail-row){border-bottom:0}
 .table-wrap tr.suggest-detail-row{display:block;padding:0 16px 14px}
 .table-wrap tr.suggest-detail-row .suggest-candidates{display:flex;margin-top:8px}
 .table-wrap tr.suggest-detail-row td{display:block;padding:0}
 .table-wrap tr.suggest-detail-row td:before{display:none}
 .table-wrap tr:has(+ tr.suggest-detail-row) td{padding-bottom:0}
 .suggest-approve-list li{grid-template-columns:1fr auto}
 .suggest-approve-list li .date,.suggest-approve-list li strong,.suggest-approve-list small{grid-column:1/-1}
}

/* The review filters retain one stable row in every data state. */
.export-filter{display:flex;gap:8px;flex-wrap:nowrap;min-height:40px;margin:0 0 16px}
.export-filter>button{min-width:100px;min-height:40px;background:#fff;color:var(--ink);border-color:var(--line)}
.export-filter>button[aria-pressed="true"]{background:var(--blue-light);color:var(--blue);border-color:var(--blue)}
.export-filter>button span{font-variant-numeric:tabular-nums}
.step-body .suggest-panel .suggest-toggle{display:none}
.export-filter-empty td{text-align:center;padding:24px 16px;color:var(--muted)}
@media(max-width:420px){.export-filter>button{min-width:0;flex:1;padding:0 6px}}
