:root{--bg:#f7f4ed;--panel:#fff;--panel-2:#eef4f1;--text:#17211d;--muted:#68736e;--line:#dfe5df;--brand:#1f6f58;--brand-dark:#15533f;--accent:#d15a35;--danger:#ad2f2f;--shadow:0 18px 42px #1b26211a}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:0}.shell{max-width:1120px;margin:0 auto;padding:28px 18px 40px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--brand);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.brand h1{margin:0;font-size:24px;line-height:1.1}.brand p{color:var(--muted);margin:4px 0 0}.tabs{border:1px solid var(--line);background:#e8eee9;border-radius:8px;padding:4px;display:flex}.top-actions{align-items:center;gap:10px;display:flex}.tab{color:var(--muted);background:0 0;border-radius:6px;align-items:center;gap:8px;min-height:38px;padding:0 14px;display:flex}.tab.active{color:var(--text);background:#fff;box-shadow:0 2px 8px #1a262114}.grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:64px;padding:16px 18px;display:flex}.panel-header h2,.panel-header h3{margin:0;font-size:18px}.meta{color:var(--muted);font-size:14px}.content{padding:18px}.add-form{grid-template-columns:minmax(0,1fr) 88px 90px 46px;gap:10px;margin-bottom:16px;display:grid}.field{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:8px;min-width:0;min-height:44px;padding:0 12px}.compact-field{max-width:180px}.icon-btn,.primary,.secondary,.danger-btn{border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 14px;display:inline-flex}.icon-btn{aspect-ratio:1;background:var(--brand);color:#fff;padding:0}.primary{background:var(--brand);color:#fff;width:100%}.secondary{background:var(--panel-2);color:var(--brand-dark)}.secondary:hover{background:#dfeae4}.danger-btn{color:var(--danger);background:#f6e6e3}.shopping-list{gap:8px;display:grid}.item-row{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:58px;padding:8px 10px;display:grid}.check{border:1px solid var(--line);color:#0000;background:#fff;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.checked .check{background:var(--brand);border-color:var(--brand);color:#fff}.checked .item-name{color:var(--muted);text-decoration:line-through}.item-name{overflow-wrap:anywhere;font-weight:700}.item-detail{color:var(--muted);margin-top:3px;font-size:14px}.empty{color:var(--muted);text-align:center;background:#fbfcfa;border:1px dashed #b9c5bd;border-radius:8px;justify-content:center;align-items:center;min-height:120px;display:flex}.checkout{gap:12px;display:grid}.total-input{height:58px;font-size:28px;font-weight:700}.stat-list{gap:10px;display:grid}.stat{background:var(--panel-2);border-radius:8px;justify-content:space-between;align-items:center;padding:14px;display:flex}.stat strong{font-size:20px}.history-table{gap:8px;display:grid}.scan-content{gap:14px;display:grid}.qr-reader{background:#111a16;border-radius:8px;min-height:260px;overflow:hidden}.qr-reader:empty{color:#ffffffb3;justify-content:center;align-items:center;display:flex}.qr-reader:empty:before{content:"Camera pronta para leitura"}.scan-manual{gap:10px;display:grid}.scan-submit{gap:8px}.scan-jobs{gap:10px;display:grid}.scan-job{border:1px solid var(--line);border-radius:8px;gap:8px;padding:12px;display:grid}.scan-job-done{background:#f2faf5;border-color:#cfe7d6}.scan-job-failed{background:#fff5f3;border-color:#efc9c0}.scan-job-pending{background:#fffaf0;border-color:#ecd8ad}.scan-job p{color:#8a3327;margin:0;font-size:13px;line-height:1.45}.purchase-row{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;padding:13px 14px;display:flex}.toast{color:#6f3d15;background:#fff4e8;border:1px solid #efcaa0;border-radius:8px;margin-top:12px;padding:12px}.login-shell{background:linear-gradient(90deg,#f7f4edfa,#f7f4ede6),repeating-linear-gradient(135deg,#1f6f5814 0 1px,#0000 1px 18px);justify-content:center;align-items:center;min-height:100vh;padding:28px;display:flex}.login-stage{grid-template-columns:minmax(0,1fr) 420px;align-items:stretch;gap:28px;width:100%;max-width:1040px;display:grid}.login-copy{align-content:center;padding:34px 10px;display:grid}.login-logo{background:var(--brand);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:50px;height:50px;margin-bottom:26px;display:flex}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:13px;font-weight:800}.login-copy h1{color:#131a17;max-width:680px;margin:0;font-size:46px;line-height:1.04}.login-lead{color:#4f5b56;max-width:610px;margin:20px 0 0;font-size:18px;line-height:1.55}.login-preview{background:#ffffffc2;border:1px solid #dde4deeb;border-radius:8px;gap:10px;max-width:440px;margin-top:34px;padding:14px;display:grid;box-shadow:0 16px 42px #1d27221a}.preview-top,.preview-line,.preview-total{justify-content:space-between;align-items:center;display:flex}.preview-top{color:var(--muted);padding:4px 2px 8px;font-size:14px}.preview-line{border:1px solid var(--line);background:#f7faf7;border-radius:8px;min-height:44px;padding:0 12px}.preview-total{color:#fff;background:#183f35;border-radius:8px;gap:10px;min-height:50px;margin-top:2px;padding:0 12px}.preview-total span{color:#ffffffb8;flex:1}.login-panel{box-shadow:var(--shadow);background:#fffffff0;border:1px solid #dde4def2;border-radius:8px;align-self:center;width:100%;padding:28px}.login-panel-head{align-items:center;gap:14px;margin-bottom:28px;display:flex}.secure-mark{color:var(--brand);background:#edf5f1;border:1px solid #d8e7df;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.login-panel h2{margin:0;font-size:22px;line-height:1.15}.login-panel p{color:var(--muted);margin:5px 0 0;line-height:1.45}.login-form{gap:10px;display:grid}.login-label{color:#35413c;font-size:13px;font-weight:800}.login-input-wrap{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:50px;padding:0 14px;display:flex}.login-input-wrap:focus-within{border-color:#1f6f5880;box-shadow:0 0 0 3px #1f6f5824}.login-input{color:var(--text);border:0;flex:1;min-width:0}.login-input:focus{outline:0}.login-submit{justify-content:space-between;min-height:50px;margin-top:6px;font-weight:800}.login-footnote{margin-top:8px;font-size:13px}.install-btn{color:var(--brand-dark);background:#f6faf7;border:1px solid #d8e7df;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:46px;padding:0 14px;font-weight:800;display:inline-flex}.install-btn:hover{background:#edf5f1}.install-btn-compact{width:auto;min-height:44px}.install-modal{z-index:50;background:#131a1761;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.install-card{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;max-width:380px;padding:22px;box-shadow:0 24px 70px #131a1738}.install-card-icon{color:var(--brand);background:#edf5f1;border:1px solid #d8e7df;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:14px;display:flex}.install-card h3{margin:0;font-size:20px}.install-card p{color:var(--muted);margin:8px 0 18px;line-height:1.5}@media (max-width:860px){.topbar{flex-direction:column;align-items:flex-start}.tabs{width:100%}.top-actions{flex-direction:column;align-items:stretch;width:100%}.tab{flex:1}.grid,.login-stage{grid-template-columns:1fr}.login-copy{padding:10px 0 0}.login-copy h1{font-size:34px}.login-lead{font-size:16px}}@media (max-width:560px){.shell{padding:18px 12px 28px}.brand h1{font-size:21px}.add-form{grid-template-columns:minmax(0,1fr) 76px 76px 46px}.panel-header{flex-direction:column;align-items:flex-start;gap:6px}.login-shell{padding:14px}.login-preview{display:none}.login-panel{padding:20px}}
