.pg-root{--pg-gutter:var(--s-5);--pg-pass:#136c3f;--pg-pass-bg:#e7f6ee;--pg-warn:#8a5a0b;--pg-warn-bg:#fbf3e2;--pg-fail:#b0213a;--pg-fail-bg:#fbe9ec}.pg-head{padding-bottom:var(--s-5)}.pg-title{margin:16px 0 14px}.pg-lede{margin-bottom:0}.pg-tool-section{padding-bottom:var(--s-6)}.pg-keys kbd,.pg-kbd{border:1px solid var(--hairline-strong);background:var(--canvas-2);min-width:1.6em;color:var(--ink);font-family:var(--font-mono);text-align:center;border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:.8em;line-height:1.5;display:inline-block}.pg-stage{max-width:1600px;padding-inline:var(--pg-gutter);margin-inline:auto}.pg-palette{border:1px solid var(--hairline);border-radius:var(--radius-lg);min-height:clamp(460px,55vh,680px);box-shadow:var(--shadow-2);background:var(--canvas-3);margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.pg-swatch{--pg-fg:#000;align-items:center;gap:var(--s-3);min-width:0;padding:var(--s-4) 6px var(--s-5);color:var(--pg-fg);flex-direction:column;flex:1 1 0;display:flex;position:relative}.pg-swatch[data-dragging]{z-index:2;box-shadow:inset 0 0 0 3px var(--pg-fg)}.pg-sw-actions{flex-direction:column;align-items:center;gap:4px;margin-block:auto;display:flex}.pg-sw-info{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;width:100%;min-width:0;min-height:4.75rem;display:flex}.pg-icon-btn{width:40px;min-width:40px;height:40px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex}.pg-icon-btn:hover{background:color-mix(in srgb, var(--pg-fg) 14%, transparent)}.pg-icon-btn:focus-visible{outline:3px solid var(--pg-fg);outline-offset:1px}.pg-icon-btn[aria-pressed=true]{background:color-mix(in srgb, var(--pg-fg) 18%, transparent);border-color:color-mix(in srgb, var(--pg-fg) 60%, transparent)}.pg-icon-btn[aria-disabled=true]{opacity:.35;cursor:not-allowed}.pg-icon-btn[aria-disabled=true]:hover{background:0 0}.pg-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.pg-swatch[data-dragging] .pg-handle{cursor:grabbing}.pg-no-select,.pg-no-select *{cursor:grabbing;-webkit-user-select:none!important;user-select:none!important}.pg-eyedrop>span{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (hover:hover) and (min-width:721px){.pg-swatch:not(:hover):not(:focus-within) .pg-icon-btn:not([aria-pressed=true]){opacity:.6}.pg-swatch:not(:hover):not(:focus-within) .pg-icon-btn[aria-disabled=true]{opacity:.3}}.pg-hex{width:100%;min-width:0;max-width:11ch;min-height:40px;color:inherit;font-family:var(--font-mono);letter-spacing:.02em;text-align:center;text-overflow:clip;background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 4px;font-size:1rem;font-weight:600}.pg-hex:hover{border-color:color-mix(in srgb, var(--pg-fg) 40%, transparent)}.pg-hex:focus,.pg-hex:focus-visible{outline:2px solid var(--pg-fg);outline-offset:-2px;background:color-mix(in srgb, var(--pg-fg) 10%, transparent)}.pg-hex[aria-invalid=true]{border-color:var(--pg-fail)}.pg-palette[data-dense] .pg-hex{font-size:.86rem}.pg-hex-error{border:1px solid var(--pg-fail);max-width:100%;color:var(--pg-fail);background:#fff;border-radius:6px;padding:3px 7px;font-size:.74rem;font-weight:600;line-height:1.3}.pg-name{overflow-wrap:anywhere;max-width:100%;font-size:.78rem;font-weight:500;line-height:1.25}.pg-bar{justify-content:space-between;align-items:flex-end;gap:var(--s-4) var(--s-5);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.pg-actions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.pg-generate{min-height:44px}.pg-generate .pg-kbd{color:#fff;background:#ffffff2e;border-color:#ffffff8c;font-size:.72rem}.pg-tool-btn{min-height:44px;padding:10px 14px}.pg-tool-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.pg-tool-btn[aria-disabled=true]:hover{box-shadow:none;background:var(--canvas);transform:none}.btn-primary.pg-tool-btn[aria-disabled=true]:hover{background:var(--ink)}.pg-tool-btn:focus-visible,.pg-generate:focus-visible,.pg-help-btn:focus-visible,.pg-switch:focus-visible,.pg-chip:focus-visible,.pg-close:focus-visible{outline:3px solid var(--spec-blue);outline-offset:2px}.pg-settings{align-items:flex-end;gap:var(--s-3);flex-wrap:wrap;display:flex}.pg-field{flex-direction:column;gap:5px;display:flex}.pg-field>label{color:var(--ink-2);font-size:.78rem;font-weight:600}.pg-select{border:1px solid var(--hairline-strong);background:var(--canvas);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;padding:0 10px;font-size:.92rem}.pg-select:focus-visible{outline:3px solid var(--spec-blue);outline-offset:1px;border-color:var(--spec-blue)}.pg-count{gap:var(--s-2);display:flex}.pg-switch{min-height:44px;padding:6px 14px 6px 8px;font-weight:600}.pg-switch-track{background:var(--hairline-strong);border-radius:999px;flex:none;width:32px;height:18px;position:relative}.pg-switch-track:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0f0f1240}.pg-switch[aria-pressed=true] .pg-switch-track{background:var(--spec-blue)}.pg-switch[aria-pressed=true] .pg-switch-track:after{transform:translate(14px)}.pg-chip{border-radius:999px;align-items:center;min-height:44px;padding:6px 14px;font-size:.86rem;font-weight:600;text-decoration:none;display:inline-flex}.pg-chip[data-state=pass]{background:var(--pg-pass-bg);color:var(--pg-pass)}.pg-chip[data-state=fail]{background:var(--pg-fail-bg);color:var(--pg-fail)}.pg-chip:hover{text-decoration:underline}.pg-help-btn{min-height:44px}.pg-toast{left:16px;right:16px;bottom:var(--s-5);z-index:60;background:var(--ink);color:#fff;width:fit-content;max-width:680px;box-shadow:var(--shadow-2);text-align:center;pointer-events:none;border-radius:12px;margin-inline:auto;padding:10px 16px;font-size:.9rem;line-height:1.4;position:fixed}.pg-panels{gap:var(--s-5);margin-top:var(--s-6);display:grid}@media (min-width:1000px){.pg-panels{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}.pg-panels>.pg-saved{grid-column:1/-1}}.pg-saved:empty{display:none}.pg-panel{min-width:0;padding:var(--s-5)}.pg-panel h2{margin:0 0 var(--s-2);font-size:1.25rem}.pg-panel-note{margin:0 0 var(--s-4);font-size:.9rem}.pg-contrast-summary{margin:0 0 var(--s-3)}.pg-meter{height:10px;margin-bottom:var(--s-2);background:var(--canvas-3);border-radius:999px;display:flex;overflow:hidden}.pg-meter>span{height:100%}.pg-meter-aaa{background:var(--pg-pass)}.pg-meter-aa{background:#3fb27a}.pg-meter-large{background:var(--spec-amber)}.pg-meter-fail{background:var(--pg-fail)}.pg-meter-legend{margin:0 0 var(--s-4);font-size:.82rem}.pg-filter{gap:var(--s-2);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.pg-filter .chip-toggle{min-height:44px}.pg-empty{margin:0;font-size:.92rem}.pg-pairs{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.pg-pair{align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-2);border:1px solid var(--hairline);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.pg-pair-sample,.pg-role-sample{width:52px;height:44px;font-family:var(--font-display);border:1px solid #0f0f121a;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:inline-flex}.pg-pair-meta{flex-direction:column;flex:9rem;min-width:0;display:flex}.pg-pair-hexes{color:var(--ink-2);font-size:.82rem}.pg-pair-ratio{font-weight:700}.pg-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:.78rem;font-weight:600;display:inline-flex}.pg-badge[data-level=aaa],.pg-badge[data-level=aa]{background:var(--pg-pass-bg);color:var(--pg-pass)}.pg-badge[data-level=large]{background:var(--pg-warn-bg);color:var(--pg-warn)}.pg-badge[data-level=fail]{background:var(--pg-fail-bg);color:var(--pg-fail)}.pg-fix{gap:var(--s-2);min-height:44px}.pg-fix-to{color:var(--ink-2);align-items:center;gap:5px;font-weight:500;display:inline-flex}.pg-fix-dot{border:1px solid #0f0f1233;border-radius:4px;width:14px;height:14px}.pg-fix-arrow{font-size:.78rem}.pg-fix-note{font-size:.82rem}.pg-more{min-height:44px;margin-top:var(--s-3)}.pg-ui{border:1px solid var(--hairline);border-radius:var(--radius);font-size:.9rem;line-height:1.45;overflow:hidden;container-type:inline-size}.pg-ui-nav{flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 14px;display:flex}.pg-ui-brand{font-family:var(--font-display);margin-right:auto;font-size:1.05rem;font-weight:700}.pg-ui-pill{border-radius:8px;padding:6px 12px;font-weight:600}.pg-ui-body{gap:16px;padding:18px 14px;display:grid}@container (min-width:480px){.pg-ui-body{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}}.pg-ui-badge{border-radius:999px;padding:2px 9px;font-size:.76rem;font-weight:700;display:inline-block}.pg-ui-h{font-family:var(--font-display);margin:10px 0 6px;font-size:1.25rem;font-weight:700;line-height:1.2}.pg-ui-p{margin:0 0 12px}.pg-ui-actions{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.pg-ui-btn{border:2px solid #0000;border-radius:9px;padding:8px 14px;font-weight:600;display:inline-flex}.pg-ui-btn-outline{background:0 0}.pg-ui-link{text-underline-offset:3px;font-weight:600;text-decoration:underline}.pg-ui-card{border:1px solid #0f0f1214;border-radius:12px;gap:4px;padding:14px;display:grid}.pg-ui-card-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.pg-ui-amount{font-family:var(--font-mono);margin-top:6px;font-size:1.2rem;font-weight:700}.pg-roles{margin:var(--s-4) 0 0;gap:var(--s-2);padding:0;list-style:none;display:grid}.pg-roles li{align-items:center;gap:4px var(--s-3);flex-wrap:wrap;font-size:.86rem;display:flex}.pg-role-sample{width:40px;height:32px;font-size:.9rem}.pg-role-name{flex:8rem;font-weight:600}.pg-role-hex{color:var(--ink-2);font-size:.8rem}.pg-role-ratio{font-size:.8rem}.pg-dialog{border-radius:var(--radius-lg);background:var(--canvas);width:min(760px,100vw - 32px);max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);color:var(--ink);box-shadow:var(--shadow-2);border:0;padding:0;overflow:auto}.pg-dialog-narrow{width:min(560px,100vw - 32px)}.pg-dialog::backdrop{background:#0f0f127a}.pg-dialog-body{padding:var(--s-5)}.pg-dialog-head{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);display:flex}.pg-dialog-head h2{margin:0;font-size:1.3rem}.pg-close{border:1px solid var(--hairline-strong);background:var(--canvas);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.pg-close:hover{background:var(--canvas-3)}.pg-card-preview{width:100%;height:auto;margin-bottom:var(--s-3);border:1px solid var(--hairline);border-radius:var(--radius);display:block}.pg-card-actions{gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.pg-card-actions .btn{min-height:44px}.pg-export-error{margin:0 0 var(--s-4);color:var(--pg-fail);font-size:.9rem}.pg-help-note{margin:0 0 var(--s-3);font-size:.9rem}.pg-keys{border-collapse:collapse;width:100%;font-size:.92rem}.pg-keys th,.pg-keys td{border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top;padding:8px 6px}.pg-keys th{white-space:nowrap;width:38%;font-weight:500}@media (min-width:721px) and (max-width:1000px){.pg-root{--pg-gutter:var(--s-4)}.pg-palette[data-dense] .pg-swatch{padding-inline:2px}.pg-palette[data-dense] .pg-hex{letter-spacing:0;padding-inline:1px;font-size:.74rem}.pg-palette[data-dense] .pg-name{font-size:.7rem}}@media (max-width:720px){.pg-root{--pg-gutter:var(--s-4)}.pg-palette{border-radius:var(--radius);flex-direction:column;min-height:0}.pg-swatch{flex-flow:wrap;flex:none;align-items:center;gap:6px 8px;min-height:76px;padding:10px 12px}.pg-sw-info{text-align:left;flex-flow:wrap;flex:8.5rem;order:1;align-items:center;gap:2px 10px;width:auto;min-height:0}.pg-hex,.pg-palette[data-dense] .pg-hex{text-align:left;flex:none;width:9.5ch;max-width:none;min-height:44px;padding-inline:4px;font-size:1.02rem}.pg-name{flex:6rem;font-size:.82rem}.pg-hex-error{flex:100%}.pg-sw-actions{flex-flow:wrap;order:2;justify-content:flex-end;gap:4px;margin:0 0 0 auto}.pg-icon-btn{width:44px;min-width:44px;height:44px}.pg-ico-move{transform:rotate(90deg)}.pg-bar{display:contents}.pg-actions{z-index:30;margin:var(--s-3) calc(-1 * var(--pg-gutter)) 0;padding:8px var(--pg-gutter) calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--hairline);-webkit-backdrop-filter:saturate(1.4)blur(12px);backdrop-filter:saturate(1.4)blur(12px);background:#fffffff5;flex-wrap:nowrap;gap:4px;position:sticky;bottom:0}.pg-generate{flex:auto;min-width:0;padding-inline:12px}.pg-generate .pg-kbd{display:none}.pg-actions .pg-tool-btn{flex:none;width:44px;min-width:44px;padding:0}.pg-actions .pg-label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.pg-settings{margin-top:var(--s-4)}.pg-field-harmony{flex:11rem}.pg-field-harmony .pg-select{width:100%}.pg-select{font-size:1rem}.pg-toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}.pg-panel{padding:var(--s-4)}.pg-dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:100%;max-height:88dvh;margin:auto 0 0}.pg-dialog-body{padding:var(--s-4) var(--s-4) calc(var(--s-4) + env(safe-area-inset-bottom,0px))}}@media (max-width:400px){.pg-generate svg{display:none}}@media (max-width:720px) and (hover:none){.pg-help-btn{display:none}}@media (prefers-reduced-motion:no-preference){.pg-swatch{transition:background-color .28s,color .28s}.pg-icon-btn{transition:opacity .15s,background-color .15s}.pg-switch-track:after{transition:transform .18s}.pg-toast{animation:.2s ease-out pg-toast-in}.pg-dialog[open]{animation:.18s ease-out pg-dialog-in}}@keyframes pg-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pg-dialog-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pg-keys-toggle{margin:0 0 var(--s-3)}
