.pti .dropzone:focus-visible{box-shadow:var(--focus-ring);border-color:var(--primary);outline:none}.pti .pti-file .fr-thumb{color:var(--primary-text)}.pti .pti-file .fr-thumb svg{width:22px;height:22px}.pti .fr-bar>span{width:100%}.pti[data-phase=uploading] .fr-bar>span,.pti[data-phase=processing] .fr-bar>span{width:40%;animation:ti-load .9s var(--ease)infinite}.pti-status{font-size:var(--fs-small);color:var(--text-2);margin-top:12px}.pti-status:empty{margin-top:0}.pti[data-phase=done] .pti-status{color:var(--success-text);font-weight:600}.pti-error{border:1px solid color-mix(in oklch,var(--danger)35%,var(--border));border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger-text);font-size:var(--fs-small);align-items:flex-start;gap:10px;margin-top:12px;padding:10px 12px;display:flex}.pti-error svg{flex:none;width:18px;height:18px;margin-top:1px}.pti-grid{grid-gap:14px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin:16px 0 0;padding:0;list-style:none;display:grid}.pti-page{flex-direction:column;gap:6px;min-width:0;display:flex}.pti-thumb{aspect-ratio:3/4;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-3);transition:border-color var(--dur)var(--ease);place-items:center;padding:6px;display:grid;overflow:hidden}.pti-thumb:hover{border-color:var(--primary-border)}.pti-thumb img{-o-object-fit:contain;object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--shadow-sm);background:#fff;display:block}.pti-cap{font-size:var(--fs-caption);color:var(--text-2);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:8px;display:flex}.pti .tw-side .pti-actions{flex-direction:column;gap:8px;display:flex}.pti .tw-side .pti-hint{font-size:var(--fs-caption);color:var(--text-3)}.pti-guide td:first-child{white-space:nowrap}@media (max-width:860px){.pti-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}}@media (max-width:480px){.pti-guide td:first-child{white-space:normal}}@media (prefers-reduced-motion:reduce){.pti[data-phase] .fr-bar>span{animation:none}.pti-thumb,.pti .fr-bar>span{transition:none}}
