:root{--primary-color: rgb(11, 99, 233);--primary-hover: rgb(8, 78, 186);--success-color: #10b981;--error-color: #ef4444;--warning-color: #f59e0b;--background-color: #ffffff;--border-color: #e2e8f0;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background-color);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100vh;display:flex;flex-direction:column}.container{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:1.875rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.header p{color:var(--text-secondary);font-size:1rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:500;color:var(--text-primary);margin-bottom:.5rem;font-size:.875rem}.form-control{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:.875rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background-color:var(--background-color);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.form-control.textarea{min-height:120px;resize:vertical}.form-control.select{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-primary:disabled{background-color:var(--text-muted);cursor:not-allowed}.btn-secondary{background-color:#f1f5f9;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:#e2e8f0}.result-section{margin-top:2rem;padding:1.5rem;background-color:#f8fafc;border:1px solid var(--border-color);border-radius:.5rem}.result-section h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.signature-display{background-color:#f8fafc;border:1px solid var(--border-color);border-radius:.375rem;padding:1rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;word-break:break-all;white-space:pre-wrap;color:var(--text-primary)}.verification-result{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:.375rem;font-weight:500}.verification-result.success{background-color:#dcfce7;color:#166534;border:1px solid #bbf7d0}.verification-result.error{background-color:#fef2f2;color:#dc2626;border:1px solid #fecaca}.verification-result.warning{background-color:#fffbeb;color:#d97706;border:1px solid #fed7aa}.icon{width:1.25rem;height:1.25rem;flex-shrink:0}.actions{display:flex;gap:1rem;margin-top:1.5rem}.copy-btn{background-color:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:.5rem;border-radius:.375rem;cursor:pointer;transition:all .2s ease}.copy-btn:hover{background-color:#f1f5f9;color:var(--text-primary)}.copy-btn:disabled{opacity:.5;cursor:not-allowed}.algorithm-selector{display:flex;gap:.5rem;margin-bottom:1rem}.algorithm-option{padding:.5rem 1rem;border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-secondary);border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease}.algorithm-option:hover{border-color:var(--primary-color);color:var(--primary-color)}.algorithm-option.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.error-message{color:var(--error-color);font-size:.875rem;margin-top:.5rem}.success-message{color:var(--success-color);font-size:.875rem;margin-top:.5rem}@media (max-width: 640px){.container{padding:1rem}.header h1{font-size:1.5rem}.actions{flex-direction:column}.algorithm-selector{flex-wrap:wrap}}
