.dialog-generator-page { min-height: 100%; overflow: auto; background: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(0, 255, 136, 0.04) 0%, transparent 70%), radial-gradient(ellipse 60% 50% at 80% 70%, rgba(42, 159, 212, 0.03) 0%, transparent 60%), linear-gradient(180deg, #070b10 0%, #05080d 100%); color: #e8eaef; } .dialog-generator-shell { display: grid; grid-template-columns: minmax(300px, 0.42fr) minmax(0, 0.58fr); gap: clamp(18px, 2.8vw, 34px); min-height: var(--shell-content-height, 100vh); padding: clamp(24px, 4vw, 52px); } .dialog-generator-panel, .dialog-generator-preview-card { border: 1px solid rgba(0, 255, 136, 0.12); border-radius: 8px; background: rgba(255, 255, 255, 0.04); box-shadow: 0 24px 72px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.04); backdrop-filter: blur(18px); } .dialog-generator-panel { display: grid; align-content: start; gap: 24px; padding: clamp(22px, 2.6vw, 34px); } .dialog-generator-heading { display: grid; gap: 12px; } .dialog-generator-kicker { color: #00ff88; font-size: 12px; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; } .dialog-generator-heading h1 { margin: 0; background: linear-gradient(135deg, #00ff88, #22f0c0, #4fc3f7); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: clamp(32px, 3.6vw, 56px); font-weight: 950; letter-spacing: 0; line-height: 1.1; } .dialog-generator-heading p, .dialog-generator-hint, .dialog-generator-preview-head p { margin: 0; color: #9aa1b8; font-size: 15px; font-weight: 650; line-height: 1.7; } .dialog-generator-section { display: grid; gap: 12px; } .dialog-generator-section h2 { margin: 0; color: #f6f8fb; font-size: 18px; font-weight: 900; } .dialog-generator-drop { display: grid; justify-items: center; gap: 8px; min-height: 168px; border: 1px dashed rgba(0, 255, 136, 0.28); border-radius: 8px; background: rgba(0, 255, 136, 0.035); color: #e8eaef; padding: 24px; cursor: pointer; transition: border-color 180ms ease, background 180ms ease, transform 180ms ease; } .dialog-generator-drop:hover { border-color: rgba(0, 255, 136, 0.5); background: rgba(0, 255, 136, 0.06); transform: translateY(-1px); } .dialog-generator-drop-icon { font-size: 42px; } .dialog-generator-drop strong { font-size: 16px; font-weight: 900; } .dialog-generator-drop small, .dialog-generator-style small { color: #62697f; font-size: 13px; font-weight: 700; } .dialog-generator-style-list { display: grid; gap: 10px; } .dialog-generator-color-picker { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .dialog-generator-color { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 38px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; background: rgba(255, 255, 255, 0.04); color: #dce3ed; cursor: pointer; font-size: 13px; font-weight: 850; transition: border-color 180ms ease, background 180ms ease, transform 180ms ease; } .dialog-generator-color:hover, .dialog-generator-color.is-active { border-color: var(--text-color); background: rgba(255, 255, 255, 0.08); transform: translateY(-1px); } .dialog-generator-color span { width: 14px; height: 14px; border: 1px solid rgba(255, 255, 255, 0.38); border-radius: 50%; background: var(--text-color); box-shadow: 0 0 12px color-mix(in srgb, var(--text-color) 42%, transparent); } .dialog-generator-color strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dialog-generator-style { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 14px; border: 1px solid rgba(0, 255, 136, 0.08); border-radius: 8px; background: rgba(255, 255, 255, 0.04); color: #e8eaef; padding: 15px 18px; text-align: left; cursor: pointer; transition: border-color 180ms ease, background 180ms ease, transform 180ms ease; } .dialog-generator-style:hover { border-color: rgba(0, 255, 136, 0.28); background: rgba(255, 255, 255, 0.06); transform: translateX(3px); } .dialog-generator-style span:last-child { display: grid; gap: 4px; min-width: 0; } .dialog-generator-style strong { color: #f7fafc; font-size: 16px; font-weight: 900; } .dialog-generator-swatch { width: 14px; height: 14px; border-radius: 4px; } .dialog-generator-swatch.is-white { border: 1px solid #cbd5e1; background: #ffffff; } .dialog-generator-swatch.is-blue { background: #165dff; } .dialog-generator-swatch.is-amber { background: #f59e0b; } .dialog-generator-swatch.is-gray { background: #6b7280; } .dialog-generator-clear { min-height: 48px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; background: rgba(255, 255, 255, 0.08); color: #e8eaef; cursor: pointer; font-size: 15px; font-weight: 900; transition: border-color 180ms ease, background 180ms ease; } .dialog-generator-clear:hover { border-color: rgba(255, 77, 103, 0.32); background: rgba(255, 77, 103, 0.1); } .dialog-generator-preview-card { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 16px; min-width: 0; min-height: 0; padding: clamp(22px, 2.6vw, 34px); } .dialog-generator-preview-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; } .dialog-generator-preview-head span { color: #00ff88; font-size: 12px; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; } .dialog-generator-preview-head h2 { margin: 4px 0 0; color: #ffffff; font-size: clamp(24px, 2vw, 34px); font-weight: 950; } .dialog-generator-preview-head p { max-width: 440px; text-align: right; } .dialog-generator-preview { position: relative; min-height: 520px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px), rgba(5, 8, 13, 0.72); background-size: 32px 32px, 32px 32px, auto; touch-action: none; } .dialog-generator-image { position: absolute; inset: 0; background-position: center; background-repeat: no-repeat; background-size: contain; } .dialog-generator-empty { position: absolute; inset: 0; display: grid; place-content: center; gap: 12px; color: #62697f; text-align: center; pointer-events: none; } .dialog-generator-empty span { font-size: 52px; } .dialog-generator-empty p { margin: 0; font-size: 16px; font-weight: 800; } .dialog-generator-bubble { position: absolute; z-index: 10; min-width: 140px; max-width: 280px; border-radius: 12px; padding: 12px 14px; user-select: none; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12); transition: box-shadow 0.2s; } .dialog-generator-bubble.is-confirmed { min-width: 0; max-width: min(420px, 80%); border: 0; border-radius: 0; background: transparent; padding: 0; box-shadow: none; cursor: move; } .dialog-generator-bubble:hover { box-shadow: 0 6px 32px rgba(0, 0, 0, 0.18); } .dialog-generator-bubble.is-confirmed:hover { box-shadow: none; } .dialog-generator-bubble.is-dragging { z-index: 20; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.22); } .dialog-generator-bubble.is-confirmed.is-dragging { box-shadow: none; } .dialog-generator-bubble.style1 { border: 2px solid #cbd5e1; background: rgba(255, 255, 255, 0.97); } .dialog-generator-bubble.style2 { border: 2px solid #4f8aff; border-radius: 16px 16px 4px 16px; background: rgba(22, 93, 255, 0.95); } .dialog-generator-bubble.style3 { border: 2px solid #f59e0b; background: rgba(255, 247, 237, 0.97); } .dialog-generator-bubble.style4 { border: 2px solid #6b7280; border-radius: 4px; background: rgba(248, 250, 252, 0.97); } .dialog-generator-bubble.is-confirmed.style1, .dialog-generator-bubble.is-confirmed.style2, .dialog-generator-bubble.is-confirmed.style3, .dialog-generator-bubble.is-confirmed.style4 { border: 0; background: transparent; } .dialog-generator-delete { position: absolute; top: -8px; right: -8px; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 2px solid #fff; border-radius: 50%; background: #ef4444; color: #fff; cursor: pointer; font-size: 13px; line-height: 1; opacity: 0; transition: opacity 0.15s; z-index: 5; } .dialog-generator-bubble:hover .dialog-generator-delete { opacity: 1; } .dialog-generator-text, .dialog-generator-text-display { width: 100%; border: 0; outline: none; background: transparent; color: var(--dialog-text-color, #1e293b); padding: 0; resize: none; font-family: inherit; font-size: 14px; line-height: 1.6; white-space: pre-wrap; } .dialog-generator-text-display { width: max-content; max-width: min(420px, 80vw); color: var(--dialog-text-color, #ffffff); font-size: clamp(18px, 2.2vw, 30px); font-weight: 900; line-height: 1.35; letter-spacing: 0; overflow-wrap: anywhere; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.72), 0 0 1px rgba(0, 0, 0, 0.9); } .dialog-generator-text::placeholder { color: rgba(0, 0, 0, 0.3); } .dialog-generator-bubble.style2 .dialog-generator-text, .dialog-generator-bubble.style2 .dialog-generator-text-display { color: var(--dialog-text-color, #fff); } .dialog-generator-bubble.is-confirmed.style2 .dialog-generator-text-display { color: var(--dialog-text-color, #7fb4ff); } .dialog-generator-bubble.style2 .dialog-generator-text::placeholder { color: rgba(255, 255, 255, 0.62); } .dialog-generator-bubble.style3 .dialog-generator-text, .dialog-generator-bubble.style3 .dialog-generator-text-display { color: var(--dialog-text-color, #92400e); } .dialog-generator-bubble.is-confirmed.style3 .dialog-generator-text-display { color: var(--dialog-text-color, #ffd76a); } .dialog-generator-bubble.style3 .dialog-generator-text::placeholder { color: rgba(146, 64, 14, 0.4); } .dialog-generator-bubble.style4 .dialog-generator-text, .dialog-generator-bubble.style4 .dialog-generator-text-display { color: var(--dialog-text-color, #1f2937); } .dialog-generator-bubble.is-confirmed.style4 .dialog-generator-text-display { color: var(--dialog-text-color, #111827); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.72), 0 0 8px rgba(255, 255, 255, 0.58); } .dialog-generator-bubble-bottom { display: flex; align-items: center; justify-content: flex-end; margin-top: 6px; } .dialog-generator-confirm { display: inline-flex; align-items: center; gap: 4px; border: 0; border-radius: 6px; background: #165dff; color: #fff; cursor: pointer; padding: 4px 12px; font-size: 12px; font-weight: 700; transition: filter 0.15s, transform 0.15s; } .dialog-generator-confirm:hover { filter: brightness(1.1); transform: translateY(-1px); } .dialog-generator-bubble.style2 .dialog-generator-confirm { background: #fff; color: #165dff; } .dialog-generator-bubble.style3 .dialog-generator-confirm { background: #f59e0b; } .dialog-generator-bubble.style4 .dialog-generator-confirm { background: #6b7280; } .dialog-generator-edit-hint { display: none; color: rgba(0, 0, 0, 0.36); font-size: 10px; font-weight: 700; } .dialog-generator-bubble.is-confirmed .dialog-generator-confirm { display: none; } .dialog-generator-bubble.is-confirmed .dialog-generator-edit-hint { display: inline-block; } @media (max-width: 980px) { .dialog-generator-shell { grid-template-columns: 1fr; } .dialog-generator-preview-head { align-items: start; flex-direction: column; } .dialog-generator-preview-head p { max-width: none; text-align: left; } } @media (max-width: 560px) { .dialog-generator-shell { padding: 18px; } .dialog-generator-preview { min-height: 420px; } }