/* DonePDF – shared layout for the stamp tools (watermark, page numbers, border).
   Used together with /assets/css/tools.css (tokens: --primary, --border …). */
.dps { max-width: 1180px; margin: 0 auto; padding: 0 16px 32px; box-sizing: border-box; color: var(--text, #1f2937); }
.dps *, .dps *::before, .dps *::after { box-sizing: border-box; }
.dps [hidden] { display: none !important; }

.dps .upload-area { max-width: 760px; }
.dps-status { max-width: 1180px; margin: 12px auto; padding: 12px 16px; border-radius: 10px; font-size: 15px; line-height: 1.5; border: 1px solid var(--border, #e5e7eb); background: var(--bg-light, #f9fafb); }
.dps-status.is-error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.dps-status.is-success { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.dps-status.is-info { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }

.dps-file { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 12px 16px; border: 1px solid var(--border, #e5e7eb); border-radius: 12px; background: var(--bg-white, #fff); margin-bottom: 16px; }
.dps-file-name { font-weight: 600; word-break: break-all; flex: 1 1 200px; }
.dps-file-meta { color: var(--text-light, #6b7280); font-size: 14px; }
.dps-link { background: none; border: 1px solid var(--border-dark, #d1d5db); border-radius: 8px; padding: 6px 12px; cursor: pointer; color: var(--text, #1f2937); font-size: 14px; }
.dps-link:hover { border-color: var(--primary, #2563eb); color: var(--primary, #2563eb); }

.dps-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 1fr); gap: 20px; align-items: start; }
@media (max-width: 860px) { .dps-grid { grid-template-columns: minmax(0, 1fr); } }

.dps-preview { border: 1px solid var(--border, #e5e7eb); border-radius: 12px; background: var(--bg-light, #f9fafb); padding: 12px; position: sticky; top: 12px; }
@media (max-width: 860px) { .dps-preview { position: static; } }
.dps-nav { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 10px; font-size: 14px; }
.dps-nav button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border-dark, #d1d5db); background: var(--bg-white, #fff); color: var(--text, #1f2937); cursor: pointer; font-size: 18px; line-height: 1; }
.dps-nav button:disabled { opacity: .4; cursor: default; }
.dps-canvas-wrap { display: flex; justify-content: center; }
.dps-canvas-wrap canvas { max-width: 100%; height: auto; box-shadow: 0 2px 12px rgba(0,0,0,.15); background: #fff; display: block; }
.dps-note { margin: 10px 0 0; font-size: 13px; color: var(--text-light, #6b7280); text-align: center; }

.dps-panel { display: flex; flex-direction: column; gap: 14px; }
.dps-box { border: 1px solid var(--border, #e5e7eb); border-radius: 12px; padding: 14px 16px; background: var(--bg-white, #fff); margin: 0; min-width: 0; }
.dps-box > legend, .dps-box-title { font-weight: 700; font-size: 15px; padding: 0 4px; }
.dps-row { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.dps-row:first-of-type { margin-top: 4px; }
.dps-row > label, .dps-label { font-size: 14px; font-weight: 600; color: var(--text, #1f2937); }
.dps-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dps-three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 420px) { .dps-two, .dps-three { grid-template-columns: 1fr; } }
.dps input[type="text"], .dps input[type="number"], .dps select { width: 100%; padding: 9px 10px; border: 1px solid var(--border-dark, #d1d5db); border-radius: 8px; font-size: 15px; background: var(--bg-white, #fff); color: var(--text, #1f2937); min-height: 40px; }
.dps input[type="color"] { width: 100%; height: 40px; padding: 2px; border: 1px solid var(--border-dark, #d1d5db); border-radius: 8px; background: var(--bg-white, #fff); cursor: pointer; }
.dps input[type="range"] { width: 100%; accent-color: var(--primary, #2563eb); }
.dps-range { display: flex; align-items: center; gap: 10px; }
.dps-range output { min-width: 56px; text-align: end; font-variant-numeric: tabular-nums; font-size: 14px; color: var(--text-light, #6b7280); }
.dps-check { display: flex; align-items: center; gap: 8px; font-size: 14px; margin-top: 10px; cursor: pointer; }
.dps-check input { width: 18px; height: 18px; accent-color: var(--primary, #2563eb); }
.dps-hint { font-size: 13px; color: var(--text-light, #6b7280); margin: 4px 0 0; line-height: 1.45; }

.dps-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.dps-seg label { flex: 1 1 0; min-width: 72px; position: relative; }
.dps-seg input { position: absolute; opacity: 0; pointer-events: none; }
.dps-seg span { display: block; text-align: center; padding: 9px 8px; border: 1px solid var(--border-dark, #d1d5db); border-radius: 8px; cursor: pointer; font-size: 14px; background: var(--bg-white, #fff); }
.dps-seg input:checked + span { border-color: var(--primary, #2563eb); background: var(--primary, #2563eb); color: #fff; }
.dps-seg input:focus-visible + span { outline: 2px solid var(--primary, #2563eb); outline-offset: 2px; }

.dps-pos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; max-width: 260px; }
.dps-pos button { height: 38px; border: 1px solid var(--border-dark, #d1d5db); border-radius: 8px; background: var(--bg-white, #fff); cursor: pointer; position: relative; font-size: 12px; color: var(--text, #1f2937); padding: 0 4px; }
.dps-pos button[aria-pressed="true"] { border-color: var(--primary, #2563eb); background: var(--primary, #2563eb); color: #fff; }
.dps-pos .dps-pos-wide { grid-column: 1 / -1; }

.dps-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 20px; }
.dps-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: 10px; font-size: 16px; font-weight: 600; cursor: pointer; border: 1px solid transparent; }
.dps-btn-primary { background: var(--primary, #2563eb); color: #fff; }
.dps-btn-primary:hover { background: var(--primary-hover, #1d4ed8); }
.dps-btn-secondary { background: var(--secondary, #f3f4f6); color: var(--text, #1f2937); border-color: var(--border-dark, #d1d5db); }
.dps-btn:disabled { opacity: .6; cursor: progress; }
.dps-progress { text-align: center; margin-top: 10px; color: var(--text-light, #6b7280); font-size: 14px; }

.dps-img-pick { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dps-img-pick img { max-width: 72px; max-height: 72px; border: 1px solid var(--border, #e5e7eb); border-radius: 6px; background: repeating-conic-gradient(#ddd 0% 25%, #fff 0% 50%) 50% / 12px 12px; }
.dps-img-name { font-size: 13px; color: var(--text-light, #6b7280); word-break: break-all; }

html[data-theme="dark"] .dps-status.is-error { background: #3b1414; border-color: #7f1d1d; color: #fecaca; }
html[data-theme="dark"] .dps-status.is-success { background: #0d2e22; border-color: #065f46; color: #a7f3d0; }
html[data-theme="dark"] .dps-status.is-info { background: #10213f; border-color: #1e40af; color: #bfdbfe; }

/* v2: bigger preview area, page clearly distinct from its background */
.dps-grid { grid-template-columns: minmax(0, 1.6fr) minmax(320px, 1fr); }
.dps-canvas-wrap { background: #cbd5e1; border: 1px solid #94a3b8; border-radius: 10px; padding: 16px; align-items: flex-start; min-height: 560px; max-height: 88vh; overflow: auto; }
.dps-canvas-wrap canvas { box-shadow: 0 0 0 1px rgba(15,23,42,.3), 0 6px 20px rgba(15,23,42,.35); }
@media (max-width: 860px) { .dps-canvas-wrap { min-height: 320px; padding: 10px; } }
html[data-theme^="dark"] .dps-canvas-wrap { background: #0b0e16; border-color: var(--border-dark, #3a3f52); }
html[data-theme^="dark"] .dps-canvas-wrap canvas { box-shadow: 0 0 0 1px rgba(255,255,255,.28), 0 6px 20px rgba(0,0,0,.7); }
@media (max-width: 860px) { .dps-grid { grid-template-columns: minmax(0, 1fr); } }
