/* Financial module only; preserve the shared blue theme and technical UI. */
.dm-billing-panel { margin-bottom:20px; }
.dm-billing-panel,.dm-billing-dialog { container-type:inline-size; }
.dm-billing-panel h2,.dm-billing-panel h3,.dm-billing-dialog h2,.dm-billing-dialog h3 { color:var(--text,#eaf1f8); }
.dm-billing-actions { display:flex;flex-wrap:wrap;align-items:center;gap:8px; }
.dm-billing-actions button { white-space:nowrap;min-height:36px; }
.dm-billing-metrics { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:20px 0; }
.dm-billing-metrics>div { padding:16px;border:1px solid rgba(151,177,205,.2);border-radius:12px;background:rgba(32,65,99,.22); }
.dm-billing-metrics small,.dm-billing-table small { display:block;color:var(--muted,#b2c3d5);line-height:1.5; }
.dm-billing-metrics strong { display:block;font-size:1.5rem;margin-top:6px;color:var(--text,#eaf1f8); }
.dm-billing-filters { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px; }
.dm-billing-filters label,.dm-billing-form-grid label { display:grid;gap:6px;color:var(--text,#eaf1f8);min-width:0; }
.dm-billing-filters input,.dm-billing-filters select,.dm-billing-dialog input,.dm-billing-dialog select,.dm-billing-dialog textarea { box-sizing:border-box;width:100%;min-height:42px;background:#0b1b2c;color:#edf3f9;border:1px solid #617a94;border-radius:8px;padding:10px;font:inherit; }
.dm-billing-dialog input::placeholder,.dm-billing-dialog textarea::placeholder { color:#aebfd1;opacity:1; }
.dm-billing-dialog :is(input,select,textarea):focus-visible,.dm-billing-filters :is(input,select):focus-visible { outline:2px solid #328cff;outline-offset:2px; }
.dm-billing-dialog input:disabled { color:#aebfd1;background:#122638;cursor:not-allowed; }
.dm-billing-dialog input:read-only { border-style:dashed; }
.dm-billing-table { width:100%;border-collapse:collapse; }
.dm-billing-table th,.dm-billing-table td { padding:13px 12px;vertical-align:middle;color:#eaf1f8;border-bottom:1px solid rgba(151,177,205,.18);text-align:left; }
.dm-billing-table th { background:#122638;font-size:.8rem;color:#bfd0e2; }
.dm-billing-table td b { display:block; }
.dm-billing-table td:first-child { min-width:140px; }
.dm-billing-table td:nth-child(3),.dm-billing-table td:nth-child(4) { white-space:nowrap; }
.dm-billing-table td:nth-child(2) small { min-width:120px; }
.dm-billing-table tbody tr:hover { background:rgba(50,140,255,.06); }
.dm-billing-badge { display:inline-flex;align-items:center;justify-content:center;gap:6px;max-width:100%;min-height:30px;white-space:nowrap;border:1px solid #53759c;color:#bfdcff;background:#17324e;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:650;line-height:1.35; }
.dm-billing-badge.dm-billing-pending { background:#173c63;border-color:#477eae;color:#c5e4ff; }
.dm-billing-badge.dm-billing-partial { background:#302b52;border-color:#8178b5;color:#e3dcff; }
.dm-billing-badge:is(.dm-billing-paid,.dm-billing-active) { background:#143e32;border-color:#398468;color:#b5f2d3; }
.dm-billing-badge:is(.dm-billing-overdue,.dm-billing-suspended) { background:#462832;border-color:#b26879;color:#ffd4dd; }
.dm-billing-badge:is(.dm-billing-void,.dm-billing-cancelled,.dm-billing-unbilled) { background:#273344;border-color:#64758b;color:#d7e0ea; }
.dm-billing-badge.dm-billing-unbilled .dm-billing-status-label { white-space:normal; }
.dm-billing-status-symbol { flex:0 0 13px;width:13px;text-align:center;line-height:1;font-size:14px; }
.dm-billing-status-label { min-width:0;overflow-wrap:normal;word-break:normal; }
.dm-billing-error { color:#ffd4dd;background:#442631;border:1px solid #a65f70;padding:12px;border-radius:8px;line-height:1.5; }
.dm-billing-dialog { width:min(1050px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow:auto;background:#0b1b2c;color:#eaf1f8;border:1px solid #47617c;border-radius:16px;padding:24px; }
.dm-billing-dialog .dialog-head { gap:18px; }
.dm-billing-dialog .dialog-head p { max-width:75ch;line-height:1.5; }
.dm-billing-dialog .muted { color:#b2c3d5; }
.dm-billing-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.dm-billing-wide,.dm-billing-services { grid-column:1/-1; }
.dm-billing-services { border:1px solid #47617c;border-radius:10px;padding:16px; }
.dm-billing-services label { display:flex;align-items:center;gap:10px;margin:8px 0; }
.dm-billing-services input { width:18px;min-height:18px;accent-color:#328cff;flex-shrink:0; }
.dm-billing-subscriptions { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:16px 0; }
.dm-billing-subscriptions article { padding:16px;border:1px solid #47617c;border-radius:12px; }
.dm-billing-subscriptions article>div { display:flex;justify-content:space-between;gap:12px;align-items:center; }
.dm-billing-subscriptions p { color:#b2c3d5;line-height:1.5; }
.dm-billing-subscription-values { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0; }
.dm-billing-subscription-values dt { color:#b2c3d5;font-size:.8rem;margin-bottom:4px; }
.dm-billing-subscription-values dd { margin:0;color:#eaf1f8;font-weight:650; }
.dm-billing-detail-summary { display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:20px 0; }
.dm-billing-detail-summary strong { font-size:1.8rem; }
.dm-billing-dialog .table-wrap,.dm-billing-panel .table-wrap { overflow-x:auto;max-width:100%; }
.dm-billing-dialog .detail-values dd { color:#eaf1f8;overflow-wrap:anywhere; }
@media(max-width:900px) { .dm-billing-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .dm-billing-panel .section-head { flex-direction:column;align-items:stretch; } }
@media(max-width:1100px) { .dm-billing-metrics>div:last-child { grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px; } .dm-billing-metrics>div:last-child strong { margin:0;white-space:nowrap; } }
@container(max-width:640px) { .dm-billing-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .dm-billing-dialog { padding:16px;width:calc(100vw - 16px); } .dm-billing-form-grid,.dm-billing-filters { grid-template-columns:1fr; } .dm-billing-actions { align-items:stretch; } .dm-billing-metrics { grid-template-columns:1fr 1fr;gap:8px; } .dm-billing-metrics>div { padding:12px; } .dm-billing-metrics strong { font-size:1.15rem; } }

/* One row language for billing and the client directory. Scoped to the
   administrative tables: media controls and technical tables stay unchanged. */
.dm-billing-panel,.dm-billing-dialog,body #view-clients .table-panel { container-name:dm-records;container-type:inline-size; }
body .dm-administrative-table,
body #view-clients .dm-administrative-table { display:table;width:100%;min-width:0;table-layout:fixed;border-collapse:collapse; }
body .dm-administrative-table thead,
body #view-clients .dm-administrative-table thead { display:table-header-group; }
body .dm-administrative-table tbody,
body #view-clients .dm-administrative-table tbody { display:table-row-group; }
body .dm-administrative-table tr,
body #view-clients #clientsTable tr { display:table-row;padding:0;width:auto; }
body .dm-administrative-table :is(th,td),
body #view-clients #clientsTable td { display:table-cell;width:auto;min-width:0;padding:16px 10px;border-bottom:1px solid var(--line,#30455e);color:var(--text,#eaf1f8);vertical-align:middle;font-size:13px;line-height:1.5;white-space:normal;overflow-wrap:anywhere; }
body .dm-administrative-table th { background:#122638;color:#bdcfe3;font-size:11px;letter-spacing:.05em;font-weight:700; }
body .dm-administrative-table th:nth-child(2) { width:130px; }
body .dm-administrative-table th:nth-child(3) { width:180px; }
body .dm-administrative-table th:nth-child(4) { width:130px; }
body .dm-administrative-table th:nth-child(5) { width:130px; }
body .dm-administrative-table th:nth-child(6) { width:250px;text-align:right; }
body #view-clients .dm-administrative-table th:nth-child(2) { width:165px; }
body #view-clients .dm-administrative-table th:nth-child(3) { width:155px; }
body #view-clients .dm-administrative-table th:nth-child(4) { width:340px; }
body #view-clients .dm-administrative-table th:nth-child(5) { width:260px;text-align:right; }
body #view-clients #clientsTable td { padding-block:12px;overflow-wrap:normal;word-break:normal; }
body #view-clients .client-identity { gap:2px; }
body #view-clients .client-plan { overflow-wrap:normal;word-break:normal;font-size:11px;line-height:1.4; }
body #view-clients .client-row-reference .dm-record-code { white-space:nowrap;overflow-wrap:normal;word-break:normal;font-size:11px;font-weight:500; }
body #view-clients .client-row-reference small { margin-top:0; }
body #view-clients .dm-record-dates .dm-record-value { white-space:nowrap;overflow-wrap:normal; }
body #view-clients .client-period-note { display:block;color:#b8cee4;font-size:11px;line-height:1.4;margin-top:7px;white-space:normal;overflow-wrap:normal;word-break:normal; }
body #clientDetailDialog .client-period-note { color:#b8cee4;font-size:12px;line-height:1.4; }
body .dm-administrative-table td::before,
body #view-clients #clientsTable td::before { display:none; }
body .dm-administrative-table td small,
body .dm-administrative-table .client-plan { display:block;min-width:0;margin-top:4px;color:var(--muted,#b2c3d5);font-size:12px;line-height:1.5;letter-spacing:normal;text-transform:none; }
body .dm-administrative-table .dm-record-identity b,
body #view-clients .client-identity b { color:var(--text,#eaf1f8);font-size:14px;font-weight:700;line-height:1.4; }
body #view-clients .client-identity { gap:3px; }
body .dm-administrative-table .dm-record-code { display:block;color:#c4d7ec;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:500;line-height:1.6;overflow-wrap:anywhere; }
body .dm-billing-table.dm-administrative-table .dm-record-reference b { color:#c4d7ec;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:500;line-height:1.6;overflow-wrap:anywhere; }
body .dm-billing-table.dm-administrative-table .dm-record-reference small { min-width:0; }
body .dm-billing-table.dm-administrative-table :is(.dm-record-dates,.dm-record-amounts) { white-space:normal; }
body .dm-administrative-table .dm-record-field { display:grid;gap:1px;margin:0 0 5px;min-width:0; }
body .dm-administrative-table .dm-record-field:last-child { margin-bottom:0; }
body .dm-administrative-table .dm-record-label { color:var(--muted,#b2c3d5);font-size:11px;font-weight:500;white-space:nowrap;overflow-wrap:normal; }
body .dm-administrative-table .dm-record-value { color:var(--text,#eaf1f8);font-size:12px;font-variant-numeric:tabular-nums; }
body .dm-administrative-table .dm-record-dates .dm-record-field { grid-template-columns:62px minmax(0,1fr);gap:6px; }
body .dm-administrative-table .dm-record-dates .dm-record-value { white-space:normal; }
body .dm-administrative-table :is(.client-administration-finance,.client-administration-period) { gap:0; }
body #view-clients .dm-administrative-table :is(.client-administration-finance,.client-administration-period) { gap:0;padding-block:0; }
body .dm-administrative-table .dm-record-amounts .dm-record-field { display:flex;justify-content:space-between;align-items:baseline;flex-wrap:nowrap;gap:1px 8px; }
body .dm-administrative-table .dm-record-amounts .dm-record-value { font-size:14px;font-weight:650;white-space:nowrap; }
body .dm-administrative-table .dm-record-amounts .dm-record-field:last-child .dm-record-value { font-weight:750; }
body .dm-administrative-table .dm-record-state-group { display:flex;align-items:flex-start;gap:12px;flex-wrap:nowrap; }
body .dm-administrative-table .dm-record-state-group>div { display:grid;justify-items:start;gap:5px;min-width:0; }
body .dm-administrative-table .dm-record-state-group small { margin:0;font-size:11px;white-space:nowrap; }
body .dm-administrative-table .dm-record-contract-state { display:grid;justify-items:start;gap:3px; }
body .dm-administrative-table .dm-record-contract-state small { margin:0;font-size:11px; }
body .dm-administrative-table .dm-billing-unbilled,
body .dm-administrative-table .dm-record-contract-state .dm-billing-badge { padding-inline:7px;font-size:11px; }
body .dm-administrative-table .dm-record-state-group .dm-billing-status-label { white-space:nowrap;overflow-wrap:normal; }
body .dm-administrative-table .dm-record-state-group .dm-billing-badge { min-height:32px;align-items:center; }
body .dm-administrative-table .dm-record-state-group .dm-billing-unbilled { max-width:106px; }
body .dm-administrative-table .dm-record-state-group .dm-billing-unbilled .dm-billing-status-label { white-space:normal;overflow-wrap:normal;word-break:normal; }
body .dm-administrative-table .dm-record-action-group,
body #view-clients .dm-record-action-group,
body #view-clients #clientsTable .client-actions-main { display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:6px;padding:0;border:0;width:auto; }
body .dm-administrative-table .dm-record-action-group>button,
body #view-clients #clientsTable .client-actions-main>button { display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;height:40px;min-height:40px;margin:0;padding:8px 10px;font-size:12px;font-weight:650;line-height:1.2;white-space:nowrap; }
body .dm-administrative-table .dm-record-action-group .primary-btn { justify-content:center; }
body :is(#view-billing,.dm-billing-dialog) .dm-billing-actions button.primary-btn:not(:disabled) { background:var(--action,#1765d1) !important;color:#fff !important;border-color:#398dff !important; }
body :is(#view-billing,.dm-billing-dialog) .dm-billing-actions button.primary-btn:hover:not(:disabled) { background:var(--action-hover,#1254b5) !important; }
body :is(#view-billing,#view-clients,.dm-billing-dialog) :is(.dm-record-action-group,.client-actions-main)>button.secondary-btn { background:transparent !important;border-color:#607b98 !important;color:#dce9f8 !important; }
body :is(#view-billing,#view-clients,.dm-billing-dialog) :is(.dm-record-action-group,.client-actions-main)>button.secondary-btn:hover:not(:disabled) { background:#173452 !important;border-color:#8eafcf !important; }
body .dm-administrative-table .dm-record-action-group button:disabled { color:#b4c1d3 !important;background:#26374b !important;border-color:#4e637b !important;opacity:1;cursor:not-allowed; }
body #view-clients #clientsTable .client-row-menu>details>summary { display:flex;align-items:center;justify-content:center;width:36px;height:40px;min-height:40px;margin:0;padding:6px;gap:0;font-size:18px;line-height:1; }
body #view-clients #clientsTable .client-row-menu>details>summary span { display:none; }
body #view-clients .table-panel,
body #view-clients .table-wrap { overflow:visible; }
body .dm-administrative-table .dm-record-action-group :is(button,summary):focus-visible { outline:2px solid #7cb7ff;outline-offset:3px; }
@container dm-records (min-width:1101px) {
  body #view-clients #clientsTable .dm-record-state-group { align-items:center;gap:12px; }
  body #view-clients #clientsTable .dm-record-state-group>div { flex:0 0 auto; }
  body #view-clients #clientsTable .dm-record-state-group .dm-billing-badge { display:inline-flex;align-items:center;height:40px;min-height:40px;padding:5px 10px;line-height:1.2;box-sizing:border-box; }
  body #view-clients #clientsTable .dm-record-state { padding-right:20px; }
  body #view-clients #clientsTable .dm-record-actions { padding-left:16px; }
  body #view-clients #clientsTable :is(.client-actions,.client-actions-main) { gap:8px; }
}
@container dm-records (min-width:861px) and (max-width:1000px) {
  body .dm-administrative-table th:nth-child(2) { width:110px; }
  body .dm-administrative-table th:nth-child(3) { width:140px; }
  body .dm-administrative-table th:nth-child(4),
  body #view-clients .dm-administrative-table th:nth-child(4) { width:255px; }
  body .dm-administrative-table .dm-record-amounts .dm-record-value { font-size:13px; }
  body #view-clients #clientsTable .client-actions-main>button { padding-inline:8px; }
  body #view-clients #clientsTable .client-row-menu>details>summary { width:32px; }
}
@container dm-records (max-width:1100px) {
  body .dm-administrative-table,
  body #view-clients .dm-administrative-table,
  body .dm-administrative-table tbody,
  body #view-clients .dm-administrative-table tbody { display:block;width:100%; }
  body .dm-administrative-table thead,
  body #view-clients .dm-administrative-table thead { display:none; }
  body .dm-administrative-table tr,
  body #view-clients #clientsTable tr { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 20px;width:100%;padding:18px 16px;margin:0 0 12px;border:1px solid #344b65;border-radius:10px;background:#102031; }
  body .dm-administrative-table td,
  body #view-clients #clientsTable td { display:block;width:100%;padding:0;border:0;min-width:0; }
  body .dm-administrative-table td::before,
  body #view-clients #clientsTable td::before { display:block;content:attr(data-label);margin-bottom:7px;color:#b2c3d5;font-size:11px;font-weight:600;letter-spacing:.04em; }
  body .dm-administrative-table .dm-record-identity,
  body .dm-administrative-table .dm-record-reference,
  body .dm-administrative-table .dm-record-actions { grid-column:1/-1; }
  body .dm-administrative-table .dm-record-identity::before,
  body #view-clients #clientsTable .dm-record-identity::before,
  body .dm-administrative-table .dm-record-actions::before,
  body #view-clients #clientsTable .dm-record-actions::before { display:none; }
  body .dm-administrative-table .dm-record-dates .dm-record-field { grid-template-columns:minmax(0,1fr);gap:1px; }
  body .dm-administrative-table .dm-record-state { grid-column:1/-1; }
  body .dm-administrative-table .dm-record-state-group { display:flex;align-items:center;gap:12px;flex-wrap:wrap; }
  body .dm-administrative-table .dm-record-contract-state { display:grid;justify-items:start;gap:5px; }
  body .dm-administrative-table .dm-record-actions,
  body #view-clients #clientsTable .dm-record-actions { padding-top:14px;border-top:1px solid #344b65; }
  body .dm-administrative-table .dm-record-action-group,
  body #view-clients .dm-record-action-group { justify-content:flex-start; }
  body .dm-administrative-table .dm-record-action-group>button,
  body #view-clients #clientsTable .client-actions-main>button { min-height:40px; }
  body #view-clients #clientsTable .client-row-menu>details>summary { min-height:40px; }
}
@container dm-records (min-width:461px) and (max-width:1100px) {
  body .dm-administrative-table .dm-record-identity,
  body .dm-administrative-table .dm-record-reference { grid-column:auto; }
  body .dm-administrative-table .dm-record-dates .dm-record-field { grid-template-columns:62px minmax(0,1fr);gap:6px; }
}
@container dm-records (max-width:380px) {
  body .dm-administrative-table tr,
  body #view-clients #clientsTable tr { gap:14px;padding:14px 10px; }
  body .dm-administrative-table .dm-record-action-group>button,
  body #view-clients #clientsTable .client-actions-main>button { padding-inline:7px;font-size:12px; }
  body #view-clients #clientsTable .client-row-menu>details>summary { width:32px; }
  body .dm-administrative-table .dm-record-contract-state { display:grid;gap:3px; }
  body .dm-administrative-table .dm-record-amounts .dm-record-field { display:grid;justify-content:start;gap:1px; }
}
