/* ToolWorld plugin: pdf-to-ppt */
.pdf-to-ppt-container { width: 100%; max-width: 100%; box-sizing: border-box; margin: 0 auto; container-type: inline-size; font-size: 14px; color: var(--text, #333); }
.pdf-to-ppt-container input, .pdf-to-ppt-container select, .pdf-to-ppt-container textarea, .pdf-to-ppt-container button { box-sizing: border-box; }
.pdf-to-ppt-container img, .pdf-to-ppt-container canvas, .pdf-to-ppt-container pre { max-width: 100%; }

.pdf-to-ppt-grid { display: grid; grid-template-columns: 3fr 1fr; gap: 14px; align-items: start; }
.pdf-to-ppt-main { min-width: 0; }
.pdf-to-ppt-side { min-width: 0; position: static; }
.pdf-to-ppt-card { border: 1px solid var(--border, #e5e7eb); border-radius: var(--radius, 10px); padding: 12px 14px; margin-bottom: 10px; background: var(--card-bg, #fff); }
.pdf-to-ppt-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.pdf-to-ppt-head-t { font-size: 14px; font-weight: 600; color: var(--text, #333); }
.pdf-to-ppt-head-s { display: block; font-size: 12px; color: var(--muted, #777); font-weight: 400; margin-top: 2px; }
.pdf-to-ppt-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; }
.pdf-to-ppt-field { min-width: 0; }
.pdf-to-ppt-field-full { grid-column: 1 / -1; }
.pdf-to-ppt-label { display: block; font-size: 12.5px; font-weight: 600; color: var(--muted, #666); margin-bottom: 4px; }
.pdf-to-ppt-sel, .pdf-to-ppt-inp { width: 100%; box-sizing: border-box; padding: 7px 10px; font-size: 13.5px; border: 1px solid var(--border, #d7dbe0); border-radius: var(--radius, 8px); background: var(--card-bg, #fff); color: var(--text, #333); }
.pdf-to-ppt-sel { appearance: none; -webkit-appearance: none; padding-right: 26px; background-image: linear-gradient(45deg, transparent 50%, var(--muted, #888) 50%), linear-gradient(135deg, var(--muted, #888) 50%, transparent 50%); background-position: calc(100% - 15px) calc(50% + 1px), calc(100% - 10px) calc(50% + 1px); background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.pdf-to-ppt-sel:focus-visible, .pdf-to-ppt-inp:focus-visible, .pdf-to-ppt-ta:focus-visible { outline: 2px solid var(--primary, #1a56b0); outline-offset: 1px; }
.pdf-to-ppt-ta { width: 100%; box-sizing: border-box; padding: 10px 12px; font-size: 13px; line-height: 1.6; border: 1px solid var(--border, #d7dbe0); border-radius: var(--radius, 8px); background: var(--card-bg, #fff); color: var(--text, #333); resize: vertical; font-family: ui-monospace, SFMono-Regular, Consolas, Menlo, monospace; }
.pdf-to-ppt-ta-plain { font-family: inherit; }
.pdf-to-ppt-check { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; cursor: pointer; padding-top: 4px; }
.pdf-to-ppt-check input { width: 15px; height: 15px; accent-color: var(--primary, #1a56b0); }
.pdf-to-ppt-actions { margin-top: 12px; display: flex; gap: 10px; flex-wrap: wrap; }
.pdf-to-ppt-btn { padding: 7px 14px; font-size: 13.5px; border-radius: var(--radius, 8px); border: 1px solid var(--border, #d7dbe0); background: var(--card-bg, #fff); color: var(--text, #333); cursor: pointer; }
.pdf-to-ppt-btn-primary { background: var(--primary, #1a56b0); border-color: var(--primary, #1a56b0); color: var(--text-on-accent, #fff); }
.pdf-to-ppt-btn-primary:hover { background: var(--primary-hover, #16489a); }
.pdf-to-ppt-btn:disabled { opacity: .5; cursor: not-allowed; }
.pdf-to-ppt-status { margin-top: 12px; padding: 10px 14px; border-radius: var(--radius, 10px); font-size: 13px; line-height: 1.6; background: var(--muted-bg, #f5f6f8); color: var(--muted, #666); }
.pdf-to-ppt-status.is-ok { background: var(--bg-btn, #f0faf3); color: var(--success, #1a7f37); }
.pdf-to-ppt-status.is-err { background: var(--bg-btn, #fef2f2); color: var(--danger, #b91c1c); }
.pdf-to-ppt-status.is-loading { background: var(--bg-btn, #f0f7ff); color: var(--primary, #1a56b0); }
.pdf-to-ppt-empty { padding: 16px 12px; text-align: center; font-size: 12.5px; color: var(--muted, #888); border: 1px dashed var(--border, #d7dbe0); border-radius: var(--radius, 10px); }
.pdf-to-ppt-hint { margin-top: 6px; font-size: 12.5px; color: var(--muted, #777); line-height: 1.6; }
.pdf-to-ppt-drop { border: 2px dashed var(--border, #d7dbe0); border-radius: var(--radius, 10px); padding: 18px 12px; text-align: center; font-size: 13px; color: var(--muted, #777); cursor: pointer; background: var(--card-bg, #fff); }
.pdf-to-ppt-drop.is-over { border-color: var(--primary, #1a56b0); background: var(--bg-btn, #f0f7ff); }
.pdf-to-ppt-list { margin-top: 10px; max-height: 320px; overflow: auto; border: 1px solid var(--border, #e5e7eb); border-radius: var(--radius, 10px); }
.pdf-to-ppt-row { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-bottom: 1px solid var(--border, #eef0f3); font-size: 12.5px; }
.pdf-to-ppt-row:last-child { border-bottom: none; }
.pdf-to-ppt-row-n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdf-to-ppt-row-s { color: var(--muted, #777); font-size: 12px; flex: none; }
.pdf-to-ppt-row-ok { color: var(--success, #1a7f37); }
.pdf-to-ppt-row-err { color: var(--danger, #b91c1c); }
.pdf-to-ppt-row-del { border: none; background: none; color: var(--danger, #b91c1c); cursor: pointer; font-size: 14px; padding: 0 4px; flex: none; }
.pdf-to-ppt-prev { margin-top: 10px; text-align: center; }
.pdf-to-ppt-prev canvas, .pdf-to-ppt-prev img { max-width: 100%; border: 1px solid var(--border, #e5e7eb); border-radius: var(--radius, 10px); }
.pdf-to-ppt-kv { display: flex; gap: 8px; font-size: 12.5px; padding: 3px 0; }
.pdf-to-ppt-k { color: var(--muted, #777); min-width: 7em; flex: none; }
.pdf-to-ppt-v { word-break: break-all; }
.pdf-to-ppt-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; font-size: 12.5px; }
.pdf-to-ppt-bar { height: 6px; border-radius: var(--radius-sm, 3px); background: var(--muted-bg, #eef0f3); overflow: hidden; margin-top: 8px; }
.pdf-to-ppt-bar > i { display: block; height: 100%; background: var(--primary, #1a56b0); width: 0%; transition: width .2s; }

@container (max-width: 1039px) { .pdf-to-ppt-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (max-width: 759px)  { .pdf-to-ppt-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 519px)  { .pdf-to-ppt-fields { grid-template-columns: 1fr; } }
@container (max-width: 899px)  { .pdf-to-ppt-grid { grid-template-columns: 1fr; } .pdf-to-ppt-side { position: static; } }

@media (max-width: 899px) { .pdf-to-ppt-grid { grid-template-columns: 1fr; } }
@media (max-width: 519px) { .pdf-to-ppt-fields { grid-template-columns: 1fr; } .pdf-to-ppt-meta { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .pdf-to-ppt-actions { flex-direction: column; align-items: stretch; } .pdf-to-ppt-actions .pdf-to-ppt-btn { width: 100%; } }

/* --- 表单控件增强：勾选对齐 / 滑块 / 文件按钮 --- */
.pdf-to-ppt-field-check { display: flex; flex-direction: column; }
.pdf-to-ppt-field-check .pdf-to-ppt-check { flex: 1 1 auto; display: flex; align-items: center; padding-top: 0; }
.pdf-to-ppt-ta { width: 100%; box-sizing: border-box; padding: 10px 12px; font-size: 13px; line-height: 1.6; border: 1px solid var(--border, #d7dbe0); border-radius: var(--radius, 8px); background: var(--card-bg, #fff); color: var(--text, #333); resize: vertical; min-height: 84px; font-family: ui-monospace, SFMono-Regular, Consolas, Menlo, monospace; }
.pdf-to-ppt-ta-plain { font-family: inherit; }
input[type=range].pdf-to-ppt-inp { -webkit-appearance: none; appearance: none; width: 100%; height: 31px; padding: 0; margin: 0; border: 0; background: transparent; cursor: pointer; }
input[type=range].pdf-to-ppt-inp::-webkit-slider-runnable-track { height: 6px; border-radius: var(--radius, 8px); background: var(--border, #d7dbe0); }
input[type=range].pdf-to-ppt-inp::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; margin-top: -5px; border-radius: 50%; background: var(--primary, #1a56b0); border: 2px solid var(--card-bg, #fff); box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .12s ease; }
input[type=range].pdf-to-ppt-inp::-webkit-slider-thumb:hover { transform: scale(1.18); }
input[type=range].pdf-to-ppt-inp:active::-webkit-slider-thumb { transform: scale(1.05); }
input[type=range].pdf-to-ppt-inp::-moz-range-track { height: 6px; border-radius: var(--radius, 8px); background: var(--border, #d7dbe0); }
input[type=range].pdf-to-ppt-inp::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--primary, #1a56b0); border: 2px solid var(--card-bg, #fff); box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .12s ease; }
input[type=range].pdf-to-ppt-inp:focus-visible { outline: 2px solid var(--primary, #1a56b0); outline-offset: 2px; border-radius: var(--radius, 8px); }
input[type=file].pdf-to-ppt-file { width: 100%; box-sizing: border-box; font-size: 12.5px; color: var(--muted, #666); padding: 3px 0; }
input[type=file].pdf-to-ppt-file::file-selector-button { padding: 6px 12px; margin-right: 10px; font-size: 12.5px; border: 1px solid var(--border, #d7dbe0); border-radius: var(--radius, 8px); background: var(--muted-bg, #f5f6f8); color: var(--text, #333); cursor: pointer; transition: background .12s ease; }
input[type=file].pdf-to-ppt-file::file-selector-button:hover { background: var(--bg-btn-hover, #e8eaed); }
input[type=file].pdf-to-ppt-file::-webkit-file-upload-button { -webkit-appearance: none; padding: 6px 12px; margin-right: 10px; font-size: 12.5px; border: 1px solid var(--border, #d7dbe0); border-radius: var(--radius, 8px); background: var(--muted-bg, #f5f6f8); color: var(--text, #333); cursor: pointer; }
input[type=file].pdf-to-ppt-file::-webkit-file-upload-button:hover { background: var(--bg-btn-hover, #e8eaed); }

/* ==== 控件对齐与交互美化 ==== */
.pdf-to-ppt-check input[type=checkbox] { width:16px; height:16px; margin:0; flex:none; accent-color:var(--primary,#1a56b0); cursor:pointer; }
.pdf-to-ppt-field-check { display:flex; flex-direction:column; }
.pdf-to-ppt-field-check .pdf-to-ppt-check { flex:1 1 auto; display:flex; align-items:center; gap:8px; min-height:31px; padding:0; margin:0; }
.pdf-to-ppt-field-check .pdf-to-ppt-check > span { line-height:1.35; }
.pdf-to-ppt-ta { width:100%; max-width:100%; min-width:0; box-sizing:border-box; display:block; }
.pdf-to-ppt-rv { font-weight:600; color:var(--primary,#1a56b0); font-variant-numeric:tabular-nums; }
input[type=range].pdf-to-ppt-inp { --v:50%; }
input[type=range].pdf-to-ppt-inp::-webkit-slider-runnable-track { background:linear-gradient(to right, var(--primary,#1a56b0) 0 var(--v,50%), var(--border,#d7dbe0) var(--v,50%) 100%); }
input[type=range].pdf-to-ppt-inp::-moz-range-track { background:linear-gradient(to right, var(--primary,#1a56b0) 0 var(--v,50%), var(--border,#d7dbe0) var(--v,50%) 100%); }
input[type=range].pdf-to-ppt-inp::-webkit-slider-thumb { transition:transform .12s ease, box-shadow .12s ease; }
.pdf-to-ppt-filebtn { display:flex; align-items:center; gap:8px; min-height:31px; }
.pdf-to-ppt-filebtn > .pdf-to-ppt-btn { flex:none; }
.pdf-to-ppt-fn { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12.5px; color:var(--muted,#666); }
.pdf-to-ppt-field-hide { display:none !important; }


/* 滑块实时数值徽标 */
.pdf-to-ppt-val{display:inline-block;margin-left:6px;padding:0 6px;font-size:12px;line-height:18px;color:var(--text-secondary,#6b7281);background:var(--bg-btn,#f3f4f6);border-radius:4px;font-variant-numeric:tabular-nums;vertical-align:middle;}

/* 颜色选择器与下拉/滑块等高，保证同行控件水平一致 */
input[type=color].pdf-to-ppt-inp { height: 31px; padding: 2px 4px; }
