:root{--color-primary: #111;--color-accent: #b08d57;--color-background: #f8f7f4;--color-surface: #FFFFFF;--color-foreground: #111;--color-muted: #f8f7f4;--color-muted-fg: #6e6e6e;--color-border: color-mix(in srgb, var(--color-gold-light) 30%, transparent);--color-destructive: #DC2626;--color-on-primary: #FFFFFF;--font-heading: "Playfair Display", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08);--shadow-xl: 0 16px 40px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--max-width: 960px;--nav-height: 56px;--color-offwhite: #f8f7f4;--color-black: #111;--color-gold: #b08d57;--color-gold-light: #c9a96e;--color-gold-dark: #8b6a3d;--color-gray: #6e6e6e;--color-gray-light: #a8a6a0;--color-espresso: #3a2a22;--font-accent: "Cormorant Garamond", "Playfair Display", Georgia, serif}[data-theme=dark]{--color-primary: #141414;--color-primary-hover: #92400E;--color-secondary: #D97706;--color-accent: #F59E0B;--color-background: #1C1917;--color-surface: #292524;--color-foreground: #F5F5F4;--color-muted: #3F3A36;--color-muted-fg: #A8A29E;--color-border: #44403C;--color-destructive: #F87171;--color-on-primary: #FFFFFF;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3);--shadow-xl: 0 16px 40px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--color-foreground);background:var(--color-background);transition:background var(--transition-base),color var(--transition-base);padding:10px}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.login-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--nav-height) - 80px);padding:2rem 1rem}.login-card{width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-md)}.login-title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;margin:0 0 .35rem}.login-desc{font-size:var(--text-sm);color:var(--color-muted-fg);margin:0 0 1.25rem}.login-error{font-size:var(--text-sm);color:var(--color-destructive);background:color-mix(in srgb,var(--color-destructive) 10%,transparent);padding:.5rem .75rem;border-radius:var(--radius-md);margin-bottom:1rem}.login-form{display:flex;flex-direction:column;gap:1rem}.checkbox-field{display:flex;align-items:center;gap:.5rem;font-size:var(--text-sm);color:var(--color-muted-fg);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-field input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-gold);cursor:pointer}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app-main{max-width:var(--max-width);margin:0 auto;padding:2rem 1rem}.data-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.data-table th,.data-table td{padding:.6rem .75rem;text-align:left}.data-table th{background:var(--color-muted);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted-fg)}.data-table tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}.data-table tr:hover td{background:var(--color-muted)}.rating-cell{font-size:.95rem}.form{display:flex;flex-direction:column;gap:1rem;max-width:480px;background:var(--color-surface);border:1px solid var(--color-border);padding:1.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;font-weight:500;color:var(--color-foreground)}.field-row{display:flex;gap:1rem}.field-row .field{flex:1}.input{display:block;width:100%;padding:.5rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.95rem;font-family:inherit;color:var(--color-foreground);background:var(--color-surface);box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input:focus{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-gold) 15%,transparent)}.input::placeholder{color:var(--color-gray-light)}textarea.input{resize:vertical;min-height:3rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.2rem;background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);text-decoration:none;user-select:none;-webkit-user-select:none}.btn:hover{background:color-mix(in srgb,var(--color-primary) 85%,transparent);box-shadow:var(--shadow-sm);text-decoration:none}[data-theme=dark] .btn{border:1px solid var(--color-gold-dark)}[data-theme=dark] .btn:hover{border-color:var(--color-gold)}.btn:active{transform:scale(.97)}.btn:disabled{background:var(--color-muted-fg);cursor:not-allowed;transform:none;box-shadow:none}.state-msg{padding:3rem 2rem;text-align:center;color:var(--color-muted-fg);font-size:var(--text-sm)}.state-error{padding:1rem;color:var(--color-destructive);background:color-mix(in srgb,var(--color-destructive) 8%,transparent);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-destructive) 20%,transparent)}.empty-state{text-align:center;padding:3rem 1rem}.empty-state p{margin:.5rem 0 1rem;color:var(--color-muted-fg)}.back-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--color-muted-fg);text-decoration:none;padding:.5rem 0;margin-bottom:.5rem;transition:color var(--transition-base);min-height:44px}.back-link:hover{color:var(--color-gold)}.back-link svg{flex-shrink:0}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.detail-header h2{margin:0 .1rem}.detail-actions{display:flex;gap:.5rem}@media(max-width:640px){.detail-header{flex-direction:column;align-items:stretch;gap:1rem}.detail-actions{flex-wrap:wrap}.detail-actions .btn{flex:1 1 0;min-width:0;font-size:.85rem;padding:.6rem .75rem}}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem;background:var(--color-surface);border:1px solid var(--color-border);padding:1.25rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}@media(max-width:640px){.detail-grid{grid-template-columns:1fr;gap:.75rem}}.detail-field{display:flex;flex-direction:column}.detail-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted-fg)}.detail-value{font-size:1rem;color:var(--color-foreground)}.detail-notes{background:var(--color-surface);border:1px solid var(--color-border);padding:1.25rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.detail-notes h3{margin-bottom:.5rem}.notes-section{margin-top:1.5rem}.empty-note{color:var(--color-muted-fg);font-style:italic}.note-cards{display:flex;flex-direction:column;gap:.75rem}.note-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.75rem 1rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.note-card:hover{border-color:var(--color-gold-light);box-shadow:var(--shadow-md)}.note-attributes{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:.4rem;font-size:.9rem}.note-text{margin:0 0 .25rem;color:var(--color-foreground);font-size:.9rem}.note-rating{font-size:.9rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--color-black) 40%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.modal{max-width:440px;width:90%}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.confirm-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;text-align:center}.confirm-icon{display:flex;justify-content:center;margin-bottom:.75rem;color:var(--color-destructive)}.confirm-title{font-size:1.1rem;margin:0 0 .5rem;color:var(--color-foreground)}.confirm-message{font-size:.9rem;color:var(--color-muted-fg);margin:0 0 .25rem;line-height:1.5}.confirm-details{font-size:.85rem;color:var(--color-destructive);font-weight:500;margin:.5rem 0 0;padding:.5rem;background:color-mix(in srgb,var(--color-destructive) 8%,transparent);border-radius:var(--radius-md)}.confirm-dialog .modal-actions{margin-top:1.25rem}.btn-secondary{background:var(--color-muted);color:var(--color-foreground)}.btn-secondary:hover{background:var(--color-border)}.btn-danger{background:var(--color-destructive)}.btn-danger:hover{background:var(--color-destructive);filter:brightness(.85)}.btn-small{padding:.3rem .65rem;font-size:.82rem}.actions-cell{display:flex;gap:.4rem}.note-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem;background:var(--color-muted);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.note-form-row{display:flex;gap:.75rem}.note-form-row .field{flex:1}.note-form-wrapper{margin-top:1rem}.note-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.4rem}.note-footer-actions,.note-form-actions{display:flex;gap:.5rem}.note-rating-select{max-width:200px}.placeholder-page{padding:3rem 1rem;text-align:center;color:var(--color-muted-fg)}.layout{display:flex;flex-direction:column;min-height:100vh}.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--color-background) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);transition:background var(--transition-base)}.nav-inner{display:flex;align-items:center;gap:var(--space-6);max-width:var(--max-width);margin:0 auto;padding:var(--space-3) var(--space-4);min-height:var(--nav-height);position:relative}.nav-logo{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;color:var(--color-black);text-decoration:none;margin-right:auto;transition:color var(--transition-fast)}.nav-logo:hover{color:var(--color-gold);text-decoration:none}.nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;width:2rem;height:2rem;padding:.25rem;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;z-index:60}.nav-hamburger-line{display:block;width:100%;height:1.5px;background:var(--color-foreground);border-radius:1px;transition:transform var(--transition-fast),opacity var(--transition-fast)}.nav-hamburger-line.open:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.nav-hamburger-line.open:nth-child(2){opacity:0}.nav-hamburger-line.open:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.nav-menu{display:flex;align-items:center;gap:var(--space-6);flex:1}.nav-links{display:flex;gap:var(--space-4);align-items:center}.nav-link{font-size:var(--text-sm);font-weight:500;color:var(--color-gray);text-decoration:none;transition:color var(--transition-fast);padding:var(--space-1) 0;position:relative}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--color-gold);transition:width var(--transition-base);border-radius:1px}.nav-link:hover{color:var(--color-gold);text-decoration:none}.nav-link:hover:after{width:100%}.nav-actions{display:flex;align-items:center;gap:var(--space-3)}.nav-user-email{font-size:var(--text-sm);color:var(--color-muted-fg);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-logout{display:inline-flex;align-items:center;font-size:var(--text-sm);color:var(--color-gray);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.nav-logout:hover{background:color-mix(in srgb,var(--color-destructive) 10%,transparent);color:var(--color-destructive)}.nav-login-link{font-weight:600;color:var(--color-gold)!important}.nav-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;line-height:1;color:var(--color-muted-fg);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.nav-theme-toggle:hover{background:var(--color-muted);color:var(--color-gold);border-color:var(--color-gold-light);transform:scale(1.05)}.nav-theme-toggle:active{transform:scale(.95)}@media(max-width:640px){.nav-hamburger{display:flex}.nav-menu{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:color-mix(in srgb,var(--color-background) 98%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);padding:0;max-height:0;overflow:hidden;transition:max-height var(--transition-base),padding var(--transition-base)}.nav-menu--open{max-height:400px;padding:var(--space-3) var(--space-4)}.nav-links{flex-direction:column;align-items:stretch;gap:var(--space-1)}.nav-link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md)}.nav-link:after{display:none}.nav-link:hover{background:var(--color-muted)}.nav-actions{flex-wrap:wrap;padding-top:var(--space-3);border-top:1px solid var(--color-border);margin-top:var(--space-2)}.nav-user-email{max-width:100%}.nav-login-link{padding:var(--space-2) var(--space-3)!important;border-radius:var(--radius-md)}.nav-login-link:hover{background:color-mix(in srgb,var(--color-gold) 10%,transparent)}}.main{flex:1}.footer{border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 50%,var(--color-background));padding:var(--space-5) var(--space-4);margin-top:auto;transition:background var(--transition-base)}.footer-inner{display:flex;justify-content:space-between;align-items:center;max-width:var(--max-width);margin:0 auto;font-size:var(--text-sm);color:var(--color-gray)}.card-lift{transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.card-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.landing{min-height:100%}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:5rem 1rem 3.5rem;background:var(--color-offwhite);gap:var(--space-6);position:relative;overflow:hidden;transition:background var(--transition-base)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--color-gold-light) 8%,transparent),transparent 70%);pointer-events:none}.hero-content{max-width:640px;position:relative}.hero-title{font-family:var(--font-heading);font-size:var(--text-4xl);font-weight:600;color:var(--color-black);margin-bottom:var(--space-3);line-height:1.1;letter-spacing:.02em;transition:color var(--transition-base)}.hero-title:after{content:"";display:block;width:48px;height:1.5px;background:var(--color-gold);margin:var(--space-4) auto 0;border-radius:1px}.hero-subtitle{font-family:var(--font-accent);font-style:italic;font-size:var(--text-lg);color:var(--color-gray);line-height:1.7;max-width:480px;margin:0 auto;transition:color var(--transition-base)}.hero-visual{display:none}@media(max-width:640px){.hero{padding:3rem 1rem 2.5rem}.hero-title{font-size:var(--text-2xl)}.hero-title:after{margin-top:var(--space-3)}.hero-subtitle{font-size:var(--text-base)}}.cta-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5);max-width:960px;margin:0 auto;padding:2rem 1rem 4rem}@media(min-width:640px){.cta-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.cta-grid{grid-template-columns:repeat(3,1fr)}}.cta-card{display:flex;flex-direction:column;padding:var(--space-6);background:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-gold-light) 30%,transparent);border-radius:var(--radius-lg);text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);cursor:default;transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.cta-card:hover{border-color:var(--color-gold);box-shadow:var(--shadow-md);transform:translateY(-3px)}a.cta-card{cursor:pointer}a.cta-card:hover{border-color:var(--color-gold);box-shadow:var(--shadow-md);transform:translateY(-3px)}.cta-card--placeholder{opacity:.7}.cta-icon{margin-bottom:var(--space-3);color:var(--color-gold)}.cta-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;color:var(--color-foreground);margin-bottom:var(--space-2)}.cta-desc{font-size:var(--text-sm);color:var(--color-muted-fg);line-height:1.6;flex:1}.cta-badge{display:inline-block;margin-top:var(--space-3);padding:.2rem .6rem;font-size:var(--text-xs);font-weight:600;color:var(--color-gold-dark);background:color-mix(in srgb,var(--color-gold-light) 20%,transparent);border-radius:var(--radius-sm);align-self:flex-start}.editorial-title{font-family:var(--font-heading);font-weight:600;line-height:1.1;letter-spacing:.02em}.editorial-body{font-family:var(--font-accent);font-style:italic;color:var(--color-gray);line-height:1.7}.eyebrow{text-transform:uppercase;color:var(--color-gold-dark);letter-spacing:.25em;font-size:.75rem;font-weight:600}.accent-line{width:48px;height:1px;background:var(--color-gold);border:none}.divider-botanical{height:1px;background:linear-gradient(90deg,transparent,var(--color-gold),transparent);border:none}.hover-gold{transition:color .2s ease}.hover-gold:hover{color:var(--color-gold)}.stats-bento{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem}@media(max-width:480px){.stats-bento{grid-template-columns:1fr}}.stat-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.stat-card:hover{border-color:var(--color-gold-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{color:var(--color-gold);opacity:.8}.stat-value{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;color:var(--color-foreground);line-height:1}.stat-label{font-size:var(--text-xs);font-weight:500;color:var(--color-muted-fg);text-transform:uppercase;letter-spacing:.05em}.bean-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.bean-card{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.bean-card:hover{border-color:var(--color-gold);box-shadow:var(--shadow-md);transform:translateY(-3px);text-decoration:none}.bean-card:active{transform:translateY(-1px)}.bean-card-name{font-size:1.15rem;font-weight:600;color:var(--color-foreground);margin:0}.bean-card-roaster{font-size:var(--text-sm);font-style:italic;color:var(--color-muted-fg);margin:-.25rem 0 0}.bean-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.5rem;font-size:.85rem;color:var(--color-muted-fg)}.bean-card-origin{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roast-badge{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;padding:.2rem .6rem .2rem .5rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-muted);font-size:var(--text-xs);font-weight:600;color:var(--color-muted-fg);white-space:nowrap}.roast-badge:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--roast-dot-color, var(--color-gold));flex-shrink:0}.roast-badge--light{--roast-dot-color: var(--color-gold-light)}.roast-badge--medium{--roast-dot-color: var(--color-gold)}.roast-badge--dark{--roast-dot-color: var(--color-espresso)}.bean-subtitle{font-size:.9rem;color:var(--color-muted-fg);margin-top:.25rem}.method-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.method-tag{display:inline-block;padding:.2rem .6rem;font-size:.82rem;font-weight:500;background:var(--color-muted);color:var(--color-foreground);border-radius:var(--radius-sm)}.brew-history-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;padding:0;margin:1rem 0}.brew-history-item{list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.brew-history-item:hover{border-color:var(--color-gold-light);box-shadow:var(--shadow-md)}.brew-history-link{display:flex;align-items:stretch;gap:.75rem;padding:.85rem 1rem;text-decoration:none;color:inherit}.brew-history-main{flex:1;min-width:0}.brew-history-top{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.brew-history-method{font-weight:600;font-size:1rem;color:var(--color-foreground)}.brew-history-date{color:var(--color-muted-fg);font-size:.8rem;margin-left:auto;white-space:nowrap}.brew-history-params{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.35rem .75rem;font-size:.82rem}.brew-param{display:flex;flex-direction:column;gap:.05rem}.brew-param-label{color:var(--color-muted-fg);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.brew-param-value{color:var(--color-foreground);font-weight:500}.brew-param--rating .brew-param-value{color:var(--color-gold)}.brew-history-chevron{color:var(--color-muted);flex-shrink:0;align-self:center;transition:color var(--transition-base),transform var(--transition-base)}.brew-history-item:hover .brew-history-chevron{color:var(--color-gold);transform:translate(2px)}.brew-history-notes{font-size:.82rem;color:var(--color-muted-fg);margin:.5rem 0 0;padding-top:.4rem;border-top:1px solid var(--color-border);line-height:1.4}.tasting-notes-summary{font-size:.82rem;color:var(--color-muted-fg);font-style:italic;margin:.35rem 0 0}@media(max-width:640px){.brew-history-link{padding:.75rem}.brew-history-params{grid-template-columns:1fr 1fr;gap:.3rem .5rem}.brew-history-method{font-size:.95rem}}.recipe-method-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;max-width:1100px;margin:2rem auto;padding:0 1.5rem}.recipe-method-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;color:var(--color-foreground);box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.recipe-method-card:hover{border-color:var(--color-gold);box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}.recipe-method-card svg{width:48px;height:48px}.recipe-method-card-label{font-size:.9rem;font-weight:500;text-align:center}.recipe-list{max-width:800px;margin:0 auto;padding:1.5rem}.recipe-list-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.recipe-list-header h2{margin:0}.recipe-list-header .back-link{font-size:.9rem;color:var(--color-gold);text-decoration:none}.recipe-list-header .back-link:hover{text-decoration:underline}.recipe-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:.75rem;text-decoration:none;color:var(--color-foreground);box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.recipe-card:hover{border-color:var(--color-gold);box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}.recipe-card-name{font-size:1.05rem;font-weight:600;margin:0 0 .3rem}.recipe-card-meta{display:flex;flex-wrap:wrap;gap:.4rem .75rem;font-size:.85rem;color:var(--color-muted-fg)}.recipe-card-params{display:flex;flex-wrap:wrap;gap:.3rem .75rem;margin-top:.4rem;font-size:.85rem}.recipe-param{white-space:nowrap}.recipe-preparation{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.recipe-preparation h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted-fg);margin:0 0 .5rem}.recipe-preparation p{margin:0;line-height:1.6}.recipe-detail{max-width:800px;margin:0 auto;padding:1.5rem}.recipe-detail-header{margin-bottom:1.5rem}.recipe-detail-header h2{margin:0 0 .25rem}.recipe-detail-header .recipe-objective{color:var(--color-muted-fg);font-style:italic;margin:0}.recipe-detail .back-link{display:inline-block;font-size:.9rem;color:var(--color-gold);text-decoration:none;margin-top:2rem}.recipe-detail .back-link:hover{text-decoration:underline}.recipe-param-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:1.5rem}.recipe-param-field{display:flex;flex-direction:column;gap:.15rem}.recipe-param-label{font-size:.8rem;color:var(--color-muted-fg);text-transform:uppercase;letter-spacing:.05em}.recipe-param-value{font-size:.95rem;font-weight:500}.recipe-steps{margin-bottom:1.5rem}.recipe-steps h3{margin-bottom:1rem}.recipe-step-card{display:flex;gap:.75rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:.5rem;transition:box-shadow var(--transition-base),border-color var(--transition-base)}.recipe-step-card:hover{border-color:var(--color-gold-light);box-shadow:var(--shadow-md)}.recipe-step-number{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-gold);color:#fff;border-radius:50%;font-size:.8rem;font-weight:600}.recipe-step-text{flex:1}.recipe-step-instruction{margin:0 0 .25rem;font-size:.95rem}.recipe-step-water{font-size:.8rem;color:var(--color-muted-fg)}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:380px;width:100%}.toast{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);pointer-events:auto;font-size:var(--text-sm);line-height:1.4;color:var(--color-foreground)}.toast-success{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));border-color:color-mix(in srgb,var(--color-primary) 30%,transparent)}.toast-success .toast-icon{color:var(--color-primary)}.toast-error{background:color-mix(in srgb,var(--color-destructive) 8%,var(--color-surface));border-color:color-mix(in srgb,var(--color-destructive) 30%,transparent)}.toast-error .toast-icon{color:var(--color-destructive)}.toast-info{background:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface));border-color:color-mix(in srgb,var(--color-primary) 20%,transparent)}.toast-info .toast-icon{color:var(--color-primary)}.toast-icon{flex-shrink:0;display:flex;align-items:center}.toast-message{flex:1}@keyframes slideInRight{0%{transform:translate(120%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOut{0%{transform:translate(0);opacity:1}to{transform:translate(120%);opacity:0}}.toast-enter{animation:slideInRight .25s ease-out forwards}.toast-exit{animation:fadeOut .2s ease-in forwards}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{display:inline-block;background:linear-gradient(90deg,var(--color-muted) 25%,color-mix(in srgb,var(--color-muted) 60%,var(--color-border)) 50%,var(--color-muted) 75%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md);line-height:1}.skeleton-rounded-sm{border-radius:var(--radius-sm)}.skeleton-rounded-md{border-radius:var(--radius-md)}.skeleton-rounded-lg{border-radius:var(--radius-lg)}.skeleton-rounded-xl{border-radius:var(--radius-xl)}.skeleton-rounded-full{border-radius:9999px}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--color-muted)}.toast-enter,.toast-exit{animation:none}.toast-enter{opacity:1}.toast-exit{opacity:0}}.recipe-profile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.recipe-profile h3{margin:0 0 .3rem}.recipe-profile p{margin:0;color:var(--color-muted-fg);font-size:.9rem}
