:root{--accent: #818cf8;--accent-hover: #6366f1;--accent-light: rgba(99, 102, 241, .15);--accent-glow: rgba(99, 102, 241, .3);--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-card: rgba(30, 41, 59, .7);--bg-card-hover: rgba(51, 65, 85, .5);--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border-color: rgba(148, 163, 184, .1);--success: #34d399;--danger: #f87171;--warning: #fbbf24;--glass-bg: rgba(15, 23, 42, .8);--gradient-primary: linear-gradient(135deg, #6366f1, #8b5cf6);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 6px rgba(0,0,0,.3);--shadow-lg: 0 10px 15px rgba(0,0,0,.3);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);height:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#app{min-height:100vh;max-width:420px;margin:0 auto;padding:var(--space-md)}h1{font-size:20px;font-weight:700}h2{font-size:18px;font-weight:600}a{color:var(--accent);text-decoration:none}.btn{display:block;width:100%;padding:14px 20px;border:none;border-radius:var(--radius);font-size:15px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all var(--transition);background:var(--gradient-primary);color:#fff;position:relative;overflow:hidden}.btn:hover,.btn:active{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.btn:disabled{opacity:.5;transform:none;box-shadow:none;cursor:not-allowed}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover,.btn-secondary:active{background:var(--bg-card-hover);box-shadow:var(--shadow-md)}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.input{display:block;width:100%;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-secondary);color:var(--text-primary);font-size:15px;font-family:var(--font);outline:none;transition:border-color var(--transition)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.input::placeholder{color:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-sm);transition:all var(--transition)}.card:hover{box-shadow:var(--shadow-md);border-color:#6366f133}.header{display:flex;align-items:center;gap:12px;padding:var(--space-sm) 0 var(--space-md);margin-bottom:var(--space-sm)}.header-title{font-size:22px;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);font-size:18px;cursor:pointer;transition:all var(--transition)}.back-btn:active{background:var(--bg-card-hover)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600}.status-badge.active{background:#34d39926;color:var(--success);border:1px solid rgba(52,211,153,.3)}.progress-bar{height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;background:var(--gradient-primary);transition:width .6s ease}.dashboard{display:flex;flex-direction:column;gap:var(--space-md)}.dashboard .card{margin-bottom:0}.dashboard .card p{color:var(--text-secondary);font-size:14px;line-height:1.6}.actions{display:flex;flex-direction:column;gap:10px;margin-top:var(--space-sm)}.proto-list{display:flex;flex-direction:column;gap:10px}.proto-card{cursor:pointer;transition:all var(--transition)}.proto-card:active{transform:scale(.98);border-color:var(--accent);box-shadow:var(--shadow-glow)}.proto-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600;background:var(--accent-light);color:var(--accent)}.config-box{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;padding:var(--space-md);line-height:1.7;white-space:pre-wrap;word-break:break-all;color:var(--text-secondary);max-height:300px;overflow-y:auto}.format-tabs{display:flex;gap:6px;margin-bottom:12px}.format-tab{flex:1;padding:8px 6px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:transparent;color:var(--text-muted);font-size:11px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition)}.format-tab.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent);font-weight:700}.qr-container{text-align:center;margin-bottom:var(--space-lg)}.qr-container svg{max-width:180px;height:auto;border-radius:var(--radius)}.chart{display:flex;align-items:flex-end;gap:6px;height:140px;padding-top:8px}.chart-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.chart-bar-label{font-size:10px;color:var(--text-muted);margin-bottom:4px}.chart-bar-fill{width:100%;min-height:4px;border-radius:3px 3px 0 0;background:var(--gradient-primary);opacity:.8;transition:height .3s ease}.form{display:flex;flex-direction:column;gap:var(--space-md)}.error-msg{padding:12px 16px;background:#f871711a;border:1px solid rgba(248,113,113,.3);color:var(--danger);border-radius:var(--radius-sm);font-size:14px}.hint{color:var(--text-muted);font-size:14px;text-align:center;margin-top:var(--space-sm)}.loading-screen,.error-screen,.retry-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--space-xl);gap:var(--space-md);text-align:center;color:var(--text-secondary)}.spinner{width:36px;height:36px;border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-logo{font-size:32px;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin-bottom:var(--space-sm)}.app-subtitle{color:var(--text-muted);font-size:14px;text-align:center;margin-bottom:var(--space-lg)}
