:root{--text:#1d2130;--text-muted:#5b6472;--bg:#eef0f4;--panel-bg:#fff;--border:#d9dce3;--accent:#2f3374;--accent-hover:#23265c;--accent-soft:#e7e8f4;--error:#c0392b;--error-bg:#fdecea;--card-shadow:0 10px 24px #14182d14;--radius-lg:16px;color:var(--text);background:var(--bg);font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}button{font:inherit;cursor:pointer;background:var(--accent);color:#fff;white-space:nowrap;border:none;border-radius:6px;padding:10px 18px;transition:background .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.link-button{color:var(--text-muted);background:0 0;padding:4px 8px;text-decoration:underline}.link-button:hover:not(:disabled){color:var(--text);background:0 0}.step-number{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11.5px;font-weight:700;display:inline-flex}.panel-title{color:var(--text);align-items:center;gap:10px;margin:0;font-size:15px;font-weight:700;display:flex}.api-key-gate{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.landing{grid-template-columns:1.15fr 1fr;min-height:100vh;display:grid}.landing__marketing{color:#f2f3f8;background:linear-gradient(165deg,#12162b 0%,#1b2040 100%);flex-direction:column;justify-content:center;gap:32px;padding:56px 48px;display:flex}.landing__brand{letter-spacing:-.2px;color:#f2f3f8;align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.landing__brand-mark{background:var(--accent-soft);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:flex}.landing__marketing .landing__brand-mark{background:#ffffff1f}.landing__hero h1{letter-spacing:-.6px;color:inherit;margin:0 0 14px;font-size:30px;font-weight:700;line-height:1.38}.landing__accent{color:#9b93ff}.landing__hero p{color:#f2f3f8b3;max-width:460px;margin:0;font-size:14.5px;line-height:1.7}.landing__features{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.landing__features li{background:#ffffff0b;border:1px solid #ffffff17;border-radius:14px;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.landing__feature-icon{background:var(--accent-soft);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:flex}.landing__marketing .landing__feature-icon{background:#ffffff1a}.landing__features h3{color:inherit;margin:0 0 3px;font-size:14px;font-weight:700}.landing__features p{color:#f2f3f89e;margin:0;font-size:12.5px;line-height:1.55}.landing__steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.landing__steps li{color:#f2f3f8e0;align-items:center;gap:10px;font-size:13.5px;font-weight:500;display:flex}.landing__auth{background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex}@media (width<=900px){.landing{grid-template-columns:1fr}.landing__marketing{gap:24px;padding:40px 28px}.landing__hero h1{font-size:24px}}.api-key-form{background:var(--panel-bg);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:36px 32px;display:flex;box-shadow:0 24px 48px #0f0f2814}.api-key-form h1,.api-key-form h2{margin:0;font-size:22px}.api-key-form__subtitle{color:var(--text-muted);margin:-6px 0 4px;font-size:13.5px}.api-key-form input:not([type=checkbox]){font:inherit;border:1px solid var(--border);border-radius:8px;padding:11px 13px;transition:border-color .15s}.api-key-form input:not([type=checkbox]):focus{border-color:var(--accent);outline:none}.remember-label{color:var(--text-muted);align-items:center;gap:8px;display:flex}.oauth-buttons{flex-direction:column;gap:8px;display:flex}.oauth-button{border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.oauth-button--google{color:#3c4043;border:1px solid var(--border);background:#fff}.oauth-button--google:hover:not(:disabled){background:#f7f7f8}.oauth-button--kakao{color:#000000d9;background:#fee500}.oauth-button--kakao:hover:not(:disabled){background:#fada0a}.oauth-consent-note{color:var(--text-muted);text-align:center;margin:0;font-size:11.5px;line-height:1.5}.oauth-consent-note .link-button{font-size:inherit;padding:0}.auth-divider{color:var(--text-muted);align-items:center;gap:10px;margin:2px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.security-note{color:var(--text-muted);margin:0;font-size:13px;line-height:1.5}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--panel-bg);z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;row-gap:8px;padding:14px 28px;display:flex;position:sticky;top:0;box-shadow:0 2px 12px #18143c08}.app-header__brand{align-items:center;gap:10px;display:flex}.app-header h1{letter-spacing:-.2px;margin:0;font-size:18px;font-weight:700}.app-header__version{color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:600;position:relative}.app-header__version:hover{background:#dedfef}.app-header__version-dot{background:var(--error);border:1.5px solid var(--panel-bg);border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.app-header__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}@media (width<=640px){.app-header{padding:12px 16px}.app-header h1{font-size:16px}.app-header__actions{justify-content:space-between;gap:6px;width:100%}.app-header__actions .secondary-button,.app-header__actions .link-button{text-align:center;flex:1 1 0;padding:8px 4px;font-size:12.5px}}.app-main{flex:1;grid-template-columns:1fr 1fr;gap:20px;padding:24px 28px;display:grid}@media (width<=800px){.app-main{grid-template-columns:1fr}}.app-footer{border-top:1px solid var(--border);justify-content:center;gap:8px;padding:12px 24px;display:flex}.left-column{flex-direction:column;gap:20px;display:flex}.input-panel,.chat-panel,.preview-panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);flex-direction:column;gap:14px;padding:22px;display:flex}.input-panel{min-height:260px}.chat-panel{min-height:160px}.chat-panel--disabled{min-height:auto}.preview-panel{min-height:640px}.input-panel textarea,.chat-panel textarea{resize:none;font:inherit;border:1px solid var(--border);border-radius:10px;flex:1;padding:12px;transition:border-color .15s}.input-panel textarea:focus,.chat-panel textarea:focus{border-color:var(--accent);outline:none}.input-panel textarea{min-height:160px}.chat-panel textarea{min-height:80px}.intensity-selector{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.intensity-selector__label{color:var(--text-muted);font-size:12.5px;font-weight:600}.intensity-selector__options{background:var(--bg);border:1px solid var(--border);border-radius:8px;gap:4px;padding:3px;display:flex}.intensity-option{color:var(--text-muted);background:0 0;border-radius:6px;padding:5px 10px;font-size:12.5px;font-weight:600;position:relative}.intensity-option[data-tooltip]:hover:after,.intensity-option[data-tooltip]:focus-visible:after{content:attr(data-tooltip);background:var(--text);color:#fff;white-space:normal;text-align:left;z-index:10;pointer-events:none;width:max-content;max-width:220px;box-shadow:var(--card-shadow);border-radius:6px;padding:7px 10px;font-size:11.5px;font-weight:500;line-height:1.4;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.intensity-option:hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.intensity-option--active,.intensity-option--active:hover:not(:disabled){background:var(--accent);color:#fff}.cta-fields{flex-direction:column;gap:10px;display:flex}.cta-fields__item{flex-direction:column;gap:4px;display:flex}.cta-fields__row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cta-fields__row input{font:inherit;border:1px solid var(--border);border-radius:8px;flex:160px;padding:8px 10px;font-size:13px}.cta-fields__row input:focus{border-color:var(--accent);outline:none}.cta-fields__row .remove-attachment{flex-shrink:0;position:static}.cta-fields__actions{align-items:center;gap:4px;display:flex}.chat-actions,.preview-actions{flex-wrap:wrap;gap:10px;display:flex}.secondary-button{color:var(--accent);border:1px solid var(--accent);background:0 0}.secondary-button:hover:not(:disabled){background:var(--accent);color:#fff}.attachment-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.attachment-list li{position:relative}.attachment-list img{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:56px;height:56px;display:block}.remove-attachment{background:var(--error);border-radius:50%;width:18px;height:18px;padding:0;font-size:12px;line-height:1;position:absolute;top:-6px;right:-6px}.source-file-chip{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;min-height:160px;padding:12px 14px;display:flex}.source-file-chip__icon{font-size:22px}.source-file-chip__name{color:var(--text);word-break:break-all;flex:1;font-size:13.5px}.source-file-chip .remove-attachment{flex-shrink:0;position:static}.brand-logo-chip{border:1px solid var(--border);background:var(--bg);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:flex}.brand-logo-chip__thumb{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:4px;width:32px;height:32px}.brand-logo-chip__name{color:var(--text);word-break:break-all;flex:1;font-size:13px}.brand-logo-chip .remove-attachment{flex-shrink:0;position:static}.attach-warning{color:var(--error);margin:0;font-size:13px}.chat-panel__hint{color:var(--text-muted);margin:-8px 0 0;font-size:12px}.textarea-with-mic{flex:1;display:flex;position:relative}.textarea-with-mic textarea{flex:1}.mic-button-wrap{pointer-events:none;flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;bottom:10px;right:10px}.mic-button-row{pointer-events:none;align-items:center;gap:6px;display:flex}.mic-undo-button{pointer-events:auto;background:var(--panel-bg);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;box-shadow:var(--card-shadow);border-radius:999px;padding:6px 10px;font-size:11.5px}.mic-undo-button:hover:not(:disabled){background:var(--bg);color:var(--text)}.mic-button{pointer-events:auto;background:var(--accent-soft);width:34px;height:34px;color:var(--accent);box-shadow:var(--card-shadow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:flex}.mic-button:hover:not(:disabled){background:var(--accent-soft);opacity:.85}.mic-button--active{background:var(--error);color:#fff;animation:1.4s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #c0392b59}50%{box-shadow:0 0 0 8px #c0392b00}}@media (prefers-reduced-motion:reduce){.mic-button--active{animation:none}}.mic-button__interim{max-width:240px;color:var(--text-muted);background:var(--panel-bg);border:1px solid var(--border);text-align:right;white-space:nowrap;text-overflow:ellipsis;border-radius:8px;padding:3px 8px;font-size:11.5px;overflow:hidden}.mic-button__error{max-width:220px;color:var(--error);background:var(--error-bg);text-align:right;border-radius:8px;padding:3px 8px;font-size:11.5px}.preview-header{justify-content:space-between;align-items:center;display:flex}.view-tabs{gap:4px;display:flex}.tab{color:var(--text-muted);border:1px solid var(--border);background:0 0;padding:4px 12px;font-size:13px}.tab--active{background:var(--accent);color:#fff;border-color:var(--accent)}.preview-frame{border:1px solid var(--border);background:#fff;border-radius:6px;flex:1;width:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.generating-skeleton{border:1px solid var(--border);background:#fff;border-radius:6px;flex-direction:column;flex:1;gap:10px;padding:20px;display:flex}.skeleton-line,.skeleton-block{background:linear-gradient(90deg, var(--accent-soft) 25%, #f2f2f8 37%, var(--accent-soft) 63%);background-size:400% 100%;border-radius:6px;animation:1.6s ease-in-out infinite skeleton-shimmer}.skeleton-line{height:14px}.skeleton-line--title{width:45%;height:22px;margin-bottom:6px}.skeleton-line--wide{width:95%}.skeleton-line--medium{width:75%}.skeleton-line--narrow{width:55%}.skeleton-block{width:100%;height:120px;margin:4px 0}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton-line,.skeleton-block{animation:none}}.placeholder{color:var(--text-muted)}.error-message{color:var(--error);background:var(--error-bg);border-radius:6px;padding:12px}.warning-list{color:#8a6d00;background:#fff8e1;border-radius:6px;margin:0;padding:8px 12px 8px 28px;font-size:13px;list-style:outside}.design-badge{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.design-badge__swatches{gap:4px;display:inline-flex}.design-badge__swatch{border:1px solid #00000026;border-radius:50%;width:12px;height:12px;display:inline-block}.style-memory{flex-direction:column;gap:4px;display:flex}.style-memory__row{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.style-memory__row select{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;padding:6px 8px;font-size:13px}.template-gallery{flex-direction:column;gap:10px;display:flex}.template-gallery__header{justify-content:space-between;align-items:center;display:flex}.template-gallery__title{color:var(--text-muted);font-size:13px;font-weight:600}.template-gallery__grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.template-card{text-align:left;background:var(--bg);color:var(--text);border:1px solid var(--border);white-space:normal;border-radius:10px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.template-card:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.template-card__title{font-size:13px;font-weight:700}.template-card__desc{color:var(--text-muted);font-size:11.5px}.share-box{border:1px solid var(--border);background:#f8f8fb;border-radius:6px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.share-box__row{gap:8px;display:flex}.share-box__input{border:1px solid var(--border);background:#fff;border-radius:6px;flex:1;padding:8px 10px;font:13px ui-monospace,Consolas,monospace}.shared-view__menu-toggle{display:none}@media (width<=640px){.shared-view__header{row-gap:0;padding:8px 14px}.shared-view__header h1{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:14px;overflow:hidden}.shared-view__menu-toggle{background:var(--accent-soft);color:var(--accent);flex:none;padding:6px 10px;font-size:12.5px;display:inline-flex}.shared-view__menu-toggle:hover{background:var(--accent-soft)}.shared-view__header .app-header__actions{flex-basis:100%;gap:0;max-height:0;overflow:hidden}.shared-view__header--open .app-header__actions{gap:6px;max-height:100px;margin-top:8px}.shared-view__header .app-header__actions .secondary-button,.shared-view__header .app-header__actions button{text-align:center;flex:1 1 0;padding:8px 4px;font-size:12.5px}}.shared-view__main{flex:1;padding:16px 24px;display:flex}.shared-view__main .preview-frame{flex:1}@media (width<=640px){.shared-view__main{padding:0}.shared-view__main .preview-frame{border:none;border-radius:0}}.documents-dashboard-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.documents-dashboard{background:var(--panel-bg);border-radius:12px;flex-direction:column;gap:12px;width:100%;max-width:480px;max-height:70vh;padding:20px;display:flex;overflow:hidden}.documents-dashboard__header{justify-content:space-between;align-items:center;display:flex}.documents-dashboard__header h2{margin:0;font-size:17px}.documents-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.documents-list li{align-items:center;display:flex;position:relative}.documents-list__open{color:var(--text);text-align:left;background:#f8f8fb;border-radius:8px;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:10px 32px 10px 12px;display:flex}.documents-list__open:hover{background:#efeffb}.documents-list__title{font-weight:500}.documents-list__date{color:var(--text-muted);font-size:12px}.documents-list li .remove-attachment{position:absolute;top:8px;right:8px}.credit-packs{flex-direction:column;gap:8px;display:flex}.credit-pack{border:1px solid var(--border);background:#f8f8fb;border-radius:8px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.legal-page{max-width:640px;max-height:80vh}.legal-page__tabs{gap:4px;display:flex}.legal-page__tab{color:var(--text-muted);background:0 0;border-radius:6px;padding:6px 10px}.legal-page__tab:hover:not(:disabled){color:var(--text);background:#f0f0f5}.legal-page__tab--active{color:var(--text);background:#f0f0f5;font-weight:600}.legal-page__body{padding-right:4px;font-size:13.5px;line-height:1.6;overflow-y:auto}.legal-page__meta{color:var(--text-muted);margin-top:0}.legal-page__body h3{margin:18px 0 6px;font-size:14.5px}.legal-page__body h3:first-of-type{margin-top:8px}.legal-page__body ul,.legal-page__body ol{margin:6px 0;padding-left:20px}.legal-agree-row{color:var(--text-muted);align-items:flex-start;gap:8px;font-size:13px;display:flex}.legal-agree-row input[type=checkbox]{margin-top:3px}.changelog-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.changelog-entry__head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.changelog-entry__badge{color:#fff;background:var(--accent);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.changelog-entry__badge--major{background:var(--error)}.changelog-entry__badge--patch{background:var(--text-muted)}.changelog-entry__title{margin:4px 0 6px;font-weight:600}.changelog-entry__items{color:var(--text-muted);margin:0;padding-left:18px;font-size:13px;line-height:1.6}.feature-request-tab{flex-direction:column;gap:10px;display:flex}.feature-request-tab__textarea{resize:vertical;width:100%;font:inherit;border:1px solid var(--border);border-radius:8px;padding:10px 12px}.feature-request-tab__textarea:focus{border-color:var(--accent);outline:none}.feature-request-tab__history-label{color:var(--text-muted);margin:8px 0 0;font-size:12px}
