:root{--green:#1faa55;--green-dark:#157a3c;--whatsapp:#25d366;--ink:#17251c;--muted:#6b7a6f;--bg:#f4f7f4;--card:#fff;--line:#dde5dd;--danger:#c0392b;--amber:#b7791f;--radius:14px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app{background:var(--bg);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.app-header{z-index:20;background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;font-weight:800;display:inline-flex}.brand-name{letter-spacing:-.02em;font-size:20px;font-weight:800}.header-actions{align-items:center;gap:8px;display:flex}.lang-toggle{border:1px solid var(--line);background:#eef3ee;border-radius:999px;display:inline-flex;overflow:hidden}.lang-toggle button{color:var(--muted);background:0 0;border:0;min-height:36px;padding:7px 12px;font-weight:700}.lang-toggle button.active{background:var(--green);color:#fff}.lang-toggle.big button{min-height:48px;padding:10px 22px}.icon-btn{border:1px solid var(--line);background:#eef3ee;border-radius:999px;width:38px;height:38px;font-size:17px}.icon-btn.active{background:var(--green)}.app-main{flex:1;padding:14px 14px 92px}.tabbar{background:var(--card);border-top:1px solid var(--line);width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom);z-index:20;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--muted);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;min-height:58px;padding:8px 2px 10px;display:flex}.tab-icon{font-size:20px;line-height:1}.tab-label{font-size:11px;font-weight:600}.tab.active{color:var(--green-dark)}.tab.active .tab-icon{transform:scale(1.12)}.screen{flex-direction:column;gap:12px;display:flex}.tagline{color:var(--muted);margin:2px 0 0;font-size:14px}.section-title{margin:4px 0 0;font-size:20px}.section-subtitle{margin:8px 0 0;font-size:16px}.hint{color:var(--muted);margin:0;font-size:13.5px}.empty{color:var(--muted);padding:14px 4px}.btn{border-radius:var(--radius);min-height:48px;color:var(--ink);text-align:center;background:#eef3ee;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:12px 16px;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:var(--green);color:#fff}.btn-primary:active{background:var(--green-dark)}.btn-whatsapp{background:var(--whatsapp);color:#07301a}.btn-outline{background:var(--card);border-color:var(--green);color:var(--green-dark)}.btn-ghost{color:var(--muted);background:0 0;min-height:40px;padding:8px 10px}.btn-ghost.danger,.btn.danger{color:var(--danger)}.btn-big{width:100%;min-height:56px;font-size:17px}.btn-block{width:100%}.btn-small{border-radius:10px;min-height:38px;padding:6px 10px;font-size:13.5px}.btn-stack{flex-direction:column;gap:8px;margin-top:4px;display:flex}.btn-row{align-items:center;gap:8px;display:flex}.field{color:var(--muted);flex-direction:column;gap:5px;font-size:13.5px;font-weight:600;display:flex}.field input,.field select{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:12px;width:100%;min-height:48px;padding:12px;font-size:16px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.error-msg{color:var(--danger);margin:0;font-size:14px;font-weight:600}.ok-msg{color:var(--green-dark);margin:0;font-size:14px;font-weight:700}.form-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;display:flex}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:2px;padding:12px 10px;display:flex}.stat-card.wide{text-align:left;align-items:flex-start;padding:14px}.stat-num{font-size:19px;font-weight:800}.stat-label{color:var(--muted);font-size:11.5px;font-weight:600}.quote-list,.price-list,.invoice-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.quote-row{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 12px;display:flex}.quote-main{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:1px;min-width:0;padding:2px 0;display:flex;overflow:hidden}.quote-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;font-weight:700;display:block;overflow:hidden}.quote-sub{min-width:0;max-width:100%;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;display:block;overflow:hidden}.quote-amount{white-space:nowrap;flex-shrink:0;font-weight:800}.quote-row .chip,.quote-row>.btn{flex-shrink:0}@media (width<=430px){.quote-row{flex-wrap:wrap;gap:6px 8px}.quote-main{flex:140px}}.chip{white-space:nowrap;color:var(--muted);background:#eef3ee;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.chip-draft{color:#546e7a;background:#eceff1}.chip-sent{color:#1565c0;background:#e3f0ff}.chip-accepted{color:var(--green-dark);background:#e6f4ea}.chip-invoiced{color:#6a1b9a;background:#f3e8fd}.chip-inv-pending{color:var(--danger);background:#fdecea}.chip-inv-partial{color:var(--amber);background:#fff4d6}.chip-inv-paid{color:var(--green-dark);background:#e6f4ea}.item-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:12px;display:flex}.item-desc{border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:10px;font-size:15px}.item-row{align-items:center;gap:8px;display:flex}.stepper{border:1px solid var(--line);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{background:#eef3ee;border:0;width:40px;height:44px;font-size:18px;font-weight:800}.stepper input{text-align:center;border:0;width:46px;height:44px;font-size:16px;font-weight:700}.price-input{border:1px solid var(--line);background:var(--card);border-radius:10px;align-items:center;gap:2px;padding:0 8px;display:inline-flex}.price-input input{border:0;outline:none;width:74px;height:44px;font-size:16px;font-weight:700}.price-input.grow{flex:1}.price-input.grow input{width:100%}.item-total{margin-left:auto;font-weight:800}.totals-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.totals-row{justify-content:space-between;align-items:center;font-size:15px;display:flex}.totals-grand{border-top:1px dashed var(--line);padding-top:6px;font-size:18px;font-weight:800}.pct-input{border:1px solid var(--line);text-align:center;border-radius:7px;width:44px;padding:3px 4px;font-weight:700}.estimate-doc{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:20px 18px 24px;box-shadow:0 2px 10px #17251c0f}.doc-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.doc-business{letter-spacing:-.01em;margin:0;font-size:21px}.doc-contact{color:var(--muted);margin:2px 0 0;font-size:13px}.doc-badge{background:var(--green);color:#fff;letter-spacing:.08em;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:800}.doc-meta{gap:28px;margin-top:16px;display:flex}.doc-meta>div{flex-direction:column;gap:1px;display:flex}.doc-label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11px;font-weight:700}.doc-job{margin:16px 0 8px;font-size:17px}.doc-table{border-collapse:collapse;width:100%;font-size:14px}.doc-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--line);padding:6px 4px;font-size:11.5px}.doc-table td{border-bottom:1px solid var(--line);padding:8px 4px}.doc-table .num{text-align:right;white-space:nowrap}.doc-totals{flex-direction:column;gap:4px;margin-top:12px;font-size:14.5px;display:flex}.doc-totals>div{justify-content:space-between;display:flex}.doc-grand{border-top:2px solid var(--ink);margin-top:4px;padding-top:6px;font-size:17px;font-weight:800}.doc-note{color:var(--muted);margin-top:16px;font-size:13px}.doc-thanks{margin:6px 0 0;font-size:14px;font-weight:700}.price-row{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 12px;display:flex}.price-names{flex-direction:column;flex:1;min-width:0;display:flex}.price-es{font-weight:700}.price-en{color:var(--muted);font-size:12.5px}.price-amount{text-align:right;font-weight:800}.price-amount small{color:var(--muted);font-weight:600}.row-actions{gap:2px;display:flex}.invoice-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.invoice-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.invoice-job{color:var(--muted);margin:0;font-size:13.5px}.invoice-lines{flex-wrap:wrap;gap:4px 16px;font-size:14px;display:flex}.invoice-dates{color:var(--muted);margin:0;font-size:12.5px}.pay-row{align-items:center;gap:8px;margin-top:4px;display:flex}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.paywall-price{margin:0;font-size:34px;font-weight:800}.paywall-price span{color:var(--muted);font-size:16px;font-weight:600}.sync-banner{z-index:30;color:var(--amber);text-align:center;background:#fdf3e0;border-bottom:1px solid #ecd9ac;padding:9px 14px;font-size:13.5px;font-weight:700;position:sticky;top:0}.field textarea{border:1px solid var(--line);background:var(--card);color:var(--ink);resize:vertical;border-radius:12px;width:100%;padding:12px;font-family:inherit;font-size:16px}.item-card.flagged{border-color:var(--amber);background:#fffaf0}.flag-note{color:var(--amber);margin:0;font-size:12.5px;font-weight:700}.photo-preview{flex-direction:column;gap:8px;display:flex}.photo-preview img{object-fit:cover;border:1px solid var(--line);border-radius:12px;width:100%;max-height:240px}@media print{.no-print,.app-header,.tabbar{display:none!important}body,.app,.app-main{background:#fff;max-width:none;padding:0}.estimate-doc{box-shadow:none;border:0;border-radius:0;padding:8px}}
