/* PROJECT BUILDER v3.0 */
.pb-container{max-width:860px;margin:0 auto;padding:24px 20px;min-height:calc(100vh - var(--header-height) - 120px);display:flex;flex-direction:column}
.pb-container.pb-fullmap{max-width:100%;padding:12px 0 0;overflow:hidden}
/* DASHBOARD */
.pb-dash{max-width:960px}.pb-dash-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap}.pb-dash-title{font-size:1.5em;font-weight:800;color:var(--text-primary);margin:0;letter-spacing:-.4px}.pb-dash-sub{font-size:.85em;color:var(--text-muted);margin:4px 0 0}
.pb-btn-new{padding:10px 22px;border:none;border-radius:10px;background:var(--accent-primary);color:white;font-size:.85em;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 2px 10px rgba(59,130,246,.2);flex-shrink:0}.pb-btn-new:hover{background:#2563EB}
.pb-dash-section-title{font-size:.72em;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}
.pb-dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.pb-project-card{border:1.5px solid var(--border-color);border-radius:12px;padding:14px 16px;background:var(--bg-primary);transition:all .2s;position:relative;cursor:pointer}.pb-project-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px rgba(0,0,0,.05)}
.pb-pc-top{display:flex;gap:12px;align-items:center;margin-bottom:8px}.pb-pc-img{width:36px;height:36px;object-fit:contain;opacity:.7;flex-shrink:0}.pb-pc-info{min-width:0;flex:1}.pb-pc-name{font-size:.88em;font-weight:700;color:var(--text-primary);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-pc-stats{display:flex;gap:10px;font-size:.7em;color:var(--text-muted)}
.pb-pc-bottom{display:flex;justify-content:space-between;align-items:center}.pb-pc-date{font-size:.66em;color:var(--text-muted)}.pb-pc-status{font-size:.63em;font-weight:600;padding:2px 8px;border-radius:8px;background:rgba(59,130,246,.08);color:var(--accent-primary)}.pb-pc-status[data-status="complete"]{background:rgba(16,185,129,.08);color:#059669}
.pb-pc-del{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;opacity:.3;padding:2px 5px;border-radius:4px}.pb-pc-del:hover{opacity:1;color:#EF4444}
.pb-dash-empty{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:.88em}
/* PROGRESS */
.pb-progress{margin-bottom:16px;flex-shrink:0;padding:0 20px}.pb-progress-bar{height:2px;background:var(--border-color);border-radius:2px;overflow:hidden;margin-bottom:10px}.pb-progress-fill{height:100%;background:var(--accent-primary);transition:width .4s ease}
.pb-steps{display:flex;justify-content:space-between;gap:2px}.pb-step{display:flex;align-items:center;gap:5px;cursor:pointer;padding:4px 8px;border-radius:6px;flex:1;justify-content:center}.pb-step:hover{background:var(--hover-bg)}.pb-step.active .pb-step-num{background:var(--accent-primary);color:white;border-color:var(--accent-primary)}.pb-step.done .pb-step-num{background:#10B981;color:white;border-color:#10B981}.pb-step.active .pb-step-label{color:var(--accent-primary);font-weight:700}
.pb-step-num{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:.68em;font-weight:700;color:var(--text-muted);flex-shrink:0}.pb-step-label{font-size:.7em;color:var(--text-muted);font-weight:500;white-space:nowrap}
/* CONTENT */
.pb-content{flex:1;display:flex;flex-direction:column}.pb-content-map{flex-direction:row;gap:0;overflow:hidden}
.pb-step-content{animation:pb-fade .25s ease}@keyframes pb-fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.pb-title{font-size:1.25em;font-weight:800;color:var(--text-primary);margin:0 0 2px;letter-spacing:-.3px}.pb-subtitle{font-size:.82em;color:var(--text-muted);margin:0 0 18px}
/* TECH GRID */
.pb-tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.pb-tech-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 10px;border:1.5px solid var(--border-color);border-radius:11px;cursor:pointer;transition:all .2s;background:var(--bg-primary);text-align:center}.pb-tech-card:hover{border-color:var(--text-muted);transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.05)}.pb-tech-card.selected{border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.pb-tech-img{width:44px;height:44px;object-fit:contain;opacity:.75}.pb-tech-card.selected .pb-tech-img{opacity:1}.pb-tech-name{font-size:.78em;font-weight:700;color:var(--text-primary)}.pb-tech-ratio{font-size:.64em;color:var(--text-muted)}
/* FORM */
.pb-form{display:flex;flex-direction:column;gap:14px;max-width:480px}
.pb-field{display:flex;flex-direction:column;gap:3px}.pb-label{font-size:.74em;font-weight:600;color:var(--text-secondary)}.pb-opt{font-weight:400;color:var(--text-muted);font-size:.9em}
.pb-input{width:100%;padding:8px 12px;border:1.5px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:.88em;font-family:inherit;box-sizing:border-box}.pb-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(59,130,246,.08)}
.pb-input-unit{display:flex;border:1.5px solid var(--border-color);border-radius:8px;overflow:hidden}.pb-input-unit:focus-within{border-color:var(--accent-primary)}.pb-input-unit .pb-input{border:none;border-radius:0}.pb-input-unit .pb-input:focus{box-shadow:none}
.pb-unit{display:flex;align-items:center;padding:0 12px;background:var(--hover-bg);font-size:.78em;font-weight:600;color:var(--text-muted);border-left:1px solid var(--border-color);white-space:nowrap}
.pb-select{width:100%;padding:8px 12px;border:1.5px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:.88em;font-family:inherit;box-sizing:border-box}.pb-select:focus{outline:none;border-color:var(--accent-primary)}
.pb-row{display:flex;gap:10px;align-items:stretch}
/* SURFACE */
.pb-surface-modes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}.pb-surface-btn{padding:8px 16px;border:1.5px solid var(--border-color);border-radius:8px;background:var(--bg-primary);font-size:.8em;font-weight:600;color:var(--text-muted);cursor:pointer}.pb-surface-btn:hover{border-color:var(--accent-primary)}.pb-surface-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:white}
.pb-surface-result{margin-top:14px}.pb-surface-card{padding:16px;border:1.5px solid rgba(59,130,246,.12);border-radius:10px;background:rgba(59,130,246,.02);text-align:center}.pb-surface-label{display:block;font-size:.72em;color:var(--text-muted);margin-bottom:2px}.pb-surface-value{display:block;font-size:1.7em;font-weight:800;color:var(--text-primary)}.pb-surface-hint{display:block;font-size:.68em;color:var(--text-muted);margin-top:2px}
.pb-kmz-zone{text-align:center}.pb-kmz-upload{display:inline-flex;flex-direction:column;align-items:center;gap:8px;padding:24px 36px;border:2px dashed var(--border-color);border-radius:11px;cursor:pointer;color:var(--text-muted);font-size:.82em}.pb-kmz-upload:hover{border-color:var(--accent-primary);color:var(--accent-primary)}
.pb-kmz-file{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:5px 12px;border:1px solid var(--border-color);border-radius:7px;font-size:.78em}.pb-kmz-file button{background:none;border:none;cursor:pointer;color:var(--text-muted)}.pb-kmz-file button:hover{color:#EF4444}
/* STEP 4: FULL MAP */
.pb-s4-map-area{flex:1;position:relative;min-height:0}.pb-map-full{width:100%;height:calc(100vh - var(--header-height) - 130px);min-height:400px}
.pb-s4-map-controls{position:absolute;top:10px;left:10px;z-index:500;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pb-s4-ctrl{padding:5px 10px;border:1px solid rgba(0,0,0,.12);border-radius:7px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);font-size:.76em;font-weight:600;font-family:inherit;cursor:pointer}
.pb-s4-env-toggle{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid rgba(0,0,0,.12);border-radius:7px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);font-size:.72em;font-weight:500;cursor:pointer;user-select:none}.pb-s4-env-toggle input{margin:0;width:14px;height:14px}
/* Right sidebar */
.pb-s4-side{width:360px;min-width:360px;background:var(--bg-secondary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;animation:pb-slide .2s ease}@keyframes pb-slide{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
.pb-s4-side-header{padding:12px 14px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:flex-start}.pb-s4-side-header h3{font-size:.9em;font-weight:700;color:var(--text-primary);margin:0}.pb-s4-meta{font-size:.72em;color:var(--text-muted);display:block;margin-top:2px}.pb-s4-close{background:none;border:none;font-size:15px;cursor:pointer;color:var(--text-muted);padding:2px 5px;border-radius:4px}.pb-s4-close:hover{background:var(--hover-bg)}
.pb-s4-filters{padding:10px 14px;border-bottom:1px solid var(--border-color)}
.pb-s4-loading{display:flex;justify-content:center;padding:30px}
.pb-s4-empty{padding:16px 14px;font-size:.78em;color:var(--text-muted);text-align:center;line-height:1.5}
/* Combination cards */
.pb-s4-combos{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.pb-s4-combos-head{font-size:.72em;font-weight:600;color:var(--text-muted);padding:8px 14px;border-bottom:1px solid var(--border-color)}
.pb-s4-combos-scroll{flex:1;overflow-y:auto;padding:6px 10px}
.pb-s4-combo{padding:10px 12px;border:1.5px solid var(--border-color);border-radius:9px;margin-bottom:6px;cursor:pointer;transition:all .15s;background:var(--bg-primary)}.pb-s4-combo:hover{border-color:var(--accent-primary)}.pb-s4-combo.selected{border-color:var(--accent-primary);background:rgba(59,130,246,.04);box-shadow:0 0 0 2px rgba(59,130,246,.1)}
.pb-s4-combo.partial{border-style:dashed;opacity:.7}.pb-s4-combo.partial .pb-s4-combo-title{color:#F59E0B}
.pb-s4-combo-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.pb-s4-combo-title{font-size:.82em;font-weight:700;color:var(--text-primary)}.pb-s4-combo-badge{font-size:.65em;font-weight:600;padding:2px 8px;border-radius:6px;background:rgba(59,130,246,.08);color:var(--accent-primary)}
.pb-s4-combo-stats{display:flex;gap:12px;font-size:.72em;color:var(--text-muted);margin-bottom:4px}
.pb-s4-combo-refs{display:flex;flex-wrap:wrap;gap:3px}.pb-s4-combo-ref{font-family:'Courier New',monospace;font-size:.62em;color:var(--text-muted);padding:1px 5px;background:var(--hover-bg);border-radius:3px}
/* STEP 5: SUMMARY (wide Paces-style) */
.pb-s5{display:flex;gap:36px;max-width:1200px;margin:0 auto;width:100%}
.pb-s5-left{flex:1;min-width:0}
.pb-s5-proj-title{font-size:1.3em;font-weight:800;color:var(--text-primary);margin:0 0 24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pb-s5-tech-tag{font-size:.5em;font-weight:600;color:var(--text-muted);padding:3px 10px;border:1px solid var(--border-color);border-radius:6px;text-transform:uppercase;letter-spacing:.3px}
.pb-s5-section-label{font-size:.68em;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border-color)}
.pb-s5-action{padding:14px 0;border-bottom:1px solid var(--border-color);cursor:pointer}.pb-s5-action:hover{background:rgba(0,0,0,.01)}
.pb-s5-action-title{font-size:.9em;font-weight:700;color:var(--text-primary);margin:0 0 2px}.pb-s5-action-desc{font-size:.76em;color:var(--text-muted);line-height:1.4;margin:0 0 4px}
.pb-s5-action-link{font-size:.78em;font-weight:600;color:var(--text-muted)}.pb-s5-action:hover .pb-s5-action-link{color:var(--accent-primary)}
.pb-s5-study{border-bottom:1px solid var(--border-color)}.pb-s5-study-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 0;cursor:pointer}.pb-s5-study-row:hover .pb-s5-action-title{color:var(--accent-primary)}
.pb-s5-price{font-size:.82em;font-weight:700;color:var(--text-primary);flex-shrink:0;white-space:nowrap}
.pb-s5-study-body{padding:0 0 14px}.pb-s5-study-body p{font-size:.8em;color:var(--text-secondary);line-height:1.6;margin:0 0 12px}
.pb-s5-req-btn{width:100%;padding:10px;border:none;border-radius:8px;background:var(--accent-primary);color:white;font-size:.85em;font-weight:700;cursor:pointer;font-family:inherit}.pb-s5-req-btn:hover{background:#2563EB}
.pb-s5-right{width:320px;flex-shrink:0;border:1px solid var(--border-color);border-radius:11px;background:var(--bg-primary);padding:20px;align-self:flex-start;position:sticky;top:20px}
.pb-s5-details-title{font-size:.76em;font-weight:700;color:var(--text-muted);margin-bottom:16px}
.pb-s5-d-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:.82em}.pb-s5-d-row span:first-child{color:var(--text-muted)}.pb-s5-d-row span:last-child{color:var(--text-primary);font-weight:600;text-align:right}
.pb-s5-d-divider{height:1px;background:var(--border-color);margin:8px 0}
.pb-s5-status-badge{color:#F59E0B!important;display:inline-flex;align-items:center;gap:4px}.pb-s5-status-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:#F59E0B;flex-shrink:0}
/* NAV */
.pb-nav{display:flex;align-items:center;gap:12px;padding:14px 20px;margin-top:auto;border-top:1px solid var(--border-color);flex-shrink:0}.pb-nav-map{position:absolute;bottom:0;left:0;right:0;z-index:500;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-top:1px solid var(--border-color)}
.pb-btn-back{padding:8px 20px;border:1.5px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-secondary);font-size:.84em;font-weight:600;cursor:pointer;font-family:inherit}.pb-btn-back:hover{border-color:var(--text-muted)}
.pb-btn-next{padding:8px 26px;border:none;border-radius:8px;background:var(--accent-primary);color:white;font-size:.84em;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(59,130,246,.2)}.pb-btn-next:hover{background:#2563EB}.pb-btn-next:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
/* RESPONSIVE */
@media(max-width:768px){.pb-tech-grid{grid-template-columns:repeat(2,1fr)}.pb-step-label{display:none}.pb-s4-side{width:100%;min-width:100%;max-height:50vh;border-left:none;border-top:1px solid var(--border-color)}.pb-content-map{flex-direction:column}.pb-s5-right{width:100%}.pb-s5{flex-direction:column}}
@media(max-width:1024px){.pb-s4-side{width:320px;min-width:320px}.pb-s5-right{width:260px}}
