@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-primary: #1a1a1a;--bg-secondary: #242424;--bg-tertiary: #2d2d2d;--bg-elevated: #323232;--border-subtle: #2d2d2d;--border-default: #3d3d3d;--border-strong: #4d4d4d;--text-primary: #e6e6e6;--text-secondary: #a3a3a3;--text-tertiary: #6b6b6b;--text-inverse: #1a1a1a;--color-red: #d13438;--color-red-dim: #8a2226;--color-red-bright: #ff4d4f;--color-yellow: #d4a72c;--color-yellow-dim: #8a6e1c;--color-yellow-bright: #fadb14;--color-green: #2d8653;--color-green-dim: #1d5737;--color-green-bright: #52c41a;--color-blue: #3b82f6;--color-purple: #8b5cf6;--color-focus: #d4a72c;--color-selection: rgba(212, 167, 44, .2);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--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;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .02em;--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;--space-16: 4rem;--space-20: 5rem;--spacing-component-xs: var(--space-2);--spacing-component-sm: var(--space-3);--spacing-component-md: var(--space-4);--spacing-component-lg: var(--space-6);--spacing-component-xl: var(--space-8);--radius-none: 0;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -2px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .3), 0 10px 10px -5px rgba(0, 0, 0, .2);--shadow-red: 0 0 0 3px rgba(209, 52, 56, .1);--shadow-yellow: 0 0 0 3px rgba(212, 167, 44, .1);--shadow-green: 0 0 0 3px rgba(45, 134, 83, .1);--transition-fast: .1s;--transition-base: .15s;--transition-slow: .2s;--transition-slower: .3s;--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;min-height:100vh}::selection{background:var(--color-selection);color:var(--text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}*:focus{outline:none}*:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.heading-1{font-family:var(--font-primary);font-size:var(--text-4xl);font-weight:var(--font-weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.heading-2{font-family:var(--font-primary);font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.heading-3{font-family:var(--font-primary);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);color:var(--text-primary)}.body-primary{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-weight-regular);line-height:var(--leading-normal);color:var(--text-primary)}.body-secondary{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-weight-regular);line-height:var(--leading-normal);color:var(--text-secondary)}.text-mono{font-family:var(--font-mono);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-normal)}.data-value,.price,.quantity,.percentage{font-family:var(--font-mono);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.label{font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-tertiary)}.btn{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:none;-webkit-user-select:none;user-select:none}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-green);color:var(--text-inverse);border-color:var(--color-green)}.btn-primary:hover{background:var(--color-green-bright);border-color:var(--color-green-bright)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-default)}.btn-danger{background:var(--color-red-dim);color:var(--text-primary);border-color:var(--color-red)}.btn-danger:hover{background:var(--color-red);color:var(--text-inverse)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary);transform:none;box-shadow:none}.btn-icon{padding:var(--space-2);aspect-ratio:1;display:flex;align-items:center;justify-content:center}.btn-sm{font-size:var(--text-xs);padding:var(--space-1) var(--space-3)}.btn-lg{font-size:var(--text-base);padding:var(--space-3) var(--space-6)}.input{font-family:var(--font-primary);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);outline:none;transition:all var(--transition-base) var(--ease-in-out);width:100%}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--color-focus);box-shadow:var(--shadow-yellow)}.input::placeholder{color:var(--text-tertiary)}.input-data{font-family:var(--font-mono);font-weight:var(--font-weight-medium)}.input-error{border-color:var(--color-red)}.input-error:focus{border-color:var(--color-red);box-shadow:var(--shadow-red)}.card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-slow) var(--ease-in-out)}.card:hover{border-color:var(--border-default)}.card-sharp{border-left:2px solid var(--border-strong)}.card-sharp.accent-red{border-left-color:var(--color-red)}.card-sharp.accent-yellow{border-left-color:var(--color-yellow)}.card-sharp.accent-green{border-left-color:var(--color-green)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table thead{border-bottom:1px solid var(--border-default)}.table th{font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-tertiary);text-align:left;padding:var(--space-3) var(--space-4)}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.table tbody tr:hover{background:var(--bg-tertiary)}.table td.data-cell{font-family:var(--font-mono);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.table-striped tbody tr:nth-child(2n){background:var(--bg-tertiary)}.badge{font-family:var(--font-primary);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:var(--space-1)}.divider{height:1px;background:var(--border-subtle);border:none;margin:var(--space-4) 0}.divider-strong{background:var(--border-default)}.divider-vertical{width:1px;height:auto;background:var(--border-subtle)}.container{max-width:1440px;margin:0 auto;padding:0 var(--space-6)}.container-narrow{max-width:1024px}.container-wide{max-width:1920px}.grid{display:grid;gap:var(--space-6)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.transition-base{transition:all var(--transition-base) var(--ease-in-out)}.skeleton{background:var(--bg-tertiary);animation:pulse 2s var(--ease-in-out) infinite;border-radius:var(--radius-md)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-red{color:var(--color-red)}.text-yellow{color:var(--color-yellow)}.text-green{color:var(--color-green)}.bg-primary{background:var(--bg-primary)}.bg-secondary{background:var(--bg-secondary)}.bg-tertiary{background:var(--bg-tertiary)}.bg-elevated{background:var(--bg-elevated)}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.m-0{margin:0}.m-2{margin:var(--space-2)}.m-4{margin:var(--space-4)}.m-6{margin:var(--space-6)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.loading-spinner-enhanced{position:relative;width:48px;height:48px}.loading-spinner-enhanced:before,.loading-spinner-enhanced:after{content:"";position:absolute;border-radius:50%}.loading-spinner-enhanced:before{width:48px;height:48px;border:3px solid var(--border-subtle);border-top-color:var(--color-yellow);animation:spin .8s linear infinite}.loading-spinner-enhanced:after{width:48px;height:48px;border:3px solid transparent;border-top-color:var(--color-yellow);opacity:.3;animation:spin .8s linear infinite reverse}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-elevated) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1rem;margin-bottom:var(--space-2)}.skeleton-text-lg{height:1.5rem;margin-bottom:var(--space-3)}.skeleton-button{height:40px;width:120px;border-radius:var(--radius-md)}.skeleton-avatar{width:40px;height:40px;border-radius:50%}.skeleton-card{height:200px;border-radius:var(--radius-lg)}.skeleton-table{width:100%;border-collapse:collapse}.skeleton-table tr{border-bottom:1px solid var(--border-subtle)}.skeleton-table td{padding:var(--space-4)}.skeleton-table .skeleton{height:1rem}.loading-overlay{position:absolute;inset:0;background:#1a1a1ab3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;border-radius:inherit}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{to{transform:translate(100%)}}.loading-dots{display:inline-flex;gap:var(--space-2)}.loading-dots span{width:8px;height:8px;background:var(--color-yellow);border-radius:50%;animation:dot-bounce 1.4s infinite ease-in-out both}@keyframes dot-bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.page-transition{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-in-right{animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.slide-in-left{animation:slideInLeft .3s ease-out}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.scale-in{animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.fade-out{animation:fadeOut .2s ease-in-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.stagger-children>*{animation:fadeIn .3s ease-out backwards}.stagger-children>*:nth-child(1){animation-delay:.05s}.stagger-children>*:nth-child(2){animation-delay:.1s}.stagger-children>*:nth-child(3){animation-delay:.15s}.stagger-children>*:nth-child(4){animation-delay:.2s}.stagger-children>*:nth-child(5){animation-delay:.25s}.stagger-children>*:nth-child(6){animation-delay:.3s}.stagger-children>*:nth-child(7){animation-delay:.35s}.stagger-children>*:nth-child(8){animation-delay:.4s}.toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:9999;display:flex;flex-direction:column;gap:var(--space-3);max-width:400px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-slide-in .3s var(--ease-out)}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:var(--text-sm);font-weight:var(--font-weight-bold)}.toast-message{flex:1;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-primary);word-break:break-word}.toast-close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:var(--text-lg);cursor:pointer;transition:all var(--transition-fast) var(--ease-in-out)}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.toast-success{border-left:4px solid var(--color-green)}.toast-success .toast-icon{background:var(--color-green-dim);color:var(--color-green-bright)}.toast-error{border-left:4px solid var(--color-red)}.toast-error .toast-icon{background:var(--color-red-dim);color:var(--color-red-bright)}.toast-warning{border-left:4px solid var(--color-yellow)}.toast-warning .toast-icon{background:var(--color-yellow-dim);color:var(--color-yellow-bright)}.toast-info{border-left:4px solid var(--color-blue, #3b82f6)}.toast-info .toast-icon{background:#3b82f633;color:#60a5fa}@media(max-width:480px){.toast-container{left:var(--space-4);right:var(--space-4);bottom:var(--space-4);max-width:none}}.loading-spinner{border-radius:50%;border-style:solid;border-color:var(--border-default);border-top-color:var(--color-yellow);animation:spin 1s linear infinite}.loading-spinner--sm{width:16px;height:16px;border-width:2px}.loading-spinner--md{width:32px;height:32px;border-width:3px}.loading-spinner--lg{width:48px;height:48px;border-width:4px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-4)}.loading-inline{display:inline-flex;align-items:center;gap:var(--space-2)}.loading-message-inline{font-size:var(--text-sm);color:var(--text-secondary)}.loading-message{color:var(--text-secondary);font-size:var(--text-base);font-family:var(--font-primary);margin:0}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);color:var(--text-secondary);font-size:var(--text-base)}.outlet-selector{position:relative;display:inline-block}.outlet-selector.loading,.outlet-selector.empty{padding:.375rem .75rem;font-size:.875rem;color:var(--text-secondary, #a3a3a3)}.outlet-selector-button{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:4px;cursor:pointer;font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;color:var(--text-primary, #e6e6e6);transition:all .15s ease;min-width:200px}.outlet-selector-button:hover{background:var(--bg-elevated, #323232);border-color:var(--border-strong, #4d4d4d)}.outlet-selector-button:focus{outline:none;border-color:var(--color-yellow, #d4a72c);box-shadow:0 0 0 3px #d4a72c1a}.outlet-icon{font-size:1rem;flex-shrink:0}.outlet-name{flex:1;text-align:left;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outlet-dropdown-arrow{font-size:.625rem;color:var(--text-tertiary, #6b6b6b);transition:transform .15s ease}.outlet-selector-button[aria-expanded=true] .outlet-dropdown-arrow{transform:rotate(180deg)}.outlet-dropdown{position:absolute;top:calc(100% + .5rem);left:0;min-width:100%;max-width:300px;background:var(--bg-elevated, #323232);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;box-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;z-index:1000;max-height:400px;overflow-y:auto;animation:dropdownFadeIn .15s ease}.outlet-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;text-align:left;cursor:pointer;transition:all .15s ease}.outlet-dropdown-item:hover{background:var(--bg-tertiary, #2d2d2d)}.outlet-dropdown-item.active{background:var(--bg-tertiary, #2d2d2d);border-left:2px solid var(--color-yellow, #d4a72c)}.outlet-dropdown-item:first-child{border-radius:6px 6px 0 0}.outlet-dropdown-item:last-child{border-radius:0 0 6px 6px}.outlet-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.outlet-name-text{font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:500;color:var(--text-primary, #e6e6e6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outlet-location{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.75rem;color:var(--text-tertiary, #6b6b6b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checkmark{color:var(--color-yellow, #d4a72c);font-weight:700;margin-left:auto}.outlet-dropdown-divider{height:1px;background:var(--border-subtle, #2d2d2d);margin:.25rem 0}@media(max-width:768px){.outlet-selector-button{min-width:150px;padding:6px 12px;font-size:13px}.outlet-dropdown{max-width:250px}.outlet-dropdown-item{padding:10px 12px}}.impersonation-banner{background:linear-gradient(90deg,#dc2626,#ef4444);border-bottom:2px solid #b91c1c;padding:.75rem 0;position:sticky;top:0;z-index:101}.impersonation-content{max-width:1920px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between}.impersonation-info{display:flex;align-items:center;gap:.75rem;color:#fff}.impersonation-text{font-size:.875rem;font-weight:500}.impersonation-text strong{font-weight:700}.impersonation-subtext{font-size:.75rem;opacity:.9;font-style:italic}.btn-exit-impersonation{padding:.5rem 1rem;background:#fff;color:#dc2626;border:none;border-radius:4px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-exit-impersonation:hover{background:#fee2e2;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.navigation{background:var(--bg-secondary, #242424);border-bottom:1px solid var(--border-default, #3d3d3d);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-container{max-width:1920px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:60px}.nav-left{display:flex;align-items:center;gap:2rem}.nav-brand{display:flex;align-items:center}.brand-link{text-decoration:none;display:flex;flex-direction:column;gap:0}.brand-name{font-family:var(--font-primary, "Inter", sans-serif);font-size:1.125rem;font-weight:700;color:var(--text-primary, #e6e6e6);letter-spacing:-.02em;line-height:1}.brand-module{font-family:var(--font-primary, "Inter", sans-serif);font-size:.75rem;font-weight:500;color:var(--text-tertiary, #6b6b6b);letter-spacing:.02em;text-transform:uppercase;line-height:1;margin-top:2px}.nav-links{display:flex;align-items:center;gap:.5rem}.nav-link{font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:500;color:var(--text-secondary, #a3a3a3);text-decoration:none;padding:.5rem .75rem;border-radius:4px;transition:all .15s ease}.nav-link:hover{color:var(--text-primary, #e6e6e6);background:var(--bg-tertiary, #2d2d2d)}.nav-link.active{color:var(--text-primary, #e6e6e6);background:var(--bg-tertiary, #2d2d2d);border-bottom:2px solid var(--color-yellow, #d4a72c)}.nav-link.apps-link{color:var(--text-tertiary, #6b6b6b);border:1px solid var(--border-default, #3d3d3d);margin-right:.5rem}.nav-link.apps-link:hover{color:var(--text-primary, #e6e6e6);background:var(--bg-tertiary, #2d2d2d);border-color:var(--border-strong, #4d4d4d)}.nav-link.super-admin-link{color:var(--color-red-bright, #ff4d4f);background:#d434381a;border-bottom:2px solid transparent;font-weight:600}.nav-link.super-admin-link:hover{color:#ff7875;background:#d4343826}.nav-link.super-admin-link.active{color:var(--color-red-bright, #ff4d4f);background:#d4343826;border-bottom:2px solid var(--color-red-bright, #ff4d4f)}.nav-right{display:flex;align-items:center;gap:1rem}.org-badge{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:4px}.org-name{font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:500;color:var(--text-primary, #e6e6e6)}.tier-badge{font-family:var(--font-primary, "Inter", sans-serif);font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:9999px;text-transform:uppercase;letter-spacing:.02em}.tier-badge.tier-free{background:var(--bg-elevated, #323232);color:var(--text-secondary, #a3a3a3)}.tier-badge.tier-basic{background:#3b82f626;color:#60a5fa}.tier-badge.tier-pro{background:#d4a72c26;color:var(--color-yellow-bright, #fadb14)}.tier-badge.tier-enterprise{background:#8b5cf626;color:#a78bfa}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:4px;color:var(--text-primary, #e6e6e6);cursor:pointer;font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;transition:all .15s ease}.user-menu-trigger:hover{background:var(--bg-elevated, #323232);border-color:var(--border-strong, #4d4d4d)}.user-name{font-weight:500}.user-role{font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:9999px;text-transform:uppercase;letter-spacing:.02em}.user-role.role-admin{background:#d4343826;color:var(--color-red-bright, #ff4d4f)}.user-role.role-chef{background:#d4a72c26;color:var(--color-yellow-bright, #fadb14)}.user-role.role-viewer{background:#2d865326;color:var(--color-green-bright, #52c41a)}.user-role.role-foh_manager{background:#3b82f626;color:#60a5fa}.user-menu-arrow{font-size:.625rem;color:var(--text-tertiary, #6b6b6b);transition:transform .15s ease}.user-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;background:var(--bg-elevated, #323232);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;box-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;overflow:hidden;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:.75rem 1rem;background:var(--bg-tertiary, #2d2d2d)}.user-menu-name{font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:600;color:var(--text-primary, #e6e6e6)}.user-menu-email{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.75rem;color:var(--text-tertiary, #6b6b6b);margin-top:.25rem}.user-menu-divider{height:1px;background:var(--border-subtle, #2d2d2d)}.user-menu-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;color:var(--text-primary, #e6e6e6);font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:500;text-align:left;cursor:pointer;transition:all .15s ease}.user-menu-item:hover{background:var(--bg-tertiary, #2d2d2d);color:var(--color-red-bright, #ff4d4f)}.user-menu-icon{font-size:1rem}@media(max-width:768px){.nav-container{height:auto;flex-direction:column;padding:1rem;gap:1rem}.nav-left{width:100%;flex-direction:column;gap:1rem}.nav-links{width:100%;flex-wrap:wrap;justify-content:center}.nav-right{width:100%;justify-content:space-between}}.home{min-height:100vh;background:var(--bg-primary)}.home-container{max-width:1200px;width:100%;margin:0 auto;padding:var(--space-8);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px)}.home-header{text-align:center;margin-bottom:var(--space-12)}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);padding:var(--space-4) 0}.user-name{font-family:var(--font-primary);font-weight:var(--font-weight-medium);font-size:var(--text-base);color:var(--text-primary)}.user-role{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.btn-logout{padding:var(--space-2) var(--space-4);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-logout:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.home-header h1{font-family:var(--font-primary);font-size:4rem;font-weight:var(--font-weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary);margin-bottom:var(--space-4)}.home-header p{font-size:var(--text-xl);color:var(--text-secondary);font-weight:var(--font-weight-regular)}.nav-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6);margin-bottom:var(--space-8);width:100%}.nav-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-8);text-decoration:none;transition:all var(--transition-slow) var(--ease-in-out);position:relative;overflow:hidden}.nav-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--border-default);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base) var(--ease-in-out)}.nav-card:hover:before{transform:scaleX(1)}.nav-card:hover{transform:translateY(-4px);border-color:var(--border-default);box-shadow:var(--shadow-lg)}.card-icon{font-size:3rem;margin-bottom:var(--space-4);color:var(--text-secondary);transition:color var(--transition-base) var(--ease-in-out)}.nav-card:hover .card-icon{color:var(--color-yellow)}.nav-card h2{font-family:var(--font-primary);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2);line-height:var(--leading-tight)}.nav-card p{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-6)}.card-arrow{position:absolute;bottom:var(--space-6);right:var(--space-6);font-size:1.5rem;color:var(--text-tertiary);transition:all var(--transition-base) var(--ease-in-out)}.nav-card:hover .card-arrow{transform:translate(8px);color:var(--color-yellow)}.nav-card.admin-card:before{background:var(--color-red)}.nav-card.admin-card:hover .card-icon,.nav-card.admin-card:hover .card-arrow{color:var(--color-red)}.home-footer{text-align:center;color:var(--text-tertiary);font-size:var(--text-sm);font-family:var(--font-mono);letter-spacing:var(--tracking-wide)}@media(max-width:768px){.home{padding:var(--space-4)}.home-header h1{font-size:2.5rem}.home-header p{font-size:var(--text-base)}.nav-cards{grid-template-columns:1fr;gap:var(--space-4)}.nav-card{padding:var(--space-6)}.header-top{flex-direction:column;gap:var(--space-4);align-items:flex-start}}.app-launcher{min-height:100vh;background:var(--bg-primary)}.launcher-container{max-width:1000px;width:100%;margin:0 auto;padding:var(--space-8);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px)}.launcher-header{text-align:center;margin-bottom:var(--space-12)}.launcher-header h1{font-family:var(--font-primary);font-size:4rem;font-weight:var(--font-weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary);margin-bottom:var(--space-4)}.launcher-header p{font-size:var(--text-xl);color:var(--text-secondary);font-weight:var(--font-weight-regular)}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6);width:100%;margin-bottom:var(--space-8)}.module-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-8);text-decoration:none;transition:all var(--transition-slow) var(--ease-in-out);position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:200px}.module-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--border-default);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base) var(--ease-in-out)}.module-card:not(.module-disabled):hover:before{transform:scaleX(1)}.module-card:not(.module-disabled):hover{transform:translateY(-6px);border-color:var(--border-default);box-shadow:var(--shadow-lg)}.module-green:before{background:var(--color-green)}.module-green:not(.module-disabled):hover{border-color:var(--color-green-dim)}.module-blue:before{background:var(--color-blue)}.module-blue:not(.module-disabled):hover{border-color:#3b82f64d}.module-purple:before{background:var(--color-purple)}.module-disabled{opacity:.6;cursor:not-allowed}.module-disabled:hover{transform:none;border-color:var(--border-subtle);box-shadow:none}.module-icon{font-size:3.5rem;margin-bottom:var(--space-4);transition:transform var(--transition-base) var(--ease-in-out)}.module-card:not(.module-disabled):hover .module-icon{transform:scale(1.1)}.module-content{flex:1}.module-content h2{font-family:var(--font-primary);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2);line-height:var(--leading-tight)}.module-content p{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}.module-arrow{position:absolute;bottom:var(--space-6);right:var(--space-6);font-size:1.5rem;color:var(--text-tertiary);transition:all var(--transition-base) var(--ease-in-out)}.module-card:not(.module-disabled):hover .module-arrow{transform:translate(8px);color:var(--color-yellow)}.module-green:not(.module-disabled):hover .module-arrow{color:var(--color-green)}.module-blue:not(.module-disabled):hover .module-arrow{color:var(--color-blue)}.module-badge{position:absolute;top:var(--space-4);right:var(--space-4);background:var(--bg-tertiary);color:var(--text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.launcher-footer{text-align:center;color:var(--text-tertiary);font-size:var(--text-sm);font-family:var(--font-mono);letter-spacing:var(--tracking-wide)}@media(max-width:768px){.launcher-container{padding:var(--space-4)}.launcher-header h1{font-size:2.5rem}.launcher-header p{font-size:var(--text-base)}.module-grid{grid-template-columns:1fr;gap:var(--space-4)}.module-card{padding:var(--space-6);min-height:160px}.module-icon{font-size:2.5rem}}.outlet-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:#d4a72c26;border:1px solid rgba(212,167,44,.3);border-radius:4px;font-family:var(--font-primary, "Inter", sans-serif);font-size:.75rem;font-weight:600;color:var(--color-yellow-bright, #fadb14);white-space:nowrap}.outlet-badge-icon{font-size:.875rem;line-height:1}.outlet-badge-text{line-height:1}.outlet-badge.compact{padding:.125rem .5rem;font-size:.6875rem}.outlet-badge.compact .outlet-badge-icon{font-size:.75rem}.common-products-container{padding-top:var(--space-4)}.common-products-filters{display:flex;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.common-products-filters .search-input{flex:1;min-width:250px}.selection-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--color-yellow-dim);border:1px solid var(--color-yellow);border-radius:var(--radius-md)}.selection-count{font-weight:var(--font-weight-semibold);color:var(--color-yellow-bright);font-size:var(--text-sm)}.selection-actions{display:flex;gap:var(--space-3)}.btn-merge{padding:var(--space-2) var(--space-4);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.btn-merge:hover:not(:disabled){background:var(--color-yellow-bright);transform:translateY(-1px)}.btn-merge:disabled{opacity:.5;cursor:not-allowed}.btn-clear-selection{padding:var(--space-2) var(--space-4);background:transparent;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-base)}.btn-clear-selection:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.common-products-table{width:100%;border-collapse:collapse}.common-products-table thead{background:var(--bg-tertiary);border-bottom:2px solid var(--border-default)}.common-products-table th{padding:var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.common-products-table tbody tr{border-bottom:1px solid var(--border-subtle);transition:background-color var(--transition-fast)}.common-products-table tbody tr:hover{background:var(--bg-tertiary)}.common-products-table tbody tr.selected{background:var(--color-yellow-dim)}.common-products-table tbody tr.selected:hover{background:#d4a72c33}.common-products-table td{padding:var(--space-3) var(--space-4);color:var(--text-secondary);font-size:var(--text-sm)}.checkbox-col{width:40px;text-align:center}.checkbox-col input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-yellow)}.name-cell{font-weight:var(--font-weight-medium);color:var(--text-primary)}.name-cell .editable-cell{max-width:300px}.name-cell .inline-edit-input{max-width:280px}.category-cell{color:var(--text-secondary)}.category-cell .editable-cell{padding:var(--space-1) var(--space-2);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono)}.category-edit-wrapper{position:relative}.category-edit-wrapper .inline-edit-input{max-width:150px}.name-header{min-width:200px}.allergens-header{min-width:420px}.dietary-header{min-width:140px}.category-header{min-width:120px}.linked-header{width:70px}.allergens-cell{padding:var(--space-2) var(--space-3)!important}.allergen-grid-inline{display:flex;flex-wrap:wrap;gap:4px}.allergen-pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-tertiary);border:1px solid var(--border-subtle);color:var(--text-tertiary);-webkit-user-select:none;user-select:none;white-space:nowrap}.allergen-pill:hover{background:var(--color-yellow-dim);border-color:var(--color-yellow);color:var(--text-primary)}.allergen-pill.checked{background:var(--color-yellow);border-color:var(--color-yellow);color:var(--bg-primary);font-weight:var(--font-weight-semibold)}.dietary-cell{padding:var(--space-2) var(--space-3)!important}.dietary-grid-inline{display:flex;flex-direction:column;gap:4px}.dietary-pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-tertiary);border:1px solid var(--border-subtle);color:var(--text-tertiary);-webkit-user-select:none;user-select:none;white-space:nowrap}.dietary-pill:hover{background:var(--color-green-dim);border-color:var(--color-green);color:var(--text-primary)}.dietary-pill.checked{background:var(--color-green);border-color:var(--color-green);color:var(--bg-primary);font-weight:var(--font-weight-semibold)}.linked-cell{width:80px}.linked-count-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:var(--space-1) var(--space-2);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-fast)}.linked-count-btn:hover{background:var(--color-yellow-dim);border-color:var(--color-yellow);color:var(--color-yellow-bright)}.editable-cell.saving{opacity:.7;pointer-events:none}.merge-modal{max-width:500px}.merge-instruction{color:var(--text-secondary);margin-bottom:var(--space-4)}.merge-products-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-6)}.merge-product-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.merge-product-option:hover{background:var(--bg-elevated)}.merge-product-option.selected{background:var(--color-yellow-dim);border-color:var(--color-yellow)}.merge-product-option input[type=radio]{width:18px;height:18px;accent-color:var(--color-yellow);cursor:pointer}.merge-product-info{flex:1;display:flex;align-items:center;gap:var(--space-2)}.merge-product-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.merge-product-linked{color:var(--text-tertiary);font-size:var(--text-xs)}.merge-product-category{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-mono)}.merge-preview{padding:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.merge-preview h3{margin:0 0 var(--space-3) 0;font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.merge-preview-content{display:flex;flex-direction:column;gap:var(--space-3)}.preview-item{display:flex;align-items:center;gap:var(--space-3)}.preview-label{color:var(--text-secondary);font-size:var(--text-sm);min-width:140px}.preview-value{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-family:var(--font-mono)}.preview-allergens{display:flex;gap:var(--space-1);flex-wrap:wrap}.merge-error{padding:var(--space-3);background:var(--color-red-dim);border:1px solid var(--color-red);border-radius:var(--radius-md);color:var(--color-red-bright);font-size:var(--text-sm);margin-top:var(--space-4)}.btn-merge-confirm{padding:var(--space-3) var(--space-5);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.btn-merge-confirm:hover:not(:disabled){background:var(--color-yellow-bright);transform:translateY(-1px)}.btn-merge-confirm:disabled{opacity:.5;cursor:not-allowed}.linked-products-modal{max-width:600px}.linked-modal-product-name{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-default)}.taxonomy-view-container{padding-top:var(--space-4)}.taxonomy-filters{display:flex;gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center}.taxonomy-filters .search-input{flex:1;min-width:250px}.expand-controls{display:flex;gap:var(--space-2)}.btn-expand,.btn-collapse,.btn-merge{padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.btn-expand:hover,.btn-collapse:hover,.btn-merge:hover{background:var(--bg-elevated);border-color:var(--border-strong);color:var(--text-primary)}.btn-merge.active{background:var(--color-yellow-dim);border-color:var(--color-yellow);color:var(--color-yellow)}.merge-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-yellow-dim);border:1px solid var(--color-yellow);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.merge-info{flex:1;color:var(--text-primary);font-size:var(--text-sm)}.btn-execute-merge{padding:var(--space-2) var(--space-4);background:var(--color-yellow);border:none;border-radius:var(--radius-md);color:var(--bg-primary);font-weight:var(--font-weight-semibold);cursor:pointer}.btn-execute-merge:hover{opacity:.9}.btn-cancel-merge{padding:var(--space-2) var(--space-3);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer}.attribute-filters{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center}.attribute-filters-label{font-size:var(--text-sm);color:var(--text-tertiary);margin-right:var(--space-2)}.attribute-filter-select{padding:var(--space-1) var(--space-2);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;min-width:80px}.attribute-filter-select:focus{outline:none;border-color:var(--color-yellow)}.btn-clear-filters{padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--color-red);border-radius:var(--radius-sm);color:var(--color-red);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.btn-clear-filters:hover{background:var(--color-red-dim)}.taxonomy-stats{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary)}.stat-separator{color:var(--text-tertiary)}.filtered-indicator{color:var(--color-yellow);font-weight:var(--font-weight-medium)}.taxonomy-tree{display:flex;flex-direction:column;gap:var(--space-1)}.base-ingredient-group{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.base-ingredient-group:hover{border-color:var(--border-default)}.base-ingredient-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.base-ingredient-row:hover{background:var(--bg-tertiary)}.base-ingredient-row.expanded{background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle)}.expand-icon{font-size:var(--text-xs);color:var(--text-tertiary);width:16px;text-align:center;transition:transform var(--transition-fast)}.base-name{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--text-base);flex:1}.variant-count{font-size:var(--text-sm);color:var(--text-tertiary);background:var(--bg-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-family:var(--font-mono)}.base-category{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-elevated);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-mono)}.btn-add-variant{width:24px;height:24px;padding:0;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-base);cursor:pointer;opacity:0;transition:all var(--transition-fast)}.base-ingredient-row:hover .btn-add-variant{opacity:1}.btn-add-variant:hover{background:var(--color-green-dim);border-color:var(--color-green);color:var(--color-green)}.variants-container{padding:var(--space-2) var(--space-4) var(--space-3);background:var(--bg-primary)}.no-variants{padding:var(--space-2);color:var(--text-tertiary);font-size:var(--text-sm);font-style:italic}.variant-group{margin-bottom:var(--space-1)}.variant-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-left:var(--space-4);border-radius:var(--radius-sm);transition:background-color var(--transition-fast);cursor:pointer}.variant-row:hover{background:var(--bg-tertiary)}.variant-row.expanded{background:var(--bg-secondary);border-left:2px solid var(--color-yellow)}.variant-row.selected-merge{background:var(--color-yellow-dim);border:1px solid var(--color-yellow)}.merge-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--color-yellow)}.variant-indent{color:var(--border-default);font-family:var(--font-mono);font-size:var(--text-sm);width:16px;text-align:center}.variant-display-name{color:var(--text-secondary);font-size:var(--text-sm);flex:1;min-width:0}.variant-badges{display:flex;gap:4px;flex-wrap:wrap}.variant-badge{font-size:10px;padding:2px 6px;border-radius:10px;font-weight:var(--font-weight-medium);white-space:nowrap}.badge-variety{background:var(--color-purple-dim, rgba(155, 89, 182, .15));color:var(--color-purple, #9b59b6);border:1px solid var(--color-purple, #9b59b6)}.badge-form{background:var(--color-blue-dim, rgba(52, 152, 219, .15));color:var(--color-blue, #3498db);border:1px solid var(--color-blue, #3498db)}.badge-prep{background:var(--color-green-dim);color:var(--color-green);border:1px solid var(--color-green)}.badge-cut_size{background:var(--color-yellow-dim);color:var(--color-yellow);border:1px solid var(--color-yellow)}.badge-cut{background:var(--color-red-dim);color:var(--color-red);border:1px solid var(--color-red)}.badge-bone{background:#e67e2226;color:#e67e22;border:1px solid #e67e22}.badge-skin{background:#f1c40f26;color:#f1c40f;border:1px solid #f1c40f}.badge-grade{background:#2ecc7126;color:#2ecc71;border:1px solid #2ecc71}.badge-state{background:#34495e26;color:#95a5a6;border:1px solid #95a5a6}.variant-counts{display:flex;gap:var(--space-2);margin-left:auto;flex-shrink:0}.count-badge{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);white-space:nowrap}.count-products{background:var(--bg-elevated);color:var(--text-tertiary)}.count-skus{background:var(--color-blue-dim, rgba(52, 152, 219, .15));color:var(--color-blue, #3498db)}.count-recipes{background:var(--color-green-dim);color:var(--color-green)}.variant-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.variant-row:hover .variant-actions{opacity:1}.btn-edit,.btn-save,.btn-cancel{width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);display:flex;align-items:center;justify-content:center}.btn-edit{background:var(--bg-elevated);color:var(--text-secondary)}.btn-edit:hover{background:var(--color-blue-dim);color:var(--color-blue)}.btn-save{background:var(--color-green-dim);color:var(--color-green)}.btn-save:hover{background:var(--color-green);color:var(--bg-primary)}.btn-cancel{background:var(--bg-elevated);color:var(--text-tertiary)}.btn-cancel:hover{background:var(--color-red-dim);color:var(--color-red)}.edit-input{padding:var(--space-1) var(--space-2);background:var(--bg-primary);border:1px solid var(--color-yellow);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm)}.edit-name{flex:1;min-width:150px}.variant-edit-form{margin-left:calc(var(--space-4) + 24px);padding:var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-top:var(--space-2);margin-bottom:var(--space-2)}.edit-attrs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-2)}.edit-attr-field{display:flex;flex-direction:column;gap:var(--space-1)}.edit-attr-field label{font-size:var(--text-xs);color:var(--text-tertiary)}.edit-attr-field input{padding:var(--space-1) var(--space-2);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm)}.edit-attr-field input:focus{outline:none;border-color:var(--color-yellow)}.common-products-container{margin-left:calc(var(--space-4) + 24px);padding:var(--space-2) 0;border-left:1px dashed var(--border-subtle)}.loading-products,.no-products{padding:var(--space-2) var(--space-3);color:var(--text-tertiary);font-size:var(--text-xs);font-style:italic}.common-product-group{margin-bottom:var(--space-1)}.common-product-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.cp-indent{color:var(--border-default);font-family:var(--font-mono);font-size:var(--text-xs)}.cp-name{color:var(--text-secondary);flex:1}.cp-unit{color:var(--text-tertiary);font-size:var(--text-xs)}.cp-linked-count{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono)}.common-product-row:hover{background:var(--bg-tertiary);border-radius:var(--radius-sm)}.common-product-row.has-unassigned{background:#e67e2214;border-left:2px solid #e67e22;padding-left:calc(var(--space-3) - 2px)}.cp-edit-input{flex:1;padding:var(--space-1) var(--space-2);background:var(--bg-primary);border:1px solid var(--color-yellow);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);min-width:200px}.cp-edit-input:focus{outline:none;box-shadow:0 0 0 2px var(--color-yellow-dim)}.btn-cp-info{width:20px;height:20px;padding:0;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-tertiary);font-size:11px;cursor:help;flex-shrink:0}.btn-cp-info:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.btn-cp-info.has-warning{background:#e67e2226;border-color:#e67e22;color:#e67e22}.cp-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.common-product-row:hover .cp-actions{opacity:1}.cp-actions .btn-edit,.cp-actions .btn-save,.cp-actions .btn-cancel{width:20px;height:20px;font-size:11px}.linked-products{margin-left:var(--space-4)}.linked-product-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary)}.linked-product-row:hover{background:var(--bg-tertiary);border-radius:var(--radius-sm)}.lp-indent{color:var(--border-subtle);font-family:var(--font-mono)}.lp-vendor{font-weight:var(--font-weight-medium);color:var(--text-secondary);min-width:80px}.lp-description{flex:1;color:var(--text-tertiary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-pack{color:var(--text-tertiary);background:var(--bg-elevated);padding:1px 4px;border-radius:var(--radius-sm);font-family:var(--font-mono)}.lp-price{color:var(--color-green);font-family:var(--font-mono);min-width:50px;text-align:right}.lp-code{color:var(--text-tertiary);font-family:var(--font-mono);font-size:9px}.taxonomy-view-container .loading,.taxonomy-view-container .empty-state{text-align:center;padding:var(--space-8);color:var(--text-tertiary)}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-content h3{margin:0 0 var(--space-4);color:var(--text-primary);font-size:var(--text-lg)}.form-field{margin-bottom:var(--space-4)}.form-field label{display:block;margin-bottom:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm)}.form-field input{width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base)}.form-field input:focus{outline:none;border-color:var(--color-yellow)}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.btn-primary{padding:var(--space-2) var(--space-4);background:var(--color-yellow);border:none;border-radius:var(--radius-md);color:var(--bg-primary);font-weight:var(--font-weight-semibold);cursor:pointer}.btn-primary:hover{opacity:.9}.btn-secondary{padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer}.btn-secondary:hover{background:var(--bg-tertiary)}.tree-line{color:var(--border-default);margin-right:4px}.variant-row.depth-1,.variant-row.depth-2,.variant-row.depth-3{border-left:1px dashed var(--border-subtle);margin-left:0}.variant-row.depth-1{background:#00000005}.variant-row.depth-2{background:#0000000a}.variant-row.depth-3{background:#0000000f}.count-children{background:var(--color-purple-dim, rgba(155, 89, 182, .15));color:var(--color-purple, #9b59b6)}.btn-move{width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);color:var(--text-secondary)}.btn-move:hover{background:var(--color-purple-dim, rgba(155, 89, 182, .15));color:var(--color-purple, #9b59b6)}.move-modal{max-width:450px}.move-hint{color:var(--text-tertiary);font-size:var(--text-sm);margin-bottom:var(--space-4)}.move-options{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto;padding:var(--space-2) 0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary)}.move-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background-color var(--transition-fast)}.move-option:hover{background:var(--bg-tertiary)}.move-option.selected{background:var(--color-yellow-dim)}.move-option input[type=radio]{accent-color:var(--color-yellow)}.move-option .option-label{color:var(--text-secondary);font-size:var(--text-sm)}.btn-reassign{width:20px;height:20px;padding:0;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-tertiary);opacity:0;transition:all var(--transition-fast);margin-left:auto}.linked-product-row:hover .btn-reassign{opacity:1}.btn-reassign:hover{background:var(--color-blue-dim, rgba(52, 152, 219, .15));color:var(--color-blue, #3498db)}.reassign-modal{max-width:500px}.reassign-product-name{color:var(--text-primary);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.reassign-hint{color:var(--text-tertiary);font-size:var(--text-sm);margin-bottom:var(--space-3)}.cp-search-input{width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);margin-bottom:var(--space-3)}.cp-search-input:focus{outline:none;border-color:var(--color-yellow)}.cp-search-results{max-height:250px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);margin-bottom:var(--space-4)}.cp-search-results .searching,.cp-search-results .no-results{padding:var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.cp-result{display:flex;flex-direction:column;padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid var(--border-subtle);transition:background-color var(--transition-fast)}.cp-result:last-child{border-bottom:none}.cp-result:hover{background:var(--bg-tertiary)}.cp-result.selected{background:var(--color-yellow-dim)}.cp-result-name{color:var(--text-primary);font-size:var(--text-sm)}.cp-result-variant{color:var(--text-tertiary);font-size:var(--text-xs);margin-top:2px}.products-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-6);border-bottom:2px solid var(--border-default)}.products-tab{padding:var(--space-3) var(--space-6);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--text-secondary);font-size:var(--text-base);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-fast)}.products-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.products-tab.active{color:var(--color-yellow);border-bottom-color:var(--color-yellow)}.common-products-wrapper{display:flex;flex-direction:column}.view-toggle-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.view-toggle-label{font-size:var(--text-sm);color:var(--text-tertiary)}.view-toggle-buttons{display:flex;background:var(--bg-tertiary);border-radius:var(--radius-md);padding:2px;border:1px solid var(--border-default)}.view-toggle-btn{padding:var(--space-2) var(--space-3);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.view-toggle-btn:hover{color:var(--text-primary)}.view-toggle-btn.active{background:var(--color-yellow);color:var(--bg-primary);font-weight:var(--font-weight-semibold)}.filters{display:flex;gap:var(--space-4);margin-bottom:var(--space-6);align-items:center;flex-wrap:wrap}.search-input{flex:1;min-width:250px;padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-family:var(--font-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);transition:all var(--transition-base) var(--ease-in-out)}.search-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:all var(--transition-base) var(--ease-in-out)}.checkbox-label:hover{border-color:var(--border-strong)}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.results-count{padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-weight:var(--font-weight-medium);font-family:var(--font-mono)}.loading .loading-spinner-enhanced{margin-bottom:var(--space-2)}.table-container{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-sm);max-width:100%;-webkit-overflow-scrolling:touch}.table-container::-webkit-scrollbar{height:8px}.table-container::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:var(--radius-sm)}.table-container::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-sm)}.table-container::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.products-table{width:100%;min-width:1100px;border-collapse:collapse}.products-table thead{background:var(--bg-tertiary);border-bottom:2px solid var(--border-default)}.products-table th{padding:var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-primary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.products-table tbody tr{border-bottom:1px solid var(--border-subtle);transition:background-color var(--transition-fast) var(--ease-in-out)}.products-table tbody tr:hover{background:var(--bg-tertiary)}.products-table tbody tr:last-child{border-bottom:none}.products-table td{padding:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-primary)}.product-name{font-weight:var(--font-weight-medium);color:var(--text-primary);max-width:300px}.brand-cell{color:var(--color-yellow);font-weight:var(--font-weight-medium)}.distributor-cell{color:var(--text-secondary)}.price-cell{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.text-right{text-align:right}.text-center{text-align:center}.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.status-badge.mapped{background:var(--color-green-dim);color:var(--color-green-bright);border:1px solid var(--color-green)}.status-badge.unmapped{background:var(--color-yellow-dim);color:var(--color-yellow-bright);border:1px solid var(--color-yellow)}.mapping-cell{position:relative;min-width:200px}.mapping-display{display:flex;align-items:center;gap:.5rem}.common-product-badge{display:inline-block;padding:var(--space-1) var(--space-3);background:var(--color-yellow);color:var(--bg-primary);border:1px solid var(--color-yellow);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-medium);font-family:var(--font-primary);transition:all var(--transition-base) var(--ease-in-out)}.common-product-badge.clickable{cursor:pointer}.common-product-badge.clickable:hover{background:var(--color-yellow-dim);color:var(--color-yellow-bright);transform:scale(1.05)}.common-product-edit{display:inline-block}.common-product-edit-input{padding:var(--space-1) var(--space-3);border:2px solid var(--color-yellow);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-medium);font-family:var(--font-primary);color:var(--color-yellow-bright);background:var(--color-yellow-dim);outline:none;min-width:150px}.btn-map{padding:var(--space-1) var(--space-3);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-map:hover{background:var(--color-yellow-bright)}.btn-unmap{padding:var(--space-1) var(--space-2);background:var(--color-red);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-base);line-height:1;cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-unmap:hover{background:var(--color-red-bright)}.mapping-editor{position:relative}.mapping-input{width:100%;padding:var(--space-2);border:2px solid var(--color-yellow);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);outline:none}.mapping-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.btn-cancel{padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:200px;overflow-y:auto;z-index:1000;margin-top:var(--space-1)}.autocomplete-item{padding:var(--space-3);cursor:pointer;transition:background var(--transition-fast) var(--ease-in-out);display:flex;align-items:center;justify-content:space-between;color:var(--text-primary);font-family:var(--font-primary)}.autocomplete-item.create-new{color:var(--color-yellow);font-weight:var(--font-weight-medium);border-top:1px solid var(--border-default)}.category-tag{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-tertiary);font-family:var(--font-mono)}@media(max-width:1200px){.products-table{min-width:1000px}}@media(max-width:768px){.filters{flex-direction:column;align-items:stretch}.search-input{width:100%}}.common-product-display{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.allergen-tags{display:flex;align-items:center;gap:.2rem;margin-left:.5rem}.allergen-tag{font-size:.65rem;font-weight:600;padding:.1rem .25rem;background:var(--color-yellow-dim, rgba(212, 167, 44, .15));color:var(--color-yellow, #d4a72c);border-radius:3px;cursor:default}.allergen-more{font-size:.7rem;color:#666;padding:.1rem .3rem;background:#f0f0f0;border-radius:8px}.btn-allergen{padding:.25rem .4rem;background:transparent;border:1px solid #ddd;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-allergen:hover{background:#f5f5f5;border-color:#999}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.allergen-modal{max-width:750px;width:90%}.allergen-product-name{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);color:var(--text-primary);margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-default)}.allergen-section{margin-bottom:1.5rem}.allergen-section h3{font-size:1rem;color:var(--text-primary);margin:0 0 .25rem}.allergen-section-note{font-size:.85rem;color:var(--text-secondary);margin:0 0 1rem}.allergen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem}.dietary-grid{grid-template-columns:repeat(2,1fr)}.allergen-checkbox{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.allergen-checkbox:hover{background:var(--bg-elevated)}.allergen-checkbox.active{background:var(--color-yellow-dim);border-color:var(--color-yellow)}.allergen-checkbox input[type=checkbox]{display:none}.allergen-checkbox-abbr{font-size:.75rem;font-weight:700;color:var(--text-secondary);min-width:24px;text-align:center}.allergen-checkbox.active .allergen-checkbox-abbr{color:var(--color-yellow)}.allergen-checkbox.dietary.active .allergen-checkbox-abbr{color:var(--color-green)}.allergen-checkbox-label{font-size:.85rem;color:var(--text-primary);font-weight:500}.dietary-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.btn-done{padding:.6rem 1.5rem;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-done:hover{background:#5568d3}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-top:var(--space-6);margin-bottom:1.5rem}.header-content h1{margin-bottom:.25rem}.header-content p{margin:0;color:#666}.btn-upload-toggle{padding:var(--space-2) var(--space-5);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);white-space:nowrap}.btn-upload-toggle:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-upload-toggle.active{background:var(--bg-tertiary);color:var(--text-secondary)}.upload-section{background:var(--bg-secondary);border:2px dashed var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:var(--shadow-sm)}.upload-section h3{margin:0 0 1rem;font-size:1.1rem;color:#333}.upload-form{display:flex;flex-direction:column;gap:1rem}.upload-row{display:flex;gap:1.5rem;flex-wrap:wrap}.upload-field{display:flex;flex-direction:column;gap:.4rem}.upload-field label{font-size:.85rem;font-weight:500;color:#555}.upload-select,.upload-date{padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);min-width:180px;background:var(--bg-tertiary);color:var(--text-primary)}.upload-select:focus,.upload-date:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.upload-file-area{margin-top:.5rem}.file-label{display:flex;align-items:center;justify-content:center;padding:var(--space-8);border:2px dashed var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);font-size:var(--text-sm);font-family:var(--font-primary);color:var(--text-secondary)}.file-label:hover{border-color:var(--color-yellow);background:var(--bg-elevated)}.file-selected{color:var(--text-primary);font-weight:var(--font-weight-medium)}.upload-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.btn-upload{padding:var(--space-3) var(--space-6);background:var(--color-green);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-upload:hover:not(:disabled){background:var(--color-green-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-upload:disabled{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed}.btn-clear{padding:var(--space-3) var(--space-5);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-clear:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.upload-result{padding:var(--space-6);border-radius:var(--radius-lg)}.upload-result.success{background:var(--color-green-dim);border:1px solid var(--color-green)}.upload-result.error{background:var(--color-red-dim);border:1px solid var(--color-red)}.result-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.result-icon{font-size:var(--text-2xl);width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full)}.upload-result.success .result-icon{background:var(--color-green);color:#fff}.upload-result.error .result-icon{background:var(--color-red);color:#fff}.result-message{font-size:var(--text-base);font-weight:var(--font-weight-medium);font-family:var(--font-primary)}.upload-result.success .result-message{color:var(--color-green-bright)}.upload-result.error .result-message{color:var(--color-red-bright)}.result-stats{display:flex;gap:2rem;margin-bottom:1rem;flex-wrap:wrap}.result-stats .stat{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.5rem;background:#ffffffb3;border-radius:6px}.result-stats .stat.warning{background:#fff3cd}.stat-value{font-size:1.5rem;font-weight:700;color:#333}.stat-label{font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.result-errors{margin-top:1rem;padding:1rem;background:#ffffff80;border-radius:6px}.result-errors h4{margin:0 0 .5rem;font-size:.9rem;color:#721c24}.result-errors ul{margin:0;padding-left:1.25rem;font-size:.85rem;color:#721c24}.btn-new-upload{margin-top:1rem;padding:.6rem 1.25rem;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:background .2s}.btn-new-upload:hover{background:#5568d3}.editable-cell{cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast) var(--ease-in-out);display:inline-block;min-width:30px}.editable-cell:hover{background:var(--bg-tertiary)}.inline-edit-input{width:100%;max-width:120px;padding:var(--space-1) var(--space-2);border:2px solid var(--color-yellow);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);outline:none}.inline-edit-input[type=number]{max-width:80px;text-align:center;-moz-appearance:textfield}.inline-edit-input[type=number]::-webkit-outer-spin-button,.inline-edit-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.inline-edit-select{padding:.35rem .5rem;border:2px solid #667eea;border-radius:4px;font-size:.9rem;outline:none;background:#fff;cursor:pointer;min-width:70px}.inline-edit-select:focus{box-shadow:0 0 0 3px #667eea33}.product-name .inline-edit-input{max-width:280px}.brand-cell .inline-edit-input{max-width:150px}.catch-weight-toggle{background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);width:28px;height:28px;cursor:pointer;font-size:var(--text-sm);color:var(--text-tertiary);transition:all var(--transition-base) var(--ease-in-out);display:inline-flex;align-items:center;justify-content:center}.catch-weight-toggle:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.catch-weight-toggle.active{background:var(--color-yellow-dim);border-color:var(--color-yellow);color:var(--color-yellow-bright)}.btn-add-product{padding:var(--space-2) var(--space-4);background:var(--color-green);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);white-space:nowrap}.btn-add-product:hover{background:var(--color-green-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-add-product.active{background:var(--bg-tertiary);color:var(--text-secondary)}.add-product-row{background:var(--color-green-dim)!important;border-bottom:2px solid var(--color-green)!important}.add-product-row td{padding:var(--space-3) var(--space-2)!important}.add-product-row .inline-edit-input,.add-product-row .inline-edit-select{width:100%;border-color:var(--color-green)}.btn-save-product{padding:var(--space-2) var(--space-4);background:var(--color-green);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);white-space:nowrap}.btn-save-product:hover{background:var(--color-green-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.text-muted{color:var(--text-tertiary)}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast) var(--ease-in-out);white-space:nowrap}.sortable-header:hover{background:var(--bg-elevated)}.sortable-header.active{background:var(--bg-elevated);color:var(--color-yellow)}.common-product-link{cursor:pointer;color:var(--color-yellow);text-decoration:underline;text-decoration-style:dotted;text-decoration-color:var(--color-yellow-dim);transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--space-2)}.common-product-link:hover{color:var(--color-yellow-bright);text-decoration-color:var(--color-yellow)}.modal-tabs{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-default);background:var(--bg-secondary)}.modal-tab{padding:var(--space-2) var(--space-4);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.modal-tab:hover{color:var(--text-primary)}.modal-tab.active{color:var(--color-yellow);border-bottom-color:var(--color-yellow)}.conversions-content{padding:var(--space-2) 0}.conversions-content h3{margin:var(--space-4) 0 var(--space-3) 0;font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.empty-message{color:var(--text-tertiary);font-style:italic;padding:var(--space-4);text-align:center}.conversion-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-2);transition:all var(--transition-fast)}.conversion-item:hover{border-color:var(--border-strong)}.conversion-formula{font-weight:500;color:var(--text-primary);font-size:var(--text-base)}.conversion-notes{display:block;color:var(--text-tertiary);font-size:var(--text-xs);margin-top:var(--space-1)}.btn-delete-conversion{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:24px;line-height:1;cursor:pointer;transition:all var(--transition-fast)}.btn-delete-conversion:hover{background:#ef44441a;border-color:var(--color-red);color:var(--color-red)}.conversion-form{padding:var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md)}.form-field label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.conversion-select,.conversion-input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-base);font-family:var(--font-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);transition:all var(--transition-base)}.conversion-select:focus,.conversion-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.field-hint{display:block;color:var(--text-tertiary);font-size:var(--text-xs);margin-top:var(--space-1);font-style:italic}.checkbox-label-inline{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label-inline input[type=checkbox]{width:18px;height:18px;cursor:pointer}.btn-add-conversion{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all var(--transition-base);margin-top:var(--space-3)}.btn-add-conversion:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-add-conversion:active{transform:translateY(0)}.mapped-products-content{padding:var(--space-2) 0}.loading-message{text-align:center;padding:var(--space-8);color:var(--text-secondary);font-style:italic}.empty-hint{color:var(--text-tertiary);font-size:var(--text-sm);margin-top:var(--space-1)}.outlet-filter-tabs{display:flex;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);overflow-x:auto;margin-bottom:var(--space-4)}.outlet-filter-btn{padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.outlet-filter-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.outlet-filter-btn.active{background:var(--color-yellow);color:var(--bg-primary);border-color:var(--color-yellow)}.mapped-products-list{max-height:400px;overflow-y:auto}.outlet-group{margin-bottom:var(--space-6)}.outlet-group-title{margin:0 0 var(--space-3) 0;font-size:var(--text-base);font-weight:600;color:var(--text-secondary);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.mapped-product-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-2);transition:all var(--transition-fast)}.mapped-product-card:hover{border-color:var(--border-strong);background:var(--bg-tertiary)}.mapped-product-name{font-weight:500;color:var(--text-primary);margin-bottom:var(--space-1);font-size:var(--text-sm)}.mapped-product-brand{color:var(--color-yellow);font-size:var(--text-xs);margin-bottom:var(--space-1)}.mapped-product-meta{color:var(--text-tertiary);font-size:var(--text-xs);margin-top:var(--space-1)}.mapped-product-meta span{margin-right:var(--space-1)}.mapped-product-pricing{text-align:right;min-width:80px}.mapped-price-case{font-weight:600;color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-mono)}.mapped-price-unit{color:var(--text-secondary);font-size:var(--text-xs);margin-top:var(--space-1);font-family:var(--font-mono)}.mapped-price-none{color:var(--text-tertiary);font-size:var(--text-xs);font-style:italic}.btn-unmap-product{padding:var(--space-2) var(--space-3);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-unmap-product:hover{background:#ef44441a;border-color:var(--color-red);color:var(--color-red)}.btn-delete-product{background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);width:32px;height:32px;cursor:pointer;font-size:var(--text-base);transition:all var(--transition-base) var(--ease-in-out);display:inline-flex;align-items:center;justify-content:center}.btn-delete-product:hover{background:#ef44441a;border-color:var(--color-red);transform:scale(1.1)}.filter-select{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;min-width:140px;transition:all var(--transition-base) var(--ease-in-out)}.filter-select:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.filter-select:hover{border-color:var(--border-strong)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.pagination-btn{padding:var(--space-2) var(--space-3);min-width:36px;font-size:var(--text-sm);font-family:var(--font-primary);font-weight:var(--font-weight-medium);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.pagination-btn:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--color-yellow);color:var(--color-yellow)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn.active{background:var(--color-yellow);color:var(--bg-primary);border-color:var(--color-yellow);font-weight:var(--font-weight-semibold)}.pagination-info{margin-left:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-mono)}.modal-content.upload-recipe-modal{width:700px;max-width:90vw}.dropzone{border:2px dashed var(--border-default);border-radius:8px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-tertiary);margin-bottom:1.5rem}.dropzone:hover{border-color:var(--color-yellow);background:var(--bg-elevated)}.dropzone.dragging{border-color:var(--color-yellow);background:var(--color-yellow-dim);transform:scale(1.02)}.dropzone.has-file{border-color:var(--color-green, #10b981);background:var(--bg-elevated)}.dropzone-icon{font-size:3rem;margin-bottom:1rem}.dropzone-text{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.dropzone-subtext{color:var(--text-secondary);margin-bottom:1rem}.dropzone-formats{font-size:.875rem;color:var(--text-tertiary)}.dropzone-filename{font-size:1.1rem;font-weight:600;color:var(--color-green, #059669);margin-bottom:.25rem}.dropzone-filesize{font-size:.875rem;color:var(--text-secondary);margin-bottom:1rem}.change-file-btn{background:transparent;border:1px solid var(--border-default);padding:.5rem 1rem;border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:.875rem;transition:all .2s}.change-file-btn:hover{border-color:var(--border-subtle);color:var(--text-primary)}.usage-stats{background:var(--bg-tertiary);border-radius:6px;padding:1rem;margin-bottom:1.5rem}.usage-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.usage-bar{height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden}.usage-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-yellow),var(--color-yellow-bright));transition:width .3s}.usage-warning{margin-top:.5rem;font-size:.875rem;color:var(--color-orange, #f59e0b);font-weight:500}.processing-state{text-align:center;padding:2rem 0}.spinner{width:48px;height:48px;margin:0 auto 1.5rem;border:4px solid var(--border-default);border-top-color:var(--color-yellow);border-radius:50%;animation:spin 1s linear infinite}.processing-state h3{margin-bottom:1.5rem;color:var(--text-primary)}.progress-steps{max-width:300px;margin:0 auto 1rem}.progress-step{padding:.5rem;text-align:left;font-size:.875rem;color:var(--text-tertiary);transition:all .2s}.progress-step.active{color:var(--color-yellow);font-weight:600}.progress-step.completed{color:var(--color-green, #10b981)}.processing-note{font-size:.875rem;color:var(--text-secondary);margin-top:1rem}.modal-content.review-parsed-recipe{width:95vw;max-width:1600px;max-height:90vh;display:flex;flex-direction:column}.review-header{border-bottom:1px solid var(--border-default);padding-bottom:1rem;margin-bottom:1.5rem}.review-header h2{margin-bottom:.25rem}.review-header-subtitle{font-size:.875rem;color:var(--text-secondary);margin-top:.25rem}.review-info-notice{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:1rem;margin-bottom:1.5rem}.review-info-content{display:flex;align-items:flex-start;gap:.75rem}.review-info-icon{font-size:1.25rem}.review-info-title{font-size:.875rem;color:var(--text-primary);font-weight:500;margin-bottom:.25rem}.review-info-text{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.review-recipe-form{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1.5rem}.review-form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem;color:var(--text-primary)}.review-form-input,.review-form-textarea{width:100%;padding:.5rem;border:1px solid var(--border-default);border-radius:4px;font-size:.875rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s}.review-form-input:focus,.review-form-textarea:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px rgba(var(--color-yellow-rgb, 255, 204, 0),.1)}.review-form-textarea{resize:vertical;font-family:inherit}.yield-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ingredients-section{flex:1;overflow-y:auto;margin-bottom:1.5rem}.ingredients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-default)}.ingredients-mapping-note{font-size:.75rem;color:var(--text-secondary)}.ingredients-list-container{background:var(--bg-tertiary);border-radius:6px;border:1px solid var(--border-default);padding:1rem}.ingredient-display-row{padding:.75rem 0;display:flex;justify-content:space-between;align-items:flex-start}.ingredient-display-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ingredient-display-info{flex:1}.ingredient-display-name{font-weight:500;color:var(--text-primary);margin-bottom:.125rem}.ingredient-display-prep{font-size:.75rem;color:var(--text-secondary);margin-top:.125rem}.ingredient-display-quantity{font-size:.875rem;color:var(--text-secondary);text-align:right;margin-left:1rem;white-space:nowrap}.ingredients-count{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.review-status{font-size:.875rem;color:var(--color-orange, #f59e0b);display:flex;align-items:center;gap:.5rem}.ingredient-row{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;padding:1rem;margin-bottom:.75rem;transition:all .2s}.ingredient-row:hover{box-shadow:0 2px 4px #0000000d}.ingredient-row.needs-review{border-color:var(--color-orange, #fbbf24);background:var(--bg-elevated)}.ingredient-row.has-match{border-color:var(--color-green, #10b981);background:var(--bg-elevated)}.ingredient-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.ingredient-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.ingredient-quantity{font-size:.875rem;color:var(--text-secondary)}.ingredient-status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.ingredient-status-badge.matched{background:var(--color-green-dim, #d1fae5);color:var(--color-green-dark, #065f46)}.ingredient-status-badge.needs-review{background:var(--color-orange-dim, #fef3c7);color:var(--color-orange-dark, #92400e)}.product-selector{position:relative}.product-dropdown{width:100%;padding:.5rem;border:1px solid var(--border-default);border-radius:4px;font-size:.875rem;cursor:pointer;background:var(--bg-primary);color:var(--text-primary);transition:all .2s}.product-dropdown:hover{border-color:var(--border-subtle)}.product-dropdown:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px rgba(var(--color-yellow-rgb, 255, 204, 0),.1)}.product-dropdown.has-selection{border-color:var(--color-green, #10b981);background:var(--bg-elevated)}.product-options{position:absolute;top:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:4px;margin-top:.25rem;box-shadow:0 4px 6px #0000001a;max-height:300px;overflow-y:auto;z-index:10}.product-option{padding:.75rem;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border-subtle)}.product-option:hover{background:var(--bg-tertiary)}.product-option.exact-match{background:var(--bg-elevated)}.product-option-name{font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.product-option-meta{font-size:.75rem;color:var(--text-secondary);display:flex;justify-content:space-between}.confidence-score{font-weight:600}.confidence-score.high{color:var(--color-green, #059669)}.confidence-score.medium{color:var(--color-orange, #f59e0b)}.create-product-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem;background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;margin-top:.5rem}.create-product-btn:hover{background:var(--color-yellow-bright)}.quick-create-form{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:6px;padding:1rem;margin-top:.75rem}.quick-create-form h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.quick-create-form .form-group{margin-bottom:.75rem}.quick-create-form label{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:.25rem}.quick-create-form input,.quick-create-form select{width:100%;padding:.5rem;border:1px solid var(--border-default);border-radius:4px;font-size:.875rem;background:var(--bg-primary);color:var(--text-primary)}.quick-create-actions{display:flex;gap:.5rem;margin-top:.75rem}.quick-create-actions button{flex:1;padding:.5rem;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:all .2s}.quick-create-actions .cancel-btn{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default)}.quick-create-actions .cancel-btn:hover{background:var(--bg-tertiary)}.quick-create-actions .create-btn{background:var(--color-green, #10b981);color:#fff;font-weight:500}.quick-create-actions .create-btn:hover{background:var(--color-green-bright, #059669)}.review-summary{padding:1rem;background:var(--color-orange-dim, #fef3c7);border-radius:6px;margin-bottom:1rem}.review-summary-text{font-size:.875rem;color:var(--color-orange-dark, #92400e);display:flex;align-items:center;gap:.5rem}.modal-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.skipped-badge{display:inline-block;margin-left:8px;padding:3px 8px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.mapped-badge{display:inline-block;margin-left:8px;padding:3px 8px;background:var(--color-green-dim, #d1fae5);color:var(--color-green-dark, #065f46);border-radius:4px;font-size:11px;font-weight:600}.skip-mapping-btn{width:100%;margin-top:12px;padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:6px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s;text-align:left}.skip-mapping-btn:hover{background:var(--bg-elevated);border-color:var(--border-subtle)}.ingredients-matched-count{font-size:.875rem;font-weight:400;color:var(--color-green, #10b981)}.ingredient-display-row.ingredient-matched{border-left:3px solid var(--color-green, #10b981);padding-left:calc(.75rem - 3px);margin-left:0}.ingredient-display-row.ingredient-unmatched{border-left:3px solid var(--color-orange, #f59e0b);padding-left:calc(.75rem - 3px);margin-left:0}.ingredient-match-indicator{font-weight:400;color:var(--color-green, #10b981);font-size:.875rem}.ingredient-match-indicator:before{content:""}.ingredient-suggestion{display:flex;align-items:center;gap:.5rem;margin-top:.375rem;padding:.375rem .5rem;background:var(--bg-elevated);border-radius:4px;font-size:.8125rem}.suggestion-label{color:var(--text-secondary)}.suggestion-name{color:var(--text-primary);font-weight:500}.suggestion-confidence{color:var(--text-tertiary);font-size:.75rem}.suggestion-btn{padding:.25rem .625rem;border:none;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s}.suggestion-btn.suggestion-yes{background:var(--color-green, #10b981);color:#fff}.suggestion-btn.suggestion-yes:hover{background:var(--color-green-bright, #059669)}.suggestion-btn.suggestion-skip{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.suggestion-btn.suggestion-skip:hover{background:var(--bg-secondary);color:var(--text-primary)}.suggestion-btn.suggestion-search{background:var(--bg-tertiary);color:var(--color-yellow);border:1px solid var(--border-default)}.suggestion-btn.suggestion-search:hover{background:var(--bg-secondary);border-color:var(--color-yellow)}.ingredient-skipped-note{font-size:.75rem;color:var(--text-tertiary);margin-top:.25rem;display:flex;align-items:center;gap:.5rem}.skipped-edit-btn{background:none;border:none;color:var(--color-yellow);font-size:.75rem;cursor:pointer;text-decoration:underline}.skipped-edit-btn:hover{color:var(--color-yellow-bright)}.ingredient-match-btn{background:none;border:none;color:var(--color-green, #10b981);font-weight:400;cursor:pointer;padding:0;font-size:inherit;transition:all .15s}.ingredient-match-btn:hover{color:var(--color-yellow);text-decoration:underline}.match-badge{font-size:.7rem;padding:2px 6px;border-radius:4px;margin-left:8px;font-weight:500;vertical-align:middle}.match-badge-learned{background:#e0f2fe;color:#0369a1}.ingredient-edit-panel{margin-top:.5rem;padding:.75rem;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:6px}.edit-search-row{display:flex;gap:.5rem;margin-bottom:.5rem}.edit-search-input{flex:1;padding:.5rem;border:1px solid var(--border-default);border-radius:4px;font-size:.875rem;background:var(--bg-primary);color:var(--text-primary)}.edit-search-input:focus{outline:none;border-color:var(--color-yellow)}.edit-cancel-btn{padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:4px;color:var(--text-secondary);font-size:.8125rem;cursor:pointer}.edit-cancel-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.edit-results-list{max-height:200px;overflow-y:auto}.edit-results-label{font-size:.75rem;color:var(--text-tertiary);padding:.25rem 0;text-transform:uppercase;letter-spacing:.5px}.edit-result-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem;background:none;border:none;border-radius:4px;text-align:left;cursor:pointer;transition:background .15s}.edit-result-item:hover{background:var(--bg-tertiary)}.edit-result-name{color:var(--text-primary);font-size:.875rem}.edit-result-confidence,.edit-result-category{color:var(--text-tertiary);font-size:.75rem}.edit-skip-item{border-top:1px solid var(--border-subtle);margin-top:.5rem;padding-top:.75rem}.edit-skip-item .edit-result-name{color:var(--text-secondary);font-style:italic}.method-section{margin-bottom:1.5rem}.method-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:6px 6px 0 0;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.method-header:hover{background:var(--bg-elevated)}.method-header-left{display:flex;align-items:center;gap:.5rem}.method-expand-icon{font-size:.75rem;color:var(--text-secondary);width:1rem}.method-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.method-empty-note{font-size:.8125rem;color:var(--text-tertiary);font-style:italic}.method-steps-container{background:var(--bg-tertiary);border:1px solid var(--border-default);border-top:none;border-radius:0 0 6px 6px;padding:1rem}.method-empty-state{text-align:center;padding:1.5rem 1rem;color:var(--text-secondary)}.method-empty-state p{margin-bottom:1rem;font-size:.875rem}.method-step-row{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.method-step-number{font-weight:600;color:var(--text-secondary);min-width:1.5rem;padding-top:.5rem}.method-step-input{flex:1;padding:.5rem;border:1px solid var(--border-default);border-radius:4px;font-size:.875rem;font-family:inherit;background:var(--bg-primary);color:var(--text-primary);resize:vertical;min-height:60px}.method-step-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px rgba(var(--color-yellow-rgb, 255, 204, 0),.1)}.method-step-delete{background:none;border:none;color:var(--text-tertiary);font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;line-height:1;border-radius:4px;transition:all .15s}.method-step-delete:hover{background:var(--color-red-dim, #fee2e2);color:var(--color-red, #ef4444)}.method-add-btn{margin-top:.5rem}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.product-drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;justify-content:flex-end}.product-drawer{width:480px;max-width:100%;height:100%;background:var(--bg-secondary);border-left:1px solid var(--border-default);display:flex;flex-direction:column;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.drawer-title-section{flex:1;min-width:0}.drawer-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;cursor:pointer;padding:var(--space-1);margin:calc(-1 * var(--space-1));border-radius:var(--radius-sm);transition:background var(--transition-fast)}.drawer-title:hover{background:var(--bg-tertiary)}.drawer-name-input{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--color-focus);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);width:100%;outline:none}.drawer-category{display:inline-block;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-tertiary)}.drawer-close{background:transparent;border:none;font-size:1.5rem;color:var(--text-tertiary);cursor:pointer;padding:var(--space-1);line-height:1;transition:color var(--transition-fast)}.drawer-close:hover{color:var(--text-primary)}.drawer-tabs{display:flex;border-bottom:1px solid var(--border-subtle);padding:0 var(--space-4)}.drawer-tab{padding:var(--space-3) var(--space-4);background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition-fast)}.drawer-tab:hover{color:var(--text-primary)}.drawer-tab.active{color:var(--text-primary);border-bottom-color:var(--color-focus)}.drawer-content{flex:1;overflow-y:auto;padding:var(--space-6)}.drawer-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary)}.allergen-section{margin-bottom:var(--space-6)}.allergen-section h3{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.section-note{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--space-4)}.allergen-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.allergen-checkbox{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.allergen-checkbox:hover{border-color:var(--border-default)}.allergen-checkbox.active{background:var(--color-red-dim);border-color:var(--color-red)}.allergen-checkbox.dietary.active{background:var(--color-green-dim);border-color:var(--color-green)}.allergen-checkbox input{display:none}.allergen-abbr{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-weight-bold);color:var(--text-tertiary);min-width:24px}.allergen-checkbox.active .allergen-abbr{color:var(--color-red-bright)}.allergen-checkbox.dietary.active .allergen-abbr{color:var(--color-green-bright)}.allergen-label{font-size:var(--text-sm);color:var(--text-secondary)}.allergen-checkbox.active .allergen-label{color:var(--text-primary)}.dietary-section{padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.dietary-grid{grid-template-columns:1fr}.conversions-content h3{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-3)}.add-conversion-title{margin-top:var(--space-6)!important}.conversions-list{margin-bottom:var(--space-4)}.conversion-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.conversion-display{flex:1}.conversion-formula{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary)}.conversion-notes{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.btn-delete-conversion{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;font-size:var(--text-lg);padding:0;line-height:1;transition:color var(--transition-fast)}.btn-delete-conversion:hover{color:var(--color-red)}.conversion-form{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-3)}.form-field{margin-bottom:var(--space-3)}.form-field label{display:block;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:var(--space-1)}.form-field select,.form-field input[type=text],.form-field input[type=number]{width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm)}.form-field select:focus,.form-field input:focus{outline:none;border-color:var(--color-focus)}.field-hint{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.checkbox-inline{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;margin-bottom:var(--space-4)}.checkbox-inline input{accent-color:var(--color-green)}.btn-add-conversion{width:100%;padding:var(--space-2) var(--space-4);background:var(--color-green);border:none;border-radius:var(--radius-md);color:var(--text-inverse);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast)}.btn-add-conversion:hover{background:var(--color-green-bright)}.empty-message{color:var(--text-tertiary);font-size:var(--text-sm);text-align:center;padding:var(--space-4)}.outlet-filter-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.outlet-filter-btn{padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.outlet-filter-btn:hover{border-color:var(--border-default)}.outlet-filter-btn.active{background:var(--color-green-dim);border-color:var(--color-green);color:var(--color-green-bright)}.outlet-group{margin-bottom:var(--space-4)}.outlet-group-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.mapped-product-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.mapped-product-info{flex:1;min-width:0}.mapped-product-name{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapped-product-brand{font-size:var(--text-xs);color:var(--text-secondary)}.mapped-product-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.mapped-product-pricing{text-align:right}.mapped-price-case{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.mapped-price-unit{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary)}.mapped-price-none{font-size:var(--text-sm);color:var(--text-tertiary)}.btn-unmap{padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.btn-unmap:hover{border-color:var(--color-red);color:var(--color-red)}.mapped-product-actions{display:flex;gap:var(--space-2);flex-shrink:0}.btn-edit-product{padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.btn-edit-product:hover{border-color:var(--color-focus);color:var(--color-focus)}.empty-state{text-align:center;padding:var(--space-8);color:var(--text-secondary)}.empty-hint{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--space-2)}.loading-message{text-align:center;padding:var(--space-8);color:var(--text-tertiary)}.drawer-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end}.btn-done{padding:var(--space-2) var(--space-6);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn-done:hover{background:var(--bg-elevated);border-color:var(--border-strong)}@media(max-width:500px){.product-drawer{width:100%}.allergen-grid,.form-row{grid-template-columns:1fr}}.recipes-container{padding:var(--space-6);max-width:none;height:calc(100vh - 3rem)}.recipes-layout{display:flex;gap:var(--space-6);height:calc(100% - 3rem)}.recipes-explorer{width:300px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);overflow:hidden}.explorer-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-default);background:var(--bg-tertiary)}.explorer-header h2{margin:0;font-size:var(--text-xl);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.btn-new-recipe{padding:var(--space-2) var(--space-4);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.explorer-loading,.explorer-empty{padding:var(--space-8);text-align:center;color:var(--text-secondary)}.explorer-empty p{margin-bottom:var(--space-4)}.btn-create-first{padding:var(--space-3) var(--space-6);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-family:var(--font-primary);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-create-first:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.recipe-tree{flex:1;overflow-y:auto;padding:var(--space-2) 0}.tree-folder{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);cursor:pointer;transition:background var(--transition-fast) var(--ease-in-out);-webkit-user-select:none;user-select:none}.tree-folder:hover{background:var(--bg-tertiary)}.folder-icon{font-size:var(--text-base);color:var(--text-secondary);transition:transform var(--transition-base) var(--ease-in-out)}.folder-name{flex:1;font-size:var(--text-sm);font-family:var(--font-primary);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.folder-count{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary)}.recipe-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);cursor:pointer;transition:background var(--transition-fast) var(--ease-in-out);-webkit-user-select:none;user-select:none}.recipe-item:hover{background:var(--bg-tertiary)}.recipe-item.selected{background:var(--color-yellow-dim);border-left:3px solid var(--color-yellow)}.recipe-icon{font-size:var(--text-base);color:var(--text-secondary)}.recipe-name{flex:1;font-size:var(--text-sm);font-family:var(--font-primary);color:var(--text-primary)}.recipe-detail{flex:1;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow-y:auto;box-shadow:var(--shadow-sm)}.detail-empty-state{display:flex;align-items:center;justify-content:center;height:100%;padding:2rem}.empty-state-content{text-align:center;max-width:400px}.empty-state-content h3{font-size:var(--text-2xl);font-family:var(--font-primary);color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state-content p{color:var(--text-secondary);margin-bottom:var(--space-2)}.empty-state-stats{color:var(--text-tertiary)!important;font-size:var(--text-sm)!important}.recipe-editor{padding:var(--space-8)}.recipe-header{margin-bottom:var(--space-8);border-bottom:2px solid var(--border-default);padding-bottom:var(--space-4)}.recipe-title-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.recipe-title{margin:0;font-size:var(--text-4xl);font-family:var(--font-primary);font-weight:var(--font-weight-bold);color:var(--text-primary)}.recipe-header-actions{display:flex;gap:var(--space-2)}.btn-icon{padding:var(--space-2);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-xl);color:var(--text-secondary);transition:all var(--transition-base) var(--ease-in-out)}.btn-icon:hover{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.recipe-path{color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-primary)}.recipe-metadata{display:flex;gap:var(--space-8);padding:var(--space-4);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-8)}.metadata-field{display:flex;gap:var(--space-2);align-items:center}.metadata-field label{font-weight:var(--font-weight-semibold);font-family:var(--font-primary);color:var(--text-secondary)}.metadata-field span{color:var(--text-primary);font-family:var(--font-primary)}.recipe-section{margin-bottom:var(--space-8)}.recipe-section h2{font-size:var(--text-xl);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-default)}.ingredients-table-container{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4)}.ingredients-table{width:100%;border-collapse:collapse;margin-bottom:var(--space-4)}.ingredients-table thead{background:var(--bg-elevated)}.ingredients-table th{padding:var(--space-3);text-align:left;font-weight:var(--font-weight-semibold);font-family:var(--font-primary);color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.ingredients-table td{padding:var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-primary)}.ingredients-table tbody tr:last-child td{border-bottom:none}.ingredients-table tbody tr:hover{background:var(--bg-secondary)}.empty-cell{text-align:center;color:#999;font-style:italic}.btn-add-ingredient{padding:var(--space-2) var(--space-4);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-family:var(--font-primary);font-weight:var(--font-weight-medium);transition:all var(--transition-base) var(--ease-in-out)}.btn-add-ingredient:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-icon-small{background:transparent;border:none;color:var(--color-red);font-size:var(--text-2xl);cursor:pointer;padding:0;line-height:1;transition:color var(--transition-base) var(--ease-in-out)}.btn-icon-small:hover{color:var(--color-red-bright)}.method-steps{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4)}.method-step{display:flex;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.step-number{flex-shrink:0;width:32px;height:32px;background:var(--color-yellow);color:var(--bg-primary);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-family:var(--font-mono)}.step-instruction{flex:1;color:var(--text-primary);font-family:var(--font-primary);line-height:var(--leading-relaxed)}.empty-method{text-align:center;color:var(--text-tertiary);padding:var(--space-8);font-style:italic}.btn-add-step{padding:var(--space-2) var(--space-4);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-family:var(--font-primary);font-weight:var(--font-weight-medium);transition:all var(--transition-base) var(--ease-in-out)}.btn-add-step:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.recipe-cost-section{background:var(--bg-tertiary);border:1px solid var(--border-default);padding:var(--space-6);border-radius:var(--radius-md)}.recipe-cost-section h2{border-bottom:none;margin-bottom:0;padding-bottom:0}.section-header-collapsible{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:.5rem;margin:-.5rem -.5rem 0;border-radius:6px;transition:background .2s}.section-header-collapsible:hover{background:#00000008}.collapse-icon{font-size:.8rem;margin-right:.5rem;color:#999}.cost-header-summary{font-size:var(--text-lg);font-weight:var(--font-weight-bold);font-family:var(--font-mono);color:var(--color-yellow)}.cost-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-4)}.cost-loading,.cost-error,.cost-empty{text-align:center;padding:var(--space-8);color:var(--text-secondary)}.cost-error{color:var(--color-red-bright)}.cost-summary{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-default)}.cost-item{display:flex;flex-direction:column;gap:var(--space-1)}.cost-item.cost-total .cost-value{font-size:var(--text-3xl)}.cost-item label{font-size:var(--text-xs);font-family:var(--font-primary);color:var(--text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.cost-value{font-size:var(--text-2xl);font-family:var(--font-mono);color:var(--color-yellow);font-weight:var(--font-weight-bold)}.no-yield{font-size:var(--text-sm);color:var(--text-tertiary);font-style:italic}.cost-yield .cost-value{font-size:var(--text-lg);color:var(--text-primary)}.cost-value-small{font-size:var(--text-base);font-family:var(--font-mono);color:var(--color-yellow);font-weight:var(--font-weight-semibold)}.cost-warning{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-yellow-dim);border:1px solid var(--color-yellow);border-radius:var(--radius-md);margin-bottom:var(--space-4);color:var(--color-yellow-bright);font-size:var(--text-sm);font-family:var(--font-primary)}.warning-icon{font-size:var(--text-lg)}.cost-breakdown{margin-top:1rem}.cost-breakdown h3{font-size:1rem;color:#555;margin-bottom:.75rem;font-weight:600}.cost-breakdown-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.cost-breakdown-table thead{background:var(--bg-elevated)}.cost-breakdown-table th{padding:var(--space-2) var(--space-3);text-align:left;font-weight:var(--font-weight-semibold);font-family:var(--font-primary);color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.cost-breakdown-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-primary)}.cost-breakdown-table tbody tr:hover{background:var(--bg-tertiary)}.cost-breakdown-table .ingredient-cell{max-width:200px}.cost-breakdown-table .qty-cell,.cost-breakdown-table .price-cell{white-space:nowrap;color:var(--text-secondary);font-family:var(--font-mono)}.cost-breakdown-table .cost-cell{white-space:nowrap;font-weight:var(--font-weight-semibold);font-family:var(--font-mono);color:var(--color-yellow)}.cost-breakdown-table .percent-cell{white-space:nowrap;color:var(--text-tertiary);font-family:var(--font-mono);text-align:right}.cost-breakdown-table tfoot{background:var(--bg-tertiary)}.cost-breakdown-table .total-row td{font-weight:var(--font-weight-bold);border-top:2px solid var(--color-yellow);border-bottom:none}.cost-breakdown-table .total-row .cost-cell{font-size:var(--text-base)}.cost-breakdown-table tr.missing-price{background:var(--color-yellow-dim)}.cost-breakdown-table tr.missing-price:hover{background:#d4a72c26}.no-price{color:var(--color-yellow-bright);font-style:italic;font-size:var(--text-xs)}.sub-recipe-badge{display:inline-block;padding:var(--space-1) var(--space-2);background:var(--color-yellow-dim);color:var(--color-yellow-bright);border:1px solid var(--color-yellow);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono);margin-left:var(--space-2);text-transform:uppercase;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide)}.text-only-badge{display:inline-block;padding:var(--space-1) var(--space-2);background:var(--bg-tertiary);color:var(--text-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono);margin-left:var(--space-2);text-transform:uppercase;font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-wide)}.ingredient-name-cell{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.product-link{color:var(--color-blue);cursor:pointer;text-decoration:none;transition:color var(--transition-fast)}.product-link:hover{color:var(--color-yellow);text-decoration:underline}.recipe-link{color:var(--color-green);cursor:pointer;text-decoration:none;transition:color var(--transition-fast);display:inline-flex;align-items:center;gap:var(--space-2)}.recipe-link:hover{color:var(--color-green-bright);text-decoration:underline}.btn-refresh-cost{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-refresh-cost:hover{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.allergen-summary{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.allergen-summary h3{font-size:1rem;color:#555;margin:0 0 1rem;font-weight:600}.dietary-flags{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.dietary-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-family:var(--font-primary);font-weight:var(--font-weight-medium)}.dietary-badge.active{background:var(--color-green-dim);color:var(--color-green-bright);border:1px solid var(--color-green)}.dietary-badge.inactive{background:var(--bg-tertiary);color:var(--text-tertiary);border:1px solid var(--border-default)}.allergen-contains{margin-top:var(--space-3)}.allergen-label{font-size:var(--text-xs);font-family:var(--font-primary);color:var(--text-secondary);margin-bottom:var(--space-2);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.allergen-badges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.allergen-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-yellow-dim);color:var(--color-yellow-bright);border:1px solid var(--color-yellow);border-radius:var(--radius-full);font-size:var(--text-xs);font-family:var(--font-primary);font-weight:var(--font-weight-medium)}.allergen-none{font-size:var(--text-sm);color:var(--text-tertiary);font-style:italic;padding:var(--space-2) 0}.placeholder-text{font-style:italic;color:var(--text-tertiary);text-align:center;padding:var(--space-8)}.recipe-notes-textarea{width:100%;min-height:120px;padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-lg);font-family:var(--font-primary);font-size:var(--text-sm);background:var(--bg-tertiary);color:var(--text-primary);resize:vertical;transition:all var(--transition-base) var(--ease-in-out)}.recipe-notes-textarea:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.recipe-actions{display:flex;gap:var(--space-4);justify-content:flex-end;padding-top:var(--space-8);border-top:1px solid var(--border-default);margin-top:var(--space-8)}.btn-save,.btn-cancel{padding:var(--space-3) var(--space-8);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);font-weight:var(--font-weight-semibold)}.btn-save{background:var(--color-yellow);color:var(--bg-primary)}.btn-save:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}@media(max-width:1024px){.recipes-layout{flex-direction:column}.recipes-explorer{width:100%;max-height:300px}}.recipe-title-input{font-size:var(--text-4xl);font-weight:var(--font-weight-bold);font-family:var(--font-primary);background:transparent;color:var(--text-primary);border:none;border-bottom:2px solid transparent;padding:var(--space-1) 0;width:100%;transition:border-color var(--transition-base) var(--ease-in-out)}.recipe-title-input:focus{outline:none;border-bottom-color:var(--color-yellow)}.recipe-path-input{font-size:var(--text-sm);font-family:var(--font-primary);background:transparent;color:var(--text-secondary);border:none;border-bottom:1px solid transparent;padding:var(--space-1) 0;width:100%;transition:border-color var(--transition-base) var(--ease-in-out)}.recipe-path-input:focus{outline:none;border-bottom-color:var(--color-yellow)}.metadata-input{width:80px;padding:var(--space-1) var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-family:var(--font-mono);transition:all var(--transition-base) var(--ease-in-out)}.metadata-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.metadata-unit{color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-primary)}.metadata-row{display:flex;gap:2rem;margin-bottom:1rem;flex-wrap:wrap}.yield-field,.servings-field{display:flex;align-items:center;gap:.5rem}.metadata-select{padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);min-width:120px}.metadata-select:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.metadata-select optgroup{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.metadata-field.full-width{flex:1;display:flex;align-items:center}.metadata-input-full{flex:1;padding:var(--space-1) var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-family:var(--font-primary);transition:all var(--transition-base) var(--ease-in-out)}.metadata-input-full:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.modal-header h2{margin:0;font-size:var(--text-2xl);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.form-group{margin-bottom:var(--space-6)}.form-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);color:var(--text-secondary);font-size:var(--text-sm)}.form-group input,.form-group textarea{width:100%;padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);transition:all var(--transition-base) var(--ease-in-out)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.form-group small{display:block;margin-top:var(--space-1);color:var(--text-tertiary);font-size:var(--text-xs);font-family:var(--font-primary)}.modal-actions{display:flex;gap:var(--space-4);justify-content:flex-end;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border-default)}.btn-save:disabled{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed;opacity:.5;border:1px solid var(--border-default)}.btn-save:disabled:hover{background:var(--bg-tertiary);transform:none;box-shadow:none}.explorer-actions{display:flex;gap:var(--space-2)}.btn-new-folder{padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-new-folder:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.btn-new-recipe{padding:var(--space-2) var(--space-3);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-new-recipe:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-upload-recipe{padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-upload-recipe:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-upload-recipe:disabled{opacity:.5;cursor:not-allowed}.autocomplete-container{position:relative;width:100%}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--color-yellow);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);max-height:200px;overflow-y:auto;z-index:1000;box-shadow:var(--shadow-lg)}.autocomplete-item{padding:var(--space-3);cursor:pointer;color:var(--text-primary);font-family:var(--font-primary);font-size:var(--text-sm);transition:background var(--transition-fast) var(--ease-in-out);border-bottom:1px solid var(--border-subtle)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover{background:var(--bg-tertiary)}.ingredient-input{width:100%;padding:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);transition:all var(--transition-base) var(--ease-in-out)}.ingredient-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.ingredient-add-row{background:var(--bg-tertiary)}.btn-save-ingredient{color:var(--color-green-bright)!important}.btn-save-ingredient:hover{color:var(--color-green)!important}.btn-add-ingredient:disabled{opacity:.5;cursor:not-allowed}.method-step{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.step-header{display:flex;justify-content:space-between;align-items:center}.step-controls{display:flex;gap:var(--space-1)}.btn-step-control{padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-base) var(--ease-in-out)}.btn-step-control:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.btn-step-control:disabled{opacity:.3;cursor:not-allowed}.btn-step-control.btn-remove{color:var(--color-red-bright);font-size:var(--text-lg)}.btn-step-control.btn-remove:hover{background:var(--color-red-dim);border-color:var(--color-red)}.step-instruction{flex:1;color:var(--text-primary);line-height:var(--leading-relaxed);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-base) var(--ease-in-out)}.step-instruction:hover{background:var(--bg-tertiary)}.step-edit-container{display:flex;flex-direction:column;gap:var(--space-2)}.step-instruction-input{width:100%;padding:var(--space-3);border:2px solid var(--color-yellow);border-radius:var(--radius-md);font-family:var(--font-primary);font-size:var(--text-sm);background:var(--bg-tertiary);color:var(--text-primary);resize:vertical;min-height:80px;transition:all var(--transition-base) var(--ease-in-out)}.step-instruction-input:focus{outline:none;border-color:var(--color-yellow-bright);box-shadow:0 0 0 3px #d4a72c1a}.step-edit-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.btn-step-save,.btn-step-cancel{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-step-save{background:var(--color-yellow);color:var(--bg-primary)}.btn-step-save:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-step-cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.btn-step-cancel:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.context-menu{position:fixed;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:2000;min-width:180px;padding:var(--space-2) 0}.context-menu-item{padding:var(--space-3) var(--space-4);cursor:pointer;transition:background var(--transition-fast) var(--ease-in-out);font-size:var(--text-sm);font-family:var(--font-primary);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.context-menu-item:hover:not(.context-menu-disabled){background:var(--bg-tertiary)}.context-menu-item.context-menu-disabled{opacity:.4;cursor:not-allowed;color:var(--text-tertiary)}.recipe-item[draggable=true]{cursor:move}.recipe-item:active{opacity:.5}.tree-folder.drop-target{background:var(--color-yellow-dim);border-left:3px solid var(--color-yellow)}.recipe-tree:empty{min-height:100px}.mapped-cell{width:60px;text-align:center;padding:var(--space-3)}.mapped-yes{color:var(--color-green-bright);font-size:var(--text-lg);font-weight:700}.mapped-no{color:var(--text-tertiary);font-size:var(--text-lg);opacity:.5}.ingredients-table tbody tr:not(.editing):not(.ingredient-add-row):hover{background:var(--bg-secondary);cursor:pointer}.ingredients-table tbody tr.editing{background:var(--color-yellow-dim);border:2px solid var(--color-yellow)}.inline-edit-input,.inline-edit-select{width:100%;padding:var(--space-2);border:1px solid var(--color-yellow);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-sm)}.inline-edit-input:focus,.inline-edit-select:focus{outline:none;border-color:var(--color-yellow-bright);box-shadow:0 0 0 2px #eab30833}.ingredient-mapping-wrapper{display:flex;align-items:center;gap:var(--space-2)}.mapped-product-name{flex:1;font-weight:500;color:var(--text-primary)}.mapping-btn{padding:var(--space-1) var(--space-2);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--text-xs);transition:all var(--transition-fast)}.mapping-btn:hover{background:var(--bg-secondary);border-color:var(--color-yellow);color:var(--color-yellow)}.ingredient-mapping-search{position:relative;width:100%}.product-search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--color-yellow);border-radius:var(--radius-md);max-height:250px;overflow-y:auto;z-index:1000;box-shadow:var(--shadow-lg);margin-top:var(--space-1)}.product-search-item{padding:var(--space-3);cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-subtle)}.product-search-item:hover,.product-search-item.selected{background:var(--bg-tertiary);color:var(--color-yellow)}.mapped-indicator{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);color:var(--color-green-bright);font-size:var(--text-lg);font-weight:700;pointer-events:none}.ingredient-mapping-wrapper{position:relative}.users-page{min-height:100vh;background:var(--bg-primary)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--space-4)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-default);border-top-color:var(--color-yellow);border-radius:50%;animation:spin .8s linear infinite}.users-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-default);color:var(--text-primary);padding:var(--space-4) var(--space-8);display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:2rem}.back-link{color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);font-family:var(--font-primary);transition:color var(--transition-base) var(--ease-in-out)}.back-link:hover{color:var(--color-yellow)}.users-header h1{margin:0;font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);font-family:var(--font-primary)}.header-right{display:flex;align-items:center;gap:var(--space-6)}.user-info{display:flex;align-items:center;gap:var(--space-3)}.user-name{font-weight:var(--font-weight-medium);font-size:var(--text-sm);font-family:var(--font-primary)}.user-role{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.role-admin{background:var(--color-red-dim);color:var(--color-red-bright)}.role-chef{background:var(--color-green-dim);color:var(--color-green-bright)}.role-viewer{background:var(--color-yellow-dim);color:var(--color-yellow-bright)}.btn-logout{padding:var(--space-2) var(--space-4);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-logout:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.users-content{max-width:1200px;margin:0 auto;padding:2rem}.users-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.users-count{font-size:.95rem;color:#666}.btn-add-user{padding:var(--space-3) var(--space-6);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-add-user:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.error-banner{background:var(--color-red-dim);color:var(--color-red-bright);border:1px solid var(--color-red);padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);margin-bottom:var(--space-6);display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;color:var(--color-red-bright);font-size:var(--text-xl);cursor:pointer}.users-table-container{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table th{background:var(--bg-tertiary);padding:var(--space-4) var(--space-6);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--text-xs);font-family:var(--font-primary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-bottom:2px solid var(--border-default)}.users-table td{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm);font-family:var(--font-primary);color:var(--text-primary)}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover{background:var(--bg-tertiary)}.inactive-user{opacity:.6}.user-cell{display:flex;flex-direction:column;gap:.25rem}.username{font-weight:600;color:#333}.fullname{font-size:.85rem;color:#888}.role-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);text-transform:capitalize;cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.role-badge:hover{transform:scale(1.05)}.role-badge.role-admin{background:var(--color-red-dim);color:var(--color-red-bright);border:1px solid var(--color-red)}.role-badge.role-chef{background:var(--color-green-dim);color:var(--color-green-bright);border:1px solid var(--color-green)}.role-badge.role-viewer{background:var(--color-yellow-dim);color:var(--color-yellow-bright);border:1px solid var(--color-yellow)}.role-badge.role-foh_manager{background:#3b82f626;color:#60a5fa;border:1px solid #3b82f6}.role-select{padding:var(--space-1) var(--space-2);border:2px solid var(--color-yellow);border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer}.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-medium);font-family:var(--font-primary)}.status-badge.active{background:var(--color-green-dim);color:var(--color-green-bright);border:1px solid var(--color-green)}.status-badge.inactive{background:var(--color-red-dim);color:var(--color-red-bright);border:1px solid var(--color-red)}.last-login{font-size:var(--text-xs);color:var(--text-secondary);cursor:help}.btn-toggle{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-toggle.deactivate{background:var(--color-red-dim);color:var(--color-red-bright);border:1px solid var(--color-red)}.btn-toggle.deactivate:hover{background:var(--color-red);color:#fff}.btn-toggle.activate{background:var(--color-green-dim);color:var(--color-green-bright);border:1px solid var(--color-green)}.btn-toggle.activate:hover{background:var(--color-green);color:#fff}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:450px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--border-default)}.modal-close{background:none;border:none;font-size:var(--text-2xl);color:var(--text-tertiary);cursor:pointer;line-height:1;transition:color var(--transition-base) var(--ease-in-out)}.modal form{padding:var(--space-6)}.form-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-weight-medium);font-size:var(--text-sm);font-family:var(--font-primary);color:var(--text-secondary)}.form-group input,.form-group select{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);transition:all var(--transition-base) var(--ease-in-out)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.modal-actions{display:flex;gap:var(--space-4);justify-content:flex-end;padding-top:var(--space-4);border-top:1px solid var(--border-default);margin-top:var(--space-4)}.btn-cancel{padding:var(--space-3) var(--space-6);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-cancel:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.btn-submit{padding:var(--space-3) var(--space-6);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-submit:hover{background:var(--color-yellow-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-manage-outlets{padding:.375rem .75rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6);border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .15s ease;font-family:var(--font-primary)}.btn-manage-outlets:hover{background:var(--bg-primary, #1a1a1a);border-color:var(--color-red-bright, #ff4d4f);color:var(--color-red-bright, #ff4d4f)}.modal-description{margin:0 var(--space-6) var(--space-4) var(--space-6);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5}.outlet-assignment-list{display:flex;flex-direction:column;gap:var(--space-3)}.outlet-assignment-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);background:var(--bg-secondary)}.outlet-assignment-item:hover{border-color:var(--border-strong);background:var(--bg-tertiary)}.outlet-assignment-item.selected{background:#3b82f61a;border-color:var(--color-yellow)}.outlet-assignment-item input[type=checkbox]{cursor:pointer;width:18px;height:18px}.outlet-info{flex:1}.outlet-name{font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-1)}.outlet-location{font-size:var(--text-sm);color:var(--text-secondary)}@media(max-width:768px){.users-header{flex-direction:column;gap:1rem;padding:1rem}.header-left,.header-right{width:100%;justify-content:space-between}.users-content{padding:1rem}.users-table-container{overflow-x:auto}.users-table th,.users-table td{padding:.75rem 1rem}}.admin{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-primary)}.admin-container{max-width:1400px;margin:0 auto;padding:var(--space-6);animation:fadeIn var(--transition-base)}.admin-header{margin-bottom:var(--space-8)}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.header-left,.header-right{display:flex;align-items:center;gap:var(--space-4)}.btn-back{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-base)}.btn-back:hover{background:var(--bg-tertiary);border-color:var(--border-default);transform:translate(-2px)}.header-title{display:flex;align-items:flex-start;gap:var(--space-4)}.header-icon{color:var(--color-yellow);margin-top:var(--space-1)}.header-title h1{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-1) 0;color:var(--text-primary)}.header-title p{font-size:var(--text-base);color:var(--text-secondary);margin:0}.admin-nav-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}.admin-nav-cards .nav-card{position:relative;padding:var(--space-6);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all var(--transition-base);cursor:pointer}.admin-nav-cards .nav-card.active{background:var(--color-yellow-dim);border-color:var(--color-yellow)}.admin-nav-cards .nav-card.disabled{opacity:.5;cursor:not-allowed}.admin-nav-cards .nav-card .card-icon{color:var(--color-yellow);margin-bottom:var(--space-3)}.admin-nav-cards .nav-card h2{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2) 0;color:var(--text-primary)}.admin-nav-cards .nav-card p{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.coming-soon{position:absolute;top:var(--space-3);right:var(--space-3);padding:var(--space-1) var(--space-2);background:var(--bg-tertiary);color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.admin-section{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.section-header h2{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);margin:0;color:var(--text-primary)}.organizations-table-container{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.organizations-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.organizations-table thead{background:var(--bg-tertiary);border-bottom:1px solid var(--border-default)}.organizations-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.organizations-table tbody tr{border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast)}.organizations-table tbody tr:last-child{border-bottom:none}.organizations-table tbody tr:hover{background:var(--bg-tertiary)}.organizations-table td{padding:var(--space-4);color:var(--text-primary)}.org-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.org-slug code{font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background:var(--bg-primary);color:var(--color-yellow);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.tier-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.tier-free{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.tier-basic{background:#3b82f61a;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.tier-pro{background:var(--color-yellow-dim);color:var(--color-yellow-bright);border:1px solid var(--color-yellow)}.tier-enterprise{background:#a855f71a;color:#c084fc;border:1px solid rgba(168,85,247,.3)}.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.status-active{background:var(--color-green-dim);color:var(--color-green-bright);border:1px solid var(--color-green)}.status-cancelled{background:var(--color-red-dim);color:var(--color-red-bright);border:1px solid var(--color-red)}.status-past_due{background:#fb923c1a;color:#fb923c;border:1px solid rgba(251,146,60,.3)}.status-trialing{background:#3b82f61a;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.limit-cell{text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary)}.limit-value{color:var(--text-primary)}.actions-cell{white-space:nowrap}.btn-icon{padding:var(--space-1) var(--space-3);background:transparent;color:var(--color-yellow);border:1px solid var(--color-yellow);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);margin-right:var(--space-2)}.btn-icon:last-child{margin-right:0}.btn-icon:hover{background:var(--color-yellow);color:var(--bg-primary);transform:translateY(-1px)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);color:var(--text-secondary)}.loading-state p{margin-top:var(--space-4);font-size:var(--text-sm)}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);color:var(--color-red);text-align:center}.error-state p{margin-bottom:var(--space-4);font-size:var(--text-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center}.empty-icon{color:var(--text-tertiary);margin-bottom:var(--space-4)}.empty-state h3{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2) 0;color:var(--text-secondary)}.empty-state p{font-size:var(--text-sm);color:var(--text-tertiary);margin:0}.btn-icon-edit{border-color:var(--color-yellow);color:var(--color-yellow)}.btn-icon-edit:hover{background:var(--color-yellow);color:var(--bg-primary)}.btn-icon-stats{border-color:#3b82f680;color:#60a5fa}.btn-icon-stats:hover{background:#60a5fa;color:var(--bg-primary)}.btn-icon-delete{border-color:var(--color-red);color:var(--color-red)}.btn-icon-delete:hover{background:var(--color-red);color:#fff}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn var(--transition-fast)}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp var(--transition-base)}.modal-content.modal-stats{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--border-subtle)}.modal-header h2{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);margin:0;color:var(--text-primary)}.modal-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-2);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-fast)}.modal-form{padding:var(--space-6)}.form-group input,.form-group select{width:100%;padding:var(--space-3);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-primary);transition:all var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-yellow);background:var(--bg-secondary)}.form-group input.error{border-color:var(--color-red)}.form-group input.disabled{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed}.form-group small{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.error-message{display:block;font-size:var(--text-xs);color:var(--color-red);margin-top:var(--space-1)}.tier-limits-info{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.tier-limits-info h3{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin:0 0 var(--space-3) 0}.limits-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.limit-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm)}.limit-label{font-size:var(--text-xs);color:var(--text-tertiary)}.limit-amount{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-yellow);font-family:var(--font-mono)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-6);border-top:1px solid var(--border-subtle)}.stats-content{padding:var(--space-6)}.stats-header{margin-bottom:var(--space-6)}.stats-meta{display:flex;align-items:center;gap:var(--space-3)}.org-slug-display{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.stat-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;gap:var(--space-4)}.stat-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-yellow-dim);color:var(--color-yellow);border-radius:var(--radius-md)}.stat-details{flex:1}.stat-details h3{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin:0 0 var(--space-2) 0}.stat-value{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);font-family:var(--font-mono);margin-bottom:var(--space-3)}.stat-progress{width:100%;height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-2)}.stat-progress-bar{height:100%;background:linear-gradient(90deg,var(--color-yellow),var(--color-yellow-bright));border-radius:var(--radius-full);transition:width var(--transition-base)}.stat-footer{display:flex;align-items:center;justify-content:space-between}.stat-footer .available{font-size:var(--text-xs);color:var(--text-tertiary)}.stat-footer .available.unlimited{color:var(--color-green)}@media(max-width:1024px){.admin-nav-cards{grid-template-columns:1fr}.organizations-table-container{overflow-x:scroll}.organizations-table{min-width:1000px}.stats-grid{grid-template-columns:1fr}}@media(max-width:640px){.form-row,.limits-grid{grid-template-columns:1fr}}.admin-header-content{display:flex;align-items:center;gap:var(--space-4)}.admin-header-content h1{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);margin:0;color:var(--text-primary)}.admin-loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--text-secondary);font-size:var(--text-lg)}.admin-alert{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-6);font-size:var(--text-sm)}.admin-alert-error{background:var(--color-red-dim);color:var(--color-red-bright);border:1px solid var(--color-red)}.admin-alert-success{background:var(--color-green-dim);color:var(--color-green-bright);border:1px solid var(--color-green)}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}.admin-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.admin-users-card{grid-column:1 / -1}.admin-card-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-6);border-bottom:1px solid var(--border-subtle)}.admin-card-header h2{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);margin:0;color:var(--text-primary)}.admin-form{padding:var(--space-6)}.admin-form-group{margin-bottom:var(--space-4)}.admin-form-group label{display:block;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:var(--space-2)}.admin-input{width:100%;padding:var(--space-3);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-primary);transition:all var(--transition-fast)}.admin-input:focus{outline:none;border-color:var(--color-yellow);background:var(--bg-secondary)}.admin-tier-badge{display:inline-block;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:#fff;margin-bottom:var(--space-4)}.admin-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid}.admin-btn-primary{background:var(--color-yellow);color:var(--bg-primary);border-color:var(--color-yellow)}.admin-btn-primary:hover:not(:disabled){background:var(--color-yellow-bright);transform:translateY(-1px)}.admin-btn-primary:disabled{opacity:.5;cursor:not-allowed}.admin-btn-secondary{background:transparent;color:var(--color-yellow);border-color:var(--color-yellow)}.admin-btn-secondary:hover{background:var(--color-yellow-dim)}.admin-stats-grid{padding:var(--space-6);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-6)}.admin-stat-item{display:flex;flex-direction:column;gap:var(--space-2)}.admin-stat-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.admin-stat-value{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);font-family:var(--font-mono);display:flex;align-items:baseline;gap:var(--space-2)}.admin-stat-max{font-size:var(--text-lg);color:var(--text-tertiary);font-weight:var(--font-weight-normal)}.admin-progress-bar{width:100%;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-2)}.admin-progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-base)}.admin-warning{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:#fb923c1a;color:#fb923c;border:1px solid rgba(251,146,60,.3);border-radius:var(--radius-md);font-size:var(--text-sm);margin-top:var(--space-4)}.admin-users-list{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.admin-user-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast)}.admin-user-item:hover{border-color:var(--border-default);transform:translate(2px)}.admin-user-info{display:flex;flex-direction:column;gap:var(--space-1)}.admin-user-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.admin-user-email{font-size:var(--text-sm);color:var(--text-secondary)}.admin-user-role-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.admin-user-role-badge[data-role=admin]{background:var(--color-yellow-dim);color:var(--color-yellow-bright);border:1px solid var(--color-yellow)}.admin-user-role-badge[data-role=chef]{background:#3b82f61a;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.admin-user-role-badge[data-role=viewer]{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.admin-card-footer{padding:var(--space-6);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end}@media(max-width:1024px){.admin-grid,.admin-stats-grid{grid-template-columns:1fr}}.org-card{background:linear-gradient(135deg,#10b9810d,#3b82f60d);border:1px solid var(--border-strong, #4d4d4d);border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 20px #0003}.org-card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.org-card-icon{font-size:2.5rem;flex-shrink:0}.org-card-info{flex:1;min-width:0}.org-card-name{font-family:var(--font-primary, "Inter", sans-serif);font-size:1.5rem;font-weight:700;color:var(--text-primary, #e6e6e6);margin:0 0 .25rem}.org-card-subtitle{font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;color:var(--text-secondary, #a3a3a3);margin:0;text-transform:uppercase;letter-spacing:.05em}.org-card-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-default, #3d3d3d)}.org-card-stats .stats-loading{grid-column:1 / -1;text-align:center;font-size:.875rem;color:var(--text-tertiary, #6b6b6b);padding:1rem 0}.org-card-stats .stat-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-secondary, #242424);border-radius:8px;border:1px solid var(--border-subtle, #2d2d2d);transition:all .15s ease}.org-card-stats .stat-item:hover{border-color:var(--border-default, #3d3d3d);background:var(--bg-tertiary, #2d2d2d)}.org-card-stats .stat-icon{font-size:1.75rem}.org-card-stats .stat-info{display:flex;flex-direction:column;gap:.125rem}.org-card-stats .stat-value{font-family:var(--font-primary, "Inter", sans-serif);font-size:1.75rem;font-weight:700;color:var(--text-primary, #e6e6e6);line-height:1}.org-card-stats .stat-label{font-family:var(--font-primary, "Inter", sans-serif);font-size:.75rem;color:var(--text-tertiary, #6b6b6b);text-transform:uppercase;letter-spacing:.05em}@media(max-width:1200px){.org-card-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.org-card{padding:1.5rem}.org-card-stats{grid-template-columns:repeat(2,1fr);gap:1rem}.org-card-icon{font-size:2rem}.org-card-name{font-size:1.25rem}.org-card-stats .stat-value{font-size:1.5rem}}@media(max-width:480px){.org-card-stats{grid-template-columns:1fr}}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-subtle, #2d2d2d)}.modal-title{font-family:var(--font-primary, "Inter", sans-serif);font-size:1.5rem;font-weight:700;color:var(--text-primary, #e6e6e6);margin:0}.modal-close{background:transparent;border:none;color:var(--text-secondary, #a3a3a3);font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;transition:color .15s ease}.modal-close:hover{color:var(--text-primary, #e6e6e6)}.modal-form{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group:last-of-type{margin-bottom:1.5rem}.form-label{display:block;font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:600;color:var(--text-primary, #e6e6e6);margin-bottom:.5rem}.required{color:var(--color-red-bright, #ff4d4f)}.form-input,.form-textarea{width:100%;padding:.75rem 1rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;color:var(--text-primary, #e6e6e6);font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;transition:all .15s ease}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-yellow, #d4a72c);box-shadow:0 0 0 3px #d4a72c1a}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary, #6b6b6b)}.form-input.error,.form-textarea.error{border-color:var(--color-red-bright, #ff4d4f)}.form-input.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px #ff4d4f1a}.form-textarea{resize:vertical;min-height:80px}.form-error{display:block;font-family:var(--font-primary, "Inter", sans-serif);font-size:.75rem;color:var(--color-red-bright, #ff4d4f);margin-top:.375rem}.form-error-box{padding:.75rem 1rem;background:#d434381a;border:1px solid rgba(212,52,56,.3);border-radius:6px;color:var(--color-red-bright, #ff4d4f);font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;margin-bottom:1.25rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1.5rem;border-top:1px solid var(--border-subtle, #2d2d2d)}.modal-actions .btn{min-width:120px}@media(max-width:768px){.modal-content{width:95%;max-height:95vh}.modal-header,.modal-form{padding:1.25rem}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}.outlet-card{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:8px;padding:1.5rem;transition:all .15s ease}.outlet-card:hover{border-color:var(--border-strong, #4d4d4d);box-shadow:0 4px 12px #0000004d}.outlet-card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.outlet-card-icon{font-size:2rem;flex-shrink:0}.outlet-card-info{flex:1;min-width:0}.outlet-card-name{font-family:var(--font-primary, "Inter", sans-serif);font-size:1.25rem;font-weight:600;color:var(--text-primary, #e6e6e6);margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outlet-card-location{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.875rem;color:var(--text-secondary, #a3a3a3);margin:0}.outlet-card-description{font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;color:var(--text-secondary, #a3a3a3);margin:0 0 1.25rem;line-height:1.5}.outlet-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1rem 0;border-top:1px solid var(--border-subtle, #2d2d2d);border-bottom:1px solid var(--border-subtle, #2d2d2d);margin-bottom:1.25rem}.stats-loading{grid-column:1 / -1;text-align:center;font-size:.875rem;color:var(--text-tertiary, #6b6b6b);padding:.5rem 0}.stat-item{display:flex;align-items:center;gap:.75rem}.stat-icon{font-size:1.5rem}.stat-info{display:flex;flex-direction:column;gap:.125rem}.stat-value{font-family:var(--font-primary, "Inter", sans-serif);font-size:1.5rem;font-weight:700;color:var(--text-primary, #e6e6e6);line-height:1}.stat-label{font-family:var(--font-primary, "Inter", sans-serif);font-size:.75rem;color:var(--text-tertiary, #6b6b6b);text-transform:uppercase;letter-spacing:.05em}.outlet-card-actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn-card{flex:1;padding:.625rem 1rem;font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:600;border-radius:6px;border:none;cursor:pointer;transition:all .15s ease}.btn-card-secondary{background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #e6e6e6);border:1px solid var(--border-default, #3d3d3d)}.btn-card-secondary:hover{background:var(--bg-elevated, #323232);border-color:var(--border-strong, #4d4d4d)}.btn-card-danger{background:#d4343826;color:var(--color-red-bright, #ff4d4f);border:1px solid rgba(212,52,56,.3)}.btn-card-danger:hover:not(:disabled){background:#d4343840;border-color:#d4343880}.btn-card-danger.confirm{background:var(--color-red, #d43438);color:#fff;border-color:var(--color-red, #d43438);animation:pulse .5s ease-in-out}.btn-card-danger:disabled{opacity:.5;cursor:not-allowed}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.outlet-card-list{display:flex;align-items:center;gap:2rem;padding:1.25rem 1.5rem}.outlet-card-list .outlet-card-header{flex:0 0 300px;margin-bottom:0}.outlet-card-list .outlet-card-description{flex:1;margin:0}.outlet-card-list .outlet-card-stats{flex:0 0 auto;border:none;margin:0;padding:0;gap:2rem}.outlet-card-list .outlet-card-actions{flex:0 0 auto;gap:.5rem}.outlet-card-list .btn-card{flex:0 0 auto;min-width:80px}@media(max-width:768px){.outlet-card-stats{grid-template-columns:1fr;gap:.75rem}.outlet-card-list{flex-direction:column;align-items:stretch;gap:1rem}.outlet-card-list .outlet-card-header,.outlet-card-list .outlet-card-stats{flex:1}.outlet-card-list .outlet-card-stats{grid-template-columns:repeat(3,1fr)}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem}.page-title-section{flex:1}.page-title{font-family:var(--font-primary, "Inter", sans-serif);font-size:2rem;font-weight:700;color:var(--text-primary, #e6e6e6);margin:0 0 .5rem}.page-subtitle{font-family:var(--font-primary, "Inter", sans-serif);font-size:1rem;color:var(--text-secondary, #a3a3a3);margin:0}.outlets-controls{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center}.search-box{flex:1;position:relative;display:flex;align-items:center;max-width:400px}.search-icon{position:absolute;left:1rem;font-size:1rem;pointer-events:none}.search-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;color:var(--text-primary, #e6e6e6);font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;transition:all .15s ease}.search-input:focus{outline:none;border-color:var(--color-yellow, #d4a72c);box-shadow:0 0 0 3px #d4a72c1a}.search-input::placeholder{color:var(--text-tertiary, #6b6b6b)}.search-clear{position:absolute;right:.75rem;background:transparent;border:none;color:var(--text-secondary, #a3a3a3);cursor:pointer;font-size:1rem;padding:.25rem;transition:color .15s ease}.search-clear:hover{color:var(--text-primary, #e6e6e6)}.view-toggle{display:flex;gap:.25rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;padding:.25rem}.view-toggle-btn{background:transparent;border:none;color:var(--text-secondary, #a3a3a3);cursor:pointer;font-size:1.25rem;padding:.5rem .75rem;border-radius:4px;transition:all .15s ease}.view-toggle-btn:hover{background:var(--bg-elevated, #323232);color:var(--text-primary, #e6e6e6)}.view-toggle-btn.active{background:var(--bg-elevated, #323232);color:var(--color-yellow, #d4a72c)}.outlets-stats{margin-bottom:1rem}.stats-text{font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;color:var(--text-secondary, #a3a3a3)}.outlets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.outlets-list{display:flex;flex-direction:column;gap:1rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-secondary, #a3a3a3)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-default, #3d3d3d);border-top-color:var(--color-yellow, #d4a72c);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h3{font-family:var(--font-primary, "Inter", sans-serif);font-size:1.5rem;font-weight:600;color:var(--text-primary, #e6e6e6);margin:0 0 .5rem}.empty-state p{font-family:var(--font-primary, "Inter", sans-serif);font-size:1rem;color:var(--text-secondary, #a3a3a3);margin:0 0 1.5rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:var(--font-primary, "Inter", sans-serif);font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease;border:none}.btn-primary:hover{background:var(--color-yellow-bright, #fadb14);transform:translateY(-1px);box-shadow:0 4px 12px #d4a72c4d}.btn-secondary{background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #e6e6e6);border:1px solid var(--border-default, #3d3d3d)}.btn-icon{font-size:1.25rem;line-height:1}@media(max-width:768px){.page-header{flex-direction:column}.outlets-controls{flex-direction:column;align-items:stretch}.search-box{max-width:100%}.outlets-grid{grid-template-columns:1fr}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:var(--space-4)}.login-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-10);width:100%;max-width:400px;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--color-yellow),var(--color-red))}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-header h1{font-family:var(--font-primary);font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-1);letter-spacing:var(--tracking-tight)}.login-subtitle{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4)}.login-header p{color:var(--text-secondary);font-size:var(--text-base)}.setup-notice{background:var(--color-yellow-dim);color:var(--color-yellow-bright);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-yellow);margin-bottom:var(--space-6);font-size:var(--text-sm);text-align:center}.login-error{background:var(--color-red-dim);color:var(--color-red-bright);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-red);margin-bottom:var(--space-6);font-size:var(--text-sm)}.login-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);letter-spacing:var(--tracking-wide)}.form-group input{padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--bg-tertiary);color:var(--text-primary);font-family:var(--font-primary);transition:all var(--transition-base) var(--ease-in-out)}.form-group input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.form-group input::placeholder{color:var(--text-tertiary)}.btn-login{padding:var(--space-3) var(--space-6);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);margin-top:var(--space-2)}.btn-login:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--color-yellow-bright)}.btn-login:disabled{opacity:.5;cursor:not-allowed}.login-footer{margin-top:var(--space-6);text-align:center}.btn-toggle-mode{background:none;border:none;color:var(--color-yellow);font-size:var(--text-sm);font-family:var(--font-primary);cursor:pointer;padding:var(--space-2);transition:color var(--transition-base) var(--ease-in-out)}.btn-toggle-mode:hover{color:var(--color-yellow-bright);text-decoration:underline}.settings-page{min-height:100vh;background-color:var(--bg-color)}.settings-layout{display:flex;max-width:1600px;margin:0 auto;padding:var(--space-4);gap:var(--space-4)}.settings-sidebar{width:220px;flex-shrink:0;background:var(--surface-color);border-radius:var(--radius-lg);padding:var(--space-4);height:fit-content;position:sticky;top:calc(60px + var(--space-4))}.settings-sidebar-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-4) 0;padding-bottom:var(--space-3);border-bottom:1px solid var(--border-color)}.settings-nav{display:flex;flex-direction:column;gap:var(--space-1)}.settings-nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:500;transition:all .15s ease}.settings-nav-link:hover{background-color:var(--surface-secondary);color:var(--text-primary)}.settings-nav-link.active{background-color:var(--primary-light);color:var(--primary)}.settings-nav-link.active svg{color:var(--primary)}.settings-nav-link.super-admin{color:var(--warning-text)}.settings-nav-link.super-admin:hover{background-color:#f59e0b1a}.settings-nav-link.super-admin.active{background-color:#f59e0b26;color:var(--warning-text)}.settings-content{flex:1;min-width:0}.settings-content .page-container{padding:0;max-width:none}.settings-content .page-header{margin-bottom:var(--space-4)}@media(max-width:768px){.settings-layout{flex-direction:column}.settings-sidebar{width:100%;position:static}.settings-nav{flex-direction:row;flex-wrap:wrap;gap:var(--space-2)}.settings-nav-link{flex:1;min-width:100px;justify-content:center}.settings-nav-link span{display:none}}.super-admin-dashboard,.super-admin-organizations{padding:2rem;max-width:1400px;margin:0 auto;background:var(--bg-primary, #1a1a1a);min-height:calc(100vh - 60px)}.super-admin-nav{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid var(--border-default, #3d3d3d);align-items:center;justify-content:space-between}.super-admin-tabs{display:flex;gap:.5rem}.super-admin-tab{padding:.75rem 1.5rem;color:var(--text-secondary, #a3a3a3);text-decoration:none;font-weight:500;font-size:.875rem;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s ease}.super-admin-tab:hover{color:var(--text-primary, #e6e6e6);background:var(--bg-tertiary, #2d2d2d)}.super-admin-tab.active{color:var(--color-red-bright, #ff4d4f);border-bottom-color:var(--color-red-bright, #ff4d4f)}.return-to-main-btn{padding:.5rem 1rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6);text-decoration:none;border-radius:4px;font-size:.875rem;font-weight:500;transition:all .15s ease;display:flex;align-items:center;gap:.5rem}.return-to-main-btn:hover{background:var(--bg-elevated, #323232);border-color:var(--color-yellow, #d4a72c);color:var(--color-yellow-bright, #fadb14);transform:translateY(-1px)}.super-admin-dashboard h1,.super-admin-organizations h1{font-size:2rem;color:var(--text-primary, #e6e6e6);margin-bottom:.5rem;font-weight:700}.subtitle{color:var(--text-secondary, #a3a3a3);font-size:1rem;margin-bottom:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:all .15s ease}.stat-card:hover{background:var(--bg-tertiary, #2d2d2d);border-color:var(--border-strong, #4d4d4d);transform:translateY(-2px)}.stat-icon{font-size:2rem;opacity:.8}.stat-content{flex:1}.stat-value{font-size:2rem;font-weight:700;line-height:1;margin-bottom:.25rem;color:var(--color-yellow-bright, #fadb14)}.stat-label{font-size:.875rem;color:var(--text-secondary, #a3a3a3);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.tier-breakdown{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;padding:1.5rem;margin-bottom:2rem}.tier-breakdown h2{color:var(--text-primary, #e6e6e6);margin-bottom:1.5rem;font-size:1.25rem;font-weight:600}.tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.tier-card{background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;padding:1.5rem;text-align:center;transition:all .15s ease}.tier-card:hover{border-color:var(--border-strong, #4d4d4d)}.tier-breakdown .tier-badge{display:inline-block;padding:.375rem .75rem;border-radius:4px;font-weight:600;font-size:.75rem;letter-spacing:.5px;margin-bottom:1rem}.tier-count{font-size:1.75rem;font-weight:700;color:var(--text-primary, #e6e6e6);margin-bottom:.25rem}.tier-label{font-size:.75rem;color:var(--text-secondary, #a3a3a3);text-transform:uppercase}.organizations-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem}.create-org-btn{background:var(--color-yellow, #d4a72c);color:var(--bg-primary, #1a1a1a);padding:.625rem 1.25rem;border:none;border-radius:4px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.create-org-btn:hover{background:var(--color-yellow-bright, #fadb14);transform:translateY(-1px)}.filters{margin-bottom:2rem;display:flex;gap:1rem}.filters input,.filters select{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6);padding:.625rem;border-radius:4px;font-size:.875rem;font-family:var(--font-primary, "Inter", sans-serif)}.filters input:focus,.filters select:focus{outline:none;border-color:var(--color-yellow, #d4a72c);box-shadow:0 0 0 3px #d4a72c1a}.filters input{flex:1}.filters select{min-width:150px}.organizations-grid{display:grid;gap:1rem}.org-card{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;padding:1.5rem;transition:all .15s ease}.org-card:hover{background:var(--bg-tertiary, #2d2d2d);border-color:var(--border-strong, #4d4d4d);transform:translateY(-2px)}.org-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:1rem;gap:1rem}.org-info h3{font-size:1.25rem;color:var(--text-primary, #e6e6e6);margin-bottom:.25rem;font-weight:600}.org-slug{color:var(--text-tertiary, #6b6b6b);font-size:.875rem;font-family:var(--font-mono, "JetBrains Mono", monospace)}.org-tier{padding:.375rem .75rem;border-radius:4px;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.org-tier[style*="background-color: rgb(107, 114, 128)"],.tier-badge[style*="background-color: rgb(107, 114, 128)"]{background:#6b728026!important;color:#9ca3af!important}.org-tier[style*="background-color: rgb(59, 130, 246)"],.tier-badge[style*="background-color: rgb(59, 130, 246)"]{background:#3b82f626!important;color:#60a5fa!important}.org-tier[style*="background-color: rgb(139, 92, 246)"],.tier-badge[style*="background-color: rgb(139, 92, 246)"]{background:#d4a72c26!important;color:var(--color-yellow-bright, #fadb14)!important}.org-tier[style*="background-color: rgb(245, 158, 11)"],.tier-badge[style*="background-color: rgb(245, 158, 11)"]{background:#8b5cf626!important;color:#a78bfa!important}.org-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-default, #3d3d3d)}.org-stat{text-align:center}.org-stat-value{font-size:1.5rem;font-weight:700;color:var(--color-yellow-bright, #fadb14)}.org-stat-label{font-size:.75rem;color:var(--text-secondary, #a3a3a3);text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem}.org-actions{display:flex;gap:.5rem;margin-top:1rem}.org-actions button{flex:1;padding:.5rem;border:1px solid var(--border-default, #3d3d3d);background:var(--bg-tertiary, #2d2d2d);color:var(--text-primary, #e6e6e6);border-radius:4px;cursor:pointer;transition:all .15s ease;font-size:.875rem;font-weight:500}.org-actions button:hover{background:var(--bg-elevated, #323232);border-color:var(--color-yellow, #d4a72c);color:var(--color-yellow-bright, #fadb14)}.org-actions button[style*="color: rgb(220, 38, 38)"]{color:var(--color-red-bright, #ff4d4f)!important}.org-actions button[style*="color: rgb(220, 38, 38)"]:hover{border-color:var(--color-red, #d43438);color:#ff7875!important}.loading{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:1.125rem;color:var(--text-secondary, #a3a3a3)}.error{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:1.125rem;color:var(--color-red-bright, #ff4d4f)}div[style*="text-align: center"][style*="padding: 3rem"]{background:var(--bg-secondary, #242424);border:1px dashed var(--border-default, #3d3d3d);border-radius:6px;padding:3rem!important;color:var(--text-secondary, #a3a3a3)!important}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.super-admin-dashboard,.super-admin-organizations{padding:1rem}.stats-grid{grid-template-columns:1fr}.tier-grid,.org-stats{grid-template-columns:repeat(2,1fr)}.organizations-header{flex-direction:column;align-items:stretch}.create-org-btn{width:100%}.filters{flex-direction:column}.filters select{width:100%}}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:8px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d}.modal-content h2{color:var(--text-primary, #e6e6e6);margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.modal-content p{color:var(--text-secondary, #a3a3a3);margin-bottom:1rem;line-height:1.6}.form-group{margin-bottom:1.5rem}.form-group label{display:block;color:var(--text-primary, #e6e6e6);font-weight:500;margin-bottom:.5rem;font-size:.875rem}.form-group input,.form-group select{width:100%;padding:.75rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);border-radius:4px;color:var(--text-primary, #e6e6e6);font-size:.875rem;font-family:var(--font-primary, "Inter", sans-serif);transition:all .15s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-yellow, #d4a72c);box-shadow:0 0 0 3px #d4a72c1a}.form-group input::placeholder{color:var(--text-tertiary, #6b6b6b)}.modal-actions{display:flex;gap:1rem;margin-top:2rem}.modal-actions button{flex:1;padding:.75rem 1.5rem;border:none;border-radius:4px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .15s ease}.btn-primary{background:var(--color-yellow, #d4a72c);color:var(--bg-primary, #1a1a1a)}.btn-primary:hover{background:var(--color-yellow-bright, #fadb14);transform:translateY(-1px)}.btn-secondary{background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6)}.btn-secondary:hover{background:var(--bg-elevated, #323232);border-color:var(--border-strong, #4d4d4d)}.btn-danger{background:var(--color-red, #d43438);color:#fff;border:none}.btn-danger:hover{background:var(--color-red-bright, #ff4d4f);transform:translateY(-1px)}.super-admin-organization-detail{padding:2rem;max-width:1400px;margin:0 auto;background:var(--bg-primary, #1a1a1a);min-height:calc(100vh - 60px)}.detail-header{margin-bottom:2rem}.back-link{color:var(--text-secondary, #a3a3a3);text-decoration:none;font-size:.875rem;display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1rem;transition:color .15s ease}.back-link:hover{color:var(--color-red-bright, #ff4d4f)}.detail-header h1{font-size:2rem;color:var(--text-primary, #e6e6e6);margin:.5rem 0}.org-meta{display:flex;gap:1rem;align-items:center;margin-top:.5rem}.org-tier-badge{padding:.25rem .75rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge{padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.active{background:#52c41a1a;color:#52c41a;border:1px solid #52c41a}.status-badge.inactive{background:#dc26261a;color:#dc2626;border:1px solid #dc2626}.status-badge.suspended{background:#dc26261a;color:#ff4d4f;border:1px solid #dc2626}.detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:8px;padding:1.5rem;text-align:center}.stat-value{font-size:2.5rem;font-weight:700;color:var(--color-red-bright, #ff4d4f);margin-bottom:.5rem}.stat-label{font-size:.875rem;color:var(--text-secondary, #a3a3a3);text-transform:uppercase;letter-spacing:.05em}.detail-section{margin-bottom:3rem}.detail-section h2{font-size:1.5rem;color:var(--text-primary, #e6e6e6);margin-bottom:1rem;border-bottom:2px solid var(--border-default, #3d3d3d);padding-bottom:.5rem}.data-table{width:100%;background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:8px;overflow:hidden}.data-table thead{background:var(--bg-tertiary, #2d2d2d)}.data-table th{padding:1rem;text-align:left;color:var(--text-secondary, #a3a3a3);font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-default, #3d3d3d)}.data-table td{padding:1rem;color:var(--text-primary, #e6e6e6);border-bottom:1px solid var(--border-default, #3d3d3d)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-tertiary, #2d2d2d)}.data-table tbody tr.inactive-row{opacity:.6}.role-badge{padding:.25rem .75rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block}.outlet-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;display:inline-block;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6)}.outlet-badge.all-outlets{background:#1e40af;border-color:#1e40af;color:#fff;font-weight:600}.outlet-badge.no-outlets{background:transparent;border-color:#dc2626;color:#dc2626;font-style:italic}.outlet-assignment-item{display:flex;align-items:center;gap:.5rem;padding:.75rem;border:1px solid var(--border-default, #3d3d3d);border-radius:4px;cursor:pointer;transition:all .15s ease}.outlet-assignment-item:hover{border-color:var(--color-red-bright, #ff4d4f);background:#3b82f60d}.action-btn{padding:.375rem .75rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6);border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .15s ease;margin-right:.5rem}.action-btn:hover:not(:disabled){background:var(--bg-primary, #1a1a1a);border-color:var(--color-red-bright, #ff4d4f);color:var(--color-red-bright, #ff4d4f)}.action-btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary, #a3a3a3);font-size:1rem}.org-name-link{text-decoration:none;color:inherit;transition:color .15s ease}.org-name-link:hover h3{color:var(--color-red-bright, #ff4d4f)}.subscription-actions{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;gap:2rem}.subscription-info{display:flex;gap:2rem;align-items:center}.info-item{display:flex;align-items:center;gap:.75rem}.info-label{color:var(--text-secondary, #a3a3a3);font-size:.875rem;font-weight:500}.action-buttons{display:flex;gap:.75rem}.action-btn.primary{background:var(--color-yellow, #d4a72c);border-color:var(--color-yellow, #d4a72c);color:var(--bg-primary, #1a1a1a);font-weight:600}.action-btn.primary:hover{background:var(--color-yellow-bright, #fadb14);border-color:var(--color-yellow-bright, #fadb14);color:var(--bg-primary, #1a1a1a);transform:translateY(-1px)}.action-btn.impersonate{background:var(--color-red-dim, rgba(255, 77, 79, .1));border-color:var(--color-red, #ff4d4f);color:var(--color-red-bright, #ff4d4f);font-weight:600}.action-btn.impersonate:hover{background:var(--color-red, #ff4d4f);border-color:var(--color-red, #ff4d4f);color:#fff}.super-admin-audit-logs{padding:2rem;max-width:1600px;margin:0 auto;background:var(--bg-primary, #1a1a1a);min-height:calc(100vh - 60px)}.filters-section{display:flex;gap:1rem;margin-bottom:2rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-size:.875rem;color:var(--text-secondary, #a3a3a3);font-weight:500}.filter-input,.filter-select{padding:.5rem .75rem;background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6);border-radius:4px;font-size:.875rem;min-width:200px}.filter-input:focus,.filter-select:focus{outline:none;border-color:var(--color-yellow, #d4a72c)}.btn-clear-filters{padding:.5rem 1rem;background:var(--bg-tertiary, #2d2d2d);border:1px solid var(--border-default, #3d3d3d);color:var(--text-primary, #e6e6e6);border-radius:4px;font-size:.875rem;cursor:pointer;transition:all .15s ease}.btn-clear-filters:hover{background:var(--bg-elevated, #323232);border-color:var(--color-yellow, #d4a72c)}.audit-logs-container{background:var(--bg-secondary, #242424);border:1px solid var(--border-default, #3d3d3d);border-radius:6px;overflow-x:auto}.audit-logs-table{width:100%;border-collapse:collapse}.audit-logs-table thead{background:var(--bg-tertiary, #2d2d2d);border-bottom:2px solid var(--border-default, #3d3d3d)}.audit-logs-table th{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:var(--text-secondary, #a3a3a3);text-transform:uppercase;letter-spacing:.05em}.audit-logs-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle, #333);font-size:.875rem;color:var(--text-primary, #e6e6e6)}.audit-logs-table tr:hover{background:var(--bg-tertiary, #2d2d2d)}.audit-logs-table tr:last-child td{border-bottom:none}.impersonation-row{background:#f59e0b0d;border-left:3px solid #f59e0b}.timestamp-cell{white-space:nowrap;color:var(--text-secondary, #a3a3a3);font-size:.8125rem}.action-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;color:#fff;white-space:nowrap}.impersonation-indicator{margin-left:.5rem;font-size:.875rem}.user-cell{white-space:nowrap}.impersonation-note{font-size:.75rem;color:#f59e0b;font-style:italic;margin-top:.25rem}.entity-info{font-family:monospace;font-size:.8125rem;color:var(--text-secondary, #a3a3a3)}.changes-cell{max-width:300px}.change-item{font-size:.8125rem;margin-bottom:.25rem;color:var(--text-secondary, #a3a3a3)}.change-item strong{color:var(--text-primary, #e6e6e6);font-weight:600}.ip-cell{font-family:monospace;font-size:.8125rem;color:var(--text-tertiary, #666)}.banquet-menus-page{padding:var(--space-6)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6)}.header-content h1{margin:0 0 var(--space-1) 0;font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.header-content p{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}.btn-new-menu{padding:var(--space-3) var(--space-5);background:var(--color-green);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);white-space:nowrap}.btn-new-menu:hover{background:var(--color-green-bright);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.menu-type-toggle{display:inline-flex;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-1);margin-bottom:var(--space-5)}.menu-type-toggle .toggle-btn{padding:var(--space-2) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:var(--font-primary);color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.menu-type-toggle .toggle-btn:hover:not(.active){color:var(--text-primary);background:var(--bg-elevated)}.menu-type-toggle .toggle-btn.active{background:var(--color-yellow);color:var(--bg-primary);font-weight:var(--font-weight-semibold)}.menu-selectors{display:flex;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.selector-group{display:flex;flex-direction:column;gap:var(--space-2);min-width:180px}.selector-group-wide{min-width:280px;flex:1}.selector-group label{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.selector-dropdown{padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-family:var(--font-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.selector-dropdown:hover:not(:disabled){border-color:var(--border-strong)}.selector-dropdown:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.selector-dropdown:disabled{opacity:.5;cursor:not-allowed}.menu-dashboard{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.dashboard-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.dashboard-actions{display:flex;gap:var(--space-2)}.btn-export-pdf{padding:var(--space-2) var(--space-4);background:var(--color-blue-dim);color:var(--color-blue);border:1px solid var(--color-blue);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);display:flex;align-items:center;gap:var(--space-2)}.btn-export-pdf:hover{background:var(--color-blue);color:#fff}.btn-edit-dashboard{padding:var(--space-2) var(--space-4);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);display:flex;align-items:center;gap:var(--space-2)}.btn-edit-dashboard:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.stat-card{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);text-align:center}.stat-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2)}.stat-value{font-size:var(--text-xl);font-weight:var(--font-weight-bold);font-family:var(--font-mono);color:var(--text-primary)}.stat-value.positive{color:var(--color-green-bright)}.stat-value.negative{color:var(--color-red-bright)}.stat-value.warning{color:var(--color-yellow-bright)}.dashboard-guest-row{display:flex;align-items:center;gap:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.guest-input-group{display:flex;align-items:center;gap:var(--space-3)}.guest-input-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.guest-input{width:100px;padding:var(--space-2) var(--space-3);font-size:var(--text-base);font-family:var(--font-mono);font-weight:var(--font-weight-semibold);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);text-align:center;transition:all var(--transition-base) var(--ease-in-out)}.guest-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.surcharge-info{font-size:var(--text-sm);color:var(--text-secondary)}.surcharge-info.active{color:var(--color-yellow)}.menu-items-section{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle)}.section-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.btn-add-item{padding:var(--space-2) var(--space-4);background:var(--color-yellow);color:var(--bg-primary);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-add-item:hover{background:var(--color-yellow-bright);transform:translateY(-1px)}.menu-item-list{list-style:none;margin:0;padding:0}.menu-item-row{border-bottom:1px solid var(--border-subtle)}.menu-item-row:last-child{border-bottom:none}.menu-item-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);cursor:pointer;transition:background var(--transition-fast) var(--ease-in-out)}.menu-item-header:hover{background:var(--bg-tertiary)}.menu-item-left{display:flex;align-items:center;gap:var(--space-3)}.expand-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);transition:transform var(--transition-base) var(--ease-in-out)}.expand-icon.expanded{transform:rotate(90deg)}.menu-item-name{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--text-primary)}.enhancement-badge{padding:var(--space-1) var(--space-2);background:var(--color-yellow-dim);color:var(--color-yellow-bright);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold)}.menu-item-right{display:flex;align-items:center;gap:var(--space-4)}.item-cost-info{display:flex;align-items:center;gap:var(--space-3)}.item-price{font-size:var(--text-sm);font-family:var(--font-mono);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.item-cost{font-size:var(--text-sm);font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.item-cost-pct{font-size:var(--text-xs);font-family:var(--font-mono);font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-green-dim);color:var(--color-green-bright)}.item-cost-pct.high{background:var(--color-red-dim);color:var(--color-red-bright)}.item-cost-pct.low{background:var(--color-blue-dim);color:var(--color-blue)}.item-actions{display:flex;gap:var(--space-2)}.btn-item-action{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast) var(--ease-in-out)}.btn-item-action:hover{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.btn-item-action.delete:hover{background:#ef44441a;border-color:var(--color-red);color:var(--color-red)}.prep-items-container{padding:0 var(--space-6) var(--space-4) var(--space-6);padding-left:calc(var(--space-6) + 32px);background:var(--bg-primary)}.prep-items-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.prep-items-table thead{background:var(--bg-tertiary)}.prep-items-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-tertiary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.prep-items-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.prep-items-table tbody tr:hover{background:var(--bg-tertiary)}.prep-items-table tbody tr:last-child td{border-bottom:none}.link-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-green-dim);color:var(--color-green-bright);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.link-badge.product{background:var(--color-yellow-dim);color:var(--color-yellow-bright)}.link-badge.recipe{background:var(--color-blue);background:#3b82f633;color:var(--color-blue)}.btn-link-prep{padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);color:var(--text-secondary);border:1px dashed var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-link-prep:hover{background:var(--bg-elevated);border-color:var(--color-yellow);color:var(--color-yellow)}.cost-cell{font-family:var(--font-mono);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.cost-cell.no-cost{color:var(--text-tertiary)}.btn-add-prep{padding:var(--space-2) var(--space-3);background:transparent;color:var(--color-green);border:1px dashed var(--color-green-dim);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);margin-top:var(--space-3)}.btn-add-prep:hover{background:var(--color-green-dim);border-style:solid}.prep-empty-state{padding:var(--space-4);color:var(--text-tertiary);font-size:var(--text-sm);font-style:italic}.prep-amount-group{display:inline-flex;align-items:center;gap:var(--space-1)}.prep-amount-group .amount-value{font-family:var(--font-mono)}.prep-amount-group .amount-unit{color:var(--text-secondary);font-size:var(--text-xs)}.prep-per-badge{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-mono)}.prep-link-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.prep-link-badge.common{background:var(--color-green-dim);color:var(--color-green-bright)}.prep-link-badge.product{background:var(--color-yellow-dim);color:var(--color-yellow-bright)}.prep-link-badge.recipe{background:#3b82f633;color:var(--color-blue)}.prep-link-badge.clickable{cursor:pointer;transition:opacity var(--transition-fast) var(--ease-in-out)}.prep-link-badge.clickable:hover{opacity:.8}.prep-link-wrapper{display:inline-flex;align-items:center;gap:var(--space-1)}.btn-relink-inline{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.btn-relink-inline:hover{border-color:var(--color-focus);color:var(--color-focus)}.btn-link-inline{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:transparent;color:var(--color-yellow);border:1px dashed var(--color-yellow-dim);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-link-inline:hover{background:var(--color-yellow-dim);border-style:solid}.btn-prep-action{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast) var(--ease-in-out)}.btn-prep-action:hover{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.btn-prep-action.delete:hover{background:#ef44441a;border-color:var(--color-red);color:var(--color-red)}.prep-cost-cell,.prep-total-cell,.prep-qty-cell{font-family:var(--font-mono);font-weight:var(--font-weight-medium)}.prep-total-cell{color:var(--color-green-bright)}.prep-qty-cell .qty-required{color:var(--color-blue);font-weight:var(--font-weight-semibold)}.prep-cost-cell.no-cost,.prep-total-cell.no-cost{color:var(--text-tertiary);font-weight:var(--font-weight-normal)}.prep-editable-value{cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast) var(--ease-in-out);color:var(--text-primary)}.prep-editable-value:hover{background:var(--bg-elevated)}.prep-inline-input,.prep-inline-select{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);font-family:var(--font-primary);border:2px solid var(--color-yellow);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);outline:none;min-width:50px;max-width:120px}.prep-inline-input:focus,.prep-inline-select:focus{box-shadow:0 0 0 3px #d4a72c1a}.prep-inline-input[type=number]{width:70px}.prep-inline-select{cursor:pointer}.loading{text-align:center;padding:var(--space-12);font-size:var(--text-lg);color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.empty-state{text-align:center;padding:var(--space-12);font-size:var(--text-lg);color:var(--text-tertiary);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.empty-state-hint{text-align:center;padding:var(--space-8);font-size:var(--text-base);color:var(--text-tertiary);font-style:italic}.error-message{padding:var(--space-4);background:var(--color-red-dim);border:1px solid var(--color-red);border-radius:var(--radius-md);color:var(--color-red-bright);margin-bottom:var(--space-4)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.modal-content.wide{max-width:700px}.modal-content.modal-wide{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default)}.modal-header h2{margin:0;font-size:var(--text-xl);font-family:var(--font-primary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.modal-close{background:none;border:none;font-size:var(--text-3xl);color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base) var(--ease-in-out)}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:var(--space-6)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-default)}.form-group{margin-bottom:var(--space-5)}.form-group label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.form-input,.form-select{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-family:var(--font-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);transition:all var(--transition-base) var(--ease-in-out)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.form-input::placeholder{color:var(--text-tertiary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.btn-primary{padding:var(--space-3) var(--space-5);background:var(--color-green);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-primary:hover:not(:disabled){background:var(--color-green-bright)}.btn-secondary{padding:var(--space-3) var(--space-5);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-danger{padding:var(--space-3) var(--space-5);background:var(--color-red-dim);color:var(--color-red-bright);border:1px solid var(--color-red);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-danger:hover{background:var(--color-red);color:#fff}.inline-edit-input{padding:var(--space-1) var(--space-2);border:2px solid var(--color-yellow);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-primary);background:var(--bg-tertiary);color:var(--text-primary);outline:none}.inline-edit-input:focus{box-shadow:0 0 0 3px #d4a72c1a}.drag-handle{display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-tertiary);padding:var(--space-1);margin-right:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast) var(--ease-in-out)}.drag-handle:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.drag-handle:active{cursor:grabbing}.menu-item-row.dragging{opacity:.5;background:var(--bg-tertiary)}.menu-item-row.drag-over{border-top:2px solid var(--color-yellow);margin-top:-2px}.prep-items-table tbody tr.dragging{opacity:.5;background:var(--bg-tertiary)}.prep-items-table tbody tr.drag-over{box-shadow:inset 0 2px 0 var(--color-yellow)}.drag-col{width:32px;padding:var(--space-2)!important}.drag-cell{width:32px;padding:var(--space-2) var(--space-2)!important}.drag-cell .drag-handle{margin-right:0}@media(max-width:768px){.banquet-menus-page{padding:var(--space-4)}.page-header{flex-direction:column;gap:var(--space-4);align-items:stretch}.menu-selectors{flex-direction:column}.selector-group,.selector-group-wide{min-width:100%}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-guest-row{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.form-row{grid-template-columns:1fr}}.import-instructions{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4);line-height:1.6}.import-instructions code{background:var(--bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-yellow)}.import-instructions small{display:block;margin-top:var(--space-2);color:var(--text-tertiary)}.csv-input{width:100%;min-height:300px;padding:var(--space-4);font-size:var(--text-sm);font-family:var(--font-mono);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);resize:vertical;transition:all var(--transition-base) var(--ease-in-out)}.csv-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 3px #d4a72c1a}.csv-input::placeholder{color:var(--text-tertiary)}.csv-input:disabled{opacity:.5;cursor:not-allowed}.import-results{padding:var(--space-4)}.import-results h3{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);color:var(--color-green-bright)}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.result-item{display:flex;justify-content:space-between;padding:var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.result-label{font-size:var(--text-sm);color:var(--text-secondary)}.result-value{font-size:var(--text-sm);font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.result-value.success{color:var(--color-green-bright)}.import-errors{margin-top:var(--space-4);padding:var(--space-4);background:var(--color-red-dim);border:1px solid var(--color-red);border-radius:var(--radius-md)}.import-errors h4{margin:0 0 var(--space-2) 0;font-size:var(--text-sm);color:var(--color-red-bright)}.import-errors ul{margin:0;padding-left:var(--space-4);font-size:var(--text-sm);color:var(--color-red-bright)}.header-buttons{display:flex;gap:var(--space-3)}.btn-import{padding:var(--space-3) var(--space-5);background:var(--color-blue-dim);color:var(--color-blue);border:1px solid var(--color-blue);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);white-space:nowrap}.btn-import:hover{background:var(--color-blue);color:#fff}.file-upload-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.file-upload-row .file-name{font-size:var(--text-sm);color:var(--text-secondary);font-family:var(--font-mono)}.vessels-container{max-width:900px;margin:0 auto;padding:var(--space-6)}.vessels-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6)}.vessels-header-content{display:flex;align-items:flex-start;gap:var(--space-3)}.vessels-header-content h1{margin:0;font-size:var(--text-2xl);font-weight:600}.vessels-subtitle{margin:var(--space-1) 0 0 0;color:var(--text-secondary);font-size:var(--text-sm)}.vessels-loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-secondary)}.vessels-empty{text-align:center;padding:var(--space-12) var(--space-6);background:var(--surface-color);border-radius:var(--radius-lg);border:1px dashed var(--border-color)}.vessels-empty svg{color:var(--text-tertiary);margin-bottom:var(--space-4)}.vessels-empty h3{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);color:var(--text-primary)}.vessels-empty p{margin:0 0 var(--space-4) 0;color:var(--text-secondary)}.vessels-list{display:flex;flex-direction:column;gap:var(--space-3)}.vessel-card{background:var(--surface-color);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.vessel-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);cursor:pointer;transition:background-color .15s}.vessel-header:hover{background:var(--surface-secondary)}.vessel-expand-icon{color:var(--text-tertiary);flex-shrink:0}.vessel-info{flex:1;min-width:0}.vessel-info h3{margin:0;font-size:var(--text-base);font-weight:600}.vessel-capacity{display:inline-block;margin-right:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary)}.vessel-capacity-count{font-size:var(--text-sm);color:var(--text-tertiary)}.vessel-actions{display:flex;gap:var(--space-1)}.vessel-capacities{padding:var(--space-4);padding-top:0;border-top:1px solid var(--border-color);background:var(--surface-secondary)}.capacities-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0}.capacities-header h4{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.no-capacities{padding:var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.capacities-list{display:flex;flex-direction:column;gap:var(--space-2)}.capacity-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-color);border-radius:var(--radius-md);border:1px solid var(--border-color)}.capacity-product{flex:1;min-width:0}.capacity-product-name{font-weight:500}.capacity-product-category{margin-left:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary)}.capacity-value{font-weight:600;color:var(--primary);white-space:nowrap}.capacity-notes{flex-shrink:0;font-size:var(--text-xs);color:var(--text-tertiary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capacity-actions{display:flex;gap:var(--space-1)}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.modal-content-lg{max-width:550px}.selected-product{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--primary-light);border-radius:var(--radius-md);border:1px solid var(--primary)}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input-wrapper svg{position:absolute;left:var(--space-3);color:var(--text-tertiary)}.search-input-wrapper input{padding-left:calc(var(--space-3) + 20px)}.product-search-results{max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);margin-top:var(--space-2)}.product-search-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);cursor:pointer;border-bottom:1px solid var(--border-color)}.product-search-item:last-child{border-bottom:none}.product-search-item:hover{background:var(--surface-secondary)}.product-name{font-weight:500}.product-category{font-size:var(--text-xs);color:var(--text-tertiary)}.no-results{padding:var(--space-4);text-align:center;color:var(--text-tertiary)}.conversions-container{max-width:1000px;margin:0 auto;padding:var(--space-6)}.conversions-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6)}.conversions-header-content{display:flex;align-items:flex-start;gap:var(--space-3)}.conversions-header-content h1{margin:0;font-size:var(--text-2xl);font-weight:600}.conversions-subtitle{margin:var(--space-1) 0 0 0;color:var(--text-secondary);font-size:var(--text-sm)}.conversions-loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-secondary)}.conversions-empty{text-align:center;padding:var(--space-12) var(--space-6);background:var(--surface-color);border-radius:var(--radius-lg);border:1px dashed var(--border-color)}.conversions-empty svg{color:var(--text-tertiary);margin-bottom:var(--space-4)}.conversions-empty h3{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);color:var(--text-primary)}.conversions-empty p{margin:0;color:var(--text-secondary)}.info-box{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--color-blue-dim, rgba(59, 130, 246, .1));border:1px solid var(--color-blue, #3b82f6);border-radius:var(--radius-md);margin-bottom:var(--space-4);color:var(--text-secondary)}.info-box svg{flex-shrink:0;color:var(--color-blue, #3b82f6)}.info-box strong{display:block;margin-bottom:var(--space-1);color:var(--text-primary)}.info-box p{margin:0;font-size:var(--text-sm)}.info-box-sm{padding:var(--space-3);margin-bottom:var(--space-4)}.info-box-sm span{font-size:var(--text-sm)}.conversions-filter{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.filter-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:500;transition:all .15s}.filter-btn:hover{background:var(--surface-secondary);color:var(--text-primary)}.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.conversions-group{margin-bottom:var(--space-6)}.group-title{font-size:var(--text-lg);font-weight:600;margin:0 0 var(--space-3) 0;padding-bottom:var(--space-2);border-bottom:1px solid var(--border-color);text-transform:capitalize}.conversions-table{background:var(--surface-color);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.table-header{display:grid;grid-template-columns:120px 40px 150px 1fr 100px 80px;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface-secondary);font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.table-row{display:grid;grid-template-columns:120px 40px 150px 1fr 100px 80px;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color);align-items:center}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--surface-secondary)}.col-from,.col-to{display:flex;flex-direction:column;gap:var(--space-1)}.col-arrow{text-align:center;font-weight:600;color:var(--text-tertiary)}.unit-abbr{font-weight:600;color:var(--text-primary)}.unit-name{font-size:var(--text-xs);color:var(--text-tertiary)}.unit-factor{font-weight:600;color:var(--primary);margin-right:var(--space-1)}.col-factor{font-size:var(--text-sm);color:var(--text-secondary)}.factor-display{font-family:var(--font-mono, monospace);font-size:var(--text-xs);background:var(--surface-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.col-scope{display:flex;justify-content:center}.scope-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full)}.scope-badge-system{background:var(--surface-secondary);color:var(--text-tertiary)}.scope-badge-org{background:var(--color-blue-dim, rgba(59, 130, 246, .1));color:var(--color-blue, #3b82f6)}.scope-badge-outlet{background:var(--color-green-dim, rgba(34, 197, 94, .1));color:var(--color-green, #22c55e)}.col-actions{display:flex;justify-content:flex-end;gap:var(--space-1)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s}.btn-icon:hover{background:var(--surface-secondary);color:var(--text-primary)}.btn-icon-sm{width:28px;height:28px}.btn-icon-danger:hover{background:var(--color-red-light);color:var(--color-red)}.form-help{margin:var(--space-1) 0 0 0;font-size:var(--text-xs);color:var(--text-tertiary)}@media(max-width:768px){.table-header,.table-row{grid-template-columns:1fr 30px 1fr;font-size:var(--text-xs)}.col-factor,.col-scope,.col-actions,.table-header .col-factor,.table-header .col-scope,.table-header .col-actions{display:none}}.chat-input-container{padding:var(--space-4);background:var(--bg-secondary);border-top:1px solid var(--border-default);display:flex;gap:var(--space-3)}.chat-input{flex:1;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:14px;padding:var(--space-3);resize:none;min-height:40px;max-height:120px;transition:border-color .2s}.chat-input:focus{outline:none;border-color:var(--color-focus)}.chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-input::placeholder{color:var(--text-tertiary)}.chat-send-btn{background:var(--color-green);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-5);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;align-self:flex-end}.chat-send-btn:hover:not(:disabled){background:var(--color-green-bright);transform:translateY(-1px)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.text-renderer{font-size:14px;line-height:1.6;color:var(--text-primary)}.text-renderer h1,.text-renderer h2,.text-renderer h3,.text-renderer strong{font-weight:600;color:var(--text-primary)}.text-renderer code{background:var(--bg-subtle);padding:2px 6px;border-radius:3px;font-family:Monaco,Courier New,monospace;font-size:.9em}.text-renderer pre{background:var(--bg-subtle);padding:12px;border-radius:6px;overflow-x:auto;margin:.5em 0}.text-renderer pre code{background:transparent;padding:0}.text-renderer ul,.text-renderer ol{list-style-position:outside}.text-renderer a{color:var(--color-primary);text-decoration:none}.text-renderer a:hover{text-decoration:underline}.table-renderer{overflow-x:auto;margin-top:var(--space-3)}.chat-table{width:100%;border-collapse:collapse;font-size:13px}.chat-table thead{background:var(--bg-tertiary);position:sticky;top:0}.chat-table th{padding:var(--space-2) var(--space-3);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-default)}.chat-table td{padding:var(--space-2) var(--space-3);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.chat-table tbody tr:hover{background:var(--bg-tertiary)}.chat-table tbody tr:last-child td{border-bottom:none}.chart-renderer{margin-top:var(--space-3);padding:var(--space-3);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.chart-placeholder{padding:var(--space-6);text-align:center;color:var(--text-tertiary);font-size:13px}.html-renderer{font-size:14px;line-height:1.6;color:var(--text-primary)}.html-renderer h1,.html-renderer h2,.html-renderer h3,.html-renderer h4{margin-top:1em;margin-bottom:.5em;font-weight:600;color:var(--text-primary)}.html-renderer h1{font-size:1.5em}.html-renderer h2{font-size:1.3em}.html-renderer h3{font-size:1.15em}.html-renderer h4{font-size:1.05em}.html-renderer p{margin:.5em 0}.html-renderer ul,.html-renderer ol{margin:.5em 0;padding-left:1.5em}.html-renderer li{margin-bottom:.25em}.html-renderer table{width:100%;border-collapse:collapse;margin:1em 0;font-size:13px}.html-renderer thead{background:var(--bg-tertiary)}.html-renderer th{padding:var(--space-2) var(--space-3);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-default)}.html-renderer td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle)}.html-renderer tbody tr:hover{background:var(--bg-tertiary)}.html-renderer strong{font-weight:600;color:var(--text-primary)}.html-renderer em{font-style:italic}.html-renderer code{background:var(--bg-subtle);padding:2px 6px;border-radius:3px;font-family:Monaco,Courier New,monospace;font-size:.9em}.html-renderer pre{background:var(--bg-subtle);padding:12px;border-radius:6px;overflow-x:auto;margin:.5em 0}.html-renderer pre code{background:transparent;padding:0}.html-renderer a{color:var(--color-primary);text-decoration:none}.html-renderer a:hover{text-decoration:underline}.html-renderer .report-section{margin:1em 0;padding:1em;background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--color-primary)}.html-renderer .metric-card{display:inline-block;padding:.75em 1em;margin:.5em .5em .5em 0;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-default)}.html-renderer .metric-label{font-size:.85em;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.html-renderer .metric-value{font-size:1.5em;font-weight:600;color:var(--text-primary);margin-top:.25em}.html-renderer .highlight{background:var(--color-yellow-dim);padding:2px 4px;border-radius:3px}.html-renderer .positive{color:var(--color-green)}.html-renderer .negative{color:var(--color-red)}.html-renderer .neutral{color:var(--text-secondary)}.message-bubble{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-3)}.message-user{align-self:flex-end;background:var(--color-green);color:var(--text-inverse);margin-left:auto}.message-assistant{align-self:flex-start;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default)}.message-text{font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.message-user .message-text{color:var(--text-inverse)}.message-assistant .message-text{color:var(--text-primary)}.message-list{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.message-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--space-8);text-align:center;color:var(--text-secondary)}.empty-icon{font-size:48px;margin-bottom:var(--space-4);opacity:.5}.message-list-empty h3{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:18px;font-weight:600}.message-list-empty p{margin:0 0 var(--space-2) 0;font-size:14px}.message-list-empty ul{list-style:none;padding:0;margin:0;font-size:13px;color:var(--text-tertiary)}.message-list-empty li{padding:var(--space-2) 0}.message-list-empty li:before{content:"•";margin-right:var(--space-2);color:var(--color-green)}.message-loading{display:flex;justify-content:flex-start;padding:var(--space-3)}.loading-dots{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-md)}.loading-dots span{width:8px;height:8px;background:var(--color-green);border-radius:50%;animation:loading-bounce 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes loading-bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.chat-panel-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;justify-content:flex-end;align-items:stretch}.chat-panel{width:800px;max-width:100%;background:var(--bg-primary);border-left:1px solid var(--border-default);display:flex;flex-direction:column;box-shadow:-4px 0 12px #0000004d}.chat-header{padding:var(--space-4) var(--space-5);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);display:flex;justify-content:space-between;align-items:center}.chat-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.chat-close-btn{background:none;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;padding:var(--space-1);line-height:1;transition:color .2s}.chat-close-btn:hover{color:var(--text-primary)}.chat-error{padding:var(--space-3) var(--space-4);background:var(--color-red-dim);color:var(--color-red-bright);border-top:1px solid var(--color-red);font-size:14px}@media(max-width:768px){.chat-panel{width:100%}}:root{--meal-breakfast: #d97706;--meal-lunch: #059669;--meal-dinner: #7c3aed;--meal-reception: #db2777}.potentials-page{min-height:100vh;background:var(--bg-primary)}.potentials-container{max-width:1400px;margin:0 auto;padding:var(--space-6)}.potentials-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);padding:var(--space-4) var(--space-6)}.status-bar{max-width:1400px;margin:var(--space-3) auto 0;padding-top:var(--space-3);border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-xs);color:var(--text-tertiary)}.status-bar strong{color:var(--text-secondary)}.date-range-filter{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:var(--space-2)}.filter-group label{font-size:var(--text-sm);color:var(--text-secondary)}.filter-group select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);cursor:pointer}.filter-group select:focus{outline:none;border-color:var(--color-focus)}.reset-filter{font-size:var(--text-sm);color:var(--color-blue);background:none;border:none;cursor:pointer;text-decoration:underline}.btn-primary{background:var(--color-blue);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-primary:hover{filter:brightness(1.1)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-success{background:var(--color-green);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-success:hover{filter:brightness(1.1)}.btn-secondary:hover{background:var(--bg-elevated)}.btn-primary-sm{background:var(--color-blue);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-weight-medium);cursor:pointer}.btn-primary-sm:disabled{opacity:.5}.btn-ghost-sm{background:none;color:var(--text-secondary);border:none;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);cursor:pointer}.btn-ghost-sm:hover{color:var(--text-primary);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.btn-ghost-sm.danger{color:var(--color-red)}.btn-danger-sm{background:var(--color-red);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-weight-medium);cursor:pointer}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}@media(min-width:768px){.metrics-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.metrics-grid{grid-template-columns:repeat(6,1fr)}}.potentials-metric-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.metric-card-content{display:flex;align-items:center;justify-content:space-between}.metric-title{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin:0}.metric-value{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:var(--space-1) 0 0}.metric-subtitle{font-size:var(--text-xs);color:var(--text-tertiary);margin:var(--space-1) 0 0}.metric-icon{font-size:1.5rem;opacity:.8}.potentials-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6)}.potentials-card h3{font-family:var(--font-primary);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--space-4)}.potentials-chart-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.potentials-chart-card h3{font-family:var(--font-primary);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--space-4)}.charts-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6);margin-bottom:var(--space-6)}@media(min-width:1024px){.charts-grid{grid-template-columns:repeat(2,1fr)}}.date-selector-card{padding:var(--space-4)}.date-selector{display:flex;gap:var(--space-1);overflow-x:auto;padding-bottom:var(--space-2)}.date-btn{display:flex;flex-direction:column;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);border:1px solid var(--border-default);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out);position:relative;min-width:48px}.date-btn:hover{background:var(--bg-elevated)}.date-btn.selected{background:var(--color-blue);color:#fff;border-color:var(--color-blue)}.date-btn.weekend{background:var(--bg-secondary)}.date-btn.no-forecast{background:var(--color-yellow-dim);border-color:var(--color-yellow);color:var(--color-yellow)}.date-day{font-weight:var(--font-weight-medium)}.date-num{opacity:.7}.date-btn.selected .date-num{opacity:.8}.date-indicator{width:6px;height:6px;border-radius:50%;background:var(--color-blue);margin-top:var(--space-1)}.date-btn.selected .date-indicator{background:#fff}.day-detail{margin-bottom:var(--space-6)}.day-detail-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}@media(min-width:768px){.day-detail-header{flex-direction:row;justify-content:space-between;align-items:center}}.day-detail-header h3{margin:0}.no-forecast-warning{font-size:var(--text-xs);color:var(--color-yellow);margin:var(--space-1) 0 0}.day-stats{display:flex;gap:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary)}.day-stats strong{color:var(--text-primary)}.forecast-pending{font-size:var(--text-xs);background:var(--color-yellow-dim);color:var(--color-yellow);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.meal-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}@media(min-width:768px){.meal-summary-grid{grid-template-columns:repeat(4,1fr)}}.meal-card{border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.meal-card.breakfast{background:#d9770626;border:1px solid rgba(217,119,6,.3)}.meal-card.lunch{background:#05966926;border:1px solid rgba(5,150,105,.3)}.meal-card.dinner{background:#7c3aed26;border:1px solid rgba(124,58,237,.3)}.meal-card.reception{background:#db277726;border:1px solid rgba(219,39,119,.3)}.meal-label{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-2)}.meal-stats{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm)}.meal-stats>div{display:flex;justify-content:space-between}.meal-stats span{color:var(--text-tertiary)}.meal-stats strong{color:var(--text-primary);font-family:var(--font-mono)}.meal-card.breakfast .catered{color:var(--meal-breakfast)}.meal-card.lunch .catered{color:var(--meal-lunch)}.meal-card.dinner .catered{color:var(--meal-dinner)}.meal-card.reception .catered{color:var(--meal-reception)}.events-section{border-top:1px solid var(--border-subtle);padding-top:var(--space-4)}.events-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.events-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:400px;overflow-y:auto}.no-events{text-align:center;color:var(--text-tertiary);padding:var(--space-4);font-size:var(--text-sm)}.event-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:var(--text-sm);flex-wrap:wrap}.event-row:hover{background:var(--bg-elevated)}.event-row:hover .event-actions{opacity:1}.event-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.event-dot.breakfast{background:var(--meal-breakfast)}.event-dot.lunch{background:var(--meal-lunch)}.event-dot.dinner{background:var(--meal-dinner)}.event-dot.reception{background:var(--meal-reception)}.event-info{flex:1;min-width:0}.event-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.event-desc{color:var(--text-secondary)}.event-time{color:var(--text-tertiary);font-size:var(--text-xs);flex-shrink:0}.event-pax{color:var(--text-secondary);font-weight:var(--font-weight-medium);font-family:var(--font-mono);flex-shrink:0}.event-venue{color:var(--text-tertiary);font-size:var(--text-xs);max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.event-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-base) var(--ease-in-out)}.event-notes{width:100%;margin-left:calc(8px + var(--space-3));font-size:var(--text-xs);color:var(--text-tertiary);border-left:2px solid var(--border-default);padding-left:var(--space-2)}.event-row.editing{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);padding:var(--space-3)}.event-row.delete-confirm{background:#ef44441a;border:1px solid rgba(239,68,68,.3);justify-content:space-between;color:var(--color-red);padding:var(--space-3)}.event-row.delete-confirm .event-actions{opacity:1}.edit-form{width:100%}.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-3)}.edit-grid label{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-1)}.edit-grid input,.edit-grid select{width:100%;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--text-primary)}.edit-grid input:focus,.edit-grid select:focus{outline:none;border-color:var(--color-blue)}.edit-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.add-event-form{background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2)}.form-header{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-green);margin-bottom:var(--space-3)}.groups-timeline{margin-bottom:var(--space-6)}.groups-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}@media(min-width:768px){.groups-header{flex-direction:row;justify-content:space-between;align-items:center}}.groups-header h3{margin:0}.groups-summary{display:flex;gap:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary)}.groups-summary .rooms{color:var(--color-blue)}.groups-summary .arrivals{color:var(--color-green)}.groups-summary .departures{color:var(--color-red)}.no-groups{text-align:center;color:var(--text-tertiary);padding:var(--space-4);font-size:var(--text-sm)}.groups-table-wrapper{overflow-x:auto;max-height:400px;overflow-y:auto}.groups-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.groups-table thead{position:sticky;top:0;background:var(--bg-secondary)}.groups-table th{text-align:left;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border-default)}.groups-table th:not(:first-child){text-align:right}.groups-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.groups-table td:not(:first-child){text-align:right;font-family:var(--font-mono)}.groups-table tbody tr:hover{background:var(--bg-tertiary)}.groups-table .group-name{font-weight:var(--font-weight-medium);max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.groups-table .rooms{color:var(--color-blue);font-weight:var(--font-weight-medium)}.groups-table .arrivals{color:var(--color-green);font-weight:var(--font-weight-medium)}.groups-table .departures{color:var(--color-red);font-weight:var(--font-weight-medium)}.groups-table .events{color:var(--text-secondary)}.groups-table .breakfast{color:var(--meal-breakfast);font-weight:var(--font-weight-medium)}.groups-table .lunch{color:var(--meal-lunch);font-weight:var(--font-weight-medium)}.groups-table .dinner{color:var(--meal-dinner);font-weight:var(--font-weight-medium)}.groups-table .reception{color:var(--meal-reception);font-weight:var(--font-weight-medium)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:50}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);max-width:500px;width:calc(100% - var(--space-8));padding:var(--space-6)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.modal-header h2{font-family:var(--font-primary);font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-tertiary);cursor:pointer}.modal-close:hover{color:var(--text-primary)}.modal-footer{margin-top:var(--space-6);display:flex;justify-content:flex-end}.drop-zone{border:2px dashed var(--border-default);border-radius:var(--radius-md);padding:var(--space-8);text-align:center;transition:all var(--transition-base) var(--ease-in-out)}.drop-zone.drag-over{border-color:var(--color-blue);background:#3b82f61a}.drop-zone.uploading{opacity:.5;pointer-events:none}.drop-icon{font-size:2.5rem;margin-bottom:var(--space-2)}.drop-zone p{color:var(--text-secondary);margin:0 0 var(--space-2)}.drop-hint{color:var(--text-tertiary);font-size:var(--text-sm)}.uploading-text{color:var(--text-secondary)}.file-input-label{display:inline-block;background:var(--color-blue);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.file-input-label:hover{filter:brightness(1.1)}.file-input{display:none}.file-naming-hint{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--space-3)}.file-naming-hint strong{color:var(--text-secondary)}.file-naming-hint ul{margin:var(--space-1) 0 0;padding-left:var(--space-4)}.upload-results{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.upload-result{padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm)}.upload-result.success{background:#10b98126;color:var(--color-green)}.upload-result.error{background:#ef444426;color:var(--color-red)}.potentials-loading{display:flex;align-items:center;justify-content:center;height:calc(100vh - 60px)}.spinner{width:40px;height:40px;border:4px solid var(--border-default);border-top-color:var(--color-blue);border-radius:50%;animation:spin 1s linear infinite}.potentials-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;margin:var(--space-8) auto}.error-title{font-weight:var(--font-weight-medium);color:var(--color-red);margin:0 0 var(--space-2)}.error-message{color:var(--text-secondary);font-size:var(--text-sm);margin:0 0 var(--space-2)}.error-hint{color:var(--text-tertiary);font-size:var(--text-xs);margin:0}.chat-fab{position:fixed;bottom:32px;right:32px;width:60px;height:60px;border-radius:50%;background:var(--color-green);color:#fff;border:none;font-size:28px;cursor:pointer;box-shadow:0 4px 12px #0000004d;transition:all .2s;z-index:999;display:flex;align-items:center;justify-content:center}.chat-fab:hover{background:var(--color-green-bright);transform:translateY(-2px);box-shadow:0 6px 16px #0006}.chat-fab:active{transform:translateY(0)}:root{--nc-critical: #dc2626;--nc-operational: #f59e0b;--nc-structural: #3b82f6;--nc-admin: #6b7280}.ehc-page{min-height:100vh;background:var(--bg-primary)}.ehc-container{max-width:1400px;margin:0 auto;padding:var(--space-6)}.ehc-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);padding:var(--space-4) var(--space-6)}.header-content{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-4)}@media(min-width:768px){.header-content{flex-direction:row;align-items:center;justify-content:space-between}}.header-title h1{font-family:var(--font-primary);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.header-title p{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-1) 0 0}.days-until{color:var(--color-yellow);font-weight:var(--font-weight-medium)}.header-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.cycle-selector{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer}.cycle-selector:focus{outline:none;border-color:var(--color-focus)}.view-tabs{display:flex;background:var(--bg-tertiary);border-radius:var(--radius-md);padding:2px}.view-tab{background:transparent;border:none;color:var(--text-secondary);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-base) var(--ease-in-out)}.view-tab:hover{color:var(--text-primary)}.view-tab.active{background:var(--bg-elevated);color:var(--text-primary)}.btn-primary{background:var(--color-green);color:var(--text-inverse);border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-primary:hover{background:var(--color-green-bright)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base) var(--ease-in-out)}.btn-secondary:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer}.btn-ghost:hover{color:var(--text-primary)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--text-secondary)}.empty-state-icon{font-size:48px;margin-bottom:var(--space-4)}.empty-state h2{font-size:var(--text-xl);color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state p{margin-bottom:var(--space-6)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold)}.badge-neutral{background:var(--bg-tertiary);color:var(--text-secondary)}.badge-yellow{background:var(--color-yellow-dim);color:var(--color-yellow-bright)}.badge-green{background:var(--color-green-dim);color:var(--color-green-bright)}.badge-red{background:var(--color-red-dim);color:var(--color-red-bright)}.badge-blue{background:#3b82f633;color:#60a5fa}.nc-badge{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-bold);font-family:var(--font-mono);min-width:40px}.nc-critical{background:#dc262633;color:#f87171}.nc-operational{background:#f59e0b33;color:#fbbf24}.nc-structural{background:#3b82f633;color:#60a5fa}.nc-admin{background:#6b728033;color:#9ca3af}.dashboard-view{display:flex;flex-direction:column;gap:var(--space-6)}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-card.progress-card{display:flex;align-items:center;gap:var(--space-4);grid-column:span 2}@media(max-width:768px){.stat-card.progress-card{grid-column:span 1;flex-direction:column;text-align:center}}.stat-value{font-family:var(--font-mono);font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.stat-value.nc-critical{color:var(--nc-critical)}.stat-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-top:var(--space-1)}.stat-subtext{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.stat-breakdown{font-size:var(--text-sm);color:var(--text-tertiary)}.stat-sep{margin:0 var(--space-1)}.progress-ring-container{position:relative;display:flex;align-items:center;justify-content:center}.progress-ring{transform:rotate(-90deg)}.progress-ring-text{position:absolute;display:flex;flex-direction:column;align-items:center}.progress-ring-value{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.progress-ring-label{font-size:var(--text-xs);color:var(--text-tertiary)}.progress-details{display:flex;flex-direction:column;gap:var(--space-1)}.sections-card,.nc-breakdown-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.sections-card h3,.nc-breakdown-card h3{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-4)}.sections-grid{display:grid;gap:var(--space-4)}.section-progress{display:flex;flex-direction:column;gap:var(--space-2)}.section-progress-header{display:flex;align-items:center;gap:var(--space-2)}.section-number{background:var(--bg-tertiary);color:var(--text-secondary);width:24px;height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--font-weight-bold);font-family:var(--font-mono)}.section-name{flex:1;font-size:var(--text-sm);color:var(--text-primary)}.section-pct{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.section-progress-bar{height:8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden}.section-progress-fill{height:100%;border-radius:var(--radius-sm);transition:width .3s ease}.section-progress-stats{font-size:var(--text-xs);color:var(--text-tertiary)}.nc-grid{display:flex;flex-direction:column;gap:var(--space-3)}.nc-item{display:flex;align-items:center;gap:var(--space-4)}.nc-progress{flex:1;display:flex;align-items:center;gap:var(--space-3)}.nc-progress-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden}.nc-progress-fill{height:100%;background:var(--color-green);border-radius:var(--radius-sm)}.nc-progress-text{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);min-width:100px}.points-view{display:flex;flex-direction:column;gap:var(--space-4)}.filters-bar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;padding:var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.filters-bar select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer}.filters-bar select:focus{outline:none;border-color:var(--color-focus)}.filter-count{margin-left:auto;font-size:var(--text-sm);color:var(--text-tertiary)}.points-table-container{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.points-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.points-table thead{background:var(--bg-tertiary);border-bottom:1px solid var(--border-default)}.points-table th{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em;color:var(--text-tertiary);text-align:left;padding:var(--space-3) var(--space-4)}.points-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.points-table tbody tr:hover{background:var(--bg-tertiary)}.point-row{cursor:pointer}.point-row.expanded{background:var(--bg-tertiary)}.point-ref{font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:var(--color-blue);white-space:nowrap}.point-question{max-width:400px}.point-area{font-size:var(--text-xs);color:var(--text-secondary)}.point-records .record-count{background:var(--color-blue);color:#fff;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold)}.point-records .no-records{color:var(--text-tertiary);font-style:italic;font-size:var(--text-xs)}.status-select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);cursor:pointer}.status-select:focus{outline:none;border-color:var(--color-focus)}.point-expanded-row{background:var(--bg-tertiary)}.point-expanded-row td{padding:0}.point-details{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.point-detail-section{font-size:var(--text-sm);color:var(--text-secondary)}.point-detail-section strong{color:var(--text-primary);margin-right:var(--space-2)}.no-results{padding:var(--space-8);text-align:center;color:var(--text-tertiary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;width:90%}.modal-content h3{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.modal-description{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:var(--space-2)}.form-group input{width:100%;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:var(--font-mono)}.form-group input:focus{outline:none;border-color:var(--color-focus)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.impersonation-banner{background:linear-gradient(90deg,#d4a72c33,#fadb1426);border-bottom:2px solid var(--color-yellow, #d4a72c);padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.impersonation-content{display:flex;align-items:center;gap:.75rem}.impersonation-icon{font-size:1.25rem}.impersonation-text{color:var(--text-primary, #e6e6e6);font-size:.875rem;font-weight:500}.impersonation-text strong{color:var(--color-yellow-bright, #fadb14);font-weight:700}.original-user{color:var(--text-secondary, #a3a3a3);font-size:.8125rem;margin-left:.5rem}.exit-impersonation-btn{background:var(--color-red, #d43438);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.exit-impersonation-btn:hover{background:var(--color-red-bright, #ff4d4f);transform:translateY(-1px);box-shadow:0 4px 8px #d434384d}@media(max-width:768px){.impersonation-banner{flex-direction:column;gap:.75rem;padding:1rem}.exit-impersonation-btn{width:100%}}.app{min-height:100vh;background:var(--bg-primary)}.page-header{margin-bottom:var(--space-8)}.page-header h1{font-family:var(--font-primary);font-size:var(--text-4xl);font-weight:var(--font-weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary);margin-bottom:var(--space-2)}.page-header p{font-size:var(--text-lg);color:var(--text-secondary)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-2) var(--space-4);color:var(--text-secondary);text-decoration:none;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-base) var(--ease-in-out)}.back-link:hover{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary);transform:translate(-4px)}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-primary);gap:var(--space-4)}.loading-spinner{width:40px;height:40px;border:4px solid var(--border-default);border-top-color:var(--color-yellow);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{color:var(--text-secondary);font-size:var(--text-base);font-family:var(--font-primary)}
