@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--color-primary:#1e293b;--color-primary-rgb:30, 41, 59;--color-primary-dark:#0f172a;--color-accent:#f59e0b;--color-accent-hover:#d97706;--color-secondary:#0ea5e9;--color-secondary-dark:#0284c7;--color-background:#f1f5f9;--color-white:#fff;--color-card-bg:#ffffffe6;--text-dark:#0f172a;--text-medium:#475569;--text-light:#94a3b8;--text-on-dark:#fff;--font-headings:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-full:9999px;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 10px 30px -10px #0f172a14, 0 8px 16px -8px #0f172a0f;--shadow-lg:0 25px 50px -12px #0f172a26;--shadow-glow:0 0 15px #f59e0b40;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--card-border:1px solid #e2e8f0cc}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-body);color:var(--text-dark);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{flex-direction:column;height:100%;display:flex}h1,h2,h3,h4{font-family:var(--font-headings);color:var(--color-primary);font-weight:700;line-height:1.25}h1{letter-spacing:-.02em;margin-bottom:.25rem;font-size:2rem;font-weight:800}.btn{font-family:var(--font-headings);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-normal);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background-color:var(--color-accent);color:var(--color-primary-dark);box-shadow:var(--shadow-sm)}.btn-primary:hover{background-color:var(--color-accent-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{color:var(--text-medium);background-color:#0000;border-color:#cbd5e1}.btn-secondary:hover{color:var(--text-dark);background-color:#f8fafc;border-color:#94a3b8}.btn-icon{cursor:pointer;color:var(--text-light);transition:var(--transition-fast);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.4rem;display:inline-flex}.btn-icon:hover{color:var(--color-secondary);background-color:#f1f5f9}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-medium);margin-bottom:.4rem;font-size:.85rem;font-weight:600;display:block}.form-control{border-radius:var(--radius-sm);background-color:var(--color-white);width:100%;font-family:var(--font-body);color:var(--text-dark);transition:var(--transition-fast);border:1px solid #cbd5e1;padding:.65rem .9rem;font-size:.95rem}.form-control:focus{border-color:var(--color-secondary);outline:none;box-shadow:0 0 0 3px #0ea5e91f}.portal-container{background:radial-gradient(circle,#1e293beb,#0f172a);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative}.portal-container:before{content:"";filter:blur(40px);background:radial-gradient(circle,#0ea5e926 0%,#0000 70%);width:300px;height:300px;position:absolute;top:10%;left:15%}.portal-container:after{content:"";filter:blur(50px);background:radial-gradient(circle,#f59e0b1a 0%,#0000 70%);width:350px;height:350px;position:absolute;bottom:15%;right:10%}.portal-card{-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-lg);z-index:1;background:#1e293ba6;border:1px solid #ffffff14;width:100%;max-width:440px;padding:3rem 2.5rem;animation:.5s ease-out portalFadeIn;box-shadow:0 30px 60px #0006}@keyframes portalFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.dashboard-layout{grid-template-columns:260px 1fr;height:100vh;display:grid;overflow:hidden}@media (width<=968px){.dashboard-layout{grid-template-columns:1fr}}.dashboard-sidebar{background-color:var(--color-primary-dark);color:var(--color-white);z-index:10;border-right:1px solid #ffffff0f;flex-direction:column;padding:2.25rem 1.5rem;display:flex;box-shadow:10px 0 30px #0f172a0d}@media (width<=968px){.dashboard-sidebar{display:none}}.sidebar-logo{align-items:center;gap:.75rem;margin-bottom:2.5rem;padding:0 .5rem;display:flex}.sidebar-logo span{font-family:var(--font-headings);letter-spacing:-.02em;background:linear-gradient(135deg,#fff,#94a3b8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.2rem;font-weight:800}.sidebar-section-title{color:#ffffff59;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem;padding:0 .5rem;font-size:.75rem;font-weight:700}.dashboard-nav-item{border-radius:var(--radius-sm);color:#ffffffa6;transition:var(--transition-fast);cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.95rem;font-weight:500;display:flex}.dashboard-nav-item:hover,.dashboard-nav-item.active{color:var(--color-accent);background-color:#ffffff0d}.sidebar-footer{border-top:1px solid #ffffff14;flex-direction:column;gap:1rem;margin-top:auto;padding-top:1.5rem;display:flex}.user-info{color:#ffffff80;text-overflow:ellipsis;padding:0 .25rem;font-size:.8rem;line-height:1.4;overflow:hidden}.user-info strong{color:#ffffffe6}.btn-signout{color:#fca5a5;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);text-align:center;background:#ef444414;border:1px solid #ef444440;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.btn-signout:hover{background:#ef444429;border-color:#ef444466}.dashboard-content{background-color:var(--color-background);flex-direction:column;gap:2rem;height:100%;padding:2.25rem 2.5rem;display:flex;overflow-y:auto}.dashboard-header{justify-content:space-between;align-items:center;display:flex}.dashboard-header h1{color:var(--color-primary-dark)}.dashboard-header .subtitle{color:var(--text-medium);margin:0;font-size:.95rem}.badge-staging{color:#1e40af;border-radius:var(--radius-full);letter-spacing:.02em;background-color:#eff6ff;border:1px solid #bfdbfe;padding:.4rem .9rem;font-size:.75rem;font-weight:600}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;display:grid}.metric-card{background-color:var(--color-white);border:var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;padding:1.25rem 1.5rem;transition:transform .2s,box-shadow .2s;display:flex}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.metric-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-medium);margin-bottom:.25rem;font-size:.75rem;font-weight:600}.metric-value{color:var(--color-primary-dark);font-size:2rem;font-weight:800}.border-new{border-left:4px solid #3b82f6}.border-scheduled{border-left:4px solid #0284c7}.border-completed{border-left:4px solid #10b981}.color-new{color:#2563eb}.color-scheduled{color:#0284c7}.color-completed{color:#059669}.filters-container{background-color:var(--color-white);border:var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.filter-item-search{flex:2 320px}.filter-item{flex:180px}select.form-control{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .6rem center;background-repeat:no-repeat;background-size:1.25rem;padding-right:2.25rem}.lead-table-container{background-color:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:var(--card-border);flex-direction:column;flex-grow:1;display:flex;overflow:hidden}.lead-table{border-collapse:collapse;text-align:left;width:100%}.lead-table th{font-family:var(--font-headings);color:var(--color-primary);text-transform:uppercase;letter-spacing:.03em;background-color:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.9rem 1.25rem;font-size:.85rem;font-weight:600}.lead-table td{color:var(--text-medium);vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:1rem 1.25rem;font-size:.9rem}.lead-row{transition:background-color .15s}.lead-row:hover td{background-color:#f8fafc}.owner-name{color:var(--color-primary-dark);font-size:.95rem;font-weight:600}.contact-methods{color:var(--text-light);align-items:center;gap:.5rem;margin-top:.2rem;font-size:.8rem;display:flex}.contact-methods a{color:var(--text-medium);text-decoration:none}.contact-methods a:hover{color:var(--color-secondary-dark);text-decoration:underline}.contact-methods .dot{color:#cbd5e1}.service-name{color:var(--color-primary);font-size:.9rem;font-weight:500}.notes-snippet{color:var(--text-light);text-overflow:ellipsis;white-space:nowrap;max-width:240px;margin-top:.15rem;font-size:.78rem;overflow:hidden}.location-address{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.85rem;overflow:hidden}.timestamp-cell{color:var(--text-medium);font-size:.82rem}.status-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;outline:none;align-items:center;padding:.3rem .75rem;font-size:.75rem;font-weight:700;display:inline-flex}.status-badge:focus{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--color-secondary)}.status-badge.status-new{color:#1e40af;background-color:#dbeafe;border-color:#bfdbfe}.status-badge.status-quoted{color:#92400e;background-color:#fef3c7;border-color:#fde68a}.status-badge.status-scheduled{color:#0369a1;background-color:#e0f2fe;border-color:#bae6fd}.status-badge.status-completed{color:#166534;background-color:#dcfce7;border-color:#bbf7d0}.status-badge.status-archived{color:#475569;background-color:#f1f5f9;border-color:#cbd5e1}.empty-state{text-align:center;color:var(--text-light);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:5rem 2.5rem;display:flex}.empty-state svg{opacity:.4;color:var(--text-light);margin-bottom:.5rem}.empty-state h3{color:var(--color-primary);margin:0}.empty-state p{color:var(--text-medium);max-width:380px;margin:0;font-size:.9rem}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:100;background-color:#0f172a66;justify-content:flex-end;align-items:center;animation:.25s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.modal-card{background-color:var(--color-white);flex-direction:column;width:100%;max-width:500px;height:100%;animation:.3s cubic-bezier(.16,1,.3,1) slideIn;display:flex;box-shadow:-10px 0 40px #0000001f}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:1.5rem 1.75rem;display:flex}.modal-header h3{color:var(--color-primary-dark);font-size:1.15rem}.modal-close-btn{cursor:pointer;color:var(--text-light);transition:var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.35rem;display:flex}.modal-close-btn:hover{color:var(--text-dark);background-color:#f1f5f9}.modal-body{flex-direction:column;gap:1.75rem;padding:2rem 1.75rem;display:flex;overflow-y:auto}.modal-section{flex-direction:column;gap:.4rem;display:flex}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);font-size:.75rem;font-weight:700}.section-value-large{color:var(--color-primary-dark);font-size:1.4rem;font-weight:800;font-family:var(--font-headings)}.section-value{color:var(--text-dark);font-size:.95rem;line-height:1.5}.modal-grid-row{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.modal-contact-btn{border-radius:var(--radius-sm);align-items:center;padding:.5rem 1rem;font-size:.85rem;display:inline-flex}.notes-box{border-radius:var(--radius-sm);color:var(--text-medium);white-space:pre-wrap;word-break:break-word;background-color:#f8fafc;border:1px solid #e2e8f0;padding:1rem 1.25rem;font-size:.9rem;line-height:1.6}.maps-link{color:var(--color-secondary-dark);text-decoration:none}.maps-link:hover{text-decoration:underline}.spinner-container{background-color:var(--color-background);flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;height:100vh;display:flex}.spinner{border:3px solid #0ea5e91a;border-left-color:var(--color-secondary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.spinner-text{color:var(--text-medium);font-size:.9rem;font-weight:600}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
