.entity-id-link{display:inline;padding:0 4px;font:600 12px var(--mono);color:var(--accent);background:transparent;border:0;border-radius:2px;line-height:1.2}.rp-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px 26px;margin:12px 0 16px;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm)}.rp-summary>div{display:flex;flex-direction:column;gap:2px}.rp-section{margin:18px 0 8px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.rp-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;margin:6px 0}.rp-table th{text-align:left;color:var(--muted);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.1em;background:var(--card)}.rp-table td,.rp-table th{padding:10px 12px;border-bottom:1px solid var(--border)}.rp-table tbody tr:last-child td{border-bottom:0}.rp-table tbody tr:hover{background:var(--card-hover)}.rp-table td.num,.rp-table th.num{text-align:right;font-family:var(--mono);color:var(--fg)}.rp-table td.id{font-family:var(--mono);color:var(--accent);font-size:12px}.rp-truncated{color:var(--muted);font-size:12px;margin:8px 0 0}.viz-generic{margin-top:12px}.viz-generic>summary{cursor:pointer;color:var(--muted);font-size:12px;list-style:none;font-family:var(--mono)}.viz-generic>summary::-webkit-details-marker{display:none}.viz-generic>summary:before{content:"▸ ";font-size:11px}.viz-generic[open]>summary:before{content:"▾ "}.viz-generic-pre{background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 14px;font-family:var(--mono);font-size:11.5px;color:var(--muted);white-space:pre-wrap;max-height:280px;overflow-y:auto}.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:10px}.pl-card{border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;background:var(--surface);display:flex;flex-direction:column;gap:6px;min-width:0;transition:border-color .12s,transform .12s}.pl-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.pl-card.is-shape{border-color:var(--mint-line)}.pl-card.is-group,.pl-card.is-shape{background:var(--mint-soft)}.pl-card h4{margin:0;font-size:12px;color:var(--accent);font-weight:700;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.pl-card h4,.pl-meta{font-family:var(--mono)}.pl-meta{font-size:10.5px;line-height:1.5;word-break:break-word}.pl-meta,.pl-tag{color:var(--muted)}.pl-tag{display:inline-block;padding:1px 7px;border-radius:var(--r-full);background:var(--card);font-size:10px;font-weight:500;border:1px solid var(--border)}.pl-tag.pl-count{background:var(--mint-soft);color:var(--accent);border-color:var(--mint-line);font-weight:600;font-variant-numeric:tabular-nums}.pl-muted{color:var(--muted);opacity:.7}.pl-ids{font-size:10px}.pl-section-title{margin:16px 0 6px;font-size:11px;color:var(--muted);letter-spacing:.1em}.pl-section-title,.shape-badge{font-weight:700;text-transform:uppercase}.shape-badge{display:inline-block;padding:1px 8px;border-radius:var(--r-full);font-size:9px;letter-spacing:.08em;background:var(--mint-soft);color:var(--accent)}.shape-badge.shape-circle,.shape-badge.shape-hollow-circle{background:var(--warn-soft);color:var(--warn)}.shape-badge.shape-hollow-rectangle,.shape-badge.shape-rectangle,.shape-badge.shape-rounded-rectangle,.shape-badge.shape-trapezium{background:var(--info-soft);color:var(--info)}.shape-badge.shape-asymmetric-i-shape,.shape-badge.shape-c-shape,.shape-badge.shape-i-shape,.shape-badge.shape-l-shape,.shape-badge.shape-t-shape,.shape-badge.shape-u-profile,.shape-badge.shape-z-shape{background:var(--err-soft);color:var(--err)}.shape-badge.shape-identical{background:var(--mint-soft);color:var(--accent)}.shape-badge.shape-polygon{background:var(--card);color:var(--muted);border:1px solid var(--border)}.pl-svg{width:100%;height:120px;display:block;background:var(--bar-bg);border-radius:4px}.pl-poly{fill:var(--mint-soft)}.pl-poly,.pl-polyline{stroke:var(--accent);stroke-width:1.4;vector-effect:non-scaling-stroke;stroke-linejoin:round}.pl-polyline{fill:none}.recommendation{margin-top:14px;padding:14px 16px;background:var(--warn-soft);border-left:3px solid var(--warn);border-radius:0 var(--r-sm) var(--r-sm) 0}.recommendation h4{margin:0 0 6px;font-size:11px;color:var(--warn);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.recommendation p{margin:0;color:var(--fg);font-size:13px;line-height:1.55}.recommendation p strong{color:var(--fg);font-weight:600}.recommendation .top-list{font-family:var(--mono);font-size:12px;margin:10px 0 0;padding-left:20px;color:var(--muted)}.recommendation .top-list li{margin:3px 0}.recommendation .top-list strong{color:var(--fg);font-weight:600}.recommendation .top-list em{color:var(--accent);font-style:normal}.viz{margin-top:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-sm);position:relative}.viz,.viz-row td{background:var(--card)}.viz-row td{padding:14px}.viz-summary{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.viz-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 18px;padding-bottom:12px;border-bottom:1px solid var(--border)}.viz-stats>div{display:flex;flex-direction:column;gap:2px}.viz-num{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--fg);letter-spacing:-.3px}.viz-num.viz-saveable{color:var(--accent)}.viz-num.viz-warn{color:var(--warn)}.viz-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.viz-filebar{position:relative;background:var(--bar-bg);border:1px solid var(--border);border-radius:var(--r-sm);height:26px;overflow:hidden}.viz-filebar-save{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--mint-400),var(--warn));opacity:.85;transition:width .4s ease}.viz-filebar-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:white;font-family:var(--mono);font-weight:600;text-shadow:0 0 6px rgba(0,0,0,.7)}.viz-controls{display:flex;gap:6px;margin-bottom:12px}.toggle,.viz-controls .toggle{background:transparent;color:var(--muted);border:1px solid var(--border);padding:5px 11px;border-radius:var(--r-sm);font:600 12px var(--font);cursor:pointer;transition:color .12s,border-color .12s,background .12s}.toggle:hover:not(.active),.viz-controls .toggle:hover:not(.active){color:var(--fg);border-color:var(--border-strong)}.toggle.active,.viz-controls .toggle.active{background:var(--accent);color:var(--teal-900);border-color:var(--accent)}.viz-chart{overflow-x:auto}.viz-svg{max-width:100%;display:block}.viz-bar{cursor:pointer}.viz-bar:hover .viz-bar-fill{fill:var(--accent)}.viz-bar-track{fill:rgba(127,127,127,.08)}.viz-bar-fill{fill:var(--warn);transition:fill .15s}.viz-bar-label{fill:var(--fg);font:12px var(--mono)}.viz-bar-value{fill:var(--muted);font:11px var(--mono)}.viz-tooltip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:6px 10px;font-size:12px;line-height:1.4;color:var(--fg);box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:10;font-family:var(--mono)}.viz-empty{color:var(--muted);font-style:italic;padding:6px 0;font-size:13px}@media (max-width:960px){.pl-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (max-width:640px){.viz{padding:12px}.viz-stats{grid-template-columns:1fr 1fr;gap:8px 12px}.viz-num{font-size:16px}.pl-grid{grid-template-columns:1fr 1fr}.pl-svg{height:100px}.rp-summary{grid-template-columns:1fr 1fr;padding:12px 14px}.rp-table{font-size:12px}.rp-table td,.rp-table th{padding:8px 10px}}@media (max-width:420px){.pl-grid,.rp-summary,.viz-stats{grid-template-columns:1fr}}.pl-summary{color:var(--muted);font-family:var(--mono);font-size:13px;margin:0 0 10px}.pl-summary strong{color:var(--fg);font-weight:600}.pl-filter input{width:100%;background:var(--surface);color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:8px 12px;font-family:var(--mono);font-size:13px;outline:none;transition:border-color .12s,box-shadow .12s}.pl-filter input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--mint-soft)}.pl-filter input::-moz-placeholder{color:var(--dim)}.pl-filter input::placeholder{color:var(--dim)}