@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--color-emerald:#10b981;--color-emerald-soft:#10b98114;--color-amber:#f59e0b;--color-amber-soft:#f59e0b14;--color-blue:#3b82f6;--color-blue-soft:#3b82f614;--color-purple:#8b5cf6;--color-purple-soft:#8b5cf614;--primary:var(--color-emerald);--primary-soft:var(--color-emerald-soft);--primary-glow:#10b98133;--card-bg:#ffffffb3;--card-border:#fff9;--card-shadow:0 10px 30px -10px #0f172a0d, 0 1px 3px #0f172a05;--card-hover-shadow:0 20px 40px -15px #0f172a14, 0 1px 5px #0f172a08;--border-light:#0f172a0f;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media (prefers-color-scheme:dark){:root{--bg-primary:#090d16;--bg-secondary:#0f172a;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--color-emerald-soft:#10b98126;--color-amber-soft:#f59e0b26;--color-blue-soft:#3b82f626;--color-purple-soft:#8b5cf626;--card-bg:#0f172a80;--card-border:#ffffff0a;--card-shadow:0 10px 30px -10px #0000004d, 0 1px 3px #0000001a;--card-hover-shadow:0 20px 40px -15px #0006, 0 1px 5px #00000026;--border-light:#ffffff0f}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:radial-gradient(circle at 50% 0%, var(--bg-secondary), var(--bg-primary));color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5;overflow-x:hidden}.glass{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:var(--radius-md);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass:hover{box-shadow:var(--card-hover-shadow)}#root{flex-direction:column;min-height:100vh;display:flex}.app-wrapper{flex-grow:1;grid-template-columns:1fr;gap:24px;width:100%;max-width:1200px;margin:0 auto;padding:24px;display:grid}@media (width>=1024px){.app-wrapper{grid-template-columns:7fr 5fr;align-items:start}}header{grid-column:1/-1;justify-content:space-between;align-items:center;margin-bottom:8px;padding:16px 24px;display:flex}.logo-section{align-items:center;gap:12px;display:flex}.logo-icon{background:linear-gradient(135deg, var(--color-emerald), #059669);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:relative;box-shadow:0 4px 12px #10b98140}.logo-icon:after{content:"";background:#ffffff4d;border-radius:50%;width:12px;height:6px;position:absolute;top:3px;left:3px;transform:rotate(-30deg)}.logo-text{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text-primary), var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:22px;font-weight:700}.logo-badge{background:var(--primary-soft);color:var(--primary);border:1px solid #10b98133;border-radius:20px;align-items:center;margin-left:8px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-flex}.status-section{align-items:center;gap:16px;display:flex}.status-indicator{color:var(--color-emerald);background:#10b9811a;border:1px solid #10b98126;border-radius:30px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:500;display:flex}.status-dot{background-color:var(--color-emerald);width:8px;height:8px;box-shadow:0 0 8px var(--color-emerald);border-radius:50%;animation:2s infinite pulse-glow}@keyframes pulse-glow{0%{opacity:.6;transform:scale(.9);box-shadow:0 0 #10b98166}70%{opacity:1;transform:scale(1);box-shadow:0 0 0 6px #10b98100}to{opacity:.6;transform:scale(.9);box-shadow:0 0 #10b98100}}.scan-container{text-align:center;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;max-width:600px;margin:60px auto;padding:80px 24px;display:flex}.scan-icon-wrapper{background:var(--primary-soft);width:100px;height:100px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:24px;display:flex;position:relative}.scan-laser{background-color:var(--primary);width:80%;height:3px;box-shadow:0 0 8px var(--primary);animation:2s ease-in-out infinite scan-vertical;position:absolute;top:50%;left:10%}@keyframes scan-vertical{0%,to{opacity:.2;top:20%}50%{opacity:1;top:80%}}.scan-title{letter-spacing:-.5px;margin-bottom:12px;font-size:26px;font-weight:700}.scan-desc{color:var(--text-secondary);max-width:420px;margin-bottom:32px;font-size:15px;line-height:1.6}.btn-primary{background:linear-gradient(135deg, var(--color-emerald), #059669);color:#fff;cursor:pointer;border:none;border-radius:30px;align-items:center;gap:8px;padding:14px 32px;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 10px 25px -5px #10b9814d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 15px 30px -5px #10b98166}.btn-primary:active{transform:translateY(0)}.fluids-section{flex-direction:column;gap:20px;display:flex}.section-header{justify-content:space-between;align-items:center;display:flex}.section-title{color:var(--text-primary);align-items:center;gap:8px;font-size:18px;font-weight:600;display:flex}.section-subtitle{color:var(--text-muted);font-size:13px}.fluid-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=640px){.fluid-grid{grid-template-columns:repeat(2,1fr)}}.fluid-card{cursor:pointer;border:1px solid var(--card-border);flex-direction:column;justify-content:space-between;min-height:170px;padding:20px;display:flex;position:relative;overflow:hidden}.fluid-card.selected{border:2px solid var(--selected-color,var(--primary));background:var(--selected-bg,var(--primary-soft))}.fluid-card.disabled{opacity:.55;cursor:not-allowed;pointer-events:none;background:#0f172a05}.slot-badge{background:var(--border-light);color:var(--text-secondary);border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:16px;right:16px}.fluid-name{color:var(--text-primary);margin-top:12px;margin-bottom:8px;font-size:16px;font-weight:600;line-height:1.3}.fluid-details{justify-content:space-between;align-items:flex-end;margin-top:auto;display:flex}.fluid-price{flex-direction:column;display:flex}.price-value{color:var(--text-primary);font-size:18px;font-weight:700}.price-label{color:var(--text-muted);font-size:11px}.fluid-stock{text-align:right}.stock-value{font-size:13px;font-weight:600}.stock-label{color:var(--text-muted);font-size:11px}.fluid-pill{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.refill-dashboard{flex-direction:column;gap:24px;display:flex}.bottle-simulator-card{flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:relative}.refill-controls{width:100%}.control-group{margin-bottom:20px}.control-label{color:var(--text-secondary);justify-content:space-between;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.volume-presets{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;display:grid}.preset-btn{background:var(--card-bg);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;padding:8px 0;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s}.preset-btn:hover{background:var(--border-light)}.preset-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 10px var(--primary-glow)}.slider-container{align-items:center;display:flex;position:relative}.volume-slider{-webkit-appearance:none;background:var(--border-light);border-radius:5px;outline:none;width:100%;height:6px;margin:12px 0}.volume-slider::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;border-radius:50%;width:20px;height:20px;transition:transform .1s;box-shadow:0 0 10px #0000001a}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.price-tag-widget{background:var(--primary-soft);border-radius:var(--radius-md);border:1px solid #10b98126;justify-content:space-between;align-items:center;margin-top:16px;padding:16px;display:flex}.widget-title{color:var(--text-secondary);font-size:13px;font-weight:500}.widget-value{color:var(--primary);font-size:24px;font-weight:800}.bottle-outer-container{width:140px;height:250px;margin:24px 0;position:relative}.bottle-cap{z-index:2;background:#cbd5e1;border-radius:4px 4px 0 0;width:40px;height:15px;margin:0 auto;position:relative;box-shadow:inset 0 2px 4px #fff6}.bottle-neck{z-index:1;background:#cbd5e14d;border:2px solid #cbd5e199;border-bottom:none;width:50px;height:25px;margin:0 auto}.bottle-body{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1;background:#ffffff26;border:3px solid #cbd5e199;border-radius:16px 16px 24px 24px;width:140px;height:210px;position:relative;overflow:hidden;box-shadow:inset 0 10px 20px #fff3,inset 0 -10px 20px #0000000d}.fluid-filling-level{background:var(--fluid-color,var(--primary));width:100%;box-shadow:inset 0 10px 10px #fff3, 0 0 15px var(--fluid-color);transition:height .1s linear;position:absolute;bottom:0;left:0}.fluid-filling-level:before,.fluid-filling-level:after{content:"";background:inherit;width:200%;height:20px;position:absolute;top:-15px}.fluid-filling-level:before{opacity:.8;border-radius:40% 45%;animation:4s linear infinite wave;left:0}.fluid-filling-level:after{opacity:.5;border-radius:43% 38%;animation:3.5s linear infinite wave;left:-50%}@keyframes wave{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dispenser-nozzle{background:#64748b;width:6px;height:10px;margin:0 auto;position:relative}.liquid-stream{background:var(--fluid-color,var(--primary));width:4px;height:40px;box-shadow:0 0 8px var(--fluid-color);z-index:0;animation:.5s linear infinite stream-flow;position:absolute;top:10px;left:50%;transform:translate(-50%)}@keyframes stream-flow{0%{opacity:.8;height:35px}50%{opacity:1;height:42px}to{opacity:.8;height:35px}}.safety-indicator{border:1px solid var(--border-light);background:var(--card-bg);border-radius:20px;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.sensor-dot{background:var(--color-emerald);border-radius:50%;width:6px;height:6px}.sensor-dot.warning{background:var(--color-amber);animation:.8s infinite blink}.sensor-dot.error{background:#ef4444;animation:.5s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.dispense-actions{flex-direction:column;gap:12px;width:100%;margin-top:20px;display:flex}.btn-dispense-main{cursor:pointer;background:var(--primary);color:#fff;width:100%;box-shadow:0 8px 20px var(--primary-glow);border:none;border-radius:30px;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.btn-dispense-main:hover:not(:disabled){box-shadow:0 12px 25px var(--primary-glow);transform:translateY(-2px)}.btn-dispense-main:disabled{background:var(--border-light);color:var(--text-muted);cursor:not-allowed;box-shadow:none}.btn-secondary-action{border:1px solid var(--border-light);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:30px;width:100%;padding:12px;font-size:14px;font-weight:500;transition:all .2s}.btn-secondary-action:hover{background:var(--border-light);color:var(--text-primary)}.dashboard-grid{grid-column:1/-1;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px;display:grid}@media (width>=768px){.dashboard-grid{grid-template-columns:repeat(3,1fr)}}.dashboard-stat-card{flex-direction:column;gap:8px;padding:20px;display:flex}.stat-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;display:flex}.stat-value{color:var(--text-primary);font-size:24px;font-weight:700}.stat-label{color:var(--text-muted);font-size:13px;font-weight:500}.receipt-card{border-radius:var(--radius-md);margin-top:24px;padding:24px}.receipt-header{border-bottom:1px dashed var(--border-light);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.receipt-items{flex-direction:column;gap:8px;display:flex}.receipt-row{color:var(--text-secondary);justify-content:space-between;font-size:14px;display:flex}.receipt-row.total{border-top:1px solid var(--border-light);color:var(--text-primary);margin-top:12px;padding-top:12px;font-size:16px;font-weight:700}.receipt-row.reward{color:var(--color-emerald);font-weight:600}.info-alert{border-radius:var(--radius-sm);background:var(--color-blue-soft);color:var(--color-blue);border:1px solid #3b82f61a;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.kiosk-mockup{flex-direction:column;gap:20px;display:flex}.card-title-row{align-items:center;gap:8px;margin-bottom:16px;font-size:18px;font-weight:600;display:flex}.progress-bar-container{background:var(--border-light);border-radius:4px;width:100%;height:8px;margin-top:8px;overflow:hidden}.progress-bar-fill{background:var(--primary);height:100%;transition:width .1s linear}.notification{border-radius:var(--radius-md);z-index:1000;background:var(--card-bg);border:1px solid var(--card-border);align-items:center;gap:12px;padding:16px 24px;font-size:14px;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) slide-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 20px 40px #0000001a}.notification.success{border-left:4px solid var(--color-emerald);color:var(--text-primary)}@keyframes slide-in{0%{opacity:0;transform:translateY(100%)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.bg-emerald-500{--fluid-color:var(--color-emerald);--selected-color:var(--color-emerald);--selected-bg:var(--color-emerald-soft)}.bg-amber-500{--fluid-color:var(--color-amber);--selected-color:var(--color-amber);--selected-bg:var(--color-amber-soft)}.bg-blue-500{--fluid-color:var(--color-blue);--selected-color:var(--color-blue);--selected-bg:var(--color-blue-soft)}.bg-purple-500{--fluid-color:var(--color-purple);--selected-color:var(--color-purple);--selected-bg:var(--color-purple-soft)}.safety-ring{border:2px solid #ef44444d;border-radius:50%;width:150px;height:150px;animation:1.5s infinite ring-pulse;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dispensing .safety-ring.active{display:block}@keyframes ring-pulse{0%{opacity:1;transform:translate(-50%,-50%)scale(.9)}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}.dispensing-particles{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.particle{background:var(--fluid-color,var(--primary));opacity:0;border-radius:50%;width:6px;height:6px;animation:1s ease-in infinite particle-rise;position:absolute}@keyframes particle-rise{0%{opacity:.8;transform:translateY(180px)translate(0)scale(.8)}50%{opacity:.6}to{transform:translateY(30px) translateX(var(--particle-x,0)) scale(.2);opacity:0}}.mode-tabs{background:var(--border-light);border-radius:var(--radius-sm);margin-bottom:16px;padding:4px;display:flex}.mode-tab{border-radius:calc(var(--radius-sm) - 2px);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.mode-tab.active{background:var(--card-bg);color:var(--text-primary);box-shadow:0 2px 8px #0000000d}.input-custom-container{align-items:center;gap:12px;margin-top:12px;display:flex}.input-custom-field{border-radius:var(--radius-sm);border:1px solid var(--border-light);background:var(--card-bg);color:var(--text-primary);outline:none;flex:1;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:border-color .2s}.input-custom-field:focus{border-color:var(--primary)}.input-unit-label{color:var(--text-secondary);font-size:14px;font-weight:600}
