.pgrid{--pcell-w:140px;grid-template-columns:repeat(auto-fill, minmax(min(var(--pcell-w), 100%), 1fr));gap:var(--s-4) var(--s-3);align-items:start;margin:0;padding:0;list-style:none;display:grid}.pgrid.is-sorting{cursor:grabbing;-webkit-user-select:none;user-select:none}.pcell{gap:var(--s-1);flex-direction:column;min-width:0;display:flex;position:relative}.pcell-btn{width:100%;padding:var(--s-2) var(--s-2) var(--s-1);font:inherit;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-2);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);margin:0;display:block;position:relative}.pgrid[data-sortable] .pcell-btn{touch-action:pan-y;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.pgrid[data-select=none] .pcell-btn{cursor:default}.pcell-btn:hover{border-color:var(--control-border)}.pcell-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pcell.is-selected .pcell-btn{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.pgrid[data-tone=err] .pcell.is-selected .pcell-btn{border-color:var(--err);background:var(--err-soft);box-shadow:inset 0 0 0 1px var(--err)}.pgrid[data-tone=err] .pcell-check{background:var(--err);color:var(--surface)}.pgrid[data-tone=err] .pcell.is-selected .pcell-paper{filter:grayscale();opacity:.45}.pgrid[data-tone=err] .pcell.is-selected .pcell-num{text-decoration:line-through}.pcell.is-dragging{opacity:.4}.pcell.drop-before .pcell-btn{box-shadow:-4px 0 0 0 var(--accent)}.pcell.drop-after .pcell-btn{box-shadow:4px 0 0 0 var(--accent)}.pcell-page{--asp:.707;--rot:0deg;width:100%;aspect-ratio:var(--asp);display:block;position:relative;container-type:size}.pcell-page.is-turned{aspect-ratio:calc(1 / var(--asp))}.pcell-paper{width:100%;height:100%;transform:translate(-50%, -50%) rotate(var(--rot));background:var(--surface-3);border-radius:2px;place-items:center;display:grid;position:absolute;top:50%;left:50%;overflow:hidden}.pcell-page.is-turned .pcell-paper{width:100cqh;height:100cqw}.pcell-paper img{object-fit:fill;pointer-events:none;width:100%;height:100%;display:block}.pcell-paper img[hidden]{display:none}.pcell-blank{font-size:var(--fs-xs);color:var(--text-3);background:var(--surface);border:1px dashed var(--control-border);place-items:center;width:100%;height:100%;display:grid}.pcell-blank[hidden]{display:none}.pcell:not(.is-loaded) .pcell-paper:has(img:not([hidden])){background:var(--surface-3)}.pcell-num{margin-top:var(--s-1);font-family:var(--font-mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--text-2);line-height:1.4;display:block}.pcell-badge{top:var(--s-2);left:var(--s-2);max-width:calc(100% - var(--s-4));padding:1px var(--s-2);font-size:var(--fs-xs);color:var(--err);background:var(--err-soft);border:1px solid var(--err-border);border-radius:var(--r-1);font-weight:550;line-height:1.5;position:absolute}.pcell-badge[hidden]{display:none}.pcell-badge[data-tone=accent]{color:var(--accent-text);background:var(--accent-soft);border-color:var(--accent-soft-2)}.pcell-badge[data-tone=ok]{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-border)}.pcell-badge[data-tone=warn]{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-border)}.pcell[data-group="0"] .pcell-btn{border-color:var(--accent)}.pcell[data-group="1"] .pcell-btn{border-color:var(--ok)}.pcell[data-group="2"] .pcell-btn{border-color:var(--warn)}.pcell-check{top:var(--s-2);right:var(--s-2);width:20px;height:20px;color:var(--accent-fg);background:var(--accent);border-radius:50%;place-items:center;display:none;position:absolute}.pcell.is-selected .pcell-check{display:grid}.pcell[data-state=removed] .pcell-paper{filter:grayscale();opacity:.45}.pcell[data-state=removed] .pcell-btn{border-color:var(--err-border);background:var(--err-soft)}.pcell[data-state=removed] .pcell-num{text-decoration:line-through}.pcell-actions{grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;gap:2px;display:grid}.pcell-act{min-width:44px;min-height:44px}@media (hover:hover) and (pointer:fine){.pgrid .pcell-btn{padding-bottom:40px}.pcell-num{left:0;right:0;bottom:var(--s-2);margin:0;position:absolute}.pcell-actions{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-2);box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);z-index:2;flex-wrap:nowrap;gap:0;padding:2px;display:flex;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.pcell:hover .pcell-actions,.pcell:focus-within .pcell-actions{opacity:1;pointer-events:auto}.pcell .pcell-act.btn{width:26px;min-width:26px;height:26px;min-height:26px;padding:0}.pcell-act[data-touch-only]{display:none}}.pgrid-zoom{gap:2px;display:inline-flex}@media (pointer:coarse){.pgrid-zoom .btn{min-width:var(--control-h);flex:none}}.pcell-ghost{z-index:var(--z-dialog);pointer-events:none;background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-1);width:72px;min-height:96px;box-shadow:var(--shadow-pop);opacity:.92;position:fixed;top:0;left:0;overflow:hidden}.pcell-ghost img{width:100%;height:auto;display:block}.pcell-ghost-n{text-align:center;min-width:22px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-fg);background:var(--accent);border-radius:var(--r-1);padding:0 4px;position:absolute;bottom:4px;right:4px}.pdialog{width:min(100vw - 16px,1040px);max-height:calc(100dvh - 16px);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--shadow-pop);margin:auto;padding:0;overflow:hidden}.pdialog::backdrop{background:var(--overlay)}.pdialog-bar{align-items:center;gap:var(--s-1);padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--border);display:flex}.pdialog-body{max-height:calc(100dvh - 80px);padding:var(--s-3);background:var(--surface-2);overflow:auto}.pdialog-stage{min-height:200px;color:var(--text-3);place-items:center;display:grid}.pdialog-stage canvas{border:1px solid var(--border);max-width:100%;height:auto;display:block}.pdialog-stage.is-loading{opacity:.6}
