:root{--font-xs:12px;--font-sm:13px;--font-body:14px;--font-input:16px;--font-title:24px;--ink:#181a19;--text:#252a27;--muted:#68726d;--bg:#ecefed;--surface:#f5f7f6;--line:#d7ddda;--strong:#b7c0bb;--yellow:#ffe24d;--green:#176f45;--amber:#8a5c00;--red:#a83226;--header:62px;--nav:210px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:var(--font-body)/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button,a{cursor:pointer}.topbar{position:sticky;z-index:100;top:0;height:var(--header);padding:0 24px;display:grid;grid-template-columns:240px 1fr auto;align-items:center;gap:20px;background:var(--ink);color:white}.brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none}.brand img{width:138px;height:32px;object-fit:contain;filter:brightness(0) invert(1)}.brand span{color:var(--yellow);font-size:var(--font-xs);font-weight:900;letter-spacing:.16em}.context{display:flex;align-items:center;gap:9px}.context small{color:#929a96;font-size:var(--font-xs);font-weight:800;letter-spacing:.1em}.context strong{font-size:var(--font-xs)}.context i{width:1px;height:20px;background:#3b403d;margin:0 6px}.beta{padding:6px 9px;border:1px solid #626865;border-radius:3px;color:var(--yellow);font-size:var(--font-xs);font-weight:900;letter-spacing:.1em}main{max-width:1780px;margin:auto;padding:18px 20px 42px;display:grid;grid-template-columns:var(--nav) minmax(0,1fr);align-items:start}.steps{position:sticky;top:calc(var(--header) + 18px);padding:10px;display:flex;flex-direction:column;gap:3px;background:var(--surface);border:1px solid var(--line);border-radius:7px 0 0 7px}.steps button{position:relative;min-height:68px;padding:11px 10px;display:grid;grid-template-columns:28px 1fr;gap:7px;border:0;border-radius:5px;background:transparent;text-align:left}.steps b{color:#929b96;font-size:var(--font-xs)}.steps span{font-weight:850}.steps small{display:block;margin-top:4px;color:var(--muted);font-size:var(--font-xs)}.steps button.active{background:var(--ink);color:white}.steps button.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;background:var(--yellow)}.steps button.active b{color:var(--yellow)}.steps button.active small{color:#bbc2bf}.workspace{min-width:0;background:white;border:1px solid var(--line);border-left:0;border-radius:0 7px 7px 0;box-shadow:0 10px 30px rgba(19,25,22,.07)}.screen{display:none;min-height:760px;padding:26px 28px 82px}.screen.active{display:block}.planning-screen{padding:0;min-height:calc(100vh - 100px)}.section-head,.planning-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.section-head p,.planning-head small{margin:0;color:var(--muted);font-size:var(--font-xs);font-weight:900;letter-spacing:.12em}.section-head h1{margin:3px 0 4px;font-size:var(--font-title)}.section-head span{color:var(--muted);font-size:var(--font-xs)}.section-head em{padding:7px 10px;border-radius:4px;background:var(--ink);color:white;font-style:normal;font-weight:900}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid label{color:#4e5752;font-size:var(--font-xs);font-weight:750}.form-grid input,.form-grid select,.planning-head select{width:100%;min-height:42px;margin-top:6px;padding:9px 10px;border:1px solid var(--strong);border-radius:4px;background:white}.location-panel{margin-top:20px;padding:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;border-left:3px solid var(--yellow);background:var(--surface)}.location-panel small,.location-panel strong,.location-panel span{display:block}.location-panel small{color:var(--muted);font-size:var(--font-xs);font-weight:900;letter-spacing:.1em}.location-panel strong{margin-top:4px}.location-panel span{margin-top:3px;color:var(--muted);font-size:var(--font-xs)}.location-panel dl{grid-column:1/-1;margin:0;display:grid;grid-template-columns:repeat(4,1fr)}.location-panel dl div{padding:0 10px;border-left:1px solid var(--line)}.location-panel dt{color:var(--muted);font-size:var(--font-xs)}.location-panel dd{margin:4px 0 0;font-size:var(--font-xs);font-weight:850}.primary,.secondary{min-height:40px;padding:9px 14px;border-radius:4px;font-size:var(--font-xs);font-weight:850;text-decoration:none}.primary{border:1px solid var(--ink);background:var(--ink);color:white}.secondary{border:1px solid var(--strong);background:white;color:var(--text)}.actions{position:sticky;z-index:20;bottom:0;margin:30px -28px -82px;padding:12px 28px;min-height:64px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.actions>div,.add-actions{display:flex;gap:8px}.empty-surfaces{padding:50px 20px;text-align:center;border:1px dashed var(--strong);border-radius:6px;background:#fafbfa}.empty-surfaces>p{font-size:var(--font-xs);font-weight:900;letter-spacing:.12em}.empty-surfaces>div{max-width:650px;margin:18px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.empty-surfaces button{padding:25px;border:1px solid var(--line);border-radius:5px;background:white}.empty-surfaces button:hover{border-color:var(--ink);box-shadow:inset 3px 0 var(--yellow)}.empty-surfaces b,.empty-surfaces span{display:block}.empty-surfaces span{margin-top:5px;color:var(--muted);font-size:var(--font-xs)}.surface-group{margin-top:14px}.surface-group h2{font-size:var(--font-sm);letter-spacing:.08em}.surface-card{padding:13px 14px;display:grid;grid-template-columns:28px minmax(0,1fr) minmax(110px,140px) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:5px;background:white}.surface-card+.surface-card{margin-top:7px}.surface-card.selected{border-color:var(--ink);box-shadow:inset 3px 0 var(--yellow)}.surface-card input[type=radio]{accent-color:var(--ink)}.surface-card input[type=text]{width:100%;padding:8px;border:1px solid transparent;background:transparent;font-weight:850}.surface-card input[type=text]:focus{border-color:var(--strong);background:white}.surface-card small{display:block;color:var(--muted);font-size:var(--font-xs)}.surface-card .badge{padding:6px 8px;border-radius:3px;background:var(--surface);color:var(--muted);font-size:var(--font-xs);font-weight:900}.surface-card .card-actions{display:flex;flex-wrap:wrap;gap:6px}.surface-card .card-actions button{padding:7px 9px;border:1px solid var(--line);background:white;border-radius:3px;font-size:var(--font-xs)}.planning-head{min-height:62px;margin:0;padding:10px 14px;align-items:center;border-bottom:1px solid var(--line);background:var(--surface)}.planning-head>div:first-child strong{display:block;margin-top:2px}.planning-head select{max-width:320px;margin:0;min-height:36px}.planning-head>div:last-child{display:flex;gap:6px}.planning-head button{min-height:34px;padding:6px 9px}.editor-placeholder{margin:80px auto;max-width:500px;padding:50px;text-align:center;color:var(--muted);border:1px dashed var(--strong)}#surface-editor{display:block;width:100%;height:calc(100vh - 165px);min-height:760px;border:0;background:white}.status{padding:7px 10px;border-radius:3px;background:#fff1d6;color:var(--amber);font-size:var(--font-xs);font-weight:900}.result-identity{display:grid;grid-template-columns:160px 80px 1fr 1.3fr;border:1px solid var(--line);border-radius:5px;overflow:hidden}.result-identity>div{padding:13px;border-right:1px solid var(--line)}.result-identity>div:last-child{border:0}.result-identity small,.result-identity strong{display:block}.result-identity small{color:var(--muted);font-size:var(--font-xs)}.result-identity strong{margin-top:4px;font-size:var(--font-xs)}.result-metrics{margin-top:10px;display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line);border-radius:5px}.result-metrics article{padding:12px;border-right:1px solid var(--line)}.result-metrics article:last-child{border:0}.result-metrics small,.result-metrics strong{display:block}.result-metrics small{color:var(--muted);font-size:var(--font-xs)}.result-metrics strong{margin-top:5px}.screen>h2{margin:24px 0 9px;font-size:var(--font-sm);letter-spacing:.07em;text-transform:uppercase}.surface-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.surface-result{padding:13px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}.surface-result small,.surface-result strong,.surface-result span{display:block}.surface-result small{color:var(--muted);font-size:var(--font-xs)}.surface-result span{margin-top:5px;color:var(--muted);font-size:var(--font-xs)}.project-bom{border:1px solid var(--line);border-radius:4px;overflow:hidden}.bom-head,.bom-row{display:grid;grid-template-columns:100px minmax(240px,1fr) 80px 120px;align-items:center}.bom-head{padding:8px 10px;background:var(--ink);color:white;font-size:var(--font-xs);font-weight:900}.bom-row{padding:9px 10px;border-top:1px solid var(--line);font-size:var(--font-xs)}.bom-row:nth-child(odd){background:var(--surface)}.message{margin-top:14px;padding:10px 12px;border-left:3px solid var(--yellow);background:var(--surface);font-size:var(--font-xs)}.message.error{border-left-color:var(--red);color:var(--red)}.message.ok{border-left-color:var(--green);color:var(--green)}.disabled,[aria-disabled=true]{opacity:.4;pointer-events:none}@media(max-width:1000px){main{grid-template-columns:1fr}.steps{z-index:50;top:var(--header);flex-direction:row;border-radius:6px 6px 0 0;overflow:auto}.steps button{flex:0 0 170px}.workspace{border-left:1px solid var(--line);border-radius:0 0 6px 6px}.location-panel{grid-template-columns:1fr}.location-panel dl{margin-top:8px}.result-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.topbar{grid-template-columns:1fr auto;padding:0 12px}.context{display:none}main{padding:8px}.screen{padding:18px 12px 76px}.actions{margin-left:-12px;margin-right:-12px;margin-bottom:-76px;padding:10px 12px}.form-grid,.empty-surfaces>div,.surface-results{grid-template-columns:1fr}.surface-card{grid-template-columns:25px 1fr}.surface-card>.badge,.surface-card>.card-actions{grid-column:2}.planning-head{flex-wrap:wrap}.planning-head select{order:3;max-width:none}.result-identity{grid-template-columns:1fr 1fr}.result-metrics{grid-template-columns:1fr 1fr}.bom-head,.bom-row{min-width:650px}.project-bom{overflow:auto}}
.fence-3d-placement { grid-column: 1 / -1; width: 100%; padding-top: 12px; border-top: 1px solid #d8dfda; }
.fence-3d-placement summary { cursor: pointer; font-weight: 700; }
.fence-3d-placement p { font-size:var(--font-body); max-width: 65ch; }
.fence-3d-placement label { display: inline-flex; flex-direction: column; gap: 5px; margin: 8px 12px 8px 0; max-width: 160px; }
.fence-3d-placement input { width: 100%; }
.fence-3d-placement [role="status"] { display: block; color: #9d301f; }

/* Live usability pass: persistent save state, project access, readable controls. */
.topbar{grid-template-columns:200px minmax(0,1fr) auto auto}
.global-save-status{padding:6px 10px;border-radius:999px;background:#303633;color:#e8ece9;font-size:var(--font-xs);font-weight:800;white-space:nowrap}
.global-save-status[data-tone="saved"]{background:#174f35;color:#dff7e9}.global-save-status[data-tone="pending"]{background:#665716;color:#fff5bd}.global-save-status[data-tone="error"]{background:#7c2b24;color:#fff}
.project-access{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:5px;background:#fafbfa}.project-access summary{cursor:pointer;font-weight:850}.project-access p{color:var(--muted);font-size:var(--font-sm)}.project-access>div{display:flex;gap:8px}.project-access input{min-width:0;flex:1;padding:9px 10px;border:1px solid var(--strong);border-radius:4px}
.save-conflict{margin:0 0 16px;padding:14px;display:grid;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:10px;border:1px solid #dfb4ae;border-left:4px solid var(--red);background:#fff3f1}.save-conflict[hidden]{display:none}.save-conflict div{display:grid;gap:3px}.save-conflict span{color:var(--muted);font-size:var(--font-sm)}
.site-placement{display:grid;grid-template-columns:220px 1fr;gap:14px;align-items:center}.site-placement svg{width:220px;height:150px;border:1px solid var(--line);border-radius:6px;background:#e9f0df}.site-placement rect{fill:#e6e1d6;stroke:#59645e;stroke-width:2}.site-placement text{fill:#38443d;font-size:var(--font-sm);font-weight:850;text-anchor:middle}.site-placement line{stroke:#202623;stroke-width:6;stroke-linecap:round}.site-placement-quick{display:grid;grid-template-columns:1fr 1fr;gap:7px}.fence-placement-fields{display:flex;flex-wrap:wrap;gap:8px}
.surface-card small,.surface-card .card-actions button,.surface-card .badge,.result-identity small,.result-metrics small,.bom-head,.bom-row,.message{font-size:var(--font-xs)}.surface-result span,.surface-result em{font-size:var(--font-sm)}.location-panel span,.location-panel dt,.location-panel dd{font-size:var(--font-xs)}.steps small{font-size:var(--font-xs)}.section-head span{font-size:var(--font-sm)}
.bom-row.article-open{border-left:4px solid var(--amber);background:#fff8e9}.bom-row.article-open>span:first-child{color:var(--amber);font-weight:900}
@media(max-width:1000px){.topbar{grid-template-columns:210px 1fr auto}.topbar .beta{display:none}.save-conflict{grid-template-columns:1fr 1fr}.save-conflict div{grid-column:1/-1}}
@media(max-width:700px){.topbar{grid-template-columns:1fr auto}.global-save-status{font-size:var(--font-xs)}.project-access>div{flex-direction:column}.site-placement{grid-template-columns:1fr}.site-placement svg{max-width:100%}.save-conflict{grid-template-columns:1fr}}
.legal-footer{max-width:1780px;margin:0 auto 24px;padding:0 20px 0 calc(var(--nav) + 40px);display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:var(--font-xs)}.legal-footer nav{display:flex;gap:16px}.legal-footer a{color:inherit;text-underline-offset:3px}@media(max-width:1000px){.legal-footer{padding-left:20px}}@media(max-width:700px){.legal-footer{padding:0 12px;flex-direction:column;gap:8px}.legal-footer nav{flex-wrap:wrap}}

/* Live UX pass 3.29: grouped inputs, scalable surface management and clear feedback. */
.screen[data-screen="1"]{width:100%;max-width:1180px;margin:0 auto}.project-form-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.project-form-column{min-width:0;display:grid;gap:22px;align-content:start}.project-form-groups fieldset{min-width:0;margin:0;padding:0;border:0;background:transparent}.project-form-groups legend{width:100%;margin:0 0 12px;padding:0 0 8px;border-bottom:1px solid var(--line);color:#3e4a44;font-size:var(--font-sm);font-weight:900}.project-form-groups label em{display:block;color:var(--muted);font-size:var(--font-xs);font-style:normal;font-weight:600}.surface-tools{margin:12px 0;padding:12px;display:flex;align-items:end;gap:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.surface-tools[hidden]{display:none}.surface-tools label{display:grid;gap:4px;color:var(--muted);font-size:var(--font-xs);font-weight:800}.surface-tools input,.surface-tools select{min-height:38px;padding:8px 10px;border:1px solid var(--strong);border-radius:5px;background:#fff}.surface-tools input{min-width:260px}.surface-tools span{margin-left:auto;padding-bottom:9px;color:var(--muted);font-size:var(--font-sm)}.surface-card[hidden]{display:none}.readiness-banner{margin-bottom:12px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #b8d6c4;border-left:5px solid var(--green);border-radius:6px;background:#f2fbf6}.readiness-banner>div{display:grid;gap:3px}.readiness-banner small{color:var(--muted);font-size:var(--font-xs);font-weight:900;letter-spacing:.08em}.readiness-banner strong{font-size:14px}.readiness-banner span{color:var(--muted);font-size:var(--font-sm)}.readiness-banner[data-tone="open"]{border-color:#dfd3a5;border-left-color:var(--yellow);background:#fffbed}.readiness-banner[data-tone="warn"]{border-color:#e2bda5;border-left-color:#d77831;background:#fff7f1}.recent-projects{margin-top:14px!important;padding-top:12px;border-top:1px solid var(--line);display:block!important}.recent-projects[hidden]{display:none!important}.recent-projects>strong{font-size:var(--font-sm)}.recent-projects>div>div{margin-top:7px;display:flex;align-items:center;gap:8px}.recent-projects a{min-width:0;flex:1;padding:8px 10px;display:grid;color:inherit;text-decoration:none;border:1px solid var(--line);border-radius:5px;background:#fff}.recent-projects a span{color:var(--muted);font-size:var(--font-xs)}.undo-toast{position:fixed;z-index:1200;right:24px;bottom:24px;max-width:min(440px,calc(100vw - 32px));padding:12px 14px;display:flex;align-items:center;gap:18px;border-radius:7px;background:#1d2420;color:#fff;box-shadow:0 16px 50px rgba(0,0,0,.28)}.undo-toast[hidden]{display:none}.undo-toast button{margin-left:auto}.screen[data-screen="3"].active{display:block}body[data-step="3"] main{max-width:none;padding:8px;display:block}body[data-step="3"] main>.steps{display:none}body[data-step="3"] .workspace{border:1px solid var(--line);border-radius:7px}body[data-step="3"] #surface-editor{height:calc(100dvh - 142px);min-height:620px}.message{font-size:var(--font-sm)}.surface-card .card-actions button,.surface-card .badge{font-size:var(--font-xs)}.planning-head>div:last-child{flex-wrap:wrap}
@media(max-width:900px){.project-form-groups{grid-template-columns:1fr;gap:22px}.surface-tools{align-items:stretch;flex-direction:column}.surface-tools input{min-width:0;width:100%}.surface-tools span{margin-left:0;padding:0}.readiness-banner{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.topbar .beta{display:none}.global-save-status{max-width:42vw;overflow:hidden;text-overflow:ellipsis}.section-head{align-items:stretch;flex-direction:column}.add-actions{display:grid;grid-template-columns:1fr 1fr}.add-actions button:last-child{grid-column:1/-1}.undo-toast{right:16px;bottom:16px;left:16px}.project-form-column{gap:18px}.result-header-actions{display:grid!important;grid-template-columns:1fr 1fr}.result-header-actions button{width:100%}body[data-step="3"] #surface-editor{height:calc(100dvh - 210px);min-height:560px}}
.readiness-banner{width:100%}

/* Stable one-pass surface selection: geometry comes from the selected planner. */
html{scrollbar-gutter:stable}
.roof-geometry-flow{display:grid;grid-template-columns:34px minmax(0,1fr) 34px minmax(0,1fr);align-items:center;gap:12px;margin:0 0 20px;padding:14px 16px;border:1px solid #c7d9cf;border-left:4px solid var(--green);border-radius:7px;background:#f2f8f5}
.roof-geometry-flow>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--green);color:#fff;font-weight:900}
.roof-geometry-flow>div{min-width:0;display:grid;gap:3px}.roof-geometry-flow strong{font-size:var(--font-body)}.roof-geometry-flow small{color:var(--muted);font-size:var(--font-xs);line-height:1.45}
@media(max-width:800px){.roof-geometry-flow{grid-template-columns:34px minmax(0,1fr)}.roof-geometry-flow>span:nth-of-type(2){grid-column:1}.roof-geometry-flow>div:nth-of-type(2){grid-column:2}}

/* Global process navigation spans the complete planner workspace. */
main{grid-template-columns:minmax(0,1fr);gap:0}
main>.steps{grid-column:1/-1;position:sticky;top:var(--header);z-index:90;width:100%;padding:7px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;border-radius:8px 8px 0 0;box-shadow:0 8px 24px rgba(19,25,22,.08)}
main>.steps button{min-width:0;min-height:60px;padding:9px 12px;grid-template-columns:30px minmax(0,1fr);align-items:center;text-align:left}
main>.steps button.complete:not(.active){background:#edf7f1;color:#184b34}
main>.steps button.incomplete:not(.active){background:#fff;color:var(--text)}
main>.steps button.warning:not(.active){background:#fff7e7;color:#765000}
main>.steps button span,main>.steps button small{min-width:0;overflow-wrap:anywhere}
main>.workspace{grid-column:1/-1;border-left:1px solid var(--line);border-radius:0 0 8px 8px}
body[data-step="3"] main{max-width:none;padding:8px 12px 24px;display:grid}
body[data-step="3"] main>.steps{display:grid}
body[data-step="3"] .workspace{border-radius:0 0 7px 7px}
body[data-step="3"] #surface-editor{height:calc(100dvh - 214px)}
@media(max-width:700px){main>.steps{grid-template-columns:repeat(4,minmax(92px,1fr));overflow-x:auto}main>.steps button{min-height:56px;padding:7px 8px;grid-template-columns:20px minmax(0,1fr)}main>.steps button small{display:none}body[data-step="3"] #surface-editor{height:calc(100dvh - 206px)}}


/* Project form alignment fix 3.29.0-live-layout-fix-2 */
.screen[data-screen="1"]{max-width:1100px}
.project-form-groups{display:block}
.project-form-column{display:contents}
.project-form-groups fieldset{margin:0 0 24px}
.project-form-groups .form-grid{align-items:stretch}
.project-form-groups .form-grid label{min-width:0;display:flex;flex-direction:column}
.project-form-groups .form-grid input,
.project-form-groups .form-grid select{margin-top:auto}
.project-form-column:nth-child(2) fieldset:first-child .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){
  .screen[data-screen="1"]{max-width:720px}
  .project-form-column:nth-child(2) fieldset:first-child .form-grid{grid-template-columns:1fr}
}

/* Shared control sizes and feedback: one readable scale across all project steps. */
button, input, select, textarea, summary, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
summary:focus-visible, a:focus-visible { outline: 3px solid #b38900; outline-offset: 3px; }
button:disabled { cursor: not-allowed; opacity: .6; }
.context { min-width: 0; }
.context strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar .beta { white-space: nowrap; }
.form-grid { column-gap: 20px; row-gap: 14px; }
.project-form-groups .form-grid label { position: relative; gap: 5px; padding-bottom: 20px; }
.project-form-groups .form-grid input, .project-form-groups .form-grid select {
  min-width: 0; min-height: 44px; font-size: var(--font-input); line-height: 1.4;
}

.solar-prefetch{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:#fff}.solar-prefetch b{font-size:var(--font-xs)}.solar-prefetch span{margin:0!important}.solar-prefetch[data-state="loading"]{border-color:#d3b72a;background:#fffbea}.solar-prefetch[data-state="ready"]{border-color:#86b99f;background:#eef8f2}.solar-prefetch[data-state="ready"] span{color:var(--green)}.solar-prefetch[data-state="error"]{border-color:#ddb0ab;background:#fff5f3}.solar-prefetch[data-state="error"] span{color:var(--red)}
.project-form-groups legend { font-size: 16px; }
.project-form-groups fieldset { margin-bottom: 16px; }
.field-error { position: absolute; top: calc(100% - 16px); left: 0; font-size: var(--font-xs); color: var(--red); }
[aria-invalid="true"] { border-color: var(--red) !important; box-shadow: 0 0 0 1px var(--red); }
.field-error[hidden], .project-feedback[hidden] { display: none; }
.project-feedback {
  position: sticky; top: var(--header); z-index: 80; margin: 12px; padding: 12px 16px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  border: 1px solid #dab3ac; border-left: 4px solid var(--red); border-radius: 6px;
  background: #fff4f1; color: #832b22; font-size: var(--font-body);
}
.project-feedback > span { min-width: 0; overflow-wrap: anywhere; }
.project-feedback > div { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.project-feedback[data-tone="ok"] { border-color: #b8d6c4; border-left-color: var(--green); background: #f2fbf6; color: var(--green); }
.location-panel { margin-top: 8px; }
.location-panel dl { gap: 12px; }
.location-panel dt, .location-panel dd { overflow-wrap: anywhere; }
.location-panel dl div { min-width: 0; }
.surface-card .card-actions button, .primary, .secondary { min-height: 42px; }
.surface-tools, .surface-card, .section-head > div, .planning-head > div { min-width: 0; }
.surface-result strong, .surface-card small, .surface-result span { overflow-wrap: anywhere; }
.result-primary-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.result-followup-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; width: 100%; padding: 12px; border: 1px solid var(--line); border-left: 4px solid var(--yellow); border-radius: 6px; background: var(--surface-soft); }
.result-followup-actions strong { margin-right: 4px; font-size: var(--font-sm); }
.pdf-progress{margin:12px 0 18px;padding:16px 18px;border:1px solid #d3b72a;border-left:5px solid var(--yellow);border-radius:6px;background:#fffbea;display:flex;align-items:center;justify-content:space-between;gap:18px}.pdf-progress[hidden]{display:none}.pdf-progress-copy{display:flex;align-items:center;gap:14px;min-width:0}.pdf-progress-copy small{display:block;color:var(--muted);font-size:var(--font-xs);font-weight:800;letter-spacing:.06em}.pdf-progress-copy strong{display:block;margin:2px 0 3px;font-size:16px}.pdf-progress-copy p{margin:0;color:var(--muted)}.pdf-progress-spinner{width:28px;height:28px;flex:0 0 28px;border:3px solid #eadf9d;border-top-color:#b38900;border-radius:50%;animation:pdf-spin .8s linear infinite}.pdf-progress-actions{display:flex;flex-wrap:wrap;gap:8px}.pdf-progress-actions a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:0 16px;min-height:42px}.pdf-progress-actions a[hidden]{display:none}.pdf-progress[data-state="ready"]{border-color:#86b99f;border-left-color:var(--green);background:#eef8f2}.pdf-progress[data-state="ready"] .pdf-progress-spinner{border:0;animation:none;display:grid;place-items:center;background:var(--green);color:#fff}.pdf-progress[data-state="ready"] .pdf-progress-spinner::after{content:"✓";font-weight:900}.pdf-progress[data-state="error"]{border-color:#ddb0ab;border-left-color:var(--red);background:#fff5f3}.pdf-progress[data-state="error"] .pdf-progress-spinner{display:none}@keyframes pdf-spin{to{transform:rotate(360deg)}}
.result-more-actions { width: 100%; border-top: 1px solid var(--line); padding-top: 10px; }
.result-more-actions summary { width: fit-content; padding: 8px 0; color: var(--muted); font-size: var(--font-sm); font-weight: 700; cursor: pointer; }
.result-more-actions > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
@media (max-width: 1200px) {
  .surface-card { grid-template-columns: 28px minmax(0,1fr) auto; }
  .surface-card .card-actions { grid-column: 2 / -1; }
}
@media (max-width: 900px) {
  .context { display: none; }
  .topbar { grid-template-columns: 1fr auto; gap: 12px; }
  .project-feedback { position: static; flex-direction: column; align-items: stretch; }
  .location-panel dl { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .brand img { width: 110px; }
  .brand span { display: none; }
  .global-save-status { max-width: 50vw; }
  .steps button { flex-basis: 145px; min-height: 58px; grid-template-columns: 20px 1fr; }
  .steps small { font-size: var(--font-xs); }
  .surface-card { grid-template-columns: 25px minmax(0,1fr); }
  .surface-card > .badge, .surface-card > .card-actions { grid-column: 2; }
  .form-grid { row-gap: 10px; }
  .location-panel { gap: 12px; padding: 14px; }
  .location-panel dl { grid-column: auto; }
  .result-primary-actions, .result-followup-actions, .result-more-actions > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  .result-followup-actions strong { grid-column: 1/-1; }
  .pdf-progress{align-items:stretch;flex-direction:column}.pdf-progress-actions{display:grid;grid-template-columns:1fr 1fr}.pdf-progress-actions a{min-width:0}
  .result-header-actions { display: flex !important; align-items: stretch; }
  .result-header-actions button { min-width: 0; }
  .planning-head { align-items: stretch; }
  .planning-head > div:last-child { width: 100%; }
  .planning-head button { flex: 1 1 auto; }
}

/* Clean project header · Planer v3.0.0 */
.topbar{
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:28px;
}
.topbar .brand{width:max-content;gap:0}
.topbar .brand img{width:132px;height:30px}
.topbar .context{display:flex;min-width:0;align-items:center;gap:11px}
.topbar .context .planner-title{color:#fff;font-size:14px;font-weight:900;letter-spacing:.015em}
.topbar .context small{color:#929a96;font-size:11px;letter-spacing:.1em}
.topbar .context #header-number{font-size:13px;font-weight:850}
.topbar .context i{margin:0 5px;background:#3b403d}
.topbar .context [hidden]{display:none!important}
.topbar .beta{display:inline-flex;align-items:center;justify-self:end;padding:6px 10px;border-color:#626865;color:var(--yellow);white-space:nowrap}
@media(max-width:900px){
  .topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:18px}
  .topbar .context{display:flex}
  .topbar .context .planner-title{font-size:13px}
  .topbar .beta{display:inline-flex}
}
@media(max-width:700px){
  .topbar{padding:0 12px;gap:12px}
  .topbar .brand img{width:100px;height:26px}
  .topbar .context{gap:6px}
  .topbar .context .planner-title,.topbar .context i{display:none}
  .topbar .context small{font-size:9px}
  .topbar .context #header-number{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar .beta{display:inline-flex;padding:5px 7px;font-size:10px;letter-spacing:.08em}
}

/* Planungsrevision nicht in der Seitenüberschrift anzeigen. */
.section-head #project-version{display:none!important}

.editor-loading{min-height:calc(100dvh - 142px);display:grid;grid-template-columns:38px minmax(0,420px);place-content:center;align-items:center;gap:16px;background:linear-gradient(180deg,#f8faf9,#eef2f0);color:var(--ink)}
.editor-loading[hidden]{display:none}.editor-loading>span{width:34px;height:34px;border:3px solid #d6ddda;border-top-color:#1f2924;border-radius:50%;animation:editor-loading-spin .8s linear infinite}.editor-loading strong,.editor-loading small{display:block}.editor-loading small{margin-top:4px;color:var(--muted)}@keyframes editor-loading-spin{to{transform:rotate(360deg)}}
.bom-head,.bom-row{grid-template-columns:120px minmax(260px,1fr) 110px!important}

/* Compact plan access: no extra card or large copy action. */
.project-access > label { display:block; font-weight:600; margin-bottom:8px; }
.project-access > div { display:flex; gap:8px; }
.project-access input { min-width:0; flex:1; }
.project-access > small { display:block; margin-top:6px; color:#66736e; }
.project-code-row:not([hidden]) { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:8px; font-size:12px; }
.project-code-row > strong { font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
button.project-code-copy { display:inline-flex; align-items:center; justify-content:center; width:28px; min-width:28px; height:28px; padding:4px; border:0; border-radius:6px; background:transparent; color:#596861; box-shadow:none; }
button.project-code-copy:hover { background:#edf1ef; color:#14251b; }
button.project-code-copy:focus-visible { outline:2px solid #526f60; outline-offset:2px; }
#code-copy-status { color:#426453; font-size:12px; }

.project-access { margin:0 0 20px; padding:0 0 16px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; max-width:520px; }
.project-code-row:not([hidden]) { margin-top:10px; color:#5d6a64; }
