.save-image-panel[data-v-e0cd7154]{margin:16px 0;scroll-margin-top:16px;min-width:0}.save-image-panel img[data-v-e0cd7154]{display:block;width:100%;max-width:100%;height:auto;-webkit-touch-callout:default;user-select:auto}:root{--bg: #f4f5f7;--surface: #ffffff;--surface-muted: #f0f2f5;--border: #dfe3e8;--text: #1c2024;--text-muted: #667080;--accent: #2f6df6;--accent-contrast: #ffffff;--danger: #c0392b;--success: #1e7d44;--warning: #b26a00;--radius: 12px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 8px 24px rgba(16, 24, 40, .06);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #14171c;--surface: #1d2128;--surface-muted: #262b33;--border: #333944;--text: #e8eaee;--text-muted: #9aa3b2;--accent: #6f9bff;--accent-contrast: #10131a;--danger: #ff7a6b;--success: #58c98a;--warning: #f0b45e;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-text-size-adjust:100%}#app{min-height:100vh}.app{max-width:1180px;margin:0 auto;padding:16px 16px 40px}.app__header{margin-bottom:12px}.app__title{margin:0;font-size:22px;font-weight:650;letter-spacing:.01em}.app__subtitle{margin:4px 0 0;color:var(--text-muted);font-size:13px}.app__main{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.app__controls{display:grid;gap:16px;align-content:start}.app__footer{margin-top:24px;color:var(--text-muted);font-size:12px;text-align:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card__title{margin:0 0 12px;font-size:15px;font-weight:650}.card__preview{display:flex;justify-content:center;margin-bottom:12px;padding:10px;background:var(--surface-muted);border-radius:10px;overflow:auto}.template-canvas{max-width:100%;height:auto;border-radius:6px;background:#fff}.field{display:block;margin-bottom:10px}.field--inline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.field__label{font-size:13px;color:var(--text-muted)}.field__input{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit}.field__input--number{width:96px;text-align:right}select.field__input{width:auto;min-width:140px}.field-group{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.field-group:first-of-type{margin-top:0;padding-top:0;border-top:none}.field-group__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.radio-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}.radio{display:inline-flex;align-items:center;gap:6px;min-height:40px;font-size:14px}.slider{width:100%;min-height:36px;accent-color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted);color:var(--text);font:inherit;font-weight:550;cursor:pointer;-webkit-tap-highlight-color:transparent}.button+.button{margin-top:8px}.button--block{width:100%}.button--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.button--ghost{min-height:38px;padding:6px 12px;font-size:13px}.button:disabled{opacity:.55;cursor:not-allowed}.button:focus-visible,.field__input:focus-visible,.slider:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.meta{margin:0;font-size:13px;color:var(--text-muted)}.hint{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted)}.hint--warn{color:var(--warning)}.placeholder{margin:0;padding:18px 12px;color:var(--text-muted);font-size:13px;text-align:center}.banner{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:14px}.banner--error{border-color:var(--danger);color:var(--danger)}.banner--success{border-color:var(--success);color:var(--success)}.banner__text{flex:1}.banner__close{border:none;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer;padding:0 4px}.dropzone{padding:14px;margin-bottom:12px;border:1px dashed var(--border);border-radius:10px;background:var(--surface-muted);text-align:center;transition:border-color .15s ease,background .15s ease}.dropzone--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.crop-editor{position:relative;margin-bottom:10px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface-muted);touch-action:none;cursor:ns-resize}.crop-editor--dragging{cursor:grabbing}.crop-editor__canvas{display:block;width:100%;height:auto}.crop-editor__line{position:absolute;left:0;right:0;height:0;border-top:2px dashed var(--accent);pointer-events:none}.crop-editor__line:after{content:"裁剪起点";position:absolute;right:4px;top:2px;padding:0 4px;border-radius:4px;background:var(--accent);color:var(--accent-contrast);font-size:11px;line-height:16px}.card--preview{position:sticky;top:16px}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.preview-toolbar__buttons{display:flex;gap:6px}.preview-stage{overflow:auto;max-height:70vh;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.preview-stage__canvas{position:relative;margin:0 auto}.preview-canvas{display:block;height:auto;border-radius:4px;background:#fff}.preview-stage__divider{position:absolute;left:0;right:0;height:0;border-top:2px dashed rgba(47,109,246,.95);box-shadow:0 1px #ffffffa6;pointer-events:none}@media(min-width:900px){.app{padding:24px 24px 48px}.app__main{grid-template-columns:380px minmax(0,1fr);gap:20px;align-items:start}.app__controls{grid-column:1;grid-row:1}.app__preview{grid-column:2;grid-row:1 / span 2}.app__export{grid-column:1;grid-row:2}.app__title{font-size:26px}.preview-stage{max-height:78vh}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
