:root{--bg-black: #0a0a0a;--bg-card: #141414;--bg-elevated: #1a1a1a;--bg-hover: #1c1c1c;--primary: #ffffff;--primary-muted: #a1a1aa;--border: #27272a;--border-focus: #3f3f46;--border-glow: rgba(255, 255, 255, .15);--text-main: #fafafa;--text-dim: #71717a;--text-dark: #52525b;--success: #10b981;--success-bg: rgba(16, 185, 129, .1);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .1);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .08);--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-decelerate: cubic-bezier(0, 0, .2, 1);--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--border-glow);outline-offset:2px}button,input,select,textarea{font-family:inherit}body{background-color:var(--bg-black);color:var(--text-main);font-family:Inter,-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}.dashboard{max-width:1200px;margin:0 auto;padding:4rem 2rem}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}.header-content h1{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;text-transform:uppercase}.subtitle{font-size:.75rem;color:var(--text-dim);font-family:monospace}.inventory-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:4rem}.card{background:var(--bg-card);border:1px solid var(--border);padding:1.5rem;border-radius:8px;display:flex;flex-direction:column;justify-content:space-between;min-height:120px;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.card:hover{border-color:var(--border-focus);box-shadow:0 0 0 1px #ffffff08}.card-label{font-size:.7rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.card-value{font-size:1.75rem;font-weight:700;color:var(--text-main);margin-top:.5rem}.table-container{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden}.inventory-table{width:100%;border-collapse:collapse}.inventory-table th{background:#ffffff05;padding:1rem 1.5rem;text-align:left;font-size:.75rem;font-weight:600;color:var(--text-dim);border-bottom:1px solid var(--border)}.inventory-table td{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);font-size:.875rem}.inventory-table tr:last-child td{border-bottom:none}.sync-all-btn{background:var(--primary);color:var(--bg-black);border:none;padding:.75rem 1.5rem;font-weight:700;font-size:.75rem;letter-spacing:.08em;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.sync-all-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 4px 20px #ffffff1f}.sync-all-btn:active:not(:disabled){transform:translateY(0) scale(.98);box-shadow:none}.sync-all-btn:disabled{opacity:.4;cursor:not-allowed}.sync-all-btn:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:3px}.sync-all-btn.broadcast-idle{animation:broadcast-pulse 3s var(--ease-standard) infinite}@keyframes broadcast-pulse{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 0 6px #ffffff0f,0 0 20px #ffffff0a}}.sync-all-btn.loading-state:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 40%,rgba(0,0,0,.18) 50%,rgba(0,0,0,.12) 60%,transparent 100%);animation:btn-shimmer 1.2s var(--ease-standard) infinite}@keyframes btn-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.edit-btn{background:transparent;border:1px solid var(--border);color:var(--text-main);padding:.5rem 1rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;font-family:inherit;border-radius:6px;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.edit-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-focus)}.edit-btn:active:not(:disabled){transform:scale(.98)}.edit-btn:focus-visible{outline:2px solid var(--border-glow);outline-offset:2px}.stock-control{display:flex;align-items:center;gap:.75rem;background:var(--bg-black);padding:.25rem;border-radius:6px;border:1px solid var(--border);width:fit-content}.stock-control button{background:transparent;border:none;color:var(--text-dim);width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.stock-control button:hover{background:var(--bg-hover);color:var(--text-main)}.stock-num{font-family:monospace;font-weight:600;min-width:2ch;text-align:center}.status-badge{background:var(--success-bg);color:var(--success);padding:.25rem .5rem;border-radius:4px;font-size:.65rem;font-weight:700}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.form-group label{font-size:.68rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;transition:color var(--duration-fast) var(--ease-standard)}.form-group:focus-within label{color:var(--text-main)}.form-group input{background:var(--bg-black);border:1px solid var(--border);color:var(--text-main);padding:.8rem 1rem;border-radius:6px;width:100%;font-size:.9rem;font-family:inherit;transition:border-color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.form-group input:focus{outline:none;border-color:var(--border-glow);background:var(--bg-hover);box-shadow:0 0 0 3px #ffffff0a,inset 0 0 0 1px #ffffff0f}.form-group input::placeholder{color:var(--text-dark)}.form-group textarea:focus{outline:none;border-color:var(--border-glow);background:var(--bg-hover);box-shadow:0 0 0 3px #ffffff0a,inset 0 0 0 1px #ffffff0f}.form-group textarea::placeholder{color:var(--text-dark)}.form-row{display:grid;gap:1rem;margin-bottom:1.5rem}.login-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:var(--bg-black);padding:clamp(2rem,10vh,5rem) 1rem clamp(2rem,6vh,4rem)}.login-card{width:100%;max-width:460px;padding:3rem 3.5rem;border-radius:12px}.auth-enter{animation:auth-slide-in var(--duration-slow) var(--ease-out-quint) both}@keyframes auth-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-tabs{display:flex;position:relative;background:var(--bg-black);border:1px solid var(--border);border-radius:8px;padding:4px;margin-bottom:2.5rem}.auth-tab-btn{flex:1;background:transparent;border:none;color:var(--text-dim);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.6rem 1rem;cursor:pointer;position:relative;z-index:1;transition:color var(--duration-fast) var(--ease-standard)}.auth-tab-btn.active{color:var(--text-main)}.auth-tab-indicator{position:absolute;top:4px;bottom:4px;border-radius:5px;background:var(--bg-card);border:1px solid var(--border-focus);transition:left var(--duration-slow) var(--ease-out-quint),width var(--duration-slow) var(--ease-out-quint);pointer-events:none}.auth-error{font-size:.78rem;color:var(--danger);background:var(--danger-bg);border:1px solid rgba(239,68,68,.2);border-radius:6px;padding:.75rem 1rem;margin-top:1.25rem;animation:msg-appear var(--duration-slow) var(--ease-out-quint) both}.auth-success{background:var(--success-bg);padding:1.25rem;border-radius:8px;border:1px solid rgba(16,185,129,.25);margin-top:1.5rem;animation:msg-appear var(--duration-slow) var(--ease-out-quint) both}.auth-success p:first-child{color:var(--success);font-weight:700;font-size:.82rem;letter-spacing:.03em}.auth-success p:last-child{color:var(--text-dim);font-size:.75rem;margin-top:.5rem;line-height:1.5}@keyframes msg-appear{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.onboarding-section{animation:section-reveal var(--duration-slow) var(--ease-out-quint) both}@keyframes section-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-back-btn{position:absolute;top:1.25rem;left:1.25rem;display:flex;align-items:center;gap:.4rem;padding:.4rem .9rem .4rem .65rem;background:transparent;border:1px solid var(--border);border-radius:20px;color:var(--text-dim);font-size:.6rem;font-weight:800;letter-spacing:.1em;cursor:pointer;transition:border-color .2s,color .2s,background .2s;font-family:inherit;z-index:1;text-transform:uppercase}.auth-back-btn:hover{border-color:var(--text-dim);color:var(--text-main);background:#ffffff0a}.auth-back-arrow{font-size:.75rem;line-height:1}.auth-switch-btn{background:transparent;border:none;color:var(--text-main);cursor:pointer;margin-left:.5rem;font-weight:700;font-size:inherit;text-decoration:underline;text-underline-offset:2px;transition:opacity var(--duration-fast) var(--ease-standard)}.auth-switch-btn:hover{opacity:.75}.stat-card-enter{animation:card-rise var(--duration-slow) var(--ease-out-quint) both}@keyframes card-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.inventory-table tbody tr{transition:background var(--duration-fast) var(--ease-standard)}.inventory-table tbody tr:hover{background:#ffffff06}.stock-control button{transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.stock-control button:active{transform:scale(.82)}.log-entry-new{animation:log-fade-in var(--duration-slow) var(--ease-out-quint) both}@keyframes log-fade-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.dashboard-section-enter{animation:section-up var(--duration-slow) var(--ease-out-quint) both}@keyframes section-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{transform:translate(-150%)}to{transform:translate(150%)}}.skeleton{background-color:var(--bg-card);border-radius:6px;position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;left:0;width:60%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.04) 40%,rgba(255,255,255,.07) 50%,rgba(255,255,255,.04) 60%,transparent 100%);animation:shimmer 1.8s var(--ease-standard) infinite}.notification-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:12px;z-index:9999;pointer-events:none}.notification{min-width:300px;max-width:400px;padding:1rem 1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-main);font-size:.85rem;box-shadow:0 10px 30px -10px #00000080;display:flex;align-items:flex-start;gap:.75rem;pointer-events:auto;animation:slideIn .3s cubic-bezier(.16,1,.3,1) forwards;transition:all .3s cubic-bezier(.16,1,.3,1)}.notification.closing{animation:fadeOut .3s ease-in forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes fadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.notification.error{border-left:3px solid var(--danger)}.notification.error .notification-icon{color:var(--danger);font-size:1.1rem;line-height:1}.notification.success{border-left:3px solid var(--success)}.notification.success .notification-icon{color:var(--success);font-size:1.1rem;line-height:1}.notification.info{border-left:3px solid var(--primary)}.notification.info .notification-icon{color:var(--primary);font-size:1.1rem;line-height:1}.notification-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.notification-title{font-weight:700;letter-spacing:-.01em;text-transform:uppercase;font-size:.75rem}.notification-message{color:var(--text-dim);font-size:.8rem}.notification-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:0;width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.notification-close:hover{background:var(--bg-hover);color:var(--text-main)}.auth-bg-orbs{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0;background:var(--bg-black)}.auth-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.18;animation:orb-drift linear infinite}.auth-orb-1{width:500px;height:500px;background:radial-gradient(circle,var(--primary) 0%,transparent 70%);top:-15%;left:-10%;animation-duration:22s;animation-delay:0s}.auth-orb-2{width:400px;height:400px;background:radial-gradient(circle,#5D3EBC 0%,transparent 70%);bottom:-10%;right:-5%;animation-duration:28s;animation-delay:-10s}.auth-orb-3{width:300px;height:300px;background:radial-gradient(circle,var(--success) 0%,transparent 70%);top:50%;right:20%;animation-duration:18s;animation-delay:-5s}@keyframes orb-drift{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-40px) scale(1.05)}66%{transform:translate(-20px,30px) scale(.97)}to{transform:translate(0) scale(1)}}.table-empty-state{padding:3rem 1.5rem;text-align:center;color:var(--text-dim);font-size:.75rem;letter-spacing:.08em}.table-empty-state .empty-icon{font-size:1.5rem;margin-bottom:.75rem;opacity:.3}.dashboard-main-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem;margin-top:2rem}@media(max-width:768px){.dashboard-main-grid{grid-template-columns:1fr}.inventory-summary{grid-template-columns:1fr;gap:1rem}.dashboard{padding:2rem 1rem}}.pantry-item-clickable{border-radius:4px;transition:background var(--duration-fast) var(--ease-standard);padding:.25rem;margin:-.25rem}.pantry-item-clickable:hover{background:#ffffff08}.pantry-empty-state{grid-column:1 / -1;padding:4rem 2rem;text-align:center;border:1px dashed var(--border);border-radius:8px;color:var(--text-dim)}.pantry-empty-state p:first-child{font-size:.85rem;font-weight:700;letter-spacing:.08em;margin-bottom:.5rem}.pantry-empty-state p:last-child{font-size:.7rem;color:var(--text-dark);letter-spacing:.04em}.log-panel-heading{font-size:.68rem;color:var(--text-dim);letter-spacing:.12em;margin-bottom:1.5rem;text-transform:uppercase}.log-entry{font-size:.7rem;border-left:2px solid var(--border);padding-left:1rem;transition:border-color var(--duration-fast) var(--ease-standard)}.log-entry:hover{border-left-color:var(--border-focus)}.log-entry-timestamp{font-size:.6rem;color:var(--text-dark);margin-top:.25rem;font-variant-numeric:tabular-nums}@media(max-width:640px){.integrations-grid{grid-template-columns:1fr!important}}.form-group textarea{background:var(--bg-black);border:1px solid var(--border);color:var(--text-main);padding:.8rem 1rem;border-radius:6px;width:100%;font-size:.9rem;font-family:inherit;transition:border-color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.auth-tab-btn:focus-visible{outline:2px solid var(--border-glow);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.auth-orb{animation:none}}.image-mode-toggle{display:flex;gap:2px;background:var(--bg-black);border:1px solid var(--border);border-radius:4px;padding:2px}.image-mode-btn{font-family:inherit;font-size:.6rem;font-weight:800;letter-spacing:.1em;padding:.25rem .6rem;background:transparent;border:none;color:var(--text-dim);border-radius:3px;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.image-mode-btn.active{background:var(--primary);color:var(--bg-black)}.image-mode-btn:hover:not(.active){color:var(--text-main)}.image-drop-zone{border:1px dashed var(--border);border-radius:6px;padding:1.5rem;text-align:center;font-size:.65rem;letter-spacing:.1em;color:var(--text-dim);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.image-drop-zone:hover,.image-drop-zone.drag-over{border-color:var(--primary);background:#ffffff0d;background:color-mix(in srgb,var(--primary) 5%,transparent);color:var(--text-main)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.platform-marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite}.platform-marquee-track:hover{animation-play-state:paused}
