*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f0f0f;--bg2: #1a1a1a;--bg3: #252525;--border: #2e2e2e;--text: #f0f0f0;--text2: #a0a0a0;--accent: #4ade80;--accent2: #16a34a;--danger: #ef4444;--warning: #f59e0b;--radius: 12px;--radius-sm: 8px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#app{min-height:100dvh;display:flex;flex-direction:column;max-width:480px;margin:0 auto}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;transition:opacity .15s}.btn:active{opacity:.7}.btn--primary{background:var(--accent);color:#0f0f0f}.btn--ghost{background:var(--bg3);color:var(--text)}.btn--danger{background:var(--danger);color:#fff}.btn--icon{padding:8px;border-radius:50%;background:var(--bg3);color:var(--text2)}.btn--icon.active{color:var(--accent)}.fab{position:fixed;bottom:calc(72px + env(safe-area-inset-bottom));right:20px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#0f0f0f;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #4ade8059;z-index:10;transition:transform .15s}.fab:active{transform:scale(.92)}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.page-header{display:flex;align-items:center;gap:10px;padding:16px;background:var(--bg);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--border)}.page-header h1{font-size:18px;font-weight:700;flex:1}.page-content{flex:1;padding:12px 16px;display:flex;flex-direction:column;gap:10px}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text2);text-align:center;padding:48px 24px}.empty-state i{width:48px;height:48px;opacity:.4}.empty-state p{font-size:15px}.bottom-nav{display:flex;background:var(--bg2);border-top:1px solid var(--border);padding:8px 0;padding-bottom:calc(8px + env(safe-area-inset-bottom));position:sticky;bottom:0;z-index:10}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;color:var(--text2);font-size:10px;font-weight:500;transition:color .15s}.bottom-nav button.active{color:var(--accent)}.bottom-nav button i{width:22px;height:22px}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:600;background:var(--bg3);color:var(--text2)}.badge--green{background:#4ade8026;color:var(--accent)}.badge--red{background:#ef444426;color:var(--danger)}.badge--yellow{background:#f59e0b26;color:var(--warning)}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{font-size:13px;color:var(--text2);font-weight:500}.input-group input,.input-group select{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 12px;font-size:15px;outline:none;transition:border-color .15s;width:100%}.input-group input:focus,.input-group select:focus{border-color:var(--accent)}.divider{height:1px;background:var(--border);margin:4px 0}.loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text2);font-size:14px}.toast{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%) translateY(8px);background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 18px;font-size:14px;white-space:nowrap;opacity:0;transition:opacity .25s,transform .25s;z-index:100;pointer-events:none}.toast--visible{opacity:1;transform:translate(-50%) translateY(0)}.toast--erro{border-color:var(--danger);color:var(--danger)}.toast--sucesso{border-color:var(--accent);color:var(--accent)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg2);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:480px;max-height:90dvh;overflow-y:auto;padding:20px 16px;padding-bottom:calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.sheet-header h2{font-size:17px;font-weight:700}.login-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;gap:32px}.login-logo{display:flex;flex-direction:column;align-items:center;gap:12px}.login-logo i{width:56px;height:56px;color:var(--accent)}.login-logo h1{font-size:26px;font-weight:800}.login-logo p{font-size:14px;color:var(--text2);text-align:center}.login-form{width:100%;display:flex;flex-direction:column;gap:14px}.login-form .btn{width:100%;justify-content:center;padding:13px}.login-form .btn--ghost{background:transparent;border:1px solid var(--border);margin-top:4px}.login-error{font-size:13px;color:var(--danger);text-align:center;min-height:18px}.produto-card{display:flex;align-items:center;gap:12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.produto-icon{font-size:22px;width:40px;text-align:center;flex-shrink:0}.produto-info{flex:1;min-width:0}.produto-info .nome{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.produto-info .meta{font-size:12px;color:var(--text2)}.produto-actions{display:flex;gap:6px}.categoria-label{display:flex;align-items:center;gap:8px;padding:6px 0 4px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text2)}.categorias-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cat-chip{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:var(--radius-sm);border:2px solid var(--border);background:var(--bg3);cursor:pointer;font-size:11px;color:var(--text2);font-weight:600;transition:border-color .15s,color .15s}.cat-chip span{font-size:20px}.cat-chip.selected{border-color:var(--accent);color:var(--accent)}.unidade-toggle{display:flex;gap:8px}.unidade-btn{flex:1;padding:9px;border-radius:var(--radius-sm);border:2px solid var(--border);background:var(--bg3);color:var(--text2);font-size:13px;font-weight:600;text-align:center;cursor:pointer;transition:border-color .15s,color .15s}.unidade-btn.selected{border-color:var(--accent);color:var(--accent)}.tipo-toggle{display:flex;flex-direction:column;gap:8px}.tipo-btn{padding:13px 14px;border-radius:var(--radius-sm);border:2px solid var(--border);background:var(--bg3);color:var(--text);font-size:14px;font-weight:600;text-align:left;cursor:pointer;transition:border-color .15s,color .15s}.tipo-btn.selected{border-color:var(--accent);color:var(--accent)}.busca-wrap{display:flex;align-items:center;gap:8px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px}.busca-wrap i{width:18px;height:18px;color:var(--text2);flex-shrink:0}.busca-wrap input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:15px;padding:11px 0}.filtro-grupo{display:flex;flex-direction:column;gap:6px}.filtro-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text2)}.filtro-chips{display:flex;flex-wrap:wrap;gap:6px}.filtro-chip{padding:6px 12px;border-radius:99px;font-size:13px;font-weight:600;background:var(--bg3);color:var(--text2);border:1px solid var(--border);cursor:pointer;transition:all .15s}.filtro-chip.active{background:var(--accent);color:#0f0f0f;border-color:var(--accent)}.variante-lista{display:flex;flex-direction:column;gap:8px}.variante-card{display:flex;align-items:stretch;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.variante-main{flex:1;display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;min-width:0}.variante-main:active{background:var(--bg3)}.variante-main .info{flex:1;min-width:0}.variante-main .nome{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.variante-main .preco{font-size:12px;color:var(--text2)}.variante-actions{display:flex;flex-direction:column;border-left:1px solid var(--border)}.variante-actions button{flex:1;border-radius:0;background:none;padding:0 12px}.por-unidade{font-size:.7em;color:var(--text2);font-weight:600}.compra-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.compra-card-header{display:flex;align-items:center;justify-content:space-between}.compra-card-header .mercado{font-weight:700;font-size:15px}.compra-card-header .data{font-size:13px;color:var(--text2)}.compra-card-total{font-size:20px;font-weight:800;color:var(--accent)}.compra-card-itens{font-size:13px;color:var(--text2)}.compra-form{display:flex;flex-direction:column;gap:14px}.itens-lista{display:flex;flex-direction:column;gap:8px}.item-row{background:var(--bg3);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.item-row-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:14px}.item-row-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.item-row-fields .input-group label{font-size:12px}.item-row-fields .input-group input{padding:8px 10px;font-size:14px}.add-item-btn{display:flex;align-items:center;gap:8px;padding:10px;border-radius:var(--radius-sm);border:1px dashed var(--border);color:var(--text2);font-size:14px;justify-content:center;cursor:pointer;transition:border-color .15s,color .15s}.add-item-btn:hover{border-color:var(--accent);color:var(--accent)}.por-kg-hint{font-size:12px;color:var(--accent);font-weight:600;margin-top:-2px}.item-tipo-toggle{display:flex;gap:6px}.item-tipo-btn{flex:1;padding:7px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg2);color:var(--text2);font-size:12px;font-weight:600;text-align:center;cursor:pointer;transition:all .15s}.item-tipo-btn.selected{border-color:var(--accent);color:var(--accent);background:#4ade8014}.item-nome-input{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:7px 10px;font-size:14px;font-weight:600;outline:none}.item-nome-input:focus{border-color:var(--accent)}.item-cat-btn{flex-shrink:0;font-size:18px;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--bg2);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center}.item-cat-btn:active{border-color:var(--accent)}.total-preview{display:flex;justify-content:space-between;align-items:center;padding:12px 0 0;border-top:1px solid var(--border);font-weight:700}.total-preview span:last-child{color:var(--accent);font-size:20px}.historico-produto-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:border-color .15s}.historico-produto-card:active{border-color:var(--accent)}.historico-produto-card .info{flex:1}.historico-produto-card .nome{font-weight:600}.historico-produto-card .preco{font-size:13px;color:var(--text2)}.tendencia-alta{color:var(--danger)}.tendencia-baixa{color:var(--accent)}.grafico-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;overflow:hidden}.grafico-titulo{font-size:13px;color:var(--text2);margin-bottom:12px}.grafico-wrap svg{width:100%;display:block}.comparacao-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;display:flex;align-items:center;gap:10px}.comparacao-item .mercado-nome{flex:1;font-weight:600;font-size:14px}.comparacao-item .preco-med{font-size:16px;font-weight:700}.comparacao-item .preco-range{font-size:11px;color:var(--text2)}.comparacao-item.melhor{border-color:var(--accent)}.comparacao-item.melhor .preco-med{color:var(--accent)}.historico-tabs{display:flex;gap:8px;padding:0 0 4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0}.historico-tabs::-webkit-scrollbar{display:none}.historico-tab{padding:6px 14px;border-radius:99px;font-size:13px;font-weight:600;background:var(--bg3);color:var(--text2);cursor:pointer;border:1px solid var(--border);transition:all .15s;flex-shrink:0;white-space:nowrap}.historico-tab.active{background:var(--accent);color:#0f0f0f;border-color:var(--accent)}.resumo-total{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;display:flex;flex-direction:column;gap:4px}.resumo-total .label{font-size:13px;color:var(--text2)}.resumo-total .valor{font-size:34px;font-weight:800;color:var(--accent)}.resumo-total .sub{font-size:13px;color:var(--text2)}.resumo-alerta{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);font-size:14px}.resumo-alerta.alta{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.resumo-alerta.baixa{background:#4ade801a;border:1px solid rgba(74,222,128,.3);color:#86efac}.resumo-alerta i{width:16px;height:16px;flex-shrink:0;margin-top:2px}.resumo-mercado-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;display:flex;justify-content:space-between;align-items:center}.resumo-mercado-card .nome{font-weight:600}.resumo-mercado-card .total{font-weight:700;color:var(--accent)}.mes-nav{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.mes-nav span{font-size:16px;font-weight:700}.lista-item{display:flex;align-items:center;gap:12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;transition:opacity .2s}.lista-item.comprado{opacity:.45}.lista-item.comprado .nome{text-decoration:line-through}.lista-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all .15s}.lista-check.checked{background:var(--accent);border-color:var(--accent);color:#0f0f0f}.lista-check i{width:14px;height:14px}.lista-item .nome{flex:1;font-size:15px;font-weight:500;min-width:0}.lista-item .icone{font-size:20px;flex-shrink:0}.lista-preco{text-align:right;flex-shrink:0;line-height:1.15}.lista-preco .ult{font-weight:700;font-size:14px}.lista-preco .med{font-size:11px;color:var(--text2)}.lista-titulo{flex:1;display:flex;align-items:center;gap:6px;font-size:18px;font-weight:700;color:var(--text);text-align:left}.lista-titulo i{width:18px;height:18px;color:var(--text2)}.lista-estimado{display:flex;justify-content:space-between;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;font-weight:700}.lista-estimado span:last-child{color:var(--accent);font-size:18px}.lista-progress{display:flex;align-items:center;justify-content:space-between;padding:4px 2px;font-size:13px;color:var(--text2)}.lista-progress-bar{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}.lista-progress-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s}.nota-captura{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:20px 8px}.nota-captura>i{width:48px;height:48px;color:var(--accent)}.nota-captura p{font-size:15px}.nota-dica{font-size:12px;color:var(--text2)}.nota-foto-btn{width:100%;justify-content:center;padding:13px;margin-top:4px;cursor:pointer}.nota-processando{display:flex;flex-direction:column;align-items:center;gap:14px;padding:32px 16px;text-align:center}.nota-spinner{width:40px;height:40px;border:3px solid var(--bg3);border-top-color:var(--accent);border-radius:50%;animation:nota-spin .8s linear infinite}@keyframes nota-spin{to{transform:rotate(360deg)}}.nota-progress-bar{width:100%;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}.nota-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.nota-progress-indeterminado{width:40%;animation:nota-indeterminado 1.1s ease-in-out infinite}@keyframes nota-indeterminado{0%{margin-left:-40%}to{margin-left:100%}}.nota-revisao{display:flex;flex-direction:column;gap:12px}.nota-itens-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;padding-top:4px}.nota-itens-header span:last-child{color:var(--accent);font-size:16px}.nota-item{display:flex;gap:10px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;transition:opacity .2s}.nota-item.excluido{opacity:.4}.nota-item-body{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.nota-item-nome{background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px 10px;font-size:14px;font-weight:600;outline:none;width:100%}.nota-item-nome:focus{border-color:var(--accent)}.nota-item-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nota-item-cat{background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:4px 8px;font-size:12px;outline:none}.nota-trocar-match{font-size:12px;color:var(--accent);text-decoration:underline;background:none}.nota-item-precos{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nota-item-precos .input-group label{font-size:11px}.nota-item-precos .input-group input{padding:7px 10px;font-size:14px}.nota-vazio{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:24px 16px;color:var(--text2)}.nota-vazio i{width:36px;height:36px;color:var(--warning)}
