
:root {
  --site-primary: #292929;
  --site-on-primary: #FFFFFF;
  --site-secondary: #F8E7E8;
  --site-on-secondary: #9F1722;
  --site-background: #F5F5F5;
  --site-on-background: #252525;
  --site-font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --site-font-heading: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --site-heading-scale: 1;
  --site-spacing-scale: 1;
  --site-radius-scale: 1;
  --site-decoration-opacity: 1;
  color-scheme: light;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: var(--site-font-body); background: var(--site-background); color: var(--site-on-background); }
#app { min-height: 100vh; width: 100%; border-radius: 0; background-color: light-dark(var(--site-background), #111A22); color: light-dark(var(--site-on-background), #E9F0F5); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.shell { display: grid; grid-template-columns: 238px minmax(0, 1fr); min-height: 100vh; }
aside { background: var(--site-primary); color: var(--site-on-primary); padding: calc(22px * var(--site-spacing-scale)) 14px; display: flex; flex-direction: column; gap: 24px; }
.brand { display: flex; gap: 11px; align-items: center; padding: 0 9px; }
.brand-mark { width: 38px; height: 38px; border-radius: 12px; background: rgba(255,255,255,.14); display:grid; place-items:center; font-weight: 800; letter-spacing: -1px; }
.brand-name { font-weight: 750; line-height: 1.15; }
.brand-sub { font-size: 11px; opacity: .7; margin-top: 4px; }
.nav-label { font-size: 10px; text-transform: uppercase; letter-spacing: 1.4px; opacity: .65; padding: 0 12px; margin-bottom: 7px; }
.nav { display: grid; gap: 5px; }
.nav button { border: 0; background: transparent; color: inherit; display: flex; align-items: center; gap: 12px; text-align: left; padding: 11px 12px; border-radius: 10px; font-size: 13px; opacity: .82; }
.nav button.active, .nav button:hover { background: rgba(255,255,255,.14); opacity: 1; }
.nav .ico { width: 20px; text-align: center; font-size: 16px; }
.side-note { margin-top: auto; padding: 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.06); font-size: 12px; line-height: 1.5; }
.side-note strong { display:block; margin-bottom:5px; }
main { min-width: 0; }
.topbar { display:flex; justify-content:space-between; align-items:center; padding: 18px clamp(18px,3vw,36px); border-bottom: 1px solid light-dark(#DCE5EB,#2C3A46); background: light-dark(#FFFFFF,#17232D); gap: 15px; }
.breadcrumb { color: light-dark(#647583,#A5B4C0); font-size: 12px; }
.top-right { display:flex; align-items:center; gap: 12px; }
.icon-button { border:1px solid light-dark(#DCE5EB,#334552); background:transparent; color:inherit; border-radius:10px; padding:9px 11px; }
.user-chip { display:flex; gap:9px; align-items:center; font-size:12px; }
.avatar { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--site-secondary); color:var(--site-on-secondary); font-weight:750; }
.content { padding: clamp(18px,3vw,34px); max-width: 1500px; margin: 0 auto; }
.page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:24px; }
h1 { font-family:var(--site-font-heading); font-size:calc(27px * var(--site-heading-scale)); margin:0 0 7px; letter-spacing:-.8px; }
h2 { font-size:calc(18px * var(--site-heading-scale)); margin:0; letter-spacing:-.3px; }
h3 { font-size:14px; margin:0; }
.sub { color:light-dark(#687985,#A9B7C2); font-size:13px; line-height:1.5; }
.primary { border:0; background:var(--site-primary); color:var(--site-on-primary); border-radius:10px; padding:11px 15px; font-size:13px; font-weight:700; box-shadow:0 3px 8px rgba(21,59,91,.12); }
.primary:hover { filter:brightness(1.12); }
.secondary { border:1px solid light-dark(#D6E0E7,#3A4A56); background:light-dark(#FFFFFF,#1A2934); color:inherit; border-radius:9px; padding:9px 12px; font-size:12px; font-weight:650; }
.danger { color:#B93838 !important; }
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.stat, .panel { background:light-dark(#FFFFFF,#17232D); border:1px solid light-dark(#E0E7EC,#2B3B47); border-radius:calc(15px * var(--site-radius-scale)); }
.stat { padding:18px; }
.stat-top { display:flex; align-items:center; justify-content:space-between; gap:8px; color:light-dark(#61717D,#A9B7C2); font-size:12px; }
.stat-icon { width:32px; height:32px; border-radius:10px; display:grid; place-items:center; background:var(--site-secondary); color:var(--site-on-secondary); font-size:16px; }
.stat-number { font-size:29px; font-weight:780; letter-spacing:-1px; margin:13px 0 5px; }
.stat-foot { color:light-dark(#74838D,#9BAAB5); font-size:11px; }
.layout-two { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr); gap:18px; }
.panel { padding:19px; min-width:0; }
.panel-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:17px; }
.panel-head .sub { margin-top:5px; }
.list { display:grid; gap:0; }
.task-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:14px 0; border-top:1px solid light-dark(#EDF1F4,#2A3945); }
.task-row:first-child { border-top:0; padding-top:0; }
.task-title { font-size:13px; font-weight:700; margin-bottom:6px; }
.task-meta { display:flex; flex-wrap:wrap; gap:7px 12px; font-size:11px; color:light-dark(#6E7D88,#A5B2BD); }
.pill { display:inline-flex; align-items:center; gap:5px; border-radius:20px; padding:5px 8px; font-size:10px; font-weight:750; white-space:nowrap; background:light-dark(#EEF2F5,#283742); color:light-dark(#51616D,#C3CED6); }
.pill.red { background:light-dark(#FCE8E8,#48282B); color:light-dark(#A42D32,#FFB4B4); }
.pill.amber { background:light-dark(#FFF1D9,#493921); color:light-dark(#875B10,#FFD38A); }
.pill.green { background:light-dark(#E1F5EA,#1D3E31); color:light-dark(#23744C,#9AE0B9); }
.pill.blue { background:light-dark(#E3EFFA,#203A50); color:light-dark(#285C88,#A7D4FF); }
.progress { height:6px; border-radius:9px; background:light-dark(#E8EDF1,#2A3A46); overflow:hidden; margin-top:10px; }
.progress span { display:block; height:100%; background:#3F8A78; border-radius:9px; }
.empty { text-align:center; padding:30px 12px; color:light-dark(#6B7A86,#A5B4C0); font-size:13px; }
.pending-item { display:flex; gap:11px; padding:12px 0; border-top:1px solid light-dark(#EDF1F4,#2A3945); }
.pending-item:first-of-type { border-top:0; }
.pending-dot { width:9px; height:9px; border-radius:50%; background:#D99135; margin-top:4px; flex:none; }
.pending-name { font-size:12px; font-weight:700; margin-bottom:4px; }
.pending-desc { font-size:11px; color:light-dark(#6D7B87,#A5B4C0); line-height:1.5; }
.toolbar { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:16px; }
.field { display:grid; gap:6px; min-width:0; }
.field label { font-size:11px; font-weight:750; color:light-dark(#52636F,#C0CCD4); }
.field input, .field select, .field textarea { width:100%; min-width:0; padding:10px 11px; border:1px solid light-dark(#D9E2E8,#3B4B57); background:light-dark(#FFFFFF,#14212B); color:inherit; border-radius:9px; outline:none; font-size:12px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:#5383A7; box-shadow:0 0 0 3px rgba(83,131,167,.12); }
.field textarea { min-height:86px; resize:vertical; }
.search { flex:1; min-width:190px; }
.filters { display:flex; gap:8px; flex-wrap:wrap; }
.filters select { border:1px solid light-dark(#D9E2E8,#3B4B57); background:light-dark(#FFFFFF,#14212B); color:inherit; padding:9px 11px; border-radius:9px; font-size:12px; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:12px; }
th { text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.8px; color:light-dark(#72818B,#A7B4BE); padding:12px 10px; border-bottom:1px solid light-dark(#E4EAEE,#33434F); white-space:nowrap; }
td { padding:14px 10px; border-bottom:1px solid light-dark(#EDF1F4,#293944); vertical-align:middle; }
tr:last-child td { border-bottom:0; }
.linklike { border:0; padding:0; background:transparent; color:light-dark(#1D5279,#8EC7F4); text-align:left; font-weight:750; }
.small { font-size:10px; color:light-dark(#74838D,#A5B4C0); margin-top:4px; }
.detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px;flex-wrap:wrap}.detail-toolbar .detail-tabs{flex:1;margin:0}.create-client-activity{white-space:nowrap}@media(max-width:700px){.detail-toolbar{align-items:stretch}.create-client-activity{width:100%}}
.detail-tabs { display:flex; gap:4px; flex-wrap:wrap; border-bottom:1px solid light-dark(#E1E8ED,#33434F); margin:0 0 18px; }
.detail-tabs button { border:0; border-bottom:2px solid transparent; background:transparent; padding:11px 13px; color:light-dark(#697985,#A6B5C0); font-size:12px; font-weight:700; }
.detail-tabs button.active { color:light-dark(#173F60,#B8DFFF); border-bottom-color:#5383A7; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.span-2 { grid-column:span 2; }
.section-note { background:light-dark(#F2F7FA,#1D2C37); border:1px solid light-dark(#E0EAF0,#324550); border-radius:10px; padding:12px; font-size:11px; line-height:1.55; color:light-dark(#5E707D,#B2C0CA); margin-bottom:15px; }
.entry { border:1px solid light-dark(#E0E7EC,#30414C); border-radius:11px; padding:13px; margin-top:10px; }
.entry-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.entry-title { font-size:12px; font-weight:750; }
.entry-text { font-size:12px; line-height:1.55; margin-top:8px; white-space:pre-wrap; }
.entry-meta { color:light-dark(#73828C,#A5B4C0); font-size:10px; margin-top:7px; }
.row-actions { display:flex; gap:7px; flex-wrap:wrap; margin-top:13px; }
.material-line { display:grid; grid-template-columns:minmax(0,1.5fr) 80px minmax(0,1fr) auto; gap:8px; align-items:end; margin-top:9px; }
.notice { padding:12px 14px; border-radius:10px; background:light-dark(#EAF3FA,#203747); color:light-dark(#315E7D,#B8DFFF); font-size:12px; line-height:1.5; margin-bottom:15px; }
.section-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.section-card { padding:18px; border:1px solid light-dark(#E0E7EC,#2B3B47); border-radius:13px; background:light-dark(#FFFFFF,#17232D); }
.section-card .big { font-size:24px; font-weight:800; margin:12px 0 5px; }
.section-card p { font-size:11px; line-height:1.5; color:light-dark(#6C7B86,#A5B4C0); }
.save-draft-status{margin-right:auto;font-size:12px;color:#596B78;font-weight:700}.save-draft-status.saving{color:#8A5A00}.save-draft-status.saved{color:#137547}.save-draft-status.failed{color:#B42332}
.toast-success{background:#137547!important}.toast-error{background:#B42332!important}
.toast { position:fixed; bottom:20px; right:20px; background:var(--site-primary); color:white; padding:12px 16px; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.2); font-size:12px; z-index:100; display:none; max-width:calc(100vw - 40px); }
.modal-backdrop { position:fixed; inset:0; z-index:50; background:rgba(10,22,32,.55); display:none; align-items:center; justify-content:center; padding:16px; }
.modal { width:min(700px,100%); max-height:92vh; overflow:auto; background:light-dark(#FFFFFF,#17232D); border:1px solid light-dark(#DDE6EC,#354652); border-radius:16px; padding:22px; box-shadow:0 25px 80px rgba(0,0,0,.25); }
/* Ajuste dos cartões financeiros no modal de recebimentos */
.modal .stats { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.modal .stat { min-width:0; padding:16px; overflow:hidden; }
.modal .stat-number { font-size:clamp(19px,2.4vw,29px); letter-spacing:-.7px; line-height:1.2; overflow-wrap:anywhere; word-break:normal; }
.modal .stat-top { line-height:1.4; min-height:30px; }

.dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;margin-bottom:20px;border-radius:18px;background:linear-gradient(112deg,#202020 0%,#343434 58%,#8f101d 100%);color:#fff;box-shadow:0 12px 28px rgba(31,31,31,.14);overflow:hidden;position:relative}
.dashboard-hero:after{content:"";position:absolute;right:-45px;top:-90px;width:260px;height:260px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 24px rgba(255,255,255,.035),0 0 0 52px rgba(255,255,255,.025)}
.dashboard-hero .hero-brand{display:flex;align-items:center;gap:18px;position:relative;z-index:1}.dashboard-hero .hero-logo{width:130px;max-height:80px;object-fit:contain;background:#fff;border-radius:10px;padding:5px}.dashboard-hero h1{font-size:27px;margin:0 0 7px;color:#fff}.dashboard-hero .sub{color:#e5e5e5;max-width:650px}.dashboard-hero .hero-chip{position:relative;z-index:1;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);padding:10px 14px;border-radius:10px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
@media(max-width:760px){.dashboard-hero{align-items:flex-start;flex-direction:column;padding:18px}.dashboard-hero .hero-logo{width:95px}.dashboard-hero h1{font-size:22px}.dashboard-hero .hero-chip{white-space:normal}}
@media(max-width:560px) { .modal .stats { grid-template-columns:1fr; } .modal .stat-number { font-size:24px; } }
.modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:20px; }
.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.inline-label { display:flex; gap:8px; align-items:center; font-size:12px; }
.check { width:16px; height:16px; accent-color:#285B7D; }
@media(max-width:1050px) { .stats {grid-template-columns:repeat(2,minmax(0,1fr));} .layout-two {grid-template-columns:1fr;} .section-grid {grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:720px) { .shell {grid-template-columns:1fr;} aside {padding:12px; gap:12px;} .brand {padding:3px 7px;} .nav-label,.side-note {display:none;} .nav {display:flex; overflow:auto; padding-bottom:2px;} .nav button {white-space:nowrap; padding:9px 10px; font-size:11px;} .nav .ico {width:auto;} .topbar {padding:12px 16px;} .user-label {display:none;} .content {padding:18px 13px;} .page-head {align-items:flex-start;} .page-head .primary {padding:10px; font-size:11px;} h1 {font-size:23px;} .stats {gap:9px;} .stat {padding:13px;} .stat-number {font-size:25px;} .form-grid {grid-template-columns:1fr;} .span-2 {grid-column:span 1;} .section-grid {grid-template-columns:1fr;} .material-line {grid-template-columns:minmax(0,1fr) 68px;} .material-line .field:nth-child(3) {grid-column:span 2;} .task-row {grid-template-columns:minmax(0,1fr);} .top-right {gap:7px;} }

/* PROJE FIRE brand identity */
:root { --site-primary:#292929; --site-on-primary:#FFFFFF; --site-secondary:#F8E7E8; --site-on-secondary:#9F1722; --site-background:#F5F5F5; --site-on-background:#252525; }
body { background:#F5F5F5; color:#252525; }
#app { background:#F5F5F5; color:#252525; }
.shell { grid-template-columns:250px minmax(0,1fr); }
aside { background:linear-gradient(180deg,#252525 0%,#303030 70%,#1F1F1F 100%); border-right:3px solid #B51F2B; padding:18px 13px; gap:22px; }
.brand-projefire { display:flex; flex-direction:column; align-items:stretch; gap:11px; padding:0 2px 18px; border-bottom:1px solid rgba(255,255,255,.16); }
.brand-logo-wrap { width:100%; background:#fff; border-radius:10px; padding:5px 7px; overflow:hidden; box-shadow:0 4px 16px rgba(0,0,0,.18); }
.brand-logo { display:block; width:100%; height:auto; object-fit:contain; }
.brand-system { padding:0 7px; border-left:3px solid #B51F2B; }
.brand-name { font-size:12px; letter-spacing:.8px; font-weight:800; }
.brand-sub { font-size:10px; letter-spacing:.35px; opacity:.72; line-height:1.5; }
.nav-label { color:#E6E6E6; }
.nav button { border-radius:8px; transition:background .15s ease, border-color .15s ease; border-left:3px solid transparent; }
.nav button.active { background:rgba(181,31,43,.23); border-left-color:#D52A37; }
.nav button:hover { background:rgba(255,255,255,.10); }
.nav .ico { color:#F1B5B9; }
.side-note { border:1px solid rgba(255,255,255,.17); border-top:2px solid #B51F2B; background:rgba(255,255,255,.055); }
.topbar { background:#FFFFFF; border-bottom:1px solid #E3E3E3; box-shadow:0 2px 8px rgba(0,0,0,.025); position:relative; }
.topbar:after { content:""; position:absolute; bottom:-1px; left:0; width:72px; height:3px; background:#B51F2B; }
.breadcrumb { color:#777; }
h1,h2,h3 { color:#252525; }
h1 { letter-spacing:-.65px; }
.primary { background:#B51F2B; color:#fff; box-shadow:0 3px 9px rgba(181,31,43,.16); }
.primary:hover { background:#941923; filter:none; }
.secondary { border-color:#D7D7D7; }
.stat,.panel { border-color:#E5E5E5; box-shadow:0 3px 12px rgba(20,20,20,.025); }
.stat-icon { background:#F8E7E8; color:#A51D28; }
.stat-number { color:#252525; }
.progress span { background:#B51F2B; }
.pill.red { background:#FBE8E9; color:#A61E29; }
.pill.blue { background:#F0E9E9; color:#6B3034; }
.pill.green { background:#E5F3EB; color:#23744C; }
input:focus,select:focus,textarea:focus { outline:2px solid rgba(181,31,43,.18); border-color:#B51F2B !important; }
.modal,.modal-card { border-top:4px solid #B51F2B; }
@media(max-width:720px) {
 .shell { grid-template-columns:1fr; }
 aside { border-right:0; border-bottom:3px solid #B51F2B; }
 .brand-projefire { flex-direction:row; align-items:center; padding-bottom:10px; }
 .brand-logo-wrap { width:118px; flex:none; }
 .brand-system { flex:1; }
}

.primary:disabled,.secondary:disabled{opacity:.45;cursor:not-allowed}
.copy-field{display:flex;gap:6px;align-items:center}.copy-field input{flex:1;min-width:0}.copy-btn{padding:8px 11px;min-width:38px}.field.has-error label{color:#B42332}.input-error{border-color:#B42332!important;box-shadow:0 0 0 2px rgba(180,35,50,.13)!important}.field-error-message{color:#B42332;font-size:11px;font-weight:700;margin-top:4px}.form-validation-alert{display:none;background:#FEF3F2;border:1px solid #FDA29B;color:#B42332;padding:11px 13px;border-radius:9px;margin:0 0 14px}.form-validation-alert ul{margin:6px 0 0;padding-left:20px}.form-validation-alert li{margin:2px 0}
.client-expiry-panel,.client-other-section{background:light-dark(#fff,#17232d);border:1px solid light-dark(#e0e7ec,#2b3b47);border-radius:16px;padding:20px;margin-bottom:18px;box-shadow:0 3px 12px rgba(20,20,20,.035)}.client-section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:15px}.client-section-heading h2{font-size:19px;margin:3px 0 4px}.client-section-kicker{font-size:10px;letter-spacing:.11em;font-weight:800;color:#71808b}.client-count{border-radius:99px;padding:8px 12px;background:#edf1f4;color:#52616c;font-size:12px;font-weight:800;white-space:nowrap}.client-count.count-alert{background:#fae7e8;color:#a51f2a}.clients-table{width:100%;border-collapse:collapse;min-width:850px}.clients-table th{text-align:left;text-transform:uppercase;font-size:10px;letter-spacing:.045em;color:#71808b;padding:11px 12px;border-bottom:1px solid #e3e8ec}.clients-table td{padding:13px 12px;border-bottom:1px solid #edf0f2;vertical-align:middle;font-size:12px}.clients-table tbody tr:last-child td{border-bottom:0}.clients-table .small{font-size:10px;margin-top:4px}.client-name{font-weight:800;color:#252f35}.client-tax-line{display:flex;align-items:center;gap:6px;margin-top:5px;color:#61717d;font-size:10px}.copy-client-cnpj{border:0;background:transparent;color:#59738a;cursor:pointer;padding:2px 5px;border-radius:5px;font-size:14px}.copy-client-cnpj:hover{background:#eaf3fa;color:#1e547a}.client-service+.client-service{margin-top:7px}.client-urgent-row.is-overdue{background:#fff0f0}.client-urgent-row.is-critical{background:#fff6f0}.client-urgent-row.is-warning{background:#fffaeb}.client-due-label{margin-top:5px}.due-chip{display:inline-flex;align-items:center;border:0;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800;line-height:1.1;white-space:nowrap}.due-overdue,.due-critical{background:#b42332;color:white}.due-warning{background:#fff0d1;color:#875b10}.due-future{background:#e7f1f8;color:#315f7d}.due-none{background:#eef1f3;color:#667680}.client-empty-state{display:flex;flex-direction:column;gap:5px;padding:22px 15px;border-radius:10px;background:#f7f9fa;color:#4b5c66;font-size:12px}.client-empty-state span{color:#71808b;font-size:11px}.client-other-section .panel{padding:8px 12px}@media(max-width:760px){.client-expiry-panel,.client-other-section{padding:14px}.client-section-heading{align-items:flex-start}.client-count{font-size:10px;padding:7px 9px}.clients-table{min-width:780px}}
.fire-cert-fields{display:none}.inspection-soon{background:rgba(255,190,70,.14)}.expiry-warning{color:#ad4c00;font-weight:700}.expiry-expired{color:#b42332;font-weight:700}
.material-classification-select{min-width:145px;max-width:180px;padding:8px 10px;border:1px solid #d7e0e8;border-radius:9px;background:#fff;color:#18324a;font:inherit;font-size:13px}.material-ledger td{vertical-align:middle}.material-ledger .small{margin-top:4px}.material-ledger td:last-child .secondary{padding:8px 12px}

.supplier-search{min-width:min(320px,100%);margin:0}.supplier-search input{min-width:260px}.supplier-table td{vertical-align:middle}.supplier-table a{color:#165b87;text-decoration:none}.supplier-table a:hover{text-decoration:underline}.supplier-table td:last-child{white-space:nowrap}.supplier-table td:last-child button{padding:8px 10px}

.portfolio-card{display:flex;flex-direction:column;gap:10px}.portfolio-card-top{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.portfolio-card h3{margin:4px 0}.portfolio-card p{margin:0;line-height:1.7}.portfolio-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.portfolio-metrics div{display:flex;flex-direction:column;gap:3px}.portfolio-metrics strong{font-size:20px}.portfolio-metrics span{font-size:12px;color:var(--muted)}.portfolio-card .row-actions{margin-top:auto}.portfolio-card .progress{margin-top:2px}

/* Unidade responsável: códigos de cor consistentes */
.unit-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}
.unit-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.unit-catalao.unit-badge,.unit-tab.unit-catalao{color:#155b8c;background:#e8f3fb;border-color:#9fc9e5}
.unit-itumbiara.unit-badge,.unit-tab.unit-itumbiara{color:#7041a6;background:#f2eafb;border-color:#c7a9e5}
.field.unit-catalao select.unit-select{border-color:#75afd3;background-color:#f5fbff;box-shadow:0 0 0 2px rgba(21,91,140,.08)}
.field.unit-itumbiara select.unit-select{border-color:#aa82d1;background-color:#fbf7ff;box-shadow:0 0 0 2px rgba(112,65,166,.09)}
.unit-tab{border:1px solid;border-radius:10px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;transition:box-shadow .15s,transform .15s}
.unit-tab:hover{transform:translateY(-1px)}.unit-tab.is-selected{box-shadow:inset 0 -3px currentColor,0 2px 8px rgba(20,35,55,.08)}
/* PROJE FIRE — layout otimizado para celular */
@media(max-width:720px){
 html,body,#app{min-height:100%;width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
 body{font-size:14px}
 .shell{display:block;min-height:100dvh}
 aside{display:block;padding:8px 12px 0;border-right:0;border-bottom:0;background:#252525}
 .brand-projefire{display:flex;flex-direction:row;align-items:center;gap:10px;padding:0 2px 8px;border:0}
 .brand-logo-wrap{width:82px;flex:none;padding:3px 5px;border-radius:7px}
 .brand-system{padding-left:9px}
 .brand-name{font-size:11px}.brand-sub{font-size:9px}
 .nav-label,.side-note{display:none!important}
 .nav{position:fixed;z-index:45;left:0;right:0;bottom:0;display:flex;align-items:stretch;gap:2px;overflow-x:auto;overflow-y:hidden;padding:7px 6px calc(7px + env(safe-area-inset-bottom));background:#252525;border-top:3px solid #B51F2B;box-shadow:0 -5px 18px rgba(0,0,0,.16);scrollbar-width:thin;-webkit-overflow-scrolling:touch}
 .nav button{flex:0 0 69px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:54px;padding:5px 3px;border:0;border-radius:8px;border-left:0;font-size:9px;line-height:1.15;text-align:center;white-space:normal;color:#f2f2f2}
 .nav button.active{background:rgba(181,31,43,.32);box-shadow:inset 0 -2px #ed5360}
 .nav .ico{width:auto;font-size:17px;line-height:1}
 #nav-open-count{position:absolute;margin:0!important;transform:translate(20px,-16px);font-size:9px;padding:2px 5px;min-width:16px}
 main{min-width:0}
 .topbar{position:sticky;top:0;z-index:30;min-height:52px;padding:8px 12px;gap:8px}
 .breadcrumb{font-size:10px;letter-spacing:.03em}
 .top-right{gap:6px}.user-chip{gap:4px}.user-chip select{max-width:142px!important;min-width:100px;padding:7px!important;font-size:11px}
 .icon-button{min-width:40px;min-height:40px;padding:7px}
 .content{padding:14px 11px calc(105px + env(safe-area-inset-bottom));min-width:0}
 .page-head{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:16px}
 .page-head .primary,.page-head>.primary{width:100%;min-height:44px;font-size:14px}
 h1{font-size:22px;line-height:1.2}h2{font-size:18px}
 .sub{font-size:12px;line-height:1.45}
 .toolbar{align-items:stretch;flex-direction:column;gap:8px}.toolbar .filters{display:grid;grid-template-columns:1fr;gap:8px}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:12px;min-width:0}.stat-number{font-size:23px}
 .layout-two,.section-grid{grid-template-columns:1fr;gap:12px}
 .panel{padding:13px;border-radius:12px;margin-bottom:12px}
 .panel-head{align-items:stretch;flex-direction:column;gap:10px}
 .panel-head>.field{min-width:0!important;width:100%}
 .form-grid{grid-template-columns:minmax(0,1fr);gap:10px}.span-2{grid-column:auto}
 input,select,textarea{width:100%;min-height:44px;font-size:16px!important;padding:10px 11px}
 textarea{min-height:90px}
 button,.primary,.secondary{min-height:42px}.copy-field{gap:6px}.copy-field input{min-width:0}.copy-btn{flex:0 0 44px;width:44px;padding:8px}
 .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .table-wrap table{min-width:700px}
 .clients-table{min-width:850px}.client-expiry-panel,.client-other-section{padding:13px}
 .task-row{grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 0}
 .task-meta{gap:6px;flex-wrap:wrap}.unit-badge{font-size:10px;padding:4px 7px}
 .detail-toolbar{align-items:stretch}.detail-toolbar .detail-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap}.detail-tabs button{flex:0 0 auto;white-space:nowrap}
 .modal-backdrop{align-items:flex-end;padding:0;z-index:60}
 .modal,.modal-card{width:100%;max-width:none;max-height:94dvh;height:auto;overflow:auto;border-radius:18px 18px 0 0;padding:16px 13px calc(14px + env(safe-area-inset-bottom));overscroll-behavior:contain}
 .modal-head{gap:8px;margin-bottom:14px}.modal-head h2{font-size:19px}
 .modal-actions{display:grid;grid-template-columns:1fr;gap:8px}.modal-actions button{width:100%;min-height:46px}
 .modal .stats{grid-template-columns:1fr 1fr}
 .modal .stat{padding:10px}.modal .stat-number{font-size:21px}
 .due-chip{max-width:100%;white-space:normal}
 .unit-tab{min-height:44px;flex:1 1 140px;padding:9px 10px}
}
@media(max-width:380px){
 .brand-logo-wrap{width:68px}.brand-name{font-size:10px}.user-chip select{max-width:118px!important}
 .nav button{flex-basis:64px;font-size:8px}.content{padding-left:8px;padding-right:8px}
 .stats{gap:6px}.stat{padding:10px}.stat-number{font-size:21px}
 .modal .stats{grid-template-columns:1fr}
}
@media(orientation:landscape) and (max-height:520px) and (max-width:900px){
 .brand-projefire{display:none}.nav{position:sticky;top:52px;bottom:auto}.content{padding-bottom:22px}.modal-backdrop{align-items:center;padding:8px}.modal{max-height:96dvh;border-radius:14px}
}

/* Navigation, keyboard focus and narrow layouts */
#menu-toggle { display:none; }
main, .content, .field { min-width:0; }
.table-wrap { max-width:100%; }
.table-wrap[tabindex="0"] { overscroll-behavior-x:contain; }
:focus-visible { outline:3px solid #2876bd; outline-offset:2px; }
.nav button:focus-visible, #menu-toggle:focus-visible { outline-color:#fff; outline-offset:-3px; }
body:has(#modal-backdrop[style*="flex"]) { overflow:hidden; }
.detail-tabs, .row-actions { flex-wrap:wrap; }
@media (max-width:900px) {
 .shell { display:block; min-height:100dvh; }
 aside { display:block; padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left)); }
 .brand-projefire { display:flex; }
 #menu-toggle { display:block; width:100%; min-height:44px; padding:8px 12px; text-align:left; color:#fff; background:#383838; border:1px solid #777; border-radius:8px; font:inherit; }
 #nav { display:none; position:static; grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr)); margin-top:8px; gap:4px; padding:0; border:0; box-shadow:none; overflow:visible; }
 #menu-toggle[aria-expanded="true"] + #nav { display:grid; }
 #nav button { position:relative; flex-direction:row; justify-content:flex-start; text-align:left; min-height:44px; white-space:normal; font-size:13px; padding:8px; }
 #nav-open-count { position:static; transform:none; margin-inline-start:auto!important; }
 .topbar { flex-wrap:wrap; }
 .content { padding-bottom:max(22px,env(safe-area-inset-bottom)); }
 .detail-toolbar .detail-tabs { flex-wrap:wrap; overflow:visible; }
 .detail-tabs button { flex:1 1 auto; white-space:normal; }
 .supplier-search input { min-width:0; }
}
@media (pointer:coarse) {
 button, input:not([type="checkbox"]):not([type="radio"]), select { min-height:44px; }
 input, select, textarea { font-size:max(16px,1em); }
}
@media (prefers-reduced-motion:reduce) {
 *, *::before, *::after { scroll-behavior:auto!important; transition:none!important; }
}

.registration-section { margin: 16px 0 0; padding: 10px 0 5px; color: var(--red, #a11d28); border-bottom: 1px solid #c9d3da; font-size: 14px; }
.professional-registration .form-grid { align-items: start; }
.service-items { min-width: 0; margin: 12px 0 0; padding: 16px; border: 1px solid #c9d3da; border-radius: 12px; }
.service-items legend { font-weight: 700; padding: 0 6px; }
.service-input, .service-order-head, .service-edit-list li { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.service-input label { flex: 1 1 240px; min-width: 0; }
.service-input input, .service-items select { width: 100%; margin-top: 6px; }
.service-edit-list, .service-checklist { list-style: none; padding: 0; margin: 8px 0 0; }
.service-edit-list li, .service-order-head { align-items: center; justify-content: space-between; }
.service-edit-list li, .service-checklist li { padding: 8px 0; border-bottom: 1px solid #c9d3da; overflow-wrap: anywhere; }
.service-order { margin-top: 14px; padding: 14px; border: 1px solid #c9d3da; border-radius: 12px; }
.service-count { font-size: 12px; font-weight: 700; }
.service-checklist label { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; }
.service-checklist input[type=checkbox] { width: 20px; height: 20px; min-height: 0; flex: none; accent-color: #ad2030; }
.service-checklist small { display: block; }

.professional-registration .field { display:flex; flex-direction:column; gap:6px; margin:0; min-width:0; }
.professional-registration .field > label { margin:0; line-height:1.4; }
.professional-registration input:not([type=checkbox]):not([type=radio]):not([type=range]), .professional-registration select, .professional-registration textarea {
  box-sizing:border-box; width:100%; max-width:100%; border:1px solid #c9d3da; border-radius:10px; padding:11px 12px; font:inherit;
}
.professional-registration textarea { min-height:92px; resize:vertical; }
.professional-registration .copy-field { display:flex; min-width:0; }
.professional-registration .registration-section { grid-column:1 / -1; }
.scope-library { border-bottom:1px solid #c9d3da; padding-bottom:16px; margin-bottom:14px; }
.scope-library h4 { margin:0 0 10px; }
.scope-library label { display:block; font-weight:600; }
.scope-library input { display:block; margin-top:6px; }
.scope-results { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; max-height:210px; overflow:auto; }
.scope-results button { text-align:left; overflow-wrap:anywhere; white-space:normal; }

.service-progress { margin:14px 0 8px; }
.service-progress-label { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:12px; margin-bottom:6px; }
.service-progress progress { display:block; appearance:none; -webkit-appearance:none; width:100%; height:10px; border:0; border-radius:999px; overflow:hidden; background:#e8edf1; accent-color:#b51f2b; }
.service-progress progress::-webkit-progress-bar { background:#e8edf1; border-radius:999px; }
.service-progress progress::-webkit-progress-value { background:#b51f2b; border-radius:999px; }
.service-progress progress::-moz-progress-bar { background:#b51f2b; border-radius:999px; }

.modal:has(.quote-editor) { width:min(1060px,100%); }
.quote-editor { display:grid; gap:20px; }
.quote-editor section { border:1px solid #dce2e6; border-radius:14px; padding:16px; min-width:0; }
.quote-section-title { display:flex; align-items:center; gap:9px; margin:0 0 16px; font-size:17px; color:#252525; }
.quote-section-title>span { background:#b51f2b; color:#fff; font-size:12px; border-radius:8px; padding:6px; }
.quote-field { display:flex; flex-direction:column; align-items:stretch; gap:6px; font-size:12px; font-weight:600; min-width:0; }
.quote-field input,.quote-field select,.quote-field textarea { width:100%; font-weight:400; }
.quote-line { padding:12px; border:1px solid #dce2e6; border-radius:12px; margin-bottom:10px; background:#fafbfc; }
.quote-line-top,.quote-line-bottom { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.quote-line-top { margin-bottom:10px; }
.quote-line-grid { display:grid; grid-template-columns:110px minmax(180px,1fr) 90px 80px 115px; gap:9px; align-items:start; }
.quote-line-bottom { margin-top:10px; }
.quote-line-bottom [data-line-total] { font-weight:700; margin-inline-start:auto; }
.quote-check { display:flex; gap:8px; align-items:center; font-size:12px; font-weight:600; }
.quote-check input[type=checkbox] { width:18px; height:18px; min-height:0; flex:none; accent-color:#b51f2b; }
.quote-pricing { padding-top:14px; margin-top:14px; border-top:1px solid #dce2e6; }
.quote-pricing>.quote-check { margin-bottom:12px; }
.quote-total-row { display:flex; justify-content:space-between; gap:15px; padding:5px 8px; font-size:12px; }
.quote-grand-total { background:#faecee; border-top:2px solid #b51f2b; font-size:15px; font-weight:700; margin-top:8px; padding:12px 8px; }
.quote-results { display:flex; flex-wrap:wrap; gap:7px; max-height:200px; overflow:auto; margin:10px 0; font-size:12px; }
.quote-results button { white-space:normal; text-align:left; }
.quote-template-choice { border:1px solid #dce2e6; background:#f5f6f7; color:#333; border-radius:9px; padding:9px 12px; cursor:pointer; font:inherit; width:100%; }
.quote-condition { padding:12px; border:1px solid #dce2e6; border-radius:10px; margin:10px 0; }
.quote-feedback { color:#9b1c28; font-size:13px; }
@media(max-width:950px) {
 .quote-line-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .quote-line-description { grid-column:span 2; }
}
@media(max-width:540px) {
 .quote-editor section { padding:12px; }
 .quote-line-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .quote-line-description { grid-column:1 / -1; }
 .quote-line-bottom>button { width:100%; }
}
/* Quote workflow: separate composition, committed rows and reusable libraries. */
.quote-item-composer,.quote-library{border:1px solid #d4d4d4;background:#fafafa;border-radius:10px;padding:16px;margin:14px 0}
.quote-library summary{cursor:pointer;font-weight:700;padding:5px 0}.quote-library [hidden]{display:none!important}
.quote-choice{width:100%;border:1px solid #d4d4d4;border-radius:8px;background:white;padding:10px}.quote-choice p{margin:0 0 8px;overflow-wrap:anywhere}.quote-choice button{margin:3px;min-height:44px}.quote-results{max-height:300px}.quote-field output{display:block;padding:12px;border-radius:8px;background:#eee;font-weight:700;min-height:44px}.quote-table-wrap{overflow-x:auto}.quote-inserted-table{width:100%;border-collapse:collapse;min-width:580px}.quote-inserted-table th{background:#303236;color:white;text-align:left}.quote-inserted-table th,.quote-inserted-table td{padding:10px;border:1px solid #d4d4d4;vertical-align:top}.quote-inserted-table small{display:block;color:#555}.quote-inserted-table td:first-child{overflow-wrap:anywhere;max-width:320px}.quote-feedback{position:sticky;bottom:0;background:white;border:1px solid #ddd;padding:10px;z-index:2}.quote-feedback:empty{display:none}.quote-item-composer button,.quote-condition button{min-height:44px}@media(max-width:540px){.quote-item-composer,.quote-library{padding:10px}.quote-choice button{width:100%;margin:3px 0}.quote-item-composer .row-actions{flex-direction:column;align-items:stretch}}

[data-client-results]:empty{display:none}
@media(max-width:540px){.quote-inserted-table{min-width:0;display:block}.quote-inserted-table thead{display:none}.quote-inserted-table tbody{display:block}.quote-inserted-table tr{display:block;border:1px solid #d4d4d4;border-radius:8px;margin:10px 0;padding:8px;background:#fff}.quote-inserted-table td{display:block;border:0;max-width:none!important;padding:6px;overflow-wrap:anywhere}.quote-inserted-table td:nth-child(2)::before{content:'Quantidade / unidade: ';font-weight:700}.quote-inserted-table td:nth-child(3)::before{content:'Preço unitário: ';font-weight:700}.quote-inserted-table td:nth-child(4)::before{content:'Total do item: ';font-weight:700}.quote-inserted-table .row-actions{display:flex;flex-direction:row;flex-wrap:wrap}.quote-inserted-table .row-actions button{flex:1;min-height:44px}.quote-table-wrap{overflow:visible}}

.quote-library [data-library-results]{max-height:none;overflow:visible}.quote-library [data-library-new][hidden]{display:none!important}
