/* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary-color: #5dade2; --secondary-color: #3498db; --success-color: #2ecc71; --warning-color: #f39c12; --error-color: #e74c3c; --bg-color: #1a1a1a; --card-bg: #2d2d2d; --text-color: #e0e0e0; --text-muted: #999999; --border-color: #404040; --shadow: 0 2px 8px rgba(0, 0, 0, 0.4); } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; font-size: 16px; line-height: 1.6; color: var(--text-color); background-color: var(--bg-color); min-height: 100vh; } /* Container */ .container { max-width: 1200px; margin: 0 auto; padding: 1rem; } /* Header */ header { text-align: center; padding: 2rem 0; background: linear-gradient(135deg, #1e3a5f, #2c5f8d); color: white; border-radius: 8px; margin-bottom: 2rem; box-shadow: var(--shadow); } header h1 { font-size: 2rem; margin-bottom: 0.5rem; } header .subtitle { font-size: 1rem; opacity: 0.9; } /* Main Content */ main { display: flex; flex-direction: column; gap: 2rem; } /* Input Section */ .input-section { background: var(--card-bg); padding: 1.5rem; border-radius: 8px; box-shadow: var(--shadow); } .input-section label { display: block; font-weight: 600; margin-bottom: 0.5rem; color: var(--primary-color); } #dragon-code-input { width: 100%; padding: 1rem; font-size: 16px; font-family: 'Monaco', 'Courier New', monospace; border: 2px solid var(--border-color); border-radius: 4px; resize: vertical; min-height: 100px; transition: border-color 0.3s; background-color: #1a1a1a; color: var(--text-color); } #dragon-code-input:focus { outline: none; border-color: var(--secondary-color); } #dragon-code-input::placeholder { color: #666; } .auto-update-note { font-size: 0.9rem; color: var(--text-muted); font-style: italic; margin-top: 0.5rem; margin-bottom: 0.5rem; } .example-section { display: flex; gap: 0.5rem; margin-top: 1rem; flex-wrap: wrap; } .secondary-btn { padding: 0.75rem 1.5rem; font-size: 16px; background-color: var(--secondary-color); color: white; border: none; border-radius: 4px; cursor: pointer; transition: background-color 0.3s; min-height: 44px; } .secondary-btn:hover { background-color: #2980b9; } .secondary-btn:active { transform: translateY(1px); } /* Output Section */ .output-section { background: var(--card-bg); padding: 1.5rem; border-radius: 8px; box-shadow: var(--shadow); } .welcome-message { text-align: center; padding: 3rem 1rem; color: var(--text-muted); } .welcome-message p { margin-bottom: 0.5rem; } .welcome-message .hint { font-style: italic; font-size: 0.9rem; } /* Category Sections */ .category-section { margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 2px solid var(--border-color); } .category-section:last-child { border-bottom: none; } .category-section h2 { font-size: 1.5rem; color: var(--primary-color); margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 3px solid var(--secondary-color); } .category-content { display: flex; flex-direction: column; gap: 0.75rem; } /* Trait Items */ .trait-item { padding: 0.75rem; background: #1a1a1a; border-radius: 4px; border-left: 4px solid var(--success-color); } .trait-item.warning { border-left-color: var(--warning-color); background: #3a2f1a; } .trait-item.error { border-left-color: var(--error-color); background: #3a1a1a; } .trait-label { font-weight: 600; color: var(--primary-color); margin-bottom: 0.25rem; } .trait-value { color: var(--text-color); } .trait-tag { display: inline-block; font-family: 'Monaco', 'Courier New', monospace; font-size: 0.85rem; color: #999; background: #404040; padding: 0.2rem 0.5rem; border-radius: 3px; margin-top: 0.25rem; } /* Errors Section */ .errors-section { background: #3a1a1a; border: 2px solid var(--error-color); border-radius: 8px; padding: 1rem; margin-top: 1rem; } .errors-section h2 { color: var(--error-color); border-bottom-color: var(--error-color); } /* Utility Classes */ .hidden { display: none !important; } /* Footer */ footer { text-align: center; padding: 2rem 0; color: var(--text-muted); font-size: 0.9rem; } footer a { color: var(--secondary-color); text-decoration: none; transition: color 0.3s; } footer a:hover { color: var(--primary-color); text-decoration: underline; } /* Responsive Design */ @media (min-width: 768px) { .container { padding: 2rem; } header h1 { font-size: 2.5rem; } header .subtitle { font-size: 1.1rem; } .category-section h2 { font-size: 1.75rem; } .input-section, .output-section { padding: 2rem; } } @media (min-width: 1024px) { header h1 { font-size: 3rem; } .category-content { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; } }