:root{--primary: #6366f1;--primary-hover: #4f46e5;--bg-dark: #0f172a;--bg-card: #1e293b;--text-main: #f8fafc;--text-dim: #94a3b8;--border: #334155;--success: #10b981;--error: #ef4444}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-dark);color:var(--text-main);line-height:1.5;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem 1rem}.container{width:100%;max-width:1200px;display:flex;flex-direction:column;gap:1.5rem}.dashboard-grid{display:grid;grid-template-columns:350px 1fr;gap:1.5rem;align-items:start}.sidebar,.main-content{display:flex;flex-direction:column;gap:1.5rem}@media (max-width: 900px){.dashboard-grid{grid-template-columns:1fr}}header{text-align:center;margin-bottom:2rem;animation:fadeIn .8s ease-out}h1{font-size:2.5rem;font-weight:800;background:linear-gradient(135deg,#a5b4fc,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:999px;font-size:.875rem;color:var(--success);transition:all .3s ease}.status-badge.disconnected{background:#ef44441a;border-color:#ef444433;color:var(--error)}.status-dot{width:8px;height:8px;border-radius:50%;background-color:currentColor;box-shadow:0 0 8px currentColor}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .2s}.card:hover{transform:translateY(-2px);border-color:var(--primary)}.card h2{font-size:1.25rem;margin-bottom:1rem;color:var(--text-main);border-bottom:1px solid var(--border);padding-bottom:.5rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.control-group{margin-bottom:1rem}label{display:block;font-size:.875rem;color:var(--text-dim);margin-bottom:.5rem}input[type=range]{width:100%;height:6px;background:var(--border);border-radius:3px;outline:none;appearance:none}input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:var(--primary);border-radius:50%;cursor:pointer;transition:transform .1s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}select,textarea,input[type=text]{width:100%;padding:.75rem;background:#0003;border:1px solid var(--border);border-radius:.5rem;color:var(--text-main);font-size:.875rem;font-family:inherit;transition:border-color .2s}select:focus,textarea:focus,input:focus{outline:none;border-color:var(--primary)}.file-drop{border:2px dashed var(--border);border-radius:.75rem;padding:2rem;text-align:center;cursor:cursor;transition:all .2s;position:relative;overflow:hidden}.file-drop:hover{border-color:var(--primary);background:#6366f10d}.file-drop input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.preview-container{margin-top:1rem;border-radius:.5rem;overflow:hidden;background:#fff;min-height:50px;display:flex;justify-content:center;align-items:center}.preview-container canvas{max-width:100%;height:auto}.preview-container img{max-width:100%;max-height:300px}.btn{width:100%;padding:.875rem;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;justify-content:center;align-items:center;gap:.5rem}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 0 15px #6366f166}.btn-danger{background:#ef444433;color:var(--error);border:1px solid rgba(239,68,68,.2)}.btn-danger:hover{background:#ef44444d}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 600px){h1{font-size:2rem}.grid{grid-template-columns:1fr}}input[type=number]{width:100%;padding:.75rem;background:#0003;border:1px solid var(--border);border-radius:.5rem;color:var(--text-main);font-size:.875rem;font-family:inherit;transition:border-color .2s}input[type=number]:focus{outline:none;border-color:var(--primary)}.btn-group{display:flex;gap:.5rem;margin-bottom:.5rem}.btn-sm{padding:.5rem;font-size:.875rem;width:auto;flex:1;background:#0003;border:1px solid var(--border);color:var(--text-dim)}.btn-sm:hover{border-color:var(--primary);color:var(--text-main)}.btn-sm.active{background:var(--primary);color:#fff;border-color:var(--primary)}
