:root{--primary-color:#3498db;--primary-dark:#2980b9;--secondary-color:#e74c3c;--text-color:#333;--background-color:#f5f8fa;--card-background:#ffffff;--border-color:#ddd;--input-background:#ffffff;--success-color:#2ecc71;--warning-color:#f39c12;--error-color:#e74c3c;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--box-shadow:0 4px 6px rgba(0,0,0,0.1);--border-radius:8px;--transition:all 0.3s ease}.dark-mode{--primary-color:#3498db;--primary-dark:#2980b9;--secondary-color:#e74c3c;--text-color:#f5f8fa;--background-color:#121212;--card-background:#1e1e1e;--border-color:#333;--input-background:#2a2a2a;--success-color:#2ecc71;--warning-color:#f39c12;--error-color:#e74c3c;--box-shadow:0 4px 6px rgba(0,0,0,0.3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);line-height:1.6;color:var(--text-color);background-color:var(--background-color);transition:var(--transition);min-height:100vh}.json-encoder-container{max-width:800px;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:1.5rem}@media(max-width:600px){.json-encoder-container{padding:1rem;gap:1rem}}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.header h1{font-size:2rem;font-weight:700;color:var(--primary-color)}@media(max-width:480px){.header h1{font-size:1.5rem}}.theme-toggle{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:var(--transition)}.theme-toggle:hover{background-color:rgba(0,0,0,.1)}.dark-mode .theme-toggle:hover{background-color:hsla(0,0%,100%,.1)}.description{margin-bottom:1rem;font-size:1rem;color:var(--text-color);opacity:.8}.input-section,.output-section{display:flex;flex-direction:column;gap:.5rem;background-color:var(--card-background);padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow)}@media(max-width:600px){.input-section,.output-section{padding:1rem}}.input-section label,.output-section label{font-weight:600;margin-bottom:.5rem}.output-container,.textarea-container{position:relative;width:100%}textarea{width:100%;min-height:150px;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);font-family:monospace;font-size:.9rem;resize:vertical;background-color:var(--input-background);color:var(--text-color);transition:var(--transition)}textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(52,152,219,.2)}textarea::placeholder{color:var(--text-color);opacity:.5}textarea[aria-invalid=true]{border-color:var(--error-color)}.textarea-actions{display:flex;gap:.5rem;margin-top:.75rem;justify-content:flex-end}.action-button{background-color:var(--card-background);color:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--border-radius);padding:.5rem 1rem;font-size:.9rem;cursor:pointer;transition:var(--transition)}.action-button:hover{background-color:var(--primary-color);color:#fff}.action-button:focus{outline:none;box-shadow:0 0 0 2px rgba(52,152,219,.4)}@media(max-width:480px){.action-button{padding:.4rem .75rem;font-size:.8rem}}.copy-button{position:absolute;bottom:.75rem;right:.75rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);padding:.5rem 1rem;font-size:.9rem;cursor:pointer;transition:var(--transition)}.copy-button:hover:not(:disabled){background-color:var(--primary-dark)}.copy-button:disabled{opacity:.5;cursor:not-allowed}.copy-button.copied{background-color:var(--success-color)}@media(max-width:480px){.copy-button{padding:.4rem .75rem;font-size:.8rem}}.validation-message{margin-top:.5rem;font-size:.9rem}.validation-message.error{color:var(--error-color)}.validation-message.warning{color:var(--warning-color)}.usage-guide{background-color:var(--card-background);padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow)}@media(max-width:600px){.usage-guide{padding:1rem}}.usage-guide h2{font-size:1.25rem;margin-bottom:1rem;color:var(--primary-color)}.usage-guide ol{margin-left:1.5rem}.usage-guide ol li{margin-bottom:.5rem}footer{margin-top:2rem;text-align:center;font-size:.9rem;opacity:.7;padding:1rem 0}@media(max-width:480px){.json-encoder-container{padding:.75rem}.input-section,.output-section,.usage-guide{padding:1rem}textarea{min-height:120px}}button:focus,textarea:focus{outline:2px solid var(--primary-color);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}