/*! A-03 · 多主体收入年度归集与预扣台账 · 账册纸（墨绿 × 横线账页 × 等宽台账） */
.ml-a03 {
    --ml-page: #f6f7f2;
    --ml-card: #fffef9;
    --ml-card-2: #f8f9f2;
    --ml-ink: #1c2a20;
    --ml-sub: #4b5c4f;
    --ml-faint: #869286;
    --ml-line: #dfe4d6;
    --ml-line-2: #edf0e6;
    --ml-accent: #246b45;
    --ml-accent-2: #6ba57c;
    --ml-accent-soft: #e5f0e4;
    --ml-good: #246b45;
    --ml-good-soft: #e5f0e4;
    --ml-warn: #9a6b12;
    --ml-warn-soft: #f8edd4;
    --ml-bad: #b0453c;
    --ml-bad-soft: #f9e8e5;
    --ml-r: 6px;
    --ml-font-display: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, sans-serif;
    background:
        repeating-linear-gradient(180deg, transparent 0 31px, rgba(36, 107, 69, .035) 31px 32px),
        var(--ml-page);
}
:root[data-theme="dark"] .ml-a03 {
    --ml-page: #0d140f;
    --ml-card: #172019;
    --ml-card-2: #1c271e;
    --ml-ink: #eaf2e8;
    --ml-sub: #b4c4b3;
    --ml-faint: #849885;
    --ml-line: #2a3a2c;
    --ml-line-2: #202c22;
    --ml-accent: #7cc39a;
    --ml-accent-2: #4b9d70;
    --ml-accent-soft: #1e3527;
    --ml-good-soft: #1e3527;
    --ml-warn-soft: #382c15;
    --ml-bad-soft: #3a2020;
}
.ml-a03 .ml-hero { grid-template-columns: minmax(0, 1fr) minmax(380px, 500px); }
.ml-a03 h1.ml-h1 { font-weight: 800; }
.ml-a03 .ml-subtitle { font-size: 15.5px; }
.ml-a03 .a03-feat { display: grid; gap: 7px; margin-top: 6px; }
.ml-a03 .a03-feat .ml-feature { padding-bottom: 7px; border-bottom: 1px solid var(--ml-line-2); }
.ml-a03 .ml-feature i { border-radius: 50%; background: var(--ml-accent); color: #fff; }

/* ---------- 首屏：账册式录入台 ---------- */
.a03-book { background: var(--ml-card); border: 1px solid var(--ml-line); border-left: 5px solid var(--ml-accent); border-radius: 3px; box-shadow: var(--ml-shadow-lg); }
.a03-book-h { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 16px; border-bottom: 2px double var(--ml-line); }
.a03-book-h b { font: 800 14px/1.5 var(--ml-font-display); letter-spacing: .08em; }
.a03-book-h span { font: 600 10.5px/1.4 var(--ml-font-num); color: var(--ml-faint); }
.a03-book-b { padding: 14px 16px 16px; }
.a03-book-b .ml-textarea { min-height: 128px; font-size: 12px; background:
    repeating-linear-gradient(180deg, transparent 0 25px, var(--ml-line-2) 25px 26px), var(--ml-card-2); line-height: 26px; }
.a03-book-b .ml-drop { min-height: 50px; margin-bottom: 9px; }
.a03-book-b .ml-btn--primary { width: 100%; }
.a03-book-b .ml-btn-row .ml-btn { flex: 1; }

/* ---------- 付款方卡片 ---------- */
.a03-payers { display: grid; gap: 10px; max-height: 420px; overflow: auto; }
.a03-payer { padding: 12px 14px; border: 1px solid var(--ml-line); border-radius: 4px; background: var(--ml-card-2); }
.a03-payer-h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.a03-payer-h b { font-size: 13.5px; }
.a03-payer-h span { font: 800 15px/1.3 var(--ml-font-num); color: var(--ml-accent); }
.a03-payer p { margin: 5px 0 8px; font: 600 11px/1.7 var(--ml-font-num); color: var(--ml-faint); }
.a03-payer .bar { display: flex; height: 8px; border-radius: 3px; overflow: hidden; background: var(--ml-line-2); }
.a03-payer .bar i { background: var(--ml-accent); }
.a03-payer .bar em { background: var(--ml-accent-2); }

/* ---------- 月度归集 / 需核对 ---------- */
.a03-mflag { font-weight: 800; }
.a03-settles { display: grid; gap: 9px; }
.a03-settle { padding: 11px 13px; border-left: 3px solid var(--ml-warn); border-radius: 3px; background: var(--ml-warn-soft); font-size: 12.5px; line-height: 1.75; }
.a03-settle b { display: block; font: 800 13px/1.5 var(--ml-font-num); }
.a03-settle small { color: var(--ml-sub); }
.a03-rates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.a03-rate { padding: 11px 13px; border: 1px solid var(--ml-line); border-radius: 4px; background: var(--ml-card-2); }
.a03-rate b { display: block; font-size: 12.5px; }
.a03-rate code { display: block; margin-top: 5px; font-size: 12px; color: var(--ml-accent); }
.a03-rate small { display: block; margin-top: 4px; }
.a03-grid3 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 1000px) { .a03-grid3 { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .ml-a03 .ml-hero { grid-template-columns: 1fr; } .a03-rates { grid-template-columns: 1fr; } }
