.tool-main{flex-direction:column;flex:1;width:100%;max-width:100%;padding:0;display:flex;overflow:hidden}.tool-header{border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem 2rem;display:flex}.tool-header__title{flex-direction:column;gap:.25rem;display:flex}.tool-title{color:var(--color-text-title);margin:0;font-size:1.3rem;font-weight:700}.tool-subtitle{color:var(--color-text-muted);margin:0;font-size:.85rem}.ppw-filename{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.8rem;overflow:hidden}.ppw-drop-zone{background-color:var(--color-surface-deep);cursor:pointer;outline:none;flex:1;justify-content:center;align-items:center;min-height:280px;transition:background-color .15s,box-shadow .15s;display:flex;position:relative}.ppw-drop-zone:focus-visible{box-shadow:inset 0 0 0 2px var(--color-accent)}.ppw-drop-zone.is-dragover{background-color:var(--color-accent-bg);box-shadow:inset 0 0 0 2px var(--color-accent)}.ppw-drop-zone.is-error{box-shadow:inset 0 0 0 2px var(--color-danger)}.ppw-drop-zone__inner{pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2.5rem 2rem;display:flex}.ppw-drop-zone__icon{opacity:.35;font-size:2.6rem;line-height:1}.ppw-drop-zone__title{color:var(--color-text-faint);letter-spacing:.02em;font-size:1rem;font-weight:600}.ppw-drop-zone__hint{color:var(--color-text-ghost);font-size:.8rem}.ppw-drop-zone__file-input{opacity:0;cursor:pointer;pointer-events:auto;width:100%;height:100%;position:absolute;inset:0}.ppw-viewer{flex:1;grid-template-columns:300px 1fr;min-height:0;display:grid;position:relative;overflow:hidden}.ppw-viewer-overlay{z-index:10;pointer-events:auto;background-color:#0000008c;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;display:flex;position:absolute;inset:0}.ppw-viewer-overlay__label{color:var(--color-text-faint);letter-spacing:.02em;font-size:.85rem;font-weight:500}.ppw-preview-panel{background-color:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;display:flex;overflow:hidden}.ppw-preview-canvas-wrap{background-color:var(--color-surface-deep);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;min-height:200px;max-height:300px;padding:.75rem;display:flex;overflow:hidden}.ppw-preview-canvas-wrap canvas{object-fit:contain;border-radius:2px;max-width:100%;max-height:280px;display:block;box-shadow:0 1px 4px #00000040}.ppw-preview-meta{flex:1;padding:.85rem 1rem;overflow-y:auto}.ppw-meta-row{border-bottom:1px solid var(--color-border-subtle);flex-direction:column;gap:.1rem;padding:.45rem 0;font-size:.78rem;display:flex}.ppw-meta-row:last-child{border-bottom:none}.ppw-meta-key{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.7rem;font-weight:600}.ppw-meta-val{color:var(--color-text-primary);word-break:break-all;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.78rem}.ppw-action-panel{background-color:var(--color-bg);flex-direction:column;display:flex;overflow-y:auto}.ppw-status-bar{background-color:var(--color-surface-raised);border-bottom:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;min-height:38px;padding:.6rem 1.25rem;display:flex}.ppw-stat{color:var(--color-text-secondary);background-color:var(--color-surface);border:1px solid var(--color-border);white-space:nowrap;border-radius:12px;align-items:center;gap:.3rem;padding:.18rem .55rem;font-size:.78rem;display:inline-flex}.ppw-stat--accent{color:var(--color-accent);background-color:var(--color-accent-bg);border-color:var(--color-accent-border)}.ppw-stat--warn{color:var(--color-warning);background-color:var(--color-warning-bg);border-color:var(--color-warning-border)}.ppw-stat--success{color:var(--color-success);background-color:var(--color-success-bg);border-color:var(--color-success-border)}.ppw-stat--muted{color:var(--color-text-muted);background-color:#0000;border-color:#0000}.ppw-tabs{border-bottom:1px solid var(--color-border);background-color:var(--color-surface);scrollbar-width:none;flex-shrink:0;align-items:center;gap:0;padding:0 1.25rem;display:flex;overflow-x:auto}.ppw-tabs::-webkit-scrollbar{display:none}.ppw-tab{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.65rem 1rem;font-size:.82rem;font-weight:500;transition:color .15s,border-color .15s}.ppw-tab:hover{color:var(--color-text-primary)}.ppw-tab.is-active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.ppw-tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.ppw-form-panel{flex-direction:column;flex:1;justify-content:flex-start;align-items:center;gap:1.25rem;padding:2rem;display:flex}.ppw-form-group{flex-direction:column;gap:.4rem;width:100%;max-width:420px;display:flex}.ppw-form-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.78rem;font-weight:600}.ppw-form-input-wrap{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:6px;align-items:center;gap:0;transition:border-color .15s;display:flex;overflow:hidden}.ppw-form-input-wrap:focus-within{border-color:var(--color-accent)}.ppw-form-input{color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:.6rem .75rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.88rem}.ppw-form-input::placeholder{color:var(--color-text-ghost);font-family:system-ui,-apple-system,sans-serif}select.ppw-form-input{background-color:var(--color-surface);cursor:pointer;appearance:auto;font-family:system-ui,-apple-system,sans-serif}.ppw-toggle-vis{border:none;border-left:1px solid var(--color-border);cursor:pointer;min-width:44px;min-height:44px;color:var(--color-text-muted);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:.55rem .65rem;transition:color .15s;display:inline-flex}.ppw-toggle-vis:hover{color:var(--color-text-primary)}.ppw-toggle-vis:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.ppw-form-hint{color:var(--color-text-ghost);font-size:.75rem}.ppw-form-hint--warn{color:var(--color-warning)}.ppw-form-error{color:var(--color-danger);min-height:1.1em;font-size:.78rem}.ppw-strength{align-items:center;gap:.5rem;width:100%;max-width:420px;display:flex}.ppw-strength-bar{background-color:var(--color-border);border-radius:2px;flex:1;height:4px;overflow:hidden}.ppw-strength-fill{border-radius:2px;height:100%;transition:width .25s,background-color .25s}.ppw-strength-label{letter-spacing:.04em;white-space:nowrap;font-size:.72rem;font-weight:600}.ppw-action-primary{color:var(--color-accent-on);background-color:var(--color-accent);cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;width:100%;max-width:420px;padding:.65rem 1.5rem;font-size:.88rem;font-weight:600;transition:background-color .15s,opacity .15s;display:inline-flex}.ppw-action-primary:not(:disabled):hover{opacity:.9}.ppw-action-primary:disabled{opacity:.45;cursor:not-allowed}.ppw-action-primary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ppw-permissions{flex-direction:column;gap:.35rem;width:100%;max-width:420px;display:flex}.ppw-permissions-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.2rem;font-size:.78rem;font-weight:600}.ppw-perm-row{align-items:center;gap:.55rem;padding:.35rem 0;display:flex}.ppw-perm-row label{color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.82rem}.ppw-perm-row input[type=checkbox]{accent-color:var(--color-accent);cursor:pointer;flex-shrink:0;width:15px;height:15px}.ppw-info-notice{background-color:var(--color-accent-bg);border:1px solid var(--color-accent-border);width:100%;max-width:420px;color:var(--color-accent);border-radius:6px;align-items:flex-start;gap:.5rem;padding:.65rem .85rem;font-size:.78rem;line-height:1.45;display:flex}.ppw-info-notice--warn{background-color:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.ppw-info-notice--success{background-color:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.ppw-info-notice svg{flex-shrink:0;margin-top:1px}.ppw-redownload{color:inherit;font:inherit;font-size:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;text-decoration:underline}.ppw-redownload:hover{opacity:.75}.ppw-viewer-toast{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);max-width:calc(100vw - 3rem);color:var(--color-danger);pointer-events:none;opacity:0;z-index:100;border-radius:6px;padding:.6rem 1rem;font-size:.85rem;transition:opacity .2s;position:fixed;bottom:1.5rem;left:1.5rem;right:1.5rem}.ppw-viewer-toast.is-visible{opacity:1}@keyframes ppw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ppw-spin{animation:1s linear infinite ppw-spin}@media (width<=900px){.ppw-viewer{grid-template-rows:auto 1fr;grid-template-columns:1fr}.ppw-preview-panel{border-right:none;border-bottom:1px solid var(--color-border);flex-direction:row;max-height:160px}.ppw-preview-canvas-wrap{border-bottom:none;border-right:1px solid var(--color-border);flex-shrink:0;width:140px;min-height:auto;max-height:160px;padding:.5rem}.ppw-preview-canvas-wrap canvas{max-height:140px}.ppw-preview-meta{padding:.6rem .85rem}}@media (width<=600px){.tool-header{flex-direction:column;gap:.75rem;padding:1rem}.ppw-filename{width:100%;max-width:100%}.ppw-preview-panel{flex-direction:column;max-height:none}.ppw-preview-canvas-wrap{border-right:none;border-bottom:1px solid var(--color-border);width:100%;max-height:200px}.ppw-status-bar{padding:.5rem .85rem}.ppw-tabs{padding:0 .5rem}.ppw-tab{padding:.55rem .7rem;font-size:.78rem}.ppw-form-panel{padding:1.25rem 1rem}}
