.pp-tool{overflow:hidden}
.pp-app{display:grid;gap:14px}
.pp-panel{min-width:0;padding:14px;border:1px solid var(--border,#e3e6ea);border-radius:12px;background:var(--surface,#fff)}
.pp-panel h2,.pp-panel h3{margin:0 0 10px}
.pp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pp-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.pp-grid.one{grid-template-columns:minmax(0,1fr)}
.pp-field{display:grid;gap:6px;min-width:0;color:var(--text-muted,#626a73);font-size:.92rem}
.pp-field input,.pp-field select,.pp-field textarea,.pp-input{box-sizing:border-box;width:100%;min-height:40px;padding:9px 11px;border:1px solid var(--border,#dfe2e7);border-radius:9px;background:var(--surface,#fff);color:var(--text,#222);font:inherit}
.pp-field textarea{min-height:104px;resize:vertical;line-height:1.55}
.pp-field input[type=checkbox],.pp-field input[type=radio]{width:auto;min-height:0;accent-color:#f1404b}
.pp-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.pp-file{display:inline-flex;position:relative;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border-radius:9px;background:var(--surface-soft,#f1f2f4);color:var(--text,#252a31);font-weight:650;cursor:pointer}
.pp-file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.pp-status{min-height:24px;padding:10px 12px;border-radius:9px;background:var(--surface-soft,#f4f5f7);color:var(--text,#343a40);line-height:1.55;overflow-wrap:anywhere}
.pp-status[data-state=error]{background:#fff0f0;color:#a5242b}
.pp-status[data-state=ok]{background:#eef8f0;color:#23613b}
.pp-hint{margin:8px 0 0;color:var(--text-muted,#747b84);font-size:.9rem;line-height:1.55}
.pp-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px}
.pp-metric{padding:11px 12px;border-radius:10px;background:var(--surface-soft,#f4f5f7)}
.pp-metric span{display:block;color:var(--text-muted,#747b84);font-size:.83rem}
.pp-metric strong{display:block;margin-top:4px;color:var(--text,#222);font-size:1.12rem;overflow-wrap:anywhere}
.pp-table-wrap{max-width:100%;max-height:58vh;overflow:auto;border:1px solid var(--border,#e3e6ea);border-radius:9px}
.pp-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}
.pp-table th,.pp-table td{padding:8px 10px;border-right:1px solid var(--border,#e3e6ea);border-bottom:1px solid var(--border,#e3e6ea);text-align:left;vertical-align:top}
.pp-table th{position:sticky;top:0;z-index:2;background:var(--surface-soft,#f3f4f6);color:var(--text-muted,#626a73);white-space:nowrap}
.pp-table td{max-width:360px;overflow-wrap:anywhere}
.pp-table tr:last-child td{border-bottom:0}
.pp-table td:last-child,.pp-table th:last-child{border-right:0}
.pp-table input,.pp-table select{min-width:100px;min-height:34px;padding:5px 7px;border:1px solid var(--border,#dfe2e7);border-radius:6px;background:var(--surface,#fff);color:var(--text,#222);font:inherit}
.pp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.pp-toolbar strong{font-size:1rem}
.pp-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#f1f2f4;color:var(--text-muted,#626a73);font-size:.82rem}
.pp-badge.warn{background:#fff1d7;color:#805500}
.pp-badge.danger{background:#fff0f0;color:#a5242b}
.pp-badge.good{background:#eef8f0;color:#23613b}
.pp-callout{padding:12px 14px;border-left:3px solid #f1404b;border-radius:8px;background:var(--surface-soft,#f4f5f7);line-height:1.6}
.pp-scroll{max-height:55vh;overflow:auto}
.pp-hidden{display:none!important}
.pp-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pp-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.pp-code{padding:11px;border-radius:8px;background:#17191d;color:#f0f0f0;font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:32vh;overflow:auto}
.pp-progress{height:8px;border-radius:999px;background:var(--surface-soft,#f1f2f4);overflow:hidden}
.pp-progress span{display:block;height:100%;width:0;background:#f1404b;transition:width .12s}
.pp-tabs{display:flex;gap:7px;flex-wrap:wrap}
.pp-tabs button[aria-pressed=true]{border-color:#f1404b;color:#d92f3f}
.pp-otp{font:700 clamp(2rem,8vw,3rem)/1.15 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;text-align:center;padding:16px}
.pp-timer{height:6px;border-radius:99px;background:var(--surface-soft,#eee);overflow:hidden}
.pp-timer span{display:block;height:100%;background:#f1404b;transform-origin:left center}
.pp-scan-screen{min-height:150px;padding:15px;border-radius:12px;background:#1d2229;color:#f3f5f7;cursor:crosshair}
.pp-scan-screen:focus{outline:3px solid #f1404b}
.pp-scan-digits{font:600 1.2rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.pp-tree-result{display:grid;gap:8px}
.pp-findings details{padding:9px 11px;border-bottom:1px solid var(--border,#e3e6ea)}
.pp-findings summary{cursor:pointer}
.pp-kv{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,2fr);gap:8px;padding:5px 0;border-bottom:1px solid var(--border,#eceef0)}
.pp-kv span:first-child{color:var(--text-muted,#747b84)}
.pp-totp-code{padding:14px;border-radius:10px;background:var(--surface-soft,#f4f5f7);font:750 clamp(2rem,8vw,3.25rem)/1.15 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em;text-align:center;overflow-wrap:anywhere}
.pp-openapi{grid-template-columns:minmax(250px,.8fr) minmax(0,1.5fr);align-items:start}
.pp-op-list{display:grid;gap:6px;max-height:65vh;overflow:auto}
.pp-op-item{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:start;gap:8px;width:100%;padding:9px 10px;border:1px solid var(--border,#e3e6ea);border-radius:8px;background:var(--surface,#fff);color:var(--text,#252a31);text-align:left;cursor:pointer}
.pp-op-item strong{font:700 .8rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:#d92f3f}
.pp-op-item span{overflow-wrap:anywhere}
.pp-op-item:hover,.pp-op-item.is-current{border-color:#f1404b;background:var(--surface-soft,#fff5f5)}
.pp-openapi pre{max-width:100%;max-height:35vh;overflow:auto;padding:10px;border-radius:8px;background:var(--surface-soft,#f4f5f7);white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}
@media(max-width:800px){.pp-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.pp-openapi{grid-template-columns:1fr}.pp-op-list{max-height:38vh}}
@media(max-width:620px){.pp-grid,.pp-grid.three{grid-template-columns:1fr}.pp-panel{padding:11px}.pp-actions .btn{min-height:40px}.pp-table-wrap{max-height:50vh}.pp-kv{grid-template-columns:1fr;gap:2px}.pp-openapi pre{max-height:28vh}}
@media print{.pp-actions,.pp-file,.pp-toolbar button,.pp-no-print{display:none!important}.pp-table-wrap,.pp-scroll{max-height:none;overflow:visible}.pp-table th{position:static}.pp-panel{break-inside:avoid}}
