@tailwind base;@tailwind components;@tailwind utilities;.scroll-console{scrollbar-width:thin}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:1.5rem;position:relative}.login-container:before{animation:rotate 20s linear infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:20px;box-shadow:0 20px 40px #00000026,0 10px 20px #0000001a;max-width:420px;padding:2.5rem;position:relative;transition:transform .3s ease,box-shadow .3s ease;width:100%;z-index:1}.login-card:hover{box-shadow:0 25px 50px #0003,0 15px 30px #00000026;transform:translateY(-5px)}.login-header{margin-bottom:2rem;text-align:center}.login-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1e293b;font-size:1.8rem;font-weight:800;letter-spacing:-.025em;margin-bottom:.75rem}.login-header p{color:#64748b;font-size:1rem;font-weight:500}.form-group label{color:#374151}.form-group input{border:2px solid #e5e7eb;border-radius:12px;color:#1f2937}.form-group input::placeholder{color:#9ca3af}.btn-primary{border-radius:12px;letter-spacing:.025em;padding:.875rem;width:100%}.btn-primary:active{box-shadow:0 2px 4px #667eea4d}@media (max-width:768px){.login-container{padding:1rem}.login-card{border-radius:16px;padding:2rem 1.5rem}.login-header h2{font-size:1.5rem}.login-header p{font-size:.95rem}}@media (max-width:480px){.login-card{padding:1.75rem 1.25rem}.login-header h2{font-size:1.35rem}.btn-primary,.form-group input{padding:.75rem}.btn-primary{font-size:.95rem}}@media (prefers-color-scheme:dark){.login-card{background:#111827f2}.login-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#818cf8,#a78bfa);-webkit-background-clip:text;background-clip:text}.login-header p{color:#d1d5db}.form-group label{color:#e5e7eb}.form-group input{background-color:#1f2937;border-color:#374151;color:#f9fafb}.form-group input:focus{background-color:#111827;border-color:#818cf8;box-shadow:0 0 0 3px #818cf84d}.form-group input::placeholder{color:#6b7280}}.login-card{animation:fadeIn .6s ease-out}.login-footer{color:#6b7280;font-size:.875rem;margin-top:1.5rem;text-align:center}.login-footer a{color:#667eea;font-weight:500;text-decoration:none;transition:color .2s}.login-footer a:hover{color:#5a67d8;text-decoration:underline}.password-toggle{position:relative}.password-toggle input{padding-right:3rem}.password-toggle-icon{color:#9ca3af;cursor:pointer;position:absolute;right:1rem;top:50%;transform:translateY(-50%);transition:color .2s}.password-toggle-icon:hover{color:#667eea}.spinner{display:flex;justify-content:center;margin-top:1rem}.spinner-circle{animation:spin .8s linear infinite;border:3px solid #667eea;border-radius:50%;border-top-color:#0000;height:24px;width:24px}.container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}.container:before{animation:rotate 25s linear infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:300%;left:-100%;position:absolute;top:-100%;width:300%}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.card{animation:cardAppear .6s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:16px;box-shadow:0 20px 40px #00000026,0 10px 20px #0000001a;max-width:420px;padding:2.5rem;transition:transform .3s ease,box-shadow .3s ease;width:100%;z-index:1}.card:hover{box-shadow:0 25px 50px #0003,0 15px 30px #00000026;transform:translateY(-5px)}@keyframes cardAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.card-header{margin-bottom:2rem;position:relative;text-align:center}.card-header:after{border-radius:2px;bottom:-10px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.card-header h2,.card-header:after{background:linear-gradient(135deg,#667eea,#764ba2)}.card-header h2{-webkit-text-fill-color:#0000;-webkit-background-clip:text;background-clip:text;color:#2d3748;font-size:1.8rem;margin-bottom:.75rem}.card-header p{color:#718096;font-size:1rem;font-weight:500;line-height:1.5}.form-group{margin-bottom:1.5rem}.form-group label{color:#4a5568}.form-group input{background-color:#f9fafb;border:2px solid #e2e8f0;border-radius:10px;box-sizing:border-box;color:#2d3748;font-size:1rem;padding:.875rem 1rem;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.form-group input:focus{background-color:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea33;outline:none}.form-group input::placeholder{color:#a0aec0}.hint{color:#718096;display:block;font-size:.8rem;font-weight:400;line-height:1.4;margin-top:.4rem}.button-group{margin-top:2rem}.btn-secondary{align-items:center;background-color:#e2e8f0;border:none;border-radius:10px;color:#4a5568;display:flex;flex:1 1;font-size:1rem;gap:.5rem;justify-content:center;padding:.875rem 1.5rem}.btn-secondary:hover{background-color:#cbd5e0;box-shadow:0 4px 8px #0000001a}.btn-secondary:active{transform:translateY(0)}.btn-primary{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;box-shadow:0 4px 6px #667eea4d;cursor:pointer;display:flex;flex:1 1;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary:hover{background:linear-gradient(135deg,#5a67d8,#6b46c1);box-shadow:0 6px 12px #667eea66}.btn-primary:active{transform:translateY(0)}.inline-spinner{align-items:center;background-color:#f7fafc;border-radius:10px;display:flex;flex-direction:column;margin-top:1.5rem;padding:1rem}.spinner{border:3px solid #e2e8f0;border-top-color:#667eea;height:28px;width:28px}.loading-text{color:#4a5568;font-size:.9rem;font-weight:500;margin-top:.6rem}@media (max-width:480px){.card{border-radius:12px;padding:2rem 1.5rem}.button-group{flex-direction:column;gap:.75rem}.btn-primary,.btn-secondary{width:100%}}@media (prefers-color-scheme:dark){.card{background:#1a202cf2}.card-header h2{color:#e2e8f0}.card-header p{color:#a0aec0}.form-group label{color:#e2e8f0}.form-group input{background-color:#2d3748;border-color:#4a5568;color:#e2e8f0}.form-group input:focus{background-color:#1a202c;border-color:#667eea}.hint{color:#a0aec0}.inline-spinner{background-color:#2d3748}.loading-text{color:#e2e8f0}}.error-message{color:#e53e3e;font-size:.9rem;font-weight:500;margin-top:1rem;text-align:center}button:disabled{cursor:not-allowed;opacity:.6}.error-message{opacity:1;transition:opacity .3s ease}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fff,#f8fafc);border-bottom:1px solid #e2e8f0;box-shadow:0 4px 20px #00000014;padding:1rem 0;top:0;z-index:100}.header-content{align-items:center;display:flex;gap:1.5rem;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 1.5rem}.header-content h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6366f1,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:#1e293b;font-size:1.8rem;font-weight:800;letter-spacing:-.025em;margin:0}.user-menu{flex-wrap:wrap;justify-content:flex-end}.user-info,.user-menu{align-items:center;display:flex;gap:1rem}.welcome-text{color:#475569;font-size:.95rem;font-weight:600}.status-indicator{align-items:center;background-color:#f1f5f9;border-radius:20px;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem .75rem}.status-dot{border-radius:50%;height:10px;position:relative;width:10px}.status-dot.connected{background-color:#10b981;box-shadow:0 0 0 2px #10b9814d}.status-dot.disconnected{background-color:#ef4444;box-shadow:0 0 0 2px #ef44444d}.status-dot:after{animation:pulse 2s infinite;border-radius:50%;content:"";height:16px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:16px}.status-dot.connected:after{background-color:#10b9814d}.status-dot.disconnected:after{background-color:#ef44444d}.header-actions{display:flex;gap:.75rem}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:12px;box-shadow:0 4px 6px #ef444433}.btn-danger,.btn-secondary{cursor:pointer;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-secondary{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:1px solid #cbd5e1;border-radius:12px;color:#475569}.btn-secondary:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);border-color:#94a3b8;transform:translateY(-2px)}.btn-sm{font-size:.875rem;padding:.5rem 1rem}@media (max-width:1024px){.header-content{padding:0 1.25rem}}@media (max-width:768px){.header-content{align-items:flex-start;flex-direction:column;gap:1rem;padding:0 1rem}.user-menu{justify-content:space-between;width:100%}.user-info{flex-wrap:wrap}.header-content h1{font-size:1.5rem}.welcome-text{display:none}.status-indicator{margin-right:auto}}@media (max-width:480px){.app-header{padding:.75rem 0}.header-content{padding:0 .75rem}.header-content h1{font-size:1.35rem}.user-menu{align-items:flex-start;flex-direction:column;gap:.75rem}.header-actions{justify-content:space-between;width:100%}.btn-sm{font-size:.8125rem;padding:.5rem .75rem}}@media (prefers-color-scheme:dark){.app-header{background:linear-gradient(135deg,#1e293b,#0f172a);border-bottom-color:#334155}.header-content h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#818cf8,#a78bfa);-webkit-background-clip:text;background-clip:text}.welcome-text{color:#cbd5e1}.status-indicator{background-color:#334155;color:#e2e8f0}.btn-secondary{background:linear-gradient(135deg,#334155,#475569);border-color:#475569;color:#e2e8f0}.btn-secondary:hover{background:linear-gradient(135deg,#475569,#64748b);border-color:#64748b}}:root{--primary-color:#6366f1;--primary-hover:#4f46e5;--secondary-color:#f8fafc;--accent-color:#f1f5f9;--text-primary:#1e293b;--text-secondary:#64748b;--text-light:#94a3b8;--success-color:#10b981;--warning-color:#f59e0b;--error-color:#ef4444;--border-color:#e2e8f0;--card-shadow:0 10px 30px #00000014;--card-shadow-hover:0 20px 40px #0000001f;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}body{animation:gradientShift 15s ease infinite;background:linear-gradient(-45deg,#0f172a,#1e293b,#111827,#1e293b);background-size:400% 400%;color:#1e293b;color:var(--text-primary);min-height:100vh}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.app-main{grid-gap:1.5rem;display:grid;flex:1 1;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin:0 auto;max-width:1400px;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:100%}.dice-controls{display:flex;flex-direction:column;gap:1.5rem}.logs-container{grid-column:1/-1}.logs-content{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:16px;box-shadow:inset 0 4px 12px #0000004d;color:#f1f5f9;font-family:Fira Code,Courier New,monospace;font-size:.875rem;height:350px;line-height:1.6;overflow-y:auto;padding:1.25rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.logs-content:before{background:linear-gradient(180deg,#1e293b 0,#1e293b00);top:0}.logs-content:after,.logs-content:before{content:"";height:20px;left:0;pointer-events:none;position:absolute;right:0;z-index:1}.logs-content:after{background:linear-gradient(0deg,#1e293b 0,#1e293b00);bottom:0}.log-entry{border-bottom:1px solid #ffffff0d;margin-bottom:.75rem;padding:.5rem 0;position:relative;z-index:2}.log-entry:last-child{border-bottom:none}.no-logs{color:#94a3b8;color:var(--text-light);font-style:italic;margin-top:2rem;text-align:center}.card{animation:fadeInScale .5s ease-out;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:20px;box-shadow:0 10px 30px #00000014;box-shadow:var(--card-shadow);overflow:hidden;position:relative;transition:transform .35s ease,box-shadow .35s ease,background .6s ease}.card:hover{background:linear-gradient(135deg,#eef2ff,#f1f5f9);box-shadow:0 20px 40px #0000001f,0 0 20px #6366f140;box-shadow:var(--card-shadow-hover),0 0 20px #6366f140;transform:translateY(-8px) scale(1.02)}@keyframes fadeInScale{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.card-header{background:linear-gradient(135deg,#f8fafc,#f1f5f9);background:linear-gradient(135deg,var(--secondary-color) 0,var(--accent-color) 100%);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;transition:background .4s ease}.card-header h2{color:#1e293b;color:var(--text-primary);font-size:1.35rem;font-weight:700;letter-spacing:-.025em;margin:0;transition:color .3s ease}.card-body{animation:fadeIn .6s ease-out;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem}@media (prefers-color-scheme:dark){.card{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:#334155}.card:hover{background:linear-gradient(135deg,#334155,#1e293b);box-shadow:0 20px 40px #0000001f,0 0 25px #6366f14d;box-shadow:var(--card-shadow-hover),0 0 25px #6366f14d}.card-header{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:#334155}.card-header h2{color:#f8fafc}}.form-group{margin-bottom:1.25rem}.form-group label{color:#1e293b;color:var(--text-primary);display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.form-row{display:flex;gap:1rem;margin-bottom:1.25rem}.form-row .form-group{flex:1 1;margin-bottom:0}input[type=number],input[type=password],input[type=text],select,textarea{background-color:#f8fafc;background-color:var(--secondary-color);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:12px;color:#1e293b;color:var(--text-primary);font-size:1rem;padding:.875rem 1rem;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:100%}input:focus,select:focus,textarea:focus{background-color:#fff;border-color:#6366f1;border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f126;outline:none}.button-group{display:flex;gap:.75rem;margin-top:.5rem}button{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-hover) 100%);box-shadow:0 4px 6px #6366f133;color:#fff}.btn-primary:hover{box-shadow:0 6px 12px #6366f14d;transform:translateY(-2px)}.btn-secondary{background-color:#f8fafc;background-color:var(--secondary-color);border:1px solid #e2e8f0;border:1px solid var(--border-color);color:#1e293b;color:var(--text-primary)}.btn-secondary:hover{background-color:#eef2ff;border-color:#6366f1;border-color:var(--primary-color);color:#6366f1;color:var(--primary-color)}.btn-danger{background-color:#ef4444;background-color:var(--error-color);color:#fff}.btn-danger:hover{background-color:#dc2626;box-shadow:0 6px 12px #ef44444d;transform:translateY(-2px)}.status-info{display:flex;flex-direction:column;gap:.75rem}.status-item{align-items:center;background-color:#f8fafc;background-color:var(--secondary-color);border-radius:12px;display:flex;justify-content:space-between;padding:.75rem}.status-label{color:#1e293b;color:var(--text-primary);font-size:.95rem;font-weight:600}.status-value{border-radius:20px;font-size:.85rem;font-weight:700;padding:.35rem .75rem}.status-value.connected,.status-value.running{background-color:#10b98126;color:#10b981;color:var(--success-color)}.status-value.disconnected,.status-value.stopped{background-color:#ef444426;color:#ef4444;color:var(--error-color)}@media (max-width:1024px){.app-main{gap:1.25rem;grid-template-columns:1fr;padding:1.25rem}}@media (max-width:768px){.app-main{gap:1rem;padding:1rem}.card-header{padding:1.25rem}.card-header h2{font-size:1.2rem}.card-body{padding:1.25rem}.form-row{margin-bottom:1rem}.button-group,.form-row{flex-direction:column;gap:.75rem}button{justify-content:center;width:100%}.logs-content{font-size:.8125rem;height:300px;padding:1rem}.status-item{align-items:flex-start;flex-direction:column;gap:.5rem}}@media (max-width:480px){.app-main{padding:.75rem}.card{border-radius:16px}.card-body,.card-header{padding:1rem}input[type=number],input[type=password],input[type=text],select,textarea{padding:.75rem}.logs-content{border-radius:12px;height:250px}}.card{animation:fadeIn .5s ease-out}.log-entry{animation:fadeIn .3s ease-out}.logs-content::-webkit-scrollbar{width:6px}.logs-content::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.logs-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.logs-content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (prefers-color-scheme:dark){:root{--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-light:#64748b;--secondary-color:#1e293b;--accent-color:#0f172a;--border-color:#334155}.card{background:#1e293b}.card,.card-header{border-color:#334155}.card-header{background:linear-gradient(135deg,#1e293b,#0f172a)}input[type=number],input[type=password],input[type=text],select,textarea{background-color:#0f172a;border-color:#334155;color:#f1f5f9}input:focus,select:focus,textarea:focus{background-color:#0f172a}.btn-secondary{background-color:#334155;border-color:#475569;color:#f1f5f9}.btn-secondary:hover{background-color:#475569;border-color:#64748b}}.message-bar{animation:fadeIn .3s ease-in-out;border-radius:8px;font-size:14px;font-weight:500;margin:10px 0;padding:12px 16px}.message-bar.success{background-color:#e6ffed;border:1px solid #badbcc;color:#0f5132}.message-bar.error{background-color:#f8d7da;border:1px solid #f5c2c7;color:#842029}.message-bar.info{background-color:#e7f1ff;border:1px solid #b6d4fe;color:#084298}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.connection-status{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(135deg,#1e1e2f,#2c2c3e);border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 4px 12px #00000059;color:#fff;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 14px;transition:all .3s ease}.status-connected{color:#4caf50;font-weight:600}.status-disconnected{color:#f44336;font-weight:600}.connection-status span{font-size:14px}.connection-status .dot{animation:pulse 1.2s infinite;background-color:#4caf50;border-radius:50%;display:inline-block;height:10px;width:10px}.connection-status.disconnected .dot{animation:none;background-color:#f44336}@keyframes pulse{0%{opacity:.7;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{opacity:.7;transform:scale(.8)}}.spinner{display:inline-block}.spinner-wrapper{align-items:center;display:flex;height:24px;justify-content:center;margin-top:8px}.spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.mode-select{align-items:center;display:flex;gap:1.5rem;margin-top:1rem}.mode-select label{align-items:center;color:#1e293b;color:var(--text-primary);cursor:pointer;display:flex;font-size:.95rem;font-weight:600;position:relative}.mode-select input[type=radio]{appearance:none;-webkit-appearance:none;background-color:#fff;border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:50%;cursor:pointer;height:18px;margin-right:8px;position:relative;transition:border .2s ease,background .2s ease;width:18px}.mode-select input[type=radio]:checked{background-color:#6366f1;background-color:var(--primary-color);border-color:#6366f1;border-color:var(--primary-color)}.mode-select input[type=radio]:after{background:#fff;border-radius:50%;content:"";height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .2s ease;width:8px}.mode-select input[type=radio]:checked:after{transform:translate(-50%,-50%) scale(1)}.mode-select label:hover input[type=radio]{border-color:#4f46e5;border-color:var(--primary-hover)}@media (prefers-color-scheme:dark){.mode-select input[type=radio]{background-color:#0f172a;border-color:#334155}}
/*# sourceMappingURL=main.cc71e488.css.map*/