/* Контроль затрат П-65 (ui_modules/cost-control.js): лестница прибыли, дерево «договор → этап → раздел»,
   окно разбора, сводка объекта, вкладка настроек. Колонки денег фиксированы, ничего не переносится. */
.cc-muted{color:var(--muted,#64748B);font-size:12px}
.cc-red{color:var(--red,#DC2626);font-weight:600}
.cc-amber{color:#B45309;font-weight:600}
.cc-green{color:var(--green-d,#15803D)}
.cc-block{background:#fff;border:1px solid var(--border,#E2E8F0);border-radius:12px;padding:0 14px;margin-bottom:10px}
.cc-block>summary{display:flex;align-items:center;gap:10px;min-height:40px;cursor:pointer;list-style:none;font-size:13.5px;white-space:nowrap;overflow:hidden}
.cc-block>summary::-webkit-details-marker{display:none}
.cc-block>summary::before{content:'▸';color:var(--muted,#64748B);font-size:11px;transition:transform .15s}
.cc-block[open]>summary::before{transform:rotate(90deg)}
.cc-block>summary .cc-muted{overflow:hidden;text-overflow:ellipsis;min-width:0}
.cc-block[open]{padding-bottom:10px}
.cc-pill{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:var(--ui-font-status,11px);white-space:nowrap;flex:0 0 auto;font-weight:500}
.cc-sig-over{background:var(--red-l,#FEE2E2);color:#B91C1C}
.cc-sig-covered{background:var(--amber-l,#FEF3C7);color:#92400E}
.cc-sig-unplanned{background:#F1F5F9;color:#475569}
.cc-review{background:var(--blue-l,#DBEAFE);color:#1D4ED8}

.cc-ladder{border:1px solid #EEF2F6;border-radius:10px;padding:8px 12px;margin:2px 0 10px;background:#FBFCFE}
.cc-ladder-head{display:flex;align-items:center;gap:10px;min-width:0;font-size:12.5px}
.cc-ladder-note{color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cc-zone{display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap;flex:0 0 auto}
.cc-zone i{width:9px;height:9px;border-radius:50%;background:#16A34A;display:inline-block}
.cc-zone-overhead .cc-zone i,.cc-zone.cc-zone-overhead i{background:#EAB308}
.cc-zone-profit .cc-zone i,.cc-zone.cc-zone-profit i{background:#F97316}
.cc-zone-loss .cc-zone i,.cc-zone.cc-zone-loss i{background:#DC2626}
.cc-zone-no_plan .cc-zone i,.cc-zone.cc-zone-no_plan i{background:#CBD5E1}
.cc-zone-loss{border-color:#FECACA;background:#FFF8F8}
.cc-zone-profit{border-color:#FED7AA;background:#FFFBF5}
.cc-ladder-bar{position:relative;display:flex;height:10px;border-radius:999px;background:#EEF2F6;margin:8px 0 6px}
.cc-ladder-bar i{display:block;height:100%}
.cc-ladder-bar i:first-child{border-radius:999px 0 0 999px}
.cc-ladder-bar i.d,.cc-ladder-legend i.d{background:#2563EB}
.cc-ladder-bar i.o,.cc-ladder-legend i.o{background:#0D9488}
.cc-ladder-bar i.p,.cc-ladder-legend i.p{background:#86EFAC}
.cc-ladder-marker{position:absolute;top:-4px;width:3px;height:18px;margin-left:-1px;border-radius:2px;background:#0F172A}
.cc-ladder-legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:#475569}
.cc-ladder-legend span{white-space:nowrap}
.cc-ladder-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
.cc-ladder-legend b{color:var(--text,#0F172A);font-weight:600}

.cc-tree-wrap{overflow-x:auto}
.cc-tree{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;min-width:620px}
.cc-tree th{font-size:var(--ui-font-table-head,10px);text-transform:uppercase;letter-spacing:.03em;color:var(--muted,#64748B);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--border,#E2E8F0);white-space:nowrap}
.cc-tree th:nth-child(1){width:auto}
.cc-tree th.num{text-align:right}
.cc-tree:not(.cc-object-table):not(.cc-reviews-table) th:nth-child(2),.cc-tree:not(.cc-object-table):not(.cc-reviews-table) th:nth-child(3),.cc-tree:not(.cc-object-table):not(.cc-reviews-table) th:nth-child(5){width:92px}
.cc-tree:not(.cc-object-table):not(.cc-reviews-table) th:nth-child(4){width:86px}
.cc-tree:not(.cc-object-table):not(.cc-reviews-table) th:nth-child(6){width:84px}
.cc-tree:not(.cc-object-table):not(.cc-reviews-table) th:nth-child(7){width:84px}
.cc-tree td{padding:6px 8px;border-bottom:1px solid #F1F5F9;white-space:nowrap;height:20px;vertical-align:middle}
.cc-tree td.num{text-align:right;font-variant-numeric:tabular-nums}
.cc-tree tr.cc-contract td{font-weight:600;background:#F8FAFC}
.cc-tree tr.cc-stage td{font-weight:600}
.cc-tree tbody tr:hover td{background:var(--row-hover,#EDF7F1)}
.cc-name{overflow:hidden}
.cc-name-line{display:flex;align-items:center;gap:6px;min-width:0;padding-left:calc(var(--cc-depth,0) * 16px)}
.cc-name-text{overflow:hidden;text-overflow:ellipsis;min-width:48px;flex:0 1 auto}
.cc-code{color:var(--muted,#64748B);margin-right:6px;font-weight:500}
.cc-review-slot:empty{display:none}
.cc-act{text-align:right}
.cc-review-btn{border:0;background:none;padding:0;font:inherit;font-size:12px;color:var(--green-d,#15803D);font-weight:600;cursor:pointer;opacity:0;transition:opacity .12s}
.cc-review-btn:hover{text-decoration:underline}
.cc-tree tr:hover .cc-review-btn,.cc-review-btn:focus,.cc-tree tr .cc-review-btn.is-needed{opacity:1}
.cc-tree tr:has(.cc-sig-over) .cc-review-btn,.cc-tree tr:has(.cc-sig-covered) .cc-review-btn{opacity:1}
.cc-foot{margin-top:8px;line-height:1.45;white-space:normal}

/* Окно разбора */
.cc-rv-node{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:10px;flex-wrap:wrap}
.cc-rv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.cc-rv-grid>div{border:1px solid #EEF2F6;border-radius:8px;padding:6px 10px;background:#FBFCFE;min-width:0}
.cc-rv-grid span{display:block;font-size:11.5px;color:var(--muted,#64748B)}
.cc-rv-grid b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.cc-rv-hint{font-size:12.5px;color:#475569;line-height:1.45;margin-bottom:12px}
.cc-rv-hint .linklike{border:0;background:none;padding:0;font:inherit;color:var(--green-d,#15803D);font-weight:600;cursor:pointer}
.cc-rv-hint .linklike:hover{text-decoration:underline}
.cc-rv-form{display:flex;flex-wrap:wrap;gap:12px 14px}
.cc-rv-form .cc-rv-owner{width:300px}
.cc-rv-form .cc-rv-due{width:170px}
.cc-rv-form .cc-rv-reason{width:420px;max-width:100%}
.cc-rv-form .cc-rv-wide{flex-basis:100%}
.cc-rv-form textarea{resize:vertical;min-height:56px}
.cc-rv-meta{margin-right:auto}
@media (max-width:640px){
  .cc-block>summary{flex-wrap:wrap;white-space:normal;row-gap:4px;padding:8px 0}
  .cc-block>summary>.cc-muted{display:none}
  .cc-tree:not(.cc-object-table):not(.cc-reviews-table){min-width:740px}
  .cc-tree:not(.cc-object-table):not(.cc-reviews-table) th:nth-child(1){width:190px}
  .cc-tree th:first-child,.cc-tree td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 #EEF2F6}
  .cc-tree tr.cc-contract td:first-child{background:#F8FAFC}
  /* На узком экране метки строки — цветные точки с подсказкой: название раздела остаётся видимым. */
  .cc-name-line .cc-pill{font-size:0;width:8px;height:8px;padding:0;border-radius:50%}
  .cc-name-line .cc-sig-over{background:#DC2626}.cc-name-line .cc-sig-covered{background:#F59E0B}
  .cc-name-line .cc-sig-unplanned{background:#94A3B8}.cc-name-line .cc-review{background:#2563EB}
  .cc-rv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cc-rv-form .cc-rv-owner,.cc-rv-form .cc-rv-reason{width:100%}
  .cc-ladder-note{white-space:normal}
  .cc-ladder-head{flex-wrap:wrap}
}

/* Сводка объекта */
.cc-object{border:1px solid var(--border,#E2E8F0);border-radius:12px;padding:10px 14px;margin-bottom:12px;background:#fff}
.cc-object-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:13.5px;flex-wrap:wrap}
.cc-object-table{min-width:560px}
.cc-object-table th:nth-child(1){width:150px}
.cc-object-table th:nth-child(n+2):nth-child(-n+5){width:104px}
.cc-object-table th:nth-child(6){width:180px}
.cc-object-table tfoot td{font-weight:600;border-top:1px solid var(--border,#E2E8F0);padding:6px 8px;white-space:nowrap}
.cc-object-table tfoot td.num{text-align:right}

/* Вкладка «Настройки → Контроль затрат» */
.cc-settings{display:flex;flex-direction:column;gap:12px;max-width:980px}
.cc-settings-card{background:#fff;border:1px solid var(--border,#E2E8F0);border-radius:12px;padding:12px 16px}
.cc-settings-card h4{margin:0 0 4px;font-size:14px}
.cc-settings-card>p{margin:0 0 10px;font-size:12.5px;color:#475569;line-height:1.45}
.cc-tol-table{border-collapse:collapse;font-size:13px;width:auto}
.cc-tol-table th{font-size:var(--ui-font-table-head,10px);text-transform:uppercase;color:var(--muted,#64748B);text-align:left;padding:4px 10px 6px 0;font-weight:600}
.cc-tol-table td{padding:4px 10px 4px 0;white-space:nowrap}
.cc-settings input[type=number],.cc-settings input[type=text]:not(.search-select-input),.cc-settings select{height:34px;padding:0 10px;border:1px solid var(--border,#E2E8F0);border-radius:var(--ui-radius-control,8px);font:inherit;font-size:var(--ui-font-control,13px);background:#fff;color:var(--text,#0F172A)}
.cc-settings input:focus,.cc-settings select:focus{outline:none;border-color:var(--green,#16A34A);box-shadow:0 0 0 3px var(--green-l,#DCFCE7)}
.cc-tol-table input{width:120px;text-align:right}
.cc-settings-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:13px}
.cc-settings-row input[type=text]:not(.search-select-input),.cc-settings-row input[type=number]{width:140px}
.cc-settings-row select{width:320px}
.cc-settings-row .search-select{width:320px;flex:0 0 320px;max-width:100%}
.cc-users{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px}
.cc-users label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.cc-reviews-table{min-width:560px;margin-top:10px}
.cc-reviews-table th:nth-child(1){width:96px}.cc-reviews-table th:nth-child(3){width:170px}
.cc-reviews-table th:nth-child(4){width:100px}.cc-reviews-table th:nth-child(5){width:110px}
.cc-settings-foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.cc-settings-foot .cc-muted{margin-right:auto}
