html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{-webkit-text-size-adjust:100%}body{overscroll-behavior:none;position:fixed;width:100%;height:100%}#root{height:100%;width:100%}:root{--bg-dark: #1e1e1e;--bg-darker: #0c0c0c;--bg-panel: #252526;--accent-orange: #d77757;--text-primary: #d4d4d4;--text-dim: #808080;--border: #2d2d30;--success: #4ec9b0;--danger: #f48771;--warning: #dcdcaa;--info: #569cd6;--terminal-bg: #1e1e1e;--terminal-text: #d4d4d4;--terminal-cursor: #d77757;--font-family: "SF Mono", "Monaco", "Menlo", "Consolas", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--button-height-desktop: 36px;--button-height-tablet: 44px;--button-height-mobile: 40px;--button-min-width: 44px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--bg-dark);color:var(--text-primary);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:var(--font-family);font-size:var(--text-sm);font-weight:500;height:var(--button-height-desktop);min-width:var(--button-min-width);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}button:hover:not(:disabled){background:var(--accent-orange);border-color:var(--accent-orange);transform:scale(1.05);box-shadow:0 4px 12px #d777574d}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent-orange);border-color:var(--accent-orange);color:#fff}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes slideInFromBottomRight{0%{transform:translate(100%,100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){button{height:var(--button-height-tablet);padding:0 var(--space-5)}}@media (max-width: 480px){button{height:var(--button-height-mobile);padding:0 var(--space-4)}}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:var(--bg-dark);color:var(--text-primary)}.app-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);background:var(--bg-darker);border-bottom:2px solid var(--accent-orange);flex-shrink:0}.app-title{display:flex;align-items:center;gap:var(--space-3)}.app-icon{font-size:var(--text-xl);color:var(--accent-orange);font-weight:700}.app-title h1{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);letter-spacing:.5px}.header-actions{display:flex;gap:var(--space-2)}.app-content{display:flex;flex-direction:column;flex:1;overflow:hidden;position:relative}.scanner-view{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-8)}.scanner-content{text-align:center;max-width:500px}.scanner-content h2{margin-bottom:var(--space-2);color:var(--text-primary);font-size:var(--text-xl)}.scanner-content p{color:var(--text-dim);margin-bottom:var(--space-8);font-size:var(--text-base)}.error-banner{background:#f487711a;border-left:4px solid var(--danger);padding:var(--space-4) var(--space-6);margin:var(--space-4) var(--space-6);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--danger)}.error-message{color:var(--danger);background:#f4877126;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-top:var(--space-4);font-size:var(--text-sm);border:1px solid var(--danger)}.connecting-message{text-align:center;padding:var(--space-8);color:var(--info);font-size:var(--text-lg);animation:pulse 2s infinite}.tasks-panel{border-top:1px solid var(--border);background:var(--bg-panel);padding:var(--space-4) var(--space-6);max-height:200px;overflow-y:auto;flex-shrink:0}.tasks-panel h3{font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-3);color:var(--text-primary)}.task-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:var(--bg-dark);border-radius:var(--radius-sm);margin-bottom:var(--space-2);font-size:var(--text-sm)}.task-id{font-family:var(--font-family);color:var(--text-dim)}.task-status{color:var(--success);font-weight:500}.btn-terminal{background:var(--bg-panel);border-color:var(--info);color:var(--info)}.btn-terminal:hover:not(:disabled){background:var(--info);color:#fff}.btn-disconnect{background:var(--bg-panel);border-color:var(--danger);color:var(--danger)}.btn-disconnect:hover:not(:disabled){background:var(--danger);color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-darker)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--accent-orange)}::selection{background:var(--accent-orange);color:#fff}*:focus-visible{outline:2px solid var(--accent-orange);outline-offset:2px}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-dim);font-size:var(--text-lg)}.loading:after{content:"...";animation:loading 1.5s infinite}@keyframes loading{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}@media print{.mobile-dpad,.status-bar,.input-panel,.app-header,.tasks-panel{display:none!important}.output-view{height:auto;overflow:visible}}@media (max-width: 768px){.app{height:100dvh}.app-header{padding:var(--space-3) var(--space-4)}.app-title h1{font-size:var(--text-base)}.app-icon{font-size:var(--text-lg)}.header-actions button{font-size:var(--text-xs);padding:0 var(--space-3)}.scanner-view{padding:var(--space-4)}.scanner-content h2{font-size:var(--text-lg)}.tasks-panel{padding:var(--space-3) var(--space-4);max-height:150px}}@media (max-width: 480px){.app-content{font-size:var(--text-sm)}.header-actions{gap:var(--space-1)}.app-title h1{display:none}.error-banner,.error-message{margin:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3)}}.totp-login{display:flex;flex-direction:column;align-items:center;padding:2rem;max-width:400px;margin:0 auto}.totp-header{text-align:center;margin-bottom:2rem}.totp-header h2{font-size:1.5rem;margin-bottom:.5rem;color:#d4d4d4}.totp-header p{font-size:.875rem;color:gray}.totp-input-group{display:flex;gap:.5rem;margin-bottom:1rem}.totp-input-group input{width:3rem;height:3.5rem;text-align:center;font-size:1.5rem;font-weight:600;border:2px solid #2d2d30;border-radius:8px;background:#1e1e1e;color:#d4d4d4;transition:all .2s}.totp-input-group input:focus{outline:none;border-color:#d77757;box-shadow:0 0 0 3px #d7775733}.totp-input-group input.error{border-color:#f48771;animation:shake .3s}.totp-error{color:#f48771;font-size:.875rem;margin-top:.5rem}.totp-loading{color:#4ec9b0;font-size:.875rem;margin-top:.5rem}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (max-width: 480px){.totp-input-group input{width:2.5rem;height:3rem;font-size:1.25rem}}.password-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);padding:20px}.password-gate-content{background:#000;border:1px solid #333;border-radius:12px;padding:40px;max-width:400px;width:100%;text-align:center;box-shadow:0 10px 40px #00000080}.lock-icon{font-size:48px;margin-bottom:20px}.password-gate-content h1{margin:0 0 10px;font-size:24px;color:#fff}.subtitle{color:#999;margin:0 0 30px;font-size:14px}.password-form{display:flex;flex-direction:column;gap:15px}.password-input{padding:14px 16px;background:#1a1a1a;border:1px solid #333;border-radius:8px;color:#fff;font-size:16px;outline:none;transition:border-color .2s}.password-input:focus{border-color:#646cff}.password-input:disabled{opacity:.5;cursor:not-allowed}.password-error{color:#f44;font-size:14px;padding:10px;background:#ff44441a;border-radius:6px;border:1px solid rgba(255,68,68,.3)}.password-submit{padding:14px;background:#646cff;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.password-submit:hover:not(:disabled){background:#535bf2}.password-submit:disabled{opacity:.5;cursor:not-allowed}.password-hint{margin-top:20px;font-size:13px;color:#666}
