/* ═══════════════════════════════════════════════════════════════════
   GP Assurances — Annual contract ledger UI
   Design-system tokens only (design-system.css). Desktop layout.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Annual block inside a profile contract card ── */
.annual-section {
  margin-top: 10px;
  border-top: 1px solid var(--gp-border, #E8ECF2);
  padding-top: 8px;
}
.annual-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.annual-section-head h6 {
  margin: 0;
  font-size: var(--gp-fs-th, 11px);
  font-weight: var(--gp-fw-th, 500);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--gp-muted, #64748B);
}
.annual-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--gp-fs-body, 12px);
}
.annual-table th {
  text-align: left;
  padding: 4px 8px 4px 0;
  font-size: var(--gp-fs-helper, 11px);
  font-weight: var(--gp-fw-th, 500);
  color: var(--gp-muted, #64748B);
  white-space: nowrap;
}
.annual-table td {
  padding: 4px 8px 4px 0;
  color: var(--gp-text2, #1E293B);
  white-space: nowrap;
}
.annual-table tr.annual-row-voided td {
  color: var(--gp-muted2, #94A3B8);
}
.annual-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 8px;
  border-radius: 999px;
  font-size: var(--gp-fs-helper, 11px);
  font-weight: var(--gp-fw-th, 500);
  white-space: nowrap;
}
.annual-badge.paid { background: #ECFDF3; color: var(--gp-green, #16A34A); }
.annual-badge.partial, .annual-badge.promised { background: #FEF6E7; color: var(--gp-orange, #EA580C); }
.annual-badge.unpaid, .annual-badge.overdue { background: #FEF2F2; color: var(--gp-red, #DC2626); }
.annual-badge.pending { background: #EFF6FF; color: var(--gp-brand, #0B63F6); }
.annual-badge.void, .annual-badge.refunded { background: #F1F5F9; color: var(--gp-muted, #64748B); }
.annual-empty {
  margin: 2px 0 0;
  font-size: var(--gp-fs-helper, 11px);
  color: var(--gp-muted2, #94A3B8);
}

/* ── Annual totals row in Finance/Debts ── */
.annual-totals-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
}
.annual-totals-strip .ledger-stat {
  flex: 1 1 130px;
}

/* ── Compact annual view on the Finance page ── */
#annualFinanceSection {
  margin-top: 14px;
}
#annualFinanceSection .annual-finance-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 10px;
  flex-wrap: wrap;
}
#annualFinanceSection .annual-finance-toolbar select,
#annualFinanceSection .annual-finance-toolbar input {
  height: 32px;
  border: 1px solid var(--gp-border3, #E2E8F0);
  border-radius: var(--gp-radius-sm, 8px);
  background: var(--gp-white, #fff);
  color: var(--gp-text2, #1E293B);
  font-size: var(--gp-fs-btn, 12px);
  padding: 0 10px;
}
#annualFinanceSection .annual-finance-table {
  width: 100%;
  border-collapse: collapse;
}
#annualFinanceSection .annual-finance-table th {
  text-align: left;
  padding: 8px;
  font-size: var(--gp-fs-th, 11px);
  font-weight: var(--gp-fw-th, 500);
  color: var(--gp-muted, #64748B);
  border-bottom: 1px solid var(--gp-border, #E8ECF2);
  white-space: nowrap;
}
#annualFinanceSection .annual-finance-table td {
  padding: 8px;
  border-bottom: 1px solid var(--gp-border2, #EDF0F5);
  color: var(--gp-text2, #1E293B);
  white-space: nowrap;
}

/* ── Annual record dialogs ── */
dialog.annual-dialog {
  border: none;
  border-radius: var(--gp-radius, 12px);
  padding: 0;
  max-width: min(720px, 94vw);
  width: min(720px, 94vw);
  max-height: 88vh;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2);
}
dialog.annual-dialog::backdrop { background: rgba(15, 23, 42, 0.35); }
.annual-dialog-body {
  padding: 18px 20px;
  overflow-y: auto;
  max-height: 86vh;
}
.annual-dialog-body h3 { margin: 0 0 12px; font-size: var(--gp-fs-section, 15px); }
.annual-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}
.annual-form-grid label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: var(--gp-fs-helper, 11px);
  font-weight: var(--gp-fw-th, 500);
  color: var(--gp-text2, #1E293B);
}
.annual-form-grid label.wide { grid-column: 1 / -1; }
.annual-form-grid input, .annual-form-grid select {
  height: 34px;
  border: 1px solid var(--gp-border3, #E2E8F0);
  border-radius: var(--gp-radius-sm, 8px);
  background: var(--gp-white, #fff);
  padding: 0 10px;
  color: var(--gp-text2, #1E293B);
  font-size: var(--gp-fs-body, 12px);
}
.annual-form-grid input:focus, .annual-form-grid select:focus {
  outline: none;
  border-color: var(--gp-brand, #0B63F6);
}
.annual-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}
.annual-dialog-actions button {
  height: 34px;
  padding: 0 16px;
  border-radius: var(--gp-radius-sm, 8px);
  border: 1px solid var(--gp-border3, #E2E8F0);
  background: var(--gp-white, #fff);
  color: var(--gp-text2, #1E293B);
  font-size: var(--gp-fs-btn, 12px);
  font-weight: var(--gp-fw-btn, 500);
  cursor: pointer;
}
.annual-dialog-actions button.primary {
  border-color: var(--gp-brand, #0B63F6);
  background: var(--gp-brand, #0B63F6);
  color: var(--gp-white, #fff);
}
.annual-dialog-actions button.primary:hover { background: var(--gp-brand-hover, #0851D4); }
.annual-error {
  margin-top: 10px;
  min-height: 14px;
  color: var(--gp-red, #DC2626);
  font-size: var(--gp-fs-helper, 11px);
}
.annual-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px 12px;
  margin-bottom: 12px;
}
.annual-detail-grid .annual-kv {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 8px;
  background: var(--gp-bg2, #F8FAFD);
  border-radius: var(--gp-radius-xs, 6px);
}
.annual-detail-grid .annual-kv span {
  font-size: var(--gp-fs-helper, 11px);
  color: var(--gp-muted, #64748B);
}
.annual-detail-grid .annual-kv b {
  font-size: var(--gp-fs-card, 13px);
  color: var(--gp-text, #0F172A);
  font-weight: var(--gp-fw-card, 600);
}
.annual-history-list { margin-top: 8px; }
.annual-history-list h5 {
  margin: 10px 0 4px;
  font-size: var(--gp-fs-th, 11px);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gp-muted, #64748B);
}
.annual-history-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 5px 0;
  border-bottom: 1px solid var(--gp-border2, #EDF0F5);
  font-size: var(--gp-fs-body, 12px);
  color: var(--gp-text2, #1E293B);
}
.annual-history-row .muted { color: var(--gp-muted2, #94A3B8); }
.annual-row-actions {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
}
.annual-row-actions .mini-action {
  height: 24px;
  padding: 0 8px;
  border-radius: var(--gp-radius-xs, 6px);
  font-size: var(--gp-fs-helper, 11px);
}

/* Policy form optional annual block */
.annual-policy-fields {
  margin-top: 12px;
  padding: 12px;
  border: 1px dashed var(--gp-border3, #E2E8F0);
  border-radius: var(--gp-radius-sm, 8px);
  background: var(--gp-bg2, #F8FAFD);
}
.annual-policy-fields legend {
  padding: 0 6px;
  font-size: var(--gp-fs-th, 11px);
  font-weight: var(--gp-fw-th, 500);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--gp-muted, #64748B);
}
/* ── Annual records inside a profile contract card (always visible) ── */
.ppc-annual-inline{margin-top:4px;padding-top:10px;border-top:1px solid #e7edf5}
.ppc-annual-body{display:flex;flex-direction:column;gap:7px}
.ppc-annual-empty{margin:0;padding:10px 12px;border:1px dashed #dbe4f0;border-radius:9px;background:#f8fafd;font-size:12px;color:#64748b;text-align:center}
.ppc-action-group-label{font-size:10px;font-weight:600;color:#64748b;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}

/* ── Contract-card toolbar: the delete button keeps its danger styling
   after moving from the original action row into the unified toolbar ── */
.ppc-annual-toolbar .mini-action.ppc-delete-danger{color:#b3261e;border-color:#f0c4c0}
.ppc-annual-toolbar .mini-action.ppc-delete-danger:hover{background:#fdf3f2;border-color:#e5a9a2;color:#b3261e}

/* ── Annual year detail dialog (annualDetailDialog) ── */
#annualDetailDialog{width:min(1180px,calc(100vw - 48px));max-width:1180px;height:auto;max-height:min(88vh,860px);overflow:hidden}
#annualDetailDialog[open]{display:flex;flex-direction:column}
#annualDetailDialog .ad-header{display:flex;align-items:center;justify-content:space-between;gap:18px;flex:none;padding:14px 16px 12px;border-bottom:1px solid #e7edf5;background:#fff}
#annualDetailDialog .ad-head-main{min-width:0;flex:1}
#annualDetailDialog .ad-head-top{display:flex;align-items:center;gap:10px;min-width:0}
#annualDetailDialog .ad-head-main h3{margin:0;font-size:18px;line-height:1.35;color:#0f172a}
#annualDetailDialog .ad-status-badge{flex:none}
#annualDetailDialog .ad-status-badge.success{background:#ecfdf3;color:#15803d}
#annualDetailDialog .ad-status-badge.warning{background:#fff7e8;color:#b45309}
#annualDetailDialog .ad-status-badge.danger{background:#fef2f2;color:#c5221f}
#annualDetailDialog .ad-status-badge.void{background:#f1f5f9;color:#64748b}
#annualDetailDialog .ad-subtitle{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin-top:5px;font-size:12px;color:#64748b}
#annualDetailDialog .ad-subtitle b{font-weight:500;color:#334155}
#annualDetailDialog .ad-legacy-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border:1px solid #dbe4f0;border-radius:999px;background:#f8fafc;color:#64748b;font-size:11px;line-height:17px;white-space:nowrap}
#annualDetailDialog .ad-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px 16px 16px;background:#fff;overscroll-behavior:contain}
#annualDetailDialog .ad-footer{display:flex;justify-content:flex-end;flex:none;padding:9px 16px;border-top:1px solid #e7edf5;background:#fff}
#annualDetailDialog .ad-footer-close{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 18px;border:1px solid #d7e2ef;border-radius:8px;background:#fff;color:#334155;font-size:12px;cursor:pointer}

#annualDetailDialog .ad-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
#annualDetailDialog .ad-flow-stage{position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid #e3e9f2;border-radius:11px;background:#f8fafd}
#annualDetailDialog .ad-flow-stage:not(:last-child)::after{content:"";position:absolute;z-index:2;right:-8px;top:50%;width:6px;height:6px;border-top:1px solid #94a3b8;border-right:1px solid #94a3b8;transform:translateY(-50%) rotate(45deg);background:#fff}
#annualDetailDialog .ad-flow-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:#eef4ff;color:#1267f4;flex:none}
#annualDetailDialog .ad-flow-copy{min-width:0}
#annualDetailDialog .ad-flow-copy span,#annualDetailDialog .ad-flow-copy em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#64748b;font-style:normal}
#annualDetailDialog .ad-flow-copy b{display:block;margin:2px 0;font-size:14px;color:#0f172a;white-space:nowrap}
#annualDetailDialog .ad-flow-stage.is-success{border-color:#bfe8ce;background:#f5fcf7}
#annualDetailDialog .ad-flow-stage.is-success .ad-flow-icon{background:#dcfce7;color:#15803d}
#annualDetailDialog .ad-flow-stage.is-warning{border-color:#f4d9a3;background:#fffaf0}
#annualDetailDialog .ad-flow-stage.is-warning .ad-flow-icon{background:#fef3c7;color:#b45309}
#annualDetailDialog .ad-flow-stage.is-danger{border-color:#f1c3bf;background:#fff8f7}
#annualDetailDialog .ad-flow-stage.is-danger .ad-flow-icon{background:#fee2e2;color:#c5221f}
#annualDetailDialog .ad-flow-stage.is-neutral .ad-flow-icon{background:#f1f5f9;color:#64748b}

#annualDetailDialog .ad-meta-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin-bottom:8px;border:1px solid #e7edf5;border-radius:10px;background:#fff;overflow:hidden}
#annualDetailDialog .ad-meta-item{min-width:0;padding:7px 10px;border-left:1px solid #edf1f6}
#annualDetailDialog .ad-meta-item:first-child{border-left:0}
#annualDetailDialog .ad-meta-item span,#annualDetailDialog .ad-meta-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#annualDetailDialog .ad-meta-item span{font-size:10px;color:#64748b}
#annualDetailDialog .ad-meta-item b{margin-top:2px;font-size:12px;font-weight:500;color:#1e293b}
#annualDetailDialog .ad-note{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:8px 10px;border-radius:8px;background:#f8fafc;color:#475569;font-size:12px}
#annualDetailDialog .ad-note .bi{margin-top:1px;color:#64748b}
#annualDetailDialog .ad-note span{display:grid;grid-template-columns:auto 1fr;gap:8px;min-width:0}

/* One visual toolbar for 资金操作 / 调整操作. The captions keep the logical
   grouping, every level is flex-wrap:nowrap so the row never splits into two
   lines, and buttons use the unified mini-action height (28px) with readable
   11px text — never 8/9px. Compact labels + the ≤1100px rules below make the
   row fit without horizontal overflow at 1024/1280/1440. */
#annualDetailDialog .annual-detail-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:8px 0;padding:8px 10px;border:1px solid #e7edf5;border-radius:10px;background:#f8fafc}
#annualDetailDialog .ad-action-caption{display:block;flex:0 0 auto;margin:0;font-size:10px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
#annualDetailDialog .ad-action-divider{flex:0 0 1px;align-self:stretch;min-height:26px;background:#dce4ee}
#annualDetailDialog .ad-action-row{display:flex;flex:0 1 auto;flex-wrap:nowrap;align-items:center;gap:3px;min-width:0}
#annualDetailDialog .ad-action-row .mini-action{display:inline-flex;align-items:center;justify-content:center;gap:3px;flex:0 0 auto;min-width:0;height:28px;padding:0 8px;border:1px solid #d7e2f2;border-radius:7px;background:#fff;color:#334155;font-size:11px;line-height:1;cursor:pointer;white-space:nowrap}
#annualDetailDialog .ad-action-row .mini-action .bi{display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1}
#annualDetailDialog .ad-action-row .mini-action:hover{border-color:#93b9e8;background:#f4f8fd;color:#1d4ed8}
#annualDetailDialog .ad-action-row .mini-action.is-active{border-color:#1267f4;background:#eef4ff;color:#1267f4;box-shadow:0 0 0 1px rgba(18,103,244,.08)}
#annualDetailDialog .ad-action-row .mini-action.danger{color:#b3261e;border-color:#f0c4c0}
#annualDetailDialog .ad-action-row .mini-action.danger:hover{background:#fdf3f2;border-color:#e5a9a2;color:#b3261e}
#annualDetailDialog .ad-action-row .mini-action.danger.is-active{border-color:#d1433f;background:#fdf0ef;color:#b3261e;box-shadow:0 0 0 1px rgba(197,34,31,.08)}
#annualDetailDialog .annual-detail-forms:empty{display:none}
#annualDetailDialog .ad-inline-panel{margin:6px 0 10px;padding:10px 12px;border:1px solid #cfe0f7;border-radius:10px;background:#f8fbff}
#annualDetailDialog .ad-inline-panel-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #e2eaf4}
#annualDetailDialog .ad-inline-panel-head h4{margin:0;font-size:14px;color:#1e293b}
#annualDetailDialog .ad-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#annualDetailDialog .ad-form-grid-promise,#annualDetailDialog .ad-transfer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#annualDetailDialog .ad-form-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:11px;color:#64748b}
#annualDetailDialog .ad-form-field>span:first-child{font-weight:500;color:#475569}
#annualDetailDialog .ad-form-field input,#annualDetailDialog .ad-form-field select{width:100%;height:36px;border:1px solid #d7e2ef;border-radius:8px;background:#fff;padding:0 10px;color:#1e293b;box-sizing:border-box}
#annualDetailDialog .ad-form-field .ad-segmented-date{width:100%;height:36px;border:1px solid #d7e2ef;border-radius:8px;background:#fff;padding:0 8px;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;gap:4px;overflow:hidden;white-space:nowrap}
#annualDetailDialog .ad-form-field .ad-segmented-date input{flex:0 0 34px;width:34px;min-width:0;height:28px;padding:0 2px;border:0;border-bottom:1px solid #94a3b8;border-radius:0;text-align:center;background:transparent;font-variant-numeric:tabular-nums}
#annualDetailDialog .ad-form-field .ad-segmented-date input[data-ad-date-part="year"]{flex-basis:52px;width:52px}
#annualDetailDialog .ad-form-field .ad-segmented-date b{flex:0 0 auto;font-weight:400;color:#64748b}
#annualDetailDialog .ad-form-field .ad-date-time-gap{flex:0 0 6px}
#annualDetailDialog .ad-form-field .ad-segmented-date:focus-within{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
#annualDetailDialog .ad-form-wide{grid-column:1/-1}
#annualDetailDialog .ad-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #e2eaf4}
/* Cancel + confirm share one height and size to their content (no fixed
   170px box that long FR/ZH labels would overflow). The cancel button keeps
   the unified secondary style; the confirm is the single primary action. */
#annualDetailDialog .ad-form-actions button{display:inline-flex !important;align-items:center;justify-content:center;flex:0 0 auto;min-width:170px;width:auto;height:32px !important;min-height:32px !important;padding:0 16px !important;border-radius:8px;font-size:12px !important;line-height:1;white-space:nowrap;cursor:pointer}
#annualDetailDialog .ad-form-actions .mini-action{border:1px solid #d7e2ef !important;background:#fff !important;color:#334155 !important}
#annualDetailDialog .ad-form-actions .mini-action:hover{border-color:#93b9e8 !important;background:#f4f8fd !important;color:#1d4ed8 !important}
#annualDetailDialog .ad-form-actions .ad-form-submit{border:1px solid #1267f4 !important;background:#1267f4 !important;color:#fff !important}
#annualDetailDialog .ad-form-actions button.danger{background:#c5221f !important;border-color:#c5221f !important;color:#fff !important}
#annualDetailDialog .ad-delete-warning{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #f1b6b3;border-radius:8px;background:#fff5f4;color:#8f1d1a}
#annualDetailDialog .ad-delete-warning i{margin-top:2px;font-size:16px}
#annualDetailDialog .ad-delete-warning p{margin:3px 0 0;color:#7f312e;font-size:12px;line-height:1.45}
#annualDetailDialog .ad-delete-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
#annualDetailDialog .ad-delete-summary span{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border:1px solid #e1e8f0;border-radius:8px;background:#fff;min-width:0}
#annualDetailDialog .ad-delete-summary small{color:#64748b;font-size:11px}
#annualDetailDialog .ad-delete-summary b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1e293b;font-size:12px}
#annualDetailDialog .ad-delete-grid{margin-top:10px;grid-template-columns:1fr 1fr}
@media(max-width:900px){#annualDetailDialog .ad-delete-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
#annualDetailDialog .ad-method-field{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
#annualDetailDialog .ad-method-field:has(.ad-method-other:not([hidden])){grid-template-columns:repeat(2,minmax(0,1fr))}
#annualDetailDialog .ad-method-other[hidden]{display:none}
#annualDetailDialog .ad-inline-error{min-height:16px;margin-top:7px;color:#b3261e;font-size:12px}
#annualDetailDialog .ad-edit-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}

#annualDetailDialog .ad-transactions{margin-top:10px;border:1px solid #e3e9f2;border-radius:11px;overflow:hidden;background:#fff}
#annualDetailDialog .ad-transactions-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid #e7edf5;background:#f8fafc}
#annualDetailDialog .ad-transactions-title{flex:1 1 auto;min-width:0}
#annualDetailDialog .ad-transactions-head h4{margin:0;font-size:14px;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#annualDetailDialog .ad-transactions-head p{margin:2px 0 0;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#annualDetailDialog .ad-tx-filters{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:4px;min-width:0;white-space:nowrap}
#annualDetailDialog .ad-tx-filter{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;height:28px;padding:0 9px;border:1px solid #dbe4f0;border-radius:999px;background:#fff;color:#475569;font-size:11px;line-height:1;cursor:pointer;white-space:nowrap}
#annualDetailDialog .ad-tx-filter span{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;line-height:1}
#annualDetailDialog .ad-tx-filter.is-active{border-color:#1267f4;background:#eef4ff;color:#1267f4}
#annualDetailDialog .ad-tx-columns,#annualDetailDialog .ad-tx-row{display:grid;grid-template-columns:minmax(150px,1.25fr) 90px 120px 100px minmax(170px,1.25fr) 72px;gap:10px;align-items:center}
#annualDetailDialog .ad-tx-columns{padding:7px 12px;background:#fff;color:#64748b;font-size:11px;border-bottom:1px solid #edf1f6}
#annualDetailDialog .ad-tx-row{min-height:48px;padding:7px 12px;border-bottom:1px solid #edf1f6;font-size:12px;color:#334155}
#annualDetailDialog .ad-tx-row:last-child{border-bottom:0}
#annualDetailDialog .ad-tx-row[hidden]{display:none}
#annualDetailDialog .ad-tx-row.is-archived{opacity:.62;background:#f8fafc}
#annualDetailDialog .ad-tx-main{display:flex;flex-direction:column;min-width:0}
#annualDetailDialog .ad-tx-main b,#annualDetailDialog .ad-tx-main span,#annualDetailDialog .ad-tx-method,#annualDetailDialog .ad-tx-detail span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#annualDetailDialog .ad-tx-date{font-size:11px;color:#64748b}
#annualDetailDialog .ad-tx-amount{font-weight:600;color:#0f172a;white-space:nowrap}
#annualDetailDialog .ad-tx-columns>span:nth-child(2),#annualDetailDialog .ad-tx-amount{text-align:right}
#annualDetailDialog .ad-tx-columns>span:nth-child(4),#annualDetailDialog .ad-tx-status{text-align:center}
#annualDetailDialog .ad-tx-status .ledger-status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
#annualDetailDialog .ad-tx-detail{display:flex;flex-direction:column;min-width:0;font-size:11px;color:#64748b}
#annualDetailDialog .ad-tx-columns>span:last-child{text-align:center}
#annualDetailDialog .ad-tx-action{display:flex;align-items:center;justify-content:center}
#annualDetailDialog .ad-tx-action .mini-action{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 9px;border:1px solid #d7e2ef;border-radius:7px;background:#fff;color:#334155;font-size:11px;cursor:pointer}
#annualDetailDialog .ad-remittance-detail{grid-column:1/-1;margin-top:3px;padding:10px;border:1px solid #dbe4f0;border-radius:8px;background:#f8fafc}
#annualDetailDialog .ad-remittance-detail[hidden]{display:none}
#annualDetailDialog .ad-remittance-detail-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
#annualDetailDialog .ad-remittance-detail-grid span{display:flex;flex-direction:column;gap:3px;min-width:0;color:#475569;font-size:11px}
#annualDetailDialog .ad-remittance-detail-grid b{font-size:10px;color:#64748b}
#annualDetailDialog .ad-remittance-detail-actions{display:flex;justify-content:flex-end;margin-top:9px}
#annualDetailDialog .ad-remit-cancel-host:empty{display:none}
#annualDetailDialog .ad-remit-cancel-form{margin-top:10px;padding-top:10px;border-top:1px solid #e2e8f0}
#annualDetailDialog .ad-tx-empty,#annualDetailDialog .ad-tx-filter-empty{margin:0;padding:24px;text-align:center;color:#94a3b8;font-size:12px}
#annualDetailDialog .ad-tx-empty[hidden],#annualDetailDialog .ad-tx-filter-empty[hidden]{display:none}

@media (max-width:1100px){
  #annualDetailDialog{width:calc(100vw - 32px)}
  #annualDetailDialog .ad-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  #annualDetailDialog .ad-flow-stage::after{display:none}
  #annualDetailDialog .ad-meta-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  #annualDetailDialog .ad-meta-item:nth-child(4){border-left:0;border-top:1px solid #edf1f6}
  #annualDetailDialog .ad-meta-item:nth-child(n+5){border-top:1px solid #edf1f6}
  #annualDetailDialog .ad-transactions-head{align-items:flex-start}
  #annualDetailDialog .annual-detail-actions{gap:4px;padding-inline:8px}
  #annualDetailDialog .ad-action-caption{font-size:10px}
  #annualDetailDialog .ad-action-row{gap:2px}
  /* Compact adaptive — tighter padding, but the text stays readable (11px)
     and icons stay visible; the single row never wraps or scrolls. */
  #annualDetailDialog .ad-action-row .mini-action{height:28px;padding:0 6px !important;font-size:11px}
  #annualDetailDialog .ad-action-row .mini-action .bi{display:inline-flex;font-size:11px}
  #annualDetailDialog .ad-tx-filters{justify-content:flex-end}
  #annualDetailDialog .ad-tx-columns,#annualDetailDialog .ad-tx-row{grid-template-columns:minmax(140px,1.3fr) 82px 105px 90px minmax(135px,1fr) 64px;gap:7px}
  #annualDetailDialog .ad-form-grid,#annualDetailDialog .ad-edit-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}
  #annualDetailDialog .ad-remittance-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ── Compact annual summary inside a profile contract card ──
   One thin line per year (newest → oldest) with thin dividers, plus the
   unified toolbar below: current-year operations | contract operations. */
.ppc-annual-inline .ppc-annual-body{display:flex;flex-direction:column;gap:0}
.ppc-year-line{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px;min-width:0;overflow:hidden;padding:6px 4px;border-top:1px solid #edf1f7;font-size:11px;color:#334155;cursor:pointer}
.ppc-year-line:first-child{border-top:0}
.ppc-year-line:hover{background:#f6f9fd}
.ppc-year-period{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden}
.ppc-year-period b{font-size:13px;color:#0f172a;white-space:nowrap}
.ppc-year-money{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppc-year-money em{font-style:normal;color:#64748b}
/* One visual toolbar: 年度财务 | 合同 — both groups on the same row, labels
   keep the grouping clear, every level is nowrap (no two-line split, no
   horizontal scroll) and buttons share the mini-action height with readable
   11px text. The ≤1220px rules compact padding and drop icons so the FR
   boss set still fits at 1024 without clipping. */
.ppc-annual-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;width:100%;margin-top:8px;padding-top:8px;border-top:1px dashed #e3e9f2;box-sizing:border-box;min-width:0}
.ppc-annual-toolbar .ppc-action-group{display:flex;flex:1 1 auto;flex-wrap:nowrap;align-items:center;gap:5px;min-width:0}
.ppc-annual-toolbar .ppc-action-group-label{flex:0 0 auto;font-size:10px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.ppc-annual-toolbar .ppc-action-buttons{display:flex;flex:1 1 auto;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:3px;min-width:0;white-space:nowrap}
.ppc-annual-toolbar .ppc-action-divider{flex:0 0 1px;align-self:stretch;min-height:24px;margin:0 3px;background:#dce4ee}
.ppc-annual-toolbar .mini-action{display:inline-flex;align-items:center;justify-content:center;gap:3px;flex:0 0 auto;height:28px;padding:0 8px;border:1px solid #d7e2ef;border-radius:6px;background:#fff;color:#334155;font-size:11px;line-height:1;cursor:pointer;white-space:nowrap}
.ppc-annual-toolbar .mini-action .bi{display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1}
@media (max-width:1220px){
  .ppc-annual-toolbar{gap:6px}
  .ppc-annual-toolbar .ppc-action-group{gap:4px}
  .ppc-annual-toolbar .ppc-action-buttons{gap:2px}
  .ppc-annual-toolbar .mini-action{padding:0 6px !important;height:28px;font-size:11px}
  .ppc-annual-toolbar .mini-action .bi{display:none}
}
@media (max-width:1060px){
  .ppc-annual-toolbar .mini-action{padding:0 5px !important}
  .ppc-annual-toolbar .ppc-action-group-label{font-size:10px}
}
.ppc-annual-toolbar .mini-action:hover{border-color:#93b9e8;background:#f4f8fd;color:#1d4ed8}
.ppc-annual-toolbar .mini-action.danger{color:#b3261e;border-color:#f0c4c0}
.ppc-annual-toolbar .mini-action.danger:hover{background:#fdf3f2;border-color:#e5a9a2;color:#b3261e}

/* Promised-payment alert and the final coverage row. */
#profileDialog .ppc-next-payment-alert{display:flex;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;border:1px solid #f0d9a6;border-radius:8px;background:#fffaf0;color:#8a5a00;font-size:12px}
#profileDialog .ppc-next-payment-alert .bi{color:#b45309}
#profileDialog .ppc-next-payment-alert b{font-weight:600;color:#8a5a00}
#profileDialog .ppc-coverage-bottom{order:99;display:flex;align-items:center;min-height:34px;margin-top:8px;padding:7px 11px;border:1px solid #e3e9f2;border-radius:8px;background:#f8fafc;color:#475569;font-size:12px}
#profileDialog .ppc-coverage-bottom span{display:inline-flex;align-items:center;gap:5px;min-width:0}
#profileDialog .ppc-coverage-bottom b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
