/* P3 widgets — loaded only by apps that ship a P3 tool. */
.p3-tool { margin: 1.5rem 0 2rem; }
.p3-tool h2 { margin: 0 0 .35rem; }
.p3-tool h3 { margin: .2rem 0 .45rem; font-size: 1.05rem; }
.p3-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .75rem; }
.p3-card { border: 1px solid color-mix(in srgb, currentColor 16%, transparent); border-radius: 12px; padding: .75rem 1rem; margin: 0; }
.p3-form { display: flex; flex-wrap: wrap; gap: .6rem; align-items: end; margin: .75rem 0; }
.p3-form label { display: flex; flex-direction: column; gap: .25rem; font-size: .9rem; }
.p3-checks { display: flex; flex-direction: column; gap: .45rem; margin: .5rem 0 1rem; }
.p3-checks label { display: flex; gap: .4rem; align-items: flex-start; }
.p3-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.p3-ladder { padding-left: 1.2rem; }
.p3-out { min-height: 1.4em; }
@media (max-width: 700px) { .p3-pair { grid-template-columns: 1fr; } }
@media print {
  body.travel .p3-tool:not(#p3-trv-pack):not(#p3-trv-win),
  body.cases .p3-tool:not(#p3-cases-print),
  body.viz .p3-tool:not(#p3-viz-check) { display: none !important; }
}