.custom-page { padding-top:44px; padding-bottom:64px; }
.custom-intro { margin-bottom:32px; }
.custom-intro .eyebrow { color:var(--blue); }
.custom-intro h1 { margin:10px 0 16px; font-size:clamp(36px,4.5vw,60px); }
.custom-intro>p:last-child { color:var(--muted); max-width:65ch; }
.custom-editor { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); gap:48px; align-items:start; }
.custom-preview { position:sticky; top:176px; border:1px solid var(--line); border-radius:12px; padding:24px; min-width:0; }
.custom-preview-heading { display:flex; justify-content:space-between; gap:16px; font-size:13px; color:var(--muted); margin-bottom:20px; }
.custom-preview-heading>span:first-child { font-weight:700; color:var(--ink); }
.custom-canvas-wrap { display:flex; justify-content:center; align-items:center; min-height:400px; }
.custom-canvas-wrap canvas { display:block; width:auto; max-width:100%; max-height:520px; height:auto; box-shadow:0 10px 32px #0d1c241c; cursor:grab; touch-action:none; }
.custom-canvas-wrap canvas.is-dragging { cursor:grabbing; }
.custom-canvas-wrap canvas[hidden],.custom-empty[hidden],[data-custom-replace][hidden],.custom-error[hidden] { display:none; }
.custom-empty { display:flex; flex-direction:column; align-items:center; text-align:center; padding:40px 16px; }
.custom-empty>.icon { width:40px; height:40px; color:var(--blue); margin-bottom:24px; }
.custom-empty h2 { font-size:34px; margin:0 0 14px; }
.custom-empty p { color:var(--muted); margin:0 0 24px; }
.custom-empty small { margin-top:16px; font-size:12px; color:var(--muted); }
.custom-preview-tip { text-align:center; font-size:12px; color:var(--muted); margin:22px 0 0; }
.custom-controls { min-width:0; }
.custom-controls h2 { font-size:26px; margin:0; }
.custom-upload-row,.custom-tool-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.custom-file-info { font-size:13px; color:var(--muted); overflow-wrap:anywhere; margin:12px 0 24px; }
.custom-fields { padding:0; margin:0; border:0; min-width:0; }
.custom-fields:disabled { opacity:.5; }
.custom-field { margin-bottom:18px; }
.custom-field label { display:block; font-weight:700; font-size:14px; margin-bottom:8px; }
.custom-field :is(input,select) { width:100%; min-width:0; min-height:46px; border:1px solid #cbd5da; border-radius:4px; padding:10px 12px; background:#fff; color:var(--ink); font:inherit; font-size:14px; }
.custom-tool-heading { border-top:1px solid var(--line); padding-top:22px; margin-top:26px; }
.custom-controls h3 { font-size:17px; margin:0 0 16px; }
.custom-tool-heading h3 { margin:0; }
.custom-text-button { padding:8px 0; min-height:44px; border:0; background:none; color:var(--blue); font-size:13px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.custom-slider { display:grid; grid-template-columns:1fr auto; gap:8px; margin:18px 0; font-size:13px; }
.custom-slider input { grid-column:1/-1; width:100%; height:28px; margin:0; accent-color:var(--blue); cursor:pointer; }
.custom-slider output { color:var(--muted); }
.custom-transform { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.custom-transform button { flex:1; min-height:44px; padding:8px; border:1px solid #cbd5da; border-radius:4px; color:var(--blue); background:#fff; font-size:12px; white-space:nowrap; }
.custom-transform button[aria-pressed=true] { background:#edf3f6; border-color:var(--blue); }
.custom-adjust-heading { padding-top:22px; border-top:1px solid var(--line); }
.custom-quality { padding:14px 16px; border-radius:4px; background:#edf3f6; color:var(--blue); font-size:13px; line-height:1.5; }
.custom-quality:empty { display:none; }
.custom-quality.is-low { background:#fff6e8; color:#77501f; }
.custom-purchase { display:flex; align-items:center; gap:14px; margin:24px 0 16px; font-size:14px; }
.custom-purchase input { width:70px; min-height:44px; padding:8px; border:1px solid #cbd5da; border-radius:4px; font:inherit; }
.custom-purchase strong { margin-left:auto; font:700 28px/1.2 Georgia,serif; }
.custom-page .button { min-height:48px; padding:14px 22px; font-size:14px; cursor:pointer; }
.custom-add { width:100%; }
.custom-add:disabled { opacity:.5; cursor:not-allowed; }
.custom-save-status { color:var(--blue); font-size:13px; }
.custom-storage-note { margin:20px 0 0; font-size:12px; color:var(--muted); }
.custom-error { border-left:3px solid var(--coral); color:#9b2925; padding:12px 14px; background:#fff4f3; font-size:14px; }
.custom-page :is(button,label[for=custom-upload],input,select):focus-visible { outline:3px solid #5688ac; outline-offset:3px; }
.custom-upload-row:focus-within { outline:2px solid #5688ac; outline-offset:4px; }
.custom-how { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:60px; padding-top:32px; border-top:1px solid var(--line); }
.custom-how span { color:var(--blue); font-size:12px; font-weight:700; }
.custom-how h2 { font-size:24px; margin:12px 0; }
.custom-how p { font-size:14px; color:var(--muted); }
@media(max-width:1000px) { .custom-editor { gap:28px; grid-template-columns:minmax(0,1fr) minmax(300px,1fr); } .custom-preview { top:210px; padding:18px; } .custom-canvas-wrap { min-height:300px; } .custom-empty { padding:30px 4px; } .custom-empty h2 { font-size:28px; } }
@media(max-width:700px) { .custom-page { padding-top:28px; } .custom-intro { margin-bottom:24px; } .custom-editor { grid-template-columns:1fr; gap:28px; } .custom-preview { position:static; padding:18px; } .custom-canvas-wrap { min-height:280px; } .custom-canvas-wrap canvas { max-height:400px; } .custom-preview-heading { font-size:12px; gap:8px; } .custom-how { grid-template-columns:1fr; gap:22px; margin-top:40px; } .custom-transform button { min-width:85px; } }
@media(max-width:700px) { .custom-editor.has-photo .custom-preview { position:sticky; top:144px; z-index:10; padding:12px; background:var(--paper); } .custom-editor.has-photo .custom-canvas-wrap { min-height:0; } .custom-editor.has-photo canvas { max-height:220px; } .custom-editor.has-photo .custom-preview-tip { display:none; } .custom-editor.has-photo .custom-preview-heading { margin-bottom:12px; } }
