*{box-sizing:border-box}:root{--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #f8f8f8;--text-primary: #333333;--text-secondary: #999999;--border-color: #dddddd;--shadow-color: rgba(0, 0, 0, .1);--link-color: #0066cc;--link-visited: #551a8b;--link-hover: #0052a3}:root.dark-mode{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #252525;--text-primary: #e0e0e0;--text-secondary: #888888;--border-color: #404040;--shadow-color: rgba(0, 0, 0, .3);--link-color: #6bb6ff;--link-visited: #b794f6;--link-hover: #8fccff}body{margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5;padding:2rem;background:var(--bg-primary);color:var(--text-primary);transition:background-color .3s,color .3s}a{color:var(--link-color);transition:color .3s}a:visited{color:var(--link-visited)}a:hover{color:var(--link-hover)}h1{margin:0 auto 2rem;font-size:2rem;font-weight:600;text-align:center;max-width:800px}#preamble{display:block;max-width:800px;margin:0 auto .5rem;font-weight:500;font-size:1.1rem}.form-row{display:block;max-width:800px;margin:0 auto 1rem}.editor-container{max-width:800px;margin:0 auto 1rem;display:flex;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);overflow:hidden;transition:background-color .3s,border-color .3s}.line-numbers{padding:1rem .5rem 1rem 1rem;background:var(--bg-tertiary);border-right:1px solid var(--border-color);font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.5;text-align:right;-webkit-user-select:none;user-select:none;color:var(--text-secondary);overflow:hidden;white-space:pre;transition:background-color .3s,border-color .3s,color .3s}#source-input{flex:1;font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.5;padding:1rem;border:none;resize:vertical;outline:none;overflow-y:auto;background:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s,color .3s}#app{background:var(--bg-secondary);padding:2rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow-color);max-width:800px;margin:0 auto;transition:background-color .3s,box-shadow .3s}.dark-mode-toggle{position:fixed;top:1rem;right:1rem;padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:14px;transition:background-color .3s,border-color .3s,color .3s}.dark-mode-toggle:hover{background:var(--bg-tertiary)}
