:root { --background: hsl(0 0% 3.9%); --foreground: hsl(0 0% 98%); --card: hsl(0 0% 12%); --card-foreground: hsl(0 0% 98%); --popover: hsl(0 0% 3.9%); --popover-foreground: hsl(0 0% 98%); --primary: hsl(0 0% 98%); --primary-foreground: hsl(0 0% 9%); --secondary: hsl(0 0% 14.9%); --secondary-foreground: hsl(0 0% 98%); --muted: hsl(0 0% 14.9%); --muted-foreground: hsl(0 0% 63.9%); --accent: hsl(0 0% 14.9%); --accent-foreground: hsl(0 0% 98%); --border: hsl(0 0% 14.9%); --input: hsl(0 0% 14.9%); --ring: hsl(0 0% 83.1%); --radius: 0.5rem; } body { background-color: var(--background); color: var(--foreground); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 2rem; } .container { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: 1.5rem; } .header { text-align: center; } .header-title { font-size: 2rem; font-weight: 700; letter-spacing: -0.02em; margin: 0; } .header-subtitle { color: var(--muted-foreground); font-size: 1rem; margin-top: 0.25rem; } .card { background-color: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; } .controls { display: flex; flex-direction: column; gap: 1.5rem; } .control-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; } .control-group { display: flex; flex-direction: column; gap: 0.75rem; } label { font-size: 0.875rem; font-weight: 500; } .input-base { background-color: var(--background); border: 1px solid var(--border); border-radius: calc(var(--radius) - 2px); color: var(--foreground); padding: 0.5rem 0.75rem; height: 2.5rem; } select.input-base { -webkit-appearance: none; appearance: none; padding-right: 2rem; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='hsl(0 0% 63.9%)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3e%3cpath d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 0.5rem center; background-size: 1em 1em; } .generate-action { border-top: 1px solid var(--border); padding-top: 1.5rem; text-align: right; } .btn { display: inline-flex; align-items: center; justify-content: center; border-radius: calc(var(--radius) - 2px); font-size: 0.875rem; font-weight: 600; padding: 0.5rem 1rem; transition: all 0.2s; cursor: pointer; border: none; } .btn-primary { background-color: var(--primary); color: var(--primary-foreground); } .btn-primary:hover { background-color: hsl(0 0% 98% / 0.9); } .editor-wrapper { position: relative; padding: 0; } #editor, #suggestion-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-sizing: border-box; font-family: 'SF Mono', 'Fira Code', 'Courier New', monospace; font-size: 1rem; line-height: 1.7; background-color: transparent; border: none; overflow: hidden; resize: none; padding: 1.5rem; min-height: 300px; } #editor { z-index: 2; color: var(--foreground); } #editor:focus { outline: none; } #editor::placeholder { color: var(--muted-foreground); } #suggestion-overlay { z-index: 1; color: var(--muted-foreground); pointer-events: none; } .status-bar { text-align: center; font-size: 0.8rem; color: var(--muted-foreground); display: flex; gap: 0.5rem; justify-content: center; } #status.fetching { color: var(--foreground); }