/* Free tools of the public site (/tools/*, /opencart/audit). Scoped to .pt-* on top of public-site.css; tokens only, no pills. */
.pt-grid { display: grid; gap: var(--space-6); align-items: start; }
@media (min-width: 960px) {
    .pt-grid { grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); }
    .pt-grid-offer { grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); }
    .pt-panel { position: sticky; top: var(--space-6); }
    .pt-grid-offer .pt-panel { position: static; }
}
.pt-panel h2 { margin-bottom: var(--space-1); font-size: var(--text-xl); }
.pt-results { min-width: 0; }
.pt-results > h2, .pt-result-head h2 { margin-bottom: var(--space-3); font-size: var(--text-xl); }
.pt-result-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }
.pt-gap { margin-top: var(--space-4) !important; }
.pt-break { overflow-wrap: anywhere; }
.pt-inline { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
.pt-label { margin: var(--space-2) 0 0; color: var(--text-label); font-size: var(--text-sm); font-weight: var(--weight-bold); }
.pt-out { float: right; color: var(--text); font-family: var(--font-mono); }
.pt-status:empty { display: none; }
.ps-form input[type="range"] { width: 100%; min-height: 44px; accent-color: var(--action); }
.pt-warning { margin-top: var(--space-4); padding: var(--space-3) var(--space-4); border: 1px solid var(--warning-border); border-left: 4px solid var(--warning); border-radius: var(--radius); background: var(--warning-bg); color: var(--text); }

/* Calculator results */
.pt-summary { margin-bottom: var(--space-3); color: var(--text-soft); }
.pt-calc-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.pt-calc-table th, .pt-calc-table td { padding: var(--space-3); border-bottom: 1px solid var(--line); text-align: right; vertical-align: top; white-space: nowrap; }
.pt-calc-table th:first-child, .pt-calc-table td:first-child { text-align: left; white-space: normal; }
.pt-calc-table thead th { color: var(--text-muted); font-size: var(--text-xs); font-weight: var(--weight-bold); }
.pt-calc-table tbody th { font-weight: var(--weight-bold); }
.pt-calc-table .pt-total { font-weight: var(--weight-black); }
.pt-calc-table tr.pt-best { background: var(--brand-wash-soft); }
.pt-calc-table tr.pt-muted-row td, .pt-calc-table tr.pt-muted-row th { color: var(--text-muted); }
.pt-best-tag { display: inline-block; margin-left: var(--space-2); padding: 1px 6px; border: 1px solid var(--brand-border); border-radius: var(--radius-sm); background: var(--brand-wash); color: var(--brand-deep); font-size: var(--text-xs); font-weight: var(--weight-bold); vertical-align: middle; }
.pt-rate { display: block; color: var(--text-muted); font-size: var(--text-xs); font-weight: var(--weight-medium); }
@media (max-width: 719px) {
    .pt-calc-table thead { position: absolute; left: -9999px; }
    .pt-calc-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 2px var(--space-3); padding: var(--space-3) var(--space-2); border-bottom: 1px solid var(--line); }
    .pt-calc-table th, .pt-calc-table td { display: block; padding: 2px 0; border: 0; text-align: left; white-space: normal; }
    .pt-calc-table tbody th { grid-column: 1 / -1; }
    .pt-calc-table td::before { display: block; color: var(--text-muted); content: attr(data-label); font-size: var(--text-xs); font-weight: var(--weight-bold); }
}
.pt-sources td:last-child { color: var(--text-soft); }

/* Offer generator */
.pt-doc { margin-top: var(--space-4); border: 1px solid var(--line-card); border-radius: var(--radius-lg); background: var(--surface); }
.pt-doc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); background: var(--surface-raised); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.pt-doc-actions strong { margin-right: auto; }
.pt-doc-actions .ps-btn { min-height: 40px; padding: 6px 12px; font-size: var(--text-sm); }
.pt-doc-body { max-height: 70vh; overflow: auto; padding: var(--space-5); color: var(--text); font-size: var(--text-sm); line-height: var(--leading-normal); }
.pt-doc-body h2 { margin: 0 0 var(--space-2); font-size: var(--text-lg); text-align: center; }
.pt-doc-body h3 { margin: var(--space-5) 0 var(--space-2); font-size: var(--text-md); }
.pt-doc-body p { margin: 0 0 var(--space-2); }

/* Audit report */
.pt-checks { display: grid; gap: var(--space-3); margin: var(--space-4) 0 0; padding: 0; list-style: none; }
.pt-check { padding: var(--space-4); border: 1px solid var(--line-card); border-left: 4px solid var(--line-strong); border-radius: var(--radius); background: var(--surface); }
.pt-check-ok { border-left-color: var(--success); }
.pt-check-warn { border-left-color: var(--warning); }
.pt-check-bad { border-left-color: var(--danger); }
.pt-check-info { border-left-color: var(--info); }
.pt-check-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin-bottom: var(--space-2); }
.pt-check-head h3 { margin: 0; font-size: var(--text-md); }
.pt-check p { margin: 0; color: var(--text-soft); }
.pt-check .pt-check-value { margin-bottom: var(--space-1); color: var(--text); font-family: var(--font-mono); font-size: var(--text-sm); }
.pt-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: var(--text-xs); font-weight: var(--weight-bold); }
.pt-badge-ok { border-color: var(--success-border); background: var(--success-bg); color: var(--success); }
.pt-badge-warn { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning); }
.pt-badge-bad { border-color: var(--danger-border); background: var(--danger-bg); color: var(--danger); }
.pt-badge-info { border-color: var(--info-border); background: var(--info-bg); color: var(--info); }

@media print {
    .pt-printable .ps-header, .pt-printable .ps-footer, .pt-printable .ps-crumbs, .pt-printable .ps-consent, .pt-printable .ps-skip, .pt-printable .pt-noprint { display: none !important; }
    .pt-printable .ps-section { padding: 0; }
    .pt-printable .pt-grid { display: block; }
    .pt-printable .pt-doc { border: 0; break-before: page; }
    .pt-printable .pt-doc:first-of-type { break-before: auto; }
    .pt-printable .pt-doc-body { max-height: none; overflow: visible; padding: 0; font-size: 11pt; }
}
