
:root{--ink:#1c2724;--muted:#74817b;--line:#e4e9e5;--bg:#f6f8f6;--card:#fff;--pine:#233d34;--pine2:#3f6756;--gold:#c8a878;--shadow:0 10px 35px rgba(20,39,28,.045)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}.app{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.side{background:#202c28;color:#dce5de;padding:32px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{padding:0 15px 27px;border-bottom:1px solid #384941;margin-bottom:25px}.brand strong{font:400 26px Georgia,serif;letter-spacing:3px;color:white;display:block}.brand small{font-size:9px;letter-spacing:2.5px;color:#b0c4b6;text-transform:uppercase}.navtitle{padding:0 13px 9px;color:#8ca89b;letter-spacing:1.4px;text-transform:uppercase;font-size:10px;font-weight:700}.nav{display:flex;flex-direction:column;gap:5px}.nav button{background:transparent;border:0;border-radius:10px;color:#c9d5ce;text-align:left;padding:13px 14px;display:flex;gap:12px;align-items:center;transition:.15s}.nav button:hover,.nav button.active{background:#3b5046;color:#fff}.nav .ico{width:19px;text-align:center;font-size:17px}.sidefooter{margin-top:auto;border-top:1px solid #384941;padding:17px 12px 0;color:#9eb1a5;font-size:11px;line-height:1.6}.tinytag{display:inline-block;background:#344b40;border:1px solid #4b6558;border-radius:4px;padding:3px 7px;color:#bed2c2;font-size:10px}.main{min-width:0}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:0 42px;gap:16px}.crumb{color:#929d96;font-size:12px}.crumb b{color:#2d3d34}.topright{display:flex;align-items:center;gap:16px}.search{border:1px solid var(--line);background:#f8faf9;display:flex;align-items:center;border-radius:10px;padding:0 12px;gap:7px;color:#89968e}.search input{padding:12px 0;border:0;outline:0;background:transparent;min-width:235px;width:100%;color:#26362e}.avatar{border-radius:100%;background:#e9eee8;color:#496251;width:36px;height:36px;display:grid;place-items:center;font-weight:700}.content{max-width:1480px;margin:0 auto;padding:38px 42px 70px}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.eyebrow{color:var(--pine2);font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:700}.pagehead h1{font:400 clamp(26px,3vw,35px) Georgia,serif;letter-spacing:-.4px;margin:8px 0 7px}.pagehead p{margin:0;color:#839087;line-height:1.6}.actions{display:flex;align-items:center;gap:9px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;border:1px solid var(--line);padding:11px 16px;background:white;color:#25382d;font-size:13px;font-weight:650;white-space:nowrap}.btn:hover{background:#f2f5f1}.btn.primary{background:#294a3b;border-color:#294a3b;color:white}.btn.primary:hover{background:#1d392c}.btn.warn{color:#9f572c}.btn.small{padding:7px 10px;font-size:12px}.btn.clear{border:0;background:transparent;padding:5px 7px}.panel{background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.panelhead{display:flex;align-items:center;justify-content:space-between;padding:22px 25px;border-bottom:1px solid #edf0ed}.panelhead h2{font:400 20px Georgia,serif;margin:0}.panelhead small{color:var(--muted)}.statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{border:1px solid var(--line);background:#fff;border-radius:13px;padding:22px;box-shadow:var(--shadow)}.stat .lbl{font-size:12px;color:#859188;display:flex;justify-content:space-between}.stat .val{font:400 28px Georgia,serif;margin:17px 0 5px;white-space:nowrap}.stat .sub{font-size:11px;color:#9da7a0}.stat .symbol{font-size:17px;color:#81998b}.twocol{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.quickgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:20px}.quickgrid button{text-align:left;padding:17px;border-radius:10px;border:1px solid var(--line);background:#fafbf9}.quickgrid button:hover{border-color:#9cb7a5;background:#f3f7f3}.quickgrid strong{display:block;margin:9px 0 3px}.quickgrid small{color:var(--muted)}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{background:#fafcf9;color:#89958c;text-transform:uppercase;font-size:10px;letter-spacing:1px;font-weight:700;padding:15px 19px}td{border-top:1px solid #eff2ee;padding:16px 19px;font-size:13px}tr:hover td{background:#fbfdfb}.data-primary{font-weight:650;color:#283b32}.secondary{font-size:11px;color:#8c9890;margin-top:4px}.status{display:inline-block;padding:6px 10px;border-radius:100px;font-size:11px;font-weight:650}.status.gray{background:#f0f1ef;color:#69766d}.status.green{background:#e8f5eb;color:#35724c}.status.amber{background:#fff3df;color:#a6772d}.status.blue{background:#e8f0fc;color:#39649a}.status.red{background:#fff0ee;color:#ae5d4d}.empty{text-align:center;color:#7d8881;padding:55px 24px;line-height:1.7}.empty .big{font-size:32px;display:block;margin-bottom:5px}.smallnote{border:1px solid #e8e6d7;background:#fcfaf3;color:#746b51;padding:16px 18px;border-radius:10px;font-size:12px;line-height:1.65;margin-bottom:18px}.notice{border:1px solid #dce6de;background:#edf4ee;padding:15px 18px;border-radius:10px;color:#4b6551;font-size:12px;line-height:1.7}.modalwrap{position:fixed;inset:0;z-index:30;background:rgba(22,34,27,.55);display:flex;justify-content:center;align-items:center;padding:20px;overflow:auto}.modal{width:min(750px,100%);max-height:min(90vh,1100px);display:flex;flex-direction:column;background:white;border-radius:15px;box-shadow:0 24px 90px rgba(0,0,0,.25)}.modal.wide{width:min(1060px,100%)}.modalhead{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--line)}.modalhead h2{margin:0;font:400 23px Georgia,serif}.modalbody{padding:24px 26px;overflow:auto}.modalfoot{display:flex;justify-content:flex-end;gap:9px;padding:17px 26px;border-top:1px solid var(--line);background:#fafcf9;border-radius:0 0 15px 15px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:13px;min-width:0}.field label{color:#5b6b61;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.field input,.field select,.field textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid #dce5dc;background:#fff;border-radius:8px;outline:none;color:#273b30}.field textarea{resize:vertical;min-height:84px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#6e9e7c;box-shadow:0 0 0 3px #e8f0e9}.sectionlabel{font:400 20px Georgia,serif;margin:20px 0 13px}.itemrow{display:grid;grid-template-columns:1.3fr 1.4fr .48fr .72fr auto;gap:8px;align-items:end;margin-bottom:10px}.itemrow .field{margin:0}.itemrow .field label{font-size:10px}.itemrow .remove{align-self:end;height:40px;border:1px solid #efdfd8;border-radius:7px;color:#b66c58;background:#fff;width:39px}.totals{background:#f5f8f4;padding:20px;border-radius:10px;margin-top:20px;max-width:390px;margin-left:auto}.totalline{display:flex;justify-content:space-between;align-items:center;padding:5px 0;color:#6d7c71}.totalline.final{border-top:1px solid #dce6dc;margin-top:10px;padding-top:15px;font-weight:750;color:#1d3024;font-size:17px}.linkbtn{background:none;border:0;color:#385f46;text-decoration:underline;text-underline-offset:3px;padding:0;font-weight:650}.cardlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.invoice-card{padding:20px;border:1px solid var(--line);border-radius:10px;background:#fff}.invoice-card h3{margin:5px 0 9px;font:400 20px Georgia,serif}.invoice-card p{color:#718075;font-size:12px;line-height:1.6}.invoice-card .bottom{display:flex;gap:8px;flex-wrap:wrap}.footer{padding-top:34px;text-align:center;color:#9ba89c;font-size:11px}.toast{position:fixed;bottom:23px;right:26px;z-index:50;background:#274838;color:white;border-radius:11px;padding:14px 18px;box-shadow:0 10px 30px #0002;max-width:420px}.toast.error{background:#8d463d}.mobilemenu{display:none}.printarea{display:none}
@media(max-width:1050px){.statgrid{grid-template-columns:repeat(2,1fr)}.twocol{grid-template-columns:1fr}.topbar{padding:0 25px}.content{padding:28px 25px}.side{width:215px}.app{grid-template-columns:215px 1fr}.itemrow{grid-template-columns:1.2fr 1fr .42fr .64fr auto}}@media(max-width:740px){.app{display:block}.side{display:none;position:fixed;z-index:21;left:0;top:0;width:258px;box-shadow:0 0 0 100vmax #0007}.side.open{display:flex}.mobilemenu{display:inline-flex}.topbar{height:68px;padding:0 15px}.topbar .search{display:none}.content{padding:23px 15px 60px}.pagehead{align-items:flex-start;flex-direction:column}.pagehead h1{font-size:30px}.statgrid{gap:9px}.stat{padding:14px}.stat .val{font-size:21px}.grid2,.grid3{grid-template-columns:1fr}.modalwrap{padding:4px}.modal{max-height:98vh}.modalhead,.modalbody,.modalfoot{padding:16px}.itemrow{grid-template-columns:1fr 1fr 65px}.itemrow .field:first-child,.itemrow .field:nth-child(2){grid-column:span 3}.itemrow .remove{width:100%}.cardlist{grid-template-columns:1fr}.panelhead{padding:17px}.actions{flex-wrap:wrap}td,th{padding:12px}.quickgrid{padding:12px}}
@media print{body{background:white}.app,.modalwrap,.toast{display:none!important}.printarea{display:block!important;position:static!important;color:#111}.print-sheet{margin:20px auto;width:90%;font:14px Arial,sans-serif}.print-sheet h1{font:30px Georgia,serif;margin-bottom:0}.print-sheet small{color:#555}.print-sheet .print-title{text-align:right;margin:20px 0 30px}.print-sheet table{width:100%;border-collapse:collapse}.print-sheet th,.print-sheet td{padding:11px;border-bottom:1px solid #ddd;background:#fff;color:#333;text-transform:none;letter-spacing:0}.print-sheet .print-total{text-align:right;margin:20px 0;font-size:20px;font-weight:bold}.print-sheet footer{margin-top:40px;border-top:1px solid #ddd;padding-top:15px;white-space:pre-wrap}}

/* Orçamentos Composé: edição estruturada e documento para cliente */
.itemrow{grid-template-columns:minmax(120px,1fr) minmax(140px,1.1fr) minmax(190px,1.5fr) 64px 105px 38px;align-items:start}
.itemrow .field textarea{min-height:70px;resize:vertical}
.itemrow .remove{margin-top:20px}
.form-hint{font-size:11px;color:#7a8a80;line-height:1.5;margin:6px 0 15px}
.financial-preview{background:#eff6f0;padding:12px 15px;border-radius:10px;line-height:1.8;color:#3f5746;font-size:12px;margin-top:12px}
@media(max-width:1100px){.itemrow{grid-template-columns:1fr 1fr 1.5fr 65px 100px 36px}}
@media(max-width:800px){.itemrow{display:grid;grid-template-columns:1fr 1fr 60px}.itemrow .field:first-child,.itemrow .field:nth-child(2),.itemrow .field:nth-child(3){grid-column:1/-1}.itemrow .field:nth-child(4){grid-column:1/2}.itemrow .field:nth-child(5){grid-column:2/3}.itemrow .remove{grid-column:3;grid-row:4;margin-top:20px}}
@media print{
  @page{size:A4;margin:12mm 12mm 13mm}
  html,body{margin:0!important;padding:0!important;background:#fff!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .printarea{display:block!important}
  .print-sheet.quote-print{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;color:#202522;font:10pt/1.44 Arial,Helvetica,sans-serif!important}
  .quote-print .quote-meta{display:flex;justify-content:space-between;color:#777;font-size:9pt;margin-bottom:13mm;padding-bottom:3mm;border-bottom:1px solid #32332f}
  .quote-print .quote-header{display:grid;grid-template-columns:1fr auto;align-items:start;gap:18mm;border-bottom:1px solid #4a4d49;padding-bottom:7mm}
  .quote-print .quote-brand{font-size:15pt;letter-spacing:1px;font-weight:700;text-transform:uppercase;line-height:1.25}
  .quote-print .quote-brand-sub{font-size:9pt;color:#506255;letter-spacing:1px;text-transform:uppercase;margin-top:2mm}
  .quote-print .quote-legal{font-size:9pt;color:#676d69;margin-top:3mm}
  .quote-print .quote-contact{text-align:right;font-size:9pt;line-height:1.8;max-width:65mm}
  .quote-print .quote-info{display:grid;grid-template-columns:1fr 55mm;gap:4mm;margin:6mm 0}
  .quote-print .quote-card{border:1px solid #c9d0ca;padding:5mm;min-height:25mm}
  .quote-print .quote-client{font-size:11pt;font-weight:700}
  .quote-print .quote-label{font-size:7.5pt;text-transform:uppercase;letter-spacing:.7px;color:#748078;margin-bottom:2mm}
  .quote-print .quote-dates{font-size:9.5pt;line-height:1.55}
  .quote-print .quote-dates strong{display:block;font-size:9pt;color:#374b3e}
  .quote-print table{border-collapse:collapse;width:100%;table-layout:fixed;margin:4mm 0 0}
  .quote-print th{font-size:8.3pt;letter-spacing:0;text-transform:none;font-weight:700;background:#f2f5f2!important;color:#374139!important;border-top:1px solid #798179;border-bottom:1px solid #798179;text-align:left;padding:3mm 2mm;white-space:normal}
  .quote-print td{font-size:9pt;line-height:1.5;border-bottom:1px solid #e5e8e5;padding:4mm 2mm;vertical-align:top;color:#303831;white-space:normal;overflow-wrap:anywhere}
  .quote-print .quote-detail{color:#5b655e;white-space:pre-line}
  .quote-print .qnum{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
  .quote-print tr{break-inside:avoid}
  .quote-print .quote-summary{margin:5mm 0 0 auto;width:76mm;break-inside:avoid}
  .quote-print .quote-sum-line{display:flex;justify-content:space-between;padding:2mm 0;font-size:9pt;border-bottom:1px solid #ecefec}
  .quote-print .quote-sum-total{display:flex;justify-content:space-between;padding:4mm 0;border-top:1.5px solid #243a2d;font-size:12pt;font-weight:bold}
  .quote-print .quote-payment{border-top:1px solid #aeb7af;margin-top:9mm;padding-top:5mm;break-inside:avoid}
  .quote-print .quote-payment strong{font-size:10pt}
  .quote-print .quote-payment p{margin:1.5mm 0;font-size:9.5pt}
  .quote-print .quote-footer-note{white-space:pre-line;margin-top:7mm;color:#56645a;font-size:9pt}
  .quote-print .quote-disclaimer{margin-top:12mm;padding-top:3mm;border-top:1px solid #dce2db;color:#7b817c;font-size:8pt}
  .quote-print .quote-legal,.quote-print .quote-dates{white-space:normal}
}

/* Complementos do sistema online; estilo principal preservado */
.sync-state{color:#668273;font-size:11px;white-space:nowrap}
.sync-state.error{color:#b24b44;font-weight:650}
.auth-error{font-size:12px;color:#9e3b38;margin:12px 0;min-height:17px}
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#e9eee9,#f7f8f5 65%,#edf0eb)}
.login-card{width:min(440px,100%);border:1px solid var(--line);border-radius:19px;background:#fff;padding:43px 40px;box-shadow:0 30px 80px rgba(12,28,17,.08)}
.login-card .wordmark{font:400 32px Georgia,serif;letter-spacing:3px;color:#254636}
.login-card .caption{letter-spacing:2px;text-transform:uppercase;color:#84938a;font-size:10px;margin-top:6px}
.login-card h1{font:400 30px Georgia,serif;margin:36px 0 7px}
.login-card p{color:#738177;font-size:13px;line-height:1.7;margin:0 0 28px}
.login-card .field{margin-bottom:17px}
.login-card .btn{width:100%;margin-top:8px;padding:13px}
@media(max-width:740px){.sync-state{display:none}.login-card{padding:28px 23px}.topright{gap:7px}}

/* Fotos dos itens do orçamento — versão compacta */
.itemrow .itemphotos{grid-column:1 / -1;border:1px dashed #cfd5d0;background:#fbfbfa;padding:12px;border-radius:9px;margin:0 0 8px}
.itemphotos-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;font-weight:650;color:#303530}
.photo-upload-label{cursor:pointer}
.item-photo-thumbs{display:flex;gap:8px;margin:9px 0 5px;flex-wrap:wrap}
.it-photo{position:relative;width:84px;height:82px;border:1px solid #ddd;background:#fff;overflow:hidden;border-radius:6px}
.it-photo img{width:100%;height:100%;object-fit:cover}
.it-photo button{position:absolute;top:2px;right:2px;width:22px;height:22px;border:0;border-radius:50%;background:#1d1d1d;color:white;cursor:pointer}
.itemphotos small{color:#808580;font-size:11px}
@page{size:A4;margin:14mm 13mm 15mm 13mm}
@media print{
 .print-sheet.compact-quote{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;font:9pt/1.4 Arial,Helvetica,sans-serif!important;color:#171717!important}
 .compact-quote *{box-sizing:border-box}
 .compact-header{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #333;padding:0 0 5mm;margin:0 0 6mm;gap:8mm}
 .compact-brand{font-size:19pt;letter-spacing:2px;font-weight:750;color:#111}
 .compact-logo{max-width:47mm;max-height:18mm;object-fit:contain;object-position:left center;display:block}
 .compact-tag{font-size:6.2pt;letter-spacing:1.7px;margin-top:1.5mm;color:#666;font-weight:600}
 .compact-doc{text-align:right;display:flex;flex-direction:column;gap:1.5mm;white-space:nowrap}
 .compact-doc strong{font-size:9.5pt;letter-spacing:.4px}
 .compact-doc span{font-size:7.3pt;color:#676767}
 .compact-client-line{display:flex;justify-content:space-between;gap:7mm;margin:0 0 6mm}
 .compact-client-line>div{display:flex;flex-direction:column;gap:1.2mm;max-width:50%}
 .compact-client-line>div:last-child{text-align:right}
 .compact-client-line small{font-size:6.7pt;letter-spacing:1.1px;color:#777;font-weight:600}
 .compact-client-line strong{font-size:12pt;font-weight:600}
 .compact-client-line span{font-size:8pt;color:#666}
 .compact-quote .compact-table{border-collapse:collapse;table-layout:fixed;width:100%;margin:0!important}
 .compact-table thead{display:table-header-group}
 .compact-table th{padding:2.5mm 1.7mm!important;border-top:0!important;border-bottom:1px solid #777!important;background:#fff!important;font-size:6.4pt!important;letter-spacing:.65px!important;text-transform:uppercase!important;color:#646464!important;font-weight:650!important}
 .compact-table th:nth-child(1){width:68%}.compact-table th:nth-child(2){width:13%}.compact-table th:nth-child(3){width:6%}.compact-table th:nth-child(4){width:13%}
 .compact-table td{padding:3.5mm 1.7mm!important;vertical-align:top!important;border-top:0!important;border-bottom:1px solid #dedede!important;background:#fff!important;white-space:normal!important;font-size:7.7pt!important;line-height:1.45!important;color:#202020!important}
 .compact-table .compact-photo-cell{width:26mm;padding-left:0!important}
 .compact-table .compact-desc{width:auto;overflow-wrap:anywhere}
 .compact-desc strong{display:block;font-size:8.5pt;line-height:1.33;font-weight:700;margin:0 0 2mm}
 .compact-desc span{color:#666;font-size:7.5pt;line-height:1.55}
 .compact-table .compact-num{text-align:right!important;white-space:nowrap!important;font-size:7.4pt!important}
 .compact-table .compact-qty{text-align:center!important;white-space:nowrap!important;width:10mm}
 .compact-table .compact-line-total{font-weight:700!important}
 .compact-table tr.compact-item{break-inside:avoid;page-break-inside:avoid}
 .compact-gallery{display:flex;flex-direction:column;gap:1mm;width:23mm}
 .compact-gallery>img{display:block;width:23mm;height:23mm;object-fit:cover}
 .compact-gallery.single>img{height:23mm}
 .compact-extras{display:flex;gap:1mm}
 .compact-extras img{width:11mm;height:10mm;object-fit:cover;display:block}
 .empty-gallery{display:grid;place-items:center;background:#f1f1f1;color:#aaa;height:23mm;font-size:5pt;letter-spacing:.4px}
 .compact-bottom{display:flex;justify-content:space-between;gap:12mm;margin:7mm 0 6mm;break-inside:avoid}
 .compact-conditions{flex:1;max-width:112mm}.compact-conditions>strong{font-size:7pt;letter-spacing:.7px}
 .compact-conditions p{font-size:8pt;color:#555;margin:2mm 0;line-height:1.45}
 .compact-conditions .compact-notes{white-space:normal;margin-top:4mm}
 .compact-totals{width:60mm;display:flex;flex-direction:column;align-items:flex-end;gap:1.8mm}
 .compact-totals>div{display:flex;width:100%;justify-content:space-between;font-size:7.5pt;color:#555}
 .compact-totals small{font-size:6.7pt;color:#777;letter-spacing:.6px;margin-top:2mm}
 .compact-totals strong{font-size:18pt;font-weight:400;white-space:nowrap}
 .compact-footer{border-top:1px solid #aaa;padding-top:3.2mm;display:flex;justify-content:space-between;gap:8mm;font-size:6.8pt;color:#737373;break-inside:avoid}
 .compact-footer span:last-child{text-align:right;max-width:55%}
}
