:root { --forest:#082e6b; --forest-2:#123f82; --lime:#df1d26; --paper:#f5f6f9; --ink:#102b57; --muted:#667387; --line:#d9e0eb; --white:#ffffff; --warning:#8a431f; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.45 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topbar { position:relative; height:220px; display:flex; align-items:center; justify-content:center; padding:0 clamp(20px,5vw,76px); color:white; background:var(--forest); }
.brand { display:flex; align-items:center; gap:12px; color:inherit; font-size:15px; font-weight:700; text-decoration:none; }.brand-mark{ padding:4px 7px; border:1px solid #84a397; border-radius:5px; font-size:12px; letter-spacing:.08em; }.phase{ color:#c8d5ce; font-size:13px; }
.page-shell { max-width:1280px; margin:auto; padding:58px 24px 66px; }.module-home { padding:22px 24px; margin-bottom:47px; border:1px solid #d8dfd5; border-radius:14px; background:#edf1e6; }.module-home-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:18px; }.module-home-heading h2 { margin:0; font-size:18px; letter-spacing:-.025em; }.module-home-heading > p { margin:0; color:var(--muted); font-size:12px; }.module-grid { display:grid; grid-template-columns:repeat(8,1fr); gap:8px; }.module-card { min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:11px; border:1px solid #d2d9cf; border-radius:8px; color:#77817c; background:#f7f9f3; text-align:center; text-decoration:none; }.module-card > span:not(.module-icon) { width:100%; }.module-card.active { color:var(--forest); border-color:#91aa9d; background:var(--white); box-shadow:0 1px 1px rgba(26,51,42,.08); }.module-card.active:hover { transform:translateY(-1px); }.module-card b,.module-card small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.module-card b { font-size:12px; }.module-card small { margin-top:2px; font-size:10px; font-weight:600; }.module-card i { display:none; font-style:normal; }.module-icon { font-size:18px; }.hero { margin-bottom:32px; max-width:620px; }.eyebrow { margin:0 0 8px; color:#587065; letter-spacing:.12em; font-size:11px; font-weight:800; }.hero h1 { margin:0; font-size:clamp(34px,4.5vw,54px); letter-spacing:-.045em; }.hero p:not(.eyebrow) { max-width:540px; color:var(--muted); font-size:18px; }
.workspace { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr); gap:24px; align-items:start; }.calculator { display:grid; gap:14px; }.card,.results-panel { background:var(--white); border:1px solid var(--line); border-radius:14px; box-shadow:0 2px 2px rgba(28,45,38,.02); }.step-card { padding:27px; }.section-heading { display:flex; gap:14px; margin-bottom:25px; }.step { width:28px; height:28px; display:grid; place-items:center; color:var(--forest); background:var(--lime); border-radius:50%; font-weight:800; }.section-heading h2,.results-panel h2 { margin:0; font-size:20px; letter-spacing:-.02em; }.section-heading p { margin:3px 0 0; color:var(--muted); font-size:13px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.full-width { grid-column:1/-1; } label,fieldset { min-width:0; color:#34463f; font-size:13px; font-weight:700; } label b, legend b { color:#af442f; } input,select { width:100%; min-height:44px; margin-top:6px; padding:0 11px; border:1px solid #c8d0c7; border-radius:7px; background:white; color:var(--ink); font:inherit; font-weight:500; outline:none; } input:focus,select:focus { border-color:var(--forest-2); box-shadow:0 0 0 3px rgba(36,86,74,.13); }.input-unit { position:relative; display:block; }.input-unit input { padding-right:42px; }.input-unit em { position:absolute; right:11px; bottom:12px; color:#68746f; font-size:12px; font-style:normal; font-weight:700; }.geometry-choice { display:flex; flex-wrap:wrap; gap:10px 18px; padding:0; border:0; }.geometry-choice legend { width:100%; margin-bottom:2px; }.choice { display:flex; align-items:center; gap:7px; font-weight:500; }.choice input,.check-field input { width:auto; min-height:0; margin:0; accent-color:var(--forest); }.notice { margin:18px 0 0; padding:10px 12px; border-left:3px solid #ce963a; border-radius:4px; color:var(--warning); background:#fff8e8; font-size:13px; }.notice.soft { margin:0; }.advanced { overflow:hidden; }.advanced summary { display:flex; cursor:pointer; justify-content:space-between; align-items:center; padding:19px 23px; font-weight:800; }.advanced summary span { color:var(--muted); font-size:12px; font-weight:600; }.details-body { padding:4px 24px 24px; border-top:1px solid var(--line); }.field-help { margin:0; color:var(--muted); font-size:12px; font-weight:500; }.compact-grid { margin-top:12px; }.optional-groups { padding:0 24px 6px; border-top:1px solid var(--line); }.toggle-group { padding:18px 0; border-bottom:1px solid var(--line); }.toggle-group:last-child { border:0; }.switch-row { display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; }.switch-row small { display:block; margin-top:2px; color:var(--muted); font-size:12px; font-weight:500; }.switch-row input { position:absolute; opacity:0; pointer-events:none; }.switch-row i { position:relative; flex:0 0 44px; width:44px; height:25px; border-radius:20px; background:#c8d0c7; }.switch-row i:after { content:""; position:absolute; top:3px; left:3px; width:19px; height:19px; border-radius:50%; background:white; transition:.18s; }.switch-row input:checked + i { background:var(--forest); }.switch-row input:checked + i:after { transform:translateX(19px); }.conditional { margin-top:18px; }.check-field { display:flex; align-items:center; gap:8px; padding-top:29px; }.form-error { padding:11px 14px; color:#8f2f28; border:1px solid #e8b7b3; border-radius:8px; background:#fff1f0; font-size:14px; }.calculate-button { display:flex; justify-content:space-between; align-items:center; width:100%; padding:16px 21px; border:0; border-radius:9px; background:var(--forest); color:white; cursor:pointer; font:800 16px inherit; }.calculate-button:hover { background:var(--forest-2); }.calculate-button span { font-size:24px; line-height:16px; }
.results-panel { position:sticky; top:20px; min-height:380px; overflow:hidden; }.empty-results { padding:90px 34px; text-align:center; }.empty-icon { width:45px; height:45px; display:grid; place-items:center; margin:auto auto 13px; border-radius:50%; color:var(--forest); background:#e5ecbb; font-size:27px; }.empty-results h2 { font-size:18px; }.empty-results p { color:var(--muted); font-size:14px; }.result-top { padding:27px 27px 21px; }.result-top h2 { font-size:23px; }.result-top p:last-child { margin:4px 0 0; color:var(--muted); font-size:13px; }.volume-cards { display:grid; grid-template-columns:1fr 1fr; gap:1px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--line); }.volume-cards article { padding:18px 20px; background:var(--white); }.volume-cards .highlight { background:#e9f0bc; }.volume-cards span,.volume-cards small { display:block; color:var(--muted); font-size:11px; font-weight:700; }.volume-cards strong { display:block; margin:2px 0; font-size:23px; letter-spacing:-.05em; }.result-section { padding:22px 27px 0; }.result-section h3 { margin:0 0 10px; font-size:14px; }.material-table { font-size:12px; }.table-head,.material-row { display:grid; grid-template-columns:1.1fr .9fr .9fr; gap:5px; align-items:center; }.table-head { padding:0 0 7px; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; }.material-row { padding:10px 0; border-top:1px solid #e8ebe4; }.material-row span:not(:first-child) { text-align:right; font-weight:700; }.material-row small { display:block; color:var(--muted); font-size:10px; font-weight:500; }.memory ul { margin:0; padding-left:18px; color:#58665f; font-size:12px; }.memory li + li { margin-top:6px; }.warnings { margin:20px 27px 0; }.warnings p { margin:0 0 7px; padding:9px 10px; border-radius:5px; color:#725020; background:#fff7e5; font-size:12px; }.secondary-button { width:calc(100% - 54px); margin:22px 27px 27px; padding:11px; color:var(--forest); border:1px solid #afc2b8; border-radius:7px; background:transparent; cursor:pointer; font:700 13px inherit; } footer { padding:24px; color:#66736c; border-top:1px solid #dce1d8; text-align:center; font-size:12px; }
@media (max-width:900px) { .workspace { grid-template-columns:1fr; }.results-panel { position:static; }.page-shell { padding-top:36px; }.module-grid { grid-template-columns:repeat(4,1fr); } }
.currency input { padding-right:55px; }.currency em { font-size:10px; }.budget { padding-top:24px; }.budget-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }.budget-heading strong { color:var(--forest); font-size:17px; }.budget-rows { border-top:1px solid #e8ebe4; font-size:12px; }.budget-row { display:grid; grid-template-columns:1fr auto; gap:10px; padding:9px 0; border-bottom:1px solid #e8ebe4; }.budget-row span:last-child { font-weight:800; text-align:right; }.budget-row small { display:block; color:var(--muted); font-size:10px; }
.material-combobox { position:relative; }.material-suggestions { position:absolute; z-index:20; top:100%; left:0; right:0; max-height:250px; margin-top:5px; overflow-y:auto; border:1px solid #9cb0d1; border-radius:7px; background:#fff; box-shadow:0 8px 18px rgba(8,46,107,.16); }.material-suggestions button { display:block; width:100%; padding:10px 11px; color:var(--ink); border:0; border-bottom:1px solid #edf0ed; background:#fff; cursor:pointer; font:500 13px inherit; text-align:left; }.material-suggestions button:hover,.material-suggestions button:focus { background:#edf3ff; color:var(--forest); outline:0; }.material-suggestions p { margin:0; padding:10px 11px; color:var(--muted); font-size:12px; font-weight:500; }
.light-combobox { position:relative; }.light-suggestions { position:absolute; z-index:30; top:100%; left:0; right:0; max-height:260px; margin-top:5px; overflow-y:auto; border:1px solid #9cb0d1; border-radius:7px; background:#fff; box-shadow:0 8px 18px rgba(8,46,107,.16); }.light-suggestions button { display:block; width:100%; padding:10px 11px; color:var(--ink); border:0; border-bottom:1px solid #edf0ed; background:#fff; cursor:pointer; font:500 13px inherit; text-align:left; }.light-suggestions button:hover,.light-suggestions button:focus { color:#fff; background:#2368d8; outline:0; }.light-suggestions p { margin:0; padding:10px 11px; color:var(--muted); font-size:12px; font-weight:500; }
.back-link { position:absolute; bottom:18px; left:clamp(20px,5vw,76px); color:#dce8e2; font-size:16px; font-weight:800; text-decoration:none; }.back-link:hover { color:white; }.opening-list { display:grid; gap:8px; margin:16px 0 10px; }.opening-row { display:grid; grid-template-columns:1.1fr 1fr 1fr .65fr 32px; gap:7px; align-items:end; }.opening-row select,.opening-row input { min-height:40px; margin-top:0; }.remove-opening,.add-button { min-height:40px; border:1px solid #b9c8c0; border-radius:7px; color:var(--forest); background:white; cursor:pointer; font-weight:800; }.remove-opening { color:#9a3730; border-color:#dfb8b4; font-size:20px; }.add-button { padding:0 12px; margin-top:2px; font-size:12px; }.no-top-padding { padding-top:0; }
@media (max-width:540px) { .topbar { height:60px; padding:0 17px; }.brand > span:last-child,.phase { display:none; }.page-shell { padding:28px 14px 40px; }.module-home { padding:17px; margin-bottom:30px; }.module-home-heading { align-items:start; margin-bottom:13px; }.module-home-heading > p { display:none; }.module-grid { grid-template-columns:repeat(4,1fr); gap:6px; }.module-card { padding:9px 7px; }.module-card b { font-size:11px; }.module-card small { font-size:9px; }.hero p:not(.eyebrow) { font-size:16px; }.step-card { padding:21px 17px; }.form-grid { grid-template-columns:1fr; gap:14px; }.full-width { grid-column:auto; }.details-body,.optional-groups { padding-left:17px; padding-right:17px; }.advanced summary { padding:17px; }.opening-row { grid-template-columns:1fr 1fr; }.opening-row > * { min-width:0; }.remove-opening { grid-column:2; }.advanced summary { padding:17px; }.result-top,.result-section { padding-left:20px; padding-right:20px; }.warnings { margin-left:20px; margin-right:20px; }.secondary-button { width:calc(100% - 40px); margin-left:20px; margin-right:20px; }.volume-cards strong { font-size:20px; } }
@media print { .topbar,.hero,.calculator,footer,.secondary-button { display:none!important; } body { background:white; }.page-shell { padding:0; }.workspace { display:block; }.results-panel { border:0; box-shadow:none; }.results-panel[hidden] { display:none; } }

/* Identidade visual ALVO */
.brand { position:absolute; top:50%; left:50%; gap:0; transform:translate(-50%,-50%); }
.brand-mark { width:230px; height:130px; padding:0; border:0; border-radius:0; background:url("assets/alvo-logo.jpeg") center 54% / 100% auto no-repeat; font-size:0; }
.brand > span:last-child { display:none; }
.module-home { border-color:#d8dfed; background:#f0f4fb; }
.module-card { border-color:#d2d9e6; background:#f8faff; }
.module-card.active { border-color:#96acd1; box-shadow:0 1px 1px rgba(8,46,107,.08); }
.eyebrow { color:#31558c; }
.step { color:#fff; }
.volume-cards .highlight { background:#fff0f0; }
.material-row.client-row span:not(:first-child) { text-align:left; }
.material-row.stock-row span:not(:first-child),.material-row.movement-row span:not(:first-child) { text-align:left; }
.client-link { padding:0; color:var(--ink); border:0; background:transparent; cursor:pointer; font:800 12px inherit; text-align:left; }.client-link:hover { color:var(--forest-2); text-decoration:underline; }
.client-edit { padding:0; color:var(--forest-2); border:0; background:transparent; cursor:pointer; font:700 10px inherit; text-decoration:underline; }
.project-link { color:var(--ink); font-weight:800; text-decoration:none; }.project-link:hover { color:var(--forest-2); text-decoration:underline; }.ficha-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }.ficha-totals { grid-template-columns:repeat(4,1fr); }.ficha-totals article { min-width:0; }
.home-page #piso,.home-page #piso + .workspace { display:none; }.floor-page .module-home,.floor-page .home-projects { display:none; }.home-projects { padding:25px 27px; margin-bottom:42px; }.home-projects .home-link { position:static; display:inline-flex; align-items:center; min-height:38px; padding:0 13px; border:1px solid #9cb0d1; border-radius:7px; color:var(--forest); background:#fff; font-size:13px; font-weight:800; }.home-projects .home-link:hover { color:#fff; background:var(--forest); }.home-page .module-card { min-height:114px; }.home-page .module-icon { font-size:22px; }.home-project-list { margin-top:18px; border-top:1px solid var(--line); }.home-project-row { display:grid; grid-template-columns:1fr auto 20px; gap:18px; align-items:center; padding:13px 0; color:var(--ink); border-bottom:1px solid #e8ebe4; text-decoration:none; font-size:13px; }.home-project-row:hover b { color:var(--forest-2); text-decoration:underline; }.home-project-row small { display:block; margin-top:2px; color:var(--muted); font-size:11px; font-weight:500; }.home-project-row > span:nth-child(2) { text-align:right; font-weight:700; }.home-project-row i { color:var(--forest); font-style:normal; font-size:18px; }
@media (max-width:540px) { .topbar { height:160px; }.brand-mark { width:180px; height:100px; }.back-link { bottom:14px; left:17px; font-size:14px; } }

/* Padrão de tabelas: números à direita; tabelas operacionais de texto à esquerda. */
.table-head span:not(:first-child) { text-align:right; }
body:has(#clientForm) .table-head span:not(:first-child),body:has(#clientForm) .material-row span:not(:first-child),body:has(#projectForm) .table-head span:not(:first-child),body:has(#projectForm) .material-row span:not(:first-child),body:has(#dailyForm) .table-head span:not(:first-child),body:has(#dailyForm) .material-row span:not(:first-child),body:has(#movementForm) .table-head span:not(:first-child),body:has(#movementForm) .material-row span:not(:first-child) { text-align:left; }
@media (max-width:700px) { .ficha-grid { grid-template-columns:1fr; }.ficha-totals { grid-template-columns:1fr 1fr; } }

.report-button { display:inline-block; margin-top:14px; color:var(--forest); font-size:13px; font-weight:800; text-decoration:none; }.report-button:hover { color:var(--forest-2); text-decoration:underline; }.report-controls { display:grid; grid-template-columns:1fr auto; gap:18px; align-items:end; }.report-controls .calculate-button { width:auto; min-width:250px; }.report-document { width:100%; max-width:none; margin:20px 0 0; padding:42px; border:1px solid var(--line); border-radius:14px; background:#fff; }.report-header { display:flex; align-items:center; gap:28px; padding-bottom:25px; border-bottom:3px solid var(--forest); }.report-logo { width:190px; height:58px; object-fit:cover; object-position:center; }.report-header h1 { margin:0; font-size:32px; }.report-header p:last-child { margin:3px 0 0; color:var(--muted); }.report-section { margin-top:26px; }.report-section h2 { margin:0 0 12px; font-size:17px; }.report-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; border:1px solid var(--line); background:var(--line); }.report-grid div { min-width:0; padding:13px; background:#fff; }.report-grid span,.report-grid b { display:block; }.report-grid span { color:var(--muted); font-size:11px; font-weight:700; }.report-grid b { margin-top:3px; font-size:13px; }.report-list { border-top:1px solid var(--line); }.report-row { display:grid; grid-template-columns:1fr auto; gap:15px; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px; }.report-row small { display:block; margin-top:2px; color:var(--muted); font-size:11px; }.report-row strong { text-align:right; }.report-footer { margin:34px 0 0; padding-top:14px; color:var(--muted); border-top:1px solid var(--line); font-size:11px; }
.schedule-list { display:grid; gap:12px; }.schedule-row { padding:16px; border:1px solid var(--line); border-radius:9px; }.schedule-heading,.schedule-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; }.schedule-heading small { display:block; margin-top:3px; color:var(--muted); font-size:11px; }.stage-edit { padding:0; color:var(--ink); border:0; background:transparent; cursor:pointer; font:800 14px inherit; text-align:left; }.stage-edit:hover { color:var(--forest-2); text-decoration:underline; }.progress-track { height:8px; margin:13px 0; overflow:hidden; border-radius:10px; background:#e2e8f2; }.progress-track i { display:block; height:100%; border-radius:inherit; background:var(--forest); }.schedule-daily { margin:-3px 0 12px; color:var(--muted); font-size:11px; }.schedule-meta { color:var(--muted); font-size:11px; }.schedule-meta .remove-opening { margin-left:auto; }
@media (max-width:700px) { .report-controls { grid-template-columns:1fr; }.report-controls .calculate-button { width:100%; }.report-document { padding:24px 18px; }.report-header { align-items:flex-start; gap:16px; }.report-logo { width:125px; height:45px; }.report-header h1 { font-size:24px; }.report-grid { grid-template-columns:1fr; } }
@media print { .no-print { display:none!important; }.report-document { max-width:none; margin:0; padding:0; border:0; border-radius:0; }.report-header { break-after:avoid; }.report-section { break-inside:avoid; }.report-logo { -webkit-print-color-adjust:exact; print-color-adjust:exact; } }

.schedule-cost { padding:8px 10px; margin:0 0 12px; color:var(--ink); border-radius:6px; background:#f0f4fb; font-size:11px; font-weight:700; }
.profitability-cards { grid-template-columns:repeat(4,1fr); }
@media (max-width:700px) { .profitability-cards { grid-template-columns:1fr 1fr; } }

/* Propostas comerciais */
textarea { width:100%; min-height:44px; margin-top:6px; padding:11px; resize:vertical; border:1px solid #c8d0c7; border-radius:7px; background:#fff; color:var(--ink); font:inherit; font-weight:500; outline:none; } textarea:focus { border-color:var(--forest-2); box-shadow:0 0 0 3px rgba(8,46,107,.13); }
.ficha-actions { display:flex; flex-wrap:wrap; gap:22px; }.proposal-toolbar { display:grid; grid-template-columns:1fr minmax(230px,.7fr) auto auto; gap:14px; align-items:end; margin-top:20px; }.proposal-toolbar h2 { margin:0; font-size:18px; }.proposal-toolbar select { margin:0; }.proposal-toolbar .calculate-button { width:auto; min-width:220px; }.secondary-action { min-height:44px; padding:0 14px; color:var(--forest); border:1px solid #9cb0d1; border-radius:7px; background:#fff; cursor:pointer; font:800 13px inherit; }
.proposal-document { max-width:960px; margin:24px auto 0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }.proposal-cover { display:grid; grid-template-columns:auto 1fr; gap:18px 28px; align-items:center; padding:42px; color:#fff; background:linear-gradient(118deg,#082e6b 0%,#123f82 72%,#df1d26 145%); }.proposal-logo { width:205px; max-height:76px; object-fit:cover; object-position:center; background:#fff; }.proposal-cover p { margin:0; color:#d7e4ff; font-size:12px; font-weight:800; letter-spacing:.12em; }.proposal-cover h1 { margin:4px 0 0; font-size:30px; line-height:1.1; }.proposal-cover-meta { grid-column:1/-1; display:flex; justify-content:space-between; gap:20px; padding-top:18px; border-top:1px solid rgba(255,255,255,.35); font-size:13px; font-weight:700; }.proposal-section { margin:0 42px; padding:26px 0; border-bottom:1px solid var(--line); }.proposal-section h2 { margin:0 0 12px; font-size:18px; }.proposal-section h3 { margin:0 0 6px; font-size:13px; }.proposal-section p { margin:0; color:#334861; font-size:13px; }.proposal-scope { margin:0; padding-left:24px; color:#334861; font-size:13px; }.proposal-scope li+li { margin-top:8px; }.proposal-conditions { display:grid; gap:16px; }.proposal-financial { display:grid; grid-template-columns:1fr 1fr; gap:1px; overflow:hidden; border:1px solid var(--line); background:var(--line); }.proposal-financial div { min-width:0; padding:15px; background:#fff; }.proposal-financial div:last-child { grid-column:1/-1; }.proposal-financial span { display:block; color:var(--muted); font-size:11px; font-weight:800; }.proposal-financial strong { display:block; margin-top:2px; color:var(--forest); font-size:20px; }.proposal-financial p { margin-top:4px; }.proposal-notes { margin-top:15px!important; padding:12px; border-left:3px solid var(--lime); background:#fff4f4; }.proposal-signature { display:flex; justify-content:space-between; align-items:end; gap:30px; border-bottom:0; }.proposal-signature div { min-width:250px; padding-top:35px; border-top:1px solid var(--ink); text-align:center; font-size:12px; }.proposal-signature b,.proposal-signature span { display:block; }.proposal-signature span { margin-top:2px; color:var(--muted); }
@media (max-width:760px) { .proposal-toolbar { grid-template-columns:1fr; }.proposal-toolbar .calculate-button { width:100%; }.proposal-cover { grid-template-columns:1fr; padding:28px 22px; }.proposal-cover-meta { flex-direction:column; gap:4px; }.proposal-section { margin:0 22px; }.proposal-financial { grid-template-columns:1fr; }.proposal-financial div:last-child { grid-column:auto; }.proposal-signature { display:grid; grid-template-columns:1fr; }.proposal-signature div { min-width:0; }.proposal-logo { width:185px; } }
@media print { .proposal-document { max-width:none; margin:0; border:0; border-radius:0; }.proposal-cover { -webkit-print-color-adjust:exact; print-color-adjust:exact; }.proposal-section { break-inside:avoid; } }

/* Medições */
.measurement-totals { grid-template-columns:repeat(3,1fr); }.measurement-table .table-head,.measurement-table .material-row { grid-template-columns:1.4fr .55fr .8fr .85fr 32px; }.measurement-table .material-row span:not(:first-child) { text-align:right; }.measurement-table .material-row span:nth-child(4) { text-align:left; }.measurement-table .remove-opening { min-height:32px; width:32px; }
@media (max-width:700px) { .measurement-totals { grid-template-columns:1fr; }.measurement-table { overflow-x:auto; }.measurement-table .table-head,.measurement-table .material-row { min-width:660px; } }
.measurement-note { padding:14px; color:#334861; border-left:3px solid var(--lime); background:#fff4f4; font-size:13px; }.measurement-approval { display:grid; grid-template-columns:1fr 1fr; gap:50px; padding-top:55px; }.measurement-approval div { padding-top:10px; border-top:1px solid var(--ink); text-align:center; }.measurement-approval span,.measurement-approval b { display:block; font-size:12px; }.measurement-approval span { color:var(--muted); margin-bottom:3px; }
@media (max-width:700px) { .measurement-approval { grid-template-columns:1fr; gap:34px; } }
.receivable-totals { grid-template-columns:repeat(3,1fr); }.receivable-table .table-head,.receivable-table .material-row { grid-template-columns:1.25fr .65fr .75fr .75fr .75fr .75fr; }.receivable-table .material-row span:not(:first-child) { text-align:right; }.receivable-table .material-row span:last-child { text-align:left; }
@media (max-width:700px) { .receivable-totals { grid-template-columns:1fr; }.receivable-table { overflow-x:auto; }.receivable-table .table-head,.receivable-table .material-row { min-width:760px; } }
.row-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; }.table-action { min-height:32px; padding:0 8px; color:var(--forest); border:1px solid #9cb0d1; border-radius:6px; background:#fff; cursor:pointer; font:800 10px inherit; }.row-actions .remove-opening { min-height:32px; width:32px; }
.module-grid[aria-label="Gestão de obras"] .module-card { cursor:grab; }.module-grid[aria-label="Gestão de obras"] .module-card:active { cursor:grabbing; }.module-card.is-dragging { opacity:.45; }.module-card.drag-target { outline:2px dashed var(--forest); outline-offset:2px; }
.area-resource-nav { position:sticky; top:10px; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 24px; padding:12px 16px; border:1px solid #d8dfed; border-radius:10px; background:#f0f4fb; box-shadow:0 4px 12px rgba(8,46,107,.07); }.area-resource-nav > span { color:var(--forest); font-size:11px; font-weight:800; letter-spacing:.1em; }.area-resource-nav > div { display:flex; gap:8px; }.area-resource-nav a { padding:8px 14px; color:var(--forest); border:1px solid #9cb0d1; border-radius:6px; background:#fff; text-decoration:none; font-size:12px; font-weight:800; }.area-resource-nav a.is-current { color:#fff; border-color:var(--forest); background:var(--forest); }
@media (max-width:540px) { .area-resource-nav { align-items:flex-start; flex-direction:column; }.area-resource-nav > div { width:100%; }.area-resource-nav a { flex:1; text-align:center; } }
.area-resource-panel { margin-bottom:30px; }.area-resource-panel .module-home-heading { margin-bottom:16px; }.area-resource-panel .module-grid { grid-template-columns:repeat(4,minmax(140px,1fr)); gap:10px; overflow-x:auto; }.area-resource-panel .module-card { min-height:92px; }.area-resource-panel .module-card.is-current { color:#fff; border-color:#082e6b; background:#123f82; box-shadow:0 5px 12px rgba(8,46,107,.28); }.area-resource-panel .module-card.is-current small { color:#dbe7ff; }
@media (max-width:540px) { .area-resource-panel .module-grid { grid-template-columns:repeat(4,minmax(140px,1fr)); } }
.area-hub-page .page-shell { max-width:1120px; padding-top:68px; }.area-hub-page .hero { max-width:760px; margin:0 auto 36px; text-align:center; }.area-hub-page .hero p:not(.eyebrow) { margin-right:auto; margin-left:auto; }.area-hub-page .module-home { padding:34px 42px 42px; margin:0 auto 48px; border-radius:18px; box-shadow:0 10px 24px rgba(8,46,107,.06); }.area-hub-page .module-home-heading { align-items:center; justify-content:center; margin-bottom:26px; text-align:center; }.area-hub-page .module-home-heading > p { display:none; }.area-hub-page #areaLinks { grid-template-columns:repeat(4,minmax(0,1fr)); justify-content:center; gap:18px; }.area-hub-page #areaLinks .module-card { min-height:150px; padding:20px; border-radius:12px; }.area-hub-page #areaLinks .module-icon { font-size:25px; }.area-hub-page #areaLinks .module-card b { font-size:14px; }.area-hub-page #areaLinks .module-card small { margin-top:5px; font-size:11px; white-space:normal; }
@media (max-width:540px) { .area-hub-page .page-shell { padding-top:40px; }.area-hub-page .module-home { padding:26px 18px; }.area-hub-page #areaLinks { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.area-hub-page #areaLinks .module-card { min-height:132px; padding:16px 10px; } }
.calculation-context { border-color:#b8c9e7; background:#f7faff; }.calculation-context .report-button { margin-top:16px; }.calculation-history { display:grid; gap:10px; margin-top:22px; }.calculation-history-row { display:flex; align-items:start; justify-content:space-between; gap:18px; padding:15px 0; border-top:1px solid var(--line); }.calculation-history-row b,.calculation-history-row small { display:block; }.calculation-history-row small { margin-top:3px; color:var(--muted); font-size:11px; }.calculation-history-row p { margin:7px 0 0; color:#334861; font-size:12px; }
.calculation-save-status { display:flex; align-items:center; gap:10px; margin:18px 0 2px; padding:13px 15px; border:1px solid; border-radius:8px; font-size:13px; font-weight:800; }.calculation-save-status::first-letter { display:grid; place-items:center; }.calculation-save-status.success { color:#17633c; border-color:#9bd2ae; background:#eaf7ee; }.calculation-save-status.warning { color:#945b13; border-color:#eccb91; background:#fff6e5; }.calculation-save-status > span { line-height:1.35; }
