.page-user-btn{position:fixed;top:1rem;right:1.25rem;z-index:100}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d0c3b5' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.25rem!important}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.post-save-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.post-save-card{background:#1e1612;border:1px solid rgba(255,200,150,.25);border-radius:20px;padding:40px 48px;text-align:center;max-width:420px;width:90%;box-shadow:0 24px 60px #000000b3;animation:modal-slide-up .2s ease}.post-save-icon{font-size:48px;margin-bottom:16px}.post-save-title{font-size:24px;font-weight:700;color:#f7f2ec;margin:0 0 8px}.post-save-subtitle{font-size:14px;color:#e0b46a;margin:0 0 32px}.post-save-actions{display:flex;flex-direction:column;gap:10px}.post-save-btn-done{background:transparent;border:1px solid rgba(255,200,150,.25);color:#d0c3b5;padding:12px;border-radius:999px;cursor:pointer;font-size:14px;transition:all .15s}.post-save-btn-done:hover{border-color:#ffc89680;color:#f7f2ec}.post-save-btn-another{background:transparent;border:1px solid rgba(78,205,180,.4);color:#4ecdb4;padding:12px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;transition:all .15s}.post-save-btn-another:hover{background:#4ecdb414}.post-save-btn-storage{background:linear-gradient(135deg,#8b2b3b,#6b1f2b);border:1px solid rgba(139,43,59,.6);color:#fff;padding:12px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.post-save-btn-storage:hover{filter:brightness(1.15);transform:translateY(-1px)}.preselect-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#e0b46a14;border:1px solid rgba(224,180,106,.3);border-radius:10px;margin:0 24px 16px;font-size:14px;color:var(--text-main)}.preselect-cancel{background:transparent;border:1px solid rgba(224,180,106,.3);color:var(--accent-gold);padding:4px 14px;border-radius:999px;cursor:pointer;font-size:12px}.preselect-cancel:hover{background:#e0b46a1a}.landing-root{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);display:flex;flex-direction:column;gap:2.5rem;padding:2.5rem clamp(1.5rem,4vw,4rem);box-sizing:border-box}.hero{position:relative;display:flex;justify-content:center;align-items:center}.hero-background{position:absolute;inset:0;background:radial-gradient(circle at 10% 0%,rgba(255,200,150,.25),transparent 55%),radial-gradient(circle at 80% 20%,rgba(139,43,59,.35),transparent 60%),linear-gradient(135deg,#1a120f,#050304);opacity:.9;filter:saturate(1.1);pointer-events:none}.hero-glass{position:relative;width:100%;border-radius:28px;overflow:hidden;padding:1.75rem 2rem;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 24px 60px #000000a6,0 0 0 1px #ffffff08;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.75rem}.hero-carousel{position:relative;border-radius:22px;overflow:hidden;background:#1a120f}.hero-slide{position:relative;width:100%;padding-top:60%;background-size:cover;background-position:center}.hero-slide-suppliers{background-image:linear-gradient(135deg,#00000073,#0000001a),url(/assets/hero-VoDMgjq7.png);background-position:60% 40%}.hero-slide-overlay{position:absolute;inset:0;background:radial-gradient(circle at 10% 0%,rgba(255,200,150,.25),transparent 55%),radial-gradient(circle at 90% 100%,rgba(139,43,59,.4),transparent 60%);mix-blend-mode:soft-light}.hero-content{display:flex;flex-direction:column;justify-content:center;gap:.75rem}.hero-title{font-size:clamp(1.9rem,3vw,2.4rem);letter-spacing:.03em;margin:0}.hero-subtitle{margin:0;color:var(--text-muted);font-size:.95rem;line-height:1.5}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:1.5rem}.module-tile{position:relative;border-radius:24px;overflow:hidden;background-color:#1a120f;min-height:260px;transform:translateZ(0);display:flex;flex-direction:column;justify-content:flex-end}.module-tile-clickable{cursor:pointer}.module-tile-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent 45%),radial-gradient(circle at 0% 0%,rgba(255,200,150,.25),transparent 55%);pointer-events:none}.module-tile-glass{position:relative;margin:0 1.25rem 1.25rem;padding:1rem 1.1rem;border-radius:18px;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(18px);box-shadow:0 14px 35px #0009;z-index:1}.module-tile-title{margin:0;font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase}.module-tile-description{margin:0 0 .75rem;font-size:.85rem;color:var(--text-muted)}.module-tile-actions{display:flex;gap:.4rem;flex-wrap:wrap}.btn{border-radius:999px;padding:.4rem .8rem;font-size:.78rem;font-weight:500;border:none;cursor:pointer;min-width:60px;text-align:center;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.btn-view{border-radius:999px;padding:.4rem .8rem;font-size:.78rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;min-width:70px;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease}.btn-view-active{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;box-shadow:0 8px 18px #0009}.btn-view-active:hover{transform:translateY(-1px);box-shadow:0 10px 22px #000000b3}.btn-view-inactive{background:#ffffff1f;border:1px solid rgba(224,180,106,.5);color:var(--accent-gold);box-shadow:0 6px 14px #00000080}.btn-view-inactive:hover{background:#e0b46a14;transform:translateY(-1px)}.quick-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.btn-glass{background:var(--glass-bg);color:var(--text-main);border:1px solid var(--glass-border);padding-inline:1rem;box-shadow:0 10px 24px #0000008c}.btn-glass:hover{background:#ffffff2e}.tile-suppliers{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/supplier-D4e_43j_.png);background-size:cover;background-position:60% 45%}.tile-cellar{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/cellar-CRmLQkKl.png);background-size:cover;background-position:center}.tile-armory{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/armory-D4gI6f3f.png);background-size:cover;background-position:center}.tile-recipes{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/recipes-CXc3trs6.png);background-size:cover;background-position:center}.tile-art{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/art-Cj1IOETR.png);background-size:cover;background-position:center}.tile-photos{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/photo-C8xGhH1r.png);background-size:cover;background-position:center}.tile-on-the-go{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/onthego-CTxgY2m7.png);background-size:cover;background-position:center}.tile-audit{background-image:linear-gradient(135deg,#0000008c,#00000026),url(/assets/systemadmin-DGLR93Pm.png);background-size:cover;background-position:center}.tile-coming-soon{opacity:.6;filter:grayscale(.3)}.module-tile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.coming-soon-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:.2rem .6rem;border-radius:999px;white-space:nowrap}.tile-stat{font-size:.75rem;color:var(--accent-gold);font-weight:600;opacity:.85}.btn-view-disabled{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);opacity:.5;cursor:not-allowed}.hero-stats{display:flex;align-items:center;flex-wrap:wrap;gap:1.25rem;margin-top:1rem}.hero-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.hero-stat-button{appearance:none;background:transparent;border:1px solid transparent;border-radius:16px;cursor:pointer;padding:.4rem .75rem;transition:background .2s ease,border-color .2s ease,transform .2s ease}.hero-stat-button:hover,.hero-stat-button:focus-visible{background:#ffffff0f;border-color:#e0b46a3d;outline:none;transform:translateY(-1px)}.hero-stat-value{font-size:1.6rem;font-weight:700;color:var(--accent-gold);line-height:1}.hero-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.hero-stat-divider{width:1px;height:32px;background:var(--glass-border)}.quick-actions-divider{width:1px;height:28px;background:var(--glass-border);flex-shrink:0}.desktop-only{display:inline-flex}@media(max-width:900px){.hero-glass{grid-template-columns:minmax(0,1fr)}.hero-carousel{order:2}.hero-content{order:1}.module-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}}@media(max-width:640px){.landing-root{padding:1.75rem 1.25rem 2.5rem;gap:2rem}.hero-glass{padding:1.4rem 1.3rem}.hero-stats{align-items:stretch;display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.hero-stat-button{align-items:flex-start;min-width:0;padding:.75rem .85rem}.hero-stat{align-items:flex-start;text-align:left}.hero-stat-divider{display:none}.hero-stat-value{font-size:1.4rem}.hero-stat-label{font-size:.72rem}.module-grid{grid-template-columns:1fr}.module-tile-glass{inset:auto .9rem .9rem}.desktop-only{display:none}}.header-nav-buttons{display:flex;align-items:center;gap:.6rem}.header-nav-buttons>button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.header-nav-buttons .btn-home{min-width:46px;padding-left:.95rem;padding-right:.95rem;line-height:1;font-size:1rem;flex-shrink:0}.selected-types-section{display:flex;align-items:center;gap:12px;margin-bottom:12px}.selected-types-section.with-background{padding:8px 12px;background:#ffffff08;border-radius:8px;border:1px solid rgba(224,180,106,.2)}.selected-label{font-size:.9rem;color:var(--text-muted);font-weight:500}.supplier-type-badges{display:flex;flex-wrap:wrap;gap:8px}.supplier-type-badge{display:inline-block;padding:4px 12px;background:#e0b46a26;border:1px solid var(--accent-gold);border-radius:16px;font-size:.85rem;color:var(--accent-gold);text-transform:capitalize;white-space:nowrap}.toast-container{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:.75rem;z-index:9999;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:999px;min-width:280px;max-width:420px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 32px #0009;pointer-events:all;cursor:pointer;animation:toast-in .25s ease forwards;border:1px solid transparent}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-success{background:#10a37f2e;border-color:#10a37f73;color:#4ecdb4}.toast-error{background:#ea43352e;border-color:#ea433573;color:#f47c7c}.toast-warning{background:#e0b46a2e;border-color:#e0b46a73;color:#e0b46a}.toast-info{background:#4285f42e;border-color:#4285f473;color:#7ab3f5}.toast-icon{font-size:1rem;font-weight:700;flex-shrink:0;width:20px;text-align:center}.toast-message{flex:1;font-size:.9rem;font-weight:500;color:#f7f2ec;line-height:1.4}.toast-close{background:transparent;border:none;color:#f7f2ec80;font-size:1.2rem;cursor:pointer;padding:0;line-height:1;flex-shrink:0;transition:color .15s}.toast-close:hover{color:#f7f2ec}@media(max-width:640px){.toast-container{bottom:1rem;right:1rem;left:1rem}.toast{min-width:unset;max-width:unset;width:100%}}:root{--bg-warm-dark: #15100f;--bg-warm-mid: #2a1f1b;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--glass-bg: rgba(255, 255, 255, .12);--glass-border: rgba(255, 200, 150, .35)}.supplier-detail-page{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);padding:2.5rem clamp(1.5rem,4vw,4rem)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem}.btn-back{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 8px 18px #0009}.header-actions{display:flex;gap:.75rem}.btn-edit,.btn-delete{background:#ffffff14;border:2px solid var(--accent-gold);color:var(--accent-gold);padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 12px #00000080}.btn-edit:hover{background:#e0b46a40;transform:translateY(-2px);box-shadow:0 6px 16px #0009}.btn-delete{border-color:#ef5350;color:#ef5350}.btn-delete:hover{background:#f443364d;border-color:#ef5350;transform:translateY(-2px);box-shadow:0 6px 16px #0009}.detail-container{display:grid;grid-template-columns:1fr 400px;gap:2rem}.detail-card,.map-card{position:relative;border-radius:24px;overflow:hidden;background:var(--bg-warm-mid)}.card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent 45%),radial-gradient(circle at 0% 0%,rgba(255,200,150,.25),transparent 55%);pointer-events:none}.card-glass{position:relative;padding:2rem;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.detail-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--glass-border)}.header-title{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.detail-header h1{margin:0;font-size:2rem;letter-spacing:.02em;color:var(--text-main)}.supplier-type-detail{margin:0;font-size:1rem;color:var(--text-muted);text-transform:capitalize}.badge-active,.badge-inactive{padding:.35rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.badge-active{background:#4caf5040;color:#81c784;border:1px solid rgba(129,199,132,.4)}.badge-inactive{background:#9e9e9e40;color:#bdbdbd;border:1px solid rgba(189,189,189,.4)}.detail-sections{display:flex;flex-direction:column;gap:2rem}.detail-section h3{margin:0 0 1rem;font-size:1rem;color:var(--accent-gold);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.detail-grid{display:flex;flex-direction:column;gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-item span{font-size:1rem;color:var(--text-main);line-height:1.6}.detail-link{color:var(--accent-gold);text-decoration:none;font-size:1rem;display:flex;align-items:center;gap:.5rem;width:fit-content;padding:.4rem .6rem;border-radius:8px;transition:background .15s ease,transform .15s ease}.detail-link:hover{background:#e0b46a26;transform:translate(4px)}.notes-text{margin:0;padding:1.25rem;background:#0000004d;border-radius:12px;color:var(--text-main);line-height:1.7;border:1px solid rgba(255,200,150,.2)}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{display:inline-block;background:#e0b46a26;border:1px solid var(--glass-border);padding:.4rem .8rem;border-radius:16px;font-size:.85rem;color:var(--accent-gold)}.detail-meta{border-top:1px solid var(--glass-border);padding-top:1rem;margin-top:1rem}.detail-meta small{color:var(--text-muted);font-size:.85rem}.map-card{min-height:600px}.map-card h3{margin:0 0 1rem;font-size:1rem;color:var(--accent-gold);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.map-container{width:100%;height:500px;border-radius:12px;overflow:hidden;border:1px solid var(--glass-border)}.map-container iframe{border:0;border-radius:12px;display:block}.loading,.error{text-align:center;padding:4rem 2rem;color:var(--text-muted);font-size:1.1rem}.error{color:#ef5350}@media(max-width:1100px){.detail-container{grid-template-columns:1fr}.map-card{order:2}}@media(max-width:640px){.supplier-detail-page{padding:1.75rem 1.25rem}.page-header{flex-direction:column;align-items:stretch;gap:1rem}.header-actions{justify-content:stretch}.btn-edit,.btn-delete{flex:1}.card-glass{padding:1.5rem}.detail-header h1{font-size:1.5rem}.map-container{height:400px}}.confirm-backdrop{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem}.confirm-modal{background:#1e1612;border:1px solid rgba(255,200,150,.25);border-radius:20px;width:100%;max-width:420px;box-shadow:0 24px 64px #000c;overflow:hidden}.confirm-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,200,150,.15);background:#ffffff08}.confirm-icon{font-size:1.3rem;flex-shrink:0}.confirm-title{margin:0;font-size:1.05rem;font-weight:700;color:#f7f2ec}.confirm-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.875rem}.confirm-message{margin:0;font-size:.92rem;color:#d0c3b5;line-height:1.5}.confirm-warning{display:flex;align-items:flex-start;gap:.6rem;background:#ea43351a;border:1px solid rgba(234,67,53,.25);border-radius:10px;padding:.875rem 1rem}.confirm-warning-icon{font-size:1rem;flex-shrink:0;margin-top:.1rem}.confirm-warning p{margin:0;font-size:.85rem;color:#f47c7c;line-height:1.5}.confirm-footer{display:flex;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid rgba(255,200,150,.15)}.confirm-btn-cancel{flex:1;background:transparent;border:1px solid rgba(255,200,150,.25);color:#d0c3b5;padding:.75rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.confirm-btn-cancel:hover{border-color:#e0b46a;color:#e0b46a}.confirm-btn-confirm{flex:1;border:none;padding:.75rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.confirm-btn-danger{background:linear-gradient(135deg,#c0392b,#922b21);color:#fff;box-shadow:0 4px 12px #c0392b66}.confirm-btn-danger:hover{filter:brightness(1.15);transform:translateY(-1px)}.confirm-btn-primary{background:linear-gradient(135deg,#8b2b3b,#5f1b28);color:#fff;box-shadow:0 4px 12px #0006}.confirm-btn-primary:hover{filter:brightness(1.15);transform:translateY(-1px)}.supplier-page{min-height:100vh;background-color:var(--bg-warm-dark);background-image:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(139,43,59,.08) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(224,180,106,.05) 0%,transparent 70%);color:var(--text-main);padding:0 0 64px}.supplier-loading,.supplier-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-muted);font-size:15px}.supplier-loading-spinner{width:36px;height:36px;border:3px solid var(--glass-border);border-top-color:var(--accent-gold);border-radius:50%;animation:spin .8s linear infinite}.supplier-page-header{display:flex;align-items:center;padding:28px 48px 24px;border-bottom:1px solid var(--glass-border);background:linear-gradient(180deg,rgba(139,43,59,.06) 0%,transparent 100%);gap:16px;position:relative}.supplier-page-header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.2rem,2vw,1.8rem);font-weight:700;letter-spacing:-.01em;color:var(--text-main);pointer-events:none;white-space:nowrap;max-width:55%;overflow:hidden;text-overflow:ellipsis}.supplier-form{max-width:1100px;margin:28px auto 0;padding:0 48px;display:flex;flex-direction:column;gap:12px}.supplier-form .form-section:not(.collapsible){background:var(--bg-warm-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:24px 28px;box-shadow:var(--shadow-card)}.supplier-form .form-section:not(.collapsible) h2{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-gold);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--glass-border)}.form-group textarea{background:#ffffff0a;border:1px solid var(--glass-border);border-radius:14px;color:var(--text-main);font-family:inherit;padding:12px 14px;resize:vertical;min-height:96px;line-height:1.6}.form-group .supplier-notes-textarea{background:#ffffff0a;border:1px solid var(--glass-border);border-radius:14px;box-sizing:border-box;color:var(--text-main);font-family:inherit;line-height:1.6;min-height:104px;padding:12px 14px;resize:vertical;width:100%}.form-group .supplier-notes-textarea:focus{background:#ffffff0f;border-color:#e0b46a80;box-shadow:0 0 0 3px #e0b46a14;outline:none}.checkbox-row{display:flex;align-items:center;gap:10px;cursor:pointer;text-transform:none!important;letter-spacing:0!important;font-size:14px!important;color:var(--text-main)!important}.checkbox-input{width:16px!important;height:16px;accent-color:var(--accent-burgundy);cursor:pointer;flex-shrink:0}.checkbox-label-text{font-size:14px;color:var(--text-muted);font-weight:500}.supplier-type-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.btn-type{background:transparent;border:1px solid var(--glass-border);color:var(--text-dim);padding:6px 14px;border-radius:999px;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s;text-transform:capitalize}.btn-type:hover{color:var(--text-muted);border-color:#e0b46a59;background:var(--glass-bg)}.btn-type.btn-type--active{background:linear-gradient(135deg,var(--accent-burgundy),#6b1f2b);border-color:#8b2b3b99;color:#fff;font-weight:600;box-shadow:0 2px 12px #8b2b3b4d}.btn-type.btn-type--active:hover{filter:brightness(1.12)}@media(max-width:768px){.form-row-half,.form-row-triple,.form-row-quad{grid-template-columns:1fr}.form-group[style*=grid-column]{grid-column:auto!important}}.form-hint{font-size:12px;color:var(--text-dim);margin:6px 0 0;line-height:1.5;font-style:italic}.form-actions{display:flex;gap:12px;padding:0 0 8px;margin-top:4px}.fab-icon{font-size:16px;line-height:1}@media(max-width:1024px){.supplier-page-header{padding:20px 28px 16px}.section-anchor-nav{padding:12px 28px}.unsaved-banner{padding:10px 28px}.supplier-form{padding:0 28px;margin-top:20px}}@media(max-width:640px){.supplier-page-header{padding:14px 16px}.supplier-page-header h1{font-size:1rem;max-width:45%}.section-anchor-nav{padding:10px 16px;gap:4px}.anchor-pill{font-size:11px;padding:4px 10px}.unsaved-banner{padding:10px 16px}.supplier-form{padding:0 16px;margin-top:16px}.section-body{padding:16px}.supplier-form .form-section:not(.collapsible){padding:18px}.form-actions{flex-direction:column-reverse}.btn-cancel,.btn-submit{flex:none;width:100%}.fab-save{bottom:20px;right:16px;padding:11px 18px;font-size:13px}}.add-cellar-item-container{min-height:100vh;background-color:var(--bg-warm-dark);background-image:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(139,43,59,.08) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(224,180,106,.05) 0%,transparent 70%);color:var(--text-main);padding:0 0 64px}.add-cellar-item-header{display:flex;align-items:center;padding:28px 48px 24px;border-bottom:1px solid var(--glass-border);background:linear-gradient(180deg,rgba(139,43,59,.06) 0%,transparent 100%);gap:16px;position:relative}.add-cellar-item-header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:700;letter-spacing:-.01em;color:var(--text-main);pointer-events:none;white-space:nowrap}.add-cellar-item-form{max-width:1100px;margin:32px auto 0;padding:0 48px;display:flex;flex-direction:column;gap:16px}.form-section{background:var(--bg-warm-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:24px 28px;box-shadow:var(--shadow-card)}.form-section h2{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-gold);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--glass-border);display:flex;align-items:center;gap:10px}.ai-badge{margin-left:auto;font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--accent-gold);background:#e0b46a1a;border:1px solid rgba(224,180,106,.28);border-radius:999px;padding:2px 10px;text-transform:none;white-space:nowrap}.ai-hint{font-size:12px;color:var(--text-dim);margin:-12px 0 18px;line-height:1.55;font-style:italic}.form-row-half .form-group,.form-row-triple .form-group,.form-row-quad .form-group{margin-bottom:0;min-width:0}@media(max-width:768px){.form-row-half,.form-row-triple,.form-row-quad{grid-template-columns:1fr}}.status-uploading,.status-extracting,.status-success{font-size:13px;font-weight:500;padding:6px 12px;border-radius:8px;display:inline-block}.status-extracting{background:#a855f71f;border:1px solid rgba(168,85,247,.25);color:#c4b5fd}.cloudinary-url{font-size:11px;color:var(--text-dim);font-family:monospace;word-break:break-all;padding:6px 10px;background:#0003;border:1px solid var(--glass-border);border-radius:6px}.btn-clear-photo{align-self:flex-start;background:transparent;color:#f47c7c;border:1px solid rgba(244,67,54,.35);padding:6px 16px;border-radius:999px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.form-actions{padding:0 0 8px;margin-top:4px}.btn-submit{width:100%;background:linear-gradient(135deg,var(--accent-burgundy),#6b1f2b);border:1px solid rgba(139,43,59,.6);color:#fff;padding:13px 32px;border-radius:999px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}@media(max-width:1024px){.add-cellar-item-header{padding:20px 28px 16px}.add-cellar-item-form{padding:0 28px;margin-top:24px}}@media(max-width:640px){.add-cellar-item-header{padding:16px 20px 12px}.add-cellar-item-header h1{font-size:1.1rem}.add-cellar-item-form{padding:0 16px;margin-top:20px}.form-section{padding:18px}}.fab-save.fab-save--dirty:hover{filter:brightness(1.15);transform:translateY(-2px);box-shadow:0 10px 32px #8b2b3b99;animation:none}.fab-save:disabled{cursor:not-allowed;opacity:.5;animation:none}.fab-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:block}.ai-panel-section{margin:0 48px;padding:36px 0 0;border-top:1px solid var(--glass-border)}.ai-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.ai-panel-title-group{display:flex;align-items:center;gap:12px}.ai-panel-icon{font-size:20px;color:var(--accent-gold);animation:ai-pulse 3s ease-in-out infinite}@keyframes ai-pulse{0%,to{opacity:1;text-shadow:0 0 8px rgba(224,180,106,.4)}50%{opacity:.7;text-shadow:0 0 16px rgba(224,180,106,.8)}}.ai-panel-title{font-size:22px;font-weight:700;color:var(--text-main);margin:0;letter-spacing:-.02em}.ai-panel-subtitle{font-size:13px;color:var(--text-dim, #8a7a6e)}.btn-generate-all{background:linear-gradient(135deg,#e0b46a26,#e0b46a0d);border:1px solid rgba(224,180,106,.4);color:var(--accent-gold);padding:10px 20px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.btn-generate-all:hover{background:#e0b46a33;transform:translateY(-1px)}.ai-providers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:40px}.ai-provider-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;display:flex;flex-direction:column;min-height:120px;overflow:hidden;transition:border-color .2s,box-shadow .2s;box-shadow:0 4px 24px #00000073}.ai-provider-card:hover{border-color:color-mix(in srgb,var(--provider-color) 50%,transparent);box-shadow:0 4px 24px #00000080,0 0 0 1px color-mix(in srgb,var(--provider-color) 20%,transparent)}.ai-provider-preferred{border-color:color-mix(in srgb,var(--provider-color) 60%,transparent)!important;box-shadow:0 4px 24px #00000080,0 0 0 1px color-mix(in srgb,var(--provider-color) 30%,transparent)!important}.ai-provider-header{display:flex;align-items:center;gap:8px;padding:16px 18px 12px;border-bottom:1px solid var(--glass-border)}.ai-provider-logo{font-size:18px}.ai-provider-label{font-size:13px;font-weight:700;color:var(--text-main);text-transform:uppercase;letter-spacing:.08em;flex:1}.cellar-ai-rating-pill{background:#e0b46a1f;border:1px solid rgba(224,180,106,.28);border-radius:999px;color:var(--accent-gold);font-size:11px;font-weight:700;letter-spacing:.06em;padding:4px 10px}.ai-star-btn{background:transparent;border:none;font-size:18px;cursor:pointer;padding:2px 6px;line-height:1;opacity:.55;color:var(--accent-gold);transition:opacity .2s,transform .15s}.ai-star-btn:hover:not(:disabled){opacity:1;transform:scale(1.25)}.ai-star-btn.ai-star-active{opacity:1;cursor:default}.ai-star-btn:disabled:not(.ai-star-active){opacity:.25}.ai-refresh-btn{background:transparent;border:1px solid var(--glass-border);color:var(--text-dim, #8a7a6e);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.ai-refresh-btn:hover:not(:disabled){color:var(--accent-gold);border-color:var(--accent-gold)}.ai-refresh-btn:disabled{opacity:.5;animation:spin 1s linear infinite}.ai-provider-body{flex:1;padding:18px;overflow-y:auto}.ai-loading{display:flex;align-items:center;gap:10px;color:var(--text-dim, #8a7a6e);font-size:13px}.ai-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--glass-border);border-top-color:var(--accent-gold);border-radius:50%;animation:spin .7s linear infinite}.ai-error{color:#f47c7c;font-size:13px;line-height:1.5}.ai-summary-text{font-size:13px;color:var(--text-muted);line-height:1.75;white-space:pre-wrap}.ai-structured-summary{display:flex;flex-direction:column}.ai-section{display:flex;flex-direction:column;gap:5px}.ai-section-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-gold)}.ai-section-body{font-size:13px;color:var(--text-muted);line-height:1.7;white-space:pre-wrap}.ai-section-divider{height:1px;background:var(--glass-border);margin:10px 0}.ai-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:120px}.ai-generate-btn{background:color-mix(in srgb,var(--provider-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--provider-color) 40%,transparent);color:var(--provider-color);padding:10px 20px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.ai-generate-btn:hover{background:color-mix(in srgb,var(--provider-color) 25%,transparent);transform:translateY(-1px)}.ai-provider-footer{padding:10px 18px;border-top:1px solid var(--glass-border);font-size:11px;color:var(--text-dim, #8a7a6e);font-style:italic}@media(max-width:1024px){.ai-panel-section{margin:0 28px}.ai-providers-grid{grid-template-columns:1fr}}@media(max-width:640px){.ai-panel-section{margin:0 20px}.ai-panel-header{flex-direction:column;align-items:flex-start;gap:12px}}.edit-cellar-container{min-height:100vh;background-color:var(--bg-warm-dark);background-image:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(139,43,59,.08) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(224,180,106,.05) 0%,transparent 70%);color:var(--text-main);padding:0 0 64px}.edit-loading,.edit-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-muted);font-size:15px}.edit-loading-spinner{width:36px;height:36px;border:3px solid var(--glass-border);border-top-color:var(--accent-gold);border-radius:50%;animation:spin .8s linear infinite}.edit-cellar-header{display:flex;align-items:center;padding:28px 48px 24px;border-bottom:1px solid var(--glass-border);background:linear-gradient(180deg,rgba(139,43,59,.06) 0%,transparent 100%);gap:16px;position:relative}.edit-cellar-header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.2rem,2vw,1.7rem);font-weight:700;letter-spacing:-.01em;color:var(--text-main);pointer-events:none;white-space:nowrap;max-width:55%;overflow:hidden;text-overflow:ellipsis}.dirty-indicator{margin-left:auto;font-size:11px;font-weight:500;color:var(--accent-gold-dim);background:#e0b46a14;border:1px solid rgba(224,180,106,.22);border-radius:999px;padding:3px 12px;letter-spacing:.04em;white-space:nowrap;animation:fade-in .25s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.btn-back{background:transparent;border:1px solid var(--glass-border);color:var(--text-muted);padding:7px 14px;border-radius:999px;cursor:pointer;font-size:13px;font-family:inherit;transition:all .2s;flex-shrink:0}.section-anchor-nav{display:flex;gap:6px;flex-wrap:wrap;padding:14px 48px;border-bottom:1px solid var(--glass-border);background:#ffffff05}.anchor-pill{background:transparent;border:1px solid var(--glass-border);color:var(--text-dim);padding:5px 14px;border-radius:999px;font-size:12px;font-family:inherit;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.anchor-pill:hover{color:var(--text-muted);border-color:#ffc89659;background:var(--glass-bg)}.anchor-pill.anchor-active{color:var(--accent-gold);border-color:#e0b46a73;background:#e0b46a12}.edit-cellar-form{max-width:1100px;margin:24px auto 0;padding:0 48px;display:flex;flex-direction:column;gap:12px}.form-section.collapsible{background:var(--bg-warm-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;padding:0;transition:border-color .2s}.form-section.collapsible:hover{border-color:#ffc89642}.section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:transparent;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .15s}.section-toggle:hover{background:#ffffff08}.section-toggle-left{display:flex;align-items:center;gap:10px}.section-icon-sm{font-size:15px;line-height:1}.section-toggle-title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-gold)}.section-chevron{font-size:10px;color:var(--text-dim);transition:color .15s}.form-section.collapsible.is-open .section-toggle{border-bottom:1px solid var(--glass-border)}.form-section.collapsible.is-open .section-chevron{color:var(--accent-gold-dim)}.section-body{padding:22px 24px;animation:section-open .18s ease}@keyframes section-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.form-group label{display:block;font-size:10px;font-weight:600;color:var(--text-dim);margin-bottom:6px;letter-spacing:.08em;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 12px;border:1px solid var(--glass-border);border-radius:999px;font-size:14px;background:#ffffff0a;color:var(--text-main);font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;box-sizing:border-box}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-dim);opacity:.7}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#e0b46a80;background:#ffffff0f;box-shadow:0 0 0 3px #e0b46a14}.form-group textarea{border-radius:14px;padding:12px 14px;resize:vertical;min-height:96px;line-height:1.6}.form-group select{cursor:pointer}.form-group select option{background:var(--bg-warm-mid);color:var(--text-main)}.form-group select:disabled,.form-group input:disabled{opacity:.35;cursor:not-allowed;border-color:#ffc89614!important;background:#ffffff05!important}.form-group input.field-error{border-color:#f4433699!important;background:#f443360d!important}.field-error-msg{font-size:11px;color:#f47c7c;margin:4px 0 0 2px}.form-row-half{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:1.25rem}.form-row-triple{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:1.25rem}.form-row-quad{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px;margin-bottom:1.25rem}.form-row-status{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr;gap:16px;margin-bottom:1.25rem}.form-row-half .form-group,.form-row-triple .form-group,.form-row-quad .form-group,.form-row-status .form-group{margin-bottom:0;min-width:0}@media(max-width:768px){.form-row-half,.form-row-triple,.form-row-quad,.form-row-status{grid-template-columns:1fr}}.storage-module-link{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin-top:4px;background:#ffffff08;border:1px solid var(--glass-border);border-radius:var(--radius-md);flex-wrap:wrap}.storage-module-link-text{font-size:13px;color:var(--text-dim)}.btn-storage-link{background:transparent;border:1px solid rgba(224,180,106,.35);color:var(--accent-gold);padding:6px 16px;border-radius:999px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-storage-link:hover{background:#e0b46a14;border-color:var(--accent-gold)}.photo-upload-container{width:100%}.photo-upload{padding:2rem;background:#ffffff08;border:1px dashed rgba(255,200,150,.25);border-radius:var(--radius-lg);text-align:center}.photo-upload input[type=file]{display:none}.photo-upload-label{display:inline-block;padding:9px 22px;background:transparent;border:1px solid rgba(224,180,106,.4);color:var(--accent-gold);border-radius:999px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.photo-upload-label:hover{background:#e0b46a14;border-color:var(--accent-gold)}.photo-preview-container{display:flex;gap:24px;align-items:flex-start;padding:20px;background:#ffffff08;border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.photo-preview{width:120px;height:180px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--glass-border);box-shadow:0 8px 24px #00000080;flex-shrink:0}.photo-info{flex:1;display:flex;flex-direction:column;gap:10px;justify-content:center}.photo-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.photo-replace-label{font-size:13px;padding:6px 16px}.status-uploading,.status-success{font-size:13px;font-weight:500;padding:6px 12px;border-radius:8px;display:inline-block}.status-uploading{background:#3b82f61f;border:1px solid rgba(59,130,246,.25);color:#93c5fd}.status-success{background:#10a37f1f;border:1px solid rgba(16,163,127,.25);color:#4ecdb4}.btn-clear-photo{background:transparent;color:#f47c7c;border:1px solid rgba(244,67,54,.35);padding:6px 16px;border-radius:999px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.btn-clear-photo:hover{background:#f443361a;border-color:#f4433699}.form-actions{padding:0 0 8px;margin-top:4px;display:flex;gap:12px}.btn-cancel{flex:1;background:transparent;color:var(--text-muted);border:1px solid var(--glass-border);padding:13px 24px;border-radius:999px;font-size:15px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.btn-cancel:hover{border-color:var(--accent-gold);color:var(--accent-gold);background:var(--glass-bg)}.btn-submit{flex:2;background:linear-gradient(135deg,var(--accent-burgundy),#6b1f2b);border:1px solid rgba(139,43,59,.6);color:#fff;padding:13px 32px;border-radius:999px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}.btn-submit:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px);box-shadow:0 8px 24px #8b2b3b66}.btn-submit:disabled{opacity:.4;cursor:not-allowed}.form-hint{font-size:13px;color:var(--text-dim);margin:-4px 0 0;line-height:1.5}@media(max-width:1024px){.edit-cellar-header{padding:20px 28px 16px}.section-anchor-nav{padding:12px 28px}.edit-cellar-form{padding:0 28px;margin-top:20px}}@media(max-width:640px){.edit-cellar-header{padding:14px 16px}.edit-cellar-header h1{font-size:1rem;max-width:45%}.section-anchor-nav{padding:10px 16px;gap:4px}.anchor-pill{font-size:11px;padding:4px 10px}.edit-cellar-form{padding:0 16px;margin-top:16px}.section-body{padding:16px}.form-actions{flex-direction:column-reverse}.btn-cancel,.btn-submit{flex:none;width:100%}}.unsaved-banner{display:flex;align-items:center;gap:12px;padding:10px 48px;background:#e0b46a12;border-bottom:1px solid rgba(224,180,106,.2);animation:banner-slide-down .2s ease}@keyframes banner-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.unsaved-banner-text{font-size:13px;color:var(--text-muted);flex:1}.unsaved-banner-save{background:linear-gradient(135deg,var(--accent-burgundy),#6b1f2b);border:1px solid rgba(139,43,59,.5);color:#fff;padding:5px 18px;border-radius:999px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.unsaved-banner-save:hover:not(:disabled){filter:brightness(1.15)}.unsaved-banner-save:disabled{opacity:.5;cursor:not-allowed}.unsaved-banner-discard{background:transparent;border:1px solid var(--glass-border);color:var(--text-dim);padding:5px 14px;border-radius:999px;font-size:12px;font-family:inherit;cursor:pointer;transition:all .2s}.unsaved-banner-discard:hover{border-color:#f4433666;color:#f47c7c}.fab-save{position:fixed;bottom:32px;right:32px;z-index:100;display:flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;background:#1e1612d9;border:1px solid var(--glass-border);color:var(--text-dim);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 20px #00000080}.fab-save.fab-save--dirty{background:linear-gradient(135deg,var(--accent-burgundy),#6b1f2b);border-color:#8b2b3bb3;color:#fff;box-shadow:0 6px 28px #8b2b3b73;animation:fab-pulse 2.5s ease-in-out infinite}.fab-save.fab-save--blocked{background:#f4433626;border-color:#f4433666;color:#f47c7c;animation:none;cursor:not-allowed}@keyframes fab-pulse{0%,to{box-shadow:0 6px 28px #8b2b3b73}50%{box-shadow:0 6px 36px #8b2b3bb3}}.fab-save.fab-save--dirty:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-2px);box-shadow:0 10px 32px #8b2b3b99;animation:none}.fab-save:disabled:not(.fab-save--blocked){cursor:not-allowed;opacity:.5;animation:none}.fab-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:edit-spin .7s linear infinite;display:block}@keyframes edit-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.unsaved-banner{padding:10px 16px}.fab-save{bottom:20px;right:16px;padding:11px 18px;font-size:13px}}:root{--bg-warm-dark: #15100f;--bg-warm-mid: #2a1f1b;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--glass-bg: rgba(255,255,255,.12);--glass-border: rgba(255,200,150,.35)}.add-rack-container{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);padding:2.5rem clamp(1.5rem,4vw,4rem)}.add-rack-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem;position:relative}.add-rack-header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.9rem,3vw,2.4rem);letter-spacing:.03em}.add-rack-form{max-width:680px;margin:0 auto;border-radius:24px;overflow:hidden;background:var(--bg-warm-mid)}.form-section{padding:2rem 3rem;background-color:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,200,150,.15)}.form-section:last-of-type{border-bottom:none}.form-section h2{font-size:1.1rem;font-weight:600;color:var(--accent-gold);margin:0 0 1.25rem}.form-hint{font-size:.85rem;color:var(--text-muted);margin:-.75rem 0 1.25rem;font-style:italic}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.9rem;font-weight:600;color:var(--text-main);margin-bottom:.5rem}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--glass-border);border-radius:8px;background-color:var(--glass-bg);color:var(--text-main);font-size:.95rem;font-family:inherit;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-gold);box-shadow:0 0 0 3px #e0b46a26}.form-row-split{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.25rem}.form-row-split .form-group{margin-bottom:0}.grid-preview{background:#e0b46a14;border:1px solid rgba(224,180,106,.25);border-radius:8px;padding:.75rem 1rem;margin-top:.5rem}.grid-preview-label{font-size:.9rem;color:var(--text-muted)}.grid-preview-label strong{color:var(--accent-gold)}.form-actions{padding:1.75rem 3rem;background-color:var(--glass-bg);border-top:1px solid rgba(255,200,150,.15);display:flex;gap:1rem}.btn-cancel{flex:1;background:transparent;color:var(--text-muted);border:1px solid var(--glass-border);padding:12px 24px;border-radius:999px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-submit{flex:2;background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:12px 32px;border-radius:999px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 18px #0009}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 24px #000000b3}@media(max-width:640px){.add-rack-container{padding:1.75rem 1.25rem}.form-section,.form-actions{padding:1.5rem}.form-row-split{grid-template-columns:1fr}}.view-toggle{display:flex;gap:.4rem}.view-toggle-btn{background:#ffffff0f;border:1px solid rgba(255,200,150,.2);color:#d0c3b5;padding:.5rem 1rem;border-radius:999px;font-size:.85rem;cursor:pointer;transition:all .15s;white-space:nowrap}.view-toggle-btn:hover:not(.view-toggle-active){border-color:#e0b46a;color:#e0b46a}.view-toggle-active{background:#8b2b3b40;border-color:#8b2b3b80;color:#f7f2ec}.cellar-list-page{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);padding:2.5rem clamp(1.5rem,4vw,4rem)}.cl-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-muted)}.cl-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem;gap:1rem;position:relative}.cl-header h1{margin:0;font-size:clamp(1.9rem,3vw,2.4rem);letter-spacing:.03em;position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;pointer-events:none}.cl-header-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.btn-add{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 18px #0009;white-space:nowrap}.cl-search-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.cl-search-input{flex:1;padding:.75rem 1.25rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.95rem}.cl-search-input:focus{outline:none;border-color:var(--accent-gold)}.cl-count{font-size:.85rem;color:var(--text-dim);white-space:nowrap}.cl-clear-search{background:transparent;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:.25rem .5rem;border-radius:50%;transition:color .15s}.cl-clear-search:hover{color:var(--text-main)}.cl-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.cl-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;overflow:hidden;cursor:pointer;position:relative;transition:transform .2s,border-color .2s,box-shadow .2s}.cl-card:hover{transform:translateY(-3px);border-color:#e0b46a66;box-shadow:0 12px 32px #00000080}.cl-card-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.35rem;z-index:2}.btn-icon{background:#0009;border:1px solid var(--glass-border);color:var(--text-muted);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.cl-card-photo{height:180px;overflow:hidden}.cl-card-photo img{width:100%;height:100%;object-fit:cover}.cl-card-photo-placeholder{height:180px;display:flex;align-items:center;justify-content:center;font-size:3.5rem;background:#ffffff08}.cl-card-content{padding:1rem}.cl-card-producer{font-size:1rem;font-weight:700;margin:0 0 .2rem;color:var(--text-main)}.cl-card-product{font-size:.85rem;color:var(--accent-gold);margin:0 0 .35rem}.cl-card-type{font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.cl-card-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.cl-badge{font-size:.72rem;padding:.2rem .6rem;border-radius:999px;background:#ffffff0f;border:1px solid var(--glass-border);color:var(--text-muted)}.cl-card-footer{display:flex;align-items:center;justify-content:space-between}.cl-qty{font-size:.8rem;color:var(--text-dim)}.cl-counter-chips{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.cl-chip{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.cl-chip-sealed{background:#4ecdb426;color:#4ecdb4}.cl-chip-opened{background:#ffc10726;color:#ffc107}.cl-chip-done{background:#8f857d1f;color:var(--text-dim)}.cl-status{font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;text-transform:capitalize}.cl-status-sealed{background:#10a37f26;border:1px solid rgba(16,163,127,.35);color:#4ecdb4}.cl-status-opened{background:#e0b46a26;border:1px solid rgba(224,180,106,.35);color:var(--accent-gold)}.cl-status-finished{background:#8b2b3b26;border:1px solid rgba(139,43,59,.35);color:#e87a8a}.cl-status-gift{background:#4285f426;border:1px solid rgba(66,133,244,.35);color:#7ab3f5}.cl-empty{grid-column:1/-1;text-align:center;padding:3rem 2rem;color:var(--text-muted)}.cl-empty p{margin-bottom:1rem}.cl-table-wrap{overflow-x:auto}.cl-table{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;overflow:hidden;min-width:800px}.cl-table-header{display:grid;grid-template-columns:60px 1.5fr 1.5fr 1fr 80px 1fr 70px 80px 80px;gap:.75rem;padding:1rem 1.25rem;background:#00000040;border-bottom:1px solid var(--glass-border);font-size:.75rem;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:.08em}.clt-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.clt-sortable:hover{color:var(--text-main)}.clt-vintage,.clt-qty{text-align:center}.cl-table-row{display:grid;grid-template-columns:60px 1.5fr 1.5fr 1fr 80px 1fr 70px 80px 80px;gap:.75rem;padding:.875rem 1.25rem;border-bottom:1px solid rgba(255,200,150,.06);align-items:center;cursor:pointer;transition:background .15s;font-size:.88rem}.cl-table-row:hover{background:#e0b46a0d}.cl-table-row:last-child{border-bottom:none}.cl-table-row .clt-producer strong{color:var(--text-main)}.cl-table-row .clt-product{color:var(--accent-gold);font-size:.83rem}.cl-table-row .clt-category{color:var(--text-muted)}.cl-table-row .clt-vintage{color:var(--text-muted);text-align:center;justify-content:center;display:flex;align-items:center}.cl-table-row .clt-region{color:var(--text-muted);font-size:.83rem}.cl-table-row .clt-qty{color:var(--text-muted);text-align:center;justify-content:center;display:flex;align-items:center}.clt-actions{display:flex;gap:.35rem}.clt-photo-img{width:40px;height:52px;object-fit:cover;border-radius:6px}.clt-photo-placeholder{width:40px;height:52px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:#ffffff0a;border-radius:6px}.cl-table-footer{font-size:.82rem;color:var(--text-dim);padding:.75rem 1.25rem;text-align:right}@media(max-width:640px){.cellar-list-page{padding:1.75rem 1.25rem}.cl-header{flex-wrap:wrap}.cl-header h1{text-align:left}.cl-cards-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.armory-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid rgba(255,200,150,.15);padding-bottom:0}.armory-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted, #d0c3b5);cursor:pointer;font-size:.9rem;letter-spacing:.04em;padding:.5rem 1.25rem .75rem;text-transform:uppercase;transition:color .2s,border-color .2s;margin-bottom:-1px}.cl-count-breakdown{color:#8a7a6e;font-size:.8rem}.cl-status-wishlist{background:#9370db26;border:1px solid rgba(147,112,219,.4);color:#b39ddb;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.supplier-list-page{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);padding:2.5rem clamp(1.5rem,4vw,4rem)}.sl-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-muted)}.sl-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem;gap:1rem;position:relative}.sl-header h1{margin:0;font-size:clamp(1.9rem,3vw,2.4rem);letter-spacing:.03em;position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;pointer-events:none}.sl-header-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.btn-back{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 8px 18px #0009;transition:transform .15s;white-space:nowrap}.btn-add{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 8px 18px #0009;transition:transform .15s;white-space:nowrap}.btn-add:hover{transform:translateY(-2px)}.sl-search-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.sl-search-input{flex:1;padding:.75rem 1.25rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.95rem}.sl-search-input:focus{outline:none;border-color:var(--accent-gold)}.sl-count{font-size:.85rem;color:var(--text-dim);white-space:nowrap}.sl-clear-search{background:transparent;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:.25rem .5rem;border-radius:50%;transition:color .15s}.sl-clear-search:hover{color:var(--text-main)}.sl-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.sl-card{border-radius:18px;overflow:hidden;cursor:pointer;position:relative;min-height:180px;background:#0006;transition:transform .2s,box-shadow .2s}.sl-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #0009}.sl-card-overlay{position:absolute;inset:0;background:linear-gradient(135deg,#3c1e1499,#0000004d);pointer-events:none;border-radius:18px}.sl-card-glass{position:relative;z-index:1;padding:1.25rem;height:100%;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sl-card-header{margin-bottom:.35rem}.sl-card-title{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sl-card-name{font-size:1.05rem;font-weight:700;margin:0;color:var(--text-main)}.sl-card-type{font-size:.85rem;color:var(--text-muted);margin:0 0 .75rem}.sl-badge-active{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;background:#10a37f26;border:1px solid rgba(16,163,127,.35);color:#4ecdb4}.sl-badge-inactive{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;background:#8b2b3b26;border:1px solid rgba(139,43,59,.35);color:#e87a8a}.sl-contact{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}.sl-contact-link{font-size:.82rem;color:var(--text-muted);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s;display:inline;width:fit-content}.sl-contact-link:hover{color:var(--accent-gold)}.sl-card-actions{display:flex;gap:.5rem;justify-content:flex-end}.btn-icon{background:#00000080;border:1px solid var(--glass-border);color:var(--text-muted);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-icon:hover{background:#e0b46a26;border-color:var(--accent-gold);color:var(--accent-gold)}.btn-icon-danger:hover{background:#ea433526!important;border-color:#ef5350!important;color:#f47c7c!important}.sl-empty{grid-column:1/-1;text-align:center;padding:3rem 2rem;color:var(--text-muted)}.sl-empty p{margin-bottom:1rem}.sl-table-wrap{overflow-x:auto}.sl-table{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;overflow:hidden;min-width:700px}.sl-table-header{display:grid;grid-template-columns:90px 2fr 1.5fr 1.5fr 2fr 80px;gap:.75rem;padding:1rem 1.25rem;background:#00000040;border-bottom:1px solid var(--glass-border);font-size:.75rem;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:.08em}.slt-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.slt-sortable:hover{color:var(--text-main)}.sl-table-row{display:grid;grid-template-columns:90px 2fr 1.5fr 1.5fr 2fr 80px;gap:.75rem;padding:.875rem 1.25rem;border-bottom:1px solid rgba(255,200,150,.06);align-items:center;cursor:pointer;transition:background .15s;font-size:.88rem}.sl-table-row:hover{background:#e0b46a0d}.sl-table-row:last-child{border-bottom:none}.sl-table-row .slt-name strong{color:var(--text-main)}.sl-table-row .slt-type,.sl-table-row .slt-location{color:var(--text-muted)}.sl-contact-links{display:flex;flex-direction:column;gap:.2rem}.sl-contact-links .sl-contact-link{max-width:100%}.sl-contact-link--website{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slt-actions{display:flex;gap:.35rem}.sl-table-footer{font-size:.82rem;color:var(--text-dim);padding:.75rem 1.25rem;text-align:right}@media(max-width:640px){.supplier-list-page{padding:1.75rem 1.25rem}.sl-header{flex-wrap:wrap}.sl-header h1{text-align:left}.sl-cards-grid{grid-template-columns:1fr}}.buy-more-modal{background:#1e1612;border:1px solid rgba(255,200,150,.25);border-radius:20px;width:420px;max-width:95vw;box-shadow:0 24px 60px #000000b3;overflow:hidden;animation:modal-slide-up .2s ease}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.buy-more-header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 24px 16px;border-bottom:1px solid rgba(255,200,150,.12)}.buy-more-title{font-size:20px;font-weight:700;color:#f7f2ec;margin:0}.buy-more-subtitle{font-size:13px;color:#e0b46a;margin:4px 0 0}.buy-more-close{background:transparent;border:none;color:#8a7a6e;font-size:22px;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.buy-more-close:hover{color:#f7f2ec}.buy-more-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.buy-more-field{display:flex;flex-direction:column;gap:6px}.buy-more-label{font-size:11px;font-weight:700;color:#8a7a6e;text-transform:uppercase;letter-spacing:.08em}.buy-more-input{background:#ffffff0f;border:1px solid rgba(255,200,150,.18);border-radius:999px;color:#f7f2ec;font-size:14px;padding:10px 14px;width:100%;box-sizing:border-box;transition:border-color .15s}.buy-more-input:focus{outline:none;border-color:#e0b46a80}.qty-stepper{display:flex;align-items:center;gap:0;background:#ffffff0f;border:1px solid rgba(255,200,150,.18);border-radius:10px;overflow:hidden;width:fit-content}.qty-btn{background:transparent;border:none;color:#e0b46a;font-size:20px;padding:8px 18px;cursor:pointer;transition:background .15s}.qty-btn:hover{background:#e0b46a1a}.qty-value{font-size:18px;font-weight:700;color:#f7f2ec;min-width:40px;text-align:center}.buy-more-price-wrap{position:relative}.buy-more-currency{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#8a7a6e;font-size:14px}.buy-more-input.price{padding-left:28px}.buy-more-total{font-size:12px;color:#4ecdb4;margin-top:4px}.buy-more-error{font-size:13px;color:#f47c7c;margin:0}.buy-more-footer{display:flex;gap:12px;padding:16px 24px 24px;border-top:1px solid rgba(255,200,150,.12)}.buy-more-btn-cancel{flex:1;background:transparent;border:1px solid rgba(255,200,150,.18);color:#d0c3b5;padding:11px;border-radius:999px;cursor:pointer;font-size:14px;transition:all .15s}.buy-more-btn-cancel:hover{border-color:#ffc89666;color:#f7f2ec}.buy-more-btn-save{flex:2;background:linear-gradient(135deg,#8b2b3b,#6b1f2b);border:1px solid rgba(139,43,59,.6);color:#fff;padding:11px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.buy-more-btn-save:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}.buy-more-btn-save:disabled{opacity:.5;cursor:not-allowed}.bh-card{grid-column:1 / -1}.bh-summary{display:flex;flex-wrap:wrap;gap:6px 24px;padding:10px 0 16px;border-bottom:1px solid var(--glass-border);margin-bottom:4px}.bh-stat{font-size:13px;color:var(--text-dim)}.bh-stat strong{color:var(--accent-gold);font-weight:700;font-size:14px}.bh-table{display:flex;flex-direction:column}.bh-header,.bh-row{display:grid;grid-template-columns:108px 80px 44px 72px 1fr;align-items:center;column-gap:12px;padding:9px 6px}.bh-header{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--glass-border);padding-bottom:10px}.bh-row{font-size:13px;color:var(--text-muted);border-bottom:1px solid rgba(255,255,255,.035);transition:background .12s}.bh-row:last-child{border-bottom:none}.bh-row:hover{background:#ffffff08;border-radius:6px}.bh-col-center{text-align:center}.bh-date{font-size:12px;color:var(--text-dim);white-space:nowrap}.bh-qty{text-align:center;font-weight:600;color:var(--text-muted)}.bh-price{text-align:right;font-size:12px;color:var(--text-dim)}.bh-detail{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.bh-rating{color:var(--accent-gold);font-size:12px}.bh-wba{font-size:12px}.bh-notes{color:var(--text-dim);font-style:italic;font-size:12px}.bh-pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}.bh-pill-buy{background:#4ecdb41f;color:#4ecdb4;border:1px solid rgba(78,205,180,.25)}.bh-pill-drink{background:#e0b46a1f;color:var(--accent-gold);border:1px solid rgba(224,180,106,.25)}.consume-backdrop{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;display:flex;align-items:center;justify-content:center;padding:1rem}.consume-modal{background:#1e1612;border:1px solid rgba(255,200,150,.25);border-radius:20px;width:100%;max-width:480px;box-shadow:0 24px 64px #000c;overflow:hidden}.consume-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,200,150,.15);background:#ffffff0a}.consume-title{font-size:1.1rem;font-weight:700;color:#f7f2ec;margin:0 0 .25rem}.consume-item{font-size:.85rem;color:#e0b46a;margin:0}.consume-close{background:transparent;border:none;color:#8a7a6e;font-size:1.5rem;cursor:pointer;line-height:1;padding:0;transition:color .15s;flex-shrink:0}.consume-close:hover{color:#f7f2ec}.consume-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.1rem}.consume-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.consume-field{display:flex;flex-direction:column;gap:.4rem}.consume-field label{font-size:.85rem;font-weight:600;color:#d0c3b5;letter-spacing:.02em}.consume-field input[type=date],.consume-field select,.consume-field textarea{background:#ffffff0f;border:1px solid rgba(255,200,150,.25);border-radius:8px;color:#f7f2ec;font-size:.9rem;font-family:inherit;padding:.6rem .875rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;width:100%}.consume-field input:focus,.consume-field select:focus,.consume-field textarea:focus{outline:none;border-color:#e0b46a;box-shadow:0 0 0 3px #e0b46a26}.consume-field textarea{resize:vertical;min-height:80px}.rating-wrap{display:flex;align-items:center;gap:1rem}.rating-slider{flex:1;-webkit-appearance:none;appearance:none;height:4px;background:#ffffff1f;border-radius:2px;outline:none;border:none!important;padding:0!important;box-shadow:none!important}.rating-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#e0b46a;cursor:pointer;box-shadow:0 2px 6px #0006}.rating-value{font-size:1.1rem;font-weight:700;color:#e0b46a;min-width:32px;text-align:right}.consume-checkbox{display:flex;align-items:center;gap:.6rem;cursor:pointer;font-size:.9rem;color:#d0c3b5;font-weight:500}.consume-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:#8b2b3b;cursor:pointer}.consume-footer{display:flex;gap:.75rem;padding-top:.5rem}.btn-cancel{flex:1;background:transparent;border:1px solid rgba(255,200,150,.25);color:#d0c3b5;padding:.75rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-cancel:hover{border-color:#e0b46a;color:#e0b46a}.btn-submit{flex:2;background:linear-gradient(135deg,#8b2b3b,#5f1b28);color:#fff;border:none;padding:.75rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s;box-shadow:0 4px 12px #0006}.consume-slots{display:flex;flex-direction:column;gap:6px;margin-top:6px}.consume-slot-btn{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;border:1px solid rgba(255,200,150,.2);background:transparent;color:#d0c3b5;cursor:pointer;font-size:.88rem;text-align:left;transition:all .15s}.consume-slot-btn:hover:not(.active){background:#ffffff0a;border-color:#ffc89659}.consume-slot-btn.active{border-color:#4ecdb499;background:#4ecdb41a;color:#4ecdb4}.slot-rack-icon{font-size:1rem;flex-shrink:0}.slot-label{font-weight:600}.consume-no-slots{font-size:.85rem;color:#8a7a6e;margin:0;padding:8px 0}@media(max-width:480px){.consume-row{grid-template-columns:1fr}}.consume-action-type{margin-bottom:4px}.consume-action-btns{display:flex;gap:8px;margin-top:6px}.consume-action-btn{flex:1;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#ccc;cursor:pointer;font-size:13px;transition:all .15s}.consume-action-btn.active{border-color:#8b2b3bb3;background:#8b2b3b2e;color:#fff}.consume-action-btn:hover:not(.active){background:#ffffff0d}:root{--bg-warm-dark: #15100f;--bg-warm-mid: #2a1f1b;--bg-warm-card: #1e1612;--accent-burgundy:#8b2b3b;--accent-gold: #e0b46a;--accent-gold-dim:#b8894a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--text-dim: #8a7a6e;--glass-bg: rgba(255,255,255,.06);--glass-border: rgba(255,200,150,.18);--glass-hover: rgba(255,255,255,.1);--radius-md: 12px;--radius-lg: 18px;--shadow-card: 0 4px 24px rgba(0,0,0,.45)}.cellar-detail-page{min-height:100vh;background-color:var(--bg-warm-dark);background-image:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(139,43,59,.08) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(224,180,106,.05) 0%,transparent 70%);color:var(--text-main);padding:0 0 64px}.detail-loading,.detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-muted)}.detail-loading-spinner{width:40px;height:40px;border:3px solid var(--glass-border);border-top-color:var(--accent-gold);border-radius:50%;animation:spin .8s linear infinite}.btn-back-large{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--accent-gold);padding:10px 20px;border-radius:999px;cursor:pointer;font-size:14px}.detail-hero{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:40px 48px 48px;border-bottom:1px solid var(--glass-border);background:linear-gradient(180deg,rgba(139,43,59,.06) 0%,transparent 100%)}.detail-hero:has(.detail-hero-map){grid-template-columns:220px 1fr 280px}.detail-hero-map{display:flex;flex-direction:column;gap:8px;min-height:220px}.detail-hero-map-label{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:600;color:var(--text-muted)}.detail-hero-map-city{font-size:.78rem;color:var(--text-dim);font-weight:400}.detail-hero-map iframe{flex:1;border-radius:12px;min-height:200px}.detail-hero-left{display:flex;flex-direction:column;align-items:center;gap:16px}.btn-back{align-self:flex-start;background:transparent;border:1px solid var(--glass-border);color:var(--text-muted);padding:7px 14px;border-radius:999px;cursor:pointer;font-size:13px;transition:all .2s}.btn-back:hover{color:var(--accent-gold);border-color:var(--accent-gold);background:var(--glass-bg)}.bottle-photo{width:180px;height:280px;object-fit:cover;border-radius:18px;box-shadow:0 8px 32px #0009;border:1px solid var(--glass-border)}.bottle-photo-placeholder{width:180px;height:280px;border-radius:18px;background:var(--glass-bg);border:1px dashed var(--glass-border);display:flex;align-items:center;justify-content:center;font-size:64px}.detail-hero-info{display:flex;flex-direction:column;gap:12px;padding-top:8px}.detail-hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-category-tag{background:#8b2b3b59;border:1px solid rgba(139,43,59,.6);color:#e87a8a;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;border-radius:20px}.limited-badge{background:#e0b46a26;border:1px solid rgba(224,180,106,.4);color:var(--accent-gold);font-size:11px;font-weight:600;letter-spacing:.08em;padding:3px 10px;border-radius:20px}.detail-title{font-size:36px;font-weight:700;color:var(--text-main);line-height:1.1;margin:0;letter-spacing:-.02em}.detail-subtitle{font-size:22px;font-weight:400;color:var(--accent-gold);margin:0}.detail-subtitle-meta{font-size:15px;color:var(--text-muted);margin:0;text-transform:capitalize}.detail-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.info-badge{display:flex;flex-direction:column;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:6px 12px;min-width:80px}.info-badge-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.info-badge-value{font-size:14px;color:var(--text-main);font-weight:500;margin-top:2px}.detail-hero-actions{display:flex;gap:12px;margin-top:8px}.btn-edit{background:linear-gradient(135deg,var(--accent-burgundy),#6b1f2b);border:1px solid rgba(139,43,59,.6);color:#fff;padding:10px 24px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-edit:hover{filter:brightness(1.15);transform:translateY(-1px)}.btn-buy-more{background:transparent;border:1px solid rgba(78,205,180,.5);color:#4ecdb4;padding:10px 24px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-buy-more:hover{background:#4ecdb41f;border-color:#4ecdb4;transform:translateY(-1px)}.btn-history{background:transparent;border:1px solid rgba(255,200,150,.25);color:#d0c3b5;padding:10px 20px;border-radius:999px;cursor:pointer;font-size:14px;transition:all .2s}.btn-history:hover{color:#e0b46a;border-color:#e0b46a80;transform:translateY(-1px)}.btn-consume{background:transparent;border:1px solid rgba(16,163,127,.5);color:#4ecdb4;padding:10px 24px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-consume:hover:not(:disabled){background:#10a37f1f;border-color:#4ecdb4;transform:translateY(-1px)}.btn-consume:disabled{opacity:.35;cursor:not-allowed}.btn-open-bottle{background:transparent;border:1px solid rgba(255,193,7,.5);color:#ffc107;padding:10px 24px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-open-bottle:hover{background:#ffc1071a;border-color:#ffc107;transform:translateY(-1px)}.btn-reseal{background:transparent;border:1px solid rgba(143,133,125,.4);color:#8a7a6e;padding:10px 20px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.btn-reseal:hover{background:#8f857d1a;border-color:#a09080;color:#d0c3b5;transform:translateY(-1px)}.detail-counter-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.counter-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:400}.counter-chip strong{font-weight:600}.counter-sealed{background:#4ecdb41f;color:#4ecdb4;border:1px solid rgba(78,205,180,.3)}.counter-opened{background:#ffc1071f;color:#ffc107;border:1px solid rgba(255,193,7,.3)}.counter-finished{background:#a0a0a01f;color:#aaa;border:1px solid rgba(160,160,160,.3)}.counter-lifetime{background:#c8c8c814;color:#888;border:1px solid rgba(200,200,200,.2)}.btn-delete{background:transparent;border:1px solid rgba(244,67,54,.5);color:#f47c7c;padding:10px 24px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-delete:hover{background:#f4433626;border-color:#ef5350;transform:translateY(-1px)}.status-pill{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:20px}.status-sealed{background:#10a37f26;border:1px solid rgba(16,163,127,.4);color:#4ecdb4}.status-opened{background:#e0b46a26;border:1px solid rgba(224,180,106,.4);color:var(--accent-gold)}.status-finished{background:#8a7a6e26;border:1px solid rgba(138,122,110,.4);color:#8a7a6e}.status-empty{background:#8a7a6e1a;border:1px solid rgba(138,122,110,.3);color:#6e5e52}.status-gift{background:#4285f426;border:1px solid rgba(66,133,244,.4);color:#7ab3f5}.status-sold{background:#ea433526;border:1px solid rgba(234,67,53,.4);color:#f47c7c}.detail-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;padding:36px 48px}.section-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:hidden;box-shadow:var(--shadow-card);transition:border-color .2s}.section-card:hover{border-color:#e0b46a47}.section-card-header{display:flex;align-items:center;gap:10px;padding:16px 20px 12px;border-bottom:1px solid var(--glass-border)}.section-icon{font-size:16px}.section-title{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin:0}.section-card-body{padding:20px}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item.full-width{grid-column:1 / -1}.info-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.info-value{font-size:14px;color:var(--text-main);font-weight:500}.info-notes{font-size:14px;color:var(--text-muted);line-height:1.6;margin:0}.info-empty{font-size:13px;color:var(--text-dim);font-style:italic;margin:0}.value-highlight{color:var(--accent-gold);font-size:18px;font-weight:700}.gain{color:#4ecdb4}.loss{color:#f47c7c}.drinking-window-vis{display:flex;flex-direction:column;gap:12px}.drinking-window-bar-wrap{display:flex;align-items:center;gap:10px}.drinking-year{font-size:13px;color:var(--text-muted);font-weight:600;white-space:nowrap}.drinking-bar{flex:1;height:8px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:4px;position:relative;overflow:visible}.drinking-peak-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;background:var(--accent-gold);border:2px solid var(--bg-warm-dark);border-radius:50%;box-shadow:0 0 8px #e0b46a99;cursor:default}.drinking-peak-label{font-size:12px;color:var(--accent-gold);margin:0}.drinking-status-row{display:flex;align-items:center;gap:10px}.drinking-pill{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:20px}.drink-young{background:#4285f426;border:1px solid rgba(66,133,244,.4);color:#7ab3f5}.drink-ready{background:#10a37f26;border:1px solid rgba(16,163,127,.4);color:#4ecdb4}.drink-peak{background:#e0b46a26;border:1px solid rgba(224,180,106,.4);color:var(--accent-gold)}.drink-past{background:#ea43351f;border:1px solid rgba(234,67,53,.3);color:#f47c7c}.notes-block{margin-bottom:16px}.notes-block:last-child{margin-bottom:0}.notes-label{display:block;font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:6px}.notes-text{font-size:14px;color:var(--text-muted);line-height:1.7;margin:0}.cellar-rating-section{margin:0 48px;padding-top:32px}.cellar-rating-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.cellar-rating-title{color:var(--text-main);font-size:22px;font-weight:700;margin:0}.cellar-rating-value{color:var(--accent-gold);font-size:.95rem;font-weight:600}.cellar-rating-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--shadow-card);padding:20px 22px}.cellar-rating-stars{display:flex;gap:.35rem}.cellar-rating-star{background:transparent;border:0;color:#ffc89640;cursor:pointer;font-size:1.6rem;padding:0}.cellar-rating-star.is-active{color:var(--accent-gold)}.cellar-rating-star:disabled{cursor:default}.cellar-rating-caption{color:var(--text-dim);font-size:.9rem;margin:.75rem 0 0}.tags-list{display:flex;flex-wrap:wrap;gap:8px}.tag-pill{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-muted);font-size:12px;padding:4px 12px;border-radius:20px}.consumption-timeline-card{grid-column:1 / -1}.timeline-count{margin-left:auto;font-size:.78rem;color:var(--text-dim);font-weight:500}.timeline{display:flex;flex-direction:column;gap:0}.timeline-entry{display:flex;gap:1rem;position:relative;padding-bottom:1.25rem}.timeline-entry:last-child{padding-bottom:0}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--accent-gold);border:2px solid var(--bg-warm-dark);flex-shrink:0;margin-top:4px;box-shadow:0 0 6px #e0b46a66;z-index:1}.timeline-line{position:absolute;left:4px;top:14px;bottom:0;width:2px;background:var(--glass-border)}.timeline-content{flex:1;display:flex;flex-direction:column;gap:.3rem}.timeline-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.timeline-bottle{font-size:.9rem;font-weight:700;color:var(--text-main)}.timeline-date{font-size:.82rem;color:var(--text-muted)}.timeline-rating{font-size:.9rem;font-weight:700;color:var(--accent-gold);background:#e0b46a1a;border:1px solid rgba(224,180,106,.25);border-radius:999px;padding:.1rem .6rem}.timeline-wba{font-size:.85rem;padding:.1rem .5rem;border-radius:999px}.wba-yes{background:#10a37f1a;border:1px solid rgba(16,163,127,.3)}.wba-no{background:#ea43351a;border:1px solid rgba(234,67,53,.3)}.timeline-meta{display:flex;gap:.75rem;flex-wrap:wrap}.timeline-occasion{font-size:.8rem;color:var(--text-muted);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;padding:.15rem .6rem}.timeline-rack{font-size:.8rem;color:var(--text-dim)}.timeline-notes{font-size:.85rem;color:var(--text-muted);margin:0;font-style:italic;line-height:1.5}.drinking-ai-suggested{font-size:11px;color:var(--accent-gold-dim);font-style:italic;margin:4px 0 0;opacity:.8}.storage-positions-list{display:flex;flex-direction:column;gap:.6rem}.storage-position-row{display:flex;align-items:center;gap:.75rem;background:#ffffff08;border:1px solid var(--glass-border);border-radius:8px;padding:.6rem .875rem;flex-wrap:wrap}.storage-position-rack{font-size:.88rem;font-weight:600;color:var(--text-main);flex:1}.storage-position-slot{font-size:.82rem;color:var(--accent-gold);background:#e0b46a1a;border:1px solid rgba(224,180,106,.25);border-radius:999px;padding:.15rem .6rem}.storage-position-bottle{font-size:.78rem;color:var(--text-dim)}.storage-position-notes{font-size:.78rem;color:var(--text-dim);font-style:italic;width:100%}.producer-map-link{font-size:12px;color:var(--accent-gold);text-decoration:none;margin-left:6px;transition:opacity .15s}.producer-map-link:hover{opacity:.75}.detail-audit{display:flex;align-items:center;gap:10px;padding:28px 48px 0;font-size:12px;color:var(--text-dim)}@media(max-width:1024px){.detail-hero{grid-template-columns:160px 1fr;padding:28px}.detail-body{padding:24px 28px}.detail-audit{padding:20px 28px 0}}@media(max-width:640px){.detail-hero{grid-template-columns:1fr;padding:20px}.detail-hero-left{flex-direction:row;align-items:flex-start}.bottle-photo,.bottle-photo-placeholder{width:100px;height:160px}.detail-title{font-size:26px}.detail-body{padding:16px 20px;grid-template-columns:1fr}.detail-audit{padding:16px 20px 0}}.bottle-photo-wrap{position:relative;cursor:pointer}.bottle-photo-zoom-hint{position:absolute;bottom:8px;right:8px;background:#00000080;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:0;transition:opacity .2s}.bottle-photo-wrap:hover .bottle-photo-zoom-hint{opacity:1}.detail-link{color:var(--accent-gold);text-decoration:none;border-bottom:1px solid rgba(224,180,106,.3);transition:border-color .15s}.detail-link:hover{border-color:var(--accent-gold)}.status-select{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:13px;padding:4px 12px;cursor:pointer;outline:none;transition:border-color .15s}.status-select:hover{border-color:var(--accent-gold)}.status-select option{background:var(--bg-warm-mid)}.storage-position-clickable{cursor:pointer;transition:all .15s}.storage-position-clickable:hover{background:#e0b46a14;border-color:#e0b46a4d;border-radius:8px}.storage-position-arrow{color:var(--accent-gold);font-size:14px;margin-left:auto}.status-wishlist{background:#9370db26;border:1px solid rgba(147,112,219,.45);color:#b39ddb}.btn-add-to-cellar{background:linear-gradient(135deg,#9370db40,#9370db1a);border:1px solid rgba(147,112,219,.6);color:#b39ddb;padding:10px 24px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-add-to-cellar:hover{background:#9370db4d;border-color:#b39ddb;transform:translateY(-1px);box-shadow:0 4px 16px #9370db40}.inventory-counters{display:flex;align-items:center;justify-content:space-around;padding:16px 0 20px;border-bottom:1px solid var(--glass-border);margin-bottom:16px}.inventory-counter{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.inventory-counter-value{font-size:32px;font-weight:800;line-height:1}.inventory-counter-label{font-size:11px;font-weight:600;letter-spacing:.9px;text-transform:uppercase;color:var(--text-dim)}.inventory-counter-divider{width:1px;height:44px;background:var(--glass-border);flex-shrink:0}.inv-sealed{color:#4ecdb4}.inv-opened{color:#ffc107}.inv-lifetime{color:var(--text-dim)}.inventory-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--glass-border)}:root{--bg-warm-dark: #15100f;--bg-warm-mid: #2a1f1b;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--text-dim: #8a7a6e;--glass-bg: rgba(255,255,255,.08);--glass-border: rgba(255,200,150,.25)}.storage-page{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);padding:2.5rem clamp(1.5rem,4vw,4rem)}.storage-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-muted);font-size:1.1rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;position:relative}.btn-back:hover{transform:translateY(-2px);box-shadow:0 12px 24px #000000b3}.btn-primary{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 18px #0009}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px #000000b3}.storage-summary{display:flex;align-items:center;gap:1.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:1.25rem 2rem;margin-bottom:2.5rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.summary-stat{display:flex;flex-direction:column;align-items:center;gap:.2rem}.summary-value{font-size:1.8rem;font-weight:700;color:var(--accent-gold);line-height:1}.summary-label{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.summary-divider{width:1px;height:36px;background:var(--glass-border)}.storage-section{margin-bottom:2.5rem}.storage-section-title{font-size:1rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 1.25rem}.storage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.storage-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;padding:1.5rem;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.storage-card:hover{transform:translateY(-3px);border-color:#e0b46a66;box-shadow:0 12px 32px #00000080}.storage-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.storage-card-name{font-size:1.1rem;font-weight:700;color:var(--text-main);margin:0}.storage-card-actions{display:flex;gap:.5rem}.btn-icon{background:#00000080;border:1px solid var(--accent-gold);color:var(--accent-gold);font-size:1rem;padding:.4rem .6rem;border-radius:8px;cursor:pointer;transition:all .15s}.btn-icon:hover{background:#e0b46a33;transform:translateY(-1px)}.storage-card-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.rack-dims{font-size:.85rem;color:var(--text-muted)}.rack-type-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.2rem .6rem;border-radius:999px;background:#8b2b3b33;border:1px solid rgba(139,43,59,.4);color:#e87a8a}.rack-type-shelf{background:#4285f426;border-color:#4285f459;color:#7ab3f5}.storage-card-desc{font-size:.85rem;color:var(--text-dim);margin:0 0 .75rem;font-style:italic}.util-bar-wrap{margin-top:.75rem}.util-bar-track{height:6px;background:#ffffff14;border-radius:3px;overflow:hidden;margin-bottom:.4rem}.util-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}.util-low{background:linear-gradient(90deg,#4ecdb4,#2ecc71)}.util-mid{background:linear-gradient(90deg,var(--accent-gold),#f0a500)}.util-high{background:linear-gradient(90deg,#e87a8a,var(--accent-burgundy))}.util-label{font-size:.75rem;color:var(--text-dim)}.shelf-items-count{display:flex;align-items:baseline;gap:.5rem;margin-top:.75rem}.shelf-count-value{font-size:1.8rem;font-weight:700;color:var(--accent-gold);line-height:1}.shelf-count-label{font-size:.85rem;color:var(--text-dim)}.storage-empty{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.storage-empty p{font-size:1.1rem;margin-bottom:1.5rem}@media(max-width:640px){.storage-page{padding:1.75rem 1.25rem}.page-header{flex-wrap:wrap;gap:1rem}.storage-summary{flex-wrap:wrap;gap:1rem;padding:1rem}.storage-grid{grid-template-columns:1fr}}.storage-search-bar{position:relative;margin-bottom:1.5rem;display:flex;align-items:center}.storage-search-input{width:100%;padding:.85rem 3rem .85rem 1.25rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.95rem;transition:border-color .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.storage-search-input:focus{outline:none;border-color:var(--accent-gold)}.storage-search-input::placeholder{color:var(--text-dim)}.storage-search-clear{position:absolute;right:1rem;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.9rem;padding:.25rem;transition:color .15s}.storage-search-clear:hover{color:var(--text-main)}.storage-search-results{margin-bottom:2rem}.storage-search-status{color:var(--text-dim);font-size:.9rem;padding:1rem 0}.storage-search-count{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem}.storage-search-list{display:flex;flex-direction:column;gap:.5rem}.storage-search-item{display:flex;align-items:center;gap:1rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;padding:.85rem 1.25rem;cursor:pointer;transition:border-color .15s,background .15s}.storage-search-item:hover{border-color:#e0b46a66;background:#ffffff0f}.ssi-photo{width:44px;height:56px;flex-shrink:0;border-radius:6px;overflow:hidden;background:#ffffff0d;display:flex;align-items:center;justify-content:center;font-size:1.6rem}.ssi-photo img{width:100%;height:100%;object-fit:cover}.ssi-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.ssi-producer{font-size:.95rem;font-weight:700;color:var(--text-main)}.ssi-product{font-size:.85rem;color:var(--accent-gold)}.ssi-meta{font-size:.78rem;color:var(--text-dim);display:flex;gap:.35rem;flex-wrap:wrap}.ssi-location{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex-shrink:0}.ssi-rack{font-size:.8rem;color:var(--text-muted);text-align:right;max-width:200px;word-break:break-word;line-height:1.3}.ssi-slot{font-size:1rem;font-weight:700;color:var(--accent-gold);background:#e0b46a1a;border:1px solid rgba(224,180,106,.25);border-radius:6px;padding:.15rem .6rem;font-family:monospace;letter-spacing:.05em}.ssi-arrow{color:var(--text-dim);font-size:1rem;flex-shrink:0;transition:color .15s,transform .15s}.storage-search-item:hover .ssi-arrow{color:var(--accent-gold);transform:translate(2px)}.armory-page{min-height:100vh;background:radial-gradient(circle at top left,#1a1a2e,#12100f 45%,#050304);color:var(--text-main, #f7f2ec);padding:2.5rem clamp(1.5rem,4vw,4rem)}.armory-form-container{min-height:100vh;background:radial-gradient(circle at top left,#1a1a2e,#12100f 45%,#050304);color:var(--text-main, #f7f2ec);padding:0 0 64px}.armory-form-header{display:flex;align-items:center;padding:1.75rem 3rem 1.5rem;border-bottom:1px solid rgba(255,200,150,.18);background:linear-gradient(180deg,rgba(139,43,59,.06) 0%,transparent 100%);gap:1rem;position:relative}.armory-form-header-copy{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.35rem;pointer-events:none}.armory-form-header h1{margin:0;font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:700;letter-spacing:-.01em;color:var(--text-main, #f7f2ec);white-space:nowrap}.armory-form-subtitle{margin:0;color:var(--text-muted, #d0c3b5);font-size:.9rem;white-space:nowrap}.armory-form-back-btn{background:linear-gradient(135deg,var(--accent-burgundy, #8b2b3b),#5f1b28);border:none;color:#fff;padding:.75rem 1.5rem;border-radius:999px;cursor:pointer;font-size:.9rem;font-weight:600;transition:transform .15s,box-shadow .15s;flex-shrink:0;z-index:1;box-shadow:0 8px 18px #0009}.armory-form-back-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px #000000b3}.armory-form-body{max-width:1100px;margin:2rem auto 0;padding:0 3rem;display:flex;flex-direction:column;gap:1rem}.armory-form-section{background:#1e1612;border:1px solid rgba(255,200,150,.18);border-radius:18px;padding:1.5rem 1.75rem;box-shadow:0 4px 24px #00000073}.armory-collapsible-section{padding:0;overflow:hidden}.armory-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:transparent;border:none;color:inherit;cursor:pointer;padding:1.5rem 1.75rem;text-align:left}.armory-section-toggle-title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-gold, #e0b46a)}.armory-section-chevron{font-size:10px;color:var(--text-dim, #8a7a6e)}.armory-collapsible-section.is-open .armory-section-toggle{border-bottom:1px solid rgba(255,200,150,.18)}.armory-section-body{padding:1.5rem 1.75rem;animation:armory-section-open .18s ease}@keyframes armory-section-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.armory-form-section h2{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-gold, #e0b46a);margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,200,150,.18);display:flex;align-items:center;gap:.6rem}.armory-ai-badge{margin-left:auto;font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--accent-gold, #e0b46a);background:#e0b46a1a;border:1px solid rgba(224,180,106,.28);border-radius:999px;padding:2px 10px;text-transform:none;white-space:nowrap}.armory-section-hint{font-size:.75rem;color:var(--text-dim, #8a7a6e);margin:-.75rem 0 1.1rem;font-style:italic;line-height:1.55}.armory-field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.armory-field-group{display:flex;flex-direction:column;gap:.4rem}.armory-field-group--spaced{margin-bottom:1rem}.armory-field-label{font-size:10px;font-weight:600;color:var(--text-dim, #8a7a6e);letter-spacing:.08em;text-transform:uppercase}@media(max-width:600px){.armory-field-row{grid-template-columns:1fr}.armory-form-body{padding:0 1rem}.armory-form-header{padding:1.25rem 1rem}}.armory-error--spaced{margin-bottom:1rem}.armory-file-input-hidden{display:none}.armory-photo-upload-area{display:flex;align-items:center;gap:1rem}.armory-photo-upload-label{display:inline-block;background:#ffffff0f;border:1px dashed rgba(255,200,150,.3);border-radius:10px;color:var(--text-muted, #d0c3b5);cursor:pointer;font-size:.875rem;padding:.9rem 1.75rem;transition:background .2s,border-color .2s}.armory-photo-upload-label:hover{background:#ffffff1a;border-color:#e0b46a80;color:var(--text-main, #f7f2ec)}.armory-photo-preview-wrap{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.armory-photo-preview{width:120px;height:80px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,200,150,.2)}.armory-photo-status{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted, #d0c3b5)}.armory-photo-remove-btn{margin-left:.5rem}.armory-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;padding-bottom:1rem;gap:1rem;position:relative}.armory-subnav{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem;padding-top:.5rem}.armory-subnav .armory-btn-secondary{font-size:.82rem;padding:.35rem .9rem}.armory-header-left{display:flex;flex-direction:row;align-items:flex-start;flex:1 1 520px;gap:1.25rem;min-width:0}.armory-header-copy{display:flex;flex-direction:column;flex:1 1 auto;gap:.35rem;min-width:0}.armory-header-actions{display:flex;gap:.75rem;align-items:center;align-self:flex-start;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.armory-title{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.4rem,2.5vw,2.2rem);font-weight:600;letter-spacing:.03em;color:var(--text-main, #f7f2ec);line-height:1.15;white-space:nowrap;pointer-events:none}.armory-subtitle{margin:0;font-size:.95rem;color:var(--text-muted, #d0c3b5);line-height:1.4;overflow-wrap:anywhere}.armory-detail-subtitle{margin-bottom:1.25rem;padding:0 .25rem}.armory-back-btn{background:linear-gradient(135deg,var(--accent-burgundy, #8b2b3b),#5f1b28);border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.75rem 1.5rem;box-shadow:0 8px 18px #0009;transition:transform .15s,box-shadow .15s;white-space:nowrap;flex-shrink:0}.armory-back-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px #000000b3}.armory-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid rgba(255,200,150,.15);padding-bottom:0}.armory-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted, #d0c3b5);cursor:pointer;font-size:.9rem;letter-spacing:.04em;padding:.5rem 1.25rem .75rem;text-transform:none;transition:color .2s,border-color .2s;margin-bottom:-1px}.armory-tab:hover{color:var(--text-main, #f7f2ec)}.armory-tab.active{color:var(--accent-gold, #e0b46a);border-bottom-color:var(--accent-gold, #e0b46a)}.armory-tab:focus{outline:none}.armory-tab:focus-visible{outline:2px solid var(--accent-gold, #e0b46a);outline-offset:-2px;border-radius:4px}.armory-btn-primary{background:linear-gradient(135deg,var(--accent-burgundy, #8b2b3b),#5f1b28);border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;letter-spacing:.04em;padding:.75rem 1.5rem;transition:opacity .2s,transform .15s,box-shadow .15s;white-space:nowrap;box-shadow:0 8px 18px #0009}.armory-btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-2px);box-shadow:0 12px 24px #000000b3}.armory-btn-primary:disabled{opacity:.5;cursor:not-allowed}.armory-btn-secondary{background:#ffffff14;border:1px solid rgba(255,200,150,.2);border-radius:999px;color:var(--text-muted, #d0c3b5);cursor:pointer;font-size:.9rem;font-weight:600;padding:.75rem 1.5rem;transition:background .2s,color .2s;white-space:nowrap}.armory-btn-secondary:hover{background:#ffffff1f;color:var(--text-main, #f7f2ec)}.armory-switch-pill{letter-spacing:.04em;text-transform:uppercase}.armory-btn-danger{background:#b428284d;border:1px solid rgba(200,60,60,.4);border-radius:999px;color:#f4a0a0;cursor:pointer;font-size:.9rem;font-weight:600;padding:.75rem 1.5rem;transition:background .2s}.armory-btn-danger:hover{background:#b4282880}.armory-icon-btn{background:none;border:none;color:var(--text-muted, #d0c3b5);cursor:pointer;font-size:1rem;padding:.25rem .4rem;border-radius:6px;transition:background .15s,color .15s}.armory-icon-btn:hover{background:#ffffff1a;color:var(--text-main, #f7f2ec)}.armory-icon-btn-danger:hover{background:#b428284d;color:#f4a0a0}.armory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.4rem}.armory-card{background:#ffffff0d;border:1px solid rgba(255,200,150,.15);border-radius:14px;cursor:pointer;overflow:hidden;min-height:100%;transition:transform .2s,box-shadow .2s,border-color .2s}.armory-card:hover{border-color:#e0b46a66;box-shadow:0 8px 32px #0006;transform:translateY(-3px)}.armory-card-image-wrap{aspect-ratio:16 / 9;background:#0000004d;overflow:hidden;position:relative}.armory-card-image,.armory-card-photo{width:100%;height:100%;object-fit:cover;border-radius:12px 12px 0 0}.armory-card-image-placeholder{align-items:center;display:flex;height:100%;justify-content:center}.armory-card-icon{font-size:2.5rem;opacity:.4}.armory-card-body{padding:1.15rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.45rem}.armory-card-make{font-size:.95rem;font-weight:700;line-height:1.35;color:var(--text-main, #f7f2ec)}.armory-card-model{font-size:1.35rem;font-weight:800;color:var(--text-main, #f7f2ec);line-height:1.15}.armory-card-stats{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.15rem}.armory-card-meta{display:flex;flex-wrap:wrap;gap:.35rem}.armory-card-calibers{font-size:.92rem;color:var(--text-dim, #d2c3b4);line-height:1.45}.armory-card-footer{margin-top:.4rem;border-top:1px solid rgba(255,200,150,.1);padding-top:.5rem}.armory-card-count{font-size:.8rem;color:var(--text-dim, #8a7a6e)}.armory-pill{background:#ffffff14;border:1px solid rgba(255,200,150,.15);border-radius:999px;color:var(--text-muted, #d0c3b5);font-size:.72rem;letter-spacing:.04em;padding:.2rem .65rem;text-transform:uppercase}.armory-pill-hp{background:#8b2b3b4d;border-color:#8b2b3b99;color:#f4a0a0}.armory-badge{border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.05em;padding:.2rem .65rem;position:absolute;top:.6rem;left:.6rem;text-transform:uppercase}.armory-badge-wishlist{background:#e0b46a33;border:1px solid rgba(224,180,106,.5);color:var(--accent-gold, #e0b46a)}.armory-badge-stock{left:auto;right:.6rem}.stock-ok{background:#28a05040;border:1px solid rgba(40,160,80,.5);color:#7de0a0}.stock-low{background:#c88c1e40;border:1px solid rgba(200,140,30,.5);color:#f0c060}.stock-empty{background:#b4282840;border:1px solid rgba(180,40,40,.5);color:#f4a0a0}.armory-loading,.armory-empty{align-items:center;color:var(--text-muted, #d0c3b5);display:flex;flex-direction:column;gap:1.5rem;justify-content:center;min-height:40vh;text-align:center}.armory-empty-small{color:var(--text-dim, #8a7a6e);font-size:.9rem;padding:1rem 0}.armory-error{background:#b4282833;border:1px solid rgba(200,60,60,.4);border-radius:10px;color:#f4a0a0;margin-bottom:1.5rem;padding:.75rem 1rem}.armory-detail-top{display:grid;grid-template-columns:320px 1fr;gap:2rem;margin-bottom:2.5rem}@media(max-width:700px){.armory-detail-top{grid-template-columns:1fr}}.armory-detail-image-wrap{aspect-ratio:4 / 3;background:#0000004d;border:1px solid rgba(255,200,150,.15);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:4rem;color:#fff3}.armory-detail-image{width:100%;height:100%;object-fit:cover}.armory-detail-image-placeholder{font-size:4rem;opacity:.3}.armory-detail-info{display:flex;flex-direction:column;gap:1.25rem}.armory-info-grid{display:flex;flex-direction:column;gap:.6rem}.armory-info-row{display:flex;gap:1rem;align-items:baseline}.armory-info-label{color:var(--text-dim, #8a7a6e);font-size:.8rem;letter-spacing:.05em;min-width:110px;text-transform:uppercase}.armory-info-value{color:var(--text-main, #f7f2ec);font-size:.95rem}.armory-sensitive{font-family:monospace;letter-spacing:.08em}.armory-link{color:var(--accent-gold, #e0b46a);font-size:.9rem;text-decoration:none}.armory-link:hover{text-decoration:underline}.armory-ai-review{background:#ffffff0a;border:1px solid rgba(255,200,150,.1);border-left:3px solid var(--accent-gold, #e0b46a);border-radius:8px;padding:.9rem 1rem}.armory-ai-label{color:var(--accent-gold, #e0b46a);font-size:.72rem;letter-spacing:.08em;margin-bottom:.4rem;text-transform:uppercase}.armory-ai-text{color:var(--text-muted, #d0c3b5);font-size:.9rem;line-height:1.65;margin:0}.armory-section{margin-bottom:2.5rem}.armory-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.armory-section-title{color:var(--text-main, #f7f2ec);font-size:1.15rem;font-weight:500;margin:0}.armory-instances-list{display:flex;flex-direction:column;gap:.75rem}.armory-instance-card{background:#ffffff0a;border:1px solid rgba(255,200,150,.12);border-radius:10px;overflow:hidden}.armory-instance-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:.85rem 1rem;transition:background .15s}.armory-instance-header:hover{background:#ffffff08}.armory-instance-left{align-items:center;display:flex;gap:.75rem;flex-wrap:wrap}.armory-instance-right{align-items:center;display:flex;gap:.35rem;flex-shrink:0}.armory-status-dot{border-radius:50%;display:inline-block;height:8px;width:8px}.armory-instance-status{color:var(--text-main, #f7f2ec);font-size:.9rem;font-weight:500}.armory-instance-date,.armory-instance-price{color:var(--text-muted, #d0c3b5);font-size:.85rem}.armory-expand-icon{color:var(--text-dim, #8a7a6e);font-size:.75rem;margin-left:.25rem}.armory-instance-body{border-top:1px solid rgba(255,200,150,.08);display:flex;flex-direction:column;gap:1rem;padding:1rem}.armory-instance-notes{display:flex;flex-direction:column;gap:.35rem}.armory-instance-notes p{color:var(--text-muted, #d0c3b5);font-size:.9rem;line-height:1.6;margin:0}.armory-service-log{display:flex;flex-direction:column;gap:.5rem}.armory-log-row{align-items:flex-start;background:#ffffff08;border-radius:6px;display:flex;gap:.5rem .75rem;padding:.5rem 2.25rem .5rem .75rem;flex-wrap:wrap;position:relative}.armory-log-row>button{position:absolute;top:.5rem;right:.75rem}.armory-log-date{color:var(--text-dim, #8a7a6e);font-size:.8rem;min-width:90px}.armory-log-type{color:var(--accent-gold, #e0b46a);font-size:.82rem;font-weight:500;letter-spacing:.03em}.armory-log-notes{color:var(--text-muted, #d0c3b5);font-size:.82rem;flex:1 1 100%;padding-left:calc(90px + .75rem)}.armory-form{display:flex;flex-direction:column;gap:1.25rem}.armory-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.armory-form-row--3{grid-template-columns:repeat(3,1fr)}@media(max-width:560px){.armory-form-row,.armory-form-row--3{grid-template-columns:1fr}}.armory-form-group{display:flex;flex-direction:column;gap:.4rem}.armory-label{color:var(--text-muted, #d0c3b5);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}.armory-input,.armory-select,.armory-textarea{background:#ffffff0f;border:1px solid rgba(255,200,150,.2);border-radius:999px;color:var(--text-main, #f7f2ec);font-size:.95rem;outline:none;padding:.6rem .9rem;transition:border-color .2s;width:100%;box-sizing:border-box}.armory-input:focus,.armory-select:focus,.armory-textarea:focus{border-color:#e0b46a80}.armory-input::placeholder{color:var(--text-dim, #8a7a6e)}.armory-select option{background:#1a1410;color:var(--text-main, #f7f2ec)}.armory-textarea{border-radius:14px;min-height:104px;padding:.8rem .95rem;resize:vertical}.armory-wishlist-row{grid-template-columns:1fr}.armory-toggle-label{align-items:center;cursor:pointer;display:flex;gap:.6rem}.armory-toggle-text{color:var(--text-muted, #d0c3b5);font-size:.9rem}.armory-form-actions{border-top:1px solid rgba(255,200,150,.1);display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem;padding-top:1.25rem}.fab-save{position:fixed;right:24px;bottom:28px;z-index:2000;display:inline-flex;align-items:center;gap:.55rem;border:none;border-radius:999px;padding:.9rem 1.2rem;background:linear-gradient(135deg,#464646eb,#2a2a2aeb);color:#ffffffdb;box-shadow:0 14px 34px #0000006b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;font-size:.92rem;font-weight:600;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.fab-save.fab-save--dirty{background:linear-gradient(135deg,var(--accent-burgundy, #8b2b3b),#5f1b28);color:#fff;box-shadow:0 16px 38px #5b1b2873}.fab-save:hover:not(:disabled){transform:translateY(-2px)}.fab-save:disabled{opacity:.7;cursor:default}.fab-icon{font-size:16px;line-height:1;font-style:normal}.fab-label{letter-spacing:.02em}.fab-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.25);border-top-color:#ffffffeb;border-radius:50%;animation:armory-spin .8s linear infinite}@keyframes armory-spin{to{transform:rotate(360deg)}}.armory-caliber-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;min-height:1.5rem}.armory-caliber-tag{align-items:center;background:#8b2b3b4d;border:1px solid rgba(139,43,59,.6);border-radius:999px;color:#f4a0a0;display:flex;font-size:.8rem;gap:.3rem;padding:.2rem .6rem}.armory-caliber-tag button{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:0;opacity:.7}.armory-caliber-tag button:hover{opacity:1}.armory-caliber-picks{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.armory-caliber-pick{background:#ffffff0d;border:1px solid rgba(255,200,150,.15);border-radius:999px;color:var(--text-muted, #d0c3b5);cursor:pointer;font-size:.75rem;padding:.2rem .7rem;transition:background .15s,border-color .15s}.armory-caliber-pick:hover{background:#ffffff1a;border-color:#ffc89659;color:var(--text-main, #f7f2ec)}.armory-caliber-custom{display:flex;gap:.5rem;align-items:center}.armory-caliber-custom .armory-input{flex:1}.armory-modal-overlay{align-items:center;background:#000000b3;display:flex;justify-content:center;inset:0;padding:1rem;position:fixed;z-index:1000}.armory-modal{background:#1c1510;border:1px solid rgba(255,200,150,.2);border-radius:14px;display:flex;flex-direction:column;gap:1rem;max-width:480px;padding:1.75rem;width:100%}.armory-modal-title{color:var(--text-main, #f7f2ec);font-size:1.1rem;font-weight:500;margin:0 0 .25rem}.armory-modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.armory-checkbox-row{align-items:center;color:var(--text-main, #f7f2ec);display:flex;font-size:.92rem;gap:.65rem;margin:.25rem 0 .5rem}.armory-checkbox-row input{accent-color:var(--accent-gold, #e0b46a)}.armory-stock-hero{align-items:flex-start;display:flex;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap}.armory-stock-stat{display:flex;flex-direction:column;gap:.2rem}.armory-stock-cost{color:var(--accent-gold, #e0b46a);font-size:2rem}.armory-stock-number{font-size:3rem;font-weight:700;line-height:1}.armory-stock-label{color:var(--text-muted, #d0c3b5);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}.armory-stock-threshold-note{color:var(--text-dim, #bca998);font-size:.82rem;line-height:1.45}.armory-threshold-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.armory-threshold-help{color:var(--text-dim, #8a7a6e);font-size:.78rem;line-height:1.4}.ammo-ledger-table{border-radius:10px;overflow:hidden;border:1px solid var(--glass-border)}.ammo-ledger-header,.ammo-ledger-row{display:grid;grid-template-columns:110px 110px 120px minmax(0,1fr) 100px 80px;gap:1rem;padding:.75rem 1.25rem;align-items:center}.ammo-ledger-header{background:#00000040;border-bottom:1px solid var(--glass-border);font-size:.72rem;font-weight:700;color:var(--accent-gold, #e0b46a);text-transform:uppercase;letter-spacing:.07em}.ammo-ledger-row{border-bottom:1px solid rgba(255,200,150,.08);font-size:.88rem;transition:background .15s}.ammo-ledger-row:last-child{border-bottom:none}.ammo-ledger-row:hover{background:#e0b46a0a}.ammo-ledger-date{color:var(--text-dim, #8a7a6e)}.ammo-ledger-type{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ammo-ledger-type--purchase{color:#74d99f}.ammo-ledger-type--usage{color:#f1b86b}.ammo-ledger-qty{font-weight:600}.ammo-ledger-qty--purchase{color:#74d99f}.ammo-ledger-qty--usage{color:#f1b86b}.ammo-ledger-detail{display:flex;flex-direction:column;gap:.18rem;min-width:0}.ammo-ledger-detail-primary{color:var(--text-main, #f7f2ec);font-weight:500}.ammo-ledger-detail-secondary{color:var(--text-muted, #d0c3b5);font-size:.82rem}.ammo-ledger-extra{color:var(--accent-gold, #e0b46a);font-weight:500}.ammo-ledger-actions{display:flex;gap:.25rem;justify-content:flex-end}.armory-usage-table{border:1px solid var(--glass-border);border-radius:10px;overflow:hidden}.armory-usage-header,.armory-usage-row{align-items:center;display:grid;gap:1rem;grid-template-columns:110px 180px minmax(0,1fr) 90px;padding:.75rem 1.25rem}.armory-usage-header{background:#00000040;border-bottom:1px solid var(--glass-border);color:var(--accent-gold, #e0b46a);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.armory-usage-header>:nth-child(4),.armory-usage-row>:nth-child(4){justify-self:stretch;text-align:center;width:100%}.armory-usage-row{border-bottom:1px solid rgba(255,200,150,.08);font-size:.88rem}.armory-usage-row:last-child{border-bottom:none}.armory-usage-date{color:var(--text-dim, #8a7a6e)}.armory-usage-range{color:var(--text-main, #f7f2ec);font-weight:500}.armory-usage-ammo{color:var(--text-main, #f7f2ec);display:flex;flex-direction:column;gap:.2rem;min-width:0}.armory-usage-ammo-line{display:block;line-height:1.4}.armory-usage-notes{color:var(--text-muted, #d0c3b5);font-size:.82rem}.armory-usage-rounds{color:var(--accent-gold, #e0b46a);font-weight:600}@media(max-width:920px){.ammo-ledger-header,.ammo-ledger-row{grid-template-columns:110px 100px 110px minmax(0,1fr)}.ammo-ledger-header>:nth-child(5),.ammo-ledger-header>:nth-child(6),.ammo-ledger-row>:nth-child(5),.ammo-ledger-row>:nth-child(6){display:none}.armory-usage-header,.armory-usage-row{grid-template-columns:110px 140px minmax(0,1fr)}.armory-usage-header>:nth-child(4),.armory-usage-row>:nth-child(4){display:none}}.armory-detail-photo-wrap{position:relative;width:300px;min-height:200px;border-radius:12px;overflow:hidden;background:#ffffff08;border:1px solid rgba(255,200,150,.1);flex-shrink:0}.armory-detail-photo{width:100%;height:100%;object-fit:contain;display:block}.armory-detail-photo-placeholder{width:100%;min-height:200px;display:flex;align-items:center;justify-content:center;font-size:4rem;opacity:.3}.armory-detail-status-pill{position:absolute;top:.6rem;left:.6rem;z-index:2;font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:3px 10px;border-radius:20px;pointer-events:none}.armory-badge-owned{background:#4ade8026;border:1px solid rgba(74,222,128,.45);color:#4ade80}@media(max-width:600px){.armory-page{padding:1.5rem 1rem}.armory-grid{grid-template-columns:1fr}.armory-header{flex-wrap:wrap}.armory-modal{padding:1.25rem}}.armory-field-row--3{grid-template-columns:repeat(3,1fr)}.armory-field-row--4{grid-template-columns:repeat(4,1fr)}.armory-field-row--specs{align-items:end;grid-template-columns:1.15fr 1.15fr .95fr .75fr}.armory-field-group--compact{align-self:end}@media(max-width:600px){.armory-field-row--3,.armory-field-row--4,.armory-field-row--specs{grid-template-columns:1fr 1fr}}.armory-status-pills{display:flex;flex-wrap:wrap;gap:.5rem}.armory-status-pill{background:#ffffff0f;border:1px solid rgba(255,200,150,.2);border-radius:999px;color:var(--text-muted, #d0c3b5);cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:500;letter-spacing:.04em;padding:.4rem 1.1rem;transition:all .2s}.armory-status-pill:hover{background:#ffffff1a;color:var(--text-main, #f7f2ec)}.armory-status-pill--active.armory-status-pill--owned{background:#28a05033;border-color:#28a0508c;color:#7de0a0}.armory-status-pill--active.armory-status-pill--wishlist{background:#e0b46a2e;border-color:#e0b46a8c;color:var(--accent-gold, #e0b46a)}.armory-status-pill--active.armory-status-pill--disposed{background:#8a7a6e33;border-color:#8a7a6e73;color:#a09080}.armory-category-pills{display:flex;flex-wrap:wrap;gap:.5rem}.armory-category-pill{background:#ffffff0f;border:1px solid rgba(255,200,150,.2);border-radius:999px;color:var(--text-muted, #d0c3b5);cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:500;letter-spacing:.04em;padding:.4rem 1.1rem;transition:all .2s}.armory-category-pill:hover{background:#ffffff1a;color:var(--text-main, #f7f2ec)}.armory-category-pill--active{background:#e0b46a26;border-color:#e0b46a80;color:var(--accent-gold, #e0b46a)}.armory-hp-toggle-pill{align-items:center;background:#ffffff0f;border:1px solid rgba(255,200,150,.2);border-radius:999px;color:var(--text-muted, #d0c3b5);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.82rem;font-weight:500;gap:.4rem;letter-spacing:.04em;padding:.4rem 1.1rem;transition:all .2s}.armory-field-group--compact .armory-hp-toggle-pill{justify-content:center;min-height:42px;padding-inline:.8rem;width:100%}.armory-hp-toggle-pill:hover{background:#ffffff1a;color:var(--text-main, #f7f2ec)}.armory-hp-toggle-pill--active{background:#8b2b3b33;border-color:#8b2b3b80;color:#f4a0a0}.armory-subsection{border-top:1px solid rgba(255,200,150,.12);margin-top:1.25rem;padding-top:1rem}.armory-subsection-heading{align-items:center;display:flex;gap:.65rem;justify-content:space-between;margin-bottom:.75rem}.armory-subsection-title{color:var(--text-dim, #8a7a6e);font-size:10px;font-weight:600;letter-spacing:.08em;margin-bottom:.75rem;text-transform:uppercase}.armory-subsection-heading .armory-subsection-title{margin-bottom:0}.armory-subsection-ai-btn{align-items:center;background:#e0b46a1f;border:1px solid rgba(224,180,106,.28);border-radius:999px;color:var(--accent-gold, #e0b46a);cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:700;height:34px;justify-content:center;line-height:1;min-width:34px;padding:0 .7rem;transition:all .2s ease}.armory-subsection-ai-btn:hover:not(:disabled){background:#e0b46a33;border-color:#e0b46a6b;color:#f5cf8b}.armory-subsection-ai-btn:disabled{cursor:not-allowed;opacity:.45}.armory-input-with-link{align-items:center;display:flex;gap:.5rem}.armory-input-with-link .armory-input{flex:1}.armory-input-link-btn{background:#ffffff0f;border:1px solid rgba(255,200,150,.2);border-radius:6px;color:var(--accent-gold, #e0b46a);cursor:pointer;flex-shrink:0;font-size:.9rem;padding:.5rem .7rem;text-decoration:none;transition:background .2s}.armory-input-link-btn:hover{background:#ffffff1a}.armory-input--sm{font-size:.85rem;margin-top:.4rem;padding:.45rem .75rem}.armory-search-bar{align-items:center;display:flex;gap:.75rem;margin:1.5rem 0}.armory-search-input{background:#ffffff0d;border:1px solid rgba(255,200,150,.18);border-radius:999px;color:var(--text-main, #f7f2ec);flex:1;font-size:.95rem;padding:.85rem 1rem}.armory-search-count{color:var(--text-dim, #8a7a6e);font-size:.9rem;white-space:nowrap}.armory-clear-search{background:transparent;border:0;color:var(--text-dim, #8a7a6e);cursor:pointer;font-size:1rem}.armory-clear-search:hover{color:var(--text-main, #f7f2ec)}.armory-table-wrap{border:1px solid rgba(255,200,150,.16);border-radius:18px;overflow:hidden}.armory-table{background:#100b08c7}.armory-table-header,.armory-table-row{align-items:center;display:grid;gap:1rem;grid-template-columns:84px 1.1fr 1.1fr .9fr .8fr 1fr 1fr .8fr;padding:1rem 1.25rem}.armory-table-header{background:#ffffff0a;color:var(--accent-gold, #e0b46a);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.armory-table-row{background:transparent;border:0;border-top:1px solid rgba(255,200,150,.1);color:var(--text-main, #f7f2ec);cursor:pointer;text-align:left;width:100%}.armory-table-row:hover{background:#ffffff08}.armory-table-photo-cell{align-items:center;display:flex;justify-content:center}.armory-table-photo,.armory-table-photo-placeholder{border-radius:10px;height:56px;object-fit:cover;width:56px}.armory-table-photo-placeholder{align-items:center;background:#ffffff0a;display:flex;font-size:1.3rem;justify-content:center}.armory-table-stock{font-weight:600}.armory-table-stock.is-empty{color:#d47b7b}.armory-table-stock.is-low{color:#e0b46a}.armory-table-stock.is-ok{color:#9fd8a8}.armory-detail-link{color:var(--accent-gold, #e0b46a);text-decoration:none}.armory-detail-link:hover{text-decoration:underline}.armory-detail-image-clickable{cursor:zoom-in}.armory-image-viewer-backdrop{align-items:center;background:#000000e0;display:flex;inset:0;justify-content:center;position:fixed;z-index:2200}.armory-image-viewer-dialog{background:#120d0afa;border:1px solid rgba(255,200,150,.16);border-radius:18px;display:flex;flex-direction:column;height:min(92vh,920px);margin:0;max-width:min(94vw,1400px);padding:1rem;position:relative;width:94vw}.armory-image-viewer-dialog::backdrop{display:none}.armory-image-viewer-close{background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#fff;cursor:pointer;font-size:1.1rem;line-height:1;height:36px;width:36px;position:absolute;right:1rem;top:1rem;display:flex;align-items:center;justify-content:center;padding:0}.armory-image-viewer-toolbar{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-bottom:.75rem}.armory-image-viewer-toolbar button{align-items:center;background:#ffffff0f;border:1px solid rgba(255,200,150,.18);border-radius:999px;color:var(--text-main, #f7f2ec);cursor:pointer;display:flex;justify-content:center;line-height:1;min-height:34px;min-width:34px;padding:.45rem .85rem}.armory-image-viewer-scroll{align-items:center;display:flex;height:calc(100% - 3rem);justify-content:center;overflow:auto}.armory-image-viewer-image{display:block;height:auto;max-width:100%;max-height:calc(92vh - 8rem);object-fit:contain;transform-origin:center center;transition:transform .2s ease}.armory-ai-rating-summary{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.85rem}.armory-ai-rating-pill{background:#ffc89614;border:1px solid rgba(255,200,150,.16);border-radius:999px;color:var(--text-muted, #d0c3b5);font-size:.75rem;padding:.28rem .65rem}.armory-ratings-grid{display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:700px){.armory-ratings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.armory-rating-field{background:#ffffff08;border:1px solid rgba(255,200,150,.12);border-radius:14px;padding:1rem}.armory-rating-label{color:var(--text-muted, #d0c3b5);display:block;font-size:.85rem;margin-bottom:.6rem}.armory-rating-stars{display:flex;gap:.35rem}.armory-rating-star{background:transparent;border:0;color:#ffc89640;cursor:pointer;font-size:1.3rem;padding:0}.armory-rating-star.is-active{color:#e0b46a}.armory-rating-star:disabled{cursor:default}.armory-rating-actions{display:flex;justify-content:flex-end;margin-top:1rem}.armory-rating-overall{color:var(--accent-gold, #e0b46a);font-size:.95rem;font-weight:600}.ammo-price-per-round{display:flex;align-items:baseline;gap:.5rem;padding:.5rem 0}.ammo-ppr-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;color:var(--text-muted, #d0c3b5);text-transform:uppercase}.ammo-ppr-value{font-size:1rem;font-weight:600;color:var(--accent-gold, #e0b46a)}.ammo-history-ppr{font-size:.8rem;color:var(--accent-gold, #e0b46a);font-weight:500}@media(max-width:900px){.armory-table-header,.armory-table-row{grid-template-columns:72px 1fr 1fr}.armory-table-header>:nth-child(n+4),.armory-table-row>:nth-child(n+4){display:none}.armory-search-bar{align-items:stretch;flex-wrap:wrap}.armory-ratings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.armory-pill-picker{display:flex;flex-wrap:wrap;gap:.4rem}.armory-pill-option{background:#ffffff0d;border:1px solid rgba(255,200,150,.2);border-radius:999px;color:var(--text-muted, #d0c3b5);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:500;padding:.35rem .9rem;transition:all .15s;white-space:nowrap}.armory-pill-option:hover{background:#ffc89614;color:var(--text-main, #f7f2ec)}.armory-pill-option--active{background:#e0b46a2e;border-color:#e0b46a99;color:var(--accent-gold, #e0b46a);font-weight:600}.armory-disposal-block{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.armory-disposal-warning{background:#dc78281a;border:1px solid rgba(220,120,40,.35);border-radius:8px;color:#e08050;font-size:.82rem;padding:.6rem .9rem}.armory-input--error{border-color:#dc3c3cb3!important}.armory-field-error{color:#f47070;font-size:.78rem;margin-top:.25rem;display:block}.armory-field-required{color:#f47070;margin-left:2px}.armory-disposed-banner{display:flex;align-items:center;gap:1rem;background:#ffffff08;border:1px solid rgba(255,200,150,.15);border-radius:14px;padding:1.5rem 2rem;margin:1rem 0}.armory-disposed-icon{font-size:2rem;flex-shrink:0}.armory-disposed-text{display:flex;flex-direction:column;gap:.3rem}.armory-disposed-text strong{color:var(--text-main, #f7f2ec);font-size:1rem}.armory-disposed-text span{color:var(--text-dim, #8a7a6e);font-size:.85rem}.armory-disposed-banner-detail{display:flex;align-items:center;gap:1.25rem;background:#b428281f;border:1px solid rgba(220,60,60,.4);border-radius:14px;padding:1.25rem 2rem;margin:0 0 1.5rem}.armory-disposed-banner-icon{font-size:2.5rem;flex-shrink:0}.armory-disposed-banner-content{display:flex;flex-direction:column;gap:.25rem}.armory-disposed-banner-title{font-size:1.4rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#f47070}.armory-disposed-banner-date{font-size:.85rem;color:var(--text-dim, #8a7a6e)}.armory-badge-disposed{background:#b4282840;border:1px solid rgba(220,60,60,.6);border-radius:20px;color:#f47070;font-size:.68rem;font-weight:700;letter-spacing:.09em;padding:3px 10px;text-transform:uppercase;pointer-events:none}.ammo-sort-btn{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.72rem;font-weight:700;color:var(--accent-gold, #e0b46a);text-transform:uppercase;letter-spacing:.07em;padding:0;text-align:left;display:flex;align-items:center;gap:.3rem;opacity:.6;transition:opacity .15s;white-space:nowrap}.ammo-sort-btn:hover,.ammo-sort-btn--active{opacity:1}.armory-activity-firearm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.9rem}.armory-activity-firearm-card{align-items:flex-start;background:#ffffff08;border:1px solid rgba(255,200,150,.14);border-radius:16px;color:var(--text-main, #f7f2ec);cursor:pointer;display:flex;flex-direction:column;gap:.45rem;min-height:132px;padding:1rem 1.05rem;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.armory-activity-firearm-card:hover{background:#ffffff0b;border-color:#e0b46a57;transform:translateY(-1px)}.armory-activity-firearm-card.is-selected{background:#e0b46a1f;border-color:#e0b46a8f;box-shadow:0 0 0 1px #e0b46a2e}.armory-activity-firearm-title{color:var(--text-main, #f7f2ec);font-size:1rem;font-weight:700;line-height:1.35}.armory-activity-firearm-detail{color:var(--text-dim, #bca998);font-size:.83rem;line-height:1.45}.armory-activity-firearm-check{color:var(--accent-gold, #e0b46a);font-size:.72rem;font-weight:700;letter-spacing:.08em;margin-top:auto;text-transform:uppercase}.armory-activity-ammo-list{display:flex;flex-direction:column;gap:.9rem;margin-bottom:1rem}.armory-activity-ammo-row{align-items:end;display:grid;gap:.9rem;grid-template-columns:minmax(0,1fr) 150px auto}.armory-activity-ammo-qty{min-width:0}.armory-activity-remove{align-self:end;min-width:92px}@media(max-width:860px){.armory-activity-ammo-row{grid-template-columns:minmax(0,1fr)}.armory-activity-remove{justify-self:start}}.armory-activity-firearms-grid{display:grid;gap:1rem}.armory-activity-firearm-card-shell{background:#ffffff08;border:1px solid rgba(255,200,150,.14);border-radius:18px;display:flex;flex-direction:column;gap:1rem;padding:1.15rem 1.2rem}.armory-activity-firearm-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1.4rem}.armory-activity-firearm-card-copy{min-width:0}.armory-activity-firearm-card-title{color:var(--text-main, #f7f2ec);font-size:1.45rem;font-weight:800;line-height:1.15;margin:0}.armory-activity-firearm-card-make{color:var(--text-main, #f7f2ec);font-size:1rem;font-weight:700;line-height:1.35;margin:.22rem 0 0}.armory-activity-firearm-card-detail{color:var(--text-dim, #d2c3b4);font-size:.95rem;line-height:1.45;margin:.55rem 0 0}.armory-activity-firearm-hero-stats{display:grid;flex-shrink:0;gap:.55rem;grid-template-columns:repeat(3,minmax(110px,1fr));min-width:380px}.armory-activity-firearm-hero-stat{align-items:flex-end;background:#ffffff09;border:1px solid rgba(255,200,150,.12);border-radius:14px;display:flex;flex-direction:column;justify-content:center;min-height:90px;padding:.9rem .95rem;text-align:right}.armory-activity-firearm-hero-value{color:var(--accent-gold, #e0b46a);font-size:1.35rem;font-weight:800;line-height:1.1}.armory-activity-firearm-hero-label{color:var(--text-dim, #bca998);font-size:.72rem;font-weight:700;letter-spacing:.08em;line-height:1.35;margin-top:.3rem;text-transform:uppercase}.armory-activity-instance-title{color:var(--text-main, #f7f2ec);font-size:.98rem;font-weight:700;line-height:1.35;margin-top:.85rem}.armory-activity-instance-detail{color:var(--text-dim, #bca998);font-size:.88rem;line-height:1.45;margin-top:.15rem}.armory-activity-instance-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.85rem}.armory-activity-instance-btn{min-width:138px}.armory-activity-report-list{display:flex;flex-direction:column;gap:1rem}.armory-activity-report-card{background:#ffffff08;border:1px solid rgba(255,200,150,.14);border-radius:18px;display:flex;flex-direction:column;gap:1rem;padding:1.2rem 1.25rem}.armory-activity-report-card--clickable{cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.armory-activity-report-card--clickable:hover{background:#ffffff0b;border-color:#e0b46a47;transform:translateY(-1px)}.armory-activity-report-top{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.armory-activity-report-copy{min-width:0}.armory-activity-report-title{color:var(--text-main, #f7f2ec);font-size:1.25rem;font-weight:800;line-height:1.2;margin:0}.armory-activity-report-date{color:var(--text-dim, #bca998);font-size:.9rem;margin:.35rem 0 0}.armory-activity-report-stats{display:flex;flex-shrink:0;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.armory-activity-report-section{display:flex;flex-direction:column;gap:.45rem}.armory-activity-report-label{color:var(--accent-gold, #e0b46a);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.armory-activity-report-lines{display:flex;flex-direction:column;gap:.4rem}.armory-activity-report-line,.armory-activity-report-notes{color:var(--text-main, #f7f2ec);font-size:.92rem;line-height:1.5}.armory-activity-report-notes{color:var(--text-dim, #d2c3b4)}.armory-activity-report-actions{display:flex;gap:.5rem;justify-content:flex-end;padding-top:.2rem}.armory-activity-detail-hero{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:1.25rem}.armory-activity-detail-stat{background:#ffffff08;border:1px solid rgba(255,200,150,.12);border-radius:16px;display:flex;flex-direction:column;gap:.35rem;min-height:96px;padding:1rem 1.05rem}.armory-activity-detail-value{color:var(--accent-gold, #e0b46a);font-size:1.8rem;font-weight:800;line-height:1.05}.armory-activity-detail-label{color:var(--text-dim, #bca998);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.armory-activity-detail-list{display:flex;flex-direction:column;gap:1rem}.armory-activity-detail-card{background:#ffffff08;border:1px solid rgba(255,200,150,.14);border-radius:18px;display:flex;flex-direction:column;gap:.9rem;padding:1.15rem 1.2rem}.armory-activity-detail-top{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.armory-activity-detail-copy{min-width:0}.armory-activity-detail-title{color:var(--text-main, #f7f2ec);font-size:1.12rem;font-weight:800;line-height:1.2;margin:0}.armory-activity-detail-subtitle,.armory-activity-detail-instance{color:var(--text-dim, #bca998);font-size:.9rem;line-height:1.45;margin:.35rem 0 0}.armory-activity-detail-rounds{color:var(--accent-gold, #e0b46a);flex-shrink:0;font-size:1rem;font-weight:800;white-space:nowrap}.armory-activity-detail-ammo-list{display:flex;flex-direction:column;gap:.38rem}.armory-activity-detail-ammo-line{color:var(--text-main, #f7f2ec);font-size:.92rem;line-height:1.45}.armory-activity-detail-ammo-line.is-empty{color:var(--text-dim, #8a7a6e)}.armory-activity-detail-actions{display:flex;gap:.6rem;justify-content:flex-end}.armory-activity-detail-notes{color:var(--text-main, #f7f2ec);font-size:.95rem;line-height:1.6}.armory-report-stats-row{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1rem}.armory-report-export-row{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.75rem}.armory-report-export-btn{background:none;border:1px solid rgba(224,180,106,.3);border-radius:6px;color:var(--accent-gold, #e0b46a);cursor:pointer;font-size:.75rem;font-weight:600;letter-spacing:.06em;padding:.3rem .75rem;transition:background .15s,border-color .15s}.armory-report-export-btn:hover{background:#e0b46a14;border-color:#e0b46a99}.armory-report-export-btn:focus{outline:none}.armory-report-export-btn:focus-visible{outline:2px solid var(--accent-gold, #e0b46a);outline-offset:2px}.armory-report-stat-card{background:#ffffff08;border:1px solid rgba(255,200,150,.14);border-radius:16px;display:flex;flex-direction:column;gap:.35rem;min-height:98px;padding:1rem 1.05rem}.armory-report-stat-label{color:var(--text-dim, #bca998);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.armory-report-stat-value{color:var(--accent-gold, #e0b46a);font-size:1.5rem;font-weight:800;line-height:1.1}.armory-report-breadcrumb-bar{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1rem}.armory-report-filter-pills{margin:0 0 .95rem}.armory-report-breadcrumb-segment{align-items:center;display:inline-flex;gap:.45rem}.armory-report-crumb-sep{color:var(--text-dim, #8a7a6e)}.armory-report-crumb-link,.armory-report-crumb-current{color:var(--text-main, #f7f2ec);font-size:.9rem}.armory-report-crumb-link{background:none;border:none;cursor:pointer;padding:0}.armory-report-crumb-link:hover{color:var(--accent-gold, #e0b46a)}.armory-report-grid{display:grid;gap:1rem}.armory-tabs--subtle{margin-top:0}.armory-report-chart-card{background:#ffffff08;border:1px solid rgba(255,200,150,.14);border-radius:18px;padding:1.1rem 1.15rem}.armory-report-chart-title{color:var(--text-main, #f7f2ec);font-size:1.1rem;font-weight:800;margin:0 0 .8rem}.armory-report-chart{height:280px}.armory-report-home-card{background:#ffffff0a;border:1px solid rgba(255,200,150,.16);cursor:pointer;min-height:220px;text-align:left}.armory-report-home-card:hover{transform:translateY(-2px)}.armory-report-tooltip{background:#2a1f1b;border:1px solid rgba(255,200,150,.25);border-radius:8px;color:#f7f2ec;padding:.55rem .65rem}.armory-report-detail-table{width:100%;border:1px solid rgba(255,200,150,.12);border-radius:14px;overflow:hidden}.armory-report-detail-header,.armory-report-detail-row{align-items:center;box-sizing:border-box;display:grid;gap:.8rem;grid-template-columns:1fr 100px 90px;padding:.8rem 1rem;width:100%}.armory-report-detail-row{appearance:none;font:inherit}.armory-report-detail-header span:nth-child(2),.armory-report-detail-row span:nth-child(2){text-align:center}.armory-report-detail-header span:nth-child(3),.armory-report-detail-row span:nth-child(3){text-align:center}.armory-report-detail-row .armory-report-threshold-pill{justify-self:center;width:max-content}.armory-report-detail-header{background:#ffffff08;color:var(--accent-gold, #e0b46a);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.armory-report-detail-row{background:transparent;border:none;color:var(--text-main, #f7f2ec);cursor:pointer;text-align:left}.armory-report-detail-row+.armory-report-detail-row{border-top:1px solid rgba(255,200,150,.08)}.armory-report-detail-row:hover{background:#ffffff06}.armory-report-threshold-pill{border-radius:999px;display:inline-flex;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:.3rem .6rem;text-transform:uppercase}.armory-report-threshold-pill.is-ok{background:#10a37f24;border:1px solid rgba(16,163,127,.3);color:#71d9be}.armory-report-threshold-pill.is-low{background:#ff980024;border:1px solid rgba(255,152,0,.35);color:#ffca7a}.armory-report-threshold-pill.is-empty{background:#f4433624;border:1px solid rgba(244,67,54,.35);color:#ff9a92}.armory-timeline-event-list{display:flex;flex-direction:column;gap:.8rem}.armory-timeline-event-card{background:#ffffff08;border:1px solid rgba(255,200,150,.12);border-radius:14px;padding:.95rem 1rem}.armory-timeline-event-top{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.armory-timeline-event-title{color:var(--text-main, #f7f2ec);font-size:1rem;font-weight:700;line-height:1.3}.armory-timeline-event-subtitle{color:var(--text-dim, #bca998);font-size:.86rem;line-height:1.45;margin-top:.2rem}.armory-timeline-event-date{color:var(--accent-gold, #e0b46a);flex-shrink:0;font-size:.82rem;font-weight:700}.armory-timeline-event-detail{color:var(--text-main, #f7f2ec);font-size:.9rem;line-height:1.55;margin-top:.6rem}.armory-activity-ledger{border:1px solid rgba(255,200,150,.12);border-radius:14px;overflow:hidden}.armory-activity-ledger-header,.armory-activity-ledger-row{align-items:start;display:grid;gap:.9rem;grid-template-columns:minmax(220px,1.15fr) minmax(0,1.6fr) 90px;padding:.8rem 1rem}.armory-activity-ledger-header{background:#ffffff08;color:var(--accent-gold, #e0b46a);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.armory-activity-ledger-header>:last-child{text-align:center}.armory-activity-ledger-row+.armory-activity-ledger-row{border-top:1px solid rgba(255,200,150,.1)}.armory-activity-ledger-firearm,.armory-activity-ledger-ammo{min-width:0}.armory-activity-ledger-title{color:var(--text-main, #f7f2ec);font-size:.95rem;font-weight:700;line-height:1.35}.armory-activity-ledger-detail{color:var(--text-dim, #bca998);font-size:.8rem;line-height:1.45;margin-top:.18rem}.armory-activity-ledger-ammo{display:flex;flex-direction:column;gap:.28rem}.armory-activity-ledger-ammo-line{color:var(--text-main, #f7f2ec);font-size:.88rem;line-height:1.4}.armory-activity-ledger-ammo-line.is-empty{color:var(--text-dim, #8a7a6e)}.armory-activity-ledger-rounds{color:var(--accent-gold, #e0b46a);font-size:.86rem;font-weight:700;justify-self:stretch;line-height:1.4;text-align:center;white-space:nowrap;width:100%}.armory-activity-ledger-empty{color:var(--text-dim, #8a7a6e);font-size:.9rem;padding:.9rem 1rem}.armory-activity-icon-btn{align-items:center;background:#ffffff0a;border:1px solid rgba(255,200,150,.2);border-radius:10px;color:var(--text-main, #f7f2ec);cursor:pointer;display:inline-flex;font-size:1rem;height:38px;justify-content:center;transition:all .2s ease;width:38px}.armory-activity-icon-btn:hover{background:#e0b46a26;border-color:var(--accent-gold, #e0b46a);color:var(--accent-gold, #e0b46a)}.armory-activity-icon-btn--danger:hover{background:#ea433526;border-color:#ef5350;color:#f47c7c}.armory-report-drilldown-stats{margin:.5rem 0 1rem;padding:.75rem 1.25rem;background:#e0b46a0f;border:1px solid rgba(224,180,106,.2);border-radius:12px;display:flex;flex-direction:column;gap:.6rem}.armory-rds-label{font-size:.78rem;font-weight:700;color:var(--accent-gold, #e0b46a);text-transform:uppercase;letter-spacing:.08em}.armory-rds-cards{display:flex;gap:2.5rem;flex-wrap:wrap;align-items:baseline}.armory-rds-card{display:flex;flex-direction:column;gap:.15rem}.armory-rds-card-label{font-size:.65rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-dim, #8a7a6e)}.armory-rds-card-value{font-size:1.5rem;font-weight:700;color:var(--text-main, #f7f2ec);line-height:1}.armory-pill-clickable{cursor:pointer;transition:background .15s ease,border-color .15s ease}.armory-pill-clickable:hover{background:#e0b46a26;border-color:#e0b46a80}@media(max-width:720px){.armory-activity-firearm-card-top{flex-direction:column}.armory-activity-firearm-hero-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));min-width:0;width:100%}.armory-activity-firearm-hero-stat{align-items:flex-start;text-align:left}.armory-activity-instance-row{align-items:flex-start;flex-direction:column}.armory-activity-report-top{flex-direction:column}.armory-activity-report-stats,.armory-activity-report-actions{justify-content:flex-start}.armory-activity-detail-top{flex-direction:column}.armory-activity-detail-actions{justify-content:flex-start}.armory-report-detail-header{display:none}.armory-report-detail-row{grid-template-columns:minmax(0,1fr)}.armory-activity-ledger-header{display:none}.armory-activity-ledger-row{grid-template-columns:minmax(0,1fr);gap:.55rem}.armory-activity-ledger-rounds{text-align:left}}.activity-firearm-selector{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem}.activity-select-all{background:transparent;border:1px solid rgba(255,200,150,.3);border-radius:999px;color:var(--text-dim, #8a7a6e);font-size:.78rem;padding:.25rem .75rem;cursor:pointer;transition:border-color .15s,color .15s}.activity-select-all:hover{border-color:#c98b4e99;color:var(--accent-gold, #e0b46a)}.activity-firearm-check{display:flex;align-items:center;gap:.4rem;background:#ffffff0d;border:1px solid rgba(255,200,150,.18);border-radius:999px;padding:.28rem .85rem .28rem .55rem;cursor:pointer;font-size:.83rem;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.activity-firearm-check:has(input:checked){border-color:#c98b4e73;background:#c98b4e14}.activity-firearm-check input{accent-color:#c98b4e;width:13px;height:13px;cursor:pointer}.activity-event-legend{display:flex;gap:1.5rem;font-size:.78rem;color:var(--text-dim, #8a7a6e);margin-bottom:1.25rem;letter-spacing:.03em}.activity-date-range-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.activity-range-pill{padding:.3rem .85rem;border-radius:999px;border:1px solid rgba(255,200,150,.2);background:transparent;color:#d0c3b5;font-size:.78rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.activity-range-pill:hover{background:#ffc89612;border-color:#ffc89659}.activity-range-pill.is-active{background:#c98b4e2e;border-color:#c98b4e;color:#e8c48a;font-weight:600}.activity-custom-range{display:flex;align-items:center;gap:.4rem;margin-left:.25rem}.activity-date-input{padding:.25rem .5rem;border-radius:6px;border:1px solid rgba(255,200,150,.2);background:#ffffff0d;color:#d0c3b5;font-size:.78rem;color-scheme:dark}.activity-date-input:focus{outline:none;border-color:#c98b4e}:root{--bg-warm-dark: #15100f;--bg-warm-mid: #2a1f1b;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--accent-gold-dim: #b8894a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--text-dim: #8a7a6e;--glass-bg: rgba(255,255,255,.08);--glass-border: rgba(255,200,150,.25);--slot-empty: rgba(255,255,255,.04);--slot-empty-border: rgba(255,200,150,.12);--slot-occupied: rgba(139,43,59,.35);--slot-occupied-border: rgba(139,43,59,.6)}.rack-detail-page{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);padding:2.5rem clamp(1.5rem,4vw,4rem)}.rack-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-muted)}.rack-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.75rem}.rack-header-info{flex:1}.rack-title{font-size:clamp(1.6rem,3vw,2.2rem);margin:0;letter-spacing:.02em}.rack-type-tag{font-size:.85rem;color:var(--text-muted)}.btn-back{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 18px #0009;white-space:nowrap}.btn-edit{background:transparent;border:1px solid var(--accent-gold);color:var(--accent-gold);padding:.65rem 1.25rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-edit:hover{background:#e0b46a1f}.rack-stats{display:flex;align-items:center;gap:1.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:1rem 1.5rem;margin-bottom:2rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);flex-wrap:wrap}.rack-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.rack-stat-value{font-size:1.5rem;font-weight:700;color:var(--accent-gold);line-height:1}.rack-stat-label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.rack-stat-divider{width:1px;height:32px;background:var(--glass-border)}.rack-util-bar-wrap{display:flex;align-items:center;gap:.75rem;flex:1;min-width:120px}.rack-util-track{flex:1;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.rack-util-fill{height:100%;background:linear-gradient(90deg,var(--accent-gold),#f0a500);border-radius:3px;transition:width .5s ease}.rack-util-pct{font-size:.85rem;color:var(--accent-gold);font-weight:600;white-space:nowrap}.rack-grid-wrap{overflow-x:auto;padding-bottom:1rem}.rack-grid{display:inline-grid;gap:4px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:16px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);min-width:max-content}.grid-corner{width:28px;height:28px}.grid-col-header{width:52px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.grid-row-header{width:28px;height:52px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--text-dim);letter-spacing:.05em}.slot-cell{width:52px;height:52px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;overflow:hidden;position:relative}.slot-empty{background:var(--slot-empty);border:1px solid var(--slot-empty-border)}.slot-empty:hover{background:#e0b46a14;border-color:#e0b46a4d;transform:scale(1.05);box-shadow:0 4px 12px #0006}.slot-occupied{background:var(--slot-occupied);border:1px solid var(--slot-occupied-border)}.slot-occupied:hover{background:#8b2b3b80;border-color:#e87a8ab3;transform:scale(1.05);box-shadow:0 4px 16px #8b2b3b66}.slot-label{font-size:.6rem;color:var(--text-dim);letter-spacing:.03em}.slot-content{display:flex;flex-direction:column;align-items:center;gap:1px;padding:2px;width:100%}.slot-emoji{font-size:14px;line-height:1}.slot-producer{font-size:.5rem;color:var(--text-muted);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;padding:0 2px}.slot-vintage{font-size:.5rem;color:var(--accent-gold-dim)}.rack-legend{display:flex;align-items:center;gap:1.5rem;margin-top:1rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-muted)}.legend-dot{width:12px;height:12px;border-radius:3px}.legend-empty{background:var(--slot-empty);border:1px solid var(--slot-empty-border)}.legend-occupied{background:var(--slot-occupied);border:1px solid var(--slot-occupied-border)}.legend-hint{font-size:.75rem;color:var(--text-dim);font-style:italic}.slot-detail-panel{position:fixed;right:2rem;top:50%;transform:translateY(-50%);width:280px;background:var(--bg-warm-mid);border:1px solid var(--glass-border);border-radius:16px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 48px #000000b3;z-index:100;overflow:hidden}.slot-detail-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--glass-border)}.slot-detail-header h3{margin:0;font-size:1rem}.slot-detail-body{padding:1.25rem}.slot-detail-producer{font-size:1rem;font-weight:700;margin:0 0 .25rem}.slot-detail-product{font-size:.9rem;color:var(--accent-gold);margin:0 0 .5rem}.slot-detail-meta{font-size:.85rem;color:var(--text-muted);margin:0 0 .25rem}.slot-detail-notes{font-size:.85rem;color:var(--text-dim);font-style:italic;margin:.5rem 0 0}.slot-detail-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.btn-consume-slot{background:transparent;border:1px solid rgba(16,163,127,.4);color:#4ecdb4;padding:.65rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-consume-slot:hover{background:#10a37f1f;border-color:#4ecdb4}.btn-view-item{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.65rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;text-align:center;transition:all .15s}.btn-view-item:hover{filter:brightness(1.15)}.btn-unassign-slot{background:transparent;border:1px solid rgba(234,67,53,.4);color:#f47c7c;padding:.65rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-unassign-slot:hover{background:#ea43351f;border-color:#ef5350}.modal-close{background:transparent;border:none;color:var(--text-dim);font-size:1.4rem;cursor:pointer;line-height:1;padding:0;transition:color .15s}.modal-close:hover{color:var(--text-main)}.open-shelf-view{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:1.5rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.open-shelf-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;font-size:.9rem;color:var(--text-muted)}.btn-assign-open{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-assign-open:hover{filter:brightness(1.15)}.open-shelf-empty{text-align:center;padding:3rem 2rem;color:var(--text-muted)}.open-shelf-empty p{margin-bottom:1rem}.open-shelf-list{display:flex;flex-direction:column;gap:.75rem}.shelf-item-row{display:flex;align-items:center;gap:1rem;background:#ffffff0a;border:1px solid rgba(255,200,150,.1);border-radius:10px;padding:.75rem 1rem;transition:border-color .15s}.shelf-item-row:hover{border-color:#e0b46a40}.shelf-item-photo{width:44px;height:60px;object-fit:cover;border-radius:6px;flex-shrink:0}.shelf-item-photo-placeholder{width:44px;height:60px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:#ffffff0f;border-radius:6px;flex-shrink:0}.shelf-item-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.shelf-item-producer{font-size:.95rem;font-weight:700;color:var(--text-main)}.shelf-item-product{font-size:.85rem;color:var(--accent-gold)}.shelf-item-meta{font-size:.78rem;color:var(--text-dim)}.shelf-item-index{font-size:.8rem;color:var(--text-dim);background:#ffffff0f;border-radius:999px;padding:.2rem .6rem;white-space:nowrap}.btn-unassign{background:transparent;border:none;color:var(--text-dim);font-size:1.3rem;cursor:pointer;padding:.2rem .4rem;border-radius:50%;transition:all .15s;line-height:1}.btn-unassign:hover{color:#f47c7c;background:#ea43351a}.selection-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;background:#2a1f1b;border:1px solid rgba(224,180,106,.45);border-radius:999px;padding:.75rem 1.5rem;gap:1rem;box-shadow:0 8px 32px #0009;z-index:200;min-width:320px}.selection-count{font-size:.9rem;color:var(--accent-gold);font-weight:500}.selection-actions{display:flex;gap:.75rem}.btn-clear-selection{background:transparent;border:1px solid rgba(224,180,106,.3);color:var(--text-muted);padding:.5rem 1rem;border-radius:999px;font-size:.85rem;cursor:pointer;transition:all .15s}.btn-clear-selection:hover{border-color:var(--accent-gold);color:var(--accent-gold)}.btn-assign-selected{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-assign-selected:hover{filter:brightness(1.15)}.slot-selected{background:#e0b46a33!important;border-color:#e0b46ab3!important;box-shadow:0 0 0 2px #e0b46a4d}.slot-selected .slot-label{color:var(--accent-gold);font-weight:700;font-size:.75rem}.legend-selected{background:#e0b46a33;border:1px solid rgba(224,180,106,.7)}.modal-inventory{margin-top:1rem;border-radius:10px;padding:.875rem 1rem;border:1px solid transparent}.modal-inventory-ok{background:#10a37f14;border-color:#10a37f40}.modal-inventory-warn{background:#ea433514;border-color:#ea433540}.modal-inventory-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--text-muted);padding:.2rem 0}.modal-inventory-row strong{color:var(--text-main)}.modal-inventory-divider{border-top:1px solid var(--glass-border);margin:.5rem 0}.modal-inventory-warning{font-size:.8rem;color:#f47c7c;margin:.5rem 0 0}.inv-zero{color:#f47c7c!important}.modal-auto-index{font-size:.78rem;color:var(--text-dim);font-style:italic;margin:.5rem 0 0}.modal-backdrop{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}.modal{background:var(--bg-warm-mid);border:1px solid var(--glass-border);border-radius:20px;width:100%;max-width:520px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #000c}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--glass-border)}.modal-header h3{margin:0;font-size:1.1rem}.modal-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem}.modal-search{margin-bottom:1rem;position:relative}.modal-searching{display:block;font-size:.75rem;color:var(--text-dim);font-style:italic;margin-top:.35rem;padding-left:.5rem}.modal-search-input{width:100%;padding:.75rem 1rem;background:#ffffff0f;border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.9rem;box-sizing:border-box}.modal-search-input:focus{outline:none;border-color:var(--accent-gold);box-shadow:0 0 0 3px #e0b46a26}.modal-item-list{display:flex;flex-direction:column;gap:.5rem;max-height:280px;overflow-y:auto}.modal-empty{text-align:center;color:var(--text-dim);padding:1rem;font-style:italic}.modal-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:10px;cursor:pointer;border:1px solid transparent;transition:all .15s}.modal-item:hover{background:#ffffff0d;border-color:#ffc89626}.modal-item-selected{background:#8b2b3b33!important;border-color:#8b2b3b80!important}.modal-item-photo{width:40px;height:56px;object-fit:cover;border-radius:6px;flex-shrink:0}.modal-item-photo-placeholder{width:40px;height:56px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:#ffffff0d;border-radius:6px;flex-shrink:0}.modal-item-info{display:flex;flex-direction:column;gap:.15rem}.modal-item-producer{font-size:.9rem;font-weight:700;color:var(--text-main)}.modal-item-product{font-size:.82rem;color:var(--accent-gold)}.modal-item-meta{font-size:.75rem;color:var(--text-dim)}.modal-extras{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.modal-field label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.35rem;font-weight:600}.modal-field input{width:100%;padding:.6rem .9rem;background:#ffffff0f;border:1px solid var(--glass-border);border-radius:8px;color:var(--text-main);font-size:.9rem;box-sizing:border-box}.modal-field input:focus{outline:none;border-color:var(--accent-gold)}.modal-footer{display:flex;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid var(--glass-border)}.btn-cancel{flex:1;background:transparent;border:1px solid var(--glass-border);color:var(--text-muted);padding:.75rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-cancel:hover{border-color:var(--accent-gold);color:var(--accent-gold)}.btn-submit{flex:2;background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-submit:hover:not(:disabled){filter:brightness(1.15)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.rack-detail-page{padding:1.75rem 1.25rem}.rack-header{flex-wrap:wrap;gap:.75rem}.slot-detail-panel{position:relative;right:auto;top:auto;transform:none;width:100%;margin-top:1.5rem}.rack-stats{gap:1rem}}.open-shelf-sort{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--glass-border)}.sort-label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-right:4px}.sort-btn{background:transparent;border:1px solid var(--glass-border);color:var(--text-muted);font-size:12px;padding:4px 12px;border-radius:999px;cursor:pointer;transition:all .15s}.sort-btn:hover{color:var(--accent-gold);border-color:var(--accent-gold)}.sort-btn.active{background:#e0b46a1a;border-color:#e0b46a66;color:var(--accent-gold);font-weight:600}.slot-move-target{border-color:var(--accent-gold)!important;background:#e0b46a26!important;cursor:crosshair!important;animation:pulse-gold 1s ease-in-out infinite}.slot-move-dim{opacity:.35;cursor:not-allowed!important}@keyframes pulse-gold{0%,to{box-shadow:0 0 #e0b46a66}50%{box-shadow:0 0 0 4px #e0b46a26}}.move-mode-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;background:#e0b46a14;border:1px solid rgba(224,180,106,.25);border-radius:8px;margin:8px 0;font-size:13px;color:var(--accent-gold)}.move-mode-cancel{background:transparent;border:1px solid rgba(224,180,106,.4);color:var(--accent-gold);padding:4px 14px;border-radius:999px;cursor:pointer;font-size:12px;transition:all .15s}.move-mode-cancel:hover{background:#e0b46a1a}.btn-move-slot{background:transparent;border:1px solid rgba(224,180,106,.4);color:var(--accent-gold);padding:7px 14px;border-radius:999px;cursor:pointer;font-size:13px;transition:all .15s}.btn-move-slot:hover{background:#e0b46a1a;border-color:var(--accent-gold)}.slot-dragging{opacity:.3}.slot-drag-over{border-color:var(--accent-gold)!important;background:#e0b46a33!important;transform:scale(1.05)}.slot-drag-ghost{opacity:.9;transform:rotate(3deg) scale(1.1);box-shadow:0 8px 24px #00000080;cursor:grabbing;pointer-events:none}.slot-occupied{cursor:grab;touch-action:none}.slot-occupied:active{cursor:grabbing}.slot-highlighted{border-color:var(--accent-gold)!important;box-shadow:0 0 0 2px #e0b46a66;animation:pulse-gold 1.5s ease-in-out 3}.btn-move-slot{background:#e0b46a1f;border:1px solid rgba(224,180,106,.4);border-radius:999px;color:var(--accent-gold, #e0b46a);font-size:.82rem;font-weight:600;padding:.45rem 1rem;cursor:pointer;transition:background .15s,border-color .15s}.btn-move-slot:hover{background:#e0b46a38;border-color:#e0b46aa6}.btn-move-shelf{background:#e0b46a1a;border:1px solid rgba(224,180,106,.35);border-radius:999px;color:var(--accent-gold, #e0b46a);font-size:.85rem;padding:.3rem .65rem;cursor:pointer;transition:background .15s;flex-shrink:0}.btn-move-shelf:hover{background:#e0b46a38}.move-modal{max-width:540px}.move-modal-item-label{font-size:.9rem;color:var(--accent-gold, #e0b46a);font-weight:600;margin:0 0 1.25rem}.move-modal-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim, #8a7a6e);margin-bottom:.65rem}.move-modal-loading,.move-modal-empty{font-size:.88rem;color:var(--text-dim, #8a7a6e);padding:.75rem 0}.move-rack-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem;max-height:180px;overflow-y:auto}.move-rack-card{display:flex;align-items:center;justify-content:space-between;background:#ffffff0d;border:1px solid rgba(255,200,150,.15);border-radius:10px;padding:.6rem 1rem;cursor:pointer;text-align:left;transition:border-color .15s,background .15s;width:100%}.move-rack-card:hover{background:#ffffff14;border-color:#e0b46a59}.move-rack-card.is-selected{border-color:var(--accent-gold, #e0b46a);background:#e0b46a1a}.move-rack-name{font-size:.9rem;font-weight:600;color:var(--text-main, #f7f2ec)}.move-rack-meta{font-size:.78rem;color:var(--text-dim, #8a7a6e)}.move-slot-picker{margin-bottom:.75rem}.move-slot-grid{display:grid;gap:3px;width:fit-content;max-height:220px;overflow-y:auto;padding:4px}.move-slot-col-header,.move-slot-row-header{font-size:.58rem;color:var(--text-dim, #8a7a6e);display:flex;align-items:center;justify-content:center}.move-slot-cell{width:36px;height:36px;border-radius:5px;border:1px solid transparent;cursor:pointer;transition:background .1s,border-color .1s;padding:0;font-size:.55rem;display:flex;align-items:center;justify-content:center}.move-slot-cell.is-empty{background:#ffffff0f;border-color:#ffc89626;color:var(--text-dim, #8a7a6e)}.move-slot-cell.is-empty:hover{background:#e0b46a26;border-color:#e0b46a66}.move-slot-cell.is-occupied{background:#8b2b3b40;border-color:#8b2b3b66;cursor:not-allowed}.move-slot-cell.is-selected{background:#e0b46a40!important;border-color:var(--accent-gold, #e0b46a)!important;box-shadow:0 0 0 2px #e0b46a4d}.move-slot-label{pointer-events:none}.move-slot-chosen{font-size:.8rem;color:var(--accent-gold, #e0b46a);margin:.5rem 0 0}.shelf-item-clickable{cursor:pointer}.shelf-item-clickable:hover{background:#e0b46a14;border-color:#e0b46a4d}.confirm-remove-modal{max-width:420px}.confirm-remove-label{font-size:14px;color:#bbb;margin:0 0 10px}.confirm-remove-question{font-size:15px;color:#e0e0e0;margin:0}.confirm-remove-footer{gap:8px;flex-wrap:wrap}.btn-remove-only{padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#ccc;cursor:pointer;font-size:13px;transition:all .15s}.btn-remove-only:hover{background:#ffffff12}.btn-remove-consume{padding:10px 18px;border-radius:999px;border:1px solid rgba(139,43,59,.5);background:#8b2b3b26;color:#e08080;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}.btn-remove-consume:hover{background:#8b2b3b4d}:root{--bg-warm-dark: #15100f;--bg-warm-mid: #2a1f1b;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--text-dim: #8a7a6e;--glass-bg: rgba(255,255,255,.06);--glass-border: rgba(255,200,150,.2)}.consumption-page{min-height:100vh;background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304);color:var(--text-main);padding:2.5rem clamp(1.5rem,4vw,4rem)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem;position:relative}.page-header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.9rem,3vw,2.4rem);letter-spacing:.03em;white-space:nowrap;pointer-events:none}.btn-back{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 18px #0009}.btn-back:hover{transform:translateY(-2px)}.header-actions{display:flex;gap:.5rem}.btn-view-toggle{display:none}.clog-toggle{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-muted);padding:.5rem 1rem;border-radius:999px;font-size:.85rem;cursor:pointer;transition:all .15s}.clog-toggle-active{background:#8b2b3b40;border-color:#8b2b3b80;color:var(--text-main)}.clog-toggle:hover:not(.clog-toggle-active){border-color:var(--accent-gold);color:var(--accent-gold)}.consumption-filters{display:flex;gap:.75rem;flex-wrap:nowrap;margin-bottom:1rem;align-items:center;overflow-x:auto;padding-bottom:.25rem}.filter-search{flex:1;min-width:180px;padding:.65rem 1rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.9rem}.filter-search:focus{outline:none;border-color:var(--accent-gold)}.filter-select{padding:.65rem 2.25rem .65rem .875rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.85rem;cursor:pointer;width:auto;flex-shrink:0;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a7a6e' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center}.filter-date{padding:.65rem .875rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.85rem;cursor:pointer;width:148px;flex-shrink:0}.filter-select:focus,.filter-date:focus{outline:none;border-color:var(--accent-gold)}.filter-label{font-size:.78rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0;white-space:nowrap}.filter-sep{color:var(--text-dim);font-size:.85rem;flex-shrink:0}.filter-rating{width:150px!important}.btn-clear-filters{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);border:none;color:#fff;padding:.65rem 1.25rem;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;box-shadow:0 4px 12px #0006}.btn-clear-filters:hover{filter:brightness(1.15);transform:translateY(-1px)}.consumption-count{font-size:.85rem;color:var(--text-dim);margin-bottom:1.25rem}.consumption-cards{display:flex;flex-direction:column;gap:.75rem}.consumption-card{display:flex;align-items:center;gap:1rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:1rem 1.25rem;transition:border-color .15s}.consumption-card:hover{border-color:#e0b46a4d}.cc-photo{width:52px;height:68px;flex-shrink:0;border-radius:8px;overflow:hidden;background:#ffffff0d;display:flex;align-items:center;justify-content:center;font-size:1.8rem}.cc-photo img{width:100%;height:100%;object-fit:cover}.cc-content{flex:1;min-width:0}.cc-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.cc-title{display:flex;flex-direction:column;gap:.1rem}.cc-producer{font-size:.95rem;font-weight:700;color:var(--text-main)}.cc-product{font-size:.85rem;color:var(--accent-gold)}.cc-badges{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.cc-meta{display:flex;gap:.5rem;font-size:.8rem;color:var(--text-dim);flex-wrap:wrap;margin-bottom:.35rem}.cc-notes{font-size:.82rem;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-actions{display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}.cc-btn-view{background:transparent;border:1px solid var(--glass-border);color:var(--accent-gold);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.cc-btn-view:hover{background:#e0b46a1a;border-color:var(--accent-gold)}.cc-btn-delete{background:transparent;border:none;color:var(--text-dim);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.cc-btn-delete:hover{color:#f47c7c;background:#ea43351a}.rating-badge{font-size:1rem;font-weight:700}.wba-badge{font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:999px}.wba-yes{background:#10a37f26;border:1px solid rgba(16,163,127,.35);color:#4ecdb4}.wba-no{background:#ea43351f;border:1px solid rgba(234,67,53,.3);color:#f47c7c}.consumption-table-wrap{overflow-x:auto}.consumption-table{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;overflow:hidden;min-width:700px}.ct-header{display:grid;grid-template-columns:110px 2fr 120px 70px 90px 2fr 50px;gap:1rem;padding:1rem 1.25rem;background:#00000040;border-bottom:1px solid var(--glass-border);font-size:.75rem;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:.08em}.ct-row{display:grid;grid-template-columns:110px 2fr 120px 70px 90px 2fr 50px;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid rgba(255,200,150,.08);align-items:center;cursor:pointer;transition:background .15s;font-size:.9rem}.ct-row:hover{background:#e0b46a0d}.ct-row:last-child{border-bottom:none}.ct-row .ct-col-item{display:flex;flex-direction:column;gap:.1rem}.ct-row .ct-col-item strong{color:var(--text-main)}.ct-product{font-size:.8rem;color:var(--accent-gold)}.ct-vintage{font-size:.78rem;color:var(--text-dim)}.ct-col-occasion,.ct-col-rating{text-align:center}.ct-col-wba{text-align:center;display:flex;align-items:center;justify-content:center}.ct-row .ct-col-date,.ct-row .ct-col-occasion{color:var(--text-muted);font-size:.85rem}.ct-row .ct-notes-text{color:var(--text-dim);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.consumption-empty{text-align:center;padding:3rem 2rem;color:var(--text-muted)}.consumption-pagination{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:2rem;font-size:.9rem;color:var(--text-muted)}.btn-page{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-muted);padding:.5rem 1.25rem;border-radius:999px;cursor:pointer;font-size:.85rem;transition:all .15s}.btn-page:hover:not(:disabled){border-color:var(--accent-gold);color:var(--accent-gold)}.btn-page:disabled{opacity:.35;cursor:not-allowed}@media(max-width:640px){.consumption-page{padding:1.75rem 1.25rem}.consumption-filters{gap:.5rem}.filter-search{min-width:100%}}.rating-badge-wrap{display:inline-block;position:relative}.rating-clickable{cursor:pointer}.rating-clickable:hover{opacity:.8;text-decoration:underline dotted}.rating-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:100;background:#2a1f1b;border:1px solid rgba(255,200,150,.25);border-radius:10px;padding:12px 14px;width:180px;box-shadow:0 8px 24px #00000080}.rating-popover-value{text-align:center;font-size:24px;font-weight:700;color:#e0b46a;margin-bottom:8px}.rating-slider{width:100%;accent-color:#e0b46a;cursor:pointer}.rating-popover-labels{display:flex;justify-content:space-between;font-size:10px;color:#8a7a6e;margin-top:2px;margin-bottom:10px}.rating-popover-actions{display:flex;gap:8px}.rating-btn-cancel,.rating-btn-save{flex:1;padding:5px 0;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none}.rating-btn-cancel{background:#ffffff14;color:#d0c3b5}.rating-btn-save{background:#8b2b3b;color:#fff}.rating-btn-save:hover{background:#c23b54}.wba-clickable{cursor:pointer;transition:opacity .15s}.wba-clickable:hover{opacity:.75}.reports-page{min-height:100vh;background-color:#15100f;background-image:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(139,43,59,.08) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(224,180,106,.05) 0%,transparent 70%);color:#f7f2ec;padding:0 0 64px}.reports-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:#d0c3b5}.reports-spinner{width:36px;height:36px;border:3px solid rgba(255,200,150,.18);border-top-color:#e0b46a;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.reports-header{display:flex;align-items:center;gap:24px;padding:40px 48px 32px;border-bottom:1px solid rgba(255,200,150,.18);background:linear-gradient(180deg,rgba(139,43,59,.06) 0%,transparent 100%);position:relative}.btn-back-report{background:transparent;border:1px solid rgba(255,200,150,.18);color:#d0c3b5;padding:8px 16px;border-radius:999px;cursor:pointer;font-size:13px;transition:all .2s;white-space:nowrap}.btn-back-report:hover{color:#e0b46a;border-color:#e0b46a;background:#ffffff0f}.reports-title-block{position:absolute;left:50%;transform:translate(-50%);text-align:center;pointer-events:none}.reports-title{font-size:32px;font-weight:700;color:#f7f2ec;margin:0;letter-spacing:-.02em}.reports-subtitle{font-size:14px;color:#d0c3b5;margin:4px 0 0}.reports-tabs{display:flex;gap:4px;padding:20px 48px 0;border-bottom:1px solid rgba(255,200,150,.12)}.reports-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:#8a7a6e;padding:10px 20px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;margin-bottom:-1px}.reports-tab:hover{color:#d0c3b5}.reports-tab.active{color:#e0b46a;border-bottom-color:#e0b46a}.reports-content{padding:32px 48px;display:flex;flex-direction:column;gap:24px}.report-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.report-stat-card{background:#ffffff0f;border:1px solid rgba(255,200,150,.18);border-radius:14px;padding:20px 24px;display:flex;flex-direction:column;gap:4px;transition:border-color .2s}.report-stat-card:hover{border-color:#e0b46a59}.stat-label{font-size:11px;color:#8a7a6e;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.stat-value{font-size:36px;font-weight:700;color:#e0b46a;line-height:1.1}.stat-sub{font-size:12px;color:#8a7a6e}.report-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.report-chart-card{background:#ffffff0f;border:1px solid rgba(255,200,150,.18);border-radius:18px;padding:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.report-chart-card.full-width{grid-column:1 / -1}.chart-title{font-size:13px;font-weight:700;color:#d0c3b5;text-transform:uppercase;letter-spacing:.1em;margin:0}.recharts-default-tooltip{background:#2a1f1b!important;border:1px solid rgba(255,200,150,.25)!important;border-radius:8px!important}.chart-tooltip{background:#2a1f1b;border:1px solid rgba(255,200,150,.25);border-radius:8px;padding:10px 14px}.tooltip-label{font-size:12px;font-weight:700;color:#f7f2ec;margin:0 0 4px;text-transform:capitalize}.tooltip-value{font-size:12px;margin:2px 0}.recharts-tooltip-cursor{display:none!important}.report-alert-card{background:#ffffff0a;border-radius:14px;padding:20px 24px;border:1px solid}.report-alert-card.low{border-color:#f443364d}.report-alert-card.high{border-color:#10a37f4d}.alert-title{font-size:13px;font-weight:700;color:#d0c3b5;margin:0 0 16px;text-transform:uppercase;letter-spacing:.08em}.alert-list{display:flex;flex-direction:column;gap:8px}.alert-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#ffffff08;border-radius:8px;cursor:pointer;transition:background .15s}.alert-row:hover{background:#ffffff12}.alert-producer{font-size:14px;font-weight:600;color:#f7f2ec;flex:1}.alert-product{font-size:13px;color:#d0c3b5;flex:2}.alert-qty{font-size:13px;font-weight:700;margin-left:auto}.alert-qty.low{color:#f47c7c}.alert-qty.high{color:#4ecdb4}.chart-card-header{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.drill-breadcrumb-bar{display:flex;align-items:center;gap:0;flex-wrap:wrap;min-height:22px}.drill-breadcrumb-segment{display:flex;align-items:center;gap:6px}.crumb-sep{color:#6e5e52;font-size:13px;padding:0 2px;font-weight:300}.crumb-current{font-size:12px;font-weight:700;color:#e0b46a;text-transform:capitalize}.crumb-link{background:none;border:none;padding:0;font-size:12px;font-weight:500;color:#8a7a6e;cursor:pointer;text-transform:capitalize;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#8a7a6e66;transition:color .15s;font-family:inherit}.crumb-link:hover{color:#d0c3b5}.drill-table{margin-top:16px;border-top:1px solid rgba(255,200,150,.12)}.drill-table-header{display:grid;grid-template-columns:1fr 60px 70px;padding:8px 12px;font-size:10px;color:#e0b46a;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.drill-table-header span:first-child{text-align:left}.drill-table-header span:not(:first-child){text-align:center}.drill-table-row{display:grid;grid-template-columns:1fr 60px 70px;padding:9px 12px;border-bottom:1px solid rgba(255,200,150,.06);align-items:center;border-radius:6px;transition:background .15s}.drill-table-row.clickable{cursor:pointer}.drill-table-row.clickable:hover{background:#ffffff0d}.drill-table-row.drill-row-active{background:#e0b46a14;border-color:#e0b46a2e}.drill-name{font-size:13px;color:#f7f2ec;text-transform:capitalize;display:flex;align-items:center;gap:6px}.drill-chevron{color:#6e5e52;font-size:14px;margin-left:auto;padding-right:4px;transition:color .15s,transform .15s}.drill-table-row.clickable:hover .drill-chevron{color:#e0b46a;transform:translate(2px)}.drill-items{font-size:13px;color:#d0c3b5;text-align:center}.drill-bottles{font-size:13px;font-weight:600;color:#e0b46a;text-align:center}.windows-empty{text-align:center;padding:60px 20px;color:#8a7a6e}.windows-empty-hint{font-size:13px;margin-top:8px;font-style:italic}.window-section{margin-bottom:8px}.window-section-title{font-size:13px;font-weight:700;color:#d0c3b5;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}.window-list{display:flex;flex-direction:column;gap:8px}.window-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ffffff0a;border:1px solid rgba(255,200,150,.12);border-radius:10px;cursor:pointer;transition:all .15s;gap:16px}.window-row:hover{background:#ffffff12;border-color:#e0b46a47}.window-row-info{display:flex;align-items:center;gap:10px;flex:1}.window-producer{font-size:14px;font-weight:600;color:#f7f2ec}.window-product{font-size:13px;color:#d0c3b5}.window-vintage{font-size:12px;color:#8a7a6e}.window-row-meta{display:flex;align-items:center;gap:10px}.window-range{font-size:13px;font-weight:600;color:#e0b46a;background:#e0b46a1a;border:1px solid rgba(224,180,106,.25);border-radius:999px;padding:2px 10px}.window-peak{font-size:12px;color:#8a7a6e}.window-qty{font-size:12px;color:#d0c3b5;white-space:nowrap}.window-ai{font-size:10px;color:#b8894a;font-style:italic}@media(max-width:1024px){.reports-header,.reports-tabs,.reports-content{padding-left:28px;padding-right:28px}.report-stats-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.reports-header,.reports-tabs,.reports-content{padding-left:16px;padding-right:16px}.report-charts-row{grid-template-columns:1fr}.report-stats-row{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:28px}}.leaf-loading{display:flex;justify-content:center;padding:32px 0}.leaf-empty{padding:24px 12px;text-align:center;font-size:13px;color:#8a7a6e;font-style:italic}.drill-table-row.clickable:hover .drill-name span:first-child{color:#e0b46a;transition:color .15s}.drill-table-scroll{max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(224,180,106,.25) transparent}.drill-table-scroll::-webkit-scrollbar{width:4px}.drill-table-scroll::-webkit-scrollbar-track{background:transparent}.drill-table-scroll::-webkit-scrollbar-thumb{background:#e0b46a40;border-radius:2px}.drill-table-scroll::-webkit-scrollbar-thumb:hover{background:#e0b46a73}.drill-table-header{position:sticky;top:0;background:var(--bg-warm-card, #1e1612);z-index:1}.recipes-page{min-height:100vh;padding:2rem clamp(1.25rem,4vw,3rem);color:#f7f2ec;background:radial-gradient(circle at top left,rgba(126,52,18,.35),transparent 30%),linear-gradient(180deg,#120d0b,#090606)}.recipes-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;position:relative}.recipes-header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.4rem,2.5vw,2.2rem);white-space:nowrap;pointer-events:none;line-height:1.2}.recipes-header-right{display:flex;align-items:center;gap:.75rem;margin-left:auto;flex-shrink:0}.recipes-header .header-nav-buttons{flex-shrink:0}.recipes-count,.recipe-muted{color:#cbbcae;white-space:nowrap}.recipes-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.recipes-search{width:min(100%,560px);padding:.9rem 1rem;border-radius:16px;border:1px solid rgba(224,180,106,.25);background:#ffffff14;color:#f7f2ec}.recipes-page .btn-view,.recipes-page .btn-back{min-height:44px}.recipes-page .btn-view{padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;min-width:auto;box-shadow:0 8px 18px #0009}.recipes-page .btn-view-active:hover,.recipes-page .btn-view-inactive:hover{transform:translateY(-2px)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.recipes-table-wrap{border-radius:22px;border:1px solid rgba(224,180,106,.2);background:#ffffff12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 40px #00000059;overflow:hidden}.recipes-table{display:grid;grid-template-columns:minmax(240px,2.2fr) minmax(90px,.8fr) minmax(80px,.7fr) minmax(80px,.7fr) minmax(180px,1.5fr) minmax(120px,1fr) 120px}.recipes-table-body{display:contents}.recipes-table-header,.recipes-table-row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;gap:1rem;align-items:center}.recipes-table-header{padding:1rem 1.1rem;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f4dfb8;background:#00000040;border-bottom:1px solid rgba(224,180,106,.14)}.recipes-table-header>div{color:#f4dfb8;font-weight:700;text-align:center}.recipes-table-header .recipes-col-title{text-align:center}.recipes-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.recipes-table-row{width:100%;text-align:center;padding:1rem 1.1rem;border:0;border-bottom:1px solid rgba(224,180,106,.08);background:transparent;color:inherit;cursor:pointer}.recipes-table-row:hover{background:#ffffff0d}.recipes-col-title{display:grid;gap:.35rem;text-align:left}.recipes-col-title span{color:#d8cabd;font-size:.9rem;line-height:1.4}.recipes-col-course,.recipes-col-time,.recipes-col-servings,.recipes-col-tags,.recipes-col-status{color:#e4d6c9;font-size:.92rem;line-height:1.45;text-align:center}.recipes-col-actions{display:flex;gap:.5rem;align-items:center;justify-content:center}.recipes-table-row .btn-edit{background:#0009;border:1px solid var(--accent-gold, #e0b46a);color:#d0c3b5;width:36px;height:36px;min-width:36px;min-height:36px;flex-shrink:0;align-self:center;border-radius:8px;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .15s}.recipes-table-row .btn-edit:hover{background:#e0b46a26;border-color:var(--accent-gold, #e0b46a);color:var(--accent-gold, #e0b46a)}.recipe-card-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.35rem;z-index:2}.recipe-card-actions .btn-icon{background:#0009;border:1px solid var(--accent-gold, #e0b46a);color:#d0c3b5;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.recipe-card-actions .btn-icon:hover{background:#e0b46a26;border-color:var(--accent-gold, #e0b46a);color:var(--accent-gold, #e0b46a)}.recipe-card-actions .btn-icon-danger:hover{background:#ea433526!important;border-color:#ef5350!important;color:#f47c7c!important}.recipe-card,.recipe-panel{border-radius:22px;border:1px solid rgba(224,180,106,.2);background:#ffffff12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 40px #00000059}.recipe-card{text-align:left;padding:1.1rem;color:inherit;cursor:pointer;position:relative;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.recipe-card:hover{transform:translateY(-3px);border-color:#e0b46a66;box-shadow:0 12px 32px #00000080}.recipe-card-top,.recipe-action-row,.recipe-meta,.recipe-tags{display:flex;flex-wrap:wrap;gap:.5rem}.recipe-card h2,.recipe-panel h2{margin:0 0 .75rem}.recipe-card p,.recipe-panel p{margin:0 0 .9rem;color:#d8cabd;line-height:1.5}.recipe-card .recipe-meta{margin-top:.85rem}.recipe-card .recipe-tags{margin-top:.75rem}.recipe-badge,.recipe-status,.recipe-tags span,.recipe-meta span{padding:.2rem .6rem;border-radius:999px;background:#e0b46a1f;color:#f4dfb8;font-size:.72rem;font-weight:600;text-transform:capitalize}.recipe-status-complete{background:#10a37f26;border:1px solid rgba(16,163,127,.35);color:#4ecdb4}.recipe-status-pending{background:#e0b46a26;border:1px solid rgba(224,180,106,.35);color:var(--accent-gold, #e0b46a)}.recipes-empty{padding:2rem 0;color:#d8cabd}.recipe-detail-grid{display:grid;gap:1rem}.recipe-panel{padding:1.2rem}.recipe-panel h3{margin:0 0 .8rem;font-size:1rem;color:#f4dfb8;text-transform:uppercase;letter-spacing:.06em}.recipe-doc-meta{display:grid;gap:.5rem;margin-bottom:1rem;color:#d8cabd}.recipe-sections{display:grid;gap:1rem}.recipe-view-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.recipe-view-toggle{display:flex;align-items:center;gap:.75rem;border-bottom:1px solid rgba(255,200,150,.18)}.recipe-view-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--text-muted, #d0c3b5);cursor:pointer;font-size:.88rem;letter-spacing:.04em;padding:.45rem .2rem .7rem;min-width:88px;text-align:center;transition:color .2s,border-color .2s;margin-bottom:-1px;font-family:inherit;font-weight:500}.recipe-view-tab:hover{color:var(--text-main, #f7f2ec)}.recipe-view-tab.active{color:var(--accent-gold, #e0b46a);border-bottom-color:var(--accent-gold, #e0b46a)}.recipe-view-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.38rem .85rem;border-radius:999px;border:1px solid rgba(224,180,106,.35);background:#ffffff0f;color:#f4dfb8;font-size:.78rem;font-weight:500;text-decoration:none;transition:background-color .18s ease,transform .18s ease,border-color .18s ease}.recipe-view-link:hover{background:#e0b46a14;border-color:#e0b46a99;transform:translateY(-1px)}.recipe-document-frame{width:100%;min-height:72vh;border:1px solid rgba(224,180,106,.18);border-radius:16px;background:#fffffffa}.recipe-original-fallback,.recipe-text-section{padding:1rem;border-radius:16px;background:#0000003d;border:1px solid rgba(224,180,106,.12)}.recipe-text-lines{display:grid;gap:.7rem}.recipe-text-lines p{margin:0;white-space:pre-wrap;color:#f2ece6;line-height:1.6}.recipe-upload-form{display:grid;gap:1rem}.recipe-form-field{display:grid;gap:.45rem}.recipe-form-field span,.recipe-checkbox-row span{color:#f4dfb8;font-weight:600}.recipe-form-field input,.recipe-form-field textarea{width:100%;padding:.9rem 1rem;border-radius:16px;border:1px solid rgba(224,180,106,.25);background:#ffffff14;color:#f7f2ec;font:inherit}.recipe-form-field textarea{resize:vertical;min-height:140px}.recipe-checkbox-row{display:flex;align-items:center;gap:.75rem;color:#d8cabd}.recipe-checkbox-row input{width:18px;height:18px}.recipe-error-message{margin:0;color:#ffb3b3}.btn-danger{background:#a03030e6;color:#fff;border:none}@media print{.recipes-header,.recipe-owner-actions{display:none}.recipes-page{background:#fff;color:#111;padding:0}.recipe-panel,.recipe-card{box-shadow:none;border:1px solid #ddd;background:#fff}.recipe-text-section{background:#fff;color:#111;border-color:#ddd}.recipe-document-frame{border-color:#ddd}.recipe-text-lines p{color:#111}}@media(max-width:980px){.recipes-header{flex-wrap:wrap}.recipes-header h1{width:100%;text-align:left;flex:0 0 100%}.recipes-header-right{width:100%;justify-content:space-between;flex-wrap:wrap}.recipes-toolbar{flex-wrap:wrap}.recipes-table-wrap{overflow-x:auto}.recipes-table{min-width:920px}}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;inset:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.recipe-pdf-viewer{display:flex;flex-direction:column;width:100%;min-height:560px;margin-top:16px;background:#15100f99;border:1px solid rgba(224,180,106,.15);border-radius:12px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow:hidden}.recipe-pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:linear-gradient(180deg,#2d0a1ad9,#15100fd9);border-bottom:1px solid rgba(224,180,106,.18);position:sticky;top:0;z-index:5;flex-wrap:wrap}.recipe-pdf-toolbar-group{display:flex;align-items:center;gap:6px}.recipe-pdf-page-indicator{color:#e0b46a;font-family:inherit;font-size:.85rem;font-weight:500;min-width:56px;text-align:center;letter-spacing:.02em}.recipe-pdf-btn{padding:6px 14px;font-size:.8rem;border-radius:999px;background:#e0b46a1a;border:1px solid rgba(224,180,106,.35);color:#e0b46a;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease;font-family:inherit;min-width:36px;line-height:1}.recipe-pdf-btn:hover:not(:disabled){background:#e0b46a33;border-color:#e0b46a99}.recipe-pdf-btn:disabled{opacity:.35;cursor:not-allowed}.recipe-pdf-canvas-wrap{flex:1;overflow:auto;padding:16px;display:flex;justify-content:center;background:radial-gradient(ellipse at top,#2d0a1a4d,#0f0a0acc)}.recipe-pdf-page{box-shadow:0 8px 32px #0009;border-radius:4px;overflow:hidden}.recipe-pdf-canvas-wrap .react-pdf__Document{display:flex;justify-content:center}.recipe-pdf-canvas-wrap .react-pdf__Page__canvas{max-width:100%;height:auto!important}.recipe-pdf-loading,.recipe-pdf-error{padding:48px 24px;text-align:center;color:#e0b46ab3;font-family:inherit;font-size:.95rem}.recipe-pdf-error{color:#e89b9b}.recipe-pdf-error-box{min-height:auto;padding:24px}@media(max-width:640px){.recipe-pdf-toolbar{padding:8px;gap:8px}.recipe-pdf-toolbar-group{flex:1 1 auto;justify-content:center}.recipe-pdf-btn{padding:5px 10px;font-size:.75rem}}:root{--bg-warm-dark: #15100f;--bg-warm-mid: #2a1f1b;--bg-warm-card: #1e1612;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--accent-gold-dim: #b8894a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--text-dim: #8a7a6e;--glass-bg: rgba(255, 255, 255, .06);--glass-border: rgba(255, 200, 150, .18);--glass-hover: rgba(255, 255, 255, .1);--radius-md: 12px;--radius-lg: 18px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .45)}.otg-page{min-height:100vh;background-color:var(--bg-warm-dark);background-image:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(139,43,59,.08) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(224,180,106,.05) 0%,transparent 70%);color:var(--text-main);padding:0 0 64px}.otg-header{position:relative;display:flex;align-items:center;padding:28px 48px 24px;border-bottom:1px solid var(--glass-border)}.otg-header h1{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:clamp(1.4rem,2.5vw,2.2rem);font-weight:600;color:var(--text-main);white-space:nowrap;pointer-events:none}.otg-content{max-width:640px;margin:0 auto;padding:24px 20px}.otg-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px}.otg-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;gap:16px;color:var(--text-muted)}.otg-loading-spinner{width:40px;height:40px;border:3px solid var(--glass-border);border-top-color:var(--accent-gold);border-radius:50%;animation:otg-spin .8s linear infinite}@keyframes otg-spin{to{transform:rotate(360deg)}}.otg-loading-text{font-size:1rem;color:var(--text-muted)}.otg-camera-area{display:flex;flex-direction:column;align-items:center;gap:20px;padding:32px 0}.otg-capture-btn-label{display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;background:var(--glass-bg);border:1px dashed var(--glass-border);border-radius:var(--radius-lg);padding:40px 48px;transition:background .15s ease,border-color .15s ease;width:100%;max-width:320px;color:var(--text-muted);font-size:.95rem}.otg-capture-btn-label:hover{background:var(--glass-hover);border-color:var(--accent-gold-dim);color:var(--accent-gold)}.otg-capture-icon{font-size:2.5rem;line-height:1}.otg-preview-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.otg-preview-img{width:100%;max-width:360px;max-height:320px;object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--glass-border)}.otg-form{display:flex;flex-direction:column;gap:14px}.otg-field{display:flex;flex-direction:column;gap:5px}.otg-field label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.otg-field input,.otg-field select,.otg-field textarea{background:#ffffff0f;border:1px solid var(--glass-border);border-radius:8px;color:var(--text-main);font-size:.95rem;padding:9px 12px;width:100%;box-sizing:border-box;transition:border-color .15s ease}.otg-field input:focus,.otg-field select:focus,.otg-field textarea:focus{outline:none;border-color:var(--accent-gold-dim)}.otg-field input::placeholder,.otg-field textarea::placeholder{color:var(--text-dim)}.otg-field select option{background:#1e1612;color:var(--text-main)}.otg-field textarea{resize:vertical;min-height:100px}.otg-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.otg-ingredients-list{display:flex;flex-direction:column;gap:8px}.otg-ingredient-row{display:flex;gap:8px;align-items:center}.otg-ingredient-row input{flex:1;background:#ffffff0f;border:1px solid var(--glass-border);border-radius:8px;color:var(--text-main);font-size:.9rem;padding:7px 10px}.otg-ingredient-row input:focus{outline:none;border-color:var(--accent-gold-dim)}.otg-btn-remove{background:none;border:1px solid rgba(255,100,100,.3);border-radius:6px;color:#ff6464b3;font-size:1rem;cursor:pointer;padding:4px 8px;line-height:1;transition:background .15s ease}.otg-btn-remove:hover{background:#ff64641a;color:#ff6464}.otg-btn-add-ingredient{background:none;border:1px dashed var(--glass-border);border-radius:8px;color:var(--text-dim);font-size:.85rem;cursor:pointer;padding:8px 12px;text-align:left;transition:border-color .15s ease,color .15s ease;width:100%}.otg-btn-add-ingredient:hover{border-color:var(--accent-gold-dim);color:var(--accent-gold)}.otg-review-section{margin-bottom:4px}.otg-review-section h3{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-gold);margin:0 0 8px}.otg-review-section p{font-size:1rem;color:var(--text-main);margin:0;line-height:1.6;white-space:pre-wrap}.otg-rating-display{font-size:1.5rem;font-weight:700;color:var(--accent-gold)}.otg-street-price{font-size:1.1rem;font-weight:600;color:var(--text-main)}.otg-price-disclaimer{font-size:.78rem;color:var(--text-dim);margin-top:12px;font-style:italic}.otg-preview-thumb{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--glass-border);float:right;margin-left:12px}.otg-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.otg-observed-price{display:flex;flex-direction:column;gap:5px;margin-bottom:4px}.otg-observed-price label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.otg-observed-price input{background:#ffffff0f;border:1px solid var(--glass-border);border-radius:8px;color:var(--text-main);font-size:.95rem;padding:9px 12px;width:100%;box-sizing:border-box}.otg-observed-price input:focus{outline:none;border-color:var(--accent-gold-dim)}.otg-btn{display:block;width:100%;padding:12px 20px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:filter .15s ease,opacity .15s ease;text-align:center}.otg-btn:disabled{opacity:.4;cursor:not-allowed}.otg-btn-primary{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);color:var(--text-main)}.otg-btn-primary:hover:not(:disabled){filter:brightness(1.15)}.otg-btn-secondary{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-muted)}.otg-btn-secondary:hover:not(:disabled){background:var(--glass-hover);color:var(--text-main)}.otg-btn-ghost{background:none;border:none;color:var(--text-dim);font-size:.88rem;padding:8px 0}.otg-btn-ghost:hover:not(:disabled){color:var(--text-muted)}.otg-divider{border:none;border-top:1px solid var(--glass-border);margin:20px 0}.otg-confidence-note{font-size:.8rem;color:var(--text-dim);background:#e0b46a12;border:1px solid rgba(224,180,106,.15);border-radius:8px;padding:8px 12px;margin-bottom:12px}:root{--bg-warm-dark: #15100f;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--text-dim: #8a7a6e;--glass-bg: rgba(255,255,255,.06);--glass-border: rgba(255,200,150,.2)}.admin-users-page{min-height:100vh;padding:2.5rem clamp(1.5rem,4vw,4rem);color:var(--text-main);background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304)}.admin-loading,.admin-empty{padding:2.5rem 1.5rem;text-align:center;color:var(--text-muted);font-size:.96rem}.admin-error{margin-bottom:1.25rem;padding:.95rem 1rem;border-radius:18px;border:1px solid rgba(194,74,74,.32);background:#70161e4d;color:#ffb8b8;box-shadow:0 14px 32px #0000003d}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;position:relative}.admin-header-left,.admin-header-utility{display:flex;align-items:center;gap:.75rem}.admin-header-title{position:absolute;left:50%;transform:translate(-50%);text-align:center;pointer-events:none}.admin-header-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.admin-header h1{margin:0;font-size:clamp(1.9rem,3.2vw,2.6rem);color:var(--text-main);letter-spacing:-.03em}.admin-subtitle{margin:.3rem 0 0;color:var(--text-muted);font-size:.95rem}.admin-back-btn,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.75rem 1.2rem;border-radius:999px;border:1px solid transparent;font-family:inherit;font-size:.9rem;font-weight:600;line-height:1;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease}.admin-back-btn:hover,.btn:hover:not(:disabled){transform:translateY(-1px)}.admin-home-btn{min-width:44px;padding-left:.85rem;padding-right:.85rem;font-size:1rem}.btn:disabled,.admin-back-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.admin-back-btn,.btn-primary{background:linear-gradient(135deg,var(--accent-burgundy),#5f1b28);border-color:#f5d08c2e;color:#fff7ef;box-shadow:0 8px 18px #0009}.admin-back-btn:hover,.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#9f3345,#6d1d2c)}.btn-secondary{background:var(--glass-bg);border-color:var(--glass-border);color:var(--text-main);box-shadow:0 8px 18px #0009}.btn-secondary:hover:not(:disabled){background:#ffffff1a;border-color:var(--accent-gold)}.btn-danger{background:#78162247;border-color:#d4606047;color:#ffb7b1}.btn-danger:hover:not(:disabled){background:#941f2f57;border-color:#e9808061}.btn-sm{min-height:30px;min-width:30px;padding:.35rem;font-size:.82rem;border-radius:8px;box-shadow:none}.admin-table-wrap,.admin-modal,.module-access-grid{border-radius:16px;border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 32px #00000080}.admin-table-wrap{overflow:hidden;background:#32231df5}.admin-search-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.admin-search-input{flex:1;padding:.75rem 1.25rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-main);font-size:.95rem}.admin-search-input:focus{outline:none;border-color:var(--accent-gold)}.admin-count{font-size:.85rem;color:var(--text-dim);white-space:nowrap}.admin-clear-search{background:transparent;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:.25rem .5rem;border-radius:50%;transition:color .15s}.admin-clear-search:hover{color:var(--text-main)}.admin-table{width:100%;border-collapse:collapse;font-size:.92rem;table-layout:fixed}.admin-actions-column{width:132px}.admin-table thead{background:#00000040}.admin-table th{padding:1rem 1.1rem;text-align:left;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-gold);border-bottom:1px solid var(--glass-border)}.admin-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .18s ease}.admin-sortable:hover{color:var(--text-main)}.admin-sortable span{display:inline-block;margin-left:.35rem;color:var(--text-muted);font-size:.72rem}.admin-table td{padding:.875rem 1.1rem;color:var(--text-main);border-bottom:1px solid rgba(255,200,150,.06);vertical-align:middle}.admin-table tbody tr{background:transparent}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#e0b46a0d}.admin-email{color:var(--text-muted);font-size:.85rem}.admin-actions-col{text-align:center;white-space:nowrap;padding-left:0!important;padding-right:0!important}.admin-table td.admin-actions-col{text-align:center}.admin-actions-label{display:flex;align-items:center;justify-content:center;width:116px;margin:0 auto}.admin-actions-group{display:flex;align-items:center;justify-content:space-between;gap:.35rem;width:116px;margin:0 auto}.role-pill,.inactive-badge,.pending-badge{display:inline-flex;align-items:center;justify-content:center;padding:.28rem .72rem;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.role-pill-owner{background:#e0b46a24;border:1px solid rgba(245,208,140,.34);color:var(--accent-gold)}.role-pill-contributor{background:#6f75ff24;border:1px solid rgba(149,156,255,.34);color:#d6d0ff}.role-pill-viewer{background:#5eba8424;border:1px solid rgba(124,220,164,.3);color:#cbf6da}.role-pill-none{color:#cbbcae8a;background:#ffffff08;border:1px dashed rgba(203,188,174,.14)}.admin-actions-group .btn-secondary{background:#0009;border-color:var(--accent-gold);color:var(--text-main)}.admin-actions-group .btn-secondary:hover:not(:disabled){background:#e0b46a1f;border-color:var(--accent-gold);color:var(--accent-gold)}.admin-actions-group .btn-danger{background:#0009;border-color:var(--accent-gold);color:#f0d8d8}.admin-actions-group .btn-danger:hover:not(:disabled){background:#ea433524;border-color:#ef5350;color:#f47c7c}.row-inactive{opacity:.56}.inactive-badge{margin-left:.55rem;background:#d2c9bd1a;border:1px solid rgba(210,201,189,.2);color:var(--text-muted)}.pending-badge{margin-left:.55rem;background:#d99e4929;border:1px solid rgba(217,158,73,.28);color:var(--accent-gold)}.admin-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#060406ad;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-modal{width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.admin-modal-sm{max-width:430px}.admin-modal-header,.admin-modal-footer{padding:1rem 1.25rem}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--glass-border);background:#0000002e}.admin-modal-header h2{margin:0;color:var(--text-main);font-size:1.15rem}.admin-modal-close{border:0;background:#ffffff0d;color:var(--text-muted);border-radius:999px;padding:.42rem .72rem;cursor:pointer;transition:background .18s ease,color .18s ease}.admin-modal-close:hover{background:#ffffff1a;color:var(--text-main)}.admin-modal-body{padding:1.25rem;overflow-y:auto;flex:1}.admin-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;border-top:1px solid rgba(224,180,106,.14);background:#00000024}.admin-warn{margin-top:.65rem;color:#f0c09f;font-size:.84rem}.form-row{margin-bottom:1rem}.form-row>label{display:block;margin-bottom:.45rem;color:#f4dfb8;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.form-row input[type=text],.form-row input[type=email],.form-row select{box-sizing:border-box;width:100%;min-height:46px;padding:.78rem .9rem;border-radius:16px;border:1px solid rgba(224,180,106,.2);background:#ffffff0f;color:#f7f2ec;font-size:.95rem;font-family:inherit;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.form-row input[type=text]:focus,.form-row input[type=email]:focus,.form-row select:focus{outline:none;border-color:#e0b46a6b;background:#ffffff14;box-shadow:0 0 0 3px #d99e491a}.form-row input:disabled,.form-row select:disabled{opacity:.6;cursor:not-allowed}.form-hint{display:block;margin-top:.4rem;color:#cbbcae;font-size:.8rem;font-style:italic}.form-hint-warn{color:#ffb347;font-style:normal;font-weight:500}.module-access-grid{box-sizing:border-box;display:flex;flex-direction:column;gap:.75rem;padding:1rem}.module-row{display:grid;grid-template-columns:120px 1fr;gap:.75rem;align-items:start;padding:.5rem 0;border-bottom:1px solid rgba(255,200,150,.08)}.module-row:last-child{border-bottom:none}.module-name{text-transform:capitalize;color:var(--text-main);font-size:.94rem;font-weight:500;padding-top:.45rem}.role-pill-group{display:flex;flex-wrap:wrap;gap:.55rem}.role-pill-group-module{gap:.45rem;align-items:center}.role-pill-button{border:1px solid transparent;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease;opacity:.72}.role-pill-button:hover{transform:translateY(-1px);opacity:.92}.role-pill-button.is-selected{opacity:1;box-shadow:0 0 0 1px #ffffff1f,0 8px 18px #0000003d;filter:brightness(1.18) saturate(1.08)}.role-pill-button:not(.is-selected){background:#ffffff0d;border-color:#ffc89629;color:var(--text-muted)}@media(max-width:860px){.admin-header{flex-direction:column;align-items:stretch}.admin-header-left{justify-content:space-between}.admin-header-title{position:static;transform:none;pointer-events:auto;order:2}.admin-header-right{margin-left:0;justify-content:flex-end;order:3}}@media(max-width:640px){.admin-users-page{padding:1.25rem .95rem}.admin-table-wrap{overflow-x:auto}.admin-table{min-width:760px}.admin-modal-body,.admin-modal-header,.admin-modal-footer{padding-left:1rem;padding-right:1rem}.module-row{grid-template-columns:1fr}.admin-header-left{align-items:center}.admin-header-utility{flex-wrap:wrap}}.admin-action-suspend:hover:not(:disabled){border-color:#ff444480;color:#f88}.admin-action-hard-delete{border-color:#f449!important;color:#f66!important}.admin-action-hard-delete:hover:not(:disabled){background:#ff44441f!important;border-color:#f44!important;color:#f44!important}.btn-danger-strong{background:#f44;color:#fff;border:none;border-radius:6px;padding:8px 16px;cursor:pointer;font-weight:700}.btn-danger-strong:hover:not(:disabled){background:#f22}.btn-danger-strong:disabled{opacity:.6;cursor:not-allowed}.admin-warn-strong{color:#f44;font-weight:600}:root{--bg-warm-dark: #15100f;--accent-burgundy: #8b2b3b;--accent-gold: #e0b46a;--text-main: #f7f2ec;--text-muted: #d0c3b5;--text-dim: #8a7a6e;--glass-bg: rgba(255, 255, 255, .06);--glass-border: rgba(255, 200, 150, .2)}.al-page{min-height:100vh;padding:2.5rem clamp(1.5rem,4vw,4rem);color:var(--text-main);background:radial-gradient(circle at top left,#3b241a,#120c0a 45%,#050304)}.al-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem}.al-filter-group{display:flex;gap:.5rem;flex-wrap:wrap}.al-preset-btn{padding:.45rem 1rem;border-radius:999px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-muted);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .18s,border-color .18s,color .18s}.al-preset-btn:hover{background:#ffffff1a;color:var(--text-main)}.al-preset-active{background:#e0b46a24;border-color:var(--accent-gold);color:var(--accent-gold)}.al-custom-dates{display:flex;align-items:center;gap:.5rem}.al-date-input{padding:.45rem .75rem;border-radius:12px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-main);font-family:inherit;font-size:.88rem}.al-date-input:focus{outline:none;border-color:var(--accent-gold)}.al-date-sep{color:var(--text-dim)}.al-filter-selects{display:flex;gap:.5rem}.al-select{padding:.45rem .85rem;border-radius:12px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-main);font-family:inherit;font-size:.88rem;cursor:pointer}.al-select:focus{outline:none;border-color:var(--accent-gold)}.al-search-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.al-search-input{flex:1;padding:.7rem 1.1rem;border-radius:999px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-main);font-family:inherit;font-size:.92rem;transition:border-color .18s,background .18s}.al-search-input:focus{outline:none;border-color:var(--accent-gold);background:#ffffff17}.al-search-count{font-size:.85rem;color:var(--text-dim);white-space:nowrap}.al-clear-search{background:transparent;border:none;color:var(--text-dim);font-size:1rem;cursor:pointer;padding:.25rem .5rem;border-radius:50%;transition:color .15s;line-height:1}.al-clear-search:hover{color:var(--text-main)}.al-error{margin-bottom:1.25rem;padding:.95rem 1rem;border-radius:18px;border:1px solid rgba(194,74,74,.32);background:#70161e4d;color:#ffb8b8}.al-loading,.al-empty{padding:2.5rem 1.5rem;text-align:center;color:var(--text-muted);font-size:.96rem}.al-table-wrap{border-radius:16px;border:1px solid var(--glass-border);background:#32231df5;overflow:hidden;box-shadow:0 12px 32px #00000080;margin-bottom:1.25rem}.al-table{width:100%;border-collapse:collapse;font-size:.92rem;table-layout:fixed}.al-table thead{background:#00000040}.al-table th{padding:1rem 1.1rem;text-align:left;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-gold);border-bottom:1px solid var(--glass-border)}.al-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .18s}.al-sortable:hover{color:var(--text-main)}.al-sortable span{display:inline-block;margin-left:.3rem;color:var(--text-muted);font-size:.72rem}.al-col-when{width:20%}.al-col-who{width:33%}.al-col-op{width:14%}.al-col-table{width:28%}.al-col-expand{width:5%}.al-table th.al-col-op,.al-table th.al-col-expand{text-align:center}.al-table td{padding:.875rem 1.1rem;color:var(--text-main);border-bottom:1px solid rgba(255,200,150,.06);vertical-align:middle}.al-row{cursor:pointer;transition:background .15s}.al-row:hover,.al-row-open{background:#e0b46a12}.al-table tbody tr:last-child td{border-bottom:none}.al-cell-when{white-space:nowrap;color:var(--text-muted);font-size:.88rem}.al-cell-table{font-weight:500}.al-cell-op{vertical-align:middle}.al-cell-op .al-op-badge{display:block;margin:0 auto;width:fit-content}.al-cell-expand{text-align:center;color:var(--text-dim);font-size:.7rem}.al-op-badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .7rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.op-badge-insert{background:#5eba8424;border:1px solid rgba(124,220,164,.3);color:#cbf6da}.op-badge-update{background:#e0b46a24;border:1px solid rgba(245,208,140,.34);color:var(--accent-gold)}.op-badge-delete{background:#78162247;border:1px solid rgba(212,96,96,.28);color:#ffb8b8}.al-cell-who{display:flex;flex-direction:column;gap:.2rem}.al-friendly{font-weight:500}.al-clerk-id{font-size:.75rem;color:var(--text-dim);font-family:monospace}.al-detail-row td{padding:0;border-bottom:1px solid rgba(255,200,150,.1)}.al-detail{padding:1rem 1.5rem 1.25rem;background:#00000038}.al-detail-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:baseline;margin-bottom:.9rem}.al-detail-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-gold)}.al-detail-val{font-size:.85rem;color:var(--text-muted)}.al-diff-table{width:100%;border-collapse:collapse;font-size:.84rem}.al-diff-table th{padding:.4rem .75rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);text-align:left;border-bottom:1px solid rgba(255,200,150,.1)}.al-diff-table td{padding:.35rem .75rem;border-bottom:1px solid rgba(255,200,150,.04);color:var(--text-muted);vertical-align:top;word-break:break-all}.al-diff-key{font-weight:600;color:var(--text-main);width:180px;font-family:monospace;font-size:.82rem}.al-diff-changed .al-diff-old{color:#ffb8b8;text-decoration:line-through;opacity:.8}.al-diff-changed .al-diff-new{color:#cbf6da}.al-diff-empty{color:var(--text-dim);font-style:italic}.al-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 0}.al-page-btn{padding:.55rem 1.1rem;border-radius:999px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-main);font-family:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .18s,border-color .18s}.al-page-btn:hover:not(:disabled){background:#ffffff1a;border-color:var(--accent-gold)}.al-page-btn:disabled{opacity:.4;cursor:not-allowed}.al-page-btn-active{background:#e0b46a2e;border-color:var(--accent-gold);color:var(--accent-gold);font-weight:700;cursor:default;pointer-events:none}.al-page-ellipsis{font-size:.88rem;color:var(--text-dim);padding:0 .2rem;-webkit-user-select:none;user-select:none}@media(max-width:860px){.al-header{flex-direction:column;align-items:stretch}.al-header-title{position:static;transform:none;pointer-events:auto;text-align:center}.al-header-right{justify-content:flex-end}}@media(max-width:640px){.al-page{padding:1.25rem .95rem}.al-table-wrap{overflow-x:auto}.al-table{min-width:640px}.al-filters{gap:.6rem}}@media(max-width:640px){.add-cellar-item-form,.add-cellar-item-header,.edit-cellar-form,.edit-cellar-header,.supplier-form,.supplier-page-header,.section-anchor-nav,.unsaved-banner{padding-left:16px!important;padding-right:16px!important}.cl-header,.sl-header,.storage-header,.consumption-header,.reports-header,.page-header{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;align-items:center}.cl-header h1,.sl-header h1,.storage-header h1,.consumption-header h1,.reports-header h1,.page-header h1{position:static!important;transform:none!important;left:auto!important;flex:0 0 100%!important;text-align:center;font-size:1.4rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:-1;pointer-events:auto;margin:0}.btn-back{flex-shrink:0;font-size:12px;padding:6px 12px}.cl-header-right,.sl-header-right,.header-actions,.header-right{margin-left:0!important;flex:1 1 auto;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.btn-add,.btn-new{padding:.5rem .9rem!important;font-size:.82rem!important}.view-toggle-btn{padding:.45rem .7rem!important;font-size:.78rem!important}.form-row-half,.form-row-split,.form-row-triple,.form-row-quad,.form-row-status,.ai-providers-grid,.purchase-summary,.detail-container{grid-template-columns:1fr!important}.cl-table-header,.cl-table-row,.sl-table-header,.sl-table-row{display:none!important}.cl-cards-grid,.sl-cards-grid{grid-template-columns:1fr!important}.rack-grid{grid-template-columns:repeat(auto-fill,minmax(38px,1fr))!important;gap:4px!important}.rack-cell{min-height:38px!important;font-size:10px!important}.post-save-card{padding:24px 20px!important}.anchor-pill{font-size:11px!important;padding:4px 10px!important}.btn-submit{width:100%!important;padding-left:16px!important;padding-right:16px!important;box-sizing:border-box}.confirm-modal,.log-modal,.buy-more-modal{width:92vw!important;max-width:none!important;padding:24px 20px!important}}@media(max-width:900px){.detail-container{grid-template-columns:1fr!important}}@media(max-width:640px){.detail-hero{grid-template-columns:1fr!important;grid-template-rows:auto auto!important;padding:24px 16px!important;gap:20px!important}.detail-hero:has(.detail-hero-map){grid-template-columns:1fr!important}.detail-hero-photo{display:flex;justify-content:center;min-height:auto!important}.bottle-photo,.bottle-photo-placeholder{width:130px!important;height:200px!important}.detail-hero-map{width:100%!important}.detail-body{grid-template-columns:1fr!important;padding:16px!important;gap:12px!important}.detail-hero-actions,.detail-actions,.detail-action-bar,.hero-actions{flex-wrap:wrap!important;gap:8px!important;padding:12px 16px!important}.info-grid,.detail-fields,.detail-quick,.detail-info-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.detail-meta-row,.detail-badges{flex-wrap:wrap!important;gap:6px!important}}@media(max-width:640px){.rack-header{flex-wrap:wrap!important;gap:.5rem!important;margin-bottom:1rem!important}.rack-title{font-size:1.3rem!important}.rack-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.rack-grid-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding-bottom:12px!important}.rack-grid{gap:3px!important;padding:10px!important}.rack-cell{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;font-size:9px!important;border-radius:6px!important}.slot-detail-panel{position:relative!important;right:auto!important;top:auto!important;transform:none!important;width:100%!important;margin-top:16px!important;border-radius:16px!important}.rack-legend{flex-wrap:wrap!important;gap:6px!important}}
