@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&family=Roboto+Mono:wght@500;700&display=swap";:root{--bg-color:#f1f5f9;--bg-panel:#fff;--bg-panel-hover:#f8fafc;--brand-green:#22c55e;--brand-green-hover:#16a34a;--brand-green-light:#dcfce7;--text-main:#0f172a;--text-muted:#64748b;--border-color:#cbd5e1;--error:#ef4444;--shadow-sm:0 4px 6px -1px #0000000d;--shadow-lg:0 20px 25px -5px #0000000d;--shadow-glow:0 0 20px #22c55e66}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;padding:0;font-family:Inter,sans-serif}body,html{background-color:var(--bg-color);color:var(--text-main);background-image:linear-gradient(#ffffff80 1px,#0000 1px),linear-gradient(90deg,#ffffff80 1px,#0000 1px);background-size:50px 50px;width:100vw;height:100vh;animation:60s linear infinite backgroundScroll;overflow:hidden}@keyframes backgroundScroll{0%{background-position:0 0}to{background-position:50px 50px}}#root{flex-direction:column;width:100vw;min-height:100vh;display:flex}.kiosk-status-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);z-index:50;background-color:#ffffffe6;flex:0 0 60px;justify-content:space-between;align-items:center;padding:0 2rem;display:flex;position:sticky;top:0}.status-left,.status-right{align-items:center;gap:1rem;display:flex}.dual-qr-wrapper{align-items:center;gap:12px;display:flex}.qr-item{flex-direction:column;align-items:center;gap:4px;display:flex}.qr-label{color:var(--text-muted);font-size:.8rem;font-weight:800}.download-qr-box{border:4px solid var(--brand-green);background:#fff;border-radius:12px;width:90px;height:90px;padding:6px;box-shadow:0 4px 10px #0000001a}.download-qr-img{object-fit:contain;width:100%;height:100%}.download-qr-text{color:var(--text-main);font-size:.9rem;font-weight:800;line-height:1.2}.brand-badge{background:var(--text-main);color:#fff;letter-spacing:1px;border-radius:8px;padding:6px 12px;font-size:1.1rem;font-weight:900;position:relative;overflow:hidden}.brand-logo{object-fit:contain;mix-blend-mode:multiply;width:64px;height:64px;margin-left:20px;margin-right:20px;transform:scale(2.6)}.brand-badge:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:50%;height:100%;animation:4s infinite shine;position:absolute;top:0;left:-100%;transform:skew(-20deg)}@keyframes shine{0%{left:-100%}20%{left:200%}to{left:200%}}.kiosk-time{color:var(--text-main);font-family:Roboto Mono,monospace;font-size:1.25rem;font-weight:700}.network-icons{color:var(--text-muted);align-items:center;gap:12px;display:flex}.main-content{flex-direction:column;flex:1;display:flex;position:relative;overflow-y:auto}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-in{animation:.5s cubic-bezier(.2,.8,.2,1) forwards slideInUp}.animate-pop{animation:.4s cubic-bezier(.2,.8,.2,1) forwards popIn}.stagger-1{opacity:0;animation-delay:.1s}.stagger-2{opacity:0;animation-delay:.2s}.stagger-3{opacity:0;animation-delay:.3s}.stagger-4{opacity:0;animation-delay:.4s}.text-brand{color:var(--brand-green)}.text-muted{color:var(--text-muted)}.tech-font{font-family:Roboto Mono,monospace}.kiosk-btn{background:var(--bg-panel);border:2px solid var(--border-color);color:var(--text-main);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:12px;padding:1rem 2rem;font-size:1.25rem;font-weight:700;transition:all .3s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.kiosk-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.kiosk-btn:active{transform:scale(.98)}.kiosk-btn.primary{background:var(--brand-green);border-color:var(--brand-green);color:#fff}.kiosk-btn.primary:hover{background:var(--brand-green-hover);box-shadow:var(--shadow-glow)}.login-screen{background:var(--bg-body,#f8fafc);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border:1px solid var(--border-color,#e2e8f0);background:#fff;border-radius:20px;width:100%;max-width:450px;padding:3rem;box-shadow:0 10px 40px #0000000d}.login-header{text-align:center;margin-bottom:2rem}.login-logo{height:80px;margin-bottom:1.5rem}.login-title{color:var(--text-main,#0f172a);margin-bottom:.5rem;font-size:2rem;font-weight:800}.login-subtitle{color:var(--text-muted,#64748b);font-size:1rem}.login-form .input-group{flex-direction:column;margin-bottom:1.5rem;display:flex}.login-form .input-group label{color:var(--text-main,#0f172a);margin-bottom:.5rem;font-size:.9rem;font-weight:600}.login-form .input-group input{border:2px solid var(--border-color,#e2e8f0);border-radius:10px;padding:1rem;font-size:1rem;transition:all .2s}.login-form .input-group input:focus{border-color:var(--brand-green,#22c55e);outline:none;box-shadow:0 0 0 4px #22c55e1a}.login-btn{background:var(--brand-green,#22c55e);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:1rem;font-size:1.1rem;font-weight:700;transition:all .2s}.login-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #22c55e33}.split-screen-layout{background:var(--bg-color);flex:1;width:100vw;height:calc(100vh - 60px);display:flex;position:relative;overflow:hidden}.split-half{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:1rem;display:flex;position:relative;overflow:hidden}.split-divider{background:linear-gradient(to bottom, transparent, var(--border-color), transparent);z-index:10;width:2px;margin:2rem 0;position:relative;box-shadow:0 0 10px #00000005}.center-qr-container{background:var(--bg-color);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:10px;display:flex;position:absolute;top:30px;left:50%;transform:translate(-50%)}.gun-flow-container{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;min-height:100%;display:flex}.flow-step{flex-direction:column;align-items:center;width:100%;max-width:500px;display:flex}@media (height<=780px){.flow-step,.welcome-container,.center-qr-container{zoom:.9}}@media (height<=680px){.flow-step,.welcome-container,.center-qr-container{zoom:.8}}@media (height<=580px){.flow-step,.welcome-container,.center-qr-container{zoom:.7}}@media (height<=480px){.flow-step,.welcome-container,.center-qr-container{zoom:.6}}@media (height<=380px){.flow-step,.welcome-container,.center-qr-container{zoom:.5}}.mt-auto{margin-top:auto}.w-full{width:100%}.flex-col-gap{flex-direction:column;gap:1rem;display:flex}.step-title{color:var(--text-main);margin-bottom:.5rem;font-size:2.5rem;font-weight:900}.step-sub{color:var(--text-muted);margin-bottom:3rem;font-size:1.25rem;font-weight:600}.tap-hint{color:var(--brand-green);margin-top:1rem;font-size:1rem;font-weight:800;animation:2s infinite alternate pulse-opacity}@keyframes pulse-opacity{0%{opacity:.4}to{opacity:1}}@keyframes orb-spin{to{transform:rotate(360deg)}}.auth-methods-grid{grid-template-columns:1fr;gap:1.5rem;width:100%;display:grid}.auth-method-card{flex-direction:row;justify-content:flex-start;gap:1.5rem;padding:1.5rem}.method-icon{margin:0;font-size:3rem}.method-name{font-size:1.5rem}.charging-layout,.dash-panel{flex-direction:column;width:100%;height:100%;display:flex}.dual-dashboard{gap:1.5rem;width:100%;height:100%;display:flex}.dash-divider{justify-content:center;align-items:center;padding:2rem 0;display:flex}.dash-divider-line{background:linear-gradient(to bottom, transparent, var(--border-color), transparent);width:2px;height:100%}.dash-panel{background:var(--bg-panel);border:2px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:20px;flex-direction:column;flex:1;transition:all .5s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;overflow:hidden}.dash-panel.active{border-color:var(--brand-green);z-index:2;transform:scale(1.02);box-shadow:0 15px 40px #22c55e26}.dash-panel.inactive{opacity:.6;background:#f8fafc;transform:scale(.98)}.dash-panel-header{border-bottom:2px solid var(--border-color);background:#f1f5f9;align-items:center;gap:1rem;padding:.75rem 1.25rem;transition:background .5s;display:flex}.dash-panel.active .dash-panel-header{border-bottom-color:var(--brand-green);background:linear-gradient(90deg,#dcfce7,#f0fdf4)}.gun-id{background:var(--text-muted);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.25rem;font-weight:900;transition:all .5s;display:flex}.dash-panel.active .gun-id{background:var(--brand-green);animation:2s infinite pulse-id;box-shadow:0 0 15px #22c55e99}@keyframes pulse-id{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 12px #22c55e00}to{box-shadow:0 0 #22c55e00}}.gun-state{color:var(--text-main);letter-spacing:1px;font-size:1.25rem;font-weight:900}.dash-panel.active .gun-state{color:var(--brand-green-hover)}.dash-panel-body{flex:1;justify-content:center;align-items:center;min-height:0;padding:.5rem;display:flex;position:relative;overflow:hidden}.hatke-meter{justify-content:center;align-items:center;width:clamp(100px,25vh,200px);height:clamp(100px,25vh,200px);margin-bottom:.5rem;display:flex;position:relative}.meter-glow{background:radial-gradient(circle,#22c55e33 0%,#0000 70%);border-radius:50%;width:80%;height:80%;animation:3s infinite alternate breathe-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes breathe-glow{0%{opacity:.5;transform:translate(-50%,-50%)scale(.8)}to{opacity:1;transform:translate(-50%,-50%)scale(1.3)}}.meter-svg{z-index:2;width:100%;height:100%;position:absolute;transform:rotate(-90deg)}.meter-track{fill:none;stroke:#f1f5f9;stroke-width:12px}.meter-dashed{fill:none;stroke:#cbd5e1;stroke-width:2px;stroke-dasharray:4 8;transform-origin:50%;animation:20s linear infinite spin-dash}@keyframes spin-dash{to{transform:rotate(360deg)}}.meter-progress{fill:none;stroke:var(--brand-green);stroke-width:14px;stroke-linecap:round;filter:drop-shadow(0 0 6px #22c55e66);transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}.meter-content{z-index:3;color:var(--text-main);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:55%;height:55%;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 20px #0000000d,inset 0 -5px 10px #00000005}.soc-val{background:linear-gradient(135deg, var(--text-main), #334155);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;font-size:clamp(1.5rem,4vh,3rem);font-weight:900;line-height:1;display:flex}.soc-sym{color:var(--brand-green);margin-left:2px;font-size:1.5rem;font-weight:700}.charging-view{z-index:2;flex-direction:column;align-items:center;display:flex;transform:scale(.9)}.primary-metric{border:1px solid var(--border-color);background:#f8fafc;border-radius:100px;align-items:baseline;gap:.5rem;padding:4px 16px;display:flex}.primary-val{color:var(--text-main);font-size:clamp(1.2rem,3vh,2rem);font-weight:900}.primary-unit{color:var(--text-muted);font-size:1.25rem;font-weight:800}.unplugged-view{color:var(--text-muted);opacity:.6;flex-direction:column;align-items:center;gap:1.5rem;font-size:1.25rem;font-weight:800;display:flex}.plug-animation{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;animation:3s ease-in-out infinite float-plug;display:flex;box-shadow:0 10px 20px #0000000d}@keyframes float-plug{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.plug-icon{font-size:3rem}.dash-panel-footer{border-top:2px solid var(--border-color);z-index:2;background:#fff}.dash-panel.active .dash-panel-footer.no-padding{background:var(--bg-color);border-radius:0 0 24px 24px;padding:.5rem 1rem}.detail-cards-grid{grid-template-columns:1fr 1fr;gap:.5rem;width:100%;display:grid}.detail-card{border:1px solid var(--border-color);background:#fff;border-radius:10px;flex-direction:column;gap:.25rem;padding:.5rem;display:flex;box-shadow:0 1px 3px #00000005}.detail-icon-wrap{background:#f0fdf4;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.detail-icon{color:var(--brand-green);font-size:.8rem}.detail-text{flex-direction:column;gap:.1rem;display:flex}.detail-label{color:var(--text-muted);text-transform:uppercase;font-size:.75rem;font-weight:700}.detail-val{color:var(--text-main);font-size:1.1rem;font-weight:900}.data-val small{color:var(--text-muted);font-size:.9rem;font-weight:700}.stop-btn{background:linear-gradient(135deg, var(--error), #dc2626);color:#fff;letter-spacing:1px;border:none;border-radius:0;width:100%;padding:1.5rem;font-size:1.5rem;font-weight:900;position:relative;overflow:hidden}.finish-btn{background:linear-gradient(135deg, var(--brand-green), #16a34a);color:#fff;letter-spacing:1px;border:none;border-radius:0;width:100%;padding:1.5rem;font-size:1.5rem;font-weight:900;position:relative;overflow:hidden}.btn-shine{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:50%;height:100%;animation:3s infinite sweep;position:absolute;top:0;left:-100%;transform:skew(-20deg)}@keyframes sweep{0%{left:-100%}20%{left:200%}to{left:200%}}.in-panel-auth{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.auth-step-container{flex-direction:column;align-items:center;width:100%;display:flex}.auth-methods-grid{grid-template-columns:1fr 1fr;width:100%;display:grid}.auth-method-card{border:2px solid var(--border-color);cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex}.auth-method-card:hover{border-color:var(--brand-green);box-shadow:var(--shadow-sm);transform:translateY(-3px)}.dash-panel.authenticating{border-color:var(--brand-green);box-shadow:0 10px 30px #22c55e1a}.panel-home-state{cursor:pointer;background:var(--bg-panel);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.energy-orb-wrapper{cursor:pointer;flex-direction:column;align-items:center;transition:all .4s cubic-bezier(.2,.8,.2,1);display:flex}.energy-orb-wrapper:hover{transform:translateY(-10px)}.energy-orb-wrapper:active{transform:scale(.95)}.energy-orb{justify-content:center;align-items:center;width:200px;height:200px;margin-bottom:2rem;display:flex;position:relative}.orb-ring{width:100%;height:100%;position:absolute;top:0;left:0;transform:rotate(-90deg)}.ring-track{fill:#fffc;stroke:var(--border-color);stroke-width:4px}.ring-spin{fill:none;stroke:var(--brand-green);stroke-width:8px;stroke-linecap:round;stroke-dasharray:150 450;transform-origin:50%;transition:stroke-dasharray .5s;animation:8s linear infinite orb-spin}.energy-orb-wrapper:hover .ring-spin{stroke-dasharray:400 200;stroke:var(--brand-green-hover);animation-duration:4s}.orb-core{z-index:1;background:#fff;border-radius:50%;width:150px;height:150px;transition:all .4s;position:absolute;box-shadow:0 10px 30px #00000014,inset 0 0 20px #00000005}.energy-orb-wrapper:hover .orb-core{background:var(--brand-green-light);box-shadow:0 20px 40px #22c55e4d,inset 0 0 30px #22c55e1a}.orb-letter{color:var(--text-main);z-index:2;font-size:6rem;font-weight:900;transition:color .4s}.energy-orb-wrapper:hover .orb-letter{color:var(--brand-green-hover)}.orb-info{flex-direction:column;align-items:center;gap:.5rem;display:flex}.orb-badge{background:var(--brand-green);color:#fff;letter-spacing:2px;border-radius:100px;padding:8px 24px;font-size:1.1rem;font-weight:900;transition:transform .3s;box-shadow:0 10px 20px #22c55e33}.energy-orb-wrapper:hover .orb-badge{transform:scale(1.05)}.orb-type{color:var(--text-muted);font-size:1.1rem;font-weight:700}.panel-home-state{cursor:pointer;flex:1;justify-content:center;align-items:center;width:100%;height:100%;display:flex;box-shadow:none!important;background:0 0!important;border:none!important}.orb-divider{flex-direction:column;align-items:center;height:350px;display:flex}.divider-line{background:linear-gradient(to bottom, transparent, var(--border-color), transparent);width:2px;height:100%}.qr-container{justify-content:center;align-items:center;margin-top:1rem;display:flex}.qr-box{border:4px solid var(--brand-green);width:320px;height:320px;box-shadow:var(--shadow-lg);background:#fff;border-radius:20px;padding:10px;position:relative;overflow:hidden}.qr-image{object-fit:contain;width:100%;height:100%}.animation-wrapper{flex:1;justify-content:center;align-items:center;min-height:0;margin:1rem 0;display:flex}.plug-animation-container{flex-direction:column;align-items:center;gap:1rem;display:flex}.plug-connector{color:var(--text-main);filter:drop-shadow(0 10px 15px #0000001a);animation:1.5s ease-in-out infinite alternate plugIn}.plug-socket-zone{background:var(--border-color);border-top:4px solid #cbd5e1;border-radius:12px;gap:16px;padding:12px 24px;display:flex}.socket-hole{background:#0f172a;border-radius:50%;width:12px;height:12px;box-shadow:inset 0 3px 6px #00000080}@keyframes plugIn{0%{opacity:.7;transform:translateY(-25px)}to{opacity:1;transform:translateY(5px)}}.success-animation-container{justify-content:center;align-items:center;display:flex}.checkmark-anim{stroke-width:4px;width:120px;height:120px;stroke:var(--brand-green);stroke-miterlimit:10;box-shadow:inset 0px 0px 0px var(--brand-green);border-radius:50%;animation:.4s ease-in-out .4s forwards fill,.3s ease-in-out .9s both scaleAnim;display:block}.checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166px;stroke-width:4px;stroke-miterlimit:10;stroke:var(--brand-green);fill:none;animation:.6s cubic-bezier(.65,0,.45,1) forwards strokeAnim}.checkmark-check{transform-origin:50%;stroke-dasharray:48;stroke-dashoffset:48px;animation:.3s cubic-bezier(.65,0,.45,1) .8s forwards strokeAnim}@keyframes strokeAnim{to{stroke-dashoffset:0}}@keyframes scaleAnim{0%,to{transform:none}50%{transform:scale(1.1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px #22c55e1a}}.unplug-animation-container{flex-direction:column;align-items:center;gap:1rem;display:flex}.unplug-anim{color:var(--brand-green);filter:drop-shadow(0 10px 15px #0000001a);animation:2s ease-in-out infinite unplugOut}@keyframes unplugOut{0%,20%{opacity:1;transform:translateY(5px)}80%,to{opacity:0;transform:translateY(-40px)}}.scan-line{background:var(--brand-green);width:100%;height:6px;box-shadow:0 0 15px var(--brand-green);opacity:.8;border-radius:4px;animation:2s linear infinite scanning;position:absolute;top:0;left:0}@keyframes scanning{0%{top:0}50%{top:calc(100% - 6px)}to{top:0}}.rfid-animation-box{justify-content:center;align-items:center;width:300px;height:300px;display:flex}.rfid-reader{background:var(--bg-panel);border:2px solid var(--border-color);width:220px;height:220px;box-shadow:var(--shadow-lg);border-radius:24px;justify-content:center;align-items:center;display:flex;position:relative}.rfid-card-floating{z-index:2;text-shadow:0 10px 20px #0000001a;font-size:7rem;animation:3s ease-in-out infinite floatTap;position:absolute}@keyframes floatTap{0%{opacity:0;transform:translateY(-60px)rotate(-10deg)}20%{opacity:1}50%{transform:translateY(0)rotate(0)scale(1.1)}80%{opacity:1}to{opacity:0;transform:translateY(-60px)rotate(10deg)}}.rfid-waves{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute}.rfid-waves span{border:3px solid var(--brand-green);opacity:0;border-radius:50%;animation:3s infinite rip;position:absolute}.rfid-waves span:first-child{width:120px;height:120px;animation-delay:1.5s}.rfid-waves span:nth-child(2){width:170px;height:170px;animation-delay:1.7s}.rfid-waves span:nth-child(3){width:220px;height:220px;animation-delay:1.9s}@keyframes rip{0%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(1.5)}}.waiting-text{color:var(--brand-green);justify-content:center;align-items:center;gap:12px;font-size:1.5rem;font-weight:700;display:flex}.dot-pulse{background:var(--brand-green);border-radius:50%;width:14px;height:14px;animation:1s infinite alternate blink}@keyframes blink{0%{opacity:.2;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}
