.pg-shell{--pg-sidebar-w:280px;--pg-toolbar-h:48px;--pg-ink:hsl(var(--ink-1));--pg-ink2:hsl(var(--ink-2));--pg-ink3:hsl(var(--ink-3));--pg-ink4:hsl(var(--ink-4));--pg-surface:hsl(var(--surface-0));--pg-surface-1:hsl(var(--surface-1));--pg-surface-2:hsl(var(--surface-2));--pg-border:hsl(var(--border-primary));--pg-accent:hsl(var(--brand-accent));--pg-accent-soft:hsl(var(--brand-accent)/0.08);--pg-accent-mid:hsl(var(--brand-accent)/0.15);--pg-ok:hsl(var(--signal-green));--pg-ok-soft:hsl(var(--signal-green)/0.08);--pg-err:hsl(var(--signal-red));--pg-err-soft:hsl(var(--signal-red)/0.08);--pg-warn:hsl(var(--signal-amber));--pg-warn-soft:hsl(var(--signal-amber)/0.08);display:grid;grid-template-columns:var(--pg-sidebar-w) 1fr;grid-template-rows:var(--pg-toolbar-h) 1fr;grid-template-areas:"sidebar toolbar" "sidebar main";height:100vh;overflow:hidden;color:var(--pg-ink);font-family:var(--font-sans)}.pg-shell,.pg-toolbar{background:var(--pg-surface)}.pg-toolbar{grid-area:toolbar;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--pg-border);z-index:10}.pg-toolbar-title{font-size:.8125rem;font-weight:600;color:var(--pg-ink);letter-spacing:-.01em}.pg-toolbar-sep{width:1px;height:20px;background:var(--pg-border);flex-shrink:0}.pg-toolbar-meta{font-size:.6875rem;color:var(--pg-ink3);font-family:var(--font-mono)}.pg-toolbar-spacer{flex:1}.pg-sidebar{grid-area:sidebar;display:flex;flex-direction:column;border-right:1px solid var(--pg-border);background:var(--pg-surface-1);overflow:hidden}.pg-sidebar-header{display:flex;align-items:center;gap:10px;padding:0 16px;height:var(--pg-toolbar-h);border-bottom:1px solid var(--pg-border);flex-shrink:0}.pg-sidebar-logo{font-size:.8125rem;font-weight:700;color:var(--pg-ink);letter-spacing:-.02em}.pg-sidebar-badge{font-size:.5625rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--pg-accent);background:var(--pg-accent-soft);padding:2px 6px;border-radius:4px}.pg-sidebar-scroll{flex:1;overflow-y:auto;padding:12px 0}.pg-sidebar-section{padding:0 12px;margin-bottom:16px}.pg-sidebar-kicker{font-size:.5625rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--pg-ink4);padding:0 4px;margin-bottom:4px}.pg-sidebar-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:6px;border:none;background:transparent;color:var(--pg-ink2);font-size:.8125rem;font-family:var(--font-sans);cursor:pointer;text-align:left;transition:background .12s,color .12s}.pg-sidebar-item:hover{background:var(--pg-accent-soft);color:var(--pg-ink)}.pg-sidebar-item[aria-pressed=true]{background:var(--pg-accent-mid);color:var(--pg-ink);font-weight:500}.pg-sidebar-item-icon{width:16px;height:16px;flex-shrink:0;opacity:.5}.pg-sidebar-item[aria-pressed=true] .pg-sidebar-item-icon{opacity:.8}.pg-sidebar-item-types{margin-left:auto;font-size:.625rem;font-family:var(--font-mono);color:var(--pg-ink4);flex-shrink:0}.pg-main{grid-area:main;display:grid;grid-template-columns:1fr 1fr;gap:0;overflow:hidden}.pg-main--editor-only{grid-template-columns:1fr}.pg-editor-pane{display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--pg-border)}.pg-editor-header{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--pg-border);background:var(--pg-surface-1);flex-shrink:0}.pg-editor-tab{font-size:.75rem;font-family:var(--font-mono);color:var(--pg-ink3);padding:4px 8px;border-radius:4px;background:transparent;border:none;cursor:pointer}.pg-editor-tab[aria-selected=true]{color:var(--pg-ink);background:var(--pg-surface-2)}.pg-editor-body{flex:1;overflow:auto;position:relative}.pg-editor-textarea{width:100%;height:100%;padding:16px;background:hsl(var(--ink-1));color:rgba(255,255,255,.88);border:none;outline:none;resize:none;font-size:.8125rem;font-family:var(--font-mono);line-height:1.6;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.pg-editor-footer{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--pg-border);background:var(--pg-surface-1);flex-shrink:0}.pg-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;border:1px solid var(--pg-border);background:var(--pg-surface);color:var(--pg-ink);font-size:.75rem;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.pg-btn:hover{background:var(--pg-surface-1)}.pg-btn:disabled{opacity:.5;cursor:not-allowed}.pg-btn--primary{background:var(--pg-ink);color:var(--pg-surface);border-color:var(--pg-ink)}.pg-btn--primary:hover{opacity:.9;background:var(--pg-ink)}.pg-btn--sm{padding:4px 10px;font-size:.6875rem}.pg-preview-pane{flex-direction:column;overflow:hidden}.pg-preview-header,.pg-preview-pane{display:flex;background:var(--pg-surface-1)}.pg-preview-header{align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--pg-border);flex-shrink:0}.pg-preview-body{flex:1;overflow:auto;justify-content:center;padding:24px}.pg-preview-body,.pg-preview-empty{display:flex;flex-direction:column;align-items:center}.pg-preview-empty{gap:8px;color:var(--pg-ink4);text-align:center;padding:48px 24px}.pg-preview-empty-icon{width:32px;height:32px;opacity:.25}.pg-preview-empty-label{font-size:.8125rem;font-weight:500}.pg-preview-empty-hint{font-size:.6875rem;font-family:var(--font-mono)}.pg-filmstrip{display:flex;gap:6px;padding:10px 16px;border-top:1px solid var(--pg-border);overflow-x:auto;flex-shrink:0;justify-content:center}.pg-filmstrip-thumb{width:64px;height:38px;border-radius:4px;border:1.5px solid var(--pg-border);overflow:hidden;padding:0;cursor:pointer;background:#fff;flex-shrink:0;transition:border-color .12s}.pg-filmstrip-thumb:hover{border-color:var(--pg-ink3)}.pg-filmstrip-thumb[aria-pressed=true]{border-color:var(--pg-accent);box-shadow:0 0 0 1px var(--pg-accent)}.pg-filmstrip-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.pg-diagnostics{border-top:1px solid var(--pg-border);max-height:220px;overflow-y:auto;flex-shrink:0}.pg-diagnostics-header{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--pg-border);background:var(--pg-surface-1);position:sticky;top:0;z-index:1}.pg-diagnostics-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--pg-ink3)}.pg-diagnostics-count{font-size:.625rem;font-family:var(--font-mono);padding:1px 5px;border-radius:3px}.pg-diagnostics-count--error{background:var(--pg-err-soft);color:var(--pg-err)}.pg-diagnostics-count--warning{background:var(--pg-warn-soft);color:var(--pg-warn)}.pg-diagnostics-count--ok{background:var(--pg-ok-soft);color:var(--pg-ok)}.pg-diag-item{display:flex;align-items:flex-start;gap:8px;padding:6px 16px;font-size:.75rem;border-bottom:1px solid hsl(var(--border-secondary))}.pg-diag-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px}.pg-diag-dot--error{background:var(--pg-err)}.pg-diag-dot--warning{background:var(--pg-warn)}.pg-diag-dot--info{background:var(--pg-ink4)}.pg-diag-msg{color:var(--pg-ink2);line-height:1.4}.pg-diag-msg,.pg-score{font-family:var(--font-mono);font-size:.6875rem}.pg-score{display:inline-flex;align-items:center;gap:4px;font-weight:600;padding:2px 8px;border-radius:4px}.pg-score--good{background:var(--pg-ok-soft);color:var(--pg-ok)}.pg-score--fair{background:var(--pg-warn-soft);color:var(--pg-warn)}.pg-score--poor{background:var(--pg-err-soft);color:var(--pg-err)}.pg-preflight{padding:12px 16px;border-top:1px solid var(--pg-border);background:var(--pg-surface-1);flex-shrink:0}.pg-preflight-row{display:flex;align-items:center;gap:6px;font-size:.6875rem;padding:3px 0}.pg-preflight-icon{width:12px;height:12px;flex-shrink:0}.pg-preflight-ok{color:var(--pg-ok)}.pg-preflight-err{color:var(--pg-err)}.pg-preflight-warn{color:var(--pg-warn)}@keyframes pg-spin{to{transform:rotate(1turn)}}.pg-spinner{width:14px;height:14px;border:2px solid var(--pg-border);border-top-color:var(--pg-accent);border-radius:50%;animation:pg-spin .7s linear infinite;flex-shrink:0}.pg-kbd{font-size:.5625rem;font-family:var(--font-mono);color:var(--pg-ink4);background:var(--pg-surface-2);padding:1px 4px;border-radius:3px;border:1px solid var(--pg-border)}