.portal-login-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--forest-green-dark) 0%,var(--forest-green-deep) 100%);display:flex;align-items:center;justify-content:center;padding:var(--spacing-md)}.portal-login-container{background:var(--bg-primary);border-radius:var(--radius-xl);padding:var(--spacing-xl);max-width:420px;width:100%;box-shadow:var(--shadow-xl)}.portal-login-header{text-align:center;margin-bottom:var(--spacing-xl)}.portal-logo{width:60px;height:60px;margin-bottom:var(--spacing-md)}.portal-login-header h1{font-size:1.75rem;margin-bottom:var(--spacing-xs);color:var(--primary-color)}.portal-login-header p{color:var(--text-muted);font-size:.9rem}.portal-login-form .form-group{margin-bottom:var(--spacing-md)}.portal-login-form label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-secondary)}.portal-login-form input{width:100%;padding:.875rem;background:var(--bg-card, var(--bg-primary));color:var(--text-primary);border:2px solid var(--border-light, var(--border-color));border-radius:var(--radius-md);font-size:1rem;font-family:var(--font-sans);transition:all var(--transition-fast)}.portal-login-form input::placeholder{color:var(--text-muted)}.portal-login-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3d7a5f1a}.btn-full{width:100%;padding:1rem;font-size:1rem;text-align:center}.form-message{margin-top:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);text-align:center;font-size:.9rem}.form-message.error{background:#dc35451a;color:#dc3545}.form-message.success{background:#28a7451a;color:#28a745}.portal-login-footer{text-align:center;margin-top:var(--spacing-lg)}.portal-login-footer a{color:var(--text-muted);font-size:.9rem}.portal-login-footer a:hover{color:var(--primary-color)}.portal-container{display:none;min-height:100vh;background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.portal-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:var(--spacing-md) var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.portal-header-left{display:flex;align-items:center;gap:var(--spacing-md)}.portal-header-logo{width:40px;height:40px}.portal-header h1{font-size:1.25rem;margin:0;color:var(--primary-color)}.welcome-text{margin:0;font-size:.85rem;color:var(--text-muted)}.portal-main{max-width:1000px;margin:0 auto;padding:var(--spacing-xl)}.portal-section{margin-bottom:var(--spacing-xl)}.portal-section h2{font-size:1.25rem;margin-bottom:var(--spacing-md);color:var(--text-primary);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary-color)}.summary-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md)}.summary-cards>*{flex:0 1 calc(25% - var(--spacing-md));min-width:200px}.summary-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md);transition:all var(--transition-fast)}.summary-card:hover{box-shadow:var(--shadow-md)}.summary-card.highlight{border-color:var(--primary-color);background:linear-gradient(135deg,#3d7a5f0d,#3d7a5f1a)}.summary-icon{font-size:2rem}.summary-info{display:flex;flex-direction:column}.summary-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.payment-section{background:linear-gradient(135deg,var(--forest-green-dark),var(--forest-green-medium));border-radius:var(--radius-xl);padding:var(--spacing-xl);color:#fff}.payment-section h2{color:#fff;border-bottom-color:#ffffff4d}.payment-box{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl);flex-wrap:wrap}.payment-info{flex:1}.payment-amount-label{font-size:.9rem;opacity:.8;margin-bottom:var(--spacing-xs)}.payment-amount{font-size:2.5rem;font-weight:700;margin-bottom:var(--spacing-xs)}.payment-due-text{font-size:.9rem;opacity:.8}.payment-actions{text-align:center}.btn-venmo{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);background:#008cff;color:#fff;padding:1rem 2rem;border-radius:var(--radius-lg);font-weight:600;font-size:1.1rem;transition:all var(--transition-fast);text-align:center}.btn-venmo:hover{background:#0070cc;transform:translateY(-2px);box-shadow:0 4px 12px #008cff66}.venmo-icon{width:24px;height:24px}.payment-note{margin-top:var(--spacing-sm);font-size:.85rem;opacity:.7}.info-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:1rem;color:var(--text-primary);font-weight:500}.info-value.badge{display:inline-block;width:fit-content;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.85rem;text-transform:capitalize}.projects-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-fast)}.project-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-color)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.project-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.project-description{color:var(--text-secondary);font-size:.9rem;margin-bottom:var(--spacing-md);line-height:1.5}.project-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.project-detail{display:flex;flex-direction:column;gap:2px}.detail-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.detail-value{font-size:.95rem;color:var(--text-primary);font-weight:500}.project-progress{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.progress-label{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.progress-bar{height:8px;background:var(--bg-primary);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--forest-green-medium));border-radius:var(--radius-full);transition:width .5s ease}.estimates-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.estimate-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.estimate-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.estimate-header h4{margin:0}.estimate-description{color:var(--text-secondary);font-size:.9rem;margin-bottom:var(--spacing-md)}.estimate-amount{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--bg-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.amount-label{color:var(--text-secondary)}.amount-value{font-size:1.25rem;font-weight:700;color:var(--primary-color)}.estimate-actions{display:flex;gap:var(--spacing-sm)}.portal-footer{text-align:center;padding:var(--spacing-xl);color:var(--text-muted);font-size:.85rem;border-top:1px solid var(--border-color);margin-top:var(--spacing-xl)}.portal-footer a{color:var(--primary-color)}.empty-message{text-align:center;color:var(--text-muted);padding:var(--spacing-xl);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px dashed var(--border-color)}.badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-full, var(--radius-md));font-size:.75rem;font-weight:600;text-transform:uppercase;text-align:center}.badge-success{background:#28a74533;color:#5dd98b;border:1px solid rgba(40,167,69,.3)}.badge-warning{background:#d4a57433;color:var(--accent-color);border:1px solid rgba(212,165,116,.3)}.badge-info{background:#17a2b833;color:#4dd4e6;border:1px solid rgba(23,162,184,.3)}.badge-primary{background:#3d7a5f33;color:var(--forest-green-accent);border:1px solid rgba(61,122,95,.3)}.badge-danger{background:#ef444433;color:#f87171;border:1px solid rgba(239,68,68,.3)}.badge-secondary{background:#6c757d33;color:#9ca3af;border:1px solid rgba(108,117,125,.3)}@media(max-width:768px){.portal-header{padding:var(--spacing-md);flex-direction:column;gap:var(--spacing-md);text-align:center}.portal-header-left{flex-direction:column}.portal-main{padding:var(--spacing-md)}.payment-box{flex-direction:column;text-align:center}.payment-amount{font-size:2rem}.summary-cards>*{flex:0 1 calc(50% - var(--spacing-md))}.project-details{grid-template-columns:1fr 1fr}.info-grid{grid-template-columns:1fr}}@media(max-width:480px){.summary-cards>*{flex:1 1 100%}.project-details{grid-template-columns:1fr}}
