:root{--orange:#ff4b12;--orange2:#ff6b36;--ink:#171717;--muted:#6b7280;--line:#e5e7eb;--bg:#f5f6f7;--card:#fff;--green:#167847;--red:#b8322a;--nav:#171717;--radius:16px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{touch-action:manipulation}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.wrap{max-width:1180px;margin:auto;padding:18px 18px 98px}.brandbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.brandbar img{width:138px;max-height:56px;object-fit:contain;background:#fff;border-radius:12px;padding:8px}.userpill{font-size:12px;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid var(--line);padding:8px 10px;border-radius:999px}.view{display:none}.view.active{display:block}.hero{background:linear-gradient(135deg,#181818,#303030);color:#fff;border-radius:20px;padding:20px;margin-bottom:14px}.hero .eyebrow{color:#bbb;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.hero h1{margin:7px 0 2px;font-size:26px}.hero p{margin:0;color:#d2d2d2;font-size:13px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.stat{padding:15px}.stat small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.stat strong{display:block;font-size:22px;margin-top:4px}.card{padding:16px;margin-bottom:14px}.card-title{font-size:12px;font-weight:800;color:var(--orange);text-transform:uppercase;letter-spacing:.07em;margin-bottom:13px}.grid{display:grid;gap:12px}.g2,.g3{grid-template-columns:1fr}.field label{display:block;font-size:11px;font-weight:800;color:#62666d;text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px}.field input,.field select,.field textarea{display:block;width:100%;min-height:46px;border:1px solid #d6d9de;border-radius:10px;background:#fff;padding:11px 12px;font-size:16px;outline:none}.field textarea{min-height:82px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px #ff4b1218}.actions{display:flex;flex-wrap:wrap;gap:9px}.btn{border:0;border-radius:11px;padding:11px 14px;min-height:44px;font-weight:750;cursor:pointer}.btn.primary{background:var(--orange);color:#fff}.btn.dark{background:#1b1b1b;color:#fff}.btn.good{background:var(--green);color:#fff}.btn.light{background:#fff;border:1px solid #d8dadd;color:var(--ink)}.btn.danger{background:#fff0ef;border:1px solid #ffc8c3;color:var(--red)}.btn:disabled{opacity:.5;cursor:not-allowed}.quote-head{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.quote-no,.quote-total{border-radius:16px;padding:15px;color:#fff}.quote-no{background:#181818}.quote-total{background:linear-gradient(135deg,var(--orange),var(--orange2))}.quote-no small,.quote-total small{display:block;opacity:.75;font-size:10px}.quote-no strong,.quote-total strong{display:block;font-size:22px;margin-top:4px}.items{display:grid;gap:10px}.item{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fcfcfc}.item-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.item-num{font-weight:800;font-size:12px;color:var(--muted)}.item-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.item-grid .wide{grid-column:1/-1}.item-amount{grid-column:1/-1;text-align:right;font-weight:800}.totals{margin-top:13px;border-top:1px solid var(--line);padding-top:12px;display:grid;gap:5px}.totalrow{display:flex;justify-content:space-between;gap:12px}.totalrow.grand{font-size:19px;font-weight:900}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:12px}.search{flex:1;min-width:180px;min-height:44px;border:1px solid #d7d9dd;border-radius:10px;padding:10px 12px;font-size:16px}.list{display:grid;gap:10px}.listrow{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff}.listrow .topline{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.listrow h3{font-size:14px;margin:0}.listrow .meta{font-size:12px;color:var(--muted);margin-top:4px}.listrow .amount{font-weight:850;white-space:nowrap}.listrow .rowactions{margin-top:10px;display:flex;gap:7px;flex-wrap:wrap}.empty{text-align:center;color:var(--muted);padding:28px 10px}.bottomnav{position:fixed;z-index:20;left:0;right:0;bottom:0;background:#171717;display:grid;grid-template-columns:repeat(5,1fr);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid #2e2e2e}.bottomnav button{border:0;background:transparent;color:#b7b7b7;min-height:55px;border-radius:10px;font-size:10px;font-weight:750;padding:6px 2px}.bottomnav button span{display:block;font-size:20px;line-height:20px;margin-bottom:3px}.bottomnav button.active{color:#fff;background:#292929;box-shadow:inset 0 3px 0 var(--orange)}.screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.authbox{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}.authbox img{width:170px;display:block;margin:0 auto 18px}.authbox h1{font-size:22px;margin:0 0 6px}.authbox p{font-size:13px;color:var(--muted);margin:0 0 18px}.authbox .field{margin-bottom:11px}.sep{border:0;border-top:1px solid var(--line);margin:18px 0}.notice{font-size:13px;padding:11px 12px;background:#fff7f3;border:1px solid #ffd8c8;border-radius:11px;margin-bottom:12px}.modal{position:fixed;inset:0;z-index:50;background:#0008;padding:18px;display:flex;align-items:center;justify-content:center}.modalbox{background:#fff;border-radius:18px;padding:17px;width:min(720px,100%);max-height:88%;overflow:auto}.modalhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.modalhead h2{font-size:18px;margin:0}.xbtn{border:0;background:#eee;border-radius:999px;width:40px;height:40px;font-size:20px}.toast{position:fixed;z-index:80;left:16px;right:16px;bottom:85px;background:#171717;color:#fff;border-radius:12px;padding:12px 14px;font-size:13px;box-shadow:0 8px 30px #0005}.toast.err{background:#8f2722}.installtip{font-size:12px;color:var(--muted);margin-top:9px}.setupcode{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#f3f4f6;border-radius:10px;padding:10px;overflow-wrap:anywhere}.dangerzone{border-color:#ffd2ce;background:#fffafa}@media(min-width:700px){.wrap{padding-bottom:32px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(4,1fr)}.bottomnav{position:sticky;top:0;bottom:auto;max-width:1180px;margin:0 auto 16px;border:1px solid #303030;border-radius:14px;padding:6px;grid-template-columns:repeat(5,150px);justify-content:center}.bottomnav button{min-height:48px;font-size:11px}.bottomnav button span{display:inline;font-size:16px;margin-right:5px}.item-grid{grid-template-columns:2fr .7fr .9fr .9fr}.item-grid .wide{grid-column:auto}.item-amount{grid-column:auto;align-self:end;padding-bottom:12px}.brandbar{margin-top:10px}}@media(min-width:980px){.wrap{padding-left:26px;padding-right:26px}.quote-head{grid-template-columns:1.4fr .6fr}.quote-no strong,.quote-total strong{font-size:28px}}

/* PDF HABIT - réplica visual de la hoja Cotización del XLSM */
/* PDF HABIT - V3: réplica medida desde PDF real exportado por Excel */
.habit-pdf-stage{position:absolute;left:-10000px;top:0;width:816px;height:1056px;overflow:hidden;background:#fff;z-index:-1}
.habit-pdf-page{width:816px;height:1056px;box-sizing:border-box;padding:17.6px 49.76px 23.84px 49.44px;background:#fff;color:#1f2f3d;font-family:Aptos,Calibri,Arial,sans-serif;font-size:11.52px;line-height:1;overflow:hidden}
.habit-pdf-page *{box-sizing:border-box}.habit-pdf-page table{border-spacing:0}
.pdf-top{height:78.88px;display:grid;grid-template-columns:270.96px 445.84px;gap:0}
.pdf-logo-box{display:flex;align-items:center;justify-content:flex-start;padding:0 0 0 16.64px;background:#fff;overflow:hidden}
.pdf-logo-box img{width:236.55px;height:78.56px;object-fit:contain;object-position:left center}
.pdf-title{background:#183750;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:18.72px;line-height:1.34;letter-spacing:0}
.pdf-title span{font-size:18.72px;margin-top:1px}
.pdf-orange-rule{height:5.12px;background:#F36F21}
.pdf-company{height:77.47px;position:relative;color:#6B7785;font-size:11.52px;line-height:1}
.pdf-company-copy{position:absolute;left:2.24px;top:2.63px;right:276px}
.pdf-company-copy strong{display:block;color:#183750;font-size:11.52px;line-height:14px;margin:0 0 8.1px 0;font-weight:700}
.pdf-company-copy div{font-weight:700;white-space:nowrap;margin-bottom:8.3px;color:#6B7785}
.pdf-date{position:absolute;right:0;top:-0.64px;width:275.91px;height:63.55px;border:0.96px solid #d8e0e7;background:#FFF3E8;display:grid;grid-template-rows:20.32px 42.27px;text-align:center}
.pdf-date b{display:flex;align-items:center;justify-content:center;color:#F36F21;font-size:11.52px;font-weight:700}
.pdf-date span{display:flex;align-items:center;justify-content:center;background:#fff;border-top:0.96px solid #d8e0e7;font-weight:700;color:#183750;font-size:11.52px}
.pdf-section{height:19.2px;display:grid;grid-template-columns:41.28px 1fr;color:#fff;font-weight:700;font-size:11.52px;line-height:19.2px;margin:0}
.pdf-section span{background:#F36F21;display:flex;align-items:center;justify-content:center}
.pdf-section b{background:#183750;display:flex;align-items:center;padding-left:2.08px;font-weight:700}
.pdf-data,.pdf-items,.pdf-totals{width:100%;border-collapse:collapse;table-layout:fixed;margin:0}
.pdf-data col.c1{width:25.52%}.pdf-data col.c2{width:24.58%}.pdf-data col.c3{width:23.75%}.pdf-data col.c4{width:26.15%}
.pdf-data td{height:15.04px;border:0.96px solid #d8e0e7;padding:0 2.24px;vertical-align:middle;font-size:11.52px;line-height:1;overflow:hidden}
.pdf-data .label{background:#EEF2F5;color:#48505A;font-weight:700}
.pdf-data .value{background:#fff;color:#243341;font-weight:400}
.pdf-data tr:first-child .value{font-weight:700;color:#1f2f3d}
.pdf-delivery td{height:15.04px}
.pdf-delivery .big{height:75.55px;vertical-align:middle;line-height:1.48;padding:0 2.24px;white-space:pre-wrap}
.pdf-delivery .center{text-align:center;background:#EAF5EE;font-weight:700;color:#2e7d4f}
.pdf-delivery{margin-bottom:12.5px}
.pdf-items th{height:18.24px;background:#2B526E;color:#fff;border:0.96px solid #d8e0e7;padding:0 2px;text-align:center;font-weight:700;font-size:11.52px;line-height:1}
.pdf-items td{height:18.08px;border-top:0;border-bottom:0.96px solid #d8e0e7;border-left:0;border-right:0;padding:0 2.24px;overflow:hidden;vertical-align:middle;font-size:11.52px;line-height:1;background:#fff}
.pdf-items .alt td{background:#fff}
.pdf-items th:nth-child(1),.pdf-items .c-item{width:5.74%}.pdf-items th:nth-child(2),.pdf-items .c-desc{width:44.32%}.pdf-items th:nth-child(3),.pdf-items .c-qty{width:11.45%}.pdf-items th:nth-child(4),.pdf-items .c-unit{width:24.56%}.pdf-items th:nth-child(5),.pdf-items .c-import{width:13.93%}.pdf-items .c-item{text-align:center}.pdf-items .c-desc{text-align:left}.pdf-items .c-qty,.pdf-items .c-unit,.pdf-items .c-import{text-align:right;white-space:nowrap}
.pdf-totals{width:275.91px;height:56.48px;margin-left:auto;margin-top:-0.16px}
.pdf-totals td{height:18.08px;padding:0 2.24px;font-weight:700;font-size:11.52px;line-height:1}.pdf-totals td:first-child{width:176.19px;background:#183750;color:#fff}.pdf-totals td:last-child{width:99.72px;background:#F36F21;color:#fff;text-align:right;padding-right:2.4px}.pdf-totals .grand td{height:20.32px;border-top:0;font-size:11.52px}
.pdf-totals + .pdf-section{margin-top:-1.6px}
.pdf-bank{margin:0 0 13.9px 0}
.pdf-bank td{height:15.04px}
.pdf-observations{height:60px;border:0.96px solid #d8e0e7;padding:3px 2.24px;background:#fff;white-space:pre-wrap;overflow:hidden;font-size:11.52px;line-height:1.3}
.pdf-signature-area{height:184.03px;position:relative;background:#F7F9FB}
.pdf-signature-spacer{display:none}
.pdf-signature-box{position:absolute;right:0;top:0;width:275.91px;height:184.03px;text-align:center;color:#48505A;background:transparent;padding:0}
.pdf-signature-img{position:absolute;left:61.4%;top:4.9px;transform:translateX(-50%);width:162.91px;height:112.75px;object-fit:contain;mix-blend-mode:multiply}
.pdf-signature-name{position:absolute;left:0;right:0;top:94.29px;font-weight:700;color:#183750;font-size:11.52px;line-height:14px}
.pdf-signature-role{position:absolute;left:0;right:0;top:131.45px;font-weight:700;color:#48505A;font-size:11.52px;line-height:14px;margin:0}
.pdf-signature-company{position:absolute;left:-34px;right:-34px;top:149.53px;font-weight:700;color:#48505A;font-size:11.52px;line-height:14px;margin:0}
.email-fields{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:12px}.email-preview{border:1px solid var(--line);border-radius:12px;max-height:430px;overflow:auto;background:#f3f3f3;padding:8px;margin-bottom:12px}.email-preview table{max-width:100%}@media(min-width:700px){.email-fields{grid-template-columns:1fr 1fr}.email-fields .field:last-child{grid-column:1/-1}}
