:root{--bg: #faf7f0;--bg-card: #ffffff;--bg-soft: #f0ebde;--ink: #1a1a1a;--ink-soft: #5c5750;--ink-faded: #8c857a;--line: #e5dfd0;--accent: #1f5132;--accent-soft: #2d7449;--sale: #c2410c;--sale-bg: #fde8d4;--display: "Fraunces", "Times New Roman", serif;--body: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--radius: 12px;--radius-sm: 6px;--shadow-sm: 0 1px 2px rgba(20, 18, 14, .04);--shadow: 0 1px 3px rgba(20, 18, 14, .06), 0 8px 24px -8px rgba(20, 18, 14, .08)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--body);background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{min-height:100dvh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:0;background:var(--accent);color:#fff;padding:.7rem 1.2rem;border-radius:var(--radius-sm);font-weight:500;font-size:.95rem;transition:background .12s,transform 80ms}button:hover:not(:disabled){background:var(--accent-soft)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}button.ghost:hover:not(:disabled){background:var(--bg-soft);color:var(--ink)}button.danger{background:transparent;color:var(--sale);border:1px solid var(--sale)}button.danger:hover:not(:disabled){background:var(--sale);color:#fff}input{font-family:inherit;font-size:1rem;padding:.75rem .9rem;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);transition:border-color .12s}input:focus{outline:none;border-color:var(--accent)}.app-header{background:var(--bg-card);border-bottom:1px solid var(--line);padding:.9rem 1.25rem;display:flex;align-items:baseline;justify-content:space-between;position:sticky;top:0;z-index:10}.app-header h1{font-family:var(--display);font-size:1.45rem;font-weight:600;letter-spacing:-.01em;font-variation-settings:"opsz" 36}.app-header h1 .accent{color:var(--accent);font-style:italic}.app-header .meta{font-size:.78rem;color:var(--ink-faded);letter-spacing:.05em;text-transform:uppercase}main{flex:1;padding:1rem 1.25rem 6rem;max-width:720px;margin:0 auto;width:100%}.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:.5rem 0 max(.5rem,env(safe-area-inset-bottom));z-index:10}.tabbar a{flex:1;text-align:center;text-decoration:none;color:var(--ink-faded);font-size:.78rem;font-weight:500;padding:.45rem 0;transition:color .12s;display:flex;flex-direction:column;align-items:center;gap:.15rem}.tabbar a.active{color:var(--accent)}.tabbar a svg{width:22px;height:22px}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm)}.card+.card{margin-top:.75rem}.empty{text-align:center;padding:3rem 1rem;color:var(--ink-faded)}.empty h2{font-family:var(--display);font-weight:500;font-size:1.3rem;margin-bottom:.5rem;color:var(--ink-soft)}.product-row{display:flex;gap:.9rem;align-items:flex-start;padding:.9rem 0;border-bottom:1px solid var(--line)}.product-row:last-child{border-bottom:none}.product-row .img{width:56px;height:56px;flex-shrink:0;background:var(--bg-soft);border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.product-row .img img{width:100%;height:100%;object-fit:contain}.product-row .body{flex:1;min-width:0}.product-row .name{font-size:.95rem;font-weight:500;margin-bottom:.3rem;line-height:1.3}.product-row .name.no-brand{padding-top:0}.product-row .brand{font-size:.78rem;color:var(--ink-faded);margin-bottom:.25rem}.product-row .prices{display:flex;flex-wrap:wrap;gap:.4rem .7rem;font-size:.82rem;color:var(--ink-soft)}.product-row .prices span{display:inline-flex;align-items:baseline;gap:.2rem}.product-row .prices strong{font-feature-settings:"tnum";color:var(--ink);font-weight:500}.product-row .action{flex-shrink:0}.product-row .action button{padding:.5rem .75rem;font-size:.85rem}.badge{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.05em;padding:.15rem .5rem;background:var(--sale-bg);color:var(--sale);border-radius:3px;text-transform:uppercase;margin-bottom:.3rem}.search-bar{position:sticky;top:0;z-index:5;background:var(--bg);padding:.5rem 0 1rem;margin:-.5rem 0 0}.form{max-width:380px;margin:3rem auto 0}.form h2{font-family:var(--display);font-size:2rem;font-weight:500;margin-bottom:.25rem;font-variation-settings:"opsz" 80;letter-spacing:-.02em}.form .subtitle{color:var(--ink-faded);margin-bottom:2rem}.form .field{margin-bottom:.9rem}.form .field label{display:block;font-size:.85rem;color:var(--ink-soft);margin-bottom:.35rem}.form button{width:100%;padding:.85rem;font-size:1rem}.form .switch{text-align:center;margin-top:1rem;font-size:.88rem}.form .switch button{background:transparent;color:var(--accent);padding:0;display:inline;text-decoration:underline}.form .switch button:hover{background:transparent}.error{color:var(--sale);font-size:.85rem;margin:.5rem 0}.push-banner{background:linear-gradient(135deg,#1f5132,#2d7449);color:#fff;padding:1rem 1.1rem;border-radius:var(--radius);margin-bottom:1rem;display:flex;align-items:center;gap:1rem}.push-banner .text{flex:1}.push-banner h3{font-family:var(--display);font-weight:500;font-size:1.05rem;margin-bottom:.2rem}.push-banner p{font-size:.85rem;opacity:.9}.push-banner button{background:#fff;color:var(--accent);flex-shrink:0}.push-banner button:hover:not(:disabled){background:#ffffffe6}.push-banner .dismiss{background:transparent;color:#fff;opacity:.7;padding:.3rem .5rem;font-size:.8rem}.settings dl{display:grid;gap:.6rem}.settings dl>div{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--line)}.settings dt{color:var(--ink-faded);font-size:.88rem}.settings dd{font-feature-settings:"tnum";font-size:.9rem}.spinner{width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:2rem auto}@keyframes spin{to{transform:rotate(360deg)}}
