.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:38px;padding:var(--spacing-sm) var(--spacing-md);font-family:inherit;font-size:.9rem;font-weight:600;line-height:1;text-align:center;text-decoration:none;white-space:nowrap;border:2px solid var(--color-primary);border-radius:var(--border-radius-lg);background:var(--color-primary);color:var(--text-inverse, white);cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-sm)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md);background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;background:var(--color-bg-tertiary);border-color:var(--color-border);color:var(--color-text-secondary)}.btn svg,.btn-icon svg{color:currentColor;stroke:currentColor;fill:currentColor}.btn[data-variant=secondary],.btn[data-variant=outline],.btn[data-variant=ghost]{background:var(--color-bg-tertiary);border-color:var(--color-border);color:var(--color-text-primary)}.btn[data-variant=secondary]:hover:not(:disabled),.btn[data-variant=outline]:hover:not(:disabled),.btn[data-variant=ghost]:hover:not(:disabled){background:var(--color-border-light);border-color:var(--color-border-dark)}.btn[data-variant=danger]{background:var(--color-error);border-color:var(--color-error);color:#fff}.btn[data-variant=danger]:hover:not(:disabled){background:var(--color-error-dark);border-color:var(--color-error-dark)}.btn[data-size=sm],.btn[data-size=xs]{min-height:32px;padding:var(--spacing-xs) var(--spacing-sm);font-size:.85rem;border-radius:var(--border-radius-md)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;font-size:1rem;line-height:1;border:2px solid var(--color-primary);border-radius:var(--border-radius-full);background:var(--color-primary);color:var(--text-inverse, white);cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-sm)}.btn-icon:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md);background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-icon[data-variant=secondary]{background:var(--color-bg-tertiary);border-color:var(--color-border);color:var(--color-text-primary)}.btn-icon[data-variant=secondary]:hover:not(:disabled){background:var(--color-border-light);border-color:var(--color-border-dark)}.btn-icon[data-variant=danger]{background:var(--color-error);border-color:var(--color-error)}.btn-icon[data-variant=danger]:hover:not(:disabled){background:var(--color-error-dark);border-color:var(--color-error-dark)}.btn-icon[data-size=sm],.btn-icon[data-size=xs]{width:32px;height:32px;font-size:.875rem}.btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--border-radius-full);animation:btn-spin .75s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#000000a6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999!important;padding:var(--spacing-lg);opacity:1;visibility:visible;animation:modal-overlay-fade-in .25s ease-out}@keyframes modal-overlay-fade-in{0%{opacity:0}to{opacity:1}}.modal-overlay[data-active=false]{opacity:0;visibility:hidden;animation:none;transition:opacity .2s ease,visibility .2s ease}.modal-content{background:var(--color-bg-primary);border-radius:16px;width:100%;max-width:640px;max-height:calc(100vh - 3rem);overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000059,0 0 0 1px #0000000d;animation:modal-content-slide-up .35s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}@keyframes modal-content-slide-up{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-overlay[data-active=false] .modal-content{animation:none;transform:translateY(-10px) scale(.98);opacity:0;transition:transform .2s ease,opacity .2s ease}.modal-content[data-size=sm]{max-width:480px}.modal-content[data-size=md],.modal-content:not([data-size]){max-width:640px}.modal-content[data-size=lg]{max-width:800px}.modal-content[data-size=xl]{max-width:1024px}.modal-content[data-size=fullscreen]{width:calc(100vw - 3rem);height:calc(100vh - 3rem);max-width:none;max-height:none}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 1.75rem;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-light);flex-shrink:0}.modal-header h2,.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary);line-height:1.4;letter-spacing:-.01em}.modal-header h3{font-size:1.125rem}.modal-close{background:transparent;border:none;font-size:1.75rem;font-weight:300;color:var(--color-text-secondary);cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-lg);line-height:1;transition:all .2s ease;flex-shrink:0}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-close:active{background:var(--color-border-light);transform:scale(.95)}.modal-close:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px;box-shadow:0 0 0 4px #0369a140}.modal-body{padding:1.75rem;overflow-y:auto;flex:1;color:var(--color-text-secondary);font-size:.9375rem;line-height:1.6}.modal-body>*:first-child{margin-top:0}.modal-body>*:last-child{margin-bottom:0}.modal-body h3{font-size:1.0625rem;font-weight:600;color:var(--color-text-primary);margin:1.5rem 0 .75rem}.modal-body h3:first-child{margin-top:0}.modal-body p{margin:0 0 1rem}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;padding:1.25rem 1.75rem;background:var(--color-bg-secondary);border-top:1px solid var(--color-border-light);flex-shrink:0}.modal-footer .btn,.modal-footer button{margin:0}.modal-footer[data-align=start]{justify-content:flex-start}.modal-footer[data-align=center]{justify-content:center}.modal-footer[data-align=between]{justify-content:space-between}.modal-section{margin-bottom:var(--spacing-lg)}.modal-section:last-child{margin-bottom:0}.modal-section-title{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.875rem;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-bg-tertiary)}.modal-form{display:flex;flex-direction:column;gap:1.25rem}.modal-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem}.modal-loading,.modal-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3.5rem 2rem;text-align:center;gap:1rem}.modal-loading{color:var(--color-text-secondary)}.modal-loading:before{content:"";width:40px;height:40px;border:3px solid var(--color-border-light);border-top-color:var(--color-primary, var(--color-orange));border-radius:var(--border-radius-full);animation:modal-spinner .8s linear infinite}@keyframes modal-spinner{to{transform:rotate(360deg)}}.modal-error{color:var(--color-error)}.modal-error:before{content:"⚠️";font-size:2.5rem;margin-bottom:var(--spacing-sm)}@media(max-width:640px){.modal-overlay{padding:var(--spacing-md);align-items:flex-end}.modal-content{width:100%;max-height:calc(100vh - 2rem);border-radius:16px 16px 0 0;box-shadow:0 -10px 40px #0003,0 0 0 1px #0000000d;animation:modal-content-slide-up-mobile .3s cubic-bezier(.16,1,.3,1)}@keyframes modal-content-slide-up-mobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-content[data-size=sm],.modal-content[data-size=md],.modal-content[data-size=lg],.modal-content[data-size=xl]{max-width:100%}.modal-header,.modal-body{padding:1.25rem}.modal-footer{padding:1rem 1.25rem;flex-direction:column-reverse;gap:.5rem}.modal-footer .btn,.modal-footer button{width:100%}}body.modal-open{overflow:hidden}.modal{composes:modal-content}.add-tank-addition-modal,.inventory-import-modal,.manual-depletion-modal,.batch-detail-modal,.packaging-run-modal,.brew-notes-modal,.delete-brew-session-modal,.cogs-estimate-modal,.depletion-preview-modal{background:var(--color-bg-primary);border-radius:16px;width:100%;max-width:640px;max-height:calc(100vh - 3rem);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000059,0 0 0 1px #0000000d}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--bg-card, var(--color-bg-primary));border:1px solid var(--border-light, var(--gray-200));border-radius:var(--radius-md, 8px);overflow:hidden;font-size:var(--font-size-sm, .875rem);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .05))}.table thead{background:var(--table-header-bg, var(--color-orange))}.table th{padding:.75rem 1rem;text-align:left;font-weight:var(--font-weight-semibold, 600);font-size:var(--font-size-xs, .75rem);text-transform:uppercase;letter-spacing:.05em;color:var(--table-header-color, white);border-bottom:1px solid rgba(255,255,255,.2);white-space:nowrap}.table th:last-child{border-right:none}.table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-light, var(--gray-200));color:var(--text-primary, var(--color-charcoal));text-align:left;vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--table-row-hover-bg, rgba(0, 178, 202, .05))}.table[data-hover=false] tbody tr:hover{background:transparent}.table tbody tr[data-selected=true],.table tbody tr.selected{background:var(--table-row-selected-bg, rgba(251, 209, 162, .3))}.table tbody tr[data-clickable=true],.table tbody tr.clickable{cursor:pointer}.table[data-variant=striped] tbody tr:nth-child(2n){background:var(--table-row-even-bg, var(--gray-50))}.table[data-variant=striped] tbody tr:nth-child(2n):hover{background:var(--table-row-hover-bg, rgba(0, 178, 202, .05))}.table[data-variant=bordered]{border:1px solid var(--border, var(--color-charcoal))}.table[data-variant=bordered] th,.table[data-variant=bordered] td{border:1px solid var(--border-light, var(--gray-200))}.table[data-variant=minimal]{border:none;box-shadow:none;background:transparent}.table[data-variant=minimal] th{background:transparent;color:var(--text-primary, var(--color-charcoal));border-bottom:1px solid var(--border, var(--color-charcoal))}.table[data-variant=minimal] td{border-bottom:1px solid var(--border-light, var(--gray-200))}.table[data-size=compact] th,.table[data-size=compact] td{padding:.5rem .75rem;font-size:var(--font-size-xs, .75rem)}.table[data-size=large] th,.table[data-size=large] td{padding:1rem 1.25rem}.table th[data-align=center],.table td[data-align=center]{text-align:center}.table th[data-align=right],.table td[data-align=right]{text-align:right}.table-container{overflow-x:auto;border-radius:var(--radius-md, 8px);border:1px solid var(--border-light, var(--gray-200))}.table-container .table{border:none;border-radius:0;box-shadow:none}@media(max-width:640px){.table{font-size:var(--font-size-xs, .75rem)}.table th,.table td{padding:.5rem .75rem}.table-container{margin:0 -1rem;border-radius:0;border-left:none;border-right:none}}:root{--color-orange: var(--color-primary);--color-teal-light: var(--color-teal);--color-cyan: var(--color-cyan);--color-blue-dark: var(--color-teal);--color-green-light: var(--color-success-light);--header-bg: var(--color-primary);--app-bg: var(--gray-100);--primary-accent: var(--color-teal);--secondary-accent: var(--color-primary-light);--text-main: var(--color-text-primary);--outline-main: #1a1a1a;--tank-grey: #e5e5e5;--bg-app: var(--app-bg);--bg-navbar: var(--primary-accent);--bg-app-header: var(--header-bg);--bg-button: var(--color-green-light);--bg-button-hover: var(--secondary-accent);--bg-button-secondary: var(--text-main);--bg-button-secondary-hover: var(--color-text-primary);--bg-card: var(--color-bg-primary);--bg-card-alt: var(--gray-50);--bg-table-header: var(--header-bg);--bg-table-body: var(--color-bg-primary);--bg-input: var(--color-bg-primary);--text-navbar: var(--color-bg-primary);--text-button: var(--color-text-primary);--text-table-header: var(--color-bg-primary);--text-table-body: var(--text-main);--text-secondary: var(--color-text-secondary);--text-muted: var(--color-text-tertiary);--page-title-color: var(--text-main);--overview-title-color: var(--primary-accent);--card-title-color: var(--text-main);--bg-button-surface: transparent;--bg-button-active: var(--color-cyan);--bg-nav-item: color-mix(in srgb, var(--color-teal-light), white 30%);--bg-nav-item-hover: color-mix(in srgb, var(--color-teal-light), black 8%);--bg-nav-item-active: color-mix(in srgb, var(--color-teal-light), black 12%);--border-primary: var(--outline-main);--border-secondary: var(--outline-main);--border-table: var(--outline-main);--border-card: var(--outline-main);--border-button-small: var(--outline-main);--table-row-hover-bg: color-mix(in srgb, var(--color-cyan), transparent 90%);--table-row-even-bg: color-mix(in srgb, var(--color-blue-dark), white 98%);--table-row-odd-bg: var(--color-bg-primary);--table-row-selected-bg: color-mix(in srgb, var(--color-peach), transparent 85%);--color-surface-light-1: var(--color-bg-primary);--color-surface-light-2: color-mix(in srgb, var(--color-blue-dark), white 98%);--color-surface-light-3: color-mix(in srgb, var(--color-blue-dark), white 96%);--color-surface-light-4: color-mix(in srgb, var(--color-blue-dark), white 94%);--color-surface-light-5: color-mix(in srgb, var(--color-blue-dark), white 92%);--input-border: var(--outline-main);--input-text: var(--text-main);--focus-ring: var(--primary-accent);--badge-bg: var(--secondary-accent);--badge-text: var(--text-main);--modal-bg: var(--color-bg-primary);--modal-overlay: rgba(29, 78, 137, .6);--stage-scheduled: var(--color-peach);--stage-brewing: var(--color-cyan);--stage-fermentation: var(--color-teal);--stage-conditioning: var(--color-warning);--stage-ready-to-transfer: var(--color-teal-dark);--stage-transfer-clarification: var(--color-secondary);--stage-bright-beer: var(--color-info);--stage-packaging: var(--color-primary);--stage-complete: var(--color-charcoal);--color-border-secondary-light: rgba(255, 155, 92, .3);--color-border-secondary-medium: rgba(255, 155, 92, .5);--color-border-secondary-strong: var(--color-orange);--font-sans: "Orbitron", "Exo 2", "Audiowide", "Electrolize", "Michroma", monospace, sans-serif;--font-display: "Orbitron", "Exo 2", "Audiowide", "Electrolize", "Michroma", monospace, sans-serif;--font-brand: "Orbitron", "Exo 2", "Audiowide", "Electrolize", "Michroma", monospace, sans-serif;--gradient-teal: linear-gradient(135deg, var(--color-teal-light), var(--color-cyan));--gradient-orange: linear-gradient(135deg, var(--color-peach), var(--color-orange));--gradient-hero: linear-gradient( 90deg, var(--color-cyan), var(--color-teal-light) 35%, var(--color-orange) 70% );--gradient-subtle: linear-gradient(155deg, rgba(255, 155, 92, .15), rgba(251, 209, 162, .1));--gradient-card: linear-gradient(145deg, rgba(125, 220, 182, .3), rgba(0, 178, 202, .2))}:root[data-theme=dark]{--color-bg-radial: radial-gradient(circle at 25% 15%, rgba(27, 123, 90, .04), transparent 55%), radial-gradient(circle at 80% 75%, rgba(242, 139, 75, .04), transparent 60%)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var( --font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif );font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text);background:var(--bg-app);text-rendering:optimizeLegibility;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text)}h1{font-size:var(--font-size-4xl);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--spacing-md)}h2{font-size:var(--font-size-3xl);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm)}h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm)}h5{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}h6{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}p{margin:0 0 var(--spacing-md);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);display:block;margin-bottom:var(--spacing-xs)}input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=time],select,textarea{font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-normal);padding:var(--spacing-sm) .875rem;border:2px solid var(--input-border);border-radius:var(--radius-md);background:var(--input-bg);color:var(--input-text);width:100%;min-height:36px;transition:border-color var(--transition-base),box-shadow var(--transition-base),background var(--transition-base)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus-ring);box-shadow:0 0 0 3px #7dcfb64d}input::placeholder,textarea::placeholder{color:var(--input-placeholder);font-style:italic;opacity:1}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mantine-Select-rightSection,.mantine-NumberInput-rightSection,.mantine-Input-section,.mantine-Select-section,[class*=mantine-Input-section],[class*=mantine-Select-section]{display:none!important}.mantine-Select-input,.mantine-NumberInput-input{padding-right:12px!important}.mantine-Select-wrapper,.mantine-NumberInput-wrapper{position:relative!important}.m_95e17d22,.m_80b4b171{display:none!important}input[type=number]+div[class*=m_]{display:none!important}input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=number]:focus{border:2px solid var(--color-teal-light);padding:calc(.5rem - 1px) calc(.875rem - 1px)}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid var(--color-text-primary);border-radius:4px;background:var(--color-bg-primary);cursor:pointer;position:relative;transition:all .15s ease;vertical-align:middle;margin-right:6px}input[type=checkbox]:hover{border-color:var(--color-secondary)}input[type=checkbox]:checked{background:var(--color-secondary);border-color:var(--color-secondary)}input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}label input[type=checkbox]{margin-right:4px}select::-ms-expand{display:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none}:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px;box-shadow:0 0 0 4px #0369a133}.skip-link{position:absolute;top:-9999px;left:0;z-index:10000;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-secondary);color:var(--color-bg-primary);font-weight:600;font-size:var(--font-size-sm);border-radius:0 0 var(--border-radius-md) 0;text-decoration:none;white-space:nowrap}.skip-link:focus{top:0;left:var(--spacing-md);outline:2px solid var(--color-bg-primary);outline-offset:2px}.app{min-height:100vh;background:var(--color-bg-radial)}.app-content-wrapper{min-height:100vh;margin-left:var(--sidebar-width);padding-top:var(--app-header-height);display:flex;flex-direction:column;transition:margin-left var(--transition-base)}.app-header-bar{position:fixed;top:0;left:var(--sidebar-width);right:0;width:auto;z-index:1000;height:var(--app-header-height);display:flex;align-items:center;gap:var(--spacing-md);padding:0 var(--spacing-lg);padding-right:calc(var(--spacing-lg) + 12px);background:var(--app-header-bg, var(--color-orange));color:var(--color-bg-primary);border-bottom:2px solid rgba(0,0,0,.1);box-shadow:var(--shadow-sm);box-sizing:border-box}.app-header-bar:after{display:none}.page-title-center{position:absolute;left:50%;transform:translate(-50%);text-align:center;pointer-events:none}.page-title-header{margin:0;font-size:20px;font-weight:700;color:var(--color-bg-primary);pointer-events:none;text-transform:uppercase;letter-spacing:1px}.brand{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-brand);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:.02em;color:var(--color-primary-700)}.header-right{margin-left:auto;display:flex;align-items:center;gap:var(--spacing-sm)}.brand-emoji{font-size:var(--font-size-2xl);filter:drop-shadow(0 0 2px rgba(0,0,0,.2))}.brand-text{color:var(--color-bg-primary);font-family:var(--font-brand);font-size:1.4rem;font-weight:700;letter-spacing:.02em}.app-main{flex:1;padding:var(--spacing-sm) var(--spacing-xl) var(--spacing-2xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-caption{font-size:.75rem;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-wide);color:var(--color-text-tertiary)}.text-helper{font-size:.75rem;line-height:1.4;color:var(--color-text-secondary)}.text-label{font-size:var(--font-size-sm);line-height:var(--line-height-tight);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.text-body-sm{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-primary)}.text-body{font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary)}.text-body-lg{font-size:var(--font-size-lg);line-height:var(--line-height-normal);color:var(--color-text-primary)}.heading-xl{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.heading-2xl{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.heading-3xl{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.heading-4xl{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-muted{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.text-faint{color:var(--color-text-faint)}.text-white{color:var(--text-button)!important}.text-grey{color:var(--text-table-body)!important}.font-normal{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-underline{text-decoration:underline}.text-line-through{text-decoration:line-through}.text-no-underline{text-decoration:none}.text-uppercase{text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-no-case{text-transform:none}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.text-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.text-tight{line-height:var(--line-height-tight);letter-spacing:-.02em}.text-normal{line-height:var(--line-height-normal);letter-spacing:0}.text-relaxed{line-height:var(--line-height-relaxed)}.text-loose{line-height:var(--line-height-loose)}.text-hint{color:var(--color-text-tertiary);font-size:.75rem;font-weight:var(--font-weight-regular);margin-top:var(--spacing-xs);display:block}.text-required:after{content:" *";color:var(--color-error)}.text-optional{font-size:.75rem;color:var(--color-text-tertiary);font-weight:var(--font-weight-regular)}.text-mono{font-family:var(--font-family-mono);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row;gap:var(--spacing-md);align-items:flex-start;flex-wrap:wrap}.flex-1{flex:1}.flex-center{display:flex;align-items:center;justify-content:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.mt-0{margin-top:0}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.grid{display:grid;gap:var(--spacing-md)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-auto-fit{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.auto-grid{display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.container,.layout-container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-xl) var(--spacing-3xl)}.code{font-family:var(--font-family-mono);font-size:var(--font-size-sm);background-color:var(--color-bg-secondary);color:var(--color-text-primary);padding:.125em .375em;border-radius:.25rem;white-space:nowrap}.code-block{font-family:var(--font-family-mono);font-size:var(--font-size-sm);background-color:var(--color-bg-secondary);color:var(--color-text-primary);padding:var(--spacing-md);border-radius:var(--border-radius-md);overflow-x:auto;line-height:var(--line-height-normal)}.sr-only,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.card,.paper,[class*=-card],[class*=-panel],[class*=-section],.viewmode-section,.stat-card{border:1px solid var(--border-card);border-radius:var(--radius-lg);background-color:var(--bg-card);box-shadow:var(--shadow-xs);transition:transform var(--transition-base),box-shadow var(--transition-base)}.card:hover,.paper:hover,.stat-card:hover,.recipe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--color-orange)}.card,.paper,[class*=-card],[class*=-panel],[class*=-section],.viewmode-section,.stat-card{padding:var(--spacing-lg)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--border-card)}.card-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin:0;letter-spacing:.2px}.card-content{color:var(--text-primary)}.card svg,.panel-orange svg,.overview-panel svg{color:var(--color-blue-dark);stroke:currentColor}.card.card-orange{border-color:var(--color-orange);border-left:5px solid var(--color-orange)}.card.card-teal{border-color:var(--color-teal-light);border-left:5px solid var(--color-teal-light)}.card.card-blue{border-color:var(--color-blue-dark);border-left:5px solid var(--color-blue-dark)}.card.card-peach{border-color:var(--color-peach);border-left:5px solid var(--color-peach)}table,.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--bg-table-body);border:2px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;font-size:var(--font-size-sm);box-shadow:var(--shadow-xs)}thead th,.table thead th{background:var(--table-header-bg);color:var(--text-table-header);font-weight:700;font-size:.75rem;text-align:center;padding:.875rem .9rem;border-bottom:2px solid rgba(255,255,255,.25);border-right:1px solid rgba(255,255,255,.3);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}tbody td,.table td{padding:.875rem .9rem;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);color:var(--color-text);text-align:left;vertical-align:top}tbody tr:last-child td,.table tr:last-child td{border-bottom:none}thead th:last-child,.table th:last-child,tbody td:last-child,.table td:last-child{border-right:none}tbody tr:nth-child(2n),.table tr:nth-child(2n){background:var(--table-row-even-bg)}tbody tr:nth-child(odd),.table tr:nth-child(odd){background:var(--table-row-odd-bg)}tbody tr:hover,.table tr:hover{background:var(--table-row-hover-bg)}tbody tr[data-selected],.selected{background-color:var(--table-row-selected-bg)}tbody tr.clickable,.table tr.clickable{cursor:pointer}.table td.empty{text-align:center;color:var(--color-text-dim);font-style:italic}.main-dashboard.dashboard-home{background:var(--color-bg, var(--app-bg, var(--gray-100)))}.dashboard-home .overview-panel{background:var(--color-surface, var(--bg-card, var(--color-bg-primary)));border:2px solid var(--border-secondary, var(--color-orange));border-radius:var(--radius-lg, 12px);padding:1.5rem 2rem;margin-bottom:1.5rem;box-shadow:none;overflow:visible}.dashboard-home .overview-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md, 1rem);margin-bottom:.5rem;padding-bottom:.1rem}.dashboard-home .overview-title{color:var(--overview-title-color, var(--primary-accent, var(--color-teal)));font-size:var(--font-size-xl, 1.25rem);font-weight:700;margin:0 0 .2rem;display:inline-flex;align-items:center;gap:.4rem}.dashboard-home .overview-actions{display:flex;gap:var(--spacing-sm, .5rem);flex-wrap:wrap;align-items:center}.dashboard-home .overview-body{padding:var(--spacing-sm) 0 0}.dashboard-home .table-container{border-radius:var(--radius-md, 8px);overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;background:var(--bg-card, var(--color-bg-primary));border:1px solid var(--border-card, var(--color-border, var(--gray-200)));box-shadow:var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, .05));padding:var(--spacing-sm)}.dashboard-home .table .status-success{background:#4caf501f;color:var(--color-status-success-green);font-weight:600}.dashboard-home .table .status-error{background:#f4433621;color:var(--color-error-600, var(--color-error));font-weight:600}.dashboard-home .table .status-warning{background:#f8943021;color:var(--color-orange);font-weight:600}.dashboard-home .overview-panel svg,.dashboard-home .overview-title svg{color:var(--color-blue-dark, var(--primary-accent, var(--color-teal)));stroke:currentColor}.section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md, 1rem);margin-bottom:.5rem;padding-bottom:.1rem}.section-title{color:var(--overview-title-color, var(--primary-accent, var(--color-teal)));font-size:var(--font-size-xl, 1.25rem);font-weight:700;margin:0 0 .2rem;display:inline-flex;align-items:center;gap:.4rem}.section-actions{display:flex;gap:var(--spacing-sm, .5rem);flex-wrap:wrap;align-items:center}.table-row,.totals-row{font-weight:700;background-color:var(--bg-table-header);color:var(--text-table-header)}.table-cell,.totals-cell{color:var(--color-bg-primary);padding:8px;border:1px solid var(--color-border)}.table-container,.table-wrapper,.datatable-scroll{overflow-x:auto;border-radius:8px;margin:1rem 0;background:var(--bg-table-body);box-shadow:0 2px 8px #00000014}.datatable-wrapper{display:flex;flex-direction:column;gap:var(--spacing-sm)}.datatable-toolbar{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.datatable-filter{max-width:280px}.table thead th .sort-indicator{display:inline-block;margin-left:.35rem;width:.6rem;height:.6rem;background:#ffffff80;clip-path:polygon(50% 15%,0 85%,100% 85%);opacity:.5;transition:var(--transition-base)}.table thead th .sort-indicator.active.asc{transform:rotate(180deg);opacity:1}.table thead th .sort-indicator.active.desc{opacity:1}.drag-handle-cell{text-align:center;padding:4px 2px;width:1.8rem}.drag-handle{display:inline-block;font-size:14px;line-height:1.5;opacity:.45}tr.draggable-row{transition:background .12s ease}tr.draggable-row.drag-origin{opacity:.6;background:#4db8a01f}tr.draggable-row.drag-over{outline:2px dashed rgba(77,184,160,.6);outline-offset:-2px}tr.draggable-row.drag-over td{background:#4db8a01f}.table-cell-ellipsis{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}@media(min-width:1200px){.table-cell-ellipsis{max-width:320px}}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--badge-bg);color:var(--badge-text);font-size:var(--font-size-xs);padding:var(--spacing-xs) .65rem;border-radius:var(--radius-full);font-weight:600;letter-spacing:.04em;box-shadow:var(--shadow-xs)}.badge.teal{background:var(--color-teal)}.badge.outline{background:transparent;color:var(--color-text);border:1px solid var(--color-border)}.status-badge{display:inline-block;font-weight:700;letter-spacing:.01em;border-radius:999px;padding:.18em .8em;font-size:var(--font-size-xs);background:var(--color-neutral-100);color:var(--color-neutral-800);line-height:1.2}.status-badge.atp-pass{background:var(--color-success-light);color:var(--color-success-dark);border:1px solid rgba(22,101,52,.1)}.status-badge.atp-fail{background:var(--color-error-light);color:var(--color-error);border:1px solid rgba(153,27,27,.1)}.status-badge.atp-na{background:var(--color-neutral-100);color:var(--color-neutral-500)}.status-badge.status-active{background:#00c76d2e;color:var(--color-status-success-text);border:1px solid rgba(0,199,109,.35)}.status-badge.status-warning{background:#f8943033;color:var(--color-status-warning-text);border:1px solid rgba(248,148,48,.4)}.notification{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);border:1px solid transparent}.notification-success{background:var(--color-success);color:var(--color-bg-primary);border-color:var(--color-success)}.notification-error{background:var(--color-error);color:var(--color-bg-primary);border-color:var(--color-error)}.notification-warning{background:var(--color-warning);color:var(--color-bg-primary);border-color:var(--color-warning)}.notification-info{background:var(--color-info);color:var(--color-bg-primary);border-color:var(--color-info-500)}.ds-alert{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid transparent;background:var(--color-surface-alt);color:var(--color-text);display:flex;flex-direction:column;gap:var(--spacing-xs)}.ds-alert-title{font-weight:700;font-size:var(--font-size-sm)}.ds-alert-body{color:var(--color-text-dim);font-size:var(--font-size-sm)}.ds-alert--success{background:#22c55e1f;border-color:#22c55e66;color:var(--color-alert-success-text)}.ds-alert--warning{background:#f894301f;border-color:#f8943066;color:var(--color-alert-warning-text)}.ds-alert--error{background:#dc26261f;border-color:#dc262666;color:var(--color-status-error-text)}.ds-alert--info{background:#00c0b41f;border-color:#00c0b459;color:var(--color-status-info-text)}.ds-loading{padding:var(--spacing-lg);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-text-dim);text-align:center}.ds-empty-state{padding:var(--spacing-lg);border-radius:var(--radius-md);border:1px dashed var(--color-border);color:var(--color-text-faint);text-align:center}.panel-orange{background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);padding:1.5rem 2rem;box-shadow:var(--shadow-sm)}.panel-title{color:var(--color-primary-700, var(--color-primary-500));margin:0}.panel-content{background:linear-gradient(135deg,#0080800d,#ff660008);border:1px solid var(--color-primary-200, var(--color-primary-500));border-radius:8px;padding:1rem;overflow:auto}.app-modal-header h1,.app-modal-header h2,.app-modal-header h3,.app-modal-content h1,.app-modal-content h2,.app-modal-content h3,.modal-title,.version-modal-title{color:var(--modal-title-color);font-weight:700}.app-modal-header .title,.app-modal-content .title,.app-modal-header{color:var(--modal-title-color)}.form-group,.field{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:120px}.field label{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim)}.input-group{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);align-items:flex-end;flex-wrap:wrap}.input-label{font-size:var(--font-size-xs);font-weight:400;color:var(--color-text-dim)}.checkbox-group{display:inline-flex;align-items:center;gap:.4rem}.checkbox-group input[type=checkbox]{margin:0}.checkbox-group label{margin:0;font-weight:500;color:var(--color-text)}.label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:block;margin-bottom:var(--spacing-xs)}.label-required .label-text:after{content:"*";color:var(--color-error);margin-left:.25rem}.form-help{font-size:.75rem;color:var(--color-text-tertiary);margin-top:.25rem;display:block}.form-error{font-size:var(--font-size-sm);color:var(--color-error);margin-top:.25rem;display:block}.form-success{font-size:var(--font-size-sm);color:var(--color-success);margin-top:.25rem;display:block}.batch-info{min-width:190px;line-height:1.15;padding:var(--spacing-sm)}.batch-recipe-name{font-weight:600}.batch-details{font-size:var(--font-size-sm);opacity:.8}.batch-tank{font-size:var(--font-size-sm);opacity:.75}.stage-chips{display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:flex-start}.stage-chips.stack{flex-direction:column}.stage-chips .chip{display:inline-block;padding:var(--spacing-xs) .5rem;background:#1e293b0d;border:1px solid rgba(30,41,59,.1);border-radius:3px;font-size:.75rem;white-space:nowrap}.stage-chips .chip.out{background:#dc262614;border-color:#dc262633;color:var(--color-error)}.app-main .mantine-Container-root{padding-top:0!important}body{background:var(--bg-app);min-height:100vh}.app,.app-content-wrapper,.app-main{background:var(--bg-app)}.navbar-grouped{background:var(--bg-navbar)}.nav-group-trigger,.nav-group-trigger.direct-link,.nav-item{color:var(--text-navbar)}.mobile-menu-toggle{background:var(--bg-nav-item);color:var(--text-navbar)}.app-header-bar{background:var(--bg-app-header);color:var(--text-navbar)}input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=time],select,textarea,.ds-input,.ds-select,.ds-textarea,.number-input,.select-input,.input-field{border:1px solid var(--outline-main);background:var(--color-bg-primary);border-radius:4px;color:var(--text-main);padding:.5rem .875rem;font-size:var(--font-size-sm, 14px)}.mantine-Input-leftSection,.mantine-Input-rightSection,.mantine-Select-rightSection,.mantine-Select-leftSection{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important}.mantine-ActionIcon-root:focus,.mantine-Input-leftSection:focus,.mantine-Input-rightSection:focus,.mantine-Select-rightSection:focus{outline:none!important;box-shadow:none!important}.mantine-Table-thead,.mantine-Table-th{background:var(--bg-table-header)!important;color:var(--text-table-header)!important}.mantine-Table-tbody{background:var(--bg-table-body)!important}.mantine-Table-td{color:var(--text-table-body)!important}.mantine-Table-root tbody tr:hover{background-color:var(--table-row-hover-bg)!important}.mantine-Table-root[data-striped] tbody tr:nth-of-type(odd){background-color:var(--table-row-even-bg)!important}.mantine-Table-root tbody tr[data-selected],.mantine-Table-root tbody tr.selected{background-color:var(--table-row-selected-bg)!important}.mantine-Table-root:focus-within{border-color:var(--color-mint-500)}.select-input .select__indicator,.select-input .select-indicator,.select-input .dropdown-icon,.select-input .icon,.select-input .caret{background:transparent;border:none;box-shadow:none;padding:0}@media(max-width:1199px){.app-content-wrapper{margin-left:0}.app-header-bar{left:0;width:100%;padding-left:calc(var(--spacing-lg) + 3.75rem)}}@media(max-width:900px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.row{flex-direction:column}.container,.layout-container{padding:0 var(--spacing-lg) var(--spacing-2xl)}.app-main{padding:var(--spacing-sm) var(--spacing-lg) var(--spacing-xl)}.beta-feedback-btn span:last-child{display:none}.beta-feedback-btn{padding:6px 8px!important;gap:0!important}}@media(max-width:768px){table th,.table th,table td,.table td{padding:.625rem .75rem;font-size:var(--font-size-sm)}}@media(max-width:640px){.container,.layout-container{padding:0 var(--spacing-md) var(--spacing-xl)}.app-main{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-lg)}.app-header-bar{padding-left:calc(var(--spacing-md) + 2.5rem)}h1,.h1{font-size:1.8rem}table,.table{font-size:var(--font-size-xs)}.card,.paper{padding:var(--spacing-md)}.heading-4xl{font-size:var(--font-size-3xl)}.heading-3xl{font-size:var(--font-size-2xl)}.heading-2xl{font-size:var(--font-size-xl)}.text-body-lg{font-size:var(--font-size-base)}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-teal);border-radius:var(--radius-sm);border:2px solid var(--color-surface)}::-webkit-scrollbar-thumb:hover{background:var(--color-teal-dark)}body.theme-transition,body.theme-transition *,body.theme-transition *:before,body.theme-transition *:after{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.skip-to-main{position:absolute;top:-40px;left:0;background:var(--color-primary);color:var(--color-bg-primary);padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;z-index:100}.skip-to-main:focus{top:0}@media print{body{background:var(--color-bg-primary);color:var(--color-text-primary)}.card,.paper{border:1px solid var(--color-border);box-shadow:none}button,.btn,.ds-button{display:none}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background-color:transparent;border:1px solid var(--color-border);border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-base);transition:var(--transition-base);color:var(--color-text-primary)}.theme-toggle:hover{background-color:var(--color-bg-secondary);border-color:var(--color-border-dark)}.theme-toggle:focus{outline:2px solid var(--color-primary);outline-offset:2px}.theme-toggle-icon{display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}[data-theme=dark] .theme-toggle{color:var(--color-text-primary);border-color:var(--color-border)}[data-theme=dark] .theme-toggle:hover{background-color:var(--color-bg-secondary);border-color:var(--color-border-dark)}[data-theme=dark] .theme-toggle:focus{outline-color:var(--color-primary)}[data-theme=dark] .theme-toggle:active{background-color:var(--color-bg-tertiary)}:root{--color-primary: #f78256;--color-primary-dark: #eb7f41;--color-primary-light: #fbd1a2;--color-secondary: #0369a1;--color-secondary-dark: #0c4a6e;--color-secondary-light: #e0f2fe;--color-success: #16a34a;--color-success-light: #dcfce7;--color-success-dark: #15803d;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-warning-dark: #d97706;--color-error: #dc2626;--color-error-light: #fee2e2;--color-error-dark: #991b1b;--color-info: #0284c7;--color-info-light: #e0f2fe;--color-info-dark: #0369a1;--color-text-primary: #111827;--color-text-secondary: #4b5563;--color-text-tertiary: #9ca3af;--color-text-disabled: #d1d5db;--color-bg-primary: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-tertiary: #f3f4f6;--color-border-light: #e5e7eb;--color-border: #d1d5db;--color-border-dark: #9ca3af;--color-white-3: rgba(255, 255, 255, .03);--color-white-5: rgba(255, 255, 255, .05);--color-white-8: rgba(255, 255, 255, .08);--color-white-10: rgba(255, 255, 255, .1);--color-white-15: rgba(255, 255, 255, .15);--color-white-20: rgba(255, 255, 255, .2);--color-white-30: rgba(255, 255, 255, .3);--color-white-50: rgba(255, 255, 255, .5);--color-white-60: rgba(255, 255, 255, .6);--color-white-70: rgba(255, 255, 255, .7);--color-white-80: rgba(255, 255, 255, .8);--color-success-3: rgba(22, 163, 74, .03);--color-success-10: rgba(22, 163, 74, .1);--color-success-15: rgba(22, 163, 74, .15);--color-success-20: rgba(22, 163, 74, .2);--color-success-30: rgba(22, 163, 74, .3);--color-success-50: rgba(22, 163, 74, .5);--color-success-80: rgba(22, 163, 74, .8);--color-warning-10: rgba(245, 158, 11, .1);--color-warning-30: rgba(245, 158, 11, .3);--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, Monaco, "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0em;--letter-spacing-wide: .05em;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--button-height-sm: 2rem;--button-height-md: 2.5rem;--button-height-lg: 3rem;--button-padding-x-sm: .75rem;--button-padding-x-md: 1rem;--button-padding-x-lg: 1.5rem;--button-border-radius: .375rem;--button-font-size: var(--font-size-sm);--button-font-weight: 500;--button-border-width: 1px;--input-height: 2.5rem;--input-padding-y: .5rem;--input-padding-x: .75rem;--input-border-radius: .375rem;--input-border-width: 1px;--input-font-size: var(--font-size-sm);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--border-radius-sm: .25rem;--border-radius-md: .375rem;--border-radius-lg: .5rem;--border-radius-xl: .75rem;--border-radius-full: 9999px;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-notification: 800}[data-theme=dark]{--color-primary: #fbbf24;--color-primary-dark: #f59e0b;--color-primary-light: #fef3c7;--color-secondary: #38bdf8;--color-secondary-dark: #0ea5e9;--color-secondary-light: #0c4a6e;--color-success: #4ade80;--color-success-light: #16a34a;--color-success-dark: #22c55e;--color-warning: #facc15;--color-warning-light: #eab308;--color-warning-dark: #fbbf24;--color-error: #f87171;--color-error-light: #dc2626;--color-error-dark: #ef4444;--color-info: #38bdf8;--color-info-light: #0284c7;--color-info-dark: #0ea5e9;--color-text-primary: #f3f4f6;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af;--color-text-disabled: #6b7280;--color-bg-primary: #111827;--color-bg-secondary: #1f2937;--color-bg-tertiary: #374151;--color-border-light: #4b5563;--color-border: #6b7280;--color-border-dark: #9ca3af;--color-black-5: rgba(0, 0, 0, .05);--color-black-8: rgba(0, 0, 0, .08);--color-black-10: rgba(0, 0, 0, .1);--color-black-15: rgba(0, 0, 0, .15);--color-black-20: rgba(0, 0, 0, .2);--color-black-30: rgba(0, 0, 0, .3);--color-black-50: rgba(0, 0, 0, .5);--color-black-60: rgba(0, 0, 0, .6);--color-black-70: rgba(0, 0, 0, .7);--color-black-80: rgba(0, 0, 0, .8);--color-text-primary-dark: #e5e7eb;--color-bg-secondary-dark: #2d3748;--color-bg-tertiary-dark: #4a5568}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary)}h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-md) 0}h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-md) 0}h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-sm) 0}h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-sm) 0}h5{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-xs) 0}h6{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-xs) 0}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.bg-primary{background-color:var(--color-bg-primary)}.bg-secondary{background-color:var(--color-bg-secondary)}.bg-tertiary{background-color:var(--color-bg-tertiary)}.bg-success-light{background-color:var(--color-success-light)}.bg-warning-light{background-color:var(--color-warning-light)}.bg-error-light{background-color:var(--color-error-light)}.bg-info-light{background-color:var(--color-info-light)}:root{--app-header-height: 60px;--sidebar-width: 280px;--color-orange: #ff9b5c;--color-peach: #fbd1a2;--color-teal: #7dcfb6;--color-teal-dark: #2d8a6e;--color-teal-light: #b3e0d4;--color-teal-bg: #e8f6f3;--color-teal-primary: #2d8a6e;--color-cyan: #00b2ca;--color-charcoal: #2d3436;--teal-primary: var(--color-teal-primary);--teal-dark: var(--color-teal-dark);--teal-light: var(--color-teal-light);--teal-bg: var(--color-teal-bg);--gray-50: #f8fafc;--gray-100: #f1f2f6;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--font-sans: var(--font-family-sans);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--color-primary-300: var(--color-secondary-light);--color-primary-400: var(--color-secondary);--color-primary-500: var(--color-primary);--color-primary-600: var(--color-primary-dark);--color-primary-700: var(--color-primary-dark);--color-secondary-500: var(--color-secondary);--color-neutral-700: var(--color-text-secondary);--color-neutral-100: #f3f4f6;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-neutral-400: #9ca3af;--color-neutral-500: #6b7280;--color-neutral-600: #4b5563;--color-neutral-700: #374151;--color-neutral-800: #1f2937;--color-neutral-900: #111827;--color-purple-light: #a78bfa;--color-rose: #f43f5e;--color-rose-light: #fb7185;--color-success-500: var(--color-success);--color-success-600: var(--color-success-dark);--color-warning-400: var(--color-warning);--color-warning-500: var(--color-warning);--color-error-500: var(--color-error);--color-error-600: var(--color-error-dark);--color-info-500: var(--color-info);--color-info-600: var(--color-info-dark);--status-fermentation-active: var(--color-info);--status-fermentation-dry-hop: var(--color-success);--color-purple: #8b5cf6;--color-purple-dark: #7c3aed;--color-purple-muted: #6f42c1;--color-purple-light: #9561e2;--color-status-success-text: #0a5a38;--color-status-warning-text: #7a3f00;--color-status-error-text: #7f1d1d;--color-status-info-text: #075e57;--color-alert-success-text: #14532d;--color-alert-warning-text: #722f22;--color-status-success-green: #388e3c;--bg-app: var(--color-bg-secondary);--bg-card: var(--color-bg-primary);--bg-hover: var(--color-bg-tertiary);--bg-active: var(--color-bg-tertiary);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-muted: var(--color-text-tertiary);--text-inverse: #ffffff;--text-link: var(--color-secondary);--border: var(--color-border);--border-light: var(--color-border-light);--border-focus: var(--color-secondary);--table-header-bg: var(--color-primary);--table-header-color: #ffffff;--table-row-even-bg: var(--color-bg-secondary);--table-row-hover-bg: rgba(3, 105, 161, .05);--input-height: 2.5rem;--input-padding-x: .75rem;--input-bg: var(--color-bg-primary);--input-border: var(--color-border);--input-focus-border: var(--color-secondary);--input-placeholder: var(--color-text-tertiary);--modal-overlay-bg: rgba(0, 0, 0, .5);--modal-width-sm: 400px;--modal-width-md: 600px;--modal-width-lg: 800px;--modal-width-xl: 1000px;--card-padding: var(--spacing-md);--card-bg: var(--color-bg-primary);--card-border: var(--color-border)}.navbar-grouped{position:fixed;left:0;top:var(--app-header-height, 60px);bottom:0;width:var(--sidebar-width, 280px);background:var(--bg-navbar);border-right:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column;padding:1rem 0;z-index:900;overflow-y:auto;box-shadow:2px 0 12px #0000001a;margin-top:0;transform:translate(0)}.navbar-grouped:before,.navbar-grouped:after{display:none}.navbar-grouped::-webkit-scrollbar{width:6px}.navbar-grouped::-webkit-scrollbar-track{background:var(--bg-navbar)}.navbar-grouped::-webkit-scrollbar-thumb{background:#0003;border-radius:var(--border-radius-sm)}.navbar-grouped::-webkit-scrollbar-thumb:hover{background:#0000004d}.mobile-menu-toggle{display:none;align-items:center;justify-content:center;background:#fff3;color:var(--color-bg-primary);border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-md);width:40px;height:40px;padding:0;font-weight:700;font-size:var(--font-size-lg);cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none;backdrop-filter:none;flex-shrink:0}.app-header-bar .mobile-menu-toggle{margin-right:var(--spacing-sm)}.mobile-menu-toggle:hover{background:var(--button-bg-hover, var(--color-primary-600));transform:scale(1.05)}.nav-groups{list-style:none;margin:0;padding:0 .75rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-group{position:relative;width:100%}.nav-group-trigger,.nav-group-trigger.direct-link{width:100%;text-align:left;display:flex;align-items:center;gap:.5rem;background:var(--bg-nav-item);border:1px solid rgba(0,0,0,.15);padding:.875rem 1rem;cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:all .18s ease;text-decoration:none;border-radius:var(--radius-lg)}.nav-group-trigger:hover,.nav-group-trigger.direct-link:hover{background:var(--bg-nav-item-active);border-color:#00000014;color:var(--color-blue-dark)}.nav-group.active>.nav-group-trigger,.nav-group.active>.nav-group-trigger.direct-link{background:var(--color-sidebar-bg-strong);border-color:color-mix(in srgb,var(--text-navbar),transparent 60%);color:var(--color-text-primary);box-shadow:0 2px 10px color-mix(in srgb,var(--primary-accent),transparent 55%)}.nav-group-emoji{font-size:var(--font-size-lg);line-height:1.5}.caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;margin-left:auto;opacity:.7;transition:transform .2s ease}.nav-group.open .caret{transform:rotate(180deg)}.nav-dropdown{list-style:none;margin:.25rem 0 0;padding:0;display:none;flex-direction:column;gap:.15rem;padding-left:2.5rem}.nav-group.open .nav-dropdown{display:flex}.nav-item{display:block;color:var(--color-text-primary);padding:.5rem 1rem;background:var(--bg-nav-item-hover);font-size:var(--font-size-sm);border-radius:var(--radius-lg);transition:all .18s ease;background:var(--bg-button-surface);margin-bottom:.25rem}.nav-item:hover{background:var(--bg-button);color:var(--text-button);transform:translate(4px)}.nav-item.current{background:var(--bg-button);color:var(--text-button);font-weight:600;border-left:3px solid var(--bg-table-header);box-shadow:0 2px 8px #0003}.nav-item.disabled{opacity:.5;cursor:not-allowed}.nav-item .tag{background:var(--bg-table-header);color:var(--text-table-header);font-size:var(--font-size-sm);padding:.125rem .375rem;border-radius:var(--border-radius-xl);font-weight:700;margin-left:.5rem}.sidebar-close{position:absolute;top:.75rem;right:.75rem;background:var(--bg-nav-item);border:1px solid rgba(0,0,0,.12);color:var(--color-text-primary);font-size:var(--font-size-2xl);line-height:1.5;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:transform .18s ease,background-color .18s ease;z-index:10}.sidebar-close:hover{background:var(--bg-nav-item-hover);border-color:#0000002e;transform:scale(1.05)}@media(max-width:1199px){.navbar-grouped{transform:translate(-100%);transition:transform .3s ease;z-index:1100;top:0}.mobile-menu-toggle{display:flex}.navbar-grouped.sidebar-open{transform:translate(0)}.navbar-grouped.sidebar-open:before{content:"";position:fixed;inset:0;background:#00000080;z-index:-1}}@media(min-width:1200px){.navbar-grouped{transform:translate(0)}.mobile-menu-toggle{display:none}}.navbar-grouped .nav-group-trigger,.navbar-grouped .nav-group-trigger.direct-link,.navbar-grouped .nav-item,.navbar-grouped .sidebar-close{background:var(--bg-nav-item);border-color:#0000001f;color:var(--color-text-primary)}.navbar-grouped .nav-group-trigger:hover,.navbar-grouped .nav-item:hover,.navbar-grouped .sidebar-close:hover{background:var(--bg-nav-item-hover);transform:translate(0)}.navbar-grouped [style*="rgba(255, 255, 255)"]{background:var(--bg-nav-item)}.user-menu-container{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.6rem;padding:.45rem .8rem;background:#ffffff26;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:all .2s ease}.user-menu-trigger:hover{background:#ffffff40;border-color:#fff6}.user-avatar{width:26px;height:26px;border-radius:var(--border-radius-full);background:#fff3;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:#fff;overflow:hidden;border:1px solid rgba(255,255,255,.3)}.user-avatar-img{width:100%;height:100%;object-fit:cover}.user-name{font-weight:600;font-size:var(--font-size-sm)}.user-menu-arrow{font-size:10px;opacity:.5}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:220px;background:var(--color-bg-primary);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-border-light);z-index:1001;overflow:hidden}.user-menu-header{padding:var(--spacing-md);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-light)}.user-menu-email{font-weight:700;color:var(--color-text-primary);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-name{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:2px}.user-menu-divider{height:1px;background:var(--color-border-light)}.user-menu-item{display:block;width:100%;padding:.8rem 1rem;background:none;border:none;text-align:left;color:var(--color-text-primary);cursor:pointer;font-size:14px;transition:all .2s;font-weight:500}.user-menu-item:hover{background:var(--color-secondary-50);color:var(--color-text-primary)}.error-page-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-radial);padding:var(--spacing-xl);position:relative}.error-page-content{max-width:600px;width:100%;background:linear-gradient(160deg,#4db8a00d,#e875520a),var(--color-surface);border-radius:var(--radius-lg);padding:3rem 2.5rem;border:1px solid var(--color-border);box-shadow:var(--shadow-md);text-align:center;position:relative;z-index:10}[data-theme=dark] .error-page-content{background:var(--color-neutral-900);color:var(--color-neutral-100)}.error-title{font-size:5rem!important;font-weight:700;margin:.5rem 0!important;line-height:1.5!important;letter-spacing:-1px!important;color:var(--color-teal)!important}.error-icon{color:var(--color-text-dim);opacity:.9;margin-bottom:.6rem}[data-theme=dark] .error-title{color:var(--color-neutral-100)}.error-subtitle{font-size:var(--font-size-2xl)!important;font-weight:600;color:var(--color-orange)!important;margin:1rem 0!important;letter-spacing:.2px!important}[data-theme=dark] .error-subtitle{color:var(--color-neutral-100)}.error-message{font-size:var(--font-size-lg);color:var(--color-text-dim)!important;margin:1.5rem 0 2rem;line-height:1.6}[data-theme=dark] .error-message{color:var(--gray-400)}.error-actions{display:flex;gap:1rem;justify-content:center;margin:2rem 0;flex-wrap:wrap}.error-footer{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}[data-theme=dark] .error-footer{border-top-color:var(--color-neutral-700)}.error-hint{font-size:var(--font-size-sm);color:var(--color-text-faint);font-style:italic;margin:0}[data-theme=dark] .error-hint{color:var(--gray-500)}.error-details-section{margin:2rem 0;text-align:left}.error-details-toggle{background:#4db8a01f;border:1px solid rgba(77,184,160,.35);color:var(--color-teal-dark);padding:.55rem .9rem;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;transition:all .2s ease;width:100%;text-align:left}[data-theme=dark] .error-details-toggle{background:#4db8a026;color:var(--color-teal)}.error-details-toggle:hover{background:#4db8a033;border-color:#4db8a099}.error-details-box{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--color-surface-alt);border-radius:var(--radius-md);border-left:4px solid var(--color-orange)}[data-theme=dark] .error-details-box{background:#0000004d}.error-details-box code{color:var(--color-error);font-family:Courier New,monospace;font-size:var(--font-size-sm);word-break:break-word}[data-theme=dark] .error-details-box code{color:var(--color-danger)}.error-info-box{background:linear-gradient(135deg,#4db8a01f,#e875521a);border:1px solid rgba(77,184,160,.25);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin:2rem 0;text-align:left}[data-theme=dark] .error-info-box{background:linear-gradient(135deg,#4db8a026,#e875521f)}.error-info-box h4{margin:0 0 1rem;color:var(--color-teal);font-size:var(--font-size-lg)}[data-theme=dark] .error-info-box h4{color:var(--color-teal)}.error-info-box ul{margin:0;padding-left:1.5rem;list-style:none}.error-info-box li{margin:.5rem 0;color:var(--color-text-dim);font-size:var(--font-size-sm)}[data-theme=dark] .error-info-box li{color:var(--color-text-dim, var(--gray-400))}.error-info-box li:before{content:"";display:inline-block;width:6px;height:6px;background:var(--color-orange);border-radius:var(--border-radius-full);margin-right:.5rem}.maintenance-countdown{background:linear-gradient(135deg,var(--color-orange) 0%,var(--orange-300) 100%);color:#fff;padding:var(--spacing-lg);border-radius:var(--radius-lg);margin:2rem 0;box-shadow:0 8px 18px #e8755240}.countdown-label{font-size:var(--font-size-sm);opacity:.9;margin-bottom:var(--spacing-sm);font-weight:500}.countdown-time{font-size:var(--font-size-4xl);font-weight:800;letter-spacing:2px;font-family:Courier New,monospace}.maintenance-info{border-color:#e875524d}.maintenance-info h4,[data-theme=dark] .maintenance-info h4{color:var(--color-orange)}.error-status-online{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:var(--spacing-md);background:linear-gradient(135deg,#22c55e2e,#22c55e14);border-radius:var(--radius-lg);color:var(--color-success);font-weight:600;font-size:var(--font-size-lg);margin:2rem 0}[data-theme=dark] .error-status-online{color:var(--color-primary-500)}.pulse-dot{width:12px;height:12px;background:var(--color-success-500);border-radius:var(--border-radius-full);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.6}}@media(max-width:768px){.error-page-wrapper{padding:var(--spacing-md)}.error-page-content{padding:2rem 1.5rem}.error-title{font-size:var(--font-size-4xl)}.error-subtitle{font-size:1.4rem}.error-message{font-size:var(--font-size-base)}.error-actions{flex-direction:column;width:100%}}@media(max-width:480px){.error-title{font-size:var(--font-size-4xl)}.error-subtitle{font-size:var(--font-size-lg)}.error-message{font-size:var(--font-size-sm)}}
