:root { color: #172033; background: #f4f6fa; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } * { box-sizing: border-box; } body { margin: 0; } button, input, select, textarea { font: inherit; } button { cursor: pointer; } .app-shell { min-height: 100vh; padding: 24px; } .workspace { width: 100%; max-width: 1200px; margin: 0 auto; } .topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; } .topbar-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; } .eyebrow { margin: 0 0 4px; color: #f05a28; font-size: 12px; font-weight: 800; text-transform: uppercase; } h1 { margin: 0; font-size: 28px; } .primary-action, .secondary-action, .icon-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 6px; border: 0; } .primary-action, .secondary-action, .mode-tab { min-width: 0; text-align: center; white-space: normal; } .primary-action { min-height: 40px; padding: 0 16px; color: #fff; background: #172033; } .primary-action:disabled { opacity: 0.65; cursor: wait; } .secondary-action { min-height: 34px; padding: 0 12px; color: #172033; background: #fff; border: 1px solid #d8dee9; text-decoration: none; } .icon-action { width: 30px; height: 30px; color: #596579; background: #fff; border: 1px solid #d8dee9; } .mode-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; } .mode-tab { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 12px; border: 1px solid #d8dee9; border-radius: 6px; color: #172033; background: #fff; font-weight: 750; } .mode-tab.is-active { color: #fff; background: #172033; border-color: #172033; } .main-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; } .source-pane { display: grid; gap: 12px; } .drop-zone { display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 10px; width: 100%; min-height: 68px; padding: 14px; border: 1px dashed #aab4c4; border-radius: 8px; background: #fff; } .drop-zone input { display: none; } .drop-zone.is-dragging { border-color: #f05a28; background: #fff7f3; } .source-status { display: flex; align-items: center; justify-content: space-between; min-height: 38px; padding: 0 4px; color: #596579; font-size: 13px; } .field { display: flex; flex-direction: column; gap: 8px; } .field span, .result-title { font-size: 13px; font-weight: 750; } input, select, textarea, .result-panel, .image-preview { width: 100%; max-width: 100%; border: 1px solid #d8dee9; border-radius: 8px; background: #fff; } input, select { height: 42px; padding: 0 12px; } textarea { min-height: 390px; padding: 14px; resize: vertical; line-height: 1.45; } .content.compact textarea { min-height: 260px; } .template-select { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; } .swatches { display: inline-flex; align-items: center; min-height: 42px; gap: 6px; } .swatch { width: 22px; height: 22px; border-radius: 999px; border: 1px solid #d8dee9; } .wide-action { width: fit-content; } .button-row { display: flex; align-items: center; gap: 10px; } .image-preview { display: flex; align-items: center; justify-content: center; min-height: 220px; overflow: hidden; } .image-preview img { display: block; max-width: 100%; max-height: 340px; object-fit: contain; } .result-panel { padding: 16px; min-height: 420px; } .result-title { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; } .muted { color: #596579; } .error { color: #b42318; } .notice { color: #137333; } .result { display: grid; gap: 10px; } .source-chip { display: inline-flex; width: fit-content; max-width: 100%; padding: 4px 8px; border-radius: 999px; color: #596579; background: #f4f6fa; font-size: 12px; overflow-wrap: anywhere; } .template-summary { margin: 0; color: #596579; font-size: 13px; line-height: 1.45; } .result a { display: inline-flex; align-items: center; gap: 8px; color: #1e6bff; font-weight: 700; text-decoration: none; } .spin { animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } @media (max-width: 860px) { .app-shell { padding: 16px; } .topbar { align-items: flex-start; flex-direction: column; } .topbar-actions { width: 100%; justify-content: flex-start; } .mode-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } .main-grid { grid-template-columns: 1fr; } .template-select { grid-template-columns: 1fr; } .drop-zone { grid-template-columns: auto 1fr; } .drop-zone .secondary-action { grid-column: 1 / -1; justify-self: start; } } @media (max-width: 520px) { .topbar-actions { display: grid; grid-template-columns: 1fr; } .topbar-actions > * { width: 100%; } .mode-tab { min-height: 48px; padding: 8px; line-height: 1.2; } .mode-tabs { grid-template-columns: 1fr; } }