/* PDF tools (app/Views/pdf_tools, assets/js/pdf-tools.js). Loaded only on those pages. */
.pdft {
  --p-text: #0f172a; --p-muted: #64748b; --p-soft: #475569; --p-line: #e2e8f0; --p-surface: #fff; --p-sunken: #f8fafc;
  --p-accent: #0284c7; --p-accent-soft: #e0f2fe; --p-danger: #e11d48; --p-danger-soft: #ffe4e6; --p-ok: #059669;
  --p-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 8px 24px -12px rgba(15, 23, 42, .18);
  color: var(--p-soft);
}
html[data-theme="dark"] .pdft {
  --p-text: #f1f5f9; --p-muted: #94a3b8; --p-soft: #cbd5e1; --p-line: rgba(148, 163, 184, .2); --p-surface: #0f172a; --p-sunken: #0b1222;
  --p-accent: #38bdf8; --p-accent-soft: rgba(56, 189, 248, .14); --p-danger: #fb7185; --p-danger-soft: rgba(251, 113, 133, .15); --p-ok: #34d399;
  --p-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px -14px rgba(0, 0, 0, .7);
}
.pdft [hidden] { display: none !important; }
.pdft .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.pdft-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.pdft .pi { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Category tints (categorical slots 1, 3, 7) */
.pc-blue { --pc: #2a78d6; } .pc-green { --pc: #1baf7a; } .pc-violet { --pc: #6250d6; }
html[data-theme="dark"] .pc-blue { --pc: #3987e5; } html[data-theme="dark"] .pc-green { --pc: #199e70; } html[data-theme="dark"] .pc-violet { --pc: #9085e9; }

/* ---------- Hub ---------- */
.pdft-hero { text-align: center; max-width: 46rem; margin: 0 auto 2.2rem; }
.pdft-eyebrow { font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--p-accent); }
.pdft-hero h1 { margin-top: .4rem; font-size: clamp(1.6rem, 3.6vw, 2.3rem); line-height: 1.25; font-weight: 700; color: var(--p-text); }
.pdft-lead { margin-top: .6rem; color: var(--p-muted); }
.pdft-privacy { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1rem; padding: .35rem .85rem; border-radius: 999px; font-size: .8rem; color: var(--p-ok); background: color-mix(in srgb, var(--p-ok) 12%, transparent); }
.pdft-search { display: flex; align-items: center; gap: .6rem; max-width: 30rem; margin: 1.4rem auto 0; padding: 0 1rem; border: 1px solid var(--p-line); border-radius: 999px; background: var(--p-surface); color: var(--p-muted); box-shadow: var(--p-shadow); }
.pdft-search:focus-within { border-color: var(--p-accent); }
.pdft-search input { flex: 1; min-width: 0; padding: .75rem 0; border: 0; outline: 0; background: transparent; color: var(--p-text); font: inherit; }
.pdft-cat { margin-top: 1.8rem; }
.pdft-cat h2 { margin-bottom: .8rem; font-size: 1rem; font-weight: 600; color: var(--p-text); }
.pdft-grid { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); }
.pdft-card { position: relative; display: flex; align-items: flex-start; gap: .9rem; padding: 1.1rem; border: 1px solid var(--p-line); border-radius: 1rem; background: var(--p-surface); box-shadow: var(--p-shadow); transition: transform .18s, border-color .18s, box-shadow .18s; }
.pdft-card:hover, .pdft-card:focus-visible { transform: translateY(-3px); border-color: var(--pc); box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--pc) 60%, transparent); }
.pdft-card:focus-visible { outline: 2px solid var(--pc); outline-offset: 2px; }
.pdft-icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: none; border-radius: .8rem; font-size: 1.25rem; color: var(--pc); background: color-mix(in srgb, var(--pc) 13%, transparent); }
.pdft-icon-lg { width: 3.4rem; height: 3.4rem; font-size: 1.55rem; border-radius: 1rem; }
.pdft-card-body { display: flex; flex-direction: column; gap: .25rem; min-width: 0; padding-right: 1.2rem; }
.pdft-card-body b { color: var(--p-text); font-weight: 600; }
.pdft-card-body small { font-size: .8rem; line-height: 1.5; color: var(--p-muted); }
.pdft-go { position: absolute; right: 1rem; top: 1.25rem; color: var(--p-muted); opacity: 0; transform: translateX(-4px); transition: opacity .18s, transform .18s; }
.pdft-card:hover .pdft-go { opacity: 1; transform: none; color: var(--pc); }
.pdft-none { margin-top: 2rem; text-align: center; color: var(--p-muted); }

/* ---------- Tool page ---------- */
.pdft-back { display: inline-flex; align-items: center; gap: .3rem; font-size: .875rem; color: var(--p-muted); }
.pdft-back:hover { color: var(--p-accent); }
.pdft-tool-head { display: flex; align-items: center; gap: 1rem; margin: .8rem 0 1.4rem; }
.pdft-tool-head h1 { font-size: 1.6rem; font-weight: 700; color: var(--p-text); }
.pdft-tool-head p { margin-top: .15rem; font-size: .9rem; color: var(--p-muted); }

.pdft-drop { display: flex; flex-direction: column; align-items: center; gap: .55rem; padding: 3.2rem 1.5rem; text-align: center; cursor: pointer;
  border: 2px dashed color-mix(in srgb, var(--p-accent) 45%, var(--p-line)); border-radius: 1.25rem; background: var(--p-surface); transition: background .15s, border-color .15s, transform .15s; }
.pdft-drop:hover, .pdft-drop.is-over { border-color: var(--p-accent); background: var(--p-accent-soft); }
.pdft-drop.is-over { transform: scale(1.01); }
.pdft-drop:focus-within { outline: 2px solid var(--p-accent); outline-offset: 3px; }
.pdft-drop-icon { display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: 1.2rem; font-size: 1.8rem; color: var(--p-accent); background: var(--p-accent-soft); }
.pdft-drop b { font-size: 1.15rem; color: var(--p-text); }
.pdft-drop-or { font-size: .8rem; color: var(--p-muted); }
.pdft-drop small { display: inline-flex; align-items: center; gap: .3rem; flex-wrap: wrap; justify-content: center; margin-top: .4rem; font-size: .78rem; color: var(--p-muted); }
.pdft-alert { margin-top: 1rem; padding: .8rem 1rem; border-radius: .6rem; background: var(--p-danger-soft); color: var(--p-danger); }

.pdft-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .5rem .9rem; border: 1px solid var(--p-line); border-radius: .6rem; background: var(--p-surface); color: var(--p-text); font: inherit; font-size: .85rem; font-weight: 500; cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.pdft-btn:hover { border-color: var(--p-accent); color: var(--p-accent); }
.pdft-btn:focus-visible { outline: 2px solid var(--p-accent); outline-offset: 2px; }
.pdft-btn-primary, .pdft-btn-primary:hover { background: #0284c7; border-color: #0284c7; color: #fff; padding: .65rem 1.4rem; font-size: .95rem; }
.pdft-drop:hover .pdft-btn-primary { background: #0369a1; }
.pdft-btn-ghost { border-color: transparent; background: transparent; color: var(--p-muted); }
.pdft-btn-icon { padding: .45rem; }
.pdft-btn-row { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }

.pdft-work { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 1024px) { .pdft-work { grid-template-columns: minmax(0, 1fr) 20rem; } }
.pdft-main { min-width: 0; padding: 1rem; border: 1px solid var(--p-line); border-radius: 1.1rem; background: var(--p-surface); box-shadow: var(--p-shadow); }
.pdft-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; padding-bottom: .9rem; border-bottom: 1px solid var(--p-line); }
.pdft-info { display: flex; align-items: center; gap: .55rem; min-width: 0; font-size: .875rem; color: var(--p-muted); }
.pdft-info b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 22rem; color: var(--p-text); font-weight: 600; }
.pdft-bar-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.pdft-hint { margin-top: .8rem; font-size: .8rem; color: var(--p-muted); text-align: center; }
.pdft-hint:empty { display: none; }

.pdft-selbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; padding: .9rem 0 .2rem; }
.pdft-selbar-label { font-size: .85rem; font-weight: 600; color: var(--p-text); }
.pdft-range { width: 13rem; max-width: 100%; padding-top: .4rem; padding-bottom: .4rem; }
.pdft-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.pdft-chip { padding: .3rem .7rem; border: 1px solid var(--p-line); border-radius: 999px; background: var(--p-sunken); color: var(--p-soft); font: inherit; font-size: .78rem; cursor: pointer; }
.pdft-chip:hover { border-color: var(--p-accent); color: var(--p-accent); }

/* Page thumbnails */
.pdft-pages { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(8.6rem, 1fr)); padding-top: 1rem; }
.pg { position: relative; display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: .55rem .55rem .45rem; border: 2px solid transparent; border-radius: .9rem; background: var(--p-sunken); transition: border-color .15s, background .15s, opacity .15s, transform .15s; user-select: none; }
.pg[draggable="true"] { cursor: grab; }
.pg.is-clickable { cursor: pointer; }
.pg:hover { border-color: color-mix(in srgb, var(--p-accent) 45%, transparent); }
.pg:focus-visible { outline: 2px solid var(--p-accent); outline-offset: 2px; }
.pg-thumb { display: grid; place-items: center; width: 100%; aspect-ratio: 3 / 4; }
.pg-thumb canvas, .pg-thumb img { max-width: 100%; max-height: 100%; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .25); transition: transform .2s; }
.pg-thumb canvas.is-loading { width: 70%; height: 90%; background: linear-gradient(100deg, #e2e8f0 30%, #f1f5f9 50%, #e2e8f0 70%); background-size: 300% 100%; animation: pdft-shimmer 1.2s infinite linear; box-shadow: none; }
html[data-theme="dark"] .pg-thumb canvas.is-loading { background-image: linear-gradient(100deg, #1e293b 30%, #273449 50%, #1e293b 70%); }
@keyframes pdft-shimmer { to { background-position: -150% 0; } }
.pg-num { font-size: .75rem; font-weight: 600; color: var(--p-muted); font-variant-numeric: tabular-nums; }
.pg-name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; color: var(--p-muted); }
.pg-tools { position: absolute; top: .4rem; right: .4rem; display: flex; gap: .25rem; opacity: 0; transition: opacity .15s; }
.pg:hover .pg-tools, .pg:focus-within .pg-tools { opacity: 1; }
@media (hover: none) { .pg-tools { opacity: 1; } }
.pg-tool { display: grid; place-items: center; width: 1.85rem; height: 1.85rem; border: 1px solid var(--p-line); border-radius: .5rem; background: var(--p-surface); color: var(--p-text); cursor: pointer; font-size: .9rem; box-shadow: 0 2px 6px rgba(15, 23, 42, .15); }
.pg-tool:hover { color: var(--p-accent); border-color: var(--p-accent); }
.pg-tool.is-danger:hover { color: var(--p-danger); border-color: var(--p-danger); }
.pg-badge { position: absolute; top: .45rem; left: .45rem; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; border-radius: 999px; border: 2px solid var(--p-line); background: var(--p-surface); color: #fff; font-size: .8rem; }
.pg.is-selected { border-color: var(--p-accent); background: var(--p-accent-soft); }
.pg.is-selected .pg-badge { border-color: var(--p-accent); background: var(--p-accent); }
.pdft-app[data-tool="delete"] .pg.is-selected { border-color: var(--p-danger); background: var(--p-danger-soft); }
.pdft-app[data-tool="delete"] .pg.is-selected .pg-badge { border-color: var(--p-danger); background: var(--p-danger); }
.pdft-app[data-tool="delete"] .pg.is-selected .pg-thumb { opacity: .45; }
.pg.is-dragging { opacity: .35; }
.pg.is-drop-before { box-shadow: -6px 0 0 -2px var(--p-accent); }
.pg.is-drop-after { box-shadow: 6px 0 0 -2px var(--p-accent); }
.pg-rot { position: absolute; bottom: 2.1rem; right: .5rem; padding: .05rem .4rem; border-radius: 999px; font-size: .68rem; font-weight: 600; background: var(--p-accent); color: #fff; }

/* File list (merge) */
.pdft-files { display: grid; gap: .6rem; padding-top: 1rem; }
.fl { display: grid; grid-template-columns: auto 3.2rem minmax(0, 1fr) auto; align-items: center; gap: .8rem; padding: .6rem .75rem; border: 1px solid var(--p-line); border-radius: .85rem; background: var(--p-sunken); cursor: grab; transition: border-color .15s, opacity .15s; }
.fl:hover { border-color: color-mix(in srgb, var(--p-accent) 45%, transparent); }
.fl.is-dragging { opacity: .35; }
.fl.is-drop-before { box-shadow: 0 -3px 0 0 var(--p-accent); }
.fl.is-drop-after { box-shadow: 0 3px 0 0 var(--p-accent); }
.fl-order { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 999px; background: var(--p-accent-soft); color: var(--p-accent); font-size: .8rem; font-weight: 700; }
.fl-thumb { display: grid; place-items: center; width: 3.2rem; height: 4rem; }
.fl-thumb canvas { max-width: 100%; max-height: 100%; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .25); }
.fl-body { min-width: 0; }
.fl-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; font-weight: 600; color: var(--p-text); }
.fl-meta { font-size: .75rem; color: var(--p-muted); }
.fl-range { margin-top: .35rem; width: 12rem; max-width: 100%; padding: .3rem .55rem; font-size: .8rem; }
.fl-actions { display: flex; gap: .25rem; }
@media (max-width: 560px) { .fl { grid-template-columns: 3.2rem minmax(0, 1fr); } .fl-order { display: none; } .fl-actions { grid-column: 1 / -1; justify-content: flex-end; } }

/* Big page preview (watermark, page numbers) */
.pdft-preview { padding-top: 1rem; }
.pdft-preview-stage { display: grid; place-items: center; min-height: 18rem; padding: 1rem; border-radius: .9rem; background: var(--p-sunken); }
.pdft-preview-stage canvas { max-width: 100%; max-height: 70vh; background: #fff; box-shadow: 0 4px 18px rgba(15, 23, 42, .25); }
.pdft-preview-nav { display: flex; align-items: center; justify-content: center; gap: .8rem; margin-top: .7rem; font-size: .85rem; color: var(--p-muted); font-variant-numeric: tabular-nums; }

/* Options sidebar */
.pdft-side { position: sticky; top: 5.5rem; }
.pdft-options { padding: 1.2rem; border: 1px solid var(--p-line); border-radius: 1.1rem; background: var(--p-surface); box-shadow: var(--p-shadow); }
.pdft-options h2 { margin-bottom: .9rem; font-size: 1rem; font-weight: 600; color: var(--p-text); }
.pdft-field { margin-bottom: 1rem; }
.pdft-field .label output { font-weight: 600; color: var(--p-accent); }
.pdft-note { margin-bottom: 1rem; padding: .6rem .75rem; border-radius: .6rem; font-size: .8rem; line-height: 1.55; background: var(--p-sunken); color: var(--p-muted); }
.pdft-inline { display: flex; align-items: center; justify-content: space-between; }
.pdft-inline .label { margin: 0; }
.pdft-two { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.pdft-seg.cols-3 { grid-template-columns: repeat(3, 1fr); }
.pdft-seg .seg-opt span { padding: .55rem .4rem; font-size: .82rem; }
.pdft-slider { width: 100%; accent-color: var(--p-accent); }
.pdft-color { width: 3rem; height: 2.1rem; padding: .15rem; border: 1px solid var(--p-line); border-radius: .5rem; background: var(--p-surface); cursor: pointer; }

.pdft-levels { display: grid; gap: .45rem; }
.pdft-level { position: relative; display: block; cursor: pointer; }
.pdft-level input { position: absolute; opacity: 0; }
.pdft-level span { display: flex; flex-direction: column; gap: .1rem; padding: .65rem .8rem .65rem 2.3rem; border: 1px solid var(--p-line); border-radius: .7rem; background: var(--p-sunken); transition: border-color .15s, background .15s; }
.pdft-level span::before { content: ""; position: absolute; left: .8rem; top: .9rem; width: .95rem; height: .95rem; border: 2px solid var(--p-muted); border-radius: 999px; }
.pdft-level b { font-size: .88rem; color: var(--p-text); font-weight: 600; }
.pdft-level small { font-size: .75rem; color: var(--p-muted); }
.pdft-level input:checked + span { border-color: var(--p-accent); background: var(--p-accent-soft); }
.pdft-level input:checked + span::before { border-color: var(--p-accent); background: radial-gradient(var(--p-accent) 45%, transparent 50%); }
.pdft-level input:focus-visible + span { outline: 2px solid var(--p-accent); outline-offset: 2px; }

.pdft-pos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; width: 9.5rem; padding: .5rem; aspect-ratio: 3 / 4; height: auto; border: 1px solid var(--p-line); border-radius: .5rem; background: var(--p-sunken); align-content: space-between; }
.pdft-pos-opt { position: relative; display: grid; place-items: center; height: 2rem; cursor: pointer; }
.pdft-pos-opt input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.pdft-pos-opt i { width: 1.4rem; height: .55rem; border-radius: .2rem; background: var(--p-line); transition: background .15s; }
.pdft-pos-opt:hover i { background: color-mix(in srgb, var(--p-accent) 50%, transparent); }
.pdft-pos-opt input:checked + span + i { background: var(--p-accent); }
.pdft-pos-opt input:focus-visible + span + i { outline: 2px solid var(--p-accent); outline-offset: 3px; }

.pdft-run { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; margin-top: .4rem; padding: .85rem 1rem; border: 0; border-radius: .8rem; background: #0284c7; color: #fff; font: inherit; font-size: 1rem; font-weight: 600; cursor: pointer; box-shadow: 0 10px 24px -12px rgba(2, 132, 199, .9); transition: background .15s, transform .15s; }
.pdft-run:hover:not(:disabled) { background: #0369a1; transform: translateY(-1px); }
.pdft-run:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.pdft-run:focus-visible { outline: 2px solid var(--p-accent); outline-offset: 3px; }
.pdft-progress { margin-top: .8rem; font-size: .8rem; color: var(--p-muted); }
.pdft-progress-track { height: .45rem; margin-bottom: .4rem; overflow: hidden; border-radius: 999px; background: var(--p-line); }
.pdft-progress-bar { width: 0; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #0284c7, #38bdf8); transition: width .2s; }
.pdft-error { margin-top: .8rem; padding: .65rem .8rem; border-radius: .6rem; font-size: .83rem; background: var(--p-danger-soft); color: var(--p-danger); }

.pdft-btn-accent { border-color: var(--p-accent); background: var(--p-accent-soft); color: var(--p-accent); font-weight: 600; }
.pdft-btn:disabled { opacity: .45; cursor: not-allowed; }
.pdft-check { display: flex; align-items: center; gap: .5rem; margin-top: .55rem; font-size: .85rem; color: var(--p-soft); cursor: pointer; }
.pdft-check input { width: 1rem; height: 1rem; accent-color: var(--p-accent); }
.pdft-file { width: 100%; font-size: .8rem; color: var(--p-muted); }
.pdft-file::file-selector-button { margin-right: .6rem; padding: .4rem .8rem; border: 1px solid var(--p-line); border-radius: .5rem; background: var(--p-sunken); color: var(--p-text); font: inherit; cursor: pointer; }
.pdft-seg-gap { margin-top: .5rem; }
.pdft-note-inline { font-size: .75rem; color: var(--p-muted); }

/* Signature */
@font-face { font-family: "Prompt"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/prompt-thai-400-normal.woff2) format("woff2"); unicode-range: U+0E01-0E5B, U+200C-200D, U+25CC; }
@font-face { font-family: "Prompt"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/prompt-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+2215; }
.sig-pad { display: block; width: 100%; aspect-ratio: 840 / 300; border: 1.5px dashed var(--p-line); border-radius: .7rem; background: #fff; cursor: crosshair; touch-action: none; }
.sig-pad-bar { display: flex; align-items: center; justify-content: space-between; margin-top: .4rem; }
.sig-preview { display: grid; place-items: center; height: 5.5rem; margin-bottom: 1rem; padding: .5rem; border: 1px solid var(--p-line); border-radius: .7rem; background: #fff; }
.sig-preview canvas { max-width: 100%; max-height: 100%; }
.pdft-page-wrap { position: relative; display: inline-block; max-width: 100%; line-height: 0; }
.pdft-page-wrap canvas { display: block; }
.sig-box { position: absolute; border: 1.5px dashed rgba(2, 132, 199, .9); border-radius: .25rem; cursor: move; touch-action: none; line-height: 0; }
.sig-box img { width: 100%; height: 100%; pointer-events: none; user-select: none; }
.sig-box.is-active { border-style: solid; background: rgba(2, 132, 199, .06); }
.sig-del, .sig-size { position: absolute; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 999px; border: 0; color: #fff; font-size: .8rem; line-height: 1; }
.sig-del { top: -.75rem; right: -.75rem; background: #e11d48; cursor: pointer; }
.sig-size { right: -.6rem; bottom: -.6rem; width: 1.2rem; height: 1.2rem; background: #0284c7; cursor: nwse-resize; box-shadow: 0 0 0 2px #fff; }

/* Bookmarks */
/* The bookmark list lives in the (wider) options panel */
@media (min-width: 1024px) { .pdft-app[data-tool="bookmarks"] .pdft-work { grid-template-columns: minmax(0, 1fr) 26rem; } }
.bm { margin-bottom: 1rem; }
.bm-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.bm-head h3 { font-size: .95rem; font-weight: 600; color: var(--p-text); }
.bm-head h3 span { font-weight: 400; color: var(--p-muted); }
.bm-list { display: grid; gap: .4rem; max-height: calc(100vh - 24rem); min-height: 6rem; overflow: auto; margin: .7rem 0 0; padding: 0 .1rem 0 0; list-style: none; }
.bm-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "title title title" "indent page tools"; align-items: center; gap: .35rem .45rem; padding: .45rem; border: 1px solid var(--p-line); border-radius: .6rem; background: var(--p-sunken); }
.bm-row.is-current { border-color: var(--p-accent); }
.bm-row.lvl-1 { margin-left: 1.1rem; } .bm-row.lvl-2 { margin-left: 2.2rem; } .bm-row.lvl-3 { margin-left: 3.3rem; }
.bm-row > .input { grid-area: title; padding-top: .35rem; padding-bottom: .35rem; font-size: .85rem; }
.bm-indent { grid-area: indent; }
.bm-row > .bm-tools:last-child { grid-area: tools; }
.bm-page { grid-area: page; justify-self: center; display: flex; align-items: center; gap: .25rem; font-size: .75rem; color: var(--p-muted); }
.bm-page .input { width: 3.4rem; padding: .25rem .3rem .25rem .45rem; font-size: .8rem; }
.bm-tools { display: flex; align-items: center; gap: .2rem; }
.bm-tools .pg-tool { width: 1.7rem; height: 1.7rem; box-shadow: none; }
.bm-empty { margin-top: .6rem; padding: .9rem; text-align: center; font-size: .82rem; color: var(--p-muted); border: 1px dashed var(--p-line); border-radius: .6rem; }
.pg.has-bm::after { content: ""; position: absolute; top: -.2rem; right: .7rem; width: .8rem; height: 1.15rem; background: var(--p-accent); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 75%, 0 100%); }

/* Page view switch: one big page per row, or the thumbnail grid */
.pdft-viewsw { display: inline-flex; padding: .15rem; border: 1px solid var(--p-line); border-radius: .65rem; background: var(--p-sunken); }
.pdft-viewsw .pdft-btn { border: 0; background: transparent; }
.pdft-viewsw .pdft-btn[aria-pressed="true"] { background: var(--p-surface); color: var(--p-accent); box-shadow: 0 1px 2px rgba(15, 23, 42, .12); }
.pdft-pages.is-list { grid-template-columns: minmax(0, 1fr); max-width: 46rem; margin: 0 auto; gap: 1.2rem; }
.pdft-pages.is-list .pg { padding: .8rem .8rem .5rem; }
.pdft-pages.is-list .pg-thumb { aspect-ratio: auto; }
.pdft-pages.is-list .pg-thumb canvas { width: 100%; height: auto; }
.pdft-pages.is-list .pg-thumb canvas.is-loading { aspect-ratio: 210 / 297; }
.pdft-pages.is-list .pg.has-bm::after { right: 1.2rem; width: 1rem; height: 1.45rem; }

/* Document info */
.md-info { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .35rem 1rem; margin: 1rem 0 0; padding: .9rem 1rem; border-radius: .7rem; background: var(--p-sunken); font-size: .83rem; }
.md-info dt { color: var(--p-muted); }
.md-info dd { margin: 0; overflow-wrap: anywhere; color: var(--p-text); }

/* Result */
.pdft-result { max-width: 40rem; margin: 0 auto; padding: 2.4rem 1.5rem; text-align: center; border: 1px solid var(--p-line); border-radius: 1.25rem; background: var(--p-surface); box-shadow: var(--p-shadow); }
.pdft-result-icon { display: inline-grid; place-items: center; width: 3.6rem; height: 3.6rem; border-radius: 999px; font-size: 1.7rem; color: #fff; background: #059669; box-shadow: 0 10px 24px -10px rgba(5, 150, 105, .8); }
.pdft-result h2 { margin-top: .8rem; font-size: 1.35rem; font-weight: 700; color: var(--p-text); }
.pdft-result > p { margin-top: .3rem; color: var(--p-muted); }
.pdft-result-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 1.3rem; }
.pdft-download { display: inline-flex; align-items: center; gap: .55rem; padding: .85rem 1.6rem; border-radius: .8rem; background: #0284c7; color: #fff; font-weight: 600; box-shadow: 0 10px 24px -12px rgba(2, 132, 199, .9); transition: background .15s, transform .15s; }
.pdft-download:hover { background: #0369a1; transform: translateY(-1px); }
.pdft-btn-lg { padding: .85rem 1.3rem; border-radius: .8rem; font-size: .95rem; font-weight: 600; }
.pdft-result-list { max-height: 16rem; overflow: auto; margin: 1.1rem 0 0; padding: 0; list-style: none; text-align: left; border: 1px solid var(--p-line); border-radius: .8rem; }
.pdft-result-list:empty { display: none; }
.pdft-result-list li { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .5rem .8rem; font-size: .85rem; border-bottom: 1px solid var(--p-line); }
.pdft-result-list li:last-child { border-bottom: 0; }
.pdft-result-list a { display: inline-flex; align-items: center; gap: .35rem; min-width: 0; color: var(--p-accent); }
.pdft-result-list a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdft-result-list small { flex: none; color: var(--p-muted); }
.pdft-result-more { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: 1.4rem; }
.pdft-saving { display: inline-block; margin-left: .3rem; padding: .1rem .55rem; border-radius: 999px; font-size: .8rem; font-weight: 600; color: var(--p-ok); background: color-mix(in srgb, var(--p-ok) 14%, transparent); }
