/* SuperFix — agency portal (/portal). Built on tokens.css + styles.css (fields, buttons, options). */
body.pt{background:var(--sf-base);min-height:100vh;display:flex;flex-direction:column}
.pt [hidden]{display:none!important}
.pt-hd{background:var(--sf-ink-800);color:var(--sf-on-dark)}
.pt-hd-in{max-width:1000px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pt-who{display:flex;align-items:center;gap:14px;font-size:16px;color:var(--sf-on-dark)}
.pt-link{background:none;border:none;color:var(--sf-yellow-500);font:inherit;font-weight:700;cursor:pointer;padding:6px 0}
.pt-tabs{max-width:1000px;margin:0 auto;padding:0 16px;display:flex;gap:4px;overflow-x:auto}
.pt-tabs a{color:var(--sf-on-dark);text-decoration:none;font-weight:700;font-size:17px;padding:12px 14px;border-bottom:4px solid transparent;white-space:nowrap}
.pt-tabs a.on{color:#fff;border-bottom-color:var(--sf-yellow-500)}
.pt-main{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px 16px 48px;box-sizing:border-box}
.pt-card{background:var(--sf-card);border:1px solid var(--sf-hairline);border-radius:var(--sf-radius-xl);padding:24px;box-shadow:var(--sf-shadow)}
.pt-narrow{max-width:480px;margin:10px auto}
.pt-h1{font-family:var(--sf-font-head);font-weight:800;font-size:32px;letter-spacing:-.02em;color:var(--sf-ink-800);margin:0 0 6px}
.pt-h2{font-family:var(--sf-font-head);font-weight:800;font-size:21px;color:var(--sf-ink-800);margin:22px 0 8px}
.pt-sub{font-size:18px;color:var(--sf-text-muted);margin:0 0 18px}
.pt-small{font-size:16px;margin-top:14px}
.pt-muted{color:var(--sf-text-muted);font-size:17px}
.pt-err{color:var(--sf-error);font-weight:600;font-size:16px;min-height:1px;margin:6px 0}
.pt-list{padding-left:20px;margin:0 0 14px}.pt-list li{margin:6px 0;font-size:17px}
.pt-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.pt-flash{background:var(--sf-forest-100);border:1px solid var(--sf-forest-600);color:var(--sf-ink-800);border-radius:var(--sf-radius);padding:12px 16px;margin-bottom:16px;font-size:17px}
.pt-alert{background:var(--sf-yellow-100);border:1px solid var(--sf-yellow-600);border-radius:var(--sf-radius);padding:12px 16px;margin-bottom:14px;font-size:17px;color:var(--sf-ink-800)}
.pt-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pt-chip{font:inherit;font-size:16px;font-weight:700;border:2px solid var(--sf-hairline);background:var(--sf-card);color:var(--sf-ink-800);border-radius:999px;padding:7px 14px;cursor:pointer}
.pt-chip.on{border-color:var(--sf-forest-600);background:var(--sf-forest-50)}
.pt-jobs{display:flex;flex-direction:column;gap:10px}
.pt-job{display:block;text-decoration:none;color:inherit;background:var(--sf-card);border:1px solid var(--sf-hairline);border-left:6px solid var(--sf-hairline);border-radius:var(--sf-radius-lg);padding:14px 16px;box-shadow:var(--sf-shadow)}
.pt-job:hover{box-shadow:var(--sf-shadow-lift)}
.pt-job.st-awaiting{border-left-color:var(--sf-red-500)}
.pt-job.st-received{border-left-color:var(--sf-moss-500)}
.pt-job.st-approved,.pt-job.st-booked,.pt-job.st-rebooking{border-left-color:var(--sf-forest-600)}
.pt-job.st-done{border-left-color:var(--sf-ink-600)}
.pt-job-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.pt-job-addr{font-weight:700;font-size:18px;color:var(--sf-ink-800)}
.pt-job-meta{font-size:15px;color:var(--sf-text-muted);margin-top:4px}
.pt-badge{display:inline-block;font-size:14px;font-weight:700;border-radius:999px;padding:3px 10px;background:var(--sf-forest-100);color:var(--sf-ink-800);white-space:nowrap}
.pt-badge.st-awaiting{background:var(--sf-red-100);color:var(--sf-red-700)}
.pt-kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:17px;margin:10px 0}
.pt-kv dt{color:var(--sf-text-muted)}.pt-kv dd{margin:0;color:var(--sf-ink-800)}
.pt-steps{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 4px;padding:0;list-style:none}
.pt-steps li{font-size:14px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--sf-base);color:var(--sf-text-muted);border:1px solid var(--sf-hairline)}
.pt-steps li.done{background:var(--sf-forest-100);color:var(--sf-ink-800);border-color:var(--sf-forest-600)}
.pt-steps li.now{background:var(--sf-ink-800);color:#fff;border-color:var(--sf-ink-800)}
.pt-quote{width:100%;border-collapse:collapse;font-size:17px;margin:8px 0}
.pt-quote td{padding:6px 0;border-bottom:1px solid var(--sf-hairline)}
.pt-quote td:last-child{text-align:right;white-space:nowrap}
.pt-quote tr.tot td{font-weight:800;font-size:20px;color:var(--sf-ink-800);border-bottom:none}
.pt-decide{background:var(--sf-yellow-100);border:1px solid var(--sf-yellow-600);border-radius:var(--sf-radius-lg);padding:16px;margin:14px 0}
.pt-decide .btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.pt-btn2{font:inherit;font-weight:700;font-size:17px;border:2px solid var(--sf-ink-800);background:var(--sf-card);color:var(--sf-ink-800);border-radius:var(--sf-radius);padding:12px 18px;cursor:pointer}
.pt-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:8px 0}
.pt-photos a{display:block;aspect-ratio:1;border-radius:var(--sf-radius);overflow:hidden;background:var(--sf-base)}
.pt-photos img{width:100%;height:100%;object-fit:cover;display:block}
.pt-ft{text-align:center;font-size:15px;color:var(--sf-text-muted);padding:18px 16px 26px}
.pt-ft a{color:var(--sf-forest-600)}
.pt-modal{position:fixed;inset:0;background:rgba(13,26,21,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.pt-modal-card{background:var(--sf-card);border-radius:var(--sf-radius-xl);max-width:460px;width:100%;padding:22px;box-shadow:var(--sf-shadow-lift)}
.pt-modal-card h2{font-family:var(--sf-font-head);font-weight:800;font-size:22px;color:var(--sf-ink-800);margin:0 0 8px}
.pt-modal-card .btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.pt button:disabled{opacity:.6;cursor:wait}
.pt-actions{display:flex;gap:8px;flex-wrap:wrap}
.pt-actions .pt-btn2{padding:9px 14px;font-size:16px}
.pt-link--dark{color:var(--sf-forest-600);padding:0}
.pt-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:14px}
.pt-tile{background:var(--sf-card);border:1px solid var(--sf-hairline);border-radius:var(--sf-radius-lg);padding:14px 16px;box-shadow:var(--sf-shadow)}
.pt-tile b{display:block;font-family:var(--sf-font-head);font-size:26px;font-weight:800;color:var(--sf-ink-800)}
.pt-tile span{font-size:15px;color:var(--sf-text-muted)}
.pt-tile.warn b{color:var(--sf-red-700)}
.pt-inv{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:start}
.pt-inv-amt{text-align:right;font-weight:800;font-size:18px;color:var(--sf-ink-800);white-space:nowrap}
.pt-job.st-overdue{border-left-color:var(--sf-red-500)}
.pt-job.st-due,.pt-job.st-part_paid{border-left-color:var(--sf-yellow-600)}
.pt-job.st-paid{border-left-color:var(--sf-forest-600)}
.pt-badge.st-overdue{background:var(--sf-red-100);color:var(--sf-red-700)}
.pt-badge.st-due,.pt-badge.st-part_paid{background:var(--sf-yellow-100)}
.pt-inv-box{border:1px solid var(--sf-hairline);border-radius:var(--sf-radius-lg);padding:12px 14px;margin:14px 0;background:var(--sf-base)}
.pt-stmt{width:100%;border-collapse:collapse;font-size:15px}
.pt-stmt th,.pt-stmt td{text-align:left;padding:6px 6px;border-bottom:1px solid var(--sf-hairline);vertical-align:top}
.pt-stmt th{font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--sf-text-muted)}
.pt-stmt td.n,.pt-stmt th.n{text-align:right;white-space:nowrap}
.pt-stmt tr.tot td{font-weight:800;border-bottom:none;font-size:17px}
.pt-stmt-wrap{overflow-x:auto}
.pt-prop-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pt-prop-actions .pt-btn2,.pt-prop-actions .btn-cta{padding:8px 14px;font-size:16px}
.pt-rep-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:22px 0 6px}
.pt-rep-head .pt-h2{margin:0}
.pt-off{opacity:.65}
@media print{
  body.pt{background:#fff}
  .pt-hd,.pt-ft,.pt-tabs,.no-print,#ptFlash{display:none!important}
  .pt-main{padding:0;max-width:none}
  .pt-card{box-shadow:none;border:none;padding:0}
  .pt-stmt{font-size:11pt}
}
@media(max-width:640px){.pt-h1{font-size:27px}.pt-card{padding:18px}.pt-kv{grid-template-columns:1fr}.pt-kv dt{margin-top:6px}}
