/* Client finance only: existing CRM palette, 8px grid, familiar controls. */
.cf-page { min-width:0; max-width:100%; padding:24px; font-size:16px; line-height:1.5; color:var(--text); }
.cf-page *, .cf-child-select { box-sizing:border-box; }
.cf-page h2 { margin:0; font-size:28px; font-weight:600; letter-spacing:normal; }
.cf-page h3 { margin:0 0 8px; font-size:20px; font-weight:600; letter-spacing:normal; }
.cf-page h3 small { font-size:14px; font-weight:400; color:var(--text-secondary); margin-left:8px; }
.cf-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.cf-heading p { margin:0; color:var(--text-secondary); }
.cf-page .cf-block { margin:16px 0 0; padding:16px 0 0; border-top:1px solid var(--border); min-width:0; }
.cf-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:8px 0; }
.cf-metric { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:16px 8px; min-width:0; border:1px solid var(--border); border-radius:16px; background:var(--surface-secondary); text-align:center; }
.cf-metric dt { font-size:14px; color:var(--text-secondary); font-weight:400; }
.cf-metric dd { font-size:28px; font-weight:600; margin:0; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.cf-metric small { display:block; font-size:12px; font-weight:400; }
.cf-period-summary { grid-template-columns:repeat(5,minmax(0,1fr)); }
.cf-period-summary dd { font-size:20px; }
.cf-terms { display:flex; gap:8px 24px; flex-wrap:wrap; font-size:14px; }
.cf-terms > span { display:block; }
.cf-terms strong { font-weight:600; }
.cf-page details { margin-top:8px; }
.cf-page summary { min-height:44px; padding:8px 0; cursor:pointer; font-size:14px; font-weight:600; }
.cf-filters { display:flex; align-items:flex-end; flex-wrap:wrap; gap:8px 16px; }
.cf-page label, .cf-child-select { display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:500; min-width:0; }
.cf-page input,.cf-page select,.cf-child-select select { width:100%; min-width:0; min-height:44px; border:1px solid var(--border); background:var(--card,#fff); color:var(--text); padding:8px; border-radius:12px; font:inherit; }
.cf-filters label { flex:1 1 160px; }
.cf-caption,.cf-all-time { margin:8px 0; color:var(--text-secondary); font-size:14px; }
.cf-all-time { padding-top:8px; border-top:1px solid var(--border); }
.cf-page .cf-notice { font-size:14px; padding:8px 16px; border-left:4px solid var(--warning); background:var(--surface-secondary); }
.cf-journal-tools { display:flex; gap:16px; margin:8px 0 16px; }
.cf-journal-tools label:first-child { flex:1; }
.cf-table-wrap { max-width:100%; }
.cf-table { border-collapse:collapse; width:100%; table-layout:fixed; font-size:14px; }
.cf-table th { background:var(--surface-secondary); color:var(--text-secondary); font-size:12px; font-weight:600; text-align:left; }
.cf-table th:nth-child(1) { width:14%; }.cf-table th:nth-child(2) { width:23%; }.cf-table th:nth-child(3) { width:27%; }.cf-table th:nth-child(4) { width:20%; }.cf-table th:nth-child(5) { width:16%; }
.cf-table td,.cf-table th { padding:16px 8px; border-bottom:1px solid var(--border); vertical-align:top; overflow-wrap:anywhere; font-weight:400; }
.cf-table strong { font-weight:600; font-variant-numeric:tabular-nums; }
.cf-table small { display:block; color:var(--text-secondary); font-size:12px; font-weight:400; }
.cf-row-toggle { display:block; border:0; border-radius:0; background:transparent; box-shadow:none; padding:0; min-height:44px; color:var(--text); text-align:left; font:inherit; font-weight:500; cursor:pointer; width:100%; }
.cf-row-toggle small { color:var(--primary); }
.cf-status { display:block; font-size:12px; }
.cf-details { padding:16px; background:var(--surface-secondary); border-radius:12px; }
.cf-details dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0; }
.cf-details dt { font-size:12px; color:var(--text-secondary); }.cf-details dd { margin:0; }
.cf-details p { margin:8px 0; }
.cf-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.cf-page [hidden] { display:none!important; }
.cf-page button:focus-visible,.cf-page a:focus-visible,.cf-page summary:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.cf-page .primary-link,.cf-page .secondary-link,.cf-page .danger-button { min-height:44px; white-space:normal; text-align:center; box-shadow:none; max-width:100%; }
.cf-page [data-cf-more] { margin-top:16px; }
.cf-empty { margin:16px 0; font-size:14px; }
.cf-settings { padding:16px; border:1px solid var(--border); border-radius:16px; }
.cf-settings .client-profile-card { padding:16px; margin:0 0 16px; box-shadow:none; }
.cf-settings .form-subgrid { min-width:0; }
.cf-settings .checkbox-row { display:flex; flex-direction:row; align-items:center; gap:8px; }
.cf-settings .checkbox-row input { min-height:24px; width:24px; }
.cf-child-select { margin-bottom:16px; max-width:480px; }
@media(max-width:900px) { .cf-period-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) {
 .cf-page { padding:16px; }.cf-heading { align-items:flex-start; }.cf-heading h2 { font-size:24px; }
 .cf-page h3 { font-size:20px; }.cf-summary { grid-template-columns:1fr; gap:8px; }
 .cf-metric { flex-direction:row; justify-content:space-between; text-align:left; gap:16px; padding:16px; }.cf-metric dd { font-size:24px; text-align:right; }
 .cf-period-summary .cf-metric dd { font-size:20px; }.cf-metric dt { max-width:55%; }
 .cf-page h3 small { display:block; margin-left:0; }.cf-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 8px; }
 .cf-filters label { min-width:0; }.cf-filters label:first-child { grid-column:1/-1; }
 .cf-journal-tools { flex-direction:column; gap:8px; }.cf-table thead { display:none; }
 .cf-table,.cf-table tbody,.cf-table tr,.cf-table td { display:block; width:100%; }
 .cf-table tr:not([data-cf-detail-row]) { margin:0 0 16px; padding:8px; border:1px solid var(--border); border-radius:16px; }
 .cf-table td { border:0; padding:8px; }.cf-table td[data-label] { display:grid; grid-template-columns:88px minmax(0,1fr); gap:0 8px; }
 .cf-table td[data-label]::before { content:attr(data-label); color:var(--text-secondary); font-size:12px; grid-column:1; grid-row:1/4; padding-top:4px; }
 .cf-table td[data-label] > * { grid-column:2; }.cf-table .cf-row-toggle { min-height:44px; }
 .cf-table td[data-label="Назначение"] { display:block; padding-left:104px; position:relative; }.cf-table td[data-label="Назначение"]::before { position:absolute; left:8px; top:8px; }
 .cf-details { padding:8px; }.cf-details dl { grid-template-columns:1fr; }.cf-settings { padding:8px; }
 .cf-settings .client-profile-overview-grid { grid-template-columns:1fr; }.cf-settings .form-subgrid { display:flex; flex-direction:column; }
}

.cf-page select,.cf-child-select select { appearance:none; -webkit-appearance:none; padding-right:32px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2367756e' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-size:16px; background-position:right 8px center; }

.cf-terms > [data-cf-coverage] { flex-basis:100%; margin-top:0; }
.cf-bonus-history { padding-left:20px; font-size:14px; overflow-wrap:anywhere; }
.cf-bonus-history li { margin:8px 0; }

.cf-pagination { align-items:center; }
.cf-pagination [data-cf-more] { margin-top:0; }

.client-profile-facts251 { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:16px 24px; border:1px solid var(--border); border-radius:16px; padding:16px; }
.client-profile-facts251 > div { flex:1 1 180px; display:flex; flex-direction:column; gap:8px; }
.client-profile-facts251 span { color:var(--text-secondary); font-size:14px; }
.client-profile-facts251 strong { font-size:16px; font-weight:600; }
.cf-page .negative-balance dd { color:var(--danger,#b42318); }
.cf-page .positive-balance dd { color:var(--success,#207540); }
.cf-page .client-manager-tariffs { padding:16px; box-shadow:none; }
@media(max-width:600px) { .cf-table td[data-label] > span { overflow-wrap:anywhere; } .cf-table td[data-label="Назначение"] { display:grid; padding:8px; } .cf-table td[data-label="Назначение"]::before { position:static; } }
