.voice-section{flex-direction:column;padding:18px 0 14px}.orb-wrap,.voice-section{align-items:center;display:flex}.orb-wrap{cursor:pointer;height:160px;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:160px}.orb-ring{animation:ring-pulse 3.5s ease-out infinite;border:2px solid #00ff4159;border-radius:50%;position:absolute}.r1{animation-delay:0s;height:100px;width:100px}.r2{animation-delay:1.1s;height:130px;width:130px}.r3{animation-delay:2.2s;height:160px;width:160px}.orb-wrap.listening .orb-ring{animation-duration:1.2s;animation-name:ring-pulse-active;border-color:#00ff41e6;border-width:2.5px;box-shadow:0 0 12px #00ff4166}.orb-wrap.listening .r2{animation-delay:.4s}.orb-wrap.listening .r3{animation-delay:.8s}@keyframes ring-pulse{0%{opacity:.8;transform:scale(.75)}to{opacity:0;transform:scale(1.5)}}@keyframes ring-pulse-active{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.7)}}.orb-core{align-items:center;background:radial-gradient(circle at 38% 38%,#030,#000800);border:2px solid var(--green-dim);border-radius:50%;box-shadow:0 0 20px #00ff4140,0 0 40px #00ff4114,inset 0 0 15px #00ff4114;display:flex;height:80px;justify-content:center;position:relative;transition:all .3s ease;width:80px;z-index:2}.orb-core.listening{background:radial-gradient(circle at 38% 38%,#00ff41,#0a2 60%,#030);border-color:var(--green);box-shadow:0 0 50px #00ff41e6,0 0 100px #00ff4159,0 0 160px #00ff411f,inset 0 0 25px #00ff414d}.orb-core.processing{animation:orb-proc .8s ease-in-out infinite alternate;background:radial-gradient(circle at 38% 38%,#130,#000800);box-shadow:0 0 25px #00c83259}@keyframes orb-proc{to{box-shadow:0 0 45px #00ff4199}}.spinner{animation:spin .7s linear infinite;border:2px solid #00ff4133;border-radius:50%;border-top:2px solid var(--green);height:22px;width:22px}@keyframes spin{to{transform:rotate(1turn)}}.waveform{align-items:center;display:flex;gap:3px;height:22px;margin:10px 0 0;opacity:0;transition:opacity .3s}.waveform.on{opacity:1}.wbar{background:var(--green);border-radius:2px;box-shadow:0 0 5px var(--green);height:3px;transition:height .05s ease;width:3px}.vlabel{color:var(--text-dim);font-family:var(--font-mono);font-size:10px;letter-spacing:2px;margin-top:10px;transition:color .3s}.vlabel.listening{animation:blink 1s ease-in-out infinite;color:var(--green)}.vlabel.processing{animation:blink .5s ease-in-out infinite;color:#8f9}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.verror{color:#f80;font-size:10px;letter-spacing:1px;margin-top:6px;max-width:220px;text-align:center}.orb-core.speaking{animation:orb-speak 1.2s ease-in-out infinite alternate;background:radial-gradient(circle at 38% 38%,#00ff41,#0c3 50%,#030);border-color:var(--green);box-shadow:0 0 35px #00ff41b3,0 0 70px #00ff4140,inset 0 0 20px #00ff4133}@keyframes orb-speak{0%{box-shadow:0 0 30px #00ff4199,0 0 60px #00ff4133}to{box-shadow:0 0 55px #00ff41e6,0 0 100px #00ff4159}}.orb-wrap.speaking .orb-ring{animation-duration:1.8s;animation-name:ring-pulse-active;border-color:#00ff4180}.orb-wrap.speaking .r2{animation-delay:.6s}.orb-wrap.speaking .r3{animation-delay:1.2s}.wbar.wbar-speak{background:var(--green);box-shadow:0 0 8px var(--green),0 0 16px #00ff4166}.vlabel.speaking{animation:blink 1.5s ease-in-out infinite;color:var(--green)}.login-wrap{background:#000000eb;inset:0;justify-content:center;position:fixed;z-index:100}.login-box,.login-wrap{align-items:center;display:flex}.login-box{animation:login-in .4s ease;background:#000a00f2;border:1px solid var(--green-dim);border-radius:6px;box-shadow:0 0 40px #00ff411a,0 0 80px #00ff410d;flex-direction:column;gap:6px;padding:28px 24px 24px;width:min(360px,92vw)}@keyframes login-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.login-logo{margin-bottom:6px}.login-title{color:var(--green);font-family:var(--font-title);font-size:16px;font-weight:900;letter-spacing:4px;text-shadow:0 0 14px #00ff4199}.login-title span{color:#b0ffb880;font-weight:400}.login-sub{color:var(--text-dim);font-size:9px;letter-spacing:3px;margin-bottom:16px}.login-form{gap:12px;width:100%}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:4px}.field-lbl{font-size:9px}.login-inp{background:#00140099;border:1px solid var(--border);border-radius:3px;color:var(--text);font-family:var(--font-mono);font-size:13px;outline:none;padding:9px 12px;transition:border-color .2s;width:100%}.login-inp::placeholder{color:var(--text-dim)}.login-inp:focus{border-color:var(--green-dim);box-shadow:0 0 8px #00ff411a}.login-err{background:#ff323214;border:1px solid #ff323233;border-radius:3px;color:#f66}.login-err,.login-ok{font-size:11px;letter-spacing:1px;padding:6px 10px}.login-ok{background:#00ff410f;border:1px solid var(--border);border-radius:3px;color:var(--green)}.login-btn{background:#00ff411a;border:1px solid var(--green-dim);border-radius:3px;color:var(--green);cursor:pointer;font-family:var(--font-mono);font-size:12px;letter-spacing:3px;margin-top:4px;padding:11px;transition:all .2s}.login-btn:hover:not(:disabled){background:#00ff4133;border-color:var(--green);box-shadow:0 0 12px #00ff4133}.login-btn:disabled{cursor:not-allowed;opacity:.5}.login-switch{color:var(--text-dim);font-size:11px;margin-top:4px;text-align:center}.login-switch span{color:var(--green-dim);cursor:pointer;text-decoration:underline}.login-switch span:hover{color:var(--green)}.panel{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:var(--surface);border:1px solid var(--border);border-radius:4px;margin-bottom:10px;overflow:hidden}.panel-hdr{align-items:center;border-bottom:1px solid var(--border);color:var(--green-dim);display:flex;font-family:var(--font-mono);font-size:10px;justify-content:space-between;letter-spacing:2px;padding:8px 12px}.pclose{color:var(--text-dim);cursor:pointer;transition:color .2s}.pclose:hover{color:var(--green)}.p-empty{color:var(--text-dim);font-size:12px;padding:16px 12px;text-align:center}.ev-row{align-items:flex-start;border-bottom:1px solid #00ff410f;display:flex;gap:8px;padding:8px 12px}.ev-row:last-of-type{border-bottom:none}.ev-time{color:var(--green-dim);font-family:var(--font-mono);font-size:11px;margin-top:2px;min-width:38px}.ev-dot{border-radius:50%;flex-shrink:0;height:5px;margin-top:4px;width:5px}.ev-title{color:var(--text);font-size:12px}.ev-sub{color:var(--text-dim);font-size:10px;margin-top:1px}.task-row{align-items:center;border-bottom:1px solid #00ff410f;cursor:pointer;display:flex;gap:8px;padding:8px 12px;transition:background .15s}.task-row:hover{background:#00ff410a}.task-row:last-of-type{border-bottom:none}.chk{color:var(--text-dim);flex-shrink:0;font-size:12px;width:14px}.chk-on{color:var(--green)}.task-txt{flex:1 1;font-size:12px}.struck{color:var(--text-dim);text-decoration:line-through}.badge{border-radius:2px;flex-shrink:0;font-size:9px;letter-spacing:1px;padding:1px 5px}.badge-h{background:#ff32321f;border:1px solid #ff323233;color:#f66}.badge-m{background:#ffa0001f;border:1px solid #ffa00033;color:#fa3}.badge-l{background:#00ff4114;border:1px solid var(--border);color:var(--green-dim)}.shop-row{align-items:center;border-bottom:1px solid #00ff410f;display:flex;gap:8px;padding:8px 12px}.shop-row:last-of-type{border-bottom:none}.shop-qty{color:#fa3;font-size:11px;min-width:22px}.shop-name{flex:1 1;font-size:12px}.shop-cat{color:var(--text-dim);font-size:10px}.shop-del{color:#ff505066;cursor:pointer;font-size:10px;padding:0 2px}.shop-del:hover{color:#ff5050e6}.add-row{align-items:center;border-top:1px solid var(--border);display:flex;gap:6px;padding:8px 12px}.prompt-sym{color:var(--green-dim);font-size:12px}.add-inp{background:#0000;border:none;border-bottom:1px solid var(--border);color:var(--text);flex:1 1;font-family:var(--font-mono);font-size:12px;outline:none;padding:2px 4px}.add-inp::placeholder{color:var(--text-dim)}.add-inp:focus{border-bottom-color:var(--green)}.add-btn{background:#0000;border:1px solid var(--border);border-radius:2px;color:var(--green-dim);cursor:pointer;font-size:10px;letter-spacing:1px;padding:3px 8px;transition:all .2s}.add-btn:hover{background:#00ff411a;border-color:var(--green);color:var(--green)}.notif{align-items:flex-start;animation:slide-in .3s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#002800cc;border:1px solid var(--green-dim);border-left:3px solid var(--green);border-radius:4px;display:flex;gap:10px;margin-bottom:10px;padding:9px 12px}@keyframes slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notif-ic{font-size:16px;margin-top:1px}.notif-t{color:var(--green);font-size:12px;font-weight:600}.notif-s{font-size:10px;margin-top:2px}.notif-s,.notif-x{color:var(--text-dim)}.notif-x{cursor:pointer;font-size:11px;margin-left:auto}.notif-x:hover{color:var(--green)}.shop-main{flex:1 1;min-width:0}.shop-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.shop-tag{background:#00ff4112;border:1px solid var(--border);border-radius:2px;color:var(--text-dim);font-size:9px;letter-spacing:1px;padding:1px 5px}.shop-sup{border-color:#00c8ff33;color:#64c8ffb3}.shop-date{border-color:#ffa00033;color:#ffa000b3}.shop-detail{animation:fade-in .2s ease;background:#00140080;border-top:1px solid #00ff410f;padding:6px 12px 8px 36px}@keyframes fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.detail-row{color:var(--text-dim);display:flex;font-size:10px;justify-content:space-between;padding:2px 0}.detail-row span:first-child{color:#00ff4166;letter-spacing:1px}.shop-form{border-top:1px solid var(--border);padding:10px 12px 12px}.form-label{color:var(--green-dim);font-size:9px;letter-spacing:3px;margin-bottom:8px}.form-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:1fr 1fr;margin-bottom:8px}.form-wide{grid-column:1/-1}.form-field{display:flex;flex-direction:column;gap:3px}.field-lbl{color:#00ff4166;font-size:8px;letter-spacing:2px}.field-inp{background:#0000;border:none;border-bottom:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:12px;outline:none;padding:3px 4px;width:100%}.field-inp::placeholder{color:var(--text-dim)}.field-inp:focus{border-bottom-color:var(--green)}.field-date{color-scheme:dark}.form-submit{background:#00ff4114;border:1px solid var(--border);border-radius:2px;color:var(--green-dim);cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:2px;padding:8px;transition:all .2s;width:100%}.form-submit:hover{background:#00ff4126;border-color:var(--green);color:var(--green)}.app{background:#000000e0;display:flex;flex-direction:column;height:100dvh;margin:0 auto;max-width:480px;position:relative}.hdr{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000500e6;border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 14px;position:relative;z-index:10}.hdr,.hdr-logo{align-items:center;display:flex;gap:10px}.hdr-name{color:var(--green);font-family:var(--font-title);font-size:13px;font-weight:900;letter-spacing:3px;text-shadow:0 0 12px #00ff4199}.hdr-name span{color:#b0ffb899;font-weight:400}.hdr-sub{color:var(--text-dim);font-size:9px;letter-spacing:3px;margin-top:2px}.hdr-version{color:#00ff4159;font-family:var(--font-mono);font-size:8px;letter-spacing:2px;margin-top:2px}.hdr-clock{margin-left:auto;text-align:right}.clock{color:var(--green-dim);font-family:var(--font-title);font-size:14px}.clock,.date-str{letter-spacing:2px}.date-str{color:var(--text-dim);font-size:9px;margin-top:2px}.status-led{animation:led-pulse 2s ease-in-out infinite;background:var(--green);border-radius:50%;box-shadow:0 0 6px var(--green),0 0 14px #00ff4166;height:7px;width:7px}@keyframes led-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.scroll-area{flex:1 1;overflow-y:auto;position:relative;z-index:5}.content{padding:10px 12px}.user-bubble{border-left:2px solid var(--border);color:var(--text-dim);font-size:11px;font-style:italic}.api-error,.user-bubble{margin-bottom:6px;padding:6px 10px}.api-error{background:#ff88000f;border:1px solid #ff88004d;border-radius:3px;color:#f80;font-size:10px;letter-spacing:1px}.resp-box{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--surface);border:1px solid var(--border);border-radius:4px;margin:6px 0 14px;min-height:54px;padding:10px 12px;position:relative}.resp-label{color:var(--green-dim);font-size:8px;letter-spacing:3px;margin-bottom:6px}.resp-text{color:var(--text);font-size:13px;line-height:1.55}.sec-label{align-items:center;color:var(--text-dim);display:flex;font-size:9px;gap:8px;letter-spacing:3px;margin:12px 0 8px}.sec-label:after{background:var(--border);content:"";flex:1 1;height:1px}.qgrid{grid-gap:7px;display:grid;gap:7px;grid-template-columns:1fr 1fr;margin-bottom:12px}.qbtn{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);cursor:pointer;display:flex;gap:8px;padding:10px;transition:all .2s}.qbtn:hover{background:#001e00cc;border-color:var(--green-dim)}.qbtn-on{background:#002800d9;border-color:var(--green);box-shadow:0 0 10px #00ff411a}.qicon{flex-shrink:0;font-size:18px;text-align:center;width:28px}.qlabel{color:var(--green-dim);font-size:11px;font-weight:600;letter-spacing:1px}.qsub{color:var(--text-dim);font-size:10px;margin-top:2px}.bnav{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000500f2;border-top:1px solid var(--border);display:flex;flex-shrink:0;padding:7px 0 11px;position:relative;z-index:20}.bnav-item{align-items:center;color:var(--text-dim);cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:2px;padding:4px 0;transition:all .2s}.bnav-item:hover,.bnav-on{color:var(--green)}.bnav-icon{font-size:17px}.bnav-label{font-family:var(--font-mono);font-size:8px;letter-spacing:1px}.wake-bar{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--surface);border:1px solid var(--border);border-radius:4px;display:flex;justify-content:space-between;margin-bottom:10px;padding:8px 12px}.wake-info{flex:1 1}.wake-label{align-items:center;color:var(--green-dim);display:flex;font-size:10px;gap:6px;letter-spacing:3px}.wake-active-dot{animation:led-pulse 1s ease-in-out infinite;background:var(--green);border-radius:50%;box-shadow:0 0 6px var(--green);height:6px;width:6px}.wake-sub{color:var(--text-dim);font-size:9px;letter-spacing:1px;margin-top:3px}.wake-switch{background:#00ff4114;border:1px solid var(--border);border-radius:11px;cursor:pointer;flex-shrink:0;height:22px;position:relative;transition:all .3s ease;width:40px}.wake-switch.on{background:#00ff4140;border-color:var(--green-dim);box-shadow:0 0 8px #00ff4133}.wake-switch.disabled{cursor:not-allowed;opacity:.4}.wake-thumb{background:var(--text-dim);border-radius:50%;height:16px;left:2px;position:absolute;top:2px;transition:all .3s ease;width:16px}.wake-switch.on .wake-thumb{background:var(--green);box-shadow:0 0 6px #00ff4199;left:20px}.hdr-right{align-items:center;display:flex;gap:8px}.user-tag{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.user-name{color:var(--green-dim);font-size:10px;letter-spacing:1px}.role-badge,.user-name{font-family:var(--font-mono)}.role-badge{border-radius:2px;font-size:8px;letter-spacing:2px;padding:1px 5px}.role-admin{background:#00ff4126;border:1px solid var(--border);color:var(--green)}.role-operator{background:#0096ff1f;border:1px solid #0096ff33;color:#6af}.role-readonly{background:#9696961a;border:1px solid #96969633;color:#888}.logout-btn{color:var(--text-dim);cursor:pointer;font-size:16px;padding:2px 4px;transition:color .2s}.logout-btn:hover{color:#f66}:root{--green:#00ff41;--green-dim:#0c3;--green-dark:#030;--green-glow:#00ff4159;--green-faint:#00ff4112;--bg:#000;--surface:#000a00d1;--border:#00ff4140;--border-hot:#00ff41b3;--text:#b0ffb8;--text-dim:#b0ffb873;--font-mono:"Share Tech Mono",monospace;--font-title:"Orbitron",monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{-webkit-font-smoothing:antialiased;background:#000;background:var(--bg);color:#b0ffb8;color:var(--text);font-family:Share Tech Mono,monospace;font-family:var(--font-mono);height:100%;overscroll-behavior:none}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#0c3;background:var(--green-dim);border-radius:2px}button,input,textarea{font-family:Share Tech Mono,monospace;font-family:var(--font-mono)}button{background:none;border:none;cursor:pointer}input:focus{outline:none}
/*# sourceMappingURL=main.20ea01bc.css.map*/