@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-primary:#1e2a38;--color-secondary:#d6c3a3;--color-accent:#2e8b57;--color-neutral:#f5f5f5;--color-text:#333;--color-white:#fff;--color-border:#e0e0e0;--color-danger:#d32f2f;--font-family-base:"Inter", sans-serif;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--transition-fast:.15s ease-in-out;--transition-normal:.3s ease-in-out}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-base);color:var(--color-text);background-color:var(--color-neutral);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}#root{overflow-x:hidden}h1,h2,h3,h4,h5,h6{color:var(--color-primary);font-weight:600;line-height:1.2}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent)}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{max-width:1200px;padding:0 var(--spacing-md);margin:0 auto}.card{background-color:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg);transition:box-shadow var(--transition-normal), transform var(--transition-normal);min-width:0}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}@media (width<=768px){.card{padding:var(--spacing-md)}}.btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:center;align-items:center;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:var(--color-white)}.btn-primary:hover{box-shadow:var(--shadow-md);background-color:#141c26}.btn-accent{background-color:var(--color-accent);color:var(--color-white)}.btn-accent:hover{box-shadow:var(--shadow-md);background-color:#236c43}.btn-outline{border:1px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background-color:var(--color-primary);color:var(--color-white)}.progress-container{background-color:var(--color-border);border-radius:var(--radius-sm);width:100%;height:8px;overflow:hidden}.progress-fill{background-color:var(--color-accent);border-radius:var(--radius-sm);height:100%;transition:width 1s ease-in-out}.sidebar{background-color:var(--color-white);border-right:1px solid var(--color-border);z-index:100;flex-direction:column;width:250px;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-brand{padding:var(--spacing-xl) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.sidebar-brand h2{color:var(--color-primary);margin:0;font-size:1.25rem}.sidebar-nav{padding:var(--spacing-md) 0;flex:1;overflow-y:auto}.sidebar-nav ul{margin:0;padding:0;list-style:none}.nav-button{width:100%;padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text);transition:all var(--transition-fast);text-align:left;align-items:center;font-size:1rem;font-weight:500;display:flex}.nav-button:hover{background-color:var(--color-neutral);color:var(--color-primary)}.nav-button.active{color:var(--color-accent);border-right:4px solid var(--color-accent);background-color:#2e8b571a}.nav-icon{margin-right:var(--spacing-md);font-size:1.25rem}.sidebar-footer{padding:var(--spacing-md) 0;border-top:1px solid var(--color-border)}@media (width<=768px){.sidebar{border-right:none;border-top:1px solid var(--color-border);flex-direction:row;width:100%;height:65px;top:auto;bottom:0;box-shadow:0 -2px 10px #0000000d}.sidebar-brand,.sidebar-footer{display:none}.sidebar-nav{width:100%;padding:0;overflow-y:visible}.sidebar-nav ul{justify-content:space-around;align-items:center;height:100%;display:flex}.sidebar-nav li{flex:1;height:100%}.nav-button{padding:var(--spacing-xs);text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;font-size:.7rem}.nav-button.active{border-right:none;border-top:3px solid var(--color-accent);background-color:#0000}.nav-icon{margin-bottom:2px;margin-right:0;font-size:1.25rem}}.navbar{padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-white);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;height:70px;display:flex}.navbar-search{flex:1;max-width:400px}.search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast);font-family:inherit;font-size:.9rem}.search-input:focus{border-color:var(--color-primary);outline:none}.navbar-actions{align-items:center;gap:var(--spacing-xl);display:flex}.wallet-balance{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-neutral);border:1px solid var(--color-border);border-radius:20px;font-size:.95rem;display:flex}.icon-button{color:var(--color-text);font-size:1.25rem;position:relative}.badge{background-color:var(--color-danger);color:var(--color-white);border-radius:10px;padding:2px 6px;font-size:.7rem;font-weight:600;position:absolute;top:-5px;right:-8px}.user-profile{align-items:center;gap:var(--spacing-md);cursor:pointer;display:flex}.avatar{background-color:var(--color-primary);width:40px;height:40px;color:var(--color-white);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex}.user-info{flex-direction:column;display:flex}.user-name{color:var(--color-primary);font-size:.9rem;font-weight:600}.user-role{color:var(--color-text);opacity:.8;font-size:.8rem}@media (width<=768px){.navbar{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-md);flex-wrap:wrap;height:auto}.navbar-search{order:3;width:100%;max-width:100%}.user-name,.user-role{display:none}}.avatar.investor{background-color:var(--color-accent)}.dashboard-page{gap:var(--spacing-xl);flex-direction:column;display:flex}.page-header{margin-bottom:var(--spacing-md)}.page-header h2{margin-bottom:var(--spacing-xs);font-size:1.8rem}.subtitle{color:var(--color-text);opacity:.7}.dashboard-grid{gap:var(--spacing-xl);grid-template-columns:repeat(2,1fr);display:grid}.full-width{grid-column:1/-1}.card h3{margin-bottom:var(--spacing-lg);color:var(--color-primary);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);font-size:1.2rem}.progress-stats{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-end;display:flex}.percentage{color:var(--color-accent);font-size:3rem;font-weight:700;line-height:1}.stage{color:var(--color-text);font-size:.9rem}.progress-container{height:12px}.finance-details{gap:var(--spacing-md);flex-direction:column;display:flex}.finance-item{justify-content:space-between;font-size:1.1rem;display:flex}.text-accent{color:var(--color-accent)}.mt-4{margin-top:var(--spacing-xl)}.w-full{width:100%}.payments-table{border-collapse:collapse;width:100%}.payments-table th,.payments-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.payments-table th{color:var(--color-primary);background-color:var(--color-neutral);font-weight:600}.status-badge{border-radius:20px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-block}.status-badge.paid{color:var(--color-accent);background-color:#2e8b571a}.status-badge.pending{color:var(--color-danger);background-color:#d32f2f1a}.gallery-grid{gap:var(--spacing-md);grid-template-columns:2fr 1fr;height:300px;display:grid}.gallery-main-3d{background-color:var(--color-neutral);border:2px dashed var(--color-border);border-radius:var(--radius-sm);flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.icon-3d{margin-bottom:var(--spacing-sm);font-size:3rem}.text-3d{color:var(--color-primary);font-weight:600}.gallery-photos{gap:var(--spacing-sm);grid-template-rows:repeat(4,1fr);height:100%;display:grid}.photo-placeholder{background-color:var(--color-secondary);border-radius:var(--radius-sm);color:var(--color-white);justify-content:center;align-items:center;font-size:.85rem;font-weight:500;display:flex}.vertical-timeline{flex-direction:column;padding-left:10px;display:flex;position:relative}.vertical-timeline:before{content:"";background-color:var(--color-border);width:2px;position:absolute;top:10px;bottom:10px;left:15px}.timeline-item{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot{background-color:var(--color-border);z-index:1;border-radius:50%;width:12px;height:12px;position:relative;top:4px}.timeline-item.completed .timeline-dot{background-color:var(--color-accent)}.timeline-item.active .timeline-dot{background-color:var(--color-primary);box-shadow:0 0 0 4px #1e2a381a}.timeline-content{flex-direction:column;display:flex}.timeline-date{color:var(--color-text);opacity:.8;margin-top:2px;font-size:.85rem}@media (width<=768px){.dashboard-grid{grid-template-columns:1fr}.progress-stats{align-items:flex-start;gap:var(--spacing-xs);flex-direction:column}.percentage{font-size:2.5rem}.finance-item{border-bottom:1px solid var(--color-border);flex-direction:column;gap:4px;padding-bottom:8px}.finance-item:last-child{border-bottom:none;padding-bottom:0}.payments-table{white-space:nowrap}.card{padding:var(--spacing-md)}.gallery-grid{grid-template-columns:1fr;height:auto}.gallery-main-3d{height:300px}.live-cam-container{min-height:250px}.gallery-photos{grid-template-rows:repeat(2,100px);grid-template-columns:repeat(2,1fr)}.gantt-row{flex-direction:column;align-items:stretch;gap:8px}.gantt-label{text-align:left;width:auto}}.live-cam-container{background:#111;border-radius:8px;flex-direction:column;display:flex;position:relative;overflow:hidden}.cam-header{color:#fff;z-index:2;background:#000c;justify-content:space-between;padding:8px 12px;font-family:monospace;font-size:.75rem;display:flex}.live-badge{color:#ef4444;font-weight:700;animation:2s infinite blink}@keyframes blink{0%{opacity:1}50%{opacity:.3}to{opacity:1}}.cam-feed{background:#1e293b;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.cam-overlay{pointer-events:none;background:repeating-linear-gradient(0deg,#00000026,#00000026 1px,#0000 1px 2px);position:absolute;inset:0}.cam-focus-ring{border:1px solid #ffffff4d;width:100px;height:100px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cam-focus-ring:before,.cam-focus-ring:after{content:"";background:#ffffff80;width:10px;height:1px;position:absolute}.cam-focus-ring:before{top:50%;left:-5px}.cam-focus-ring:after{top:50%;right:-5px}.cam-label{color:#ffffffb3;z-index:1;text-transform:uppercase;letter-spacing:1px;font-family:monospace}.gantt-chart{flex-direction:column;gap:16px;padding-top:8px;display:flex}.gantt-row{align-items:center;gap:16px;display:flex}.gantt-label{text-align:right;width:150px;font-size:.9rem;font-weight:500}.gantt-track{background:var(--color-neutral);border:1px solid var(--color-border);border-radius:4px;flex:1;height:30px;position:relative}.gantt-bar{color:#fff;border-radius:4px;align-items:center;height:100%;padding-left:12px;font-size:.8rem;font-weight:600;transition:all .3s;display:flex;position:absolute}.gantt-bar.pending{background-color:var(--color-secondary);color:var(--color-text);opacity:.5}.progress-stripes{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-size:1rem 1rem;animation:1s linear infinite stripes-move}@keyframes stripes-move{0%{background-position:1rem 0}to{background-position:0 0}}.modal-overlay{z-index:1000;padding:var(--spacing-md);background-color:#1e2a38b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container{background-color:var(--color-white);width:100%;max-width:600px;max-height:90vh;position:relative;overflow-y:auto}.modal-close{top:var(--spacing-md);right:var(--spacing-md);color:var(--color-text);opacity:.5;transition:opacity var(--transition-fast);font-size:1.5rem;position:absolute}.modal-close:hover{opacity:1}.step-indicator{margin-bottom:var(--spacing-xl);padding:0 var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.step{color:var(--color-text);opacity:.5;font-size:.85rem;font-weight:600}.step.active{color:var(--color-primary);opacity:1}.step-line{background-color:var(--color-border);height:2px;margin:0 var(--spacing-sm);flex:1}.step-content h3{margin-bottom:var(--spacing-xs);font-size:1.5rem}.detail-section{margin:var(--spacing-lg) 0}.detail-section h4{margin-bottom:var(--spacing-sm);color:var(--color-primary);font-size:1rem}.bullet-list{padding-left:var(--spacing-xl);color:var(--color-text);font-size:.95rem}.bullet-list li{margin-bottom:var(--spacing-xs)}.payment-schedule{background-color:var(--color-neutral);padding:var(--spacing-md);border-radius:var(--radius-sm)}.schedule-item{padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border);justify-content:space-between;font-size:.95rem;display:flex}.schedule-item:last-child{border-bottom:none}.schedule-item.total{border-top:2px solid var(--color-primary);padding-top:var(--spacing-sm);margin-top:var(--spacing-xs);border-bottom:none;font-size:1.1rem}.contract-box{background-color:var(--color-neutral);padding:var(--spacing-lg);border-radius:var(--radius-sm);height:200px;margin:var(--spacing-lg) 0;font-size:.9rem;overflow-y:auto}.contract-box p{margin-bottom:var(--spacing-sm)}.signature-section{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);flex-direction:column;display:flex}.checkbox-label{align-items:center;gap:var(--spacing-sm);cursor:pointer;font-weight:500;display:flex}.input-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.text-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:1rem}.payment-options{gap:var(--spacing-md);margin:var(--spacing-xl) 0;flex-direction:column;display:flex}.payment-option{align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-fast);display:flex}.payment-option.selected{border-color:var(--color-accent);background-color:#2e8b570d}.option-details{flex-direction:column;display:flex}.option-title{color:var(--color-primary);font-weight:600}.option-desc{color:var(--color-text);opacity:.8;font-size:.85rem}.modal-actions{justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}.modal-actions button:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}.marketplace-page{gap:var(--spacing-xl);flex-direction:column;display:flex}.modules-grid{gap:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(350px,1fr));display:grid}.module-card{flex-direction:column;display:flex}.module-card.locked{opacity:.6}.module-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:flex-start;display:flex}.module-header h3{max-width:70%;margin:0;font-size:1.15rem}.module-status{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:4px 10px;font-size:.75rem;font-weight:600}.status-completed{color:var(--color-accent);background-color:#2e8b571a}.status-progress{color:var(--color-primary);background-color:#1e2a381a}.status-available{color:#1976d2;background-color:#e3f2fd}.status-locked{background-color:var(--color-border);color:var(--color-text)}.module-description{color:var(--color-text);margin-bottom:var(--spacing-lg);flex:1;font-size:.95rem}.module-details{gap:var(--spacing-sm);background-color:var(--color-neutral);padding:var(--spacing-md);border-radius:var(--radius-sm);flex-direction:column;display:flex}.detail-item{justify-content:space-between;font-size:.9rem;display:flex}.detail-item .label{color:var(--color-text);opacity:.8}.font-semibold{font-weight:600}.text-sm{font-size:.85rem}.font-medium{font-weight:500}.flex-between{justify-content:space-between;display:flex}.mb-1{margin-bottom:var(--spacing-xs)}.module-actions button:disabled{cursor:not-allowed;opacity:.7}@media (width<=768px){.modules-grid{grid-template-columns:1fr}}.marketplace-split{gap:var(--spacing-xl);grid-template-columns:1.1fr 1fr;align-items:start;display:grid}.marketplace-preview-container{align-self:start;position:sticky;top:32px;box-shadow:0 10px 30px #00000014}.hover-lift{cursor:pointer;transition:transform .2s,box-shadow .2s}.hover-lift:hover{border-color:var(--color-accent);transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}@media (width<=1024px){.marketplace-split{grid-template-columns:1fr}.marketplace-preview-container{position:relative;top:0}}.land-page{gap:var(--spacing-md);flex-direction:column;display:flex}.tabs-container{gap:var(--spacing-md);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-lg);display:flex}.tab-btn{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text);opacity:.7;transition:all var(--transition-fast);border-bottom:3px solid #0000;font-size:1rem;font-weight:500}.tab-btn:hover{opacity:1}.tab-btn.active{opacity:1;color:var(--color-primary);border-bottom-color:var(--color-accent)}.land-info-grid{gap:var(--spacing-md);margin-top:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.info-item{background-color:var(--color-neutral);padding:var(--spacing-md);border-radius:var(--radius-sm);flex-direction:column;display:flex}.info-item .label{color:var(--color-text);opacity:.8;margin-bottom:var(--spacing-xs);font-size:.85rem}.document-list{margin-top:var(--spacing-sm);padding:0;list-style:none}.document-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xs);background-color:var(--color-white);display:flex}.listings-grid{gap:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.listing-card{padding:0;overflow:hidden}.listing-image-placeholder{background-color:var(--color-secondary);justify-content:center;align-items:center;height:150px;font-size:4rem;display:flex}.listing-content{padding:var(--spacing-lg)}.listing-size{color:var(--color-text);opacity:.8;margin:var(--spacing-xs) 0;font-size:.9rem}.listing-price{font-size:1.25rem}@media (width<=768px){.tabs-container{flex-direction:column;gap:0}.tab-btn{text-align:left;border-bottom:none;border-left:3px solid #0000}.tab-btn.active{border-left-color:var(--color-accent);border-bottom-color:#0000}}.land-listings-split{gap:var(--spacing-xl);grid-template-columns:1.5fr 1fr;align-items:start;display:grid}.map-view{min-height:500px}.plot-grid{background-color:#e2e8f0;background-image:linear-gradient(45deg,#fff6 25%,#0000 25%),linear-gradient(-45deg,#fff6 25%,#0000 25%);background-size:20px 20px;border-radius:12px;grid-template-columns:repeat(4,1fr);gap:8px;padding:16px;display:grid}.plot-cell{color:#fff;cursor:pointer;background-color:#2e8b5799;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;height:100px;font-weight:600;transition:all .2s;display:flex}.plot-cell:hover{z-index:2;background-color:#2e8b57cc;transform:scale(1.05);box-shadow:0 4px 12px #0000001a}.plot-cell.selected{background-color:var(--color-accent);z-index:3;border:2px solid #fff;transform:scale(1.05);box-shadow:0 8px 20px #0003}.sticky-panel{position:sticky;top:24px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:400px;display:flex}.topo-map-placeholder{background:linear-gradient(135deg,#a8e063,#56ab2f);border-radius:8px;justify-content:center;align-items:center;height:200px;display:flex;position:relative;overflow:hidden}.topo-overlay{opacity:.5;background-image:repeating-radial-gradient(circle,#0000 0 10px,#fff3 11px 12px);position:absolute;inset:0}.details-list{flex-direction:column;gap:12px;display:flex}.detail-row{border-bottom:1px solid var(--color-border);justify-content:space-between;padding-bottom:8px;display:flex}.detail-row span{opacity:.7}.price-tag{color:var(--color-accent);text-align:center;font-size:2rem;font-weight:800}@media (width<=1024px){.land-listings-split{grid-template-columns:1fr}}.site-planner-page{flex-direction:column;height:calc(100vh - 120px);display:flex}.planner-container{gap:var(--spacing-xl);flex:1;min-height:0;display:flex}.planner-controls{flex-direction:column;width:350px;display:flex}.planner-canvas-wrapper{border:4px solid var(--color-border);flex:1;padding:0;position:relative;overflow:hidden}.slider-container{flex-direction:column;gap:8px;display:flex}.slider-container label{color:var(--color-primary);font-weight:600}.range-slider{width:100%;accent-color:var(--color-accent)}.stats-box{background-color:var(--color-neutral);padding:var(--spacing-md);border-radius:var(--radius-sm);border-left:4px solid var(--color-accent)}.stat-row{justify-content:space-between;font-size:.9rem;display:flex}@media (width<=900px){.planner-container{flex-direction:column}.planner-controls{width:100%}.planner-canvas-wrapper{min-height:400px}}.finances-page{gap:var(--spacing-xl);flex-direction:column;display:flex}.finances-grid{gap:var(--spacing-xl);grid-template-columns:repeat(2,1fr);display:grid}.card-header{margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.card-header h3{border-bottom:none;margin:0;padding-bottom:0}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.85rem}.budget-chart{margin:var(--spacing-lg) 0;justify-content:center;display:flex}.chart-circle{border:15px solid var(--color-border);border-top-color:var(--color-accent);border-right-color:var(--color-accent);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:150px;height:150px;display:flex;transform:rotate(-45deg)}.chart-circle>*{transform:rotate(45deg)}.chart-percentage{color:var(--color-primary);font-size:2rem;font-weight:700;line-height:1}.chart-label{color:var(--color-text);opacity:.8;font-size:.85rem}.budget-legend{gap:var(--spacing-sm);flex-direction:column;display:flex}.legend-item{align-items:center;gap:var(--spacing-sm);font-size:.95rem;display:flex}.legend-item.total{border-top:1px solid var(--color-border);padding-top:var(--spacing-sm);margin-top:var(--spacing-xs)}.dot{border-radius:50%;width:12px;height:12px}.dot.funded{background-color:var(--color-accent)}.dot.remaining{background-color:var(--color-border)}.methods-list{gap:var(--spacing-md);flex-direction:column;display:flex}.method-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-neutral);display:flex}.method-icon{font-size:1.5rem}.method-details{flex-direction:column;display:flex}.method-name{color:var(--color-primary);font-weight:600}.method-meta{color:var(--color-text);opacity:.7;font-size:.85rem}.invoices-table{border-collapse:collapse;width:100%}.invoices-table th,.invoices-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.invoices-table th{color:var(--color-primary);background-color:var(--color-neutral);font-weight:600}.text-primary{color:var(--color-primary)}@media (width<=768px){.finances-grid{grid-template-columns:1fr}.card-header{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.invoices-table{white-space:nowrap}.chart-circle{width:120px;height:120px}.chart-percentage{font-size:1.5rem}}.contracts-page{gap:var(--spacing-md);flex-direction:column;display:flex}.contracts-card{padding:0;overflow:hidden}.contracts-filters{gap:var(--spacing-sm);padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-neutral);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.filter-btn{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);background-color:var(--color-white);color:var(--color-text);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);border-radius:20px;font-size:.9rem;font-weight:500}.filter-btn:hover{border-color:var(--color-primary)}.filter-btn.active{background-color:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.contracts-table{border-collapse:collapse;width:100%}.contracts-table th,.contracts-table td{padding:var(--spacing-lg);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.contracts-table th{color:var(--color-text);opacity:.7;text-transform:uppercase;letter-spacing:.5px;font-size:.85rem;font-weight:600}.contracts-table tr:last-child td{border-bottom:none}.contract-title{color:var(--color-primary);align-items:center;display:flex}.type-badge{background-color:var(--color-neutral);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:4px 8px;font-size:.8rem}.text-muted{color:var(--color-text);opacity:.7}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.contracts-table tr.expanded-row-active{background-color:#2e8b570d}.blockchain-explorer-row td{border-bottom:2px solid var(--color-border);padding:0!important}.blockchain-panel{color:#fff;padding:var(--spacing-xl);background-color:#1e2a38;box-shadow:inset 0 5px 15px #0003}.status-verified{color:#4ade80;background:#4ade801a;border-radius:20px;padding:4px 12px;font-size:.9rem;font-weight:600}.hash-details{padding:var(--spacing-md);background:#0000004d;border:1px solid #ffffff1a;border-radius:8px}.hash-item{margin-bottom:8px;font-family:monospace;font-size:1.1rem;display:flex}.hash-item:last-child{margin-bottom:0}.hash-label{color:#94a3b8;width:140px}.hash-value{color:#e2e8f0}.contract-timeline{margin-top:var(--spacing-xl);justify-content:space-between;display:flex;position:relative}.contract-timeline:before{content:"";z-index:1;background:#fff3;height:2px;position:absolute;top:10px;left:20px;right:20px}.timeline-step{text-align:center;z-index:2;flex-direction:column;align-items:center;width:30%;display:flex}.step-dot{background:var(--color-accent);width:20px;height:20px;box-shadow:0 0 10px var(--color-accent);border-radius:50%;margin-bottom:12px}.step-text{color:#cbd5e1;font-size:.85rem}.step-text small{opacity:.6}.login-container{background-color:var(--color-neutral);min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:450px;padding:var(--spacing-xl)}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-header h2{color:var(--color-primary);margin-bottom:var(--spacing-xs);font-size:1.8rem}.login-header p{color:var(--color-text);opacity:.7}.role-selector{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);display:flex}.role-btn{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);background-color:#0000;flex-direction:column;flex:1;display:flex}.role-btn:hover,.role-btn.active{border-color:var(--color-primary);background-color:#1e2a380d}.role-btn.active.investor-theme{border-color:var(--color-accent);background-color:#2e8b570d}.role-icon{font-size:2rem}.role-name{color:var(--color-text);font-weight:600}.login-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.login-form .input-group label{margin-bottom:var(--spacing-xs);color:var(--color-text);font-size:.9rem;font-weight:500}.login-footer{text-align:center;margin-top:var(--spacing-xl);color:var(--color-text);font-size:.9rem}@media (width<=768px){.login-card{padding:var(--spacing-lg)}.role-selector{flex-direction:column}}.role-btn.active.builder-theme{background-color:#f59e0b0d;border-color:#f59e0b}.landing-page{color:#e2e8f0;background-color:#0a0e14;min-height:100vh;overflow-x:hidden}.landing-nav{padding:var(--spacing-md) var(--spacing-xl);z-index:100;box-sizing:border-box;justify-content:space-between;align-items:center;width:100%;display:flex;position:absolute;top:0}.landing-logo{letter-spacing:-.5px;color:#fff;align-items:center;gap:12px;font-size:1.5rem;font-weight:700;display:flex}.logo-icon{border-radius:8px;width:32px;height:32px}.landing-nav-actions{gap:var(--spacing-md);align-items:center;display:flex}.landing-btn-signin{color:#fff;cursor:pointer;background-color:#4f729c;border:none;border-radius:100px;padding:8px 16px;font-size:16px;font-weight:500;transition:all .2s}.landing-btn-signin:hover{opacity:.8}.landing-btn-getstarted{color:#fff;cursor:pointer;background-color:#2e8b57;border:none;border-radius:8px;padding:8px 16px;font-size:16px;font-weight:500;transition:all .2s}.landing-btn-getstarted:hover{opacity:.8}.hero-section{min-height:90vh;padding:0 var(--spacing-xxl);background:linear-gradient(#0a0f1480,#0a0f14bf),url(/hero_bg.png) 50%/cover no-repeat;justify-content:space-between;align-items:center;display:flex;position:relative}.hero-content{z-index:10;max-width:600px}.hero-title{margin-bottom:var(--spacing-md);letter-spacing:-1.5px;color:#fff;font-size:4.5rem;font-weight:800;line-height:1.1}.hero-subtitle{opacity:.8;margin-bottom:var(--spacing-lg);color:#a0aab5;font-size:1.2rem;line-height:1.6}.hero-actions{gap:var(--spacing-md);display:flex}.hero-actions .btn-outline{color:#fff;border-color:#fff6}.hero-actions .btn-outline:hover{color:#0a0e14;background-color:#fff}.btn-lg{padding:14px 28px;font-size:1.1rem}.hero-visual{flex:1;justify-content:center;align-items:center;height:500px;display:flex;position:relative}.hero-visual:before{content:"";background:linear-gradient(45deg, var(--color-primary), var(--color-accent));filter:blur(80px);opacity:.15;border-radius:50%;width:400px;height:400px;animation:6s infinite alternate pulse;position:absolute}@keyframes pulse{0%{opacity:.1;transform:scale(1)}to{opacity:.2;transform:scale(1.1)}}.glass-card{-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-md);background:#ffffff0d;border:1px solid #ffffff1a;box-shadow:0 20px 40px #0003}.floating-card{z-index:10;width:320px;padding:var(--spacing-md);animation:6s ease-in-out infinite float;position:relative}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}to{transform:translateY(0)}}.floating-card .card-header{text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--spacing-md);border-bottom:1px solid #ffffff1a;align-items:center;gap:8px;padding-bottom:8px;font-size:.8rem;display:flex}.floating-card .dot{background-color:var(--color-accent);width:8px;height:8px;box-shadow:0 0 10px var(--color-accent);border-radius:50%}.floating-card .card-body{align-items:center;gap:16px;display:flex}.floating-card .icon{font-size:2rem}.features-section{padding:var(--spacing-xxl);text-align:center}.section-title{margin-bottom:var(--spacing-xl);color:#fff;font-size:2.5rem}.features-grid{gap:var(--spacing-lg);grid-template-columns:repeat(3,1fr);max-width:1200px;margin:0 auto;display:grid}.feature-card{padding:var(--spacing-xl);text-align:left;transition:transform .3s}.feature-card:hover{transform:translateY(-10px)}.feature-icon{margin-bottom:var(--spacing-md);font-size:2.5rem}.feature-card h3{margin-bottom:var(--spacing-sm);color:#fff;font-size:1.5rem}.feature-card p{opacity:.8;color:#a0aab5;line-height:1.5}.dual-pitch-section{padding:var(--spacing-xxl);gap:var(--spacing-xl);grid-template-columns:1fr 1fr;max-width:1400px;margin:0 auto;display:grid}.pitch-card{padding:var(--spacing-xxl);border-radius:24px;flex-direction:column;align-items:flex-start;display:flex;position:relative;overflow:hidden}.pitch-card.buyer-pitch{background:linear-gradient(135deg,#1e2a3866,#2e8b570d)}.pitch-card.investor-pitch{background:linear-gradient(135deg,#2e8b571a,#d6c3a31a)}.pitch-tag{background:var(--color-primary);color:#fff;margin-bottom:var(--spacing-md);border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600}.pitch-tag.investor{background:var(--color-accent)}.pitch-card h2{margin-bottom:var(--spacing-md);color:#fff;font-size:2rem}.pitch-card p{opacity:.8;margin-bottom:var(--spacing-lg);color:#a0aab5;font-size:1.1rem;line-height:1.6}.landing-footer{text-align:center;padding:var(--spacing-xl);opacity:.5;color:#a0aab5;font-size:.9rem}@media (width<=1024px){.hero-section{text-align:center;flex-direction:column;padding-top:120px}.hero-actions{justify-content:center}.features-grid,.dual-pitch-section{grid-template-columns:1fr}}@media (width<=768px){.hero-title{font-size:3.5rem}.landing-nav{gap:var(--spacing-md);flex-direction:column}.hero-section{padding-top:160px}}.investor-dashboard{gap:var(--spacing-xl);flex-direction:column;display:flex}.portfolio-overview{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{padding:var(--spacing-xl) var(--spacing-lg);border-left:4px solid var(--color-primary);flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.stat-card.accent-theme{border-left-color:var(--color-accent);background-color:#2e8b570d}.stat-card.accent-theme .stat-value{color:var(--color-accent)}.stat-label{color:var(--color-text);opacity:.8;margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.5px;font-size:.9rem;font-weight:600}.stat-value{color:var(--color-primary);font-size:2.2rem;font-weight:700;line-height:1}.section-title{color:var(--color-primary);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border);font-size:1.4rem}.opportunities-grid{gap:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.opp-card{transition:transform var(--transition-normal), box-shadow var(--transition-normal);flex-direction:column;display:flex}.opp-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-5px)}.opp-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.opp-icon{font-size:2.5rem}.risk-badge{text-transform:uppercase;border-radius:20px;padding:4px 10px;font-size:.75rem;font-weight:600}.risk-low{color:var(--color-accent);background-color:#2e8b571a}.risk-medium{color:#f59e0b;background-color:#f59e0b1a}.risk-high{color:#dc2626;background-color:#dc26261a}.opp-project{color:var(--color-primary);margin-bottom:2px;font-size:1.15rem}.opp-module{color:var(--color-text);opacity:.8;margin-bottom:var(--spacing-lg);font-size:.95rem}.opp-stats{background-color:var(--color-neutral);padding:var(--spacing-md);border-radius:var(--radius-sm);justify-content:space-between;display:flex}.opp-stat{flex-direction:column;display:flex}.text-right{text-align:right}.duration{color:var(--color-text);opacity:.8;font-size:.85rem;display:block}@media (width<=768px){.portfolio-overview{grid-template-columns:1fr 1fr}.opportunities-grid{grid-template-columns:1fr}}.chart-card{padding:var(--spacing-xl)}.css-chart{height:250px;margin-top:var(--spacing-lg);border-bottom:2px solid var(--color-border);justify-content:space-around;align-items:flex-end;padding-bottom:30px;display:flex;position:relative}.chart-bar{background-color:var(--color-primary);border-radius:4px 4px 0 0;width:40px;transition:height .5s;position:relative}.chart-bar .month{opacity:.7;font-size:.85rem;position:absolute;bottom:-25px;left:50%;transform:translate(-50%)}.filters{gap:8px;display:flex}.btn-filter{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);background:0 0;border-radius:20px;padding:6px 12px;font-size:.85rem}.btn-filter.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.builder-dashboard{flex-direction:column;height:100%;display:flex}.kanban-board{gap:var(--spacing-xl);flex:1;grid-template-columns:repeat(3,1fr);display:grid}.kanban-col{background:var(--color-neutral);border-radius:var(--radius-md);padding:var(--spacing-md);gap:var(--spacing-md);flex-direction:column;display:flex}.kanban-col h3{padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border);justify-content:space-between;align-items:center;font-size:1.1rem;display:flex}.count{background:var(--color-primary);color:#fff;border-radius:12px;padding:2px 8px;font-size:.8rem}.kanban-card{background:var(--color-white);padding:var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);box-shadow:0 2px 4px #0000000d}.kanban-card h4{margin-bottom:4px}.kanban-card p{opacity:.7;font-size:.85rem}.active-card{border-left:4px solid var(--color-primary)}.completed-card{border-left:4px solid var(--color-accent)}.weather-widget{background-color:var(--color-neutral);border:1px solid var(--color-border);border-radius:8px;align-items:center;padding:10px 15px;display:flex}.weather-icon{margin-right:15px;font-size:2rem}.weather-info{flex-direction:column;display:flex}.gantt-chart-container{overflow-x:auto}.gantt-header{border-bottom:2px solid var(--color-border);margin-bottom:15px;padding-bottom:10px;font-weight:600;display:flex}.gantt-task-name{flex-shrink:0;width:250px}.gantt-timeline-header{flex:1;justify-content:space-between;padding:0 10px;display:flex}.gantt-row{align-items:center;margin-bottom:15px;display:flex}.gantt-timeline{background-color:var(--color-neutral);border-radius:15px;flex:1;height:30px;position:relative;overflow:hidden}.gantt-bar{color:#fff;border-radius:15px;justify-content:center;align-items:center;height:100%;font-size:.8rem;font-weight:500;display:flex;position:absolute}.gantt-bar.completed{background-color:var(--color-accent)}.gantt-bar.active{background-color:#3b82f6}.gantt-bar.pending{background-color:#f59e0b}@media (width<=768px){.kanban-board{grid-template-columns:1fr}}.settings-page{flex-direction:column;display:flex}.settings-grid{gap:var(--spacing-xl);margin-top:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}.settings-card h3{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.input-group{margin-bottom:var(--spacing-md);flex-direction:column;gap:6px;display:flex}.input-group label{font-size:.9rem;font-weight:500}.text-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;padding:10px 12px;font-size:1rem}.text-input:focus{border-color:var(--color-primary)}.checkbox-group{flex-direction:row;align-items:center;gap:10px}.linked-account{padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-neutral);align-items:center;gap:15px;display:flex}.bank-icon{font-size:1.5rem}.bank-details{flex-direction:column;flex:1;display:flex}.bank-details span{opacity:.7;font-size:.85rem}.fund-form{gap:var(--spacing-md);display:flex}@media (width<=768px){.settings-grid{grid-template-columns:1fr}}.metrics-grid{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.metric-card{text-align:center;padding:var(--spacing-xl);flex-direction:column;justify-content:center;align-items:center;display:flex}.metric-value{margin-top:var(--spacing-sm);font-size:2.5rem;font-weight:700}.text-secondary{color:#3b82f6}.upload-card{flex-direction:column;display:flex}.dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;background-color:var(--color-neutral);cursor:pointer;margin-top:var(--spacing-md);padding:40px;transition:all .3s;position:relative}.dropzone.drag-active{border-color:var(--color-accent);background-color:#2e8b570d}.dropzone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.upload-icon{margin-bottom:var(--spacing-sm);font-size:3rem}.dropzone p{margin:5px 0;font-weight:500}.comm-hub{background-color:var(--color-white);z-index:1000;border-left:1px solid var(--color-border);flex-direction:column;width:400px;height:100vh;transition:right .3s ease-in-out;display:flex;position:fixed;top:0;right:-400px;box-shadow:-5px 0 25px #0000001a}.comm-hub.open{right:0}.comm-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-neutral);justify-content:space-between;align-items:center;display:flex}.comm-header h3{color:var(--color-primary);margin:0;font-size:1.2rem}.close-btn{cursor:pointer;color:var(--color-text);background:0 0;border:none;font-size:1.5rem;line-height:1}.comm-messages{padding:var(--spacing-md);gap:var(--spacing-md);background-color:#f8fafc;flex-direction:column;flex:1;display:flex;overflow-y:auto}.message{flex-direction:column;max-width:85%;display:flex}.message.sent{align-self:flex-end}.message.received{align-self:flex-start}.msg-sender{color:var(--color-text);opacity:.7;margin-bottom:4px;font-size:.75rem}.msg-bubble{border-radius:12px;padding:10px 14px;font-size:.9rem;line-height:1.4}.message.sent .msg-bubble{background-color:var(--color-primary);color:#fff;border-bottom-right-radius:2px}.message.received .msg-bubble{border:1px solid var(--color-border);color:var(--color-text);background-color:#fff;border-bottom-left-radius:2px}.system-msg{color:#d97706;text-align:center;background:#f59e0b1a;border:1px solid #f59e0b33;border-radius:8px;align-self:center;max-width:90%;padding:8px 12px;font-size:.8rem}.comm-input-area{padding:var(--spacing-md);border-top:1px solid var(--color-border);background-color:#fff;gap:8px;display:flex}.comm-input-area input{border:1px solid var(--color-border);border-radius:20px;outline:none;flex:1;padding:8px 12px}.comm-input-area input:focus{border-color:var(--color-primary)}.app-layout{background-color:var(--color-neutral);height:100vh;display:flex;overflow:hidden}.main-wrapper{flex-direction:column;flex:1;min-width:0;height:100vh;margin-left:250px;display:flex}.main-content{padding:var(--spacing-xl);flex:1;min-width:0;overflow-y:auto}.page-content{background-color:var(--color-white);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-height:calc(100vh - 70px - var(--spacing-xl) * 2)}.page-content h2{margin-bottom:var(--spacing-md);color:var(--color-primary)}@media (width<=768px){.main-wrapper{margin-bottom:65px;margin-left:0}.main-content{padding:var(--spacing-sm)}.page-content{padding:var(--spacing-sm);min-height:calc(100vh - 70px - 65px - var(--spacing-sm) * 2)}}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.funding-grid{gap:var(--spacing-lg);margin-top:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.flex-between{justify-content:space-between;align-items:center;display:flex}.opp-card{flex-direction:column;display:flex}.low-risk{color:var(--color-accent);background-color:#2e8b571a}.medium-risk{color:#d97706;background-color:#f59e0b1a}.high-risk{color:#dc2626;background-color:#ef44441a}.funded-card{opacity:.7;border-color:var(--color-accent)}.funding-progress-container{margin-top:var(--spacing-md);margin-bottom:var(--spacing-xl)}.funding-progress-bar{background-color:#e2e8f0;border-radius:4px;width:100%;height:8px;margin-top:6px;overflow:hidden}.funding-progress-fill{background-color:var(--color-accent);height:100%;transition:width .3s}.fund-action{margin-top:auto}.analytics-grid{gap:var(--spacing-lg);margin-top:var(--spacing-lg);grid-template-columns:2fr 1fr;display:grid}.bar-chart-vertical{height:200px;margin-top:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-around;align-items:flex-end;padding-bottom:25px;display:flex;position:relative}.bar-col{flex-direction:column;justify-content:flex-end;align-items:center;width:15%;height:100%;display:flex;position:relative}.bar-fill{background-color:var(--color-accent);border-radius:4px 4px 0 0;width:100%;transition:height 1s ease-out}.bar-col span{color:var(--color-text);white-space:nowrap;font-size:.8rem;position:absolute;bottom:-25px}.metrics-card{flex-direction:column;display:flex}.metric-row{border-bottom:1px solid var(--color-border);justify-content:space-between;padding:12px 0;display:flex}.metric-row:last-child{border-bottom:none}@media (width<=768px){.analytics-grid{grid-template-columns:1fr}}
