:root { --primary-color: #00ff00; /* Terminal Green */ --secondary-color: #33ff33; --background-color: #121212; --surface-color: #1e1e1e; --text-color: #e0e0e0; --border-color: #333; --alert-error: #ff5555; --alert-warning: #ffb86c; --alert-info: #8be9fd; --font-mono: "Fira Code", "Courier New", Courier, monospace; } body { font-family: var(--font-mono); background-color: var(--background-color); color: var(--text-color); line-height: 1.6; margin: 0; padding: 0; } .container { max-width: 1400px; margin: 2rem auto; padding: 0 1.5rem; } header { text-align: left; margin-bottom: 3rem; border-bottom: 1px solid var(--border-color); padding-bottom: 1rem; } header h1 { font-size: 2rem; color: var(--primary-color); margin-bottom: 0.5rem; } header h1::before { content: "> "; } header p { color: #888; font-size: 1rem; } .editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; } section h2 { font-size: 1.1rem; margin-bottom: 1rem; color: var(--primary-color); text-transform: uppercase; letter-spacing: 1px; } section h2::before { content: "[ "; } section h2::after { content: " ]"; } textarea { width: 100%; height: 450px; padding: 1rem; background-color: var(--surface-color); color: var(--primary-color); border: 1px solid var(--border-color); border-radius: 4px; font-size: 1rem; font-family: var(--font-mono); resize: vertical; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); } textarea:focus { outline: none; border-color: var(--primary-color); } .markdown-output { background-color: #000; color: #f0f0f0; margin-bottom: 2rem; } button { display: flex; justify-content: center; align-items: center; width: 100%; padding: 0.75rem; margin-top: 1rem; background-color: transparent; color: var(--primary-color); border: 1px solid var(--primary-color); border-radius: 4px; font-size: 1rem; font-weight: 600; font-family: var(--font-mono); cursor: pointer; transition: all 0.2s ease; } button:hover:not(:disabled) { background-color: rgba(0, 255, 0, 0.1); box-shadow: 0 0 10px rgba(0, 255, 0, 0.2); } button:disabled { border-color: #444; color: #444; cursor: not-allowed; } .spinner { display: none; width: 18px; height: 18px; border: 2px solid rgba(0, 255, 0, 0.2); border-radius: 50%; border-top-color: var(--primary-color); animation: spin 0.8s linear infinite; margin-right: 12px; } @keyframes spin { to { transform: rotate(360deg); } } button.loading .spinner { display: inline-block; } .preview { background-color: var(--surface-color); padding: 1.5rem; border: 1px solid var(--border-color); border-radius: 4px; height: 450px; overflow-y: auto; color: #ccc; } .preview .placeholder { color: #555; font-style: italic; text-align: center; margin-top: 2rem; } .flashes { margin-bottom: 1.5rem; } .alert { padding: 0.75rem 1rem; border-radius: 4px; margin-bottom: 0.5rem; font-family: var(--font-mono); font-size: 0.9rem; } .alert.error { background-color: rgba(255, 85, 85, 0.1); color: var(--alert-error); border: 1px solid var(--alert-error); } .alert.warning { background-color: rgba(255, 184, 108, 0.1); color: var(--alert-warning); border: 1px solid var(--alert-warning); } .alert.info { background-color: rgba(139, 233, 253, 0.1); color: var(--alert-info); border: 1px solid var(--alert-info); } /* Markdown Preview Styles */ .preview h1, .preview h2, .preview h3 { color: var(--primary-color); border-bottom: none; padding-bottom: 0; } .preview h1 { font-size: 1.4rem; } .preview h2 { font-size: 1.2rem; } .preview blockquote { border-left: 2px solid var(--primary-color); padding-left: 1rem; color: #888; font-style: italic; margin-left: 0; } .preview pre { background-color: #000; padding: 1rem; border-radius: 4px; border: 1px solid #333; overflow-x: auto; } .preview code { font-family: var(--font-mono); background-color: #222; padding: 0.2rem 0.4rem; border-radius: 3px; color: #ff79c6; } @media (max-width: 992px) { .editor-grid { grid-template-columns: 1fr; } }