/* Powerteam / service providers: public catalogue (inside layouts/site) and provider workspace (layouts/provider).
   Palette (spec): navy #1B4A5A, gold #AD5F0C, canvas #F3F6F7, white, text #243640, border #DDE5E8.
   Everything content-related is scoped under .pt so shared pages rendered in the provider layout keep their own styles. */
.pt { --pt-navy:#1B4A5A; --pt-gold:#AD5F0C; --pt-canvas:#F3F6F7; --pt-text:#243640; --pt-line:#DDE5E8; --pt-muted:#596F77; color:var(--pt-text); overflow-wrap:anywhere; }
.pt *, .provider-shell * { box-sizing:border-box; }
.pt-wrap { max-width:1120px; margin:auto; padding:48px 24px 64px; }
.pt-heading { border-bottom:3px solid var(--pt-gold); padding-bottom:24px; margin-bottom:28px; }
.pt-heading-row { display:flex; align-items:end; justify-content:space-between; gap:16px 24px; flex-wrap:wrap; }
.pt-kicker { display:block; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--pt-gold); margin-bottom:8px; }
.pt h1 { font-size:clamp(28px,4vw,40px); line-height:1.2; margin:0 0 12px; color:var(--pt-navy); }
.pt h2 { font-size:22px; line-height:1.35; margin:0 0 12px; color:var(--pt-navy); }
.pt p { line-height:1.7; margin:0 0 16px; max-width:72ch; }
.pt-lead { font-size:17px; }
.pt-muted { color:var(--pt-muted); font-size:14px; }
.pt-toolbar,.pt-actions { display:flex; align-items:end; gap:14px; flex-wrap:wrap; }
.pt-toolbar { margin-bottom:28px; padding:20px; background:var(--pt-canvas); border:1px solid var(--pt-line); border-radius:7px; }
.pt-field { display:flex; flex-direction:column; gap:7px; flex:1; min-width:180px; }
.pt label,.pt legend { font-weight:600; font-size:14px; }
.pt input:not([type=checkbox]):not([type=radio]),.pt select,.pt textarea { width:100%; min-width:0; padding:12px; border:1px solid #9BAEB5; border-radius:5px; background:white; color:var(--pt-text); font:inherit; }
.pt input[type=file] { font-size:14px; padding:10px; }
/* theme.css (CRM layouts) forces a very light field border with !important; keep form fields clearly visible here */
.pt input:not([type=checkbox]):not([type=radio]):not([type=file]),.pt select,.pt textarea { border-color:#9BAEB5 !important; border-radius:5px !important; background-color:white; }
.pt input:focus,.pt select:focus,.pt textarea:focus { border-color:#1B4A5A !important; }
.pt input[aria-invalid=true],.pt textarea[aria-invalid=true],.pt select[aria-invalid=true] { border-color:#A52424 !important; }
.pt textarea { resize:vertical; min-height:220px; }
.pt a:focus-visible,.pt button:focus-visible,.pt input:focus-visible,.pt textarea:focus-visible,.pt select:focus-visible,.provider-shell a:focus-visible,.provider-shell button:focus-visible { outline:3px solid var(--pt-gold,#AD5F0C); outline-offset:3px; }
.pt-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 20px; min-height:44px; border:1px solid #1B4A5A; border-radius:5px; background:#1B4A5A; color:white; text-decoration:none; font:inherit; font-weight:600; line-height:1.3; text-align:center; cursor:pointer; }
.pt-button:hover { background:#123642; color:white; }
.pt-button-secondary { color:#1B4A5A; background:white; }
.pt-button-secondary:hover { background:#EDF2F4; color:#1B4A5A; }
.pt-button-danger { color:#A52424; background:white; border-color:#A52424; }
.pt-button-danger:hover { color:white; background:#A52424; }
.pt-button-block { width:100%; }
.pt-link { color:var(--pt-navy); font-weight:600; }
.pt-link:hover { color:var(--pt-gold); }
/* product / service filter */
.pt-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; padding:0; list-style:none; }
.pt-chip { display:inline-flex; align-items:center; min-height:40px; padding:8px 16px; border:1px solid var(--pt-line); border-radius:999px; background:white; color:var(--pt-navy); font-size:14px; font-weight:600; text-decoration:none; }
.pt-chip:hover { border-color:var(--pt-navy); }
.pt-chip[aria-current=page] { background:var(--pt-navy); border-color:var(--pt-navy); color:white; }
.pt-result-count { margin:-8px 0 18px; }
/* catalogue grid */
.pt-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.pt-card { min-width:0; display:flex; flex-direction:column; border:1px solid var(--pt-line); background:white; border-radius:7px; overflow:hidden; }
.pt-card:hover { border-color:#9BAEB5; }
.pt-card-media { display:block; }
.pt-card-image { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; background:var(--pt-canvas); }
.pt-image-empty { display:grid; place-items:center; padding:12px; text-align:center; color:var(--pt-muted); font-size:14px; border-bottom:1px solid var(--pt-line); }
.pt-image-empty span { display:block; font-size:30px; font-weight:700; color:var(--pt-navy); opacity:.35; }
.pt-card-body { padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.pt-card h2 { font-size:19px; line-height:1.4; margin-bottom:6px; }
.pt-card h2 a { color:#1B4A5A; text-decoration:none; }
.pt-card h2 a:hover { text-decoration:underline; }
.pt-card-excerpt { font-size:15px; margin:12px 0 0; }
.pt-tag { display:inline-block; align-self:start; font-size:12px; font-weight:600; padding:4px 10px; border-radius:4px; background:#EAF0F2; color:#1B4A5A; margin-bottom:12px; }
.pt-tag-published { background:#E4F3E9; color:#256342; }
.pt-tag-draft { background:#FFF1E2; color:#8A4A08; }
.pt-empty { padding:42px 24px; border:1px dashed #9BAEB5; background:var(--pt-canvas); border-radius:7px; text-align:center; }
.pt-empty p { margin-left:auto; margin-right:auto; }
/* detail */
.pt-detail { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr); gap:40px; }
.pt-detail-image { width:100%; max-height:480px; object-fit:contain; background:var(--pt-canvas); margin-bottom:28px; border-radius:7px; display:block; }
.pt-copy { white-space:pre-wrap; line-height:1.8; }
.pt-panel { padding:24px; background:var(--pt-canvas); border:1px solid var(--pt-line); border-radius:7px; align-self:start; }
.pt-panel form { margin:0; }
.pt-state { display:flex; gap:8px; align-items:center; font-weight:600; color:#256342; margin-bottom:14px; }
.pt-back { display:inline-block; color:#1B4A5A; margin-bottom:24px; }
.pt-provider-line { margin-bottom:22px; }
/* provider list */
.pt-note { display:flex; gap:12px; padding:16px 18px; margin-bottom:24px; background:white; border:1px solid var(--pt-line); border-left:4px solid var(--pt-gold); border-radius:5px; }
.pt-note p { margin:0; font-size:15px; }
.pt-list { border-top:1px solid var(--pt-line); }
.pt-row { display:grid; grid-template-columns:minmax(0,1fr) 140px 120px 290px; gap:22px; align-items:center; padding:22px 0; border-bottom:1px solid var(--pt-line); }
.pt-row h2 { font-size:19px; margin-bottom:6px; }
.pt-row-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.pt-count { font-size:26px; font-weight:700; color:#1B4A5A; display:block; line-height:1.2; }
/* forms */
.pt-form { max-width:760px; display:grid; gap:24px; }
.pt-fieldset { border:1px solid var(--pt-line); border-radius:7px; padding:18px 20px; margin:0; background:white; display:grid; gap:14px; }
.pt-fieldset legend { padding:0 6px; }
.pt-req { color:#A52424; }
.pt-error { color:#A52424; font-size:14px; }
.pt-error-summary { padding:18px 20px; border:1px solid #E3B4B4; background:#FDF2F2; color:#8E1F1F; border-radius:7px; }
.pt-error-summary p { margin:0 0 8px; font-weight:600; }
.pt-error-summary ul { margin:0; padding-left:20px; }
.pt-check { display:flex; align-items:start; gap:10px; font-weight:600; }
.pt-check input { margin-top:3px; width:18px; height:18px; flex-shrink:0; accent-color:#1B4A5A; }
.pt-check small { display:block; font-weight:400; color:var(--pt-muted); font-size:14px; line-height:1.6; margin-top:2px; }
.pt-preview { max-width:260px; width:100%; max-height:170px; object-fit:contain; background:var(--pt-canvas); border:1px solid var(--pt-line); border-radius:5px; }
.pt-danger-zone { margin-top:40px; max-width:760px; }
.pt-pager { margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.pt-pager [aria-disabled=true] { opacity:.45; cursor:default; }
/* provider shell (layouts/provider) */
.provider-shell { background:#F3F6F7; color:#243640; min-height:100vh; display:flex; flex-direction:column; margin:0; }
/* gold on navy is ~2:1; the header uses the light amber ring instead */
.provider-header a:focus-visible,.provider-header button:focus-visible { outline-color:#FBAB52; }
.provider-skip { position:absolute; left:-9999px; top:8px; z-index:50; padding:10px 16px; background:white; color:#1B4A5A; border-radius:5px; }
.provider-skip:focus { left:8px; }
.provider-header { background:#1B4A5A; color:white; }
.provider-header-inner { max-width:1120px; margin:auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:14px 20px; flex-wrap:wrap; }
.provider-brand { display:flex; align-items:center; gap:10px; color:white; text-decoration:none; }
.provider-brand img { height:32px; width:auto; }
.provider-brand span { font-size:11px; line-height:1.25; color:rgba(255,255,255,.75); border-left:1px solid rgba(255,255,255,.25); padding-left:10px; }
.provider-nav { display:flex; align-items:center; flex-wrap:wrap; gap:6px 18px; font-size:14px; }
.provider-nav a,.provider-nav button { color:#D9E4E7; text-decoration:none; padding:6px 0; }
.provider-nav a:hover,.provider-nav button:hover { color:white; }
.provider-nav button { background:none; border:0; cursor:pointer; font:inherit; }
.provider-nav form { margin:0; }
.provider-nav a[aria-current=page] { color:white; font-weight:600; text-decoration:underline; text-decoration-color:#FBAB52; text-decoration-thickness:2px; text-underline-offset:6px; }
.provider-locale a { display:inline-block; padding:3px 10px !important; border:1px solid rgba(255,255,255,.3); border-radius:999px; font-size:12px; font-weight:600; }
.provider-main { width:100%; max-width:1120px; margin:auto; padding:32px 24px 60px; flex:1; }
.provider-main:focus { outline:none; }
.provider-footer { border-top:1px solid #DDE5E8; padding:22px; text-align:center; font-size:13px; color:#596F77; }
.pt-flash { padding:14px 16px; margin-bottom:24px; background:#E4F3E9; color:#256342; border:1px solid #9CC5AB; border-radius:5px; }
.pt-alert { padding:14px 16px; margin-bottom:24px; background:#FDF2F2; color:#8E1F1F; border:1px solid #E3B4B4; border-radius:5px; }
@media(max-width:900px) { .pt-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .pt-detail { grid-template-columns:minmax(0,1fr); gap:28px; } .pt-row { grid-template-columns:minmax(0,1fr) auto; } .pt-row-actions { grid-column:1/-1; justify-content:flex-start; } }
@media(max-width:540px) { .pt-wrap { padding:32px 16px 44px; } .pt-grid { grid-template-columns:minmax(0,1fr); } .pt-field { min-width:100%; } .pt-toolbar { padding:16px; } .pt-toolbar .pt-button { width:100%; } .pt-row { gap:14px; } .pt-row-title { grid-column:1/-1; } .pt-panel { padding:18px; } .pt-fieldset { padding:16px; } .provider-header-inner { padding:14px 16px; } .provider-nav { gap:4px 14px; font-size:13px; } .provider-main { padding:24px 16px 44px; } .pt-actions { align-items:stretch; } .pt-actions .pt-button,.pt-heading-row .pt-button,.pt-row-actions .pt-button { flex:1 1 100%; } }
/* Service providers marketplace (Appendix 4): same palette as above, layout helpers only. */
.sp-hero { padding:36px 28px; background:#1B4A5A; color:white; border-radius:7px; margin-bottom:32px; }
.sp-hero h1,.sp-hero p { color:white; }
.sp-hero .pt-kicker { color:#FBAB52; }
.sp-hero .pt-button-secondary { border-color:white; }
.sp-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0 0 36px; padding:0; list-style:none; counter-reset:sp; }
.sp-steps li { counter-increment:sp; padding:20px; background:white; border:1px solid var(--pt-line); border-radius:7px; }
.sp-steps li::before { content:counter(sp); display:inline-grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#AD5F0C; color:white; font-weight:700; margin-bottom:10px; }
.sp-cats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 36px; padding:0; list-style:none; }
.sp-cats a { display:flex; gap:10px; align-items:center; padding:14px 16px; background:white; border:1px solid var(--pt-line); border-radius:7px; color:#1B4A5A; text-decoration:none; font-weight:600; min-height:56px; }
.sp-cats a:hover { border-color:#1B4A5A; }
.sp-cats small { margin-left:auto; color:var(--pt-muted); font-weight:400; }
.sp-badges { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 0; }
.sp-badge { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; padding:4px 10px; border-radius:4px; background:#E4F3E9; color:#256342; }
.sp-badge-gold { background:#FFF1E2; color:#8A4A08; }
.sp-badge-navy { background:#EAF0F2; color:#1B4A5A; }
.sp-stars { color:#AD5F0C; font-weight:700; }
.sp-card-head { display:flex; gap:14px; align-items:center; }
.sp-logo { width:56px; height:56px; flex-shrink:0; border-radius:7px; border:1px solid var(--pt-line); object-fit:contain; background:white; display:grid; place-items:center; color:#1B4A5A; font-weight:700; font-size:22px; }
.sp-logo-lg { width:96px; height:96px; font-size:36px; }
.sp-cover { width:100%; aspect-ratio:4/1; object-fit:cover; border-radius:7px; display:block; background:var(--pt-canvas); margin-bottom:20px; }
.sp-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; align-items:end; }
.sp-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:20px 0; }
.sp-facts div { padding:14px; background:var(--pt-canvas); border:1px solid var(--pt-line); border-radius:7px; }
.sp-facts b { display:block; font-size:20px; color:#1B4A5A; }
.sp-section { margin-top:36px; }
.sp-list { display:grid; gap:14px; }
.sp-item { padding:18px 20px; background:white; border:1px solid var(--pt-line); border-radius:7px; }
.sp-item h3 { margin:0 0 6px; font-size:17px; color:#1B4A5A; }
.sp-item img { max-width:100%; max-height:260px; object-fit:contain; border-radius:5px; margin-top:10px; display:block; }
.sp-reply { margin-top:12px; padding:12px 14px; background:var(--pt-canvas); border-left:3px solid #1B4A5A; border-radius:4px; }
.sp-table { width:100%; border-collapse:collapse; background:white; border:1px solid var(--pt-line); border-radius:7px; overflow:hidden; font-size:14px; }
.sp-table th,.sp-table td { padding:12px 14px; border-bottom:1px solid var(--pt-line); text-align:left; vertical-align:top; }
.sp-table th { background:var(--pt-canvas); color:#1B4A5A; font-weight:600; }
.sp-scroll { overflow-x:auto; }
.sp-msg { padding:14px 16px; border:1px solid var(--pt-line); border-radius:7px; background:white; }
.sp-msg-own { background:var(--pt-canvas); }
.sp-price { display:grid; grid-template-columns:auto auto; gap:4px 16px; margin-top:10px; font-size:14px; max-width:360px; }
.sp-price b { text-align:right; }
.sp-progress { height:10px; background:var(--pt-line); border-radius:999px; overflow:hidden; }
.sp-progress span { display:block; height:100%; background:#1B4A5A; }
.sp-rating-row { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; }
.sp-rating-row fieldset { border:0; padding:0; margin:0; }
.sp-rating-row label { font-weight:400; }
.sp-inline { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
@media(max-width:900px) { .sp-steps,.sp-cats { grid-template-columns:repeat(2,minmax(0,1fr)); } .sp-filters,.sp-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .sp-steps,.sp-cats,.sp-filters { grid-template-columns:minmax(0,1fr); } .sp-hero { padding:26px 18px; } .sp-cover { aspect-ratio:2/1; } }
