@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap);:root{--primary:160 84% 39%;--primary-foreground:0 0% 100%;--accent:160 60% 92%;--ring:160 84% 39%;--radius:0.5rem;--background:0 0% 100%;--foreground:222 47% 11%;--card:0 0% 100%;--card-foreground:222 47% 11%;--popover:0 0% 100%;--popover-foreground:222 47% 11%;--secondary:220 14% 96%;--secondary-foreground:222 47% 30%;--muted:220 14% 96%;--muted-foreground:220 8% 46%;--border:220 13% 91%;--input:220 13% 91%;--destructive:0 84% 60%;--destructive-foreground:0 0% 98%;--chart-1:160 84% 39%;--chart-2:221 83% 53%;--chart-3:24 95% 53%;--chart-4:262 83% 58%;--chart-5:43 96% 56%}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{-webkit-font-smoothing:antialiased;background:#fff;background:hsl(var(--background));color:#0f1729;color:hsl(var(--foreground));font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px}#root,body,html{height:100%}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#e5e7eb;background:hsl(var(--border));border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#6c727f;background:hsl(var(--muted-foreground))}::selection{background:#10b77f26;background:hsl(var(--primary)/.15);color:#0f1729;color:hsl(var(--foreground))}.font-manrope{font-family:Manrope,sans-serif}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.App{font-family:Inter,sans-serif;height:100vh}.loading-screen{align-items:center;color:hsl(var(--muted-foreground));display:flex;flex-direction:column;font-size:14px;gap:16px;height:100vh;justify-content:center}.loading-spinner{animation:spin .8s linear infinite;border:3px solid hsl(var(--border));border-radius:50%;border-top-color:hsl(var(--primary));height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.landing{background:hsl(var(--foreground));min-height:100vh}.landing-hero{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:48px 24px;position:relative}.landing-hero-content{align-items:center;display:flex;flex-direction:column;max-width:640px;text-align:center;width:100%}.landing-title{color:hsl(var(--primary));font-size:96px;font-weight:900;letter-spacing:-.03em;line-height:1;margin-bottom:12px}.landing-tagline{color:#ffffff80;font-size:18px;letter-spacing:.02em;margin-bottom:48px}.landing-actions{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:32px;width:100%}.landing-action-card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;padding:24px;text-align:left}.landing-action-title{align-items:center;color:#fff;display:flex;font-size:15px;font-weight:700;gap:8px;margin-bottom:6px}.landing-action-desc{color:#ffffff73;font-size:13px;line-height:1.5;margin-bottom:16px}.landing-action-form{display:flex;flex-direction:column;gap:10px}.landing-action-input{background:#ffffff0f!important;border-color:#ffffff1f!important;color:#fff!important}.landing-action-input::placeholder{color:#ffffff4d}.landing-action-input:focus{background:#ffffff14!important;border-color:hsl(var(--primary))!important}.landing-signin-row{align-items:center;color:#fff6;display:flex;font-size:14px;gap:8px}.landing-signin-link{background:none;border:none;color:hsl(var(--primary));cursor:pointer;font-size:14px;font-weight:700;padding:0}.landing-signin-link:hover{text-decoration:underline}.landing-back-btn{align-items:center;background:none;border:none;border-radius:6px;color:#ffffff80;cursor:pointer;display:flex;font-size:14px;gap:4px;left:28px;padding:6px 12px;position:absolute;top:28px;transition:background .15s,color .15s}.landing-back-btn:hover{background:#ffffff0f;color:#fff}.company-profile-view{max-width:520px;text-align:center;width:100%}.company-profile-name{color:#fff;font-size:32px;font-weight:900;margin-bottom:8px}.company-profile-bio{color:#ffffff8c;font-size:15px;line-height:1.5;margin-bottom:12px}.company-profile-phone{align-items:center;color:#ffffff80;display:flex;font-size:14px;gap:6px;justify-content:center;margin-bottom:24px}.company-profile-stats{display:flex;gap:32px;justify-content:center;margin-bottom:28px}.company-stat{align-items:center;color:#ffffff80;display:flex;flex-direction:column;font-size:12px;gap:2px}.company-stat-num{color:hsl(var(--primary));font-size:28px;font-weight:800}.company-profile-members{text-align:left}.company-profile-members h4{color:#ffffffb3;font-size:14px;font-weight:700;margin-bottom:12px}.company-members-grid{display:flex;flex-wrap:wrap;gap:10px}.company-member-chip{align-items:center;background:#ffffff0a;border:1px solid #ffffff14;border-radius:99px;color:#fff;display:flex;gap:8px;padding:6px 14px 6px 6px}.auth-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:16px;box-shadow:0 20px 60px #00000014;max-width:420px;padding:40px;width:100%}.auth-tabs{background:hsl(var(--muted));border-radius:calc(var(--radius) + 2px);display:flex;gap:4px;margin-bottom:28px;padding:4px}.auth-tab{background:#0000;border:none;border-radius:var(--radius);color:hsl(var(--muted-foreground));cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:8px;transition:background .15s,color .15s}.auth-tab.active{background:hsl(var(--card));box-shadow:0 1px 4px #00000014;color:hsl(var(--foreground))}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-switch{color:hsl(var(--muted-foreground));font-size:13px;margin-top:16px;text-align:center}.auth-switch-link{background:none;border:none;color:hsl(var(--primary));cursor:pointer;font-size:13px;font-weight:600;text-decoration:underline}.app-shell{overflow:hidden}.app-shell,.sidebar{display:flex;height:100vh}.sidebar{background:hsl(var(--card));background:hsl(var(--sidebar-bg,var(--card)));border-right:1px solid hsl(var(--border));flex-direction:column;flex-shrink:0;min-width:240px;overflow-y:auto;transition:width .2s ease,min-width .2s ease;width:240px;z-index:30}.sidebar-collapsed{min-width:64px;width:64px}.sidebar-top{flex:1 1}.sidebar-brand{align-items:center;border-bottom:1px solid hsl(var(--border));display:flex;gap:8px;justify-content:space-between;min-height:72px;padding:20px 16px 16px}.brand-name{color:hsl(var(--foreground));font-size:15px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}.brand-sub{font-size:11px;margin-top:2px;max-width:140px}.brand-sub,.sidebar-toggle{color:hsl(var(--muted-foreground))}.sidebar-toggle{align-items:center;background:#0000;border:none;border-radius:var(--radius);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:background .15s;width:32px}.sidebar-toggle:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:12px 8px}.nav-item{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:hsl(var(--muted-foreground));cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;overflow:hidden;padding:10px;transition:background .15s,color .15s;white-space:nowrap;width:100%}.nav-item:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.nav-item-active{background:hsl(var(--primary)/.1);color:hsl(var(--primary));font-weight:600}.nav-item-active:hover{background:hsl(var(--primary)/.15)}.nav-icon{flex-shrink:0}.nav-label{overflow:hidden;text-overflow:ellipsis}.sidebar-bottom{border-top:1px solid hsl(var(--border));padding:8px}.sidebar-user{align-items:center;border-radius:var(--radius);display:flex;gap:10px;margin-bottom:4px;padding:10px}.sidebar-user-info{flex:1 1;min-width:0}.user-name{color:hsl(var(--foreground));font-size:13px;font-weight:600}.user-email{font-size:11px}.nav-logout,.user-email{color:hsl(var(--muted-foreground))}.nav-logout:hover{background:hsl(var(--destructive)/.08);color:hsl(var(--destructive))}.main-area{background:hsl(var(--muted)/.4);flex:1 1;margin-left:0;overflow-y:auto;transition:margin-left .2s}.page-content{max-width:1280px;padding:32px 40px}.page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:28px}.page-title{color:hsl(var(--foreground));font-size:26px;font-weight:800;letter-spacing:-.02em}.page-sub{color:hsl(var(--muted-foreground));font-size:14px;margin-top:2px}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.modal-box{border-radius:16px;box-shadow:0 24px 80px #0003;max-height:90vh;overflow-y:auto;width:100%}.modal-box,.modal-header{background:hsl(var(--card))}.modal-header{align-items:center;border-bottom:1px solid hsl(var(--border));display:flex;justify-content:space-between;padding:24px 28px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-title{font-size:18px;font-weight:700}.modal-close{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:hsl(var(--muted-foreground));cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .15s;width:32px}.modal-close:hover{background:hsl(var(--muted))}.modal-body{padding:24px 28px}.modal-footer{border-top:1px solid hsl(var(--border));display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{color:hsl(var(--muted-foreground));font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.form-input{background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--foreground));font-family:Inter,sans-serif;font-size:14px;height:40px;outline:none;padding:0 12px;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary)/.12)}.form-input:disabled{background:hsl(var(--muted));color:hsl(var(--muted-foreground));cursor:not-allowed}.form-textarea{height:auto;min-height:80px;padding:10px 12px;resize:vertical}.form-select{-webkit-appearance:none;appearance:none;cursor:pointer}.input-error{border-color:hsl(var(--destructive))!important}.form-error{color:hsl(var(--destructive));font-size:12px}.grid{display:grid}.grid-cols-2{grid-template-columns:1fr 1fr}.col-span-2{grid-column:span 2}.gap-4{gap:16px}.flex{display:flex}.flex-col{flex-direction:column}.gap-3{gap:12px}.gap-6{gap:24px}.justify-end{justify-content:flex-end}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.w-full{width:100%}.w-fit{width:-webkit-fit-content;width:fit-content}.text-sm{font-size:13px}.text-muted{color:hsl(var(--muted-foreground))}.sr-only{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute;width:1px}.address-row{align-items:center;display:flex;gap:8px}.address-row .form-input{flex:1 1}.maps-btn{align-items:center;background:hsl(var(--primary)/.1);border:1px solid hsl(var(--primary)/.3);border-radius:var(--radius);color:hsl(var(--primary));display:inline-flex;flex-shrink:0;font-size:13px;font-weight:600;gap:6px;height:40px;padding:0 14px;text-decoration:none;transition:background .15s;white-space:nowrap}.maps-btn:hover{background:hsl(var(--primary)/.18)}.maps-btn-disabled{cursor:not-allowed;opacity:.4}.color-preview-bar{align-items:center;border-radius:var(--radius);color:#fff;display:flex;font-size:13px;font-weight:600;gap:10px;margin-bottom:10px;min-height:40px;padding:10px 14px;transition:background .2s}.color-preview-dot{background:#fff9;border-radius:50%;flex-shrink:0;height:8px;width:8px}.color-preview-text{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-swatches{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{align-items:center;background:var(--swatch-color);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;outline:2px solid #0000;outline-offset:0;transition:transform .15s,outline-offset .15s;width:32px}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{outline:2px solid hsl(var(--foreground));outline-offset:3px;transform:scale(1.1)}.job-num-badge{align-items:center;background:hsl(var(--muted));border-radius:40px;color:hsl(var(--muted-foreground));display:inline-flex;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;letter-spacing:.02em;padding:3px 10px}.share-link-box{background:hsl(var(--muted)/.5);border:1px solid hsl(var(--border));border-radius:var(--radius);padding:14px}.share-link-label{align-items:center;color:hsl(var(--muted-foreground));display:flex;font-size:12px;font-weight:700;gap:6px;margin-bottom:8px}.share-link-row{align-items:center;display:flex;gap:8px}.share-link-url{flex:1 1;font-family:monospace;font-weight:500;word-break:break-all}.share-copy-btn,.share-link-url{color:hsl(var(--primary));font-size:12px}.share-copy-btn{background:#0000;border:1px solid hsl(var(--primary));border-radius:var(--radius);cursor:pointer;font-weight:700;padding:4px 12px;transition:background .15s;white-space:nowrap}.share-copy-btn:hover{background:hsl(var(--primary)/.1)}.cp-shell{align-items:flex-start;background:hsl(var(--muted)/.4);display:flex;justify-content:center;min-height:100vh;padding:40px 20px 80px}.cp-notfound{align-items:center;color:hsl(var(--muted-foreground));display:flex;flex-direction:column;gap:16px;padding:60px 40px;text-align:center}.cp-notfound h2{color:hsl(var(--foreground));font-size:22px}.cp-lock-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:20px;box-shadow:0 20px 60px #00000014;margin-top:60px;max-width:400px;padding:40px;width:100%}.cp-lock-icon{align-items:center;background:hsl(var(--primary)/.1);border-radius:50%;color:hsl(var(--primary));display:flex;height:56px;justify-content:center;margin:0 auto 16px;width:56px}.cp-lock-title{font-size:22px;font-weight:800;margin-bottom:6px;text-align:center}.cp-lock-sub{color:hsl(var(--muted-foreground));font-size:14px;margin-bottom:24px;text-align:center}.cp-lock-form{display:flex;flex-direction:column;gap:12px}.cp-profile{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:20px;box-shadow:0 8px 40px #0000000f;max-width:680px;padding:40px;width:100%}.cp-header{align-items:flex-start;display:flex;gap:20px;margin-bottom:28px}.cp-avatar{align-items:center;background:hsl(var(--primary));border-radius:50%;color:hsl(var(--primary-foreground));display:flex;flex-shrink:0;font-size:22px;font-weight:800;height:72px;justify-content:center;width:72px}.cp-company-name{font-size:26px;font-weight:800;margin-bottom:6px}.cp-bio{font-size:14px;line-height:1.6;margin-bottom:6px}.cp-bio,.cp-contact{color:hsl(var(--muted-foreground))}.cp-contact{align-items:center;display:flex;font-size:13px;gap:6px}.cp-stats-row{grid-gap:12px;background:hsl(var(--muted)/.4);border-radius:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:28px;padding:20px}.cp-stat{text-align:center}.cp-stat-val{color:hsl(var(--primary));font-size:28px;font-weight:800}.cp-stat-label{color:hsl(var(--muted-foreground));font-size:11px;font-weight:600;letter-spacing:.04em;margin-top:2px;text-transform:uppercase}.cp-section{margin-bottom:28px}.cp-section-title{font-size:16px;font-weight:700;margin-bottom:16px}.cp-team-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.cp-team-card{align-items:center;background:hsl(var(--muted)/.5);border:1px solid hsl(var(--border));border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:16px 12px;text-align:center}.cp-member-name{font-size:13px;font-weight:700}.cp-member-role{font-size:11px}.cp-footer,.cp-member-role{color:hsl(var(--muted-foreground))}.cp-footer{border-top:1px solid hsl(var(--border));font-size:12px;margin-top:20px;padding-top:20px;text-align:center}.member-checkboxes{display:flex;flex-wrap:wrap;gap:8px}.member-checkbox-item{align-items:center;border:1px solid hsl(var(--border));border-radius:40px;color:hsl(var(--foreground));cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 12px 6px 8px;transition:all .15s}.member-checkbox-item:hover{background:hsl(var(--muted))}.member-checkbox-item.selected{background:hsl(var(--primary)/.08);border-color:hsl(var(--primary));color:hsl(var(--primary))}.check-icon{color:hsl(var(--primary))}.btn{align-items:center;border:none;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:14px;font-weight:600;gap:6px;height:38px;padding:0 16px;transition:background .15s,opacity .15s,transform .1s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover:not(:disabled){background:hsl(var(--primary)/.88)}.btn-outline{background:#0000;border:1px solid hsl(var(--border));color:hsl(var(--foreground))}.btn-outline:hover:not(:disabled){background:hsl(var(--muted))}.btn-ghost{background:#0000;color:hsl(var(--foreground))}.btn-ghost:hover:not(:disabled){background:hsl(var(--muted))}.btn-danger{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.btn-danger:hover:not(:disabled){background:hsl(var(--destructive)/.85)}.btn-sm{font-size:12px;height:30px;padding:0 12px}.btn-lg{font-size:16px;height:46px;padding:0 24px}.badge{align-items:center;border-radius:40px;display:inline-flex;font-size:11px;font-weight:700;letter-spacing:.02em;padding:2px 10px;white-space:nowrap}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:#dbeafe;color:#1e40af}.badge-neutral{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.badge-primary{background:hsl(var(--primary)/.12);color:hsl(var(--primary))}.avatar{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:12px;font-weight:700;justify-content:center;object-fit:cover;overflow:hidden}.alert-error{background:#fee2e2;border:1px solid #fca5a5;border-radius:var(--radius);color:#991b1b;font-size:13px;padding:10px 14px}.alert-success{background:#dcfce7;border:1px solid #86efac;color:#166534;padding:10px 14px}.empty-state{padding:60px 40px;text-align:center}.empty-icon,.empty-state{color:hsl(var(--muted-foreground))}.empty-icon{align-items:center;background:hsl(var(--muted));border-radius:50%;display:flex;height:64px;justify-content:center;margin:0 auto 16px;width:64px}.empty-state h4{color:hsl(var(--foreground));font-size:16px;font-weight:700;margin-bottom:6px}.empty-state p{font-size:14px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.stat-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 1px 3px #0000000a;gap:16px;padding:20px}.stat-card,.stat-icon{align-items:center;display:flex}.stat-icon{background:hsl(var(--muted));border-radius:10px;flex-shrink:0;height:44px;justify-content:center;width:44px}.stat-value{color:hsl(var(--foreground));font-size:28px;font-weight:800;line-height:1}.stat-label{color:hsl(var(--muted-foreground));font-size:12px;font-weight:500;margin-top:4px}.dash-card-title{font-size:15px;font-weight:700;margin-bottom:16px}.job-list-mini{display:flex;flex-direction:column;gap:12px}.job-row-mini{align-items:center;background:hsl(var(--muted)/.5);border-radius:8px;display:flex;gap:12px;padding:10px}.job-color-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.job-info-mini{flex:1 1;min-width:0}.job-name-mini{color:hsl(var(--foreground));font-size:13px;font-weight:600}.job-client-mini,.job-date-mini{color:hsl(var(--muted-foreground));font-size:12px}.job-date-mini{white-space:nowrap}.team-avatars{display:flex;flex-wrap:wrap;gap:16px}.team-avatar-item{align-items:center;display:flex;flex-direction:column;gap:6px}.team-avatar-name{color:hsl(var(--muted-foreground));font-size:12px}.toolbar{flex-wrap:wrap;gap:16px;margin-bottom:20px}.search-box,.toolbar{align-items:center;display:flex}.search-box{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);gap:10px;height:38px;padding:0 14px;width:280px}.search-icon{color:hsl(var(--muted-foreground));flex-shrink:0}.search-input{background:none;border:none;color:hsl(var(--foreground));font-family:Inter,sans-serif;font-size:14px;outline:none;width:100%}.filter-tabs{display:flex;flex-wrap:wrap;gap:4px}.filter-tab{background:#0000;border:1px solid hsl(var(--border));border-radius:40px;color:hsl(var(--muted-foreground));cursor:pointer;font-size:13px;font-weight:500;padding:6px 14px;transition:all .15s}.filter-tab:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.filter-tab.active{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.jobs-table-wrap{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.jobs-table{border-collapse:collapse;width:100%}.jobs-table thead{background:hsl(var(--muted)/.5)}.jobs-table th{color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.job-row{border-top:1px solid hsl(var(--border));transition:background .1s}.job-row:hover{background:hsl(var(--muted)/.4)}.jobs-table td{font-size:14px;padding:14px 16px}.job-cell-name{align-items:center;display:flex;gap:10px}.job-name{color:hsl(var(--foreground));font-weight:600}.job-num{font-size:11px;margin-top:2px}.job-client,.job-date,.job-num{color:hsl(var(--muted-foreground))}.job-date{white-space:nowrap}.avatar-stack{display:flex;gap:-4px}.avatar-stack .avatar{border:2px solid hsl(var(--card));margin-left:-6px}.avatar-stack .avatar:first-child{margin-left:0}.avatar-more{align-items:center;background:hsl(var(--muted));border:2px solid hsl(var(--card));border-radius:50%;color:hsl(var(--muted-foreground));display:flex;font-size:10px;font-weight:700;height:26px;justify-content:center;margin-left:-6px;width:26px}.row-actions{display:flex;gap:4px;justify-content:flex-end}.icon-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:hsl(var(--muted-foreground));cursor:pointer;display:flex;height:30px;justify-content:center;transition:background .15s,color .15s;width:30px}.icon-btn:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.icon-btn-danger:hover{background:#fee2e2;color:hsl(var(--destructive))}.view-switcher{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);display:flex;gap:2px;padding:3px}.view-btn{align-items:center;background:#0000;border:none;border-radius:calc(var(--radius) - 2px);color:hsl(var(--muted-foreground));cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:6px 14px;transition:all .15s}.view-btn.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.view-btn:hover:not(.active){background:hsl(var(--muted));color:hsl(var(--foreground))}.cal-nav{gap:12px;margin-bottom:16px}.cal-nav,.cal-nav-btn{align-items:center;display:flex}.cal-nav-btn{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--foreground));cursor:pointer;height:32px;justify-content:center;transition:background .15s;width:32px}.cal-nav-btn:hover{background:hsl(var(--muted))}.cal-nav-label{font-size:16px;font-weight:700}.list-view{display:flex;flex-direction:column;gap:0}.period-group{margin-bottom:8px}.period-header{align-items:center;border-bottom:1px solid hsl(var(--border));display:flex;gap:10px;margin-bottom:4px;padding:12px 0 8px}.period-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.label-warning{color:#d97706}.label-muted,.period-count{color:hsl(var(--muted-foreground))}.period-count{background:hsl(var(--muted));border-radius:40px;font-size:11px;font-weight:700;padding:1px 7px}.list-job-row{align-items:center;background:hsl(var(--card));border-bottom:1px solid hsl(var(--border)/.6);border-radius:8px;display:flex;gap:16px;margin-bottom:4px;padding:14px 12px;transition:background .12s}.list-job-row:hover{background:hsl(var(--muted)/.5)}.list-job-indicator{border-radius:4px;flex-shrink:0;height:40px;width:4px}.list-job-info{flex:1 1;min-width:0}.list-job-name{color:hsl(var(--foreground));font-size:14px;font-weight:600}.list-job-client{color:hsl(var(--muted-foreground));font-size:12px;margin-top:2px}.list-job-desc{flex:1.5 1;font-size:12px}.list-job-meta{min-width:100px;text-align:right}.list-job-date{font-weight:500}.list-job-assignees,.list-job-date{color:hsl(var(--muted-foreground));font-size:12px}.list-job-assignees{margin-top:2px}.week-view{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.week-grid{max-height:calc(100vh - 260px);overflow-y:auto}.week-header-row{background:hsl(var(--card));border-bottom:1px solid hsl(var(--border));display:grid;grid-template-columns:72px repeat(7,1fr);position:-webkit-sticky;position:sticky;top:0;z-index:2}.week-day-header{align-items:center;border-left:1px solid hsl(var(--border));display:flex;flex-direction:column;gap:4px;padding:12px 8px}.today-header{background:hsl(var(--primary)/.06)}.day-abbr{color:hsl(var(--muted-foreground));font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.day-num{align-items:center;border-radius:50%;display:flex;font-size:18px;font-weight:700;height:32px;justify-content:center;width:32px}.today-num{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.week-time-col{flex-shrink:0;width:72px}.week-allday-row{border-bottom:2px solid hsl(var(--border));display:grid;grid-template-columns:72px repeat(7,1fr);min-height:60px}.week-allday-label{align-items:flex-start;color:hsl(var(--muted-foreground));display:flex;font-size:11px;font-weight:600;justify-content:flex-end;padding:8px}.week-allday-cell{border-left:1px solid hsl(var(--border));cursor:pointer;display:flex;flex-direction:column;gap:3px;min-height:60px;padding:4px 6px;transition:background .12s}.week-allday-cell:hover{background:hsl(var(--muted)/.5)}.today-col{background:hsl(var(--primary)/.04)}.week-time-row{display:grid;grid-template-columns:72px repeat(7,1fr);height:52px}.week-time-label{align-items:flex-start;color:hsl(var(--muted-foreground));display:flex;font-size:11px;font-weight:500;justify-content:flex-end;padding:4px 8px 0}.week-time-cell{border-bottom:1px solid hsl(var(--border)/.5);border-left:1px solid hsl(var(--border))}.week-job-chip{background:hsl(var(--primary)/.1);border-left:3px solid;border-radius:4px;cursor:pointer;padding:3px 6px}.week-chip-name{display:block;font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 200px;position:relative}.month-main{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;padding:20px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-dow-header{color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;letter-spacing:.06em;padding:8px 0;text-align:center;text-transform:uppercase}.month-day-cell,.month-dow-header{border-bottom:1px solid hsl(var(--border))}.month-day-cell{border-right:1px solid hsl(var(--border));cursor:pointer;min-height:100px;padding:8px;position:relative;transition:background .1s}.month-day-cell:hover{background:hsl(var(--muted)/.4)}.other-month{background:hsl(var(--muted)/.3)}.other-month .month-day-num{color:hsl(var(--border))}.today-cell{background:hsl(var(--primary)/.04)}.month-day-num{color:hsl(var(--muted-foreground));font-size:13px;font-weight:600;margin-bottom:4px}.today-day-num{align-items:center;background:hsl(var(--primary));border-radius:50%;color:hsl(var(--primary-foreground));display:flex;font-size:12px;height:24px;justify-content:center;width:24px}.month-visit-count{color:hsl(var(--primary));font-size:10px;font-weight:700;margin-bottom:4px}.month-job-chip{border:none;border-left:2px solid;border-radius:4px;cursor:pointer;display:block;font-size:11px;font-weight:600;margin-bottom:2px;overflow:hidden;padding:2px 6px;text-align:left;text-overflow:ellipsis;transition:opacity .12s;white-space:nowrap;width:100%}.month-job-chip:hover{opacity:.75}.chip-completed{opacity:.6;text-decoration:line-through}.month-chip-name{display:block;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-more{color:hsl(var(--muted-foreground));font-size:10px;margin-top:2px}.context-menu{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:10px;box-shadow:0 8px 32px #0000001f;left:0;min-width:180px;padding:8px;position:absolute;top:100%;z-index:50}.context-title{border-bottom:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:12px;font-weight:700;margin-bottom:4px;padding:4px 8px 8px}.context-item{align-items:center;background:#0000;border:none;border-radius:6px;color:hsl(var(--foreground));cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px;padding:8px 10px;transition:background .12s;width:100%}.context-item:hover{background:hsl(var(--muted))}.month-sidebar{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;height:-webkit-fit-content;height:fit-content;padding:16px}.month-sidebar-title{align-items:center;display:flex;font-size:14px;font-weight:700;gap:8px;margin-bottom:12px}.sidebar-count{background:hsl(var(--muted));border-radius:40px;color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;padding:1px 7px}.unscheduled-chip{background:hsl(var(--muted)/.5);border-left:3px solid;border-radius:6px;cursor:default;margin-bottom:8px;padding:8px 10px}.unscheduled-name{display:block;font-size:13px;font-weight:600}.unscheduled-client{color:hsl(var(--muted-foreground));font-size:11px}.job-popup{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 20px 60px #0003;left:50%;max-width:360px;min-width:300px;padding:20px;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:60}.popup-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:12px}.popup-title{flex:1 1;font-size:15px;font-weight:700}.popup-close{align-items:center;background:#0000;border:none;border-radius:50%;color:hsl(var(--muted-foreground));cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.popup-close:hover{background:hsl(var(--muted))}.popup-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.popup-detail{align-items:flex-start;color:hsl(var(--muted-foreground));display:flex;font-size:13px;gap:8px;margin-bottom:8px}.popup-detail span{color:hsl(var(--foreground))}.avatar-stack-sm{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.popup-dates{grid-gap:12px;border-top:1px solid hsl(var(--border));display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-top:12px;padding-top:12px}.popup-dates label{color:hsl(var(--muted-foreground));display:block;font-size:11px;font-weight:700;margin-bottom:2px}.popup-dates span{font-size:13px;font-weight:600}.panel-backdrop{background:#00000040;inset:0;position:fixed;z-index:38}.detail-panel{background:hsl(var(--card));border-left:1px solid hsl(var(--border));bottom:0;box-shadow:-8px 0 40px #0000001a;display:flex;flex-direction:column;overflow:hidden;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);width:440px;z-index:39}.detail-panel.open{transform:translateX(0)}.panel-header{border-bottom:1px solid hsl(var(--border));flex-shrink:0;padding:20px 20px 0}.panel-header-top{align-items:flex-start;display:flex;gap:12px;margin-bottom:12px}.panel-color-bar{border-radius:4px;flex-shrink:0;height:44px;margin-top:2px;width:4px}.panel-title-group{flex:1 1;min-width:0}.panel-job-num{color:hsl(var(--muted-foreground));font-size:11px;font-weight:600}.panel-title{font-size:18px;font-weight:800;letter-spacing:-.02em;line-height:1.2}.panel-header-actions{display:flex;flex-shrink:0;gap:4px}.panel-badges{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:14px}.task-progress-badge{align-items:center;background:hsl(var(--primary)/.1);border-radius:40px;color:hsl(var(--primary));display:inline-flex;font-size:11px;font-weight:700;padding:2px 10px}.panel-tabs{background:hsl(var(--muted)/.3);border-bottom:1px solid hsl(var(--border));display:flex;flex-shrink:0}.panel-tab{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:hsl(var(--muted-foreground));cursor:pointer;display:flex;flex:1 1;font-size:12px;font-weight:600;gap:5px;justify-content:center;padding:11px 8px;transition:color .15s,border-color .15s;white-space:nowrap}.panel-tab:hover{color:hsl(var(--foreground))}.panel-tab.active{background:#0000;border-bottom-color:hsl(var(--primary));color:hsl(var(--primary))}.panel-body{flex:1 1;overflow-y:auto;padding:20px}.panel-details{display:flex;flex-direction:column;gap:16px}.detail-row{align-items:flex-start;display:flex;gap:12px}.detail-icon{flex-shrink:0;margin-top:3px}.detail-icon,.detail-label{color:hsl(var(--muted-foreground))}.detail-label{font-size:11px;font-weight:700;letter-spacing:.05em;margin-bottom:3px;text-transform:uppercase}.detail-value{color:hsl(var(--foreground));font-size:14px;line-height:1.5}.site-instructions{background:hsl(var(--muted));border-radius:var(--radius);color:hsl(var(--foreground));font-family:JetBrains Mono,monospace;font-size:13px;margin-top:4px;padding:8px 12px;white-space:pre-wrap}.maps-link{align-items:center;color:hsl(var(--primary));display:inline-flex;font-size:12px;font-weight:600;gap:4px;margin-top:4px;text-decoration:none}.maps-link:hover{text-decoration:underline}.detail-team{display:flex;flex-direction:column;gap:8px;margin-top:4px}.detail-member{align-items:center;display:flex;gap:10px}.member-name-sm{font-size:13px;font-weight:600}.member-role-sm{color:hsl(var(--muted-foreground));font-size:11px}.panel-punchlist{display:flex;flex-direction:column;gap:12px}.add-task-row{display:flex;gap:8px}.add-task-input{flex:1 1}.task-progress-bar-wrap{align-items:center;display:flex;gap:10px}.task-progress-bar{background:hsl(var(--border));border-radius:3px;flex:1 1;height:6px;overflow:hidden}.task-progress-fill{background:hsl(var(--primary));border-radius:3px;height:100%;transition:width .3s ease}.task-progress-label{color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;white-space:nowrap}.task-list{display:flex;flex-direction:column;gap:4px}.task-item{align-items:center;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;display:flex;gap:10px;padding:10px;transition:background .12s}.task-item:hover{background:hsl(var(--muted)/.4)}.task-done{opacity:.6}.task-check{align-items:center;background:none;border:none;cursor:pointer;display:flex;flex-shrink:0;padding:0}.check-done{color:hsl(var(--primary))}.check-todo{color:hsl(var(--border))}.task-title{flex:1 1;font-size:13px;font-weight:500}.task-done .task-title{text-decoration:line-through}.task-delete{height:24px;opacity:0;transition:opacity .15s;width:24px}.task-item:hover .task-delete{opacity:1}.empty-punchlist{align-items:center;color:hsl(var(--muted-foreground));display:flex;flex-direction:column;gap:8px;padding:40px 20px;text-align:center}.empty-punchlist p{font-size:13px}.panel-notes{gap:12px}.add-note-row,.panel-notes{display:flex;flex-direction:column}.add-note-row{gap:8px}.add-note-input{resize:none}.notes-list{display:flex;flex-direction:column;gap:8px}.note-item{background:hsl(var(--muted)/.5);border-left:3px solid hsl(var(--primary));border-radius:8px;padding:12px 14px}.note-text{font-size:13px;line-height:1.5;margin-bottom:4px;white-space:pre-wrap}.note-ts{color:hsl(var(--muted-foreground));font-size:11px}.job-row-active{background:hsl(var(--primary)/.05)!important}.job-cell-name-btn{align-items:center;background:none;border:none;cursor:pointer;display:flex;gap:10px;padding:0;text-align:left}.job-cell-name-btn:hover .job-name{color:hsl(var(--primary))}.dashboard-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.team-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.member-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;padding:20px;transition:box-shadow .2s}.member-card:hover{box-shadow:0 4px 16px #0000000f}.member-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.member-name{font-size:16px;font-weight:700;margin-bottom:2px}.member-role{color:hsl(var(--primary));font-size:13px;font-weight:500;margin-bottom:10px}.member-contacts{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.member-contact,.member-jobs-count{align-items:center;color:hsl(var(--muted-foreground));display:flex;font-size:12px;gap:6px}.settings-layout{grid-gap:24px;display:grid;gap:24px;grid-template-columns:200px 1fr}.settings-sidebar{display:flex;flex-direction:column;gap:2px}.settings-tab{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:hsl(var(--muted-foreground));cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;padding:10px 14px;transition:all .15s;width:100%}.settings-tab:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.settings-tab.active{background:hsl(var(--primary)/.1);color:hsl(var(--primary));font-weight:600}.settings-content{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;padding:28px}.settings-section-title{font-size:18px;font-weight:700;margin-bottom:20px}.theme-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.theme-card{align-items:center;background:#0000;border:2px solid hsl(var(--border));border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:12px;transition:all .15s}.theme-card:hover{background:hsl(var(--muted)/.5);border-color:hsl(var(--primary)/.5)}.theme-card-active{background:hsl(var(--primary)/.06);border-color:hsl(var(--primary))}.theme-preview{align-items:center;border-radius:50%;box-shadow:0 2px 8px #00000026;display:flex;height:48px;justify-content:center;width:48px}.theme-name{color:hsl(var(--foreground));font-size:11px;font-weight:600;text-align:center}.theme-current-preview{align-items:center;background:hsl(var(--muted)/.3);border:2px solid;border-radius:12px;display:flex;gap:16px;padding:16px 20px}.theme-preview-bar{border-radius:4px;flex-shrink:0;height:48px;width:6px}.theme-preview-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.theme-preview-info strong{font-size:14px;font-weight:700}.theme-preview-demo{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.panel-team-label-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.team-toggle-btn{background:hsl(var(--primary)/.1);border:1px solid hsl(var(--primary)/.25);border-radius:40px;color:hsl(var(--primary));cursor:pointer;font-size:11px;font-weight:700;padding:3px 10px;transition:background .15s}.team-toggle-btn:hover{background:hsl(var(--primary)/.18)}.panel-team-chip{align-items:center;background:hsl(var(--muted)/.5);border:1px solid hsl(var(--border));border-radius:10px;display:flex;gap:10px;padding:8px 10px;text-align:left;transition:background .12s;width:100%}.panel-team-chip.assigned{cursor:default}.panel-team-chip.unassigned{background:#0000;border-style:dashed;cursor:pointer}.panel-team-chip.unassigned:hover{background:hsl(var(--primary)/.06);border-color:hsl(var(--primary))}.chip-remove-btn{align-items:center;background:none;border:none;border-radius:50%;color:hsl(var(--muted-foreground));cursor:pointer;display:flex;flex-shrink:0;height:22px;justify-content:center;margin-left:auto;transition:background .12s,color .12s;width:22px}.chip-remove-btn:hover{background:#fee2e2;color:hsl(var(--destructive))}.chip-add-icon{color:hsl(var(--primary));flex-shrink:0;margin-left:auto}.panel-add-members{display:flex;flex-direction:column;gap:6px;margin-top:8px}.add-members-label{color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:2px;text-transform:uppercase}.schedule-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.member-filter{align-items:center;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--muted-foreground));display:flex;gap:8px;height:38px;padding:0 12px}.member-filter-select{background:none;border:none;color:hsl(var(--foreground));cursor:pointer;font-family:Inter,sans-serif;font-size:13px;font-weight:500;outline:none}.month-chip-avatars{display:flex;gap:1px;margin-top:2px}.month-job-chip{display:flex;flex-direction:column}.mini-avatar-stack{display:flex}.mini-avatar-stack .avatar{border:1px solid hsl(var(--card));margin-left:-4px}.mini-avatar-stack .avatar:first-child{margin-left:0}.panel-client-tag{color:hsl(var(--muted-foreground));display:block;font-size:12px;font-weight:500;margin-top:2px}.panel-status-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.panel-status-select{background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--foreground));cursor:pointer;font-family:Inter,sans-serif;font-size:12px;font-weight:600;height:30px;outline:none;padding:0 10px}.panel-status-select:focus{border-color:hsl(var(--primary))}.panel-team-strip{border-top:1px solid hsl(var(--border));padding:12px 0 14px}.panel-team-label{align-items:center;color:hsl(var(--muted-foreground));display:flex;font-size:11px;font-weight:700;gap:5px;letter-spacing:.06em;margin-bottom:10px;text-transform:uppercase}.team-unassigned{color:hsl(var(--muted-foreground));font-size:13px}.panel-team-members{display:flex;flex-direction:column;gap:6px}.list-assignee-strip{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.list-assignee-chip{align-items:center;display:flex;gap:5px}.list-assignee-name{font-weight:500}.list-assignee-more,.list-assignee-name{color:hsl(var(--muted-foreground));font-size:11px}.list-assignee-more{font-weight:600}.week-chip-avatars{display:flex;flex-wrap:wrap;gap:2px;margin-top:3px}.clients-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:320px 1fr;min-height:500px}.clients-list,.clients-list-panel{display:flex;flex-direction:column}.clients-list{gap:4px}.client-row{align-items:center;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:10px;cursor:pointer;display:flex;gap:12px;padding:12px 14px;text-align:left;transition:all .15s;width:100%}.client-row:hover{background:hsl(var(--muted)/.5);border-color:hsl(var(--primary)/.3)}.client-row.active{background:hsl(var(--primary)/.07);border-color:hsl(var(--primary))}.client-avatar{align-items:center;background:hsl(var(--primary));border-radius:50%;color:hsl(var(--primary-foreground));display:flex;flex-shrink:0;font-family:Manrope,sans-serif;font-size:13px;font-weight:800;height:40px;justify-content:center;width:40px}.client-info{flex:1 1;min-width:0}.client-name{font-size:14px;font-weight:700}.client-meta{color:hsl(var(--muted-foreground));font-size:12px;margin-top:2px}.client-job-badges{display:flex;flex-shrink:0;gap:4px}.client-status-dot{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:10px;font-weight:800;height:20px;justify-content:center;width:20px}.status-active,.status-in-progress{background:#10b981}.status-new{background:#6b7280}.client-detail-panel{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;height:-webkit-fit-content;height:fit-content;padding:28px}.client-detail-header{align-items:center;display:flex;gap:16px;margin-bottom:20px}.client-detail-avatar{align-items:center;background:hsl(var(--primary));border-radius:50%;color:hsl(var(--primary-foreground));display:flex;flex-shrink:0;font-family:Manrope,sans-serif;font-size:18px;font-weight:800;height:60px;justify-content:center;width:60px}.client-stats-row{border-bottom:1px solid hsl(var(--border));border-top:1px solid hsl(var(--border));display:flex;gap:20px;margin-bottom:20px;padding:16px 0}.client-stat{flex:1 1;text-align:center}.client-stat-val{font-size:24px;font-weight:800}.client-stat-label{color:hsl(var(--muted-foreground));font-size:12px;margin-top:2px}.client-jobs-list{display:flex;flex-direction:column;gap:8px}.client-job-row{background:hsl(var(--muted)/.3);border:1px solid hsl(var(--border));border-radius:8px;padding:12px 14px}.client-detail-empty,.client-job-row{align-items:center;display:flex;gap:12px}.client-detail-empty{background:hsl(var(--card));border:1px dashed hsl(var(--border));border-radius:12px;color:hsl(var(--muted-foreground));flex-direction:column;justify-content:center;padding:60px 40px}.client-detail-empty p{font-size:14px}@media (max-width:900px){.clients-layout{grid-template-columns:1fr}.client-detail-empty{display:none}}.mobile-nav{background:hsl(var(--card));border-top:1px solid hsl(var(--border));bottom:0;display:none;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;z-index:50}.mobile-nav-item{align-items:center;background:#0000;border:none;color:hsl(var(--muted-foreground));cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:10px;font-weight:500;gap:3px;padding:10px 4px;transition:color .15s}.mobile-nav-item.active{color:hsl(var(--primary))}@media (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.theme-grid{grid-template-columns:repeat(3,1fr)}.month-layout{grid-template-columns:1fr}.month-sidebar{display:none}}@media (max-width:768px){.landing-actions{grid-template-columns:1fr}.landing-title{font-size:64px}.sidebar{bottom:0;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;z-index:40}.sidebar.mobile-open{transform:translateX(0)}.main-area{margin-left:0!important;padding-bottom:64px}.mobile-nav{display:flex}.page-content{padding:20px 16px}.stats-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.settings-layout{grid-template-columns:1fr}.jobs-table td:nth-child(4),.jobs-table td:nth-child(6),.jobs-table th:nth-child(4),.jobs-table th:nth-child(6){display:none}.theme-grid{grid-template-columns:repeat(2,1fr)}.week-grid{overflow-x:auto}.week-allday-row,.week-header-row,.week-time-row{min-width:600px}}@media (max-width:480px){.auth-card{padding:24px 20px}.stats-grid{grid-template-columns:1fr 1fr}.page-header,.toolbar{flex-direction:column}.toolbar{align-items:stretch}.search-box{width:100%}}.nav-item-admin{border-top:1px solid hsl(var(--border));margin-top:8px;padding-top:12px}.admin-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.admin-users-table-wrap{overflow-x:auto}.admin-users-table .admin-user-cell{align-items:center;display:flex;gap:10px}.admin-current-theme{align-items:center;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);display:flex;gap:16px;margin-bottom:20px;padding:12px 16px}.admin-sub-title{color:hsl(var(--foreground));font-size:14px;font-weight:700;margin-bottom:12px}.theme-card-custom{position:relative}.theme-card-custom .theme-card-inner{align-items:center;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:0;width:100%}.theme-delete-btn{align-items:center;background:#dc28281a;background:hsl(var(--destructive,0 72% 51%)/.1);border:none;border-radius:50%;color:#dc2828;color:hsl(var(--destructive,0 72% 51%));cursor:pointer;display:flex;height:24px;justify-content:center;opacity:0;position:absolute;right:4px;top:4px;transition:opacity .15s;width:24px}.theme-card-custom:hover .theme-delete-btn{opacity:1}.admin-theme-builder{display:flex;flex-direction:column;gap:16px;max-width:600px}.admin-theme-live-preview{align-items:center;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);display:flex;gap:16px;padding:12px 16px}.admin-color-input-row{align-items:center;display:flex;gap:8px}.admin-color-picker{border:1px solid hsl(var(--border));border-radius:var(--radius);cursor:pointer;height:36px;padding:2px;width:40px}.admin-checkbox-row{align-items:center;color:hsl(var(--foreground));cursor:pointer;display:flex;font-size:13px;gap:8px;padding:8px 0}.admin-checkbox-row input[type=checkbox]{accent-color:hsl(var(--primary));height:16px;width:16px}.inline-icon{display:inline;margin-right:4px;vertical-align:-3px}.alert-success{background:#10b77f1a;border:1px solid #10b77f33;border-radius:var(--radius);color:#10b77f;font-size:13px;font-weight:500;padding:10px 16px}.job-cards-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.job-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;transition:box-shadow .15s,border-color .15s}.job-card:hover{border-color:hsl(var(--primary)/.3);box-shadow:0 2px 12px hsl(var(--foreground)/.06)}.job-card-active{border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsl(var(--primary)/.12)}.job-card-top{border-left:4px solid;padding:14px 16px 10px}.job-card-title-row{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.job-card-name-btn{background:none;border:none;cursor:pointer;padding:0;text-align:left}.job-card-name{color:hsl(var(--foreground));font-size:15px;font-weight:700;line-height:1.3}.job-card-name-btn:hover .job-card-name{color:hsl(var(--primary))}.job-card-actions{display:flex;flex-shrink:0;gap:2px;opacity:.4;transition:opacity .15s}.job-card:hover .job-card-actions{opacity:1}.job-card-badges{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.job-card-details{display:flex;flex-direction:column;gap:5px;padding:0 16px 6px 20px}.job-card-field{align-items:flex-start;display:flex;font-size:12.5px;gap:6px;line-height:1.4}.job-card-field-icon{margin-top:2px}.job-card-field-icon,.job-card-field-label{color:hsl(var(--muted-foreground));flex-shrink:0}.job-card-field-label{align-items:center;display:flex;font-size:11px;font-weight:600;gap:3px;letter-spacing:.3px;min-width:52px;text-transform:uppercase}.job-card-field-value{color:hsl(var(--foreground));min-width:0}.job-card-field-truncate{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-card-link{color:hsl(var(--primary));text-decoration:none}.job-card-link:hover{text-decoration:underline}.job-card-team{border-top:1px solid hsl(var(--border));margin-top:6px;padding:8px 16px 12px 20px}.job-card-team-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.job-card-member-chip{align-items:center;background:hsl(var(--muted)/.5);border:1px solid hsl(var(--border));border-radius:99px;color:hsl(var(--foreground));cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:5px;padding:3px 10px 3px 3px;transition:background .15s,border-color .15s}.job-card-member-chip:hover{background:hsl(var(--primary)/.08);border-color:hsl(var(--primary)/.3);color:hsl(var(--primary))}.search-clear-btn{align-items:center;background:none;border:none;border-radius:50%;color:hsl(var(--muted-foreground));cursor:pointer;display:flex;justify-content:center;padding:4px;transition:background .15s}.search-clear-btn:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}@media (max-width:480px){.job-cards-grid{grid-template-columns:1fr}}.punchlist-toggle{align-items:center;background:hsl(var(--muted)/.3);border:none;border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;padding:9px 16px;transition:background .15s,color .15s;width:100%}.punchlist-toggle:hover{background:hsl(var(--muted)/.6);color:hsl(var(--foreground))}.punchlist-toggle-open{background:hsl(var(--primary)/.06);color:hsl(var(--primary))}.punchlist-toggle-count{background:hsl(var(--muted));border-radius:99px;color:hsl(var(--foreground));font-size:11px;margin-left:auto;padding:1px 7px}.punchlist-chevron{transition:transform .2s}.punchlist-chevron-open{transform:rotate(180deg)}.punchlist-dropdown{background:hsl(var(--background));border-top:1px solid hsl(var(--border));padding:12px}.punchlist-add-toggle{align-items:center;background:none;border:1px dashed hsl(var(--border));border-radius:var(--radius);color:hsl(var(--muted-foreground));cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:5px;justify-content:center;margin-bottom:10px;padding:8px 0;transition:background .15s,color .15s,border-color .15s;width:100%}.punchlist-add-toggle:hover{background:hsl(var(--primary)/.06);border-color:hsl(var(--primary)/.3);color:hsl(var(--primary))}.punchlist-add-form{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);display:flex;flex-direction:column;gap:8px;margin-bottom:10px;padding:12px}.punchlist-add-fields{display:flex;flex-wrap:wrap;gap:8px}.punchlist-add-field{flex:1 1;min-width:120px}.punchlist-add-field-full{flex-basis:100%}.punchlist-field-label{align-items:center;color:hsl(var(--muted-foreground));display:flex;font-size:11px;font-weight:600;gap:4px;letter-spacing:.3px;margin-bottom:4px;text-transform:uppercase}.punchlist-add-date{font-size:12px;height:30px}.punchlist-add-notes{font-size:12px;min-height:36px;resize:vertical}.punchlist-add-actions{align-items:center;display:flex;gap:8px}.punchlist-cancel-btn{background:none;border:none;color:hsl(var(--muted-foreground));cursor:pointer;font-size:12px;padding:4px 8px}.punchlist-cancel-btn:hover{color:hsl(var(--foreground))}.punchlist-add-input{font-size:12px;height:32px}.punchlist-progress{align-items:center;display:flex;gap:8px;margin-bottom:10px}.punchlist-progress-bar{background:hsl(var(--muted));border-radius:2px;flex:1 1;height:4px;overflow:hidden}.punchlist-progress-fill{background:hsl(var(--primary));border-radius:2px;height:100%;transition:width .3s}.punchlist-progress-label{color:hsl(var(--muted-foreground));font-size:11px;font-weight:600;white-space:nowrap}.punchlist-columns{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr 1fr}.punchlist-col{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);min-height:60px;overflow:hidden;transition:border-color .15s}.punchlist-col:hover{border-color:hsl(var(--primary)/.3)}.punchlist-col-header{align-items:center;background:hsl(var(--muted)/.3);border-bottom:1px solid hsl(var(--border));display:flex;gap:6px;padding:7px 10px}.punchlist-col-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.punchlist-col-title{color:hsl(var(--foreground));font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.punchlist-col-count{align-items:center;background:hsl(var(--muted));border-radius:50%;color:hsl(var(--muted-foreground));display:flex;font-size:10px;font-weight:700;height:18px;justify-content:center;margin-left:auto;width:18px}.punchlist-col-body{display:flex;flex-direction:column;gap:4px;min-height:40px;padding:6px}.punchlist-empty{color:hsl(var(--muted-foreground));font-size:11px;opacity:.5;padding:10px 0;text-align:center}.punchlist-task{background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);cursor:grab;display:flex;flex-direction:column;padding:5px 7px;transition:box-shadow .15s,opacity .15s}.punchlist-task:hover{box-shadow:0 1px 4px hsl(var(--foreground)/.06)}.punchlist-task-dragging{opacity:.4}.punchlist-task-expanded{border-color:hsl(var(--primary)/.3)}.punchlist-task-row{align-items:center;display:flex;gap:6px}.punchlist-advance-btn{align-items:center;background:none;border:none;cursor:pointer;display:flex;flex-shrink:0;padding:0;transition:transform .15s}.punchlist-advance-btn:hover{transform:scale(1.2)}.punchlist-task-title-btn{background:none;border:none;color:hsl(var(--foreground));cursor:pointer;flex:1 1;font-size:12px;min-width:0;overflow:hidden;padding:0;text-align:left;text-overflow:ellipsis;white-space:nowrap}.punchlist-task-title-btn:hover{color:hsl(var(--primary))}.punchlist-task-done{opacity:.55;text-decoration:line-through}.punchlist-task-details{border-top:1px solid hsl(var(--border));display:flex;flex-direction:column;gap:4px;margin-top:5px;padding:6px 0 2px 22px}.punchlist-detail-row{align-items:flex-start;color:hsl(var(--muted-foreground));display:flex;font-size:11px;gap:5px}.punchlist-detail-label{flex-shrink:0;font-weight:600}.punchlist-detail-value{color:hsl(var(--foreground));word-break:break-word}.punchlist-detail-notes{align-items:flex-start}.punchlist-overdue{color:#dc2828;font-weight:600}.punchlist-delete-btn{align-items:center;background:none;border:none;color:hsl(var(--muted-foreground));cursor:pointer;display:flex;flex-shrink:0;opacity:0;padding:2px;transition:opacity .15s,color .15s}.punchlist-task:hover .punchlist-delete-btn{opacity:1}.punchlist-delete-btn:hover{color:#dc2828}.dash-task-row{cursor:pointer}.dash-task-row:hover{background:hsl(var(--muted)/.5)}.dash-task-status{font-size:11px;font-weight:600;white-space:nowrap}@media (max-width:600px){.punchlist-columns{grid-template-columns:1fr}}
/*# sourceMappingURL=main.5b2d56e3.css.map*/