.projectsPage { max-width:1100px; margin:auto; }
.projectsPage h1 { margin-bottom:12px; }
.projectsPage section { margin-block:32px; }
.projectToolbar,.projectActions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.projectRow { display:grid; grid-template-columns:150px minmax(0,1fr); gap:18px; padding:18px 0; border-top:1px solid var(--pt-border,#c8d4ce); }
.projectPreview { width:150px; height:110px; background:var(--pt-bg,#e8efea); object-fit:contain; }
.projectRow h3 { margin:0 0 4px; font-size:1.05rem; overflow-wrap:anywhere; }
.projectRow p { margin:5px 0 12px; font-size:.9rem; }
.projectRow details { margin-top:12px; }
.projectSnapshot { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:8px 0; }
#projectNotice:empty { display:none; }
#projectNotice { padding:12px 0; }
.projectsPage dialog { max-width:calc(100vw - 32px); width:400px; padding:24px; }
.projectsPage dialog input { width:100%; box-sizing:border-box; margin:8px 0 20px; }
@media(max-width:520px){.projectRow{grid-template-columns:90px minmax(0,1fr);gap:12px}.projectPreview{width:90px;height:85px}.projectActions{grid-column:1/-1}.projectToolbar>*{flex-grow:1}.projectsPage{padding-inline:4px}}

.projectComparisonTable{width:100%;border-collapse:collapse;table-layout:fixed}.projectComparisonTable th,.projectComparisonTable td{padding:12px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--pt-border);overflow-wrap:anywhere}.projectComparisonTable th:first-child{width:30%}.projectComparisonTable thead th{width:35%}.projectComparisonTable label{display:block}.projectComparisonTable select{width:100%;min-width:0;margin-top:8px}.projectComparisonTable .projectPreview{width:100%;height:auto;aspect-ratio:15/11}.comparisonActions{display:flex;gap:8px;flex-wrap:wrap}.comparisonActions button{min-height:44px;white-space:normal}#projectCompareNotice:empty{display:none}.projectComparisonTable tbody th{font-weight:500}.projectComparisonTable td{font-variant-numeric:tabular-nums}
@media(max-width:600px){.projectComparisonTable{font-size:12px}.projectComparisonTable th,.projectComparisonTable td{padding:9px 4px}.projectComparisonTable th:first-child{width:30%}.projectComparisonTable select,.comparisonActions button{font-size:12px}.comparisonActions button{width:100%;padding:8px 5px}.comparisonActions{gap:6px}.comparisonPreview .projectPreview{min-width:0}}
.yardStarters{margin:24px 0 32px}.yardStarterList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.yardStarter{min-width:0;padding-bottom:16px;border-bottom:1px solid var(--pt-border)}.yardStarter img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;display:block;background:var(--pt-panel)}.yardStarter h3{font-size:17px;margin:12px 0 5px}.yardStarterSize{font-size:13px;color:var(--pt-muted);margin:0 0 12px}.yardStarter button{min-height:44px;width:100%}#yardStarterNotice:empty{display:none}@media(max-width:700px){.yardStarterList{grid-template-columns:1fr;gap:22px}.yardStarter img{max-height:290px}.yardStarter h3{font-size:18px}}

.projectsIntro{max-width:62ch;margin:10px 0 18px}
.projectsPage h2{font-size:1.25rem;margin:0 0 6px}
.projectsPage section{margin-block:36px}
.projectTemplates>p{margin:0 0 16px;font-size:14px}
.projectsPage #yardStarters h2{font-size:14px;font-weight:600;color:var(--pt-muted);margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em}
.projectsPage #templateList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
@media(max-width:700px){.projectsPage #templateList{grid-template-columns:1fr;gap:22px}}
.projectAccount{margin-block:36px;border-top:1px solid var(--pt-border);padding-top:14px}
.projectAccount>summary{font-weight:600;min-height:40px;display:flex;align-items:center;cursor:pointer}
.projectAccount>p{font-size:14px;max-width:70ch}
#projectComparison[hidden]{display:none}

/* Projects workspace: compact records, customer details and progressive actions. */
.projectsPage{max-width:1320px;padding-bottom:40px}
.projectsHeading{display:flex;align-items:baseline;gap:16px;margin-bottom:16px}
.projectsHeading .projectSettings{align-self:center;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:40px;padding:0;border:1px solid var(--pt-border);border-radius:10px;background:var(--pt-paper);color:var(--pt-muted)}
.projectsHeading .projectSettings:hover{color:var(--pt-ink);border-color:var(--pt-accent)}
.projectsHeading .projectSettings svg{width:20px;height:20px}
.projectsHeading h1{margin:0}.projectsHeading>span{color:var(--pt-muted);font-size:14px}
.projectMainToolbar{margin-block:20px 28px}
.projectWorkspace{border:1px solid var(--pt-border);border-radius:10px;background:var(--pt-paper);padding:0 20px}
.projectListToolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0}
.projectFilters{display:flex;gap:12px;align-items:end}.projectFilters label{font-size:12px;color:var(--pt-muted);display:grid;gap:5px}.projectFilters input{width:250px}.projectFilters select{width:150px}
.projectColumnHead,.projectRow{display:grid;grid-template-columns:minmax(200px,1.5fr) minmax(150px,1fr) 115px 95px 200px;gap:16px;align-items:center}
.projectColumnHead{font-size:11px;color:var(--pt-muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:12px 0;border-top:1px solid var(--pt-border)}
.projectRow{padding:18px 0}.projectIdentity{display:flex;gap:14px;align-items:center;min-width:0}.projectIdentity>div{min-width:0}.projectRow .projectPreview{width:72px;height:58px;flex:none;border-radius:5px;background:var(--pt-surface)}.projectRow h3{font-size:14px;margin:0;line-height:1.4}.projectCurrent{font-size:11px;color:var(--pt-muted)}
.projectContact{min-width:0;display:grid;gap:3px}.projectContact>span{font-size:12px;color:var(--pt-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pt-controls .projectCustomerButton{border:0;background:none;padding:4px 0;min-height:32px;text-align:left;color:var(--pt-link);font-size:13px;white-space:normal;overflow-wrap:anywhere;box-shadow:none}
.projectRow time{font-size:12px;color:var(--pt-muted)}.projectStage select{width:100%;font-size:12px;padding-inline:8px}.projectActions{gap:5px;flex-wrap:nowrap}.projectActions button,.projectActions summary{font-size:12px;padding:8px;white-space:nowrap}.projectRow details{margin:0}
.projectMore,.projectUtilities{position:relative}.projectMore summary,.projectUtilities>summary{cursor:pointer;list-style:none;border:1px solid var(--pt-border);border-radius:6px;min-height:36px;display:flex;align-items:center;justify-content:center;padding:8px 12px}.projectMore summary::-webkit-details-marker,.projectUtilities>summary::-webkit-details-marker{display:none}.projectMore[open] summary,.projectUtilities[open]>summary{background:var(--pt-surface)}
.projectMenu{position:absolute;z-index:20;top:calc(100% + 6px);right:0;min-width:190px;background:var(--pt-paper);border:1px solid var(--pt-border);border-radius:8px;padding:6px;box-shadow:0 12px 28px #0002;display:grid;gap:4px}.projectMenu button{text-align:left;width:100%}.projectUtilities .projectMenu{left:0;right:auto}.projectMenu .projectSnapshot{white-space:normal}
.projectTemplates h2{margin-bottom:16px}.projectTemplates .yardStarter{padding:18px 0;display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--pt-border);border-bottom:0}.projectTemplates .yardStarter h3{font-size:16px;margin:0 0 8px}.projectTemplates .yardStarter p{font-size:13px;color:var(--pt-muted);margin:0 0 16px;flex:1}.projectTemplates .yardStarter button{font-size:13px}.projectsPage #projectList>p{padding-block:24px;color:var(--pt-muted)}
.customerDialog{width:min(620px,calc(100vw - 32px));max-height:90vh;overflow:auto;padding:24px;border:1px solid var(--pt-border);border-radius:12px;background:var(--pt-paper);color:var(--pt-ink)}.customerDialog::backdrop{background:#08172180}.customerDialog h2{margin:0 0 20px}.customerDialog label{display:grid;gap:6px;font-size:13px}.customerDialog input,.customerDialog select,.customerDialog textarea{width:100%;min-width:0;box-sizing:border-box}.customerFormGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-block:20px}.customerDialog textarea{min-height:100px;resize:vertical}.customerDialog [role=status]:empty,.customerDialog [role=alert]:empty{display:none}.customerDialog [role=alert]{color:var(--pt-danger,#b43c3c)}.customerDialog .customerFullWidth{grid-column:1/-1}
@media(max-width:1050px){.projectColumnHead,.projectRow{grid-template-columns:minmax(170px,1.5fr) minmax(130px,1fr) 110px 190px}.projectColumnHead span:nth-child(4),.projectRow>time{display:none}}
@media(max-width:760px){.projectWorkspace{padding:0 14px}.projectColumnHead{display:none}.projectListToolbar{display:block}.projectListToolbar h2{margin-bottom:14px}.projectFilters{width:100%}.projectFilters label:first-child{flex:1;min-width:0}.projectFilters input{width:100%}.projectFilters select{width:125px}.projectRow{grid-template-columns:minmax(0,1fr) 115px;gap:12px}.projectIdentity{grid-column:1/-1}.projectContact{grid-column:1}.projectStage{grid-column:2}.projectActions{grid-column:1/-1;justify-content:flex-end}.projectRow .projectPreview{width:64px;height:52px}.projectTemplates .yardStarterList{grid-template-columns:1fr;gap:0}.projectTemplates .yardStarter{display:grid;grid-template-columns:1fr auto;gap:8px 16px}.projectTemplates .yardStarter p{grid-column:1;margin:0}.projectTemplates .yardStarter h3{margin:0}.projectTemplates .yardStarter button{grid-column:2;grid-row:1/3}.customerFormGrid{grid-template-columns:1fr}.projectMainToolbar>*{flex-grow:0}.projectFilters input,.projectFilters select{font-size:16px}}

.customerDialog .btnRow{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}
.pt-controls .projectAssetsButton{display:block;margin-top:5px;min-height:32px;padding:4px 8px;font-size:12px}
.projectAssetsDialog{width:min(900px,calc(100vw - 32px));max-height:90dvh;box-sizing:border-box;overflow:auto;padding:20px;background:var(--pt-paper);color:var(--pt-ink);border:1px solid var(--pt-border);border-radius:var(--pt-radius,8px)}
.projectAssetsDialog::backdrop{background:#08172180}.projectAssetsDialog h2{margin:0 0 12px;font-size:1.2rem;overflow-wrap:anywhere}
.projectAssetList{display:flex;gap:8px;flex-wrap:wrap;margin-block:16px}.projectAssetList button{min-height:44px}
.projectAssetViewer{display:grid;gap:12px}.projectAssetViewer img,.projectAssetViewer video{display:block;width:100%;max-height:62dvh;object-fit:contain}.projectAssetViewer a{justify-self:start;min-height:44px;display:inline-flex;align-items:center;color:var(--pt-link)}.projectAssetsDialog [role=status]:empty{display:none}

/* Proposal website and PDF, opened from each project. */
.proposalForm{display:grid;gap:14px}
.proposalField{display:grid;gap:6px;font-weight:600;font-size:14px}
.proposalField small,.proposalHint{font-weight:400;font-size:13px;color:var(--pt-muted)}
.proposalField input,.proposalField textarea{width:100%;box-sizing:border-box;min-height:42px;padding:8px 10px;border:1px solid var(--pt-border);border-radius:10px;font:inherit;font-weight:400}
.proposalSlug{display:flex;align-items:center;border:1px solid var(--pt-border);border-radius:10px;overflow:hidden;background:var(--pt-surface)}
.proposalSlug span{padding:0 4px 0 10px;font-weight:400;color:var(--pt-muted);white-space:nowrap}
.proposalSlug input{border:0;border-radius:0;min-width:0;flex:1}
.proposalChoice{display:flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--pt-border);border-radius:10px;cursor:pointer}
.proposalChoice:has(input:checked){border-color:var(--pt-accent);background:var(--pt-selected)}
.proposalChoice img{width:96px;height:60px;object-fit:cover;border-radius:6px;background:var(--pt-surface)}
.proposalCheck{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
.proposalTile{position:relative;width:112px;border:2px solid var(--pt-border);border-radius:10px;overflow:hidden;background:var(--pt-surface)}
.proposalTile img{display:block;width:100%;height:72px;object-fit:cover;cursor:pointer}
.proposalTile input{position:absolute;top:6px;left:6px;width:18px;height:18px;margin:0}
.proposalTile.is-off img{opacity:.35}
.proposalTile.is-header{border-color:var(--pt-accent)}
.proposalStar{position:absolute;top:4px;right:4px;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:#0008;color:#fff9;font-size:15px;line-height:26px;cursor:pointer}
.proposalTile.is-header .proposalStar{background:var(--pt-accent);color:#fff}

/* Refresh, matching the Plans page. Button rules name the element and two
   classes because design-system.css's .pt-controls :is(button, input:not()...)
   weighs (0,3,1): :is() takes its most specific argument.
   Look: card surfaces, one filled primary action
   per context, and secondary buttons whose border and text take the accent
   on hover. Everything below uses design-system tokens, so dark mode follows. */
.projectsHeading{margin:22px 0 4px}
.projectsWorkspace .projectsPage .projectsHeading h1{font-size:30px;letter-spacing:-.02em;line-height:1.15}
.projectsPage.pt-controls :is(button,summary){transition:background-color .15s,border-color .15s,color .15s}
.projectsPage.pt-controls button:not(:disabled):hover,
.projectsPage :is(.projectMore,.projectUtilities)>summary:hover{border-color:var(--pt-accent);color:var(--pt-accent)}
/* Primary: New blank pond, and Open on each row. */
.projectsPage.pt-controls :is(#projectNew,.projectActions>button:first-child){background:var(--pt-accent);border-color:var(--pt-accent);color:var(--pt-on-accent)}
.projectsPage.pt-controls :is(#projectNew,.projectActions>button:first-child):not(:disabled):hover{background:var(--pt-accent-hover);border-color:var(--pt-accent-hover);color:var(--pt-on-accent)}
.projectMainToolbar{margin-block:18px 24px}
.projectsPage.pt-controls .projectMainToolbar button,.projectUtilities>summary{min-height:42px;padding-inline:16px;font-size:14px}
.projectUtilities>summary{font-weight:600;background:var(--pt-paper);border-radius:var(--pt-radius-control)}

/* The pond list is one card; rows highlight under the pointer. */
.projectWorkspace{background:var(--pt-panel);border-radius:var(--pt-radius-card);padding:0 24px 8px}
.projectListToolbar{padding:22px 0 18px}
.projectsPage .projectListToolbar h2{font-size:1.25rem;margin:0}
.projectRow{border-top:1px solid var(--pt-border);margin-inline:-12px;padding:16px 12px;transition:background-color .15s}
.projectRow:hover{background:var(--pt-hover)}
.projectRow+.projectRow{border-top-color:var(--pt-border)}
.projectRow .projectPreview{border:1px solid var(--pt-border);border-radius:8px}
.projectRow h3{font-size:15px}
.projectIdentity>div{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.projectIdentity h3{flex-basis:100%}
.projectCurrent{flex-basis:100%;margin-bottom:2px}
.projectsPage.pt-controls button.projectAssetsButton{display:inline-flex;align-items:center;margin:0;min-height:28px;padding:3px 10px;font-size:12px;border-radius:999px}
.projectsPage.pt-controls button.projectCustomerButton{justify-self:start;max-width:100%;border:1px dashed var(--pt-border);background:transparent;border-radius:var(--pt-radius-control);min-height:34px;padding:5px 10px;color:var(--pt-muted);font-weight:500}
.projectsPage.pt-controls button.projectCustomerButton:hover{border-style:solid;border-color:var(--pt-accent);color:var(--pt-accent)}
.projectsPage.pt-controls .projectActions button,.projectActions summary{min-height:34px;padding:6px 12px}
.projectMore summary{background:var(--pt-paper);font-weight:600;border-radius:var(--pt-radius-control)}
.projectMenu{border-radius:10px;box-shadow:var(--pt-shadow-small)}
.projectsPage.pt-controls .projectMenu button{border-color:transparent;background:transparent;font-weight:500}
.projectsPage.pt-controls .projectMenu button:not(:disabled):hover{background:var(--pt-hover);border-color:transparent;color:var(--pt-ink)}

/* Starter ponds as cards, like the plan tiers. */
.projectTemplates .yardStarterList{gap:18px}
.projectTemplates .yardStarter{background:var(--pt-panel);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card);padding:22px}
.projectsPage.pt-controls .projectTemplates .yardStarter button{width:100%;min-height:42px;font-size:14px}

/* Account sync and deleted ponds: collapsible cards. */
.projectsPage :is(.projectAccount,.projectTrashPanel){margin-block:18px;background:var(--pt-panel);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card);padding:0 22px}
.projectsPage :is(.projectAccount,.projectTrashPanel)>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:54px;font-weight:600;cursor:pointer;color:var(--pt-ink)}
.projectsPage :is(.projectAccount,.projectTrashPanel)>summary::-webkit-details-marker{display:none}
.projectsPage :is(.projectAccount,.projectTrashPanel)>summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .15s}
.projectsPage :is(.projectAccount,.projectTrashPanel)[open]>summary::after{transform:rotate(-135deg) translateX(-3px)}
.projectsPage :is(.projectAccount,.projectTrashPanel)>summary:hover{color:var(--pt-accent)}
.projectsPage :is(.projectAccount,.projectTrashPanel)[open]{padding-bottom:18px}
.projectsPage .projectTrashPanel #projectTrash>p{margin:0;color:var(--pt-muted);font-size:14px}
.projectsPage .projectAccount{border-top:1px solid var(--pt-border);padding-top:0}
.projectsPage .projectTemplates{margin-bottom:28px}

@media(max-width:760px){.projectWorkspace{padding:0 14px 6px}.projectRow{margin-inline:-6px;padding:14px 6px}.projectTemplates .yardStarterList{gap:12px}.projectTemplates .yardStarter{padding:16px}.projectsPage.pt-controls .projectTemplates .yardStarter button{width:auto}.projectsWorkspace .projectsPage .projectsHeading h1{font-size:26px}}

/* Dialogs opened from Projects (Settings, Proposal): the page's own cards and
   buttons. Built by pond-project-dialog.mjs. */
.projectDialog{width:min(var(--project-dialog-width,560px),calc(100vw - 32px));max-height:90dvh;box-sizing:border-box;overflow:auto;padding:20px 22px 18px;background:var(--pt-bg,var(--pt-paper));color:var(--pt-ink);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card,16px);box-shadow:var(--pt-shadow-small)}
.projectDialog::backdrop{background:#08172180}
.projectDialog [hidden]{display:none!important}
.projectDialogHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.projectDialogHead h2{margin:0;font-size:1.25rem;letter-spacing:-.01em;overflow-wrap:anywhere}
.projectDialog.pt-controls .projectDialogClose{flex:none;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:var(--pt-radius-control);background:transparent;color:var(--pt-muted);font-size:22px;line-height:1}
.projectDialog.pt-controls .projectDialogClose:hover{background:var(--pt-hover);color:var(--pt-ink)}
.projectDialogBody,.projectDialog .proposalForm{display:grid;gap:12px}
.projectDialogCard{display:grid;gap:12px;background:var(--pt-panel);border:1px solid var(--pt-border);border-radius:var(--pt-radius-card,14px);padding:18px 20px}
.projectDialogCard[hidden]{display:none}
.projectDialogCard h3{margin:0;font-size:15px;font-weight:600}
.projectDialogCard h3+.projectDialogHint{margin-top:-8px}
.projectDialogHint{margin:0;font-size:13px;line-height:1.5;color:var(--pt-muted)}
.projectDialogActions,.proposalLinks{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.projectDialog.pt-controls :is(.projectDialogCard button,.projectDialogButton){display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin:0;padding:0 16px;font-size:14px;font-weight:600;box-sizing:border-box;border:1px solid var(--pt-border);border-radius:var(--pt-radius-control);background:var(--pt-paper);color:var(--pt-ink);text-decoration:none}
.projectDialog.pt-controls :is(.projectDialogCard button,.projectDialogButton):not(:disabled):hover{border-color:var(--pt-accent);color:var(--pt-accent)}
.projectDialog.pt-controls .projectDialogCard .projectDialog-primary{background:var(--pt-accent);border-color:var(--pt-accent);color:var(--pt-on-accent,#fff)}
.projectDialog.pt-controls .projectDialogCard .projectDialog-primary:not(:disabled):hover{background:var(--pt-accent-hover);border-color:var(--pt-accent-hover);color:var(--pt-on-accent,#fff)}
.projectDialog.pt-controls .projectDialogCard .projectDialog-danger{color:var(--pt-danger)}
.projectDialog.pt-controls .projectDialogCard .projectDialog-danger:not(:disabled):hover{border-color:var(--pt-danger);color:var(--pt-danger)}
.projectDialogInline{display:flex;gap:8px;align-items:stretch}
.projectDialogInline .proposalSlug{flex:1;min-width:0}
.projectDialogStatus{min-height:1.4em;margin:12px 2px 0;font-size:13px;color:var(--pt-muted)}
.projectDialogStatus:empty{margin:0;min-height:0}
.projectDialog .proposalField input,.projectDialog .proposalField textarea,.projectDialog .proposalSlug{background:var(--pt-paper)}
.projectDialog .proposalSlug input{min-height:40px;background:transparent}
.proposalSettingsLogoRow{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.proposalLogoPreview{display:flex;align-items:center;justify-content:center;width:160px;height:84px;box-sizing:border-box;padding:10px;border:1px dashed var(--pt-border);border-radius:var(--pt-radius-control);background:var(--pt-paper);color:var(--pt-muted);font-size:13px}
.proposalLogoPreview img{max-width:100%;max-height:100%;object-fit:contain}
.proposalLogoPreview [hidden]{display:none}
.proposalPick{display:flex;flex-wrap:wrap;gap:10px}
.proposalClips{display:grid;gap:6px}
.proposalUrl{margin:0;font-weight:600;font-size:14px;overflow-wrap:anywhere}
.proposalMessages article{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--pt-border)}
.proposalMessages article span{font-size:13px;color:var(--pt-muted)}
.proposalMessages article p{margin:4px 0 0;white-space:pre-line}
@media(max-width:520px){.projectDialogInline{flex-direction:column}.proposalLogoPreview{width:100%}.projectDialog{padding:16px}.projectDialogCard{padding:14px}}
