.op-stages{display:flex;gap:12px;overflow-x:auto;padding:20px 0}.stage-choice{min-width:170px;text-align:left;background:#f7f5ef;border:1px solid #deded4;border-radius:12px;padding:16px;display:grid;gap:12px;cursor:pointer}.stage-choice.selected{border:2px solid var(--accent);background:#fff}.op-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.op-form{display:grid;gap:12px;margin-top:18px}.op-form input,.op-form select{min-width:0;width:100%}.op-delivery{border-top:1px solid #e6e3db;padding:20px 0;overflow-wrap:anywhere}.op-delivery small{display:block;margin:8px 0}.op-error:empty{display:none}.badge.active,.badge.doing,.badge.running{background:#e0f0e6;color:#245b42}.badge.waiting,.badge.pending,.badge.revision{background:#fff0d5;color:#8b5e16}.badge.completed,.badge.accepted,.badge.done{background:#dbeadd;color:#244f32}.badge.rejected{background:#ffe1dd;color:#8c3025}.op-form button:disabled{opacity:.6}.stage-choice small{color:#666}.op-delivery blockquote{white-space:pre-wrap}button:focus-visible{outline:3px solid #357e76;outline-offset:3px}@media(max-width:700px){.stage-choice{min-width:150px}.op-actions button{flex:1}.op-delivery{padding:14px 0}}
@media(min-width:761px){.sidebar{overflow-y:auto}.sidebar>*{flex-shrink:0}}
#cost-form>label{display:flex;flex-direction:column;gap:8px;margin:16px 0}
#cost-form textarea{box-sizing:border-box;width:100%;min-height:90px;padding:12px;border:1px solid #ddd;border-radius:6px;font:inherit;resize:vertical}
#cost-form .form-actions{display:flex;flex-wrap:wrap;gap:10px}
#cost-result dd{margin:6px 0 18px;font-weight:600}
.project-board{display:flex;gap:16px;overflow-x:auto;padding:20px 3px;align-items:flex-start}.board-column{flex:0 0 270px;background:#f5f3ee;padding:14px;border-radius:12px;min-width:0}.board-column h3{margin:0 0 14px}.board-card{display:grid;gap:10px;width:100%;padding:16px;margin-bottom:12px;text-align:left;border:1px solid #deded4;border-radius:8px;background:white;color:inherit;white-space:normal;overflow-wrap:anywhere;cursor:pointer}.board-card small{display:block}.board-card>span:last-child{color:var(--accent)}@media(max-width:700px){.board-column{flex-basis:245px}.project-board{scroll-snap-type:x proximity}.board-column{scroll-snap-align:start}}
.banking-page .form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.banking-page form>label{display:flex;flex-direction:column;gap:8px;margin:16px 0}
.banking-page textarea{box-sizing:border-box;width:100%;min-height:150px;padding:12px;border:1px solid #ddd;border-radius:6px;font:inherit;resize:vertical}
.banking-page fieldset{min-width:0;margin:16px 0;padding:14px;border:1px solid #ddd;border-radius:6px}
.banking-page form>button,.banking-page .op-delivery>button{margin:6px 6px 6px 0;max-width:100%;white-space:normal}
#billing-create,#billing-release{display:grid;gap:16px}
#billing-create label:has(input[type="checkbox"]),#billing-release label:has(input[type="checkbox"]){display:flex;align-items:flex-start;gap:10px;line-height:1.5}
#billing-create input[type="checkbox"],#billing-release input[type="checkbox"]{width:auto;flex:0 0 auto;margin:3px 0}
.cause-form{display:grid;gap:16px;margin:18px 0}
.product-images-panel fieldset{display:grid;gap:16px;border:0;padding:0;min-width:0}
.product-images-panel img{display:block;max-width:100%;max-height:320px;object-fit:contain;margin:12px 0}
.product-images-panel .image-consent{display:flex;gap:10px;align-items:flex-start}
.product-images-panel input[type="checkbox"]{width:auto;flex:0 0 auto}
.memorial-picture{margin:16px 0}.memorial-picture img{display:block;max-width:100%;height:auto;max-height:400px;object-fit:contain;margin:12px 0}.memorial-picture figcaption{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.office-form fieldset{display:grid;gap:16px;border:0;padding:12px 0;min-width:0}.office-form{margin:12px 0}
.recurring-rule fieldset,#recurring-preview fieldset{display:grid;gap:16px;border:0;padding:12px 0;min-width:0}
#overhead-form fieldset{display:grid;gap:16px;border:0;padding:12px 0;min-width:0}
#overhead-form textarea{display:block;box-sizing:border-box;width:100%;min-height:110px;margin-top:8px;padding:12px;border:1px solid #dfe2d9;border-radius:5px;font:inherit;resize:vertical}
#overhead-form textarea:focus-visible{outline:3px solid #df6a2770;outline-offset:3px}
.cost-forecast-breakdown{display:grid;gap:8px;margin:16px 0}.cost-forecast-breakdown>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e7e8e1;padding:8px 0}.cost-forecast-breakdown dt{font-size:13px}.cost-forecast-breakdown dd{margin:0;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.client-reminder-draft{display:block;width:100%;min-height:150px;margin-top:8px;padding:12px;border:1px solid #dfe2d9;border-radius:5px;font:inherit;line-height:1.6;resize:vertical}
#account-password{max-width:540px}#account-password fieldset{border:0;padding:0;min-width:0}#account-password button{white-space:normal;text-align:left}
.chat-textarea{display:block;width:100%;min-height:130px;margin-top:8px;padding:12px;border:1px solid #dfe2d9;border-radius:5px;font:inherit;resize:vertical}.chat-message{padding:14px 0;border-bottom:1px solid #e7e8e1}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere}.chat-message time{white-space:normal}

/* t85: `.stage-setting` e `.stage-template-list` eram da tela antiga de
   Configurações, que foi reconstruída em `configuracoes.css`. Nenhum JS
   aplica mais estas classes: CSS sem dono é a armadilha que já sobrou na
   t80, e some junto com a tela. */
@media(max-width:450px){.cost-forecast-breakdown>div{display:block}.cost-forecast-breakdown dd{text-align:left;margin-top:5px}}
.table-wrap .stage-labor-table{min-width:850px}.stage-labor-table th,.stage-labor-table td{word-break:normal;overflow-wrap:normal}.stage-labor-table td:not(:first-child){white-space:nowrap}
.stage-labor-cards{display:none}.stage-labor-card{border:1px solid var(--line);border-radius:8px;padding:14px}.stage-labor-card h3{margin:0 0 8px}.stage-labor-card dl{margin:12px 0 0}.stage-labor-card dl>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0}.stage-labor-card dt{color:var(--muted)}.stage-labor-card dd{margin:0;text-align:right;font-weight:600}
@media(max-width:600px){.stage-labor-view .table-wrap{display:none}.stage-labor-cards{display:grid;gap:12px;margin-top:14px}}
.stage-labor-card dd{flex-shrink:0;white-space:nowrap;word-break:normal;overflow-wrap:normal}.stage-labor-card dt{word-break:normal;overflow-wrap:normal}
#document-form textarea{display:block;box-sizing:border-box;width:100%;min-height:110px;margin-top:8px;padding:12px;border:1px solid #dfe2d9;border-radius:5px;font:inherit;resize:vertical}
#document-form textarea:focus-visible{outline:3px solid #df6a2770;outline-offset:3px}
#documents-host button{white-space:normal;max-width:100%;margin:6px 8px 6px 0}
#documents-host .op-delivery{overflow-wrap:anywhere}
.project-team-panel{min-width:0;overflow-wrap:anywhere}.project-team-panel h3{margin-top:20px}.project-team-responsible{padding:4px 0 18px;border-bottom:1px solid var(--line)}.project-team-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0;list-style:none}.project-team-list>li{min-width:0;padding:16px;border:1px solid var(--line);border-radius:8px}.project-team-list p{margin:8px 0}.project-team-list details{margin-top:14px}.project-team-form{display:grid;gap:14px;margin-top:16px;min-width:0}.project-team-form label{display:grid;gap:8px;min-width:0}.project-team-form textarea,.project-team-form select{box-sizing:border-box;width:100%;min-width:0;padding:12px;border:1px solid #dfe2d9;border-radius:5px;font:inherit}.project-team-form textarea{resize:vertical}.project-team-form button{max-width:100%;min-height:44px;white-space:normal}.project-team-form [role="alert"]:empty{display:none}.project-team-add,.project-team-history{padding:16px 0}.project-team-history article{border-top:1px solid var(--line);padding:14px 0}.project-team-panel summary{padding:10px 0;cursor:pointer}.project-team-panel summary:focus-visible,.project-team-form textarea:focus-visible,.project-team-form select:focus-visible{outline:3px solid #357e76;outline-offset:3px}
@media(max-width:600px){.project-team-list{grid-template-columns:minmax(0,1fr)}.project-team-form button{width:100%}.project-team-list>li{padding:14px}.project-team-responsible{padding-bottom:14px}}
.office-quebra{overflow-wrap:anywhere}.office-quebra input,.office-quebra select{max-width:100%}
.task-board{display:flex;gap:16px;overflow-x:auto;padding:18px 3px;align-items:flex-start}.task-board .board-column{flex:0 0 280px}.task-card{display:grid;gap:6px;padding:14px;margin-bottom:12px;border:1px solid #deded4;border-radius:8px;background:#fff;overflow-wrap:anywhere}.task-card small{color:var(--muted)}.task-card-block{color:#8b5e16}.task-list .task-card{margin-bottom:10px}.task-card button{justify-self:start;margin-top:4px;max-width:100%;white-space:normal}@media(max-width:700px){.task-board .board-column{flex-basis:250px}.task-board{scroll-snap-type:x proximity}.task-board .board-column{scroll-snap-align:start}}
.task-gantt{min-width:0;overflow-wrap:anywhere}.task-gantt .panel-heading{flex-wrap:wrap}.task-gantt p{font-size:13px}.gantt-coverage{background:#f3f4ef;border-radius:6px;padding:12px;font-weight:600}.gantt-header,.gantt-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:24px}.gantt-header{padding:12px 0;color:#596459;font-size:12px}.gantt-axis{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.gantt-row{padding:18px 0;border-top:1px solid var(--line);font-size:13px}.gantt-task,.gantt-dates{min-width:0}.gantt-dates>strong{font-size:12px}.gantt-track{position:relative;height:24px;margin:12px 0;border-radius:4px;background:repeating-linear-gradient(to right,#f1f2ed 0, #f1f2ed calc(25% - 1px),#d8dcd2 calc(25% - 1px),#d8dcd2 25%)}.gantt-bar{position:absolute;top:5px;height:14px;min-width:1px;max-width:100%;border-radius:3px;background:#526f51;pointer-events:none}.task-gantt details{font-size:12px;margin-top:10px}.task-gantt summary{padding:8px 0;cursor:pointer}.task-gantt summary:focus-visible{outline:3px solid #357e76;outline-offset:3px}.task-gantt dt{color:#596459}.task-gantt dd{margin:5px 0 12px;font-variant-numeric:tabular-nums}.gantt-undated .gantt-dates>strong,.gantt-incomplete .gantt-dates>strong,.gantt-invalid .gantt-dates>strong{display:inline-block;padding:5px 9px;border:1px solid #dddccf;border-radius:5px;color:#705b2c;background:#faf7ee}.gantt-dates p{margin:8px 0 0}
@media(max-width:600px){.gantt-header,.gantt-row{grid-template-columns:minmax(0,1fr);gap:12px}.task-gantt .panel-heading{align-items:flex-start}.gantt-axis{font-size:11px}.gantt-dates{padding-top:4px}.task-gantt summary{min-height:44px}.task-gantt .badge{white-space:normal}}

.task-estimates{min-width:0;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);overflow-wrap:anywhere}.task-estimates dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}.task-estimates dt{color:var(--muted);font-size:11px}.task-estimates dd{margin:7px 0 0;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.task-estimates p{margin-bottom:12px}.task-estimates summary{cursor:pointer;min-height:44px;padding:10px 0}.task-estimates .op-form label{min-width:0}.task-estimates button{white-space:normal;max-width:100%;min-height:44px}.task-estimates summary:focus-visible{outline:3px solid #357e76;outline-offset:3px}
@media(max-width:600px){.task-estimates dl{grid-template-columns:minmax(0,1fr);gap:10px}.task-estimates dl>div{display:flex;justify-content:space-between;gap:12px}.task-estimates dt{max-width:55%}.task-estimates dd{margin:0;text-align:right}.task-estimates button{width:100%}}
.task{min-width:0;overflow-wrap:anywhere}.task-predecessors{min-width:0;margin-top:12px;overflow-wrap:anywhere}.task-predecessors ul{padding-left:20px}.task-predecessors li{margin:8px 0}.task-predecessors li small{display:inline}.task-predecessors-form{min-width:0;margin-top:14px}.task-predecessors-form fieldset{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:6px}.task-predecessors-form legend{font-size:12px;font-weight:600}.predecessor-options{max-height:280px;overflow-y:auto}.predecessor-options .checkbox{min-height:44px;align-items:flex-start;padding:8px 0;margin:0}.predecessor-options .checkbox input{flex:0 0 18px;height:18px;margin:2px 0}.predecessor-options .checkbox span{min-width:0}.task-predecessors button{max-width:100%;min-height:44px;white-space:normal}.task-predecessors p{margin-bottom:12px}
@media(max-width:600px){.task-predecessors .op-actions{display:grid;grid-template-columns:minmax(0,1fr)}.task-predecessors button{width:100%}}
.priority-badge{display:inline-block;justify-self:start;width:fit-content;max-width:100%;padding:4px 9px;border:1px solid #c9c9c2;border-radius:6px;background:#f3f3ef;color:#41413b;font-size:12px;font-weight:600;white-space:normal}.priority-badge[data-priority="2"]{background:#fff0d5;color:#76500d;border-color:#e7c27a}.priority-badge[data-priority="3"]{background:#ffe5de;color:#8c3025;border-color:#e4a99e}.task-priority{min-width:0;margin:10px 0;overflow-wrap:anywhere}.task-priority summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:12px}.task-priority summary:focus-visible{outline:3px solid #357e76;outline-offset:3px}.task-priority-form{display:grid;gap:12px;min-width:0;margin:12px 0}.task-priority-form label{display:grid;gap:6px;min-width:0}.task-priority-form select,.task-priority-form textarea{box-sizing:border-box;min-width:0;max-width:100%;width:100%;padding:10px;border:1px solid var(--line);border-radius:5px;font:inherit}.task-priority-form textarea{resize:vertical;min-height:80px}.task-priority-form button{white-space:normal;max-width:100%;min-height:44px}.task-priority-form .op-actions{margin:0}.task-priority p{margin-bottom:10px}#task-priority-filter{width:100%;max-width:100%;margin-bottom:16px}
@media(max-width:600px){.task-priority-form .op-actions{display:grid;grid-template-columns:minmax(0,1fr)}.task-priority-form button{width:100%}}

/* O título abre a operação existente e o foco identifica o trabalho localizado. */
.task-card .task-open{display:grid;gap:8px;width:100%;min-width:0;max-width:100%;min-height:44px;padding:8px 0;text-align:left;border:0;background:transparent;color:var(--ink);white-space:normal;overflow-wrap:anywhere}.task-open span{font-size:12px;color:var(--accent);text-decoration:underline}.task[data-task-id]{scroll-margin-top:20px}.task[data-task-id]:focus{outline:2px solid var(--accent);outline-offset:6px}

/* t73: a lista de fornecedores virou tabela compacta. Em cartões, 25 registros
   ocupavam 6.749 px; a auditoria de 20/09 mediu 28.498 px quando eram 132 de
   uma vez. Tabela é a densidade certa para cadastro. */
.fo-lista-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fo-busca input{min-inline-size:260px}
.fo-tabela{inline-size:100%;border-collapse:collapse;font-size:13px}
.fo-tabela th,.fo-tabela td{text-align:start;padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.fo-tabela thead th{font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}
.fo-tabela tbody th{font-variant-numeric:tabular-nums;white-space:nowrap}
/* ⚠️ `.tabela-rolagem` NÃO tem regra própria que valha aqui: a única existente
   está presa em `.ar-centro` (arquivos.css). Sem esta classe, a tabela cresce
   até o conteúdo (672px com os nomes reais) e empurra a PÁGINA inteira em
   390px. O transbordo tem que morrer dentro do invólucro. */
.fo-rolagem{overflow-x:auto;min-inline-size:0;contain:layout paint}
@media (max-width:900px){.fo-busca input{min-inline-size:0;inline-size:100%}}
@media (max-width:760px){.fo-tabela{font-size:12px}.fo-tabela th,.fo-tabela td{padding:6px}}
