*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-disabled: #94a3b8;--color-error: #d32f2f;--color-error-bg: #fef2f2;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-background: #f8fafc;--color-surface: #ffffff;--color-text: #1e293b;--color-text-secondary: #64748b;--color-border: #e2e8f0;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--border-radius: 8px;--transition: .2s ease}body{font-family:var(--font-family);background-color:var(--color-background);color:var(--color-text);line-height:1.5;min-height:100vh}.app{max-width:600px;margin:0 auto;padding:1rem;min-height:100vh;display:flex;flex-direction:column}.app-header{text-align:center;padding:2rem 1rem}.app-header h1{font-size:2rem;font-weight:700;color:var(--color-primary);margin-bottom:.5rem}.app-header p{color:var(--color-text-secondary);font-size:1rem}.tab-navigation{display:flex;gap:0;background-color:var(--color-surface);border-radius:var(--border-radius);padding:4px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.tab-button{flex:1;padding:.75rem 1rem;border:none;background:transparent;color:var(--color-text-secondary);font-size:1rem;font-weight:500;cursor:pointer;border-radius:calc(var(--border-radius) - 2px);transition:all var(--transition)}.tab-button:hover{color:var(--color-text);background-color:var(--color-background)}.tab-button.active{background-color:var(--color-primary);color:#fff}.app-content{background-color:var(--color-surface);border-radius:var(--border-radius);padding:1.5rem;box-shadow:0 1px 3px #0000001a;flex:1}.input-group{margin-bottom:1rem}.input-group label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--color-text)}textarea{width:100%;min-height:120px;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-family:var(--font-family);font-size:1rem;resize:vertical;transition:border-color var(--transition),box-shadow var(--transition)}textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}textarea:disabled{background-color:var(--color-background);cursor:not-allowed}textarea::placeholder{color:var(--color-text-secondary)}.primary-button{width:100%;padding:.75rem 1rem;border:none;border-radius:var(--border-radius);background-color:var(--color-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color var(--transition)}.primary-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.primary-button:disabled{background-color:var(--color-primary-disabled);cursor:not-allowed}.error-display{margin-top:1rem;padding:.75rem;background-color:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--border-radius);color:var(--color-error);font-size:.875rem}.result-display{margin-top:1.5rem;padding:1rem;background-color:var(--color-success-bg);border-radius:var(--border-radius)}.result-display label{display:block;font-weight:600;margin-bottom:.75rem;color:var(--color-text)}.result-content{display:flex;flex-direction:column;gap:.75rem}.result-content code{display:block;padding:.75rem;background-color:#fff;border-radius:var(--border-radius);font-family:var(--font-mono);font-size:.875rem;word-break:break-all;white-space:pre-wrap;border:1px solid var(--color-border)}.decoded-text{padding:.75rem;background-color:#fff;border-radius:var(--border-radius);font-size:.875rem;white-space:pre-wrap;border:1px solid var(--color-border)}.copy-button{padding:.5rem 1rem;border:1px solid var(--color-success);border-radius:var(--border-radius);background-color:#fff;color:var(--color-success);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition);align-self:flex-start}.copy-button:hover{background-color:var(--color-success);color:#fff}@media (max-width: 480px){.app{padding:.75rem}.app-header{padding:1.5rem .5rem}.app-header h1{font-size:1.5rem}.app-content{padding:1rem}textarea{min-height:100px}}
