*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fafaf5;--surface: #ffffff;--border: #e5e5d9;--text: #1a1a18;--text-muted: #6b6b63;--accent: #722f37;--accent-light: #f0e6e7;--red: #c0392b;--white: #f0e6cc;--rose: #e8a0bf;--sparkling: #f5d76e;--dessert: #d4a574;--fortified: #6c3a1e;--thumb-on: #d4a017;--radius: 8px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.header-title{font-size:1.25rem;font-weight:700;color:var(--accent);text-decoration:none}.header-nav{display:flex;gap:16px}.header-nav a{color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500}.header-nav a:hover{color:var(--accent)}.main{flex:1;padding:20px;max-width:960px;margin:0 auto;width:100%}.type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.type-red{background:var(--red);color:#fff}.type-white{background:var(--white);color:#333}.type-rose{background:var(--rose);color:#333}.type-sparkling{background:var(--sparkling);color:#333}.type-dessert{background:var(--dessert);color:#fff}.type-fortified{background:var(--fortified);color:#fff}.wine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.wine-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:box-shadow .15s,transform .15s;display:flex;flex-direction:column;gap:6px}.wine-card:hover{box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}.wine-card-name{font-size:1rem;font-weight:600}.wine-card-producer{font-size:.85rem;color:var(--text-muted)}.wine-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.85rem;color:var(--text-muted)}.wine-card-actions{display:flex;align-items:center;gap:8px;margin-top:auto}.wine-card-price{font-weight:600;color:var(--text);margin-left:auto}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s;text-decoration:none}.btn:hover{background:var(--bg)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{opacity:.9}.btn-danger{color:var(--red);border-color:var(--red)}.btn-danger:hover{background:#fef2f2}.btn:disabled{opacity:.5;cursor:not-allowed}.filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filters select,.filters input{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:.9rem;color:var(--text)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.85rem;font-weight:600;margin-bottom:4px;color:var(--text-muted)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;background:var(--surface);color:var(--text)}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.detail-name{font-size:1.5rem;font-weight:700}.detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.detail-meta-item{font-size:.9rem;color:var(--text-muted)}.detail-notes{margin:16px 0;padding:12px;background:var(--bg);border-radius:var(--radius);font-size:.9rem;line-height:1.6;white-space:pre-wrap}.detail-actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}.detail-image{max-width:100%;border-radius:var(--radius);margin:16px 0}.thumbs{display:flex;gap:8px;font-size:1.5rem}.thumbs button{background:none;border:2px solid transparent;cursor:pointer;font-size:1.5rem;padding:4px 8px;border-radius:var(--radius);transition:all .15s;opacity:.4}.thumbs button.selected{opacity:1;border-color:var(--thumb-on);background:#fef9e7}.thumbs button:hover{opacity:.8}.tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--border)}.tab{padding:10px 20px;background:none;border:none;font-size:.95rem;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.consume-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:20}.consume-dialog{background:var(--surface);border-radius:var(--radius);padding:24px;max-width:360px;width:90%;text-align:center}.consume-dialog h3{margin-bottom:16px}.loading{text-align:center;padding:40px;color:var(--text-muted)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h2{margin-bottom:8px;color:var(--text)}.error-state{text-align:center;padding:40px 20px;color:var(--red)}.error-state .btn{margin-top:12px}.receipt-uploader{border:2px dashed var(--border);border-radius:var(--radius);padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .15s;margin-bottom:20px;color:var(--text-muted)}.receipt-uploader:hover{border-color:var(--accent)}.receipt-uploader input{display:none}.extracted-wine-row{display:flex;gap:8px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;background:var(--bg)}.extracted-wine-row input,.extracted-wine-row select{padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:.85rem}.rating-display{font-size:1.2rem;letter-spacing:2px}.toast{position:fixed;bottom:20px;right:20px;background:var(--accent);color:#fff;padding:12px 20px;border-radius:var(--radius);font-size:.9rem;z-index:30;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 600px){.form-row,.wine-grid{grid-template-columns:1fr}}
