/* Estimativas: extensão visual do portal, sem dependências de framework. */
.estimate-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(170px, .35fr) auto;
    gap: 12px;
    margin-bottom: 18px;
}

.estimate-toolbar input,
.estimate-toolbar select,
.estimate-requirement input:not([type="checkbox"]),
.estimate-requirement select,
.estimate-requirement textarea,
.estimate-suggestion__fields input,
.estimate-suggestion__fields select,
.estimate-item input,
.estimate-item select,
.estimate-item textarea {
    width: 100%;
    background: rgba(10, 15, 4, .6);
    border: 1px solid rgba(233, 226, 211, .14);
    border-radius: 10px;
    color: var(--osso);
    font: inherit;
}
.estimate-toolbar input,
.estimate-toolbar select { min-height: 44px; padding: 0 13px; }
.estimate-item input,
.estimate-item select { min-height: 42px; padding: 0 11px; }
.estimate-requirement input:not([type="checkbox"]),
.estimate-requirement select,
.estimate-suggestion__fields input,
.estimate-suggestion__fields select { min-height: 42px; padding: 0 11px; }
.estimate-requirement textarea { min-height: 70px; padding: 10px 11px; resize: vertical; line-height: 1.45; }
.estimate-item textarea { min-height: 70px; padding: 10px 11px; resize: vertical; line-height: 1.45; }
.estimate-toolbar input:focus,
.estimate-toolbar select:focus,
.estimate-requirement input:focus,
.estimate-requirement select:focus,
.estimate-requirement textarea:focus,
.estimate-suggestion__fields input:focus,
.estimate-suggestion__fields select:focus,
.estimate-item input:focus,
.estimate-item select:focus,
.estimate-item textarea:focus {
    outline: none;
    border-color: var(--lime);
    box-shadow: 0 0 0 3px rgba(200, 245, 64, .12);
}

.estimate-row__total {
    min-width: 140px;
    flex-direction: column;
    align-items: flex-end;
}
.estimate-row__total strong { color: var(--lime); font-size: 16px; }
.estimate-row__total span { color: var(--body-dark); font: 11px 'JetBrains Mono', monospace; }
.estimate-pagination { display: flex; justify-content: center; margin-top: 18px; }

.estimate-statusbar {
    display: flex; align-items: center; flex-wrap: wrap; gap: 9px;
    margin: -18px 0 26px;
}
.estimate-statusbar > span:last-child { color: var(--body-dark); font-size: 12px; }
.estimate-lock-note { margin: -14px 0 26px; }
.estimate-locked { border: 0; padding: 0; margin: 0; min-width: 0; opacity: .72; }

.estimate-workflow {
    list-style: none;
    display: grid; grid-template-columns: repeat(6, 1fr);
    border: 1px solid var(--line); border-radius: var(--radius);
    overflow: hidden; margin-bottom: 40px; background: var(--panel);
}
.estimate-workflow li {
    min-width: 0; padding: 14px 10px;
    border-right: 1px solid var(--line);
    display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: 2px 8px;
    color: var(--body-dark);
}
.estimate-workflow li:last-child { border-right: none; }
.estimate-workflow li > span {
    grid-row: 1 / 3; width: 24px; height: 24px; border-radius: 50%;
    display: grid; place-items: center; border: 1px solid rgba(233,226,211,.22);
    font: 10px 'JetBrains Mono', monospace;
}
.estimate-workflow strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 11.5px; }
.estimate-workflow small { font: 8.5px 'JetBrains Mono', monospace; text-transform: uppercase; opacity: .55; }
.estimate-workflow .is-complete > span { background: rgba(200,245,64,.14); border-color: var(--lime); color: var(--lime); }
.estimate-workflow .is-current { color: var(--osso); background: rgba(200,245,64,.07); }
.estimate-workflow .is-current > span { background: var(--lime); border-color: var(--lime); color: var(--ink); }

.estimate-scope__columns textarea { min-height: 125px; }
.estimate-requirements-editor { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.estimate-notes-editor { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.estimate-notes { display: grid; gap: 12px; }
.estimate-note-editor {
    border: 1px solid var(--line); border-radius: 12px;
    padding: 14px; background: var(--panel);
}
.estimate-note-editor > .field { margin-bottom: 10px; }
.estimate-note-editor .form__actions { justify-content: flex-end; }
.estimate-requirements-editor__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.estimate-requirements-editor__head strong { font-size: 14px; }
.estimate-requirements-editor__head p { color: var(--body-dark); font-size: 12px; margin-top: 4px; }
.estimate-requirements { display: flex; flex-direction: column; gap: 10px; }
.estimate-requirement {
    display: grid; grid-template-columns: auto minmax(220px, 1.2fr) minmax(180px, .8fr) auto;
    align-items: start; gap: 10px; border: 1px solid var(--line);
    border-radius: 12px; padding: 13px; background: var(--panel);
}
.estimate-requirement > input[type="checkbox"] { width: 18px; height: 18px; margin-top: 12px; accent-color: var(--lime); }
.estimate-requirement__content { display: grid; gap: 8px; }
.estimate-requirement__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.estimate-requirement__meta input,
.estimate-requirement__meta select { width: 100%; min-width: 0; }
.estimate-requirement .estimate-mini-field { margin-top: 0; }
.estimate-requirement > .btn-ghost { margin-top: 2px; }

.estimate-items__head {
    display: flex; justify-content: space-between; align-items: center; gap: 14px;
    margin-bottom: 14px;
}
.estimate-items__head .note { flex: 1; }
.estimate-items { display: flex; flex-direction: column; gap: 12px; }
.estimate-item {
    display: grid; gap: 12px;
    border: 1px solid var(--line); border-radius: 14px;
    padding: 16px; background: var(--panel);
}
.estimate-item__main { display: grid; grid-template-columns: minmax(220px, 1fr) 190px; gap: 10px; }
.estimate-item__numbers { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.estimate-item__manual { display: grid; grid-template-columns: minmax(150px, .35fr) 1fr; gap: 10px; }
.estimate-mini-field { min-width: 0; }
.estimate-mini-field > span {
    display: block; margin-bottom: 6px; color: var(--body-dark);
    font: 10px 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .06em;
}
.estimate-item__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.estimate-item__subtotal { color: var(--lime); }
.estimate-items__summary {
    display: flex; justify-content: flex-end; align-items: baseline; gap: 16px;
    padding: 16px 2px 0; color: var(--body-dark); font-size: 13px;
}
.estimate-items__summary strong { color: var(--lime); font-size: 18px; }

.estimate-selection__result { margin-top: 16px; }
.estimate-suggestions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.estimate-suggestion {
    cursor: pointer; display: flex; align-items: flex-start; gap: 12px;
    border: 1px solid var(--line); border-radius: 12px;
    padding: 14px; background: var(--panel);
}
.estimate-suggestion:has(input:checked) { border-color: rgba(200,245,64,.45); background: rgba(200,245,64,.05); }
.estimate-suggestion > input { width: 18px; height: 18px; flex: none; accent-color: var(--lime); margin-top: 2px; }
.estimate-suggestion__copy { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.estimate-suggestion__title { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; font-weight: 700; font-size: 14px; }
.estimate-suggestion__desc { color: var(--body-dark); font-size: 12.5px; line-height: 1.45; }
.estimate-suggestion__meta { color: var(--body-dark); font: 10.5px 'JetBrains Mono', monospace; }
.estimate-suggestion__fields { display: grid; grid-template-columns: 1fr 1fr 100px; gap: 8px; margin-top: 4px; }
.estimate-suggestion__fields select,
.estimate-suggestion__fields input { width: 100%; min-width: 0; }
.estimate-selection-preview ul { margin: 12px 0 0 20px; color: var(--body-dark); font-size: 13px; }

.estimate-toggle {
    display: flex; align-items: flex-start; gap: 12px; cursor: pointer;
    border: 1px solid var(--line); border-radius: 12px; padding: 14px; background: var(--panel);
}
.estimate-toggle > input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--lime); }
.estimate-toggle > span { display: flex; flex-direction: column; gap: 4px; }
.estimate-toggle strong { font-size: 13px; }
.estimate-toggle small { color: var(--body-dark); font-size: 11.5px; line-height: 1.4; }
.estimate-planning-fields,
.estimate-commercial-fields { margin-top: 14px; }
.estimate-weekdays { border: 0; margin-top: 14px; }
.estimate-weekdays legend { margin-bottom: 8px; color: var(--body-dark); font: 10px 'JetBrains Mono', monospace; text-transform: uppercase; }
.estimate-weekdays label { display: inline-flex; align-items: center; gap: 5px; margin: 0 13px 8px 0; font-size: 12px; }
.estimate-weekdays input { accent-color: var(--lime); }
.estimate-visibility { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.estimate-json-editor { font-family: 'JetBrains Mono', monospace; font-size: 12px; tab-size: 2; }

.estimate-totals {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--panel);
}
.estimate-total { padding: 17px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 7px; }
.estimate-total > span { color: var(--body-dark); font: 10.5px 'JetBrains Mono', monospace; text-transform: uppercase; }
.estimate-total > strong { font-size: 16px; }
.estimate-total--grand { background: rgba(200,245,64,.08); }
.estimate-total--grand > strong { color: var(--lime); font-size: 20px; }

.estimate-publication-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; color: var(--body-dark); font-size: 12px; }
.estimate-public-hero {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
    border: 1px solid rgba(200,245,64,.3); border-radius: var(--radius);
    padding: 22px; margin-bottom: 36px; background: rgba(200,245,64,.055);
}
.estimate-public-hero__badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.estimate-public-hero p { max-width: 66ch; color: var(--body-dark); line-height: 1.55; }
.estimate-validity { flex: none; text-align: right; display: flex; flex-direction: column; gap: 5px; }
.estimate-validity span { color: var(--body-dark); font: 10px 'JetBrains Mono', monospace; text-transform: uppercase; }
.estimate-validity strong { color: var(--lime); }

.estimate-read-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.estimate-read-card { border: 1px solid var(--line); border-radius: 12px; padding: 17px; background: var(--panel); }
.estimate-read-card h3 { color: var(--lime); font: 11px 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.estimate-read-card p, .estimate-read-card li { color: var(--body-dark); font-size: 13.5px; line-height: 1.55; }
.estimate-read-card ul { padding-left: 18px; display: grid; gap: 5px; }

.estimate-public-items { display: flex; flex-direction: column; gap: 10px; }
.estimate-public-item {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 18px;
    border-bottom: 1px solid var(--line); padding: 2px 0 14px;
}
.estimate-public-item:last-child { border-bottom: none; }
.estimate-public-item p { margin-top: 6px; color: var(--body-dark); font-size: 13px; line-height: 1.45; }
.estimate-public-item__numbers { flex: none; display: flex; align-items: center; gap: 16px; color: var(--body-dark); font: 11px 'JetBrains Mono', monospace; }
.estimate-public-item__numbers strong { color: var(--lime); font-size: 13px; }

.estimate-plan-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 16px; }
.estimate-plan-facts > div { border: 1px solid var(--line); border-radius: 10px; padding: 13px; display: flex; flex-direction: column; gap: 5px; }
.estimate-plan-facts span { color: var(--body-dark); font-size: 11px; }
.estimate-phase-list { counter-reset: phases; list-style: none; display: grid; gap: 8px; margin: 16px 0; }
.estimate-phase-list li { counter-increment: phases; position: relative; padding: 11px 12px 11px 42px; border-left: 1px solid var(--line); }
.estimate-phase-list li::before { content: counter(phases); position: absolute; left: 10px; color: var(--lime); font: 11px 'JetBrains Mono', monospace; }

.estimate-comments { list-style: none; display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.estimate-comment { max-width: 82%; border: 1px solid var(--line); border-radius: 12px; padding: 13px 15px; background: var(--panel); }
.estimate-comment--client { align-self: flex-end; background: rgba(200,245,64,.05); }
.estimate-comment--nexify { border-left: 2px solid var(--lime); }
.estimate-comment__meta { display: flex; align-items: baseline; gap: 10px; margin-bottom: 7px; }
.estimate-comment__meta strong { font-size: 12px; }
.estimate-comment__meta span { color: var(--body-dark); font: 10px 'JetBrains Mono', monospace; }
.estimate-comment > p { font-size: 13.5px; line-height: 1.55; white-space: pre-wrap; }
.estimate-comment-form { margin-top: 18px; }
.estimate-decision-result { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.estimate-decision-result p { color: var(--body-dark); font-size: 13px; }

.estimate-operations { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.estimate-operation { display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 12px; padding: 15px; background: var(--panel); }
.estimate-operation p { margin-top: 5px; color: var(--body-dark); font-size: 12px; line-height: 1.4; }
.estimate-operation--disabled { opacity: .62; }
.estimate-operation--stack { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; }
.estimate-import-source { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 10px; }
.estimate-operation-status { min-height: 20px; }
.estimate-operation-status .note { margin-top: 8px; }
.estimate-download-ready { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.estimate-import-result ul { margin: 10px 0 0 20px; color: var(--body-dark); font-size: 12px; line-height: 1.5; }
.estimate-import-review-list { display: grid; gap: 12px; margin-top: 16px; }
.estimate-import-review-item { background: rgba(10,15,4,.36); }
.estimate-import-review-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.estimate-import-check { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.estimate-import-check input { width: 18px; height: 18px; min-height: 0; padding: 0; accent-color: var(--lime); }
.estimate-import-check--included { align-self: end; min-height: 42px; color: var(--body-dark); font-size: 12px; }
.estimate-import-conflicts { display: grid; gap: 9px; padding-top: 12px; border-top: 1px solid var(--line); }
.estimate-import-conflict { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.estimate-import-diagnostics { display: grid; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.estimate-import-diagnostic { display: grid; gap: 10px; border: 1px solid rgba(255,190,70,.24); border-radius: 12px; padding: 13px; background: rgba(255,190,70,.04); }
.estimate-import-diagnostic input:not([type="checkbox"]) { width: 100%; min-height: 42px; padding: 0 11px; background: rgba(10,15,4,.6); border: 1px solid rgba(233,226,211,.14); border-radius: 10px; color: var(--osso); }
.estimate-import-diagnostic-preview { margin-top: 14px; color: var(--body-dark); font-size: 12px; }
.estimate-import-diagnostic-preview summary { cursor: pointer; color: var(--osso); }
.estimate-import-actions { position: sticky; bottom: 8px; z-index: 2; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(12,18,6,.96); backdrop-filter: blur(10px); }

.estimate-library-workspace > .block { margin-bottom: 46px; }
.estimate-library-editor { border: 1px solid rgba(200,245,64,.28); border-radius: var(--radius); padding: 20px; margin-bottom: 16px; background: rgba(200,245,64,.035); }
.estimate-library-row .row__side--actions { max-width: 420px; }
.estimate-library-filterbar { display: grid; grid-template-columns: minmax(260px, 1fr) 220px auto; align-items: end; gap: 14px; margin-bottom: 26px; }
.estimate-library-filterbar .field { margin: 0; }
.estimate-library-filter-summary, .estimate-library-section-count { color: var(--body-dark); font: 11px 'JetBrains Mono', monospace; }
.estimate-library-filter-summary { padding-bottom: 14px; white-space: nowrap; }
.estimate-library-editor__head, .estimate-library-inspector__head, .estimate-library-subeditor__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.estimate-library-editor__head > .note { margin: 0; }
.estimate-library-structured { display: grid; gap: 14px; margin: 18px 0 10px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; }
.estimate-library-structured legend { padding: 0 8px; color: var(--lime); font-weight: 700; }
.estimate-library-structured > h4 { margin: 8px 0 -4px; }
.estimate-library-factor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.estimate-library-subeditor { display: grid; gap: 12px; padding-top: 8px; border-top: 1px solid var(--line); }
.estimate-library-repeater { display: grid; gap: 10px; }
.estimate-library-repeater__row { display: grid; align-items: end; gap: 10px; padding: 12px; background: rgba(10,15,4,.35); border: 1px solid var(--line); border-radius: 10px; }
.estimate-library-criteria-row { grid-template-columns: minmax(180px,.65fr) minmax(260px,1.35fr) auto; }
.estimate-library-matrix__row { grid-template-columns: repeat(2,minmax(155px,1fr)) minmax(90px,.45fr) minmax(180px,1fr) auto; }
.estimate-library-repeater__row .field { margin: 0; }
.estimate-library-advanced { margin: 12px 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.estimate-library-advanced summary { cursor: pointer; color: var(--osso); font-weight: 700; }
.estimate-library-advanced[open] summary { margin-bottom: 12px; }
.estimate-library-inspector { display: grid; gap: 16px; margin-bottom: 16px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.estimate-library-inspector h3, .estimate-library-inspector h4 { margin: 0 0 6px; }
.estimate-library-compare-controls { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 12px; }
.estimate-library-compare-controls .field { margin: 0; }
.estimate-library-version-list, .estimate-library-relation-group > ul, .estimate-library-comparison > ul { display: grid; gap: 10px; list-style: none; }
.estimate-library-version-list > li, .estimate-library-relation-group > ul > li, .estimate-library-comparison > ul > li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.estimate-library-version-list strong { margin-right: 8px; }
.estimate-library-relations { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.estimate-library-relation-group > ul > li { align-items: flex-start; }
.estimate-library-relation-group code { display: block; margin-top: 4px; color: var(--body-dark); }
.estimate-library-limitations { color: var(--body-dark); font-size: 12px; }
.estimate-library-limitations ul { margin: 7px 0 0 18px; }
.estimate-library-change__head { display: flex; align-items: center; gap: 8px; }
.estimate-library-comparison > ul > li { display: grid; }
.estimate-library-change__values { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.estimate-library-change__values span { color: var(--body-dark); font-size: 11px; }
.estimate-library-change__values pre { max-height: 220px; overflow: auto; margin-top: 5px; padding: 10px; white-space: pre-wrap; word-break: break-word; background: rgba(10,15,4,.45); border-radius: 8px; font-size: 11px; }
.estimate-library-more { display: flex; justify-content: center; margin-top: 14px; }

@media (max-width: 900px) {
    .estimate-workflow { grid-template-columns: repeat(3, 1fr); }
    .estimate-workflow li:nth-child(3) { border-right: none; }
    .estimate-workflow li:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
    .estimate-item__numbers { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
    .estimate-toolbar { grid-template-columns: 1fr 1fr; }
    .estimate-toolbar .btn-primary { grid-column: 1 / -1; }
    .estimate-suggestions, .estimate-read-grid, .estimate-operations { grid-template-columns: 1fr; }
    .estimate-import-source { grid-template-columns: 1fr; }
    .estimate-import-conflict { grid-template-columns: 1fr; }
    .estimate-page .page__actions { width: 100%; flex-wrap: wrap; }
    .estimate-page .page__actions > button { flex: 1; }
    .estimate-requirement { grid-template-columns: auto 1fr; }
    .estimate-requirement__meta { grid-column: 2; }
    .estimate-requirement > .btn-ghost { grid-column: 2 / -1; justify-self: start; }
    .estimate-suggestion__fields, .estimate-visibility { grid-template-columns: 1fr; }
    .estimate-library-filterbar, .estimate-library-factor-grid, .estimate-library-relations { grid-template-columns: 1fr; }
    .estimate-library-filter-summary { padding: 0; }
    .estimate-library-criteria-row, .estimate-library-matrix__row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
    .estimate-toolbar, .estimate-item__main, .estimate-item__numbers { grid-template-columns: 1fr; }
    .estimate-row__total { width: 100%; align-items: flex-start; }
    .estimate-workflow { grid-template-columns: 1fr 1fr; }
    .estimate-workflow li { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .estimate-workflow li:nth-child(2n) { border-right: none; }
    .estimate-workflow li:nth-last-child(-n+2) { border-bottom: none; }
    .estimate-items__head, .estimate-public-hero, .estimate-public-item { flex-direction: column; }
    .estimate-items__head { align-items: stretch; }
    .estimate-public-item__numbers { width: 100%; justify-content: space-between; }
    .estimate-validity { text-align: left; }
    .estimate-comment { max-width: 100%; }
    .estimate-operation { align-items: flex-start; }
    .estimate-library-row .row__side--actions { max-width: none; }
    .estimate-requirements-editor__head { align-items: flex-start; flex-direction: column; }
    .estimate-requirement { grid-template-columns: auto 1fr; }
    .estimate-requirement__meta, .estimate-item__manual { grid-template-columns: 1fr; }
    .estimate-requirement > .btn-ghost { grid-column: 2; }
    .estimate-library-compare-controls, .estimate-library-change__values,
    .estimate-library-criteria-row, .estimate-library-matrix__row { grid-template-columns: 1fr; }
}
