:root,:root[data-theme=light]{--primary-color:#2d5016;--secondary-color:#4a7c59;--accent-color:#6b9080;--success-color:#52796f;--danger-color:#a44a3f;--background:#f5f7f3;--surface:#e8edea;--text-primary:#1a3025;--text-secondary:#4a5f4f;--border-color:#c8d8ce;--mono-font:"IBM Plex Mono","Courier New",Courier,monospace;--font-scale:1.05em}:root[data-theme=dark]{--primary-color:#7ab069;--secondary-color:#52796f;--accent-color:#84a98c;--success-color:#52796f;--danger-color:#d68c83;--background:#0d1b12;--surface:#1a2b1f;--text-primary:#e0eade;--text-secondary:#c8d8ce;--border-color:#2d4d3c}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--mono-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary);line-height:1.5;font-size:var(--font-scale);padding:20px;font-weight:1000;overflow-x:hidden}code{font-family:var(--mono-font);background:0 0;padding:0;font-size:1em}#root{min-height:100vh}.app{max-width:720px;min-height:100vh;margin:0 auto}.loading{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;display:flex}.loading-overlay{z-index:9999;font-family:var(--mono-font);background-color:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-overlay .loading{background-color:var(--background);border:1px solid var(--border-color);text-align:center;min-height:auto;padding:2rem}.loading-overlay .spinner{border-color:var(--border-color);border-top-color:var(--primary-color)}.loading-overlay .status-icon{margin-bottom:.5rem;font-size:48px;animation:.2s ease-out scaleIn}.loading-overlay .loading p{color:var(--text-primary);margin:0;font-size:14px;font-weight:400}.loading-overlay .loading.status-success p{color:var(--success-color)}.loading-overlay .loading.status-error p{color:var(--danger-color)}.spinner{border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes scaleIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.btn{font-family:var(--mono-font);border:3px solid var(--primary-color);color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;padding:12px 20px;font-size:1.1em;font-weight:400;line-height:1.6;text-decoration:none;transition:all .2s}.btn:hover:not(:disabled){background:var(--primary-color);color:var(--background)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{color:var(--text-primary);border-color:var(--primary-color);background-color:#0000}.btn-primary:hover:not(:disabled){background-color:var(--primary-color);color:var(--background)}.btn-secondary{border-color:var(--border-color);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--surface);border-color:var(--text-secondary)}.btn-success{color:var(--text-primary);border-color:var(--success-color);background-color:#0000}.btn-success:hover:not(:disabled){background-color:var(--success-color);color:var(--background)}.btn-large{width:100%}.btn-icon{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:.5rem;font-size:1.5rem}.btn-copy,.btn-refresh{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:.5rem;font-size:1.25rem;transition:transform .2s}.btn-copy:active,.btn-refresh:active{transform:scale(.9)}.form-group{margin-bottom:20px}.form-group label{color:var(--text-secondary);margin-bottom:8px;font-size:1em;font-weight:400;line-height:1.6;display:block}.form-group input{width:100%;font-size:1em;font-family:var(--mono-font);border:1px solid var(--border-color);background-color:var(--surface);color:var(--text-primary);border-radius:3px;padding:12px 15px;line-height:1.6;transition:all .2s}.form-group input:focus{border-color:var(--primary-color);background-color:var(--background);outline:none}.form-group input:disabled{opacity:.5;cursor:not-allowed}.form-group small{color:var(--text-secondary);margin-top:6px;font-size:.9em;line-height:1.6;display:block}@media (max-width:640px){body{font-size:16px}.btn{min-height:44px}}body{overscroll-behavior-y:contain}
