/* Account portfolio: grouped work surface, explicit status colors and visible actions. */
.sp-portfolio { width:100%; max-width:1480px; min-width:0; color:var(--ink); font-family:var(--font-ui,var(--ui)); }
.sp-portfolio * { box-sizing:border-box; }
.sp-portfolio :is(a,button,input,select,summary):focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.sp-portfolio .sp-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.sp-portfolio .sp-heading { align-items:center; margin:0 0 17px; }
.sp-portfolio .sp-heading h1 { margin:4px 0 4px; color:var(--ink); font:750 clamp(29px,2.7vw,38px)/1.12 var(--font-ui,var(--ui)); letter-spacing:-.035em; }
.sp-portfolio .sp-heading p { max-width:760px; color:var(--ink2); font-size:15px; }
.sp-portfolio .sp-heading .pilot-kicker { color:var(--blue); font-size:11px; }
.sp-portfolio .sp-lenses { gap:3px; margin:0 0 12px; padding:0 0 6px; border-bottom:1px solid var(--line); }
.sp-portfolio .sp-lenses .w7cchip { min-height:37px; padding:8px 11px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--ink2); font-size:12px; font-weight:650; }
.sp-portfolio .sp-lenses .w7cchip:hover { background:var(--surface-2); color:var(--blue); }
.sp-portfolio .sp-lenses .w7cchip.on { border-color:color-mix(in srgb,var(--blue) 28%,var(--card)); background:color-mix(in srgb,var(--blue) 9%,var(--card)); color:var(--blue); }
.sp-filters { display:grid; grid-template-columns:minmax(230px,1fr) 150px 155px minmax(180px,220px); gap:9px; margin:0 0 10px; }
.sp-portfolio .sp-search { display:flex; width:auto; max-width:none; height:49px; margin:0; padding:0 13px; border:1px solid color-mix(in srgb,var(--blue) 26%,var(--line)); border-radius:6px; background:var(--card); }
.sp-portfolio .sp-search input { font-size:14px; }
.sp-filter { display:grid; gap:2px; min-width:0; min-height:49px; padding:6px 11px; border:1px solid color-mix(in srgb,var(--blue) 26%,var(--line)); border-radius:6px; background:var(--card); color:var(--ink2); font-size:11px; font-weight:600; }
.sp-filter select,.sp-filter input { width:100%; min-width:0; padding:0; border:0; background:transparent; color:var(--ink); font:650 13px/1.3 var(--font-ui,var(--ui)); }
.sp-filter input::placeholder { color:var(--mute); font-weight:450; }
.sp-filter:focus-within,.sp-portfolio .sp-search:focus-within { outline:2px solid var(--blue); outline-offset:1px; }
.sp-portfolio .sp-filter :is(select,input):focus-visible { outline:0; }
.sp-legend { display:flex; align-items:center; flex-wrap:wrap; gap:7px 16px; margin:0 0 12px; color:var(--ink2); font-size:11px; }
.sp-legend > span { display:inline-flex; align-items:center; gap:5px; }
.sp-legend i { width:7px; height:7px; border-radius:50%; background:var(--mute); }
.sp-legend .sp-key-blue { background:var(--blue); }.sp-legend .sp-key-green { background:var(--green); }.sp-legend .sp-key-amber { background:var(--amber); }.sp-legend .sp-key-red { background:var(--red); }
.sp-scope { position:relative; margin-left:auto; }
.sp-scope summary { cursor:pointer; color:var(--blue); font-weight:650; }
.sp-scope p { position:absolute; z-index:3; right:0; top:20px; width:330px; max-width:80vw; margin:0; padding:13px; border:1px solid var(--line); border-radius:6px; background:var(--card); color:var(--ink2); font-size:12px; line-height:1.5; }
.sp-portfolio #csample:empty { display:none; }.sp-portfolio #csample:not(:empty) { margin:0 0 9px; }
.sp-portfolio .w7csech { align-items:center; margin:0 0 7px; color:var(--blue); font-size:11px; }
.sp-portfolio .w7csech .w7cn2 { padding:2px 7px; border-radius:10px; background:var(--bluetint); color:var(--blue); font:750 11px/1.3 var(--font-ui,var(--ui)); }
.sp-portfolio .w7csech .w7caside { font-size:11px; }
.sp-table-wrap { width:100%; overflow:hidden; border:1px solid var(--line); border-radius:7px; background:var(--card); }
.sp-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.sp-col-account { width:29%; }.sp-col-fleet { width:11%; }.sp-col-stage { width:14%; }.sp-col-age { width:10%; }.sp-col-notes { width:14%; }.sp-col-owner { width:14%; }.sp-col-open { width:8%; }
.sp-table thead th { text-align:left; }
.sp-table .sp-groups th { height:34px; padding:8px 12px; border-right:3px solid var(--card); background:color-mix(in srgb,var(--blue) 9%,var(--card)); color:var(--blue); font-size:11px; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.sp-table .sp-groups th:nth-child(2) { background:color-mix(in srgb,var(--amber) 10%,var(--card)); color:var(--amber); }
.sp-table .sp-groups th:nth-child(3) { background:color-mix(in srgb,var(--teal) 9%,var(--card)); color:var(--teal); }
.sp-table .sp-groups th:last-child { border-right:0; }
.sp-table .sp-columns th { height:34px; padding:6px 12px; border-bottom:1px solid var(--line); background:var(--surface-2); color:var(--ink2); font-size:11px; font-weight:650; }
.sp-table .sp-row { cursor:pointer; border-top:1px solid var(--line); }
.sp-table .sp-row:hover,.sp-table .sp-row:focus-within { background:color-mix(in srgb,var(--blue) 5%,var(--card)); }
.sp-table .sp-row.is-expanded { background:color-mix(in srgb,var(--blue) 9%,var(--card)); border-top-color:color-mix(in srgb,var(--blue) 40%,var(--card)); }
.sp-table .sp-row > :is(th,td) { min-width:0; padding:10px 12px; vertical-align:middle; text-align:left; overflow-wrap:anywhere; }
.sp-table .sp-row strong,.sp-table .sp-account .sp-company-link { display:block; color:var(--ink); font-size:12px; font-weight:700; line-height:1.3; }
.sp-table .sp-row small { display:block; margin-top:3px; color:var(--mute); font-size:11px; font-weight:450; line-height:1.3; }
.sp-table .sp-missing { color:var(--mute); font-size:14px; }
.sp-account-identity { display:flex; align-items:center; gap:10px; }
.sp-account-identity > div { min-width:0; }
.sp-avatar { display:inline-flex; flex-shrink:0; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; font-size:12px; font-weight:750; color:var(--blue); background:color-mix(in srgb,var(--blue) 18%,var(--card)); }
.sp-avatar-1 { color:var(--teal); background:color-mix(in srgb,var(--teal) 18%,var(--card)); }
.sp-avatar-2 { color:var(--violet); background:color-mix(in srgb,var(--violet) 18%,var(--card)); }
.sp-avatar-3 { color:var(--hot); background:color-mix(in srgb,var(--hot) 18%,var(--card)); }
.sp-avatar-4 { color:var(--red); background:color-mix(in srgb,var(--red) 15%,var(--card)); }
.sp-avatar-5 { color:var(--green); background:color-mix(in srgb,var(--green) 18%,var(--card)); }
.sp-table .sp-company-link { text-decoration:none; }
.sp-table .sp-company-link:hover,.sp-table .sp-company-link:focus-visible { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.sp-table .sp-family { display:inline-block; margin:3px 0 0; padding:1px 5px; border-radius:4px; background:var(--surface-2); color:var(--ink2); font-size:10px; font-weight:600; }
.sp-table .sp-stage { --status-tone:var(--mute); }
.sp-table .sp-stage[data-stage="new"] { --status-tone:var(--blue); }
.sp-table .sp-stage[data-stage="hot"] { --status-tone:var(--amber); }
.sp-table .sp-stage[data-stage="working"] { --status-tone:var(--blue); }
.sp-table .sp-stage[data-stage="customer"] { --status-tone:var(--green); }
.sp-table .sp-stage[data-stage="quiet"] { --status-tone:var(--red); }
.sp-table .sp-stage .sp-status { display:inline-flex; align-items:center; gap:6px; padding:4px 7px; border-radius:4px; color:var(--status-tone); background:color-mix(in srgb,var(--status-tone) 9%,var(--card)); font-size:11px; }
.sp-status::before,.sp-estimate::before { content:""; width:6px; height:6px; flex:none; border-radius:50%; background:currentColor; }
.sp-table .sp-estimate { display:flex !important; align-items:center; gap:6px; color:var(--amber) !important; }
.sp-table .sp-owner a { display:inline-block; margin-top:4px; color:var(--blue); font-size:11px; font-weight:650; text-decoration:none; }
.sp-table .sp-owner a:hover { text-decoration:underline; }
.sp-table .sp-row .sp-open { padding:7px 8px 7px 0; text-align:right; }
.sp-details-toggle { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:32px; padding:5px 8px; border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line)); border-radius:5px; background:var(--card); color:var(--blue); font:650 11px/1.2 var(--font-ui,var(--ui)); cursor:pointer; }
.sp-details-toggle:hover { background:var(--bluetint); }
.sp-details-chevron { font-size:15px; }
.sp-details-toggle[aria-expanded="true"] .sp-details-chevron { transform:rotate(180deg); }
.sp-table .sp-detail-row[hidden] { display:none !important; }
.sp-detail-row > td { padding:0; border-bottom:1px solid color-mix(in srgb,var(--blue) 40%,var(--card)); }
.sp-detail-grid { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:0; padding:17px 20px 18px; border-left:3px solid var(--blue); background:var(--card); }
.sp-detail-grid section { min-width:0; padding:0 20px; border-left:1px solid var(--line); }
.sp-detail-grid section:first-child { padding-left:0; border-left:0; }
.sp-detail-grid section:last-child { padding-right:0; }
.sp-detail-label { display:block; color:var(--blue); font-size:10px; font-weight:750; letter-spacing:.07em; text-transform:uppercase; }
.sp-detail-grid h3 { margin:6px 0 5px; color:var(--ink); font-size:14px; font-weight:700; line-height:1.3; }
.sp-detail-grid p { margin:0 0 7px; color:var(--ink2); font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.sp-detail-grid small { display:block; color:var(--mute); font-size:10.5px; line-height:1.4; }
.sp-detail-call { display:inline-flex; gap:6px; align-items:center; min-height:32px; padding:5px 9px; border:1px solid color-mix(in srgb,var(--blue) 35%,var(--card)); border-radius:5px; color:var(--blue); font-size:13px; font-weight:650; text-decoration:none; }
.sp-detail-open { display:inline-flex; gap:15px; align-items:center; justify-content:center; min-height:34px; padding:7px 14px; border-radius:5px; background:var(--blue); color:var(--card); font-size:12px; font-weight:700; text-decoration:none; }
.sp-detail-open:hover { background:var(--bluedk); }
.sp-table .sp-row.is-sample { background:var(--sample-tint,#fbf1f8); }
.sp-table .sp-row.is-sample > :first-child { border-left:3px dashed var(--sample,#a0338a); }
.sp-table .sp-empty td { padding:23px 18px; color:var(--mute); font-size:13px; }
.sp-table .sp-empty b { display:block; color:var(--ink); font-size:14px; }.sp-table .sp-empty span { display:block; margin-top:4px; }
.sp-portfolio .sp-tbody.busy { opacity:.55; }
.sp-portfolio .w7cend { margin:10px 0 0; }
.sp-portfolio button.w7endl-more { padding:10px 13px; border:1px solid var(--line); border-radius:6px; background:var(--card); color:var(--blue); font-size:12px; font-weight:700; }
.sp-portfolio button.w7endl-more:hover { background:var(--bluetint); text-decoration:none; }
.sp-portfolio .sp-remaining { margin-left:10px; color:var(--mute); font-size:12px; }
@media (max-width:1050px) {
  .sp-filters { grid-template-columns:minmax(200px,1fr) repeat(2,145px); }.sp-equipment { grid-column:1/-1; }
}
@media (max-width:900px) {
  .sp-table colgroup,.sp-table thead { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); }
  .sp-table,.sp-table tbody { display:block; }
  .sp-table .sp-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 14px; padding:13px 15px; }
  .sp-table .sp-row:first-child { border-top:0; }
  .sp-table .sp-row > :is(th,td) { display:block; padding:0; }
  .sp-table .sp-account { grid-column:1/-1; padding-bottom:9px !important; border-bottom:1px solid var(--line); }
  .sp-table .sp-account .sp-company-link { font-size:15px; }
  .sp-table .sp-row td:not(.sp-open)::before { content:attr(data-label); display:block; margin-bottom:5px; color:var(--ink2); font-size:10px; font-weight:700; text-transform:uppercase; }
  .sp-table .sp-row strong { font-size:13px; }.sp-table .sp-row small { font-size:11.5px; }
  .sp-table .sp-row .sp-open { display:flex; align-items:flex-end; justify-content:flex-end; padding:0; }
  .sp-details-toggle { min-height:44px; padding:8px 12px; font-size:12px; }
  .sp-detail-row,.sp-detail-row > td { display:block; }
  .sp-detail-grid { grid-template-columns:1fr; gap:13px; padding:16px; }
  .sp-detail-grid section { padding:13px 0 0; border-left:0; border-top:1px solid var(--line); }
  .sp-detail-grid section:first-child { padding:0; border-top:0; }
  .sp-detail-open,.sp-detail-call { min-height:44px; }
}
@media (max-width:650px) {
  .sp-portfolio .sp-heading { align-items:flex-start; gap:10px; }.sp-portfolio .sp-heading h1 { font-size:27px; }.sp-portfolio .sp-heading p { font-size:13px; }
  .sp-portfolio .sp-heading .pilot-primary { min-height:44px; }
  .sp-portfolio .sp-lenses { overflow-x:auto; margin-bottom:10px; }
  .sp-portfolio .sp-lenses .w7cchip { min-height:44px; }
  .sp-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.sp-portfolio .sp-search,.sp-equipment { grid-column:1/-1; }
  .sp-filter { min-height:50px; }.sp-filter input,.sp-filter select,.sp-portfolio .sp-search input { font-size:16px; }
  .sp-legend { gap:7px 12px; font-size:10px; }.sp-scope { margin-left:0; }
  .sp-scope p { position:static; width:auto; max-width:none; margin-top:8px; }.sp-scope[open] { flex-basis:100%; }
  .sp-portfolio .w7csech { flex-wrap:wrap; }.sp-portfolio .w7csech .w7caside { width:100%; margin:0; }
}
