.p2x-page{--color-text-primary:var(--color-text);--p2x-accent:var(--color-primary);--p2x-surface:#fff;--p2x-soft:var(--color-bg);--p2x-border:#cbd5e1;--p2x-muted:#64748b}[data-theme=dark] .p2x-page{--p2x-accent:#a5b4fc;--p2x-surface:var(--color-bg-secondary);--p2x-border:#475569;--p2x-muted:#cbd5e1}.p2x-page .tool-intro{margin-bottom:var(--space-3)}.p2x,.p2x-config,.p2x-workspace{display:flex;flex-direction:column;gap:var(--space-4)}.p2x,.p2x-config,.p2x-workspace,.p2x>*{max-width:100%;min-width:0}.p2x [hidden]{display:none}.p2x svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.p2x .tool-ui__header{margin-bottom:0}.p2x-content__table-wrap:focus-visible,.p2x-page-button:focus-visible,.p2x-range input:focus-visible{outline:3px solid color-mix(in srgb,var(--p2x-accent) 38%,transparent);outline-offset:3px}.tool-ui--file-input .p2x-upload.tool-file-input{grid-template-rows:auto 1fr auto}.tool-ui--file-input .p2x-upload.tool-file-input.is-dragging{background:color-mix(in srgb,var(--color-primary) 7%,var(--color-bg));border-color:var(--color-primary)}.p2x-upload__bottom{align-self:end}.p2x-upload .p2x-upload__sample{align-items:baseline;display:flex;flex-wrap:wrap;font-size:var(--text-xs);gap:2px 6px;justify-content:flex-start;line-height:1.6;margin:0;max-width:100%}.p2x-upload__sample button{background:none;border:0;color:var(--p2x-accent);cursor:pointer;font:inherit;font-weight:var(--font-semibold);max-width:100%;padding:0;text-decoration:none;white-space:normal}.p2x-upload__sample button:hover{color:var(--color-text)}.p2x-upload__sample button:focus-visible{border-radius:2px;outline:2px solid var(--p2x-accent);outline-offset:3px}.p2x-upload__sample button:disabled{cursor:wait;opacity:.55}.p2x-error{align-items:flex-start;background:color-mix(in srgb,var(--color-error) 7%,var(--p2x-surface));border:1px solid color-mix(in srgb,var(--color-error) 30%,var(--p2x-border));border-radius:var(--radius-lg);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.p2x-error>svg{color:var(--color-error);flex:0 0 auto;height:22px;width:22px}.p2x-error div{flex:1;min-width:0}.p2x-error strong{color:var(--color-text);display:block;font-size:var(--text-sm);margin-bottom:var(--space-1)}.p2x-error p{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.6;margin:0}.p2x-error button{background:transparent;border:0;color:var(--p2x-muted);cursor:pointer;font-size:var(--text-2xl)}.p2x-file{align-items:center;background:var(--p2x-soft);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.p2x-file__icon{background:color-mix(in srgb,var(--color-error) 9%,var(--p2x-surface));border-radius:var(--radius-md);color:var(--color-error);display:grid;flex:0 0 auto;height:38px;place-items:center;width:38px}.p2x-file__icon svg{height:22px;width:22px}.p2x-file__meta{flex:1;min-width:0}.p2x-file__meta strong{color:var(--color-text);display:block;font-size:var(--text-sm);margin-bottom:var(--space-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p2x-file__meta span{color:var(--p2x-muted);font-size:var(--text-xs)}.p2x-section-head{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between}.p2x-section-head h3{color:var(--color-text);font-size:var(--text-base);margin:0 0 2px}.p2x-section-head p{color:var(--p2x-muted);font-size:var(--text-xs);margin:0}.p2x-check{align-items:center;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font-size:var(--text-sm);gap:var(--space-2);white-space:nowrap}.p2x-check input{accent-color:var(--p2x-accent);height:17px;width:17px}.p2x-page-controls{background:var(--p2x-soft);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);min-width:0;overflow:hidden}@media (min-width:721px){.p2x-page-controls:has(.p2x-page-button:only-child){grid-template-columns:minmax(0,1fr) 120px}}.p2x-range{border-right:1px solid var(--p2x-border);min-width:0;padding:var(--space-3) var(--space-4)}.p2x-range>label{color:var(--color-text);display:block;font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:6px}.p2x-range__controls{display:flex;gap:var(--space-2)}.p2x-range input{background:var(--p2x-surface);border:1px solid var(--p2x-border);border-radius:var(--radius-md);color:var(--color-text);flex:1;font:inherit;font-size:var(--text-sm);min-height:42px;min-width:0;padding:8px 10px}.p2x-range small{color:var(--p2x-muted);display:block;font-size:var(--text-xs);line-height:1.45;margin-top:6px}.p2x-page-grid{align-content:safe center;align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);max-height:152px;overflow-y:auto;padding:var(--space-3)}.p2x-page-button{align-items:center;background:var(--p2x-surface);border:1px solid var(--p2x-border);border-radius:var(--radius-sm);color:var(--p2x-muted);cursor:pointer;display:inline-flex;flex:0 0 auto;font:inherit;font-size:13px;font-weight:500;justify-content:center;line-height:1.3;min-height:38px;padding:8px 14px;position:relative;transition:color .15s ease,border-color .15s ease,background-color .15s ease;user-select:none;white-space:nowrap}.p2x-page-button:hover,.p2x-page-button[aria-pressed=true]{border-color:var(--p2x-accent);color:var(--p2x-accent)}.p2x-page-button[aria-pressed=true]{background:color-mix(in srgb,var(--p2x-accent) 10%,var(--p2x-surface));padding-right:26px}.p2x-page-button[aria-pressed=true]:after{content:"✓";font-size:11px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.p2x-options{background:var(--p2x-soft);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);margin:0;min-width:0;padding:var(--space-3) var(--space-4)}.p2x-options legend{color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:0 var(--space-2)}.p2x-option-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.p2x-option-card{align-items:flex-start;background:var(--p2x-surface);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);cursor:pointer;display:flex;gap:var(--space-3);min-width:0;padding:var(--space-3);position:relative}.p2x-option-card:has(input:checked){background:color-mix(in srgb,var(--p2x-accent) 8%,var(--p2x-surface));border-color:var(--p2x-accent)}.p2x-option-card input,.p2x-switch input{opacity:0;position:absolute}.p2x-option-card__mark{border:2px solid var(--p2x-muted);border-radius:var(--radius-full);box-shadow:inset 0 0 0 3px var(--p2x-surface);flex:0 0 auto;height:17px;width:17px}.p2x-option-card input:checked+.p2x-option-card__mark{background:var(--p2x-accent);border-color:var(--p2x-accent)}.p2x-option-card>span:nth-of-type(2){flex:1;min-width:0}.p2x-option-card small,.p2x-option-card strong{display:block}.p2x-option-card strong{color:var(--color-text);font-size:var(--text-sm);margin-bottom:var(--space-1)}.p2x-option-card small{color:var(--p2x-muted);font-size:var(--text-xs);line-height:1.55}.p2x-option-card:has(input:focus-visible){outline:2px solid var(--p2x-accent);outline-offset:3px}.p2x-switches{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin-top:var(--space-3)}.p2x-switch{align-items:center;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font-size:var(--text-sm);gap:var(--space-2)}.p2x-switch>span{background:var(--p2x-muted);border-radius:var(--radius-full);flex:0 0 auto;height:20px;position:relative;width:34px}.p2x-switch>span:after{background:#fff;border-radius:var(--radius-full);content:"";height:14px;left:3px;position:absolute;top:3px;transition:transform var(--transition-fast);width:14px}.p2x-switch input:checked+span{background:var(--p2x-accent)}.p2x-switch input:checked+span:after{transform:translateX(14px)}.p2x-switch input:focus-visible+span{outline:2px solid var(--p2x-accent);outline-offset:3px}.p2x-note{align-items:flex-start;border-top:1px solid var(--p2x-border);display:flex;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3)}.p2x-note svg{color:var(--color-warning);flex:0 0 auto;height:16px;width:16px}.p2x-note p{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:1.45;margin:0}.p2x-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.p2x-actions svg,.p2x-result__actions svg{height:18px;width:18px}.p2x-progress{background:var(--p2x-soft);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);padding:var(--space-6)}.p2x-progress__top{align-items:center;display:flex;gap:var(--space-3)}.p2x-spinner{animation:p2x-spin .8s linear infinite;border:3px solid var(--p2x-border);border-radius:var(--radius-full);border-top-color:var(--p2x-accent);flex:0 0 auto;height:34px;width:34px}@keyframes p2x-spin{to{transform:rotate(1turn)}}.p2x-progress__top>div:nth-child(2){flex:1;min-width:0}.p2x-progress span,.p2x-progress strong{display:block}.p2x-progress strong{color:var(--color-text);font-size:var(--text-sm)}.p2x-progress span{color:var(--p2x-muted);font-size:var(--text-xs);margin-top:var(--space-1)}.p2x-progress b{color:var(--p2x-accent);font-size:var(--text-sm)}.p2x-progress__track{background:var(--p2x-border);border-radius:var(--radius-full);height:7px;margin-top:var(--space-4);overflow:hidden}.p2x-progress__track span{background:var(--p2x-accent);height:100%;margin:0;transition:width var(--transition-fast);width:0}.p2x-result{background:color-mix(in srgb,var(--color-success) 8%,var(--p2x-surface));border:1px solid color-mix(in srgb,var(--color-success) 34%,var(--p2x-border));border-radius:var(--radius-xl);container:p2x-result/inline-size;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6)}.p2x-result__heading{align-items:center;display:flex;gap:var(--space-3)}.p2x-result__check{background:color-mix(in srgb,var(--color-success) 12%,var(--p2x-surface));border-radius:var(--radius-full);color:var(--color-success);display:grid;flex:0 0 auto;height:46px;place-items:center;width:46px}.p2x-result__check svg{height:28px;stroke-width:1.9;width:28px}.p2x-result h3{color:var(--color-text);font-size:var(--text-lg);margin:0 0 var(--space-1)}.p2x-result__heading p{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0;overflow-wrap:anywhere}.p2x-result__overview,.p2x-stats{display:grid;gap:var(--space-3);min-width:0}.p2x-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.p2x-stats div{background:var(--p2x-surface);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);padding:var(--space-3);text-align:center}.p2x-stats span,.p2x-stats strong{display:block}.p2x-stats strong{color:var(--color-text);font-size:var(--text-xl)}.p2x-stats span{color:var(--p2x-muted);font-size:var(--text-xs);margin-top:var(--space-1)}.p2x-sheets{background:var(--p2x-surface);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.p2x-sheets>strong{color:var(--color-text);display:block;font-size:var(--text-sm);margin-bottom:var(--space-2)}.p2x-sheets ul{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.p2x-sheets li{align-items:center;background:var(--p2x-soft);border:1px solid var(--p2x-border);border-radius:var(--radius-sm);display:inline-flex;font-size:var(--text-xs);gap:var(--space-2);max-width:100%;padding:6px 10px}.p2x-sheets li strong{color:var(--color-text);font-weight:var(--font-semibold);overflow-wrap:anywhere}.p2x-sheets li span{color:var(--p2x-muted)}@container p2x-result (min-width: 680px){.p2x-result__overview{grid-template-columns:minmax(0,3fr) minmax(260px,2fr)}.p2x-sheets ul{max-height:84px;overflow-y:auto}.p2x-sheets li{gap:6px;padding:5px 7px}}.p2x-preview-wrap{background:var(--p2x-surface);border:1px solid var(--p2x-border);border-radius:var(--radius-lg);overflow:hidden}.p2x-preview-head{align-items:center;border-bottom:1px solid var(--p2x-border);display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between;padding:var(--space-3)}.p2x-preview-head strong{color:var(--color-text);font-size:var(--text-sm)}.p2x-preview-head span{color:var(--p2x-muted);font-size:var(--text-xs)}.p2x-preview-tabs{border-bottom:1px solid var(--p2x-border);display:flex;gap:4px;overflow-x:auto;padding:8px 12px 0;scrollbar-width:thin}.p2x-preview-tab{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--p2x-muted);cursor:pointer;flex:0 0 auto;font:inherit;font-size:var(--text-sm);min-height:36px;padding:6px 12px}.p2x-preview-tab:hover{background:var(--p2x-soft);color:var(--p2x-accent)}.p2x-preview-tab[aria-selected=true]{border-bottom-color:var(--p2x-accent);color:var(--p2x-accent);font-weight:var(--font-semibold)}.p2x-preview-scroll:focus-visible,.p2x-preview-tab:focus-visible{outline:2px solid var(--p2x-accent);outline-offset:-2px}.p2x-preview-scroll{max-height:310px;overflow:auto}.p2x-preview{border-collapse:collapse;color:var(--color-text-secondary);font-size:var(--text-xs);min-width:480px;width:100%}.p2x-preview th{background:var(--p2x-soft);color:var(--p2x-muted);text-align:center}.p2x-preview td,.p2x-preview th{border-bottom:1px solid var(--p2x-border);border-right:1px solid var(--p2x-border);max-width:230px;overflow:hidden;padding:var(--space-2);text-overflow:ellipsis;white-space:nowrap}.p2x-result__actions{align-items:center;display:flex;flex-direction:column;gap:var(--space-2)}.p2x-result__secondary{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.p2x-result__actions a{text-decoration:none}.p2x-result__actions #p2xDownloadBtn:hover{color:#fff}[data-theme=dark] .p2x-result__actions #p2xDownloadBtn:hover{color:#0f172a}.p2x-result__review{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.6;margin:0}.p2x-content,body .tool-page.p2x-page .main-column .how-to-use{margin-bottom:var(--space-8)}.p2x-content{background:var(--p2x-surface);border:1px solid var(--p2x-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);min-width:0;padding:var(--space-6)}.p2x-content h2{color:var(--color-text);font-size:var(--text-xl);line-height:1.4;margin:0 0 var(--space-4);scroll-margin-top:100px}.p2x-content h3{color:var(--color-text);font-size:var(--text-base);line-height:1.5;margin:0 0 var(--space-2)}.p2x-content dd,.p2x-content p{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.75;margin:0}.p2x-content__table-wrap{border:1px solid var(--p2x-border);border-radius:var(--radius-lg);max-width:100%;overflow-x:auto}.p2x-content__table{border-collapse:collapse;font-size:var(--text-sm);line-height:1.65;min-width:580px;width:100%}.p2x-content__table td,.p2x-content__table th{border-bottom:1px solid var(--p2x-border);padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top}.p2x-content__table thead th{background:var(--p2x-soft);color:var(--color-text)}.p2x-content__table tbody th{color:var(--color-text);font-weight:var(--font-semibold);width:28%}.p2x-content__table td{color:var(--color-text-secondary)}.p2x-content__table tr:last-child>*{border-bottom:0}.p2x-content__checks{display:grid;gap:var(--space-5)}.p2x-content__item{border-bottom:1px solid var(--p2x-border);padding-bottom:var(--space-5)}.p2x-content__item:last-child{border-bottom:0;padding-bottom:0}.p2x-content__issues{display:grid;gap:var(--space-4);margin:0}.p2x-content__issues>div{border-bottom:1px solid var(--p2x-border);display:grid;gap:var(--space-4);grid-template-columns:minmax(160px,.7fr) minmax(0,1.8fr);padding-bottom:var(--space-4)}.p2x-content__issues>div:last-child{border-bottom:0;padding-bottom:0}.p2x-content dt{color:var(--color-text);font-size:var(--text-sm);line-height:1.65}.p2x-content a,.p2x-content dt{font-weight:var(--font-semibold)}.p2x-content a{color:var(--p2x-accent);text-decoration:underline;text-underline-offset:.2em}body .tool-page.p2x-page .main-column .faq-section--tool{margin-bottom:var(--space-8)}.p2x-page .faq-section__answer a{color:var(--p2x-accent);text-decoration:underline;text-underline-offset:.2em}@media (max-width:720px){.p2x-content{padding:var(--space-4)}.p2x-content,body .tool-page.p2x-page .main-column .how-to-use{margin-bottom:var(--space-6)}.p2x-upload .p2x-upload__sample{justify-content:center}.p2x-option-grid,.p2x-page-controls{grid-template-columns:1fr}.p2x-range{border-bottom:1px solid var(--p2x-border);border-right:0}.p2x-page-grid{max-height:150px}.p2x-content__issues>div{gap:var(--space-2);grid-template-columns:1fr}.p2x-content__table-wrap{border:0;border-radius:0;overflow:visible}.p2x-content__table,body .tool-page.p2x-page .main-column .tool-editorial .tool-editorial__table-wrap>table.p2x-content__table{display:block;min-width:0}.p2x-content__table thead{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;width:1px}.p2x-content__table tbody{display:grid;gap:var(--space-4)}.p2x-content__table tr{border:1px solid var(--p2x-border);border-radius:var(--radius-lg);display:block;overflow:hidden}.p2x-content__table tbody th,.p2x-content__table td{border-bottom:0;display:block;padding:var(--space-3);width:100%}.p2x-content__table tbody th{background:var(--p2x-soft)}.p2x-content__table td:before{color:var(--p2x-accent);content:attr(data-label);display:block;font-size:var(--text-xs);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}}@media (max-width:520px){.p2x-section-head{align-items:flex-start;flex-wrap:wrap}.p2x-actions,.p2x-result__actions{flex-direction:column}.p2x-actions .btn,.p2x-result__actions .btn{width:100%}.p2x-result__secondary{flex-direction:row;flex-wrap:nowrap;width:100%}.p2x-result__secondary .btn{flex:1 1 0;font-size:var(--text-xs);min-width:0;padding:10px 6px;width:auto}.p2x-file{flex-wrap:wrap}.p2x-result{padding:var(--space-4)}.p2x-result__heading{align-items:flex-start}.p2x-stats{gap:var(--space-2)}.p2x-stats div{padding:var(--space-2)}}@media (max-width:340px){.p2x-result__secondary .btn{font-size:11px;padding-inline:4px}}@media (prefers-reduced-motion:reduce){.p2x-page-button,.p2x-progress__track span,.p2x-switch>span:after{transition:none}}