:root{--wine:#7d1f3b;--wine-dark:#4d1024;--gold:#b8874d;--bg:#f8f4ee;--card-bg:#fffdfa;--border:#e7ddd0;--border-strong:#d8c9b6;--text:#312725;--text-muted:#786a63;--danger:#b3261e;--success:#1e7e34;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-card:0 8px 24px #4d10240f;--shadow-raised:0 6px 18px #4d10241a;--font-display:"Playfair Display", Georgia, serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;font-family:var(--font-body);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-display)}button{cursor:pointer;border-radius:var(--radius-sm);background:var(--wine);color:#fff;border:1px solid #0000;padding:.65rem 1.3rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:background .15s,transform 80ms,box-shadow .15s}button:hover{background:var(--wine-dark)}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button.secondary{color:var(--wine);border-color:var(--border-strong);background:0 0}button.secondary:hover{border-color:var(--wine);background:#7d1f3b0f}button.danger{color:var(--danger);background:0 0;border-color:#b3261e59}button.danger:hover{border-color:var(--danger);background:#b3261e14}button.small{padding:.3rem .7rem;font-size:.82rem}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.icon-btn{color:var(--danger);background:0 0;border-color:#0000;padding:0 .6rem;font-size:1.25rem;line-height:1}.icon-btn:hover{background:#b3261e14}.self-start{align-self:flex-start}.button-link{background:var(--wine);color:#fff;border-radius:var(--radius-sm);padding:.6rem 1.2rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.button-link:hover{background:var(--wine-dark)}input,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);background:#fff;padding:.6rem .75rem;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #b8874d29}input::placeholder,textarea::placeholder{color:#b3a79f}textarea{resize:vertical}input[type=file]{border:1px dashed var(--border-strong);background:var(--bg);padding:.5rem}input[type=file]::file-selector-button{cursor:pointer;background:var(--wine);color:#fff;border:none;border-radius:6px;margin-right:.7rem;padding:.4rem .8rem;font-size:.85rem;font-weight:600}input[type=file]::file-selector-button:hover{background:var(--wine-dark)}input[type=checkbox]{width:17px;height:17px;accent-color:var(--wine);flex:none;margin:0}label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:500;display:flex}.error-text{color:var(--danger);margin:0;font-size:.9rem}.success-text{color:var(--success);margin:0 0 1rem;font-size:.9rem}.hint{color:var(--text-muted);font-size:.88rem;line-height:1.55}.field-hint{color:var(--text-muted);font-size:.8rem;font-weight:400;line-height:1.5}.auth-page{background:radial-gradient(circle at top, #fbf3e4, var(--bg) 60%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.9rem;width:100%;max-width:380px;padding:2.2rem;display:flex;box-shadow:0 20px 45px #4d10241a}.auth-card h1{color:var(--wine-dark);margin:0 0 .4rem;font-size:1.6rem}.auth-switch{color:var(--text-muted);margin:.2rem 0 0;font-size:.85rem}.auth-switch a{color:var(--wine)}.app-shell{min-height:100vh}.app-header{background:linear-gradient(135deg, var(--wine-dark), var(--wine));color:#fff;box-shadow:0 2px 12px #4d10242e}.app-header-inner{align-items:center;gap:2rem;max-width:1200px;margin:0 auto;padding:.9rem 2rem;display:flex}.brand{align-items:center;gap:.6rem;min-width:0;display:flex}.brand-mark{font-size:1.4rem;line-height:1}.brand-text{flex-direction:column;min-width:0;display:flex}.brand-name{font-family:var(--font-display);letter-spacing:.015em;white-space:nowrap;text-overflow:ellipsis;font-size:1.28rem;font-style:italic;font-weight:600;overflow:hidden}.brand-sub{letter-spacing:.09em;text-transform:uppercase;color:#ffffffa6;font-size:.7rem}.app-header nav{flex:1;gap:1.4rem;display:flex}.app-header nav a{color:#ffffffd1;white-space:nowrap;border-bottom:2px solid #0000;padding:.35rem 0;font-size:.92rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s}.app-header nav a:hover{color:#fff}.app-header nav a.active{color:#fff;border-bottom-color:var(--gold)}.logout-btn{background:#ffffff24;border-color:#ffffff40;padding:.45rem 1rem;font-size:.88rem}.logout-btn:hover{background:#ffffff3d}.app-content{max-width:1200px;margin:0 auto;padding:2rem}.page-loading{text-align:center;color:var(--text-muted);padding:3rem}.page-head{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.6rem;display:flex}.page-title{color:var(--wine-dark);letter-spacing:-.01em;margin:0 0 .35rem;font-size:1.75rem}.page-subtitle{max-width:62ch;color:var(--text-muted);margin:0;font-size:.94rem;line-height:1.6}.page-count{background:var(--card-bg);border:1px solid var(--border);color:var(--wine);white-space:nowrap;border-radius:999px;flex:none;padding:.35rem .9rem;font-size:.85rem;font-weight:600}.two-col{grid-template-columns:minmax(0,460px) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.6rem}.card-narrow{max-width:620px}.card h2{color:var(--wine-dark);border-bottom:1px solid var(--border);margin-top:0;margin-bottom:1.2rem;padding-bottom:.8rem;font-size:1.18rem}.card h3{color:var(--wine-dark);margin-top:1.6rem;margin-bottom:.3rem;font-size:1.02rem}.stack-form{flex-direction:column;gap:1.1rem;display:flex}.field-row{gap:1rem;display:flex}.field-row label{flex:1;min-width:0}.form-actions{flex-wrap:wrap;gap:.6rem;display:flex}.photo-preview{border-radius:var(--radius-sm);border:1px solid var(--border);max-width:160px}.discounts-block{flex-direction:column;gap:.6rem;display:flex}.discounts-header{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.88rem;font-weight:500;display:flex}.discount-row{align-items:flex-end;gap:.6rem;display:flex}.discount-row label{flex:1;min-width:0}.discount-row .icon-btn{margin-bottom:.35rem}.picker{flex-direction:column;gap:.55rem;display:flex}.picker-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.picker-title{color:var(--text-muted);font-size:.88rem;font-weight:500}.picker-count{color:var(--wine);font-size:.82rem;font-weight:600}.picker-count.is-empty{color:var(--text-muted);font-weight:500}.picker-list{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);flex-direction:column;gap:.3rem;max-height:320px;padding:.4rem;display:flex;overflow-y:auto}.picker-row{border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:row;align-items:center;gap:.7rem;padding:.5rem .6rem;font-weight:400;transition:background .12s,border-color .12s}.picker-row:hover{background:#7d1f3b0d}.picker-row.is-selected{border-color:var(--gold);background:#fff}.picker-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;flex:none;width:34px;height:34px}.picker-thumb-empty{background:var(--card-bg);justify-content:center;align-items:center;font-size:1rem;display:flex}.picker-info{flex-direction:column;min-width:0;display:flex}.picker-name{color:var(--text);font-size:.92rem;font-weight:500}.picker-meta{color:var(--text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.empty-state{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg);flex-direction:column;align-items:center;gap:.5rem;padding:2.2rem 1.2rem;display:flex}.empty-state-icon{font-size:1.9rem;line-height:1}.empty-state-title{font-family:var(--font-display);color:var(--wine-dark);margin:0;font-size:1.05rem}.empty-state .hint{max-width:42ch;margin:0}.empty-state .button-link{margin-top:.5rem}.wine-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.wine-list-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);align-items:center;gap:1rem;padding:.8rem;transition:box-shadow .15s,border-color .15s;display:flex}.wine-list-item:hover{box-shadow:var(--shadow-raised)}.wine-list-item.is-editing,.path-item.is-editing{border-color:var(--gold);box-shadow:0 0 0 3px #b8874d29}.wine-list-item img,.wine-thumb-empty{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);flex:none;width:56px;height:56px}.wine-thumb-empty{background:var(--bg);justify-content:center;align-items:center;font-size:1.3rem;display:flex}.wine-list-info{flex:1;min-width:0}.wine-list-info strong{font-family:var(--font-display);color:var(--text);font-size:1.05rem}.wine-vintage{font-family:var(--font-body);color:var(--text-muted);font-size:.85rem;font-weight:500}.wine-price{color:var(--wine);margin-top:.15rem;font-size:.9rem;font-weight:600}.wine-paths{color:var(--text-muted);margin-top:.15rem;font-size:.8rem}.wine-list-actions{flex:none;gap:.4rem;display:flex}.wine-list-actions button{padding:.4rem .7rem;font-size:.82rem}.path-list{flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.path-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);padding:1rem;transition:box-shadow .15s,border-color .15s}.path-item:hover{box-shadow:var(--shadow-raised)}.path-item-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.path-name{font-family:var(--font-display);color:var(--text);font-size:1.1rem}.path-badge{color:var(--wine);vertical-align:middle;white-space:nowrap;background:#7d1f3b14;border-radius:999px;margin-left:.6rem;padding:.15rem .6rem;font-size:.76rem;font-weight:600;display:inline-block}.path-actions{flex:none;gap:.4rem;display:flex}.path-actions button{padding:.35rem .7rem;font-size:.82rem}.path-price{color:var(--text);margin:.6rem 0 0;font-size:.95rem}.path-price strong{color:var(--wine);font-size:1.05rem}.path-price-none{color:var(--text-muted);font-size:.88rem;font-style:italic}.path-description{color:var(--text-muted);margin:.5rem 0 0;font-size:.9rem;line-height:1.55}.path-empty-note{color:var(--danger);margin:.7rem 0 0;font-size:.84rem}.chip-row{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.chip-row-tight{margin-top:.45rem}.chip{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.25rem .7rem;font-size:.82rem}.chip-discount{color:#7a5426;background:#b8874d1f;border-color:#b8874d66;font-weight:500}.qr-sheet{justify-content:center;margin-bottom:1.5rem;display:flex}.qr-frame{text-align:center;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:420px;box-shadow:var(--shadow-card);padding:2rem}.qr-box{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;justify-content:center;padding:1.2rem;display:flex}.qr-sheet-name{font-family:var(--font-display);color:var(--wine-dark);margin:1.1rem 0 .4rem;font-size:1.3rem}.qr-sheet-instructions{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.55}.qr-actions{max-width:620px;margin:0 auto}.qr-actions .hint{margin:1rem 0 0}.qr-token-label{color:var(--text-muted);word-break:break-all;margin:1.4rem 0 .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}@media (width<=900px){.two-col{grid-template-columns:1fr}}@media (width<=760px){.app-header-inner{flex-wrap:wrap;gap:.8rem 1.2rem;padding:.8rem 1.1rem}.app-header nav{flex-basis:100%;order:3;gap:1.1rem;padding-bottom:.15rem;overflow-x:auto}.brand{flex:1}.app-content{padding:1.2rem 1.1rem 2.5rem}.page-head{flex-direction:column;gap:.7rem;margin-bottom:1.2rem}.page-title{font-size:1.45rem}.card{padding:1.2rem}.field-row{flex-direction:column;gap:1.1rem}.path-item-head,.wine-list-item{flex-direction:column;align-items:flex-start}.path-actions,.wine-list-actions{width:100%}.path-actions button,.wine-list-actions button{flex:1}}@media print{@page{size:A4 portrait;margin:14mm}body{background:#fff}.no-print{display:none!important}.app-content{max-width:none;padding:0}.card{box-shadow:none;border:none}.qr-sheet{margin:0}.qr-frame{max-width:none;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.qr-box{background:0 0;border:none;padding:0}.qr-sheet-card .qr-frame{border:1px dashed #9a9a9a;border-radius:4mm;width:100mm;margin:18mm auto 0;padding:10mm 8mm}.qr-sheet-card .qr-box svg{width:70mm;height:70mm}.qr-sheet-card .qr-sheet-name{margin-top:8mm;font-size:17pt}.qr-sheet-card .qr-sheet-instructions{font-size:9.5pt}.qr-sheet-poster .qr-frame{border:none;width:100%;margin-top:4mm;padding:0}.qr-sheet-poster .qr-box svg{width:150mm;height:150mm}.qr-sheet-poster .qr-sheet-name{margin-top:12mm;font-size:32pt}.qr-sheet-poster .qr-sheet-instructions{font-size:14pt}}
