@import"https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap";@import"https://api.fontshare.com/v2/css?f[]=general-sans@400,500,600,700&f[]=satoshi@400,500,700&display=swap";body{font-family:Figtree,sans-serif;background-color:#f5f5f5;color:#2b303b;margin:0;padding:0}@media (min-width: 769px){html{overflow-y:scroll}}a{color:#478c2d;text-decoration:none;transition:color .2s ease,text-decoration .2s ease}a:hover{color:#3b7923;text-decoration:underline}a:visited{color:#478c2d}a:active{color:#3b7923}button{font-family:Figtree,sans-serif;cursor:pointer}.MuiIconButton-root{background:transparent!important}.MuiIconButton-root.mate-chat-fab{background:#478c2d!important}.MuiIconButton-root.mate-chat-fab:hover{background:#45a049!important;background-color:#45a049!important}.MuiIconButton-root:hover{background:#eaecf0!important;background-color:#eaecf0!important;color:inherit!important}.MuiIconButton-root:hover .MuiSvgIcon-root{color:inherit!important}.card,.panel,.quote-box,.app-card{background:#fff;border:1px solid #EAECF0;padding:20px;margin-bottom:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.tab,.app-tab{background:transparent;color:#717784;border-bottom:2px solid transparent;padding:12px 18px;font-weight:600;text-transform:uppercase;transition:.3s ease;border-radius:0;box-shadow:none;font-family:Figtree,sans-serif}.tab.active,.app-tab.active{border-bottom:2px solid #478C2D;color:#2b303b;background:transparent;box-shadow:none}h1,h2,h3{color:#2b303b;text-shadow:none;margin-bottom:10px;font-family:Figtree,sans-serif}.app-header{background:#fff;color:#2b303b;padding:20px;text-align:center;border-bottom:1px solid #EAECF0;font-family:Figtree,sans-serif}.app-header h1{font-weight:600;letter-spacing:2px;text-shadow:none}.app-tab-bar{display:flex;justify-content:center;gap:0;padding:0;background:#fff;border-bottom:1px solid #EAECF0;flex-wrap:wrap}@media (max-width: 768px){.app-header{padding:15px}.app-header h1{font-size:1.5rem;margin-bottom:.5rem}.app-header p{font-size:.9rem}.app-tab-bar{display:none}}@media (min-width: 769px){.app-tab-bar{display:flex!important}}@media (min-width: 769px) and (max-width: 1024px){.app-tab-bar{flex-wrap:wrap;justify-content:center}.app-tab-bar .app-tab{flex:0 0 auto;min-width:150px}}.app-content{padding:20px;min-height:calc(100vh - 200px)}input,textarea,select{background:#fff;border:1px solid #EAECF0;color:#2b303b;padding:10px;font-family:Figtree,sans-serif;width:100%;margin-bottom:10px;min-height:44px;box-sizing:border-box;font-size:14px;border-radius:8px}textarea{min-height:auto}input:focus,textarea:focus,select:focus{outline:none;border-color:#478c2d;box-shadow:none}input::placeholder,textarea::placeholder{color:#717784}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.pac-container{background:#fff!important;border:1px solid #EAECF0!important;border-radius:8px!important;box-shadow:0 4px 12px #0000001a!important;font-family:Figtree,sans-serif!important}.pac-item{background:#fff!important;color:#2b303b!important;border:none!important;padding:8px 12px!important;cursor:pointer!important;transition:background-color .2s ease-in-out!important}.pac-item:hover{background:#f5f7fa!important}.pac-item-selected{background:#478c2d!important;color:#fff!important}.pac-item-query{color:#2b303b!important;font-weight:600!important}.pac-matched{color:#478c2d!important;font-weight:600!important}gmpx-place-autocomplete{width:100%!important;font-family:Figtree,sans-serif!important}gmpx-place-autocomplete input{width:100%!important;padding:12px 16px!important;background:#fff!important;border:1px solid #EAECF0!important;border-radius:8px!important;color:#2b303b!important;font-size:14px!important;font-family:Figtree,sans-serif!important;transition:all .2s ease-in-out!important;box-sizing:border-box!important}gmpx-place-autocomplete input:focus{outline:none!important;border-color:#478c2d!important;box-shadow:none!important}gmpx-place-autocomplete input::placeholder{color:#717784!important}gmpx-place-autocomplete .pac-container{background:#fff!important;border:1px solid #EAECF0!important;border-radius:8px!important;box-shadow:0 4px 12px #0000001a!important;font-family:Figtree,sans-serif!important}gmpx-place-autocomplete .pac-item{background:#fff!important;color:#2b303b!important;border:none!important;padding:8px 12px!important;cursor:pointer!important;transition:background-color .2s ease-in-out!important}gmpx-place-autocomplete .pac-item:hover{background:#f5f7fa!important}gmpx-place-autocomplete .pac-item-selected{background:#478c2d!important;color:#fff!important}label{color:#2b303b;font-weight:600;margin-bottom:5px;display:block;font-size:14px}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border:1px solid #EAECF0;padding:30px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #00000026;border-radius:12px}.job-card{background:#fff;border:1px solid #EAECF0;padding:20px;margin-bottom:15px;cursor:pointer;transition:all .3s ease;border-radius:8px}.job-card:hover{border-color:#478c2d;box-shadow:0 4px 12px #0000001a}.job-card h3{margin:0 0 10px;color:#2b303b}.job-info{display:flex;justify-content:space-between;color:#717784;font-size:14px}.job-card.preview{opacity:.9;border-color:#eaecf0;box-shadow:0 4px 12px #00000014}.job-notes-content a{text-decoration:underline}@keyframes typingDot{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}@keyframes mateMessageInLeft{0%{opacity:0;transform:translate(-10px,-10px) scale(.96)}60%{opacity:1;transform:translate(2px,2px) scale(1.02)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes mateMessageInRight{0%{opacity:0;transform:translate(10px,-10px) scale(.96)}60%{opacity:1;transform:translate(-2px,2px) scale(1.02)}to{opacity:1;transform:translate(0) scale(1)}}.mate-message-bubble{animation-duration:.38s;animation-timing-function:cubic-bezier(.18,.89,.32,1.28);animation-fill-mode:both;transform-origin:bottom left}.mate-message-bubble--outgoing{transform-origin:bottom right}.mate-message-bubble--incoming{animation-name:mateMessageInLeft}.mate-message-bubble--outgoing{animation-name:mateMessageInRight}@keyframes mateMessageMetaIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mate-message-meta{animation-name:mateMessageMetaIn;animation-duration:.22s;animation-timing-function:ease-out;animation-fill-mode:both}.invoice-list{display:flex;flex-direction:column;gap:0px;width:100%;border:1px solid #eaecf0;padding:15px 20px;border-radius:4px}.invoice-list-header{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.invoice-list-title{color:#2b303b;font-size:18px;font-weight:600}.invoice-container{border:1px solid #e0e0e0;border-radius:4px;margin-bottom:12px;background-color:#fff;overflow:hidden;box-shadow:0 1px 2px #0000000d}.invoice-header-button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background-color:#f5f5f5;border:none;cursor:pointer;transition:background-color .2s ease;text-align:left;background:#f5f7fa}.invoice-header-button:hover{background:#f5f7fa}.invoice-header-left{display:flex;align-items:center;gap:8px}.invoice-header-right{display:flex;align-items:center;gap:12px}.invoice-label{color:#2b303b;font-size:14px;font-weight:600}.invoice-remove-separator{color:#cacfd8;font-size:14px;font-weight:600}.invoice-caret-icon{color:#2b303b;font-size:20px}.invoice-amount-label{color:#aaa;font-size:14px;margin-right:8px}.invoice-total-display{display:flex;align-items:center;gap:6px}.invoice-total-label{color:#2b303b;font-size:14px;font-weight:500}.invoice-total-value{color:#2b303b;font-size:16px;font-weight:600;min-width:60px}.line-items-section{padding:15px;display:flex;flex-direction:column;background-color:#fff}.line-items-label{color:#2b303b;font-size:14px;margin-bottom:12px;font-weight:600}.line-item-row-wrapper{margin-bottom:12px}.line-item-row{display:flex;gap:10px;align-items:center}.line-item-description-wrapper{flex:1;display:flex;flex-direction:column}.line-item-description{flex:1;padding:8px 12px;background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#2b303b;font-size:14px;margin-bottom:0;transition:all .2s ease-in-out}.line-item-description:focus{outline:none;border-color:#478c2d;box-shadow:0 0 0 2px #478c2d1a}.line-item-description.error{border-color:#f44;border-width:2px}.line-item-description.error:focus{border-color:#f44}.line-item-description::placeholder{color:#717784}.field-error-message{color:#ff6b6b;font-size:12px;margin-top:4px;margin-left:2px}.line-item-amount-wrapper{position:relative;display:flex;align-items:flex-start;width:160px;flex-shrink:0}.line-item-amount-prefix{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#2b303b;font-weight:500;pointer-events:none;font-size:14px;z-index:1}.line-item-amount{width:100%;padding:8px 12px 8px 28px;background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#2b303b;font-size:14px;text-align:right;margin-bottom:0;transition:all .2s ease-in-out}.line-item-amount:focus{outline:none;border-color:#478c2d;box-shadow:0 0 0 2px #478c2d1a}.line-item-amount::placeholder{color:#717784;text-align:right}.line-item-amount::-webkit-inner-spin-button,.line-item-amount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.line-item-amount{-moz-appearance:textfield}.line-item-remove-btn{color:#d02533;font-size:18px;font-weight:600;cursor:pointer}.line-item-trash-icon{font-size:18px;color:#f44}.line-item-remove-btn:hover:not(:disabled){background-color:#fff5f5;border-color:#f44}.line-item-remove-btn:hover:not(:disabled) .line-item-trash-icon{color:#f66}.line-item-remove-btn:disabled{opacity:.3;cursor:not-allowed}.line-item-remove-btn:disabled .line-item-trash-icon{color:#ccc}.line-item-add-btn{padding:0;border:none;background-color:transparent;color:#478c2d;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-top:8px;align-self:flex-end;text-decoration:none;text-decoration:underline}.line-item-add-btn:hover{color:#3b7923;text-decoration:underline}.line-item-add-btn:active{transform:scale(.98)}.invoice-row{display:flex;align-items:center;gap:10px;width:100%;padding-top:10px;padding-bottom:5px}.invoice-reference{flex:2;min-width:200px;height:32px;margin-bottom:0}.invoice-amount-wrapper{flex:1;min-width:120px;position:relative;display:flex;align-items:center;height:32px}.invoice-amount{width:100%;padding-right:30px;height:32px;margin-bottom:0}.invoice-amount-suffix{position:absolute;right:10px;color:#f0f0f0;font-weight:500;pointer-events:none;font-size:14px}.invoice-remove-link{padding:0;border:none;background-color:transparent;color:#d02533;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s;flex-shrink:0;text-transform:capitalize}.invoice-remove-link:hover{color:#f66;text-decoration:underline}.invoice-remove-link:active{color:#c00}.add-invoice-row{display:flex;justify-content:flex-end}.invoice-add-btn-full{padding:0;border:none;background-color:transparent;color:#478c2d;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;text-decoration:none}.invoice-add-btn-full:hover{color:#3b7923;text-decoration:underline}.invoice-add-btn-full:active{transform:scale(.98)}.invoice-amount::-webkit-inner-spin-button,.invoice-amount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.invoice-amount{-moz-appearance:textfield}@media (max-width: 768px){.invoice-container{padding:12px}.invoice-header{flex-direction:column;align-items:flex-start;gap:12px}.invoice-header-right{width:100%;justify-content:space-between}.invoice-amount-wrapper{flex:1}.line-item-row{flex-wrap:wrap;gap:8px}.line-item-description-wrapper{width:100%;min-width:100%}.line-item-description{width:100%}.line-item-amount-wrapper{flex:1;min-width:120px}.line-item-remove-btn{margin-top:0}.invoice-row{flex-wrap:wrap;gap:8px}.invoice-reference{min-width:100%;width:100%;flex:none}.invoice-remove-btn{margin-left:auto}}.contractor-form-buttons{display:flex;gap:10px;margin-top:20px}@media (max-width: 480px){.contractor-form-buttons{flex-direction:column-reverse;gap:12px}.contractor-form-buttons button{width:100%}}.notification-header-responsive{padding:10px 12px!important}.notification-label-responsive{font-size:13px!important}.notification-content-responsive{padding:12px!important}.notification-options-responsive{gap:12px!important}.notification-description-responsive{font-size:11px!important}@media (max-width: 768px){.notification-header-responsive{padding:8px 10px!important}.notification-label-responsive{font-size:12px!important;letter-spacing:.5px!important}.notification-content-responsive{padding:10px!important}.notification-options-responsive{gap:0px!important;flex-direction:column}.notification-description-responsive{font-size:11px!important;margin-top:6px!important}}@media (max-width: 480px){.notification-header-responsive{padding:8px 10px!important}.notification-label-responsive{font-size:11px!important;letter-spacing:.5px!important}.notification-content-responsive{padding:8px!important}.notification-options-responsive{gap:8px!important;flex-direction:column}.notification-description-responsive{font-size:10px!important;margin-top:4px!important}}.job-cards-page,.job-cards-page *{--global-cyan-override: transparent}.job-cards-page button{background:none;border:none;box-shadow:none;text-shadow:none;text-transform:none;letter-spacing:normal;border-radius:0;padding:0}.job-cards-page button:hover{box-shadow:none!important;transform:none}.job-cards-page input:focus,.job-cards-page textarea:focus,.job-cards-page select:focus{outline:none!important}.job-cards-page h1,.job-cards-page h2,.job-cards-page h3{text-shadow:none;text-transform:none}.job-cards-page .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:var(--tf-green)!important;box-shadow:none!important}.job-cards-page .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:#3d4f5940!important}.job-cards-page{--tf-slate-blue: #3d4f59;--tf-slate-blue-light: #4a5f6b;--tf-slate-blue-dark: #2e3d45;--tf-green: #60bb46;--tf-green-light: #7acc5f;--tf-green-dark: #4ea038;--tf-green-pale: #e8f5e4;--tf-cta: #e86a33;--tf-cta-dark: #d45a25;--tf-charcoal: #1a1f22;--tf-charcoal-light: #252b2f;--tf-slate: #3d4f59;--tf-stone: #5c6970;--tf-mist: #8b9499;--tf-cloud: #c4cbcf;--tf-frost: #e8ebed;--tf-snow: #f5f7f8;--tf-white: #ffffff;--tf-text-primary: #1a1f22;--tf-text-secondary: #3d4f59;--tf-text-muted: #5c6970;--font-display: "General Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Satoshi", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(61, 79, 89, .08);--shadow-md: 0 4px 12px rgba(61, 79, 89, .12);--shadow-lg: 0 8px 24px rgba(61, 79, 89, .16);--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-normal: .3s}.job-cards-header{padding:32px 32px 24px;background:linear-gradient(180deg,var(--tf-snow) 0%,var(--tf-white) 100%);border-bottom:1px solid rgba(61,79,89,.08);position:relative}.job-cards-header:before{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:200px;height:1px;background:linear-gradient(90deg,transparent,var(--tf-green),transparent);opacity:.5}.job-cards-header-title{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--tf-charcoal);letter-spacing:.01em;margin-bottom:8px}.job-cards-header-subtitle{font-family:var(--font-body);font-size:1rem;color:var(--tf-text-muted);line-height:1.6}.performance-tabs-container{background:#f5f5f5;border:none;padding:0 4px}.app-tabs-container .app-tab{font-family:var(--font-body);background:transparent;border:none;padding:12px 16px;color:#666;font-weight:500;font-size:.9375rem;text-transform:none;letter-spacing:.01em;box-shadow:none;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative;border-radius:6px;border-bottom:2px solid transparent}.app-tabs-container .app-tab:hover{color:var(--tf-slate-blue);background:#3d4f590a;box-shadow:none;border-color:transparent}.app-tabs-container .app-tab.active:hover{color:var(--tf-green-dark);background:var(--tf-white)}.app-tabs-container .app-tab .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;font-size:.75rem;font-weight:600;background:#3d4f591a;color:var(--tf-text-muted);border-radius:var(--radius-full);margin-left:4px}.job-cards-table td{font-family:var(--font-body);font-size:.875rem;color:var(--tf-text-secondary);padding:14px 12px;border-bottom:1px solid rgba(61,79,89,.06);vertical-align:middle}.job-cards-table td:first-child{padding-left:20px}.job-cards-table td:last-child{padding-right:20px;text-align:center}.job-cards-table td.location-cell{font-weight:500;color:var(--tf-text-primary)}.job-cards-table td.client-cell{color:var(--tf-text-primary)}.job-status-chip{display:inline-flex;align-items:center;padding:6px 12px;font-family:var(--font-body);font-size:.75rem;font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.job-status-chip.status-progress{background:var(--tf-green-pale);color:var(--tf-green-dark)}.job-status-chip.status-today{background:#fff3e0;color:#e65100}.job-status-chip.status-upcoming{background:#fff8e1;color:#f57c00}.job-status-chip.status-overdue{background:#ffebee;color:#c62828}.job-status-chip.status-neutral{background:var(--tf-frost);color:var(--tf-text-muted)}.invoice-link{font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--tf-green);text-decoration:none;transition:color var(--duration-fast);margin-right:8px}.invoice-link:hover{color:var(--tf-green-dark);text-decoration:underline}.job-action-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--tf-text-muted);cursor:pointer;transition:all var(--duration-fast)}.job-action-button:hover{background:var(--tf-frost);color:var(--tf-text-secondary)}.job-action-button:active{background:var(--tf-cloud)}.job-expand-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--tf-text-muted);cursor:pointer;transition:all var(--duration-fast)}.job-expand-button:hover{background:#60bb461a;color:var(--tf-green)}.job-expanded-content{background:linear-gradient(180deg,var(--tf-snow) 0%,var(--tf-frost) 100%);padding:24px 32px;border-bottom:1px solid rgba(61,79,89,.1)}.job-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:24px}.job-detail-section{background:var(--tf-white);padding:20px;border-radius:var(--radius-lg);border:1px solid rgba(61,79,89,.08)}.job-detail-label{font-family:var(--font-body);font-size:.75rem;font-weight:600;color:var(--tf-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.job-detail-value{font-family:var(--font-body);font-size:.9375rem;color:var(--tf-text-primary);line-height:1.6}.job-files-grid{display:flex;flex-wrap:wrap;gap:12px}.job-file-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--tf-white);border:1px solid rgba(61,79,89,.1);border-radius:var(--radius-lg);text-decoration:none;min-width:200px;max-width:280px;transition:all var(--duration-normal) var(--ease-out)}.job-file-card:hover{border-color:var(--tf-green);box-shadow:var(--shadow-md);transform:translateY(-2px)}.job-file-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--tf-frost);border-radius:var(--radius-md);color:var(--tf-text-muted);flex-shrink:0}.job-file-info{flex:1;min-width:0}.job-file-name{font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--tf-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-file-size{font-family:var(--font-body);font-size:.75rem;color:var(--tf-text-muted);margin-top:2px}.job-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center}.job-empty-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:var(--tf-frost);border-radius:var(--radius-2xl);color:var(--tf-mist);margin-bottom:24px}.job-empty-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--tf-text-secondary);margin-bottom:8px}.job-empty-description{font-family:var(--font-body);font-size:.9375rem;color:var(--tf-text-muted);margin-bottom:24px;max-width:400px}.job-empty-cta{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;font-family:var(--font-body);font-size:.9375rem;font-weight:600;color:var(--tf-white);background:var(--tf-cta);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);box-shadow:0 4px 20px #e86a3359}.job-empty-cta:hover{background:var(--tf-cta-dark);transform:translateY(-2px);box-shadow:0 8px 30px #e86a3366}.job-empty-cta svg{transition:transform var(--duration-normal) var(--ease-out)}.job-empty-cta:hover svg{transform:translate(4px)}.job-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center}.job-loading-spinner{width:48px;height:48px;border:3px solid var(--tf-frost);border-top-color:var(--tf-green);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.job-loading-text{font-family:var(--font-body);font-size:.9375rem;color:var(--tf-text-muted)}.job-error-state{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#ffebee;border:1px solid #ffcdd2;border-radius:var(--radius-lg);margin-bottom:24px}.job-error-icon{color:#c62828;flex-shrink:0}.job-error-message{font-family:var(--font-body);font-size:.875rem;color:#c62828}.job-action-menu{background:var(--tf-white);border:1px solid rgba(61,79,89,.1);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:200px;overflow:hidden}.job-action-menu-item{display:flex;align-items:center;gap:12px;padding:12px 16px;font-family:var(--font-body);font-size:.875rem;color:var(--tf-text-primary);background:transparent;border:none;width:100%;text-align:left;cursor:pointer;transition:background-color var(--duration-fast)}.job-action-menu-item:hover{background:var(--tf-frost)}.job-action-menu-item.destructive{color:#c62828;border-top:1px solid rgba(61,79,89,.08);margin-top:8px;padding-top:16px}.job-action-menu-item.destructive:hover{background:#ffebee}.job-action-menu-item svg{width:18px;height:18px;flex-shrink:0}.job-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:32px;padding:16px 0}.job-pagination-button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--tf-text-secondary);background:var(--tf-white);border:1px solid rgba(61,79,89,.15);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast)}.job-pagination-button:hover{border-color:var(--tf-green);color:var(--tf-green)}.job-pagination-button.active{background:var(--tf-green);border-color:var(--tf-green);color:var(--tf-white)}.job-pagination-button:disabled{opacity:.5;cursor:not-allowed}.address-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--tf-white);border:1px solid rgba(61,79,89,.15);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);max-height:300px;overflow-y:auto;z-index:1000;box-shadow:var(--shadow-md)}.address-dropdown-item{padding:12px 16px;font-family:var(--font-body);font-size:.875rem;color:var(--tf-text-primary);cursor:pointer;border-bottom:1px solid rgba(61,79,89,.06);transition:background-color var(--duration-fast)}.address-dropdown-item:last-child{border-bottom:none}.address-dropdown-item:hover{background:var(--tf-frost)}.mobile-tab-dropdown-container{position:relative;margin:0;padding:0;background:var(--tf-white);border-bottom:1px solid rgba(61,79,89,.1)}.mobile-tab-dropdown-trigger{display:flex;align-items:center;gap:12px;width:100%;padding:16px 20px;background:var(--tf-white);border:none;border-radius:0;cursor:pointer;transition:all var(--duration-normal) var(--ease-out);font-family:var(--font-body)}.mobile-tab-dropdown-trigger:hover,.mobile-tab-dropdown-trigger.open{background:var(--tf-snow)}.mobile-tab-dropdown-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,var(--tf-slate-blue) 0%,var(--tf-slate-blue-dark) 100%);border-radius:var(--radius-md);color:var(--tf-white);flex-shrink:0}.mobile-tab-dropdown-icon svg,.mobile-tab-dropdown-icon .MuiSvgIcon-root{font-size:20px!important;color:var(--tf-white)!important}.mobile-tab-dropdown-label{flex:1;text-align:left;font-size:1.0625rem;font-weight:600;color:var(--tf-text-primary);letter-spacing:-.01em}.mobile-tab-dropdown-chevron{color:var(--tf-mist);font-size:24px!important;transition:transform var(--duration-normal) var(--ease-out)}.mobile-tab-dropdown-chevron.rotated{transform:rotate(180deg)}.mobile-tab-dropdown-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#1a1f2280;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:999;animation:fadeIn .2s var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-tab-dropdown-menu{position:absolute;top:100%;left:0;right:0;background:var(--tf-snow);border:none;border-radius:0;box-shadow:0 12px 32px #3d4f5933;z-index:1000;overflow:hidden;animation:dropdownSlide .25s var(--ease-out)}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mobile-tab-dropdown-item{display:flex;align-items:center;gap:14px;width:100%;padding:20px;background:var(--tf-white);border:none;border-bottom:1px solid rgba(61,79,89,.08);cursor:pointer;transition:all var(--duration-fast);font-family:var(--font-body);margin:4px 0}.mobile-tab-dropdown-item:last-child{border-bottom:none;margin-bottom:16px;padding-bottom:22px}.mobile-tab-dropdown-item:hover{background:var(--tf-white)}.mobile-tab-dropdown-item:active{background:var(--tf-frost);transform:scale(.99)}.mobile-tab-dropdown-item.active{background:var(--tf-white);border-left:4px solid var(--tf-green);padding-left:10px;padding-top:10px;padding-bottom:10px}.mobile-tab-dropdown-item.active:hover{background:var(--tf-white)}.mobile-tab-dropdown-item-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--tf-frost);border-radius:var(--radius-lg);color:var(--tf-text-muted);flex-shrink:0;transition:all var(--duration-fast)}.mobile-tab-dropdown-item-icon svg,.mobile-tab-dropdown-item-icon .MuiSvgIcon-root{font-size:20px!important;color:inherit!important}.mobile-tab-dropdown-item.active .mobile-tab-dropdown-item-icon{background:linear-gradient(135deg,var(--tf-green) 0%,var(--tf-green-dark) 100%);color:var(--tf-white);box-shadow:0 4px 12px #60bb464d}.mobile-tab-dropdown-item-label{flex:1;text-align:left;font-size:1rem;font-weight:500;color:var(--tf-text-secondary);transition:color var(--duration-fast)}.mobile-tab-dropdown-item.active .mobile-tab-dropdown-item-label{font-weight:600;color:var(--tf-text-primary)}.mobile-tab-dropdown-item-check{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--tf-green-pale);border-radius:var(--radius-full);color:var(--tf-green)}.mobile-tab-dropdown-item-check svg,.mobile-tab-dropdown-item-check .MuiSvgIcon-root{font-size:16px!important}@keyframes cardSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes expandContent{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}@media (max-width: 1024px){.job-cards-table th:nth-child(5),.job-cards-table td:nth-child(5),.job-cards-table th:nth-child(6),.job-cards-table td:nth-child(6),.job-cards-table th:nth-child(7),.job-cards-table td:nth-child(7),.job-cards-table th:nth-child(8),.job-cards-table td:nth-child(8){display:none}}@media (max-width: 768px){.job-cards-header{padding:20px 16px 16px;background:linear-gradient(135deg,var(--tf-snow) 0%,var(--tf-white) 100%)}.job-cards-header:before{display:none}.job-cards-header-title{font-size:1.625rem;letter-spacing:-.01em}.job-cards-header-subtitle{font-size:.875rem;opacity:.85}.app-tabs-container{display:none}.job-cards-content{padding:16px;background:var(--tf-snow);min-height:calc(100vh - 180px)}.job-cards-content>.MuiBox-root:first-child{margin-bottom:16px}.job-cards-page .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#3d4f5940!important;box-shadow:none!important}.job-cards-search:focus{border-color:#3d4f5940;box-shadow:none}.mobile-create-job-button{width:100%!important;margin-bottom:16px!important;padding:14px 24px!important;font-family:var(--font-body)!important;font-size:.9375rem!important;font-weight:600!important;color:var(--tf-white)!important;background:#478c2d!important;border:none!important;border-radius:var(--radius-full)!important;box-shadow:0 4px 20px #478c2d59!important;text-transform:none!important;letter-spacing:normal!important}.mobile-create-job-button:hover{background:#3b7923!important;box-shadow:0 6px 24px #478c2d66!important}.mobile-create-job-button:active{transform:scale(.98)}.job-cards-table-container{background:transparent;border:none;box-shadow:none;border-radius:0;overflow:visible}.job-cards-table-container table{display:block}.job-cards-table-container thead{display:none!important}.job-cards-table-container tbody{display:flex;flex-direction:column;gap:12px}.job-cards-table-container tbody>tr{display:block!important;background:var(--tf-white);border-radius:var(--radius-xl);box-shadow:0 2px 8px #3d4f5914,0 1px 2px #3d4f590a;border:1px solid rgba(61,79,89,.06);overflow:hidden;transition:all var(--duration-normal) var(--ease-out);animation:cardSlideUp .4s var(--ease-out) backwards;position:relative}.job-cards-table-container tbody>tr:nth-child(1){animation-delay:.02s}.job-cards-table-container tbody>tr:nth-child(2){animation-delay:.04s}.job-cards-table-container tbody>tr:nth-child(3){animation-delay:.06s}.job-cards-table-container tbody>tr:nth-child(4){animation-delay:.08s}.job-cards-table-container tbody>tr:nth-child(5){animation-delay:.1s}.job-cards-table-container tbody>tr:nth-child(6){animation-delay:.12s}.job-cards-table-container tbody>tr:nth-child(7){animation-delay:.14s}.job-cards-table-container tbody>tr:nth-child(8){animation-delay:.16s}.job-cards-table-container tbody>tr:nth-child(9){animation-delay:.18s}.job-cards-table-container tbody>tr:nth-child(10){animation-delay:.2s}.job-cards-table-container tbody>tr:active{transform:scale(.98)}.job-cards-table-container tbody>tr[style*=E8F5E4]{border-left:4px solid var(--tf-green);box-shadow:0 4px 16px #60bb4633,0 2px 4px #60bb461a}.job-cards-table-container tbody>tr>td{display:block!important;padding:0!important;border:none!important;width:100%!important;text-align:left!important}.job-cards-table-container tbody>tr>td:first-child{display:none!important}.job-cards-table-container tbody>tr>td:last-child{position:absolute;top:14px;right:12px;width:auto!important;z-index:10}.job-cards-table-container tbody>tr>td:nth-child(2){padding:16px 80px 4px 16px!important;font-family:var(--font-display)!important;font-size:1rem!important;font-weight:600!important;color:var(--tf-text-primary)!important;line-height:1.3}.job-cards-table-container tbody>tr>td:nth-child(3){padding:0 16px 12px!important;font-size:.8125rem!important;color:var(--tf-text-muted)!important;font-weight:500!important}.job-cards-table-container tbody>tr>td:nth-child(4){display:flex!important;justify-content:space-between;align-items:center;padding:10px 16px!important;background:var(--tf-snow);border-top:1px solid rgba(61,79,89,.06)!important;font-size:.8125rem!important;color:var(--tf-text-secondary)!important}.job-cards-table-container tbody>tr>td:nth-child(4):before{content:"Dates";font-size:.6875rem;font-weight:600;color:var(--tf-mist);text-transform:uppercase;letter-spacing:.08em}.job-cards-table-container tbody>tr>td:nth-child(5){display:none!important}.job-cards-table-container tbody>tr>td:nth-child(6){display:none!important}.job-cards-table-container tbody>tr>td:nth-child(7){display:none!important}.job-cards-table-container tbody>tr>td:nth-child(8){display:none!important}.job-cards-table-container tbody>tr>td:nth-child(9){display:flex!important;justify-content:space-between;align-items:center;padding:12px 16px!important;background:linear-gradient(135deg,var(--tf-slate-blue) 0%,var(--tf-slate-blue-dark) 100%);border-top:none!important;position:relative}.job-cards-table-container tbody>tr>td:nth-child(9):before{content:"Starting in";font-size:.6875rem;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.job-cards-table-container tbody>tr>td:first-child .job-expand-button{display:none}.job-cards-table-container tbody>tr>td:nth-child(9) .MuiChip-root,.job-cards-table-container tbody>tr>td:nth-child(9) .job-status-chip{font-size:.75rem!important;height:26px!important;padding:0 10px!important;font-weight:600!important;border-radius:var(--radius-full)!important}.job-cards-table-container tbody>tr>td:nth-child(9) .status-progress{background:#60bb46e6!important;color:var(--tf-white)!important}.job-cards-table-container tbody>tr>td:nth-child(9) .status-today{background:#ff9800e6!important;color:var(--tf-white)!important;animation:statusPulse 2s ease-in-out infinite}.job-cards-table-container tbody>tr>td:nth-child(9) .status-upcoming{background:#ffc107e6!important;color:var(--tf-charcoal)!important}.job-cards-table-container tbody>tr>td:nth-child(9) .status-overdue{background:#f44336e6!important;color:var(--tf-white)!important}.job-cards-table-container tbody>tr>td:nth-child(9) .status-neutral{background:#fff3!important;color:var(--tf-white)!important}.mobile-status-expand-button{min-width:32px!important;min-height:32px!important;padding:6px!important;background:#ffffff26!important;border-radius:8px!important;color:#fff!important;margin-left:12px}.mobile-status-expand-button:hover{background:#ffffff40!important}.mobile-status-expand-button:active{background:#ffffff59!important;transform:scale(.95)}.job-cards-table-container .job-expand-button{display:none!important}.job-cards-table-container .job-action-button{width:28px;height:28px}.job-cards-table-container tbody>tr+tr:has(.MuiCollapse-root){margin-top:-12px;background:transparent!important;border:none!important;box-shadow:none!important;animation:none!important}.job-cards-table-container tbody>tr+tr>td{padding:0!important}.job-expanded-content{margin:0 0 12px;padding:16px;background:var(--tf-white);border-radius:0 0 var(--radius-xl) var(--radius-xl);border:1px solid rgba(61,79,89,.06);border-top:none;box-shadow:0 4px 12px #3d4f5914}.job-details-grid{grid-template-columns:1fr;gap:12px;margin-bottom:16px}.job-detail-section{padding:14px;border-radius:var(--radius-lg);background:var(--tf-snow);border:1px solid rgba(61,79,89,.04)}.job-detail-label{font-size:.6875rem;margin-bottom:6px}.job-detail-value{font-size:.875rem;line-height:1.5}.job-files-grid{flex-direction:column;gap:8px}.job-file-card{max-width:100%;padding:10px 14px;border-radius:var(--radius-lg)}.job-file-icon{width:36px;height:36px;border-radius:var(--radius-md)}.job-file-name{font-size:.8125rem}.job-file-size{font-size:.6875rem}.job-empty-state{padding:48px 20px;background:var(--tf-white);border-radius:var(--radius-xl);box-shadow:0 2px 8px #3d4f5914}.job-empty-icon{width:72px;height:72px;margin-bottom:20px;border-radius:var(--radius-2xl);background:linear-gradient(135deg,var(--tf-frost) 0%,var(--tf-cloud) 100%)}.job-empty-icon svg,.job-empty-icon .MuiSvgIcon-root{font-size:32px!important;color:var(--tf-mist)!important}.job-empty-title{font-size:1.125rem;margin-bottom:6px}.job-empty-description{font-size:.875rem;margin-bottom:20px;max-width:280px}.job-empty-cta{width:100%;max-width:280px;justify-content:center;padding:14px 24px;font-size:.9375rem}.job-loading-state{padding:48px 20px;background:var(--tf-white);border-radius:var(--radius-xl);box-shadow:0 2px 8px #3d4f5914}.job-loading-state .MuiCircularProgress-root{width:40px!important;height:40px!important}.job-loading-text{font-size:.875rem;margin-top:12px}.job-pagination{margin-top:20px;padding:12px 0}.job-pagination .MuiPaginationItem-root{min-width:36px;height:36px;font-size:.8125rem;border-radius:var(--radius-md)}.job-error-state{padding:14px 16px;border-radius:var(--radius-lg);margin-bottom:16px}.job-error-message{font-size:.8125rem}.address-dropdown{max-height:240px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.address-dropdown-item{padding:14px 16px;font-size:.875rem}}@media (max-width: 480px){.job-cards-header{padding:16px 12px 12px}.job-cards-header-title{font-size:1.375rem}.job-cards-header-subtitle{font-size:.8125rem}.mobile-tab-dropdown-container{padding:10px 12px}.mobile-tab-dropdown-trigger{padding:12px 14px}.mobile-tab-dropdown-icon{width:32px;height:32px}.mobile-tab-dropdown-icon svg,.mobile-tab-dropdown-icon .MuiSvgIcon-root{font-size:16px!important}.mobile-tab-dropdown-label{font-size:.9375rem}.mobile-tab-dropdown-menu{left:12px;right:12px;border-radius:var(--radius-lg)}.mobile-tab-dropdown-item{padding:18px 16px;gap:12px;margin:3px 0}.mobile-tab-dropdown-item:first-child{margin-top:12px}.mobile-tab-dropdown-item:last-child{margin-bottom:12px;padding-bottom:20px}.mobile-tab-dropdown-item-icon{width:36px;height:36px}.mobile-tab-dropdown-item-label{font-size:.875rem}.job-cards-content{padding:12px}.job-cards-table-container tbody>tr{border-radius:var(--radius-lg)}.job-cards-table-container tbody>tr>td:nth-child(2){padding:14px 72px 4px 14px!important;font-size:.9375rem!important}.job-cards-table-container tbody>tr>td:nth-child(3){padding:0 14px 10px!important;font-size:.75rem!important}.job-cards-table-container tbody>tr>td:nth-child(4),.job-cards-table-container tbody>tr>td:nth-child(7),.job-cards-table-container tbody>tr>td:nth-child(8){padding:8px 14px!important;font-size:.75rem!important}.job-cards-table-container tbody>tr>td:nth-child(4):before,.job-cards-table-container tbody>tr>td:nth-child(7):before,.job-cards-table-container tbody>tr>td:nth-child(8):before,.job-cards-table-container tbody>tr>td:nth-child(9):before{font-size:.625rem}.job-cards-table-container tbody>tr>td:nth-child(9){padding:10px 14px!important}.job-cards-table-container tbody>tr>td:first-child{top:14px;right:46px}.job-cards-table-container tbody>tr>td:last-child{top:14px;right:10px}.job-cards-table-container .job-expand-button,.job-cards-table-container .job-action-button{width:26px;height:26px}.job-cards-table-container .job-expand-button svg,.job-cards-table-container .job-action-button svg{font-size:18px}.job-expanded-content{padding:12px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.job-detail-section{padding:12px}.job-file-card{padding:8px 12px}.job-file-icon{width:32px;height:32px}.job-empty-state{padding:40px 16px;border-radius:var(--radius-lg)}.job-empty-icon{width:64px;height:64px}.job-empty-title{font-size:1rem}.job-empty-description{font-size:.8125rem}.job-empty-cta{padding:12px 20px;font-size:.875rem}.job-pagination .MuiPaginationItem-root{min-width:32px;height:32px;font-size:.75rem}}.address-search-input::placeholder{color:var(--tf-mist);opacity:1}.address-search-input::-webkit-input-placeholder{color:var(--tf-mist)}.address-search-input::-moz-placeholder{color:var(--tf-mist);opacity:1}.address-search-input:-ms-input-placeholder{color:var(--tf-mist)}.job-cards-page.job-cards-mobile .job-cards-table-container{background:transparent;border:none;box-shadow:none}@media (pointer: coarse){.app-tabs-container .app-tab{min-height:44px}.job-action-button,.job-expand-button,.job-pagination .MuiPaginationItem-root{min-width:44px;min-height:44px}}@media (max-width: 768px) and (orientation: landscape){.app-tabs-container{padding:8px 12px}.app-tabs-container .app-tab{padding:8px 14px}.job-cards-content{min-height:calc(100vh - 140px)}.job-cards-table-container tbody>tr>td:nth-child(9){padding:10px 14px!important}}@supports (padding: max(0px)){.job-cards-page.job-cards-mobile .job-cards-header,.job-cards-page.job-cards-mobile .app-tabs-container{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.job-cards-page.job-cards-mobile .job-cards-content{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(16px,env(safe-area-inset-bottom))}}@media (max-width: 768px){.MuiTableContainer-root{-webkit-overflow-scrolling:touch}}@media (max-width: 768px){.MuiTable-root{min-width:600px}}.contractors-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px}.contractors-header h1{margin:0;white-space:nowrap}.contractors-header-button{background:linear-gradient(135deg,#00e6e6,#00b3b3);color:#1a1a1a;border:1px solid #00e6e6;padding:12px 24px;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:1px;font-family:Rajdhani,sans-serif;cursor:pointer;transition:all .2s ease-in-out;box-shadow:0 4px 12px #00e6e64d;white-space:nowrap;flex-shrink:0}.contractors-header-button:hover{background:linear-gradient(135deg,#0ff,#0cc);box-shadow:0 6px 20px #00e6e666;transform:translateY(-1px)}@media (max-width: 480px){.contractors-header{flex-wrap:wrap}.contractors-header h1{flex:1 1 100%;margin-bottom:12px}.contractors-header-button{width:100%;text-align:center}}.contractors-table{width:100%;border-collapse:collapse;border:1px solid #3a3a3a;table-layout:auto}@media (min-width: 769px){.contractors-table{table-layout:fixed}}.contractors-table th,.contractors-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #3a3a3a;border-right:1px solid #3a3a3a;overflow:hidden;text-overflow:ellipsis}.contractors-table th{font-size:.75rem;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.contractors-table td{color:#d1d5db;white-space:nowrap}@media (min-width: 769px){.contractors-table th:nth-child(1),.contractors-table td:nth-child(1){width:20%}.contractors-table th:nth-child(2),.contractors-table td:nth-child(2){width:12%}.contractors-table th:nth-child(3),.contractors-table td:nth-child(3){width:23%}.contractors-table th:nth-child(4),.contractors-table td:nth-child(4){width:18%}.contractors-table th:nth-child(5),.contractors-table td:nth-child(5){width:12%}.contractors-table th:nth-child(6),.contractors-table td:nth-child(6){width:15%}.contractors-table .actions-cell{text-align:center;padding:8px 16px}}.td-label{display:none}@media (max-width: 768px){.contractors-table{display:block;width:100%;min-width:unset}.contractors-table thead{display:none}.contractors-table tbody{display:block;width:100%}.contractors-table tr{display:block;margin-bottom:1rem;border-bottom:1px solid #3a3a3a;padding:1rem 0}.contractors-table td{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-right:none;border-bottom:none;text-align:right;white-space:normal;width:100%!important}.td-label{display:block;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.contractors-table .actions-cell{justify-content:flex-end;padding:.5rem 1rem;width:auto}.empty-message{text-align:center!important;justify-content:center!important}}@media (max-width: 768px){.contractors-mobile-container{display:flex;flex-direction:column;gap:16px;padding:0}.contractor-card{background:#fff;border:1px solid #e0e0e0;border-radius:4px;overflow:hidden;box-shadow:none}.contractor-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f7fa;border-bottom:1px solid #e0e0e0}.contractor-card-name{font-size:16px;font-weight:700;color:#2b303b;margin:0}.contractor-card-actions{display:flex;align-items:center;gap:4px}.contractor-card-body{padding:16px;background:#fff}.contractor-card-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.contractor-card-row:last-child{margin-bottom:0}.contractor-card-left{flex:1;display:flex;flex-direction:column}.contractor-card-right{flex:1;display:flex;flex-direction:column;align-items:flex-end;text-align:right}.contractor-card-label{font-size:14px;color:#2b303b;margin:0;text-transform:capitalize}.contractor-card-value,.contractor-card-email,.contractor-card-phone{font-size:14px;color:#2b303b;margin:0}.timesheets-mobile-container{display:flex;flex-direction:column;gap:16px;padding:0}.timesheet-card{background:#fff;border:1px solid #e0e0e0;border-radius:4px;overflow:hidden;box-shadow:none}.timesheet-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f7fa;border-bottom:1px solid #e0e0e0}.timesheet-card-name{font-size:16px;font-weight:700;color:#2b303b;margin:0}.timesheet-card-actions{display:flex;align-items:center;gap:4px}.timesheet-card-body{padding:16px;background:#fff}.timesheet-card-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.timesheet-card-row:last-child{margin-bottom:0}.timesheet-card-left{flex:1;display:flex;flex-direction:column}.timesheet-card-right{flex:1;display:flex;flex-direction:column;align-items:flex-end;text-align:right}.timesheet-card-job,.timesheet-card-date,.timesheet-card-hours{font-size:14px;color:#717784;margin:0}.timesheet-card-notes{font-size:14px;color:#717784;margin:0;word-break:break-word;text-align:right}}.report-card{transition:box-shadow .2s ease}.report-card:hover{box-shadow:0 2px 8px #0000001a}.report-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f7fa;border-bottom:1px solid #e0e0e0}.report-card-address{font-size:16px;font-weight:700;color:#2b303b;margin:0}.report-card-body{padding:16px;background:#fff}@media (max-width: 1024px){.report-card{margin-bottom:0}}@media (max-width: 768px){.report-card-header,.report-card-body{padding:12px}}@media print{@page{size:landscape;margin:.5in}body{background-color:#fff!important;margin:0!important;padding:0!important}*{box-sizing:border-box!important}.MuiBox-root{max-width:100%!important;overflow:visible!important}.app-header,.app-tab-bar,footer{display:none!important}.MuiButton-root{display:none!important}.MuiPaper-root{box-shadow:none!important;border:1px solid #000!important;background-color:#fff!important}.MuiTypography-root{color:#000!important}.MuiTableContainer-root{border:1px solid #000!important;box-shadow:none!important}.MuiTable-root{border-collapse:collapse;width:100%}.MuiTableHead-root{background-color:#f0f0f0!important}.MuiTableCell-head{color:#000!important;background-color:#f0f0f0!important;font-weight:600!important;border:1px solid #000!important;font-size:9pt!important;padding:6px 8px!important}.MuiTableCell-body{color:#000!important;background-color:#fff!important;border:1px solid #ccc!important;font-size:9pt!important;padding:6px 8px!important}.MuiTableRow-root{page-break-inside:avoid}.MuiChip-root{border:1px solid #000!important;background-color:#fff!important;color:#000!important;font-size:8pt!important}.report-card{page-break-inside:avoid;border:1px solid #000!important;background-color:#fff!important;margin-bottom:10px!important}}.job-analytics-card{transition:box-shadow .2s ease}.job-analytics-card:hover{box-shadow:0 2px 8px #0000001a}.job-analytics-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f7fa;border-bottom:1px solid #e0e0e0}.job-analytics-card-name{font-size:16px;font-weight:700;color:#4caf50;margin:0}.job-analytics-card-body{padding:16px;background:#fff}.client-analytics-card{transition:box-shadow .2s ease}.client-analytics-card:hover{box-shadow:0 2px 8px #0000001a}.client-analytics-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f7fa;border-bottom:1px solid #e0e0e0}.client-analytics-card-name{font-size:16px;font-weight:700;color:#2b303b;margin:0}.client-analytics-card-body{padding:16px;background:#fff}@media (max-width: 768px){.job-analytics-card-header,.client-analytics-card-header,.job-analytics-card-body,.client-analytics-card-body{padding:12px}}.job-updates-page{--color-navy: #1a2852;--color-green: #478c2d;--color-bg-light: #f5f7fa;--color-border: #eaecf0;--color-text-primary: #2b303b;--color-text-secondary: #717784;--color-white: #ffffff;--font-family: "Figtree", -apple-system, BlinkMacSystemFont, sans-serif}.job-updates-page{min-height:100vh;background:var(--color-white);font-family:var(--font-family)}.job-updates-container{max-width:900px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border)}.job-updates-logo-header{padding:14px;background:var(--color-white);border-bottom:1px solid var(--color-border);display:flex;align-items:center}.job-updates-logo-header img{height:44px;width:auto}.job-updates-address{padding:14px;background:var(--color-white);border-bottom:1px solid var(--color-border);font-size:16px;font-weight:600;color:var(--color-text-primary);line-height:1.2}.job-updates-notes{padding:14px;background:var(--color-bg-light);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:4px}.job-updates-notes-label{font-size:14px;font-weight:500;color:var(--color-text-secondary);line-height:1.2}.job-updates-notes-content{font-size:14px;font-weight:500;color:var(--color-text-primary);line-height:1.4}.job-updates-error{display:flex;align-items:center;gap:12px;padding:14px;background:#fef2f2;border-bottom:1px solid #fecaca;color:#dc2626;font-size:14px}.job-updates-error svg{flex-shrink:0}.job-updates-messages{flex:1;background:var(--color-white);padding:14px 14px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.job-updates-messages::-webkit-scrollbar{width:6px}.job-updates-messages::-webkit-scrollbar-track{background:var(--color-bg-light)}.job-updates-messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.job-updates-empty{display:flex;align-items:center;justify-content:center;flex:1;min-height:200px}.job-updates-empty p{font-size:14px;color:var(--color-text-secondary);margin:0}.job-updates-date-divider{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}.job-updates-date-line{flex:1;height:1px;background:var(--color-border)}.job-updates-date-label{font-size:14px;font-weight:400;color:var(--color-text-secondary);line-height:1.3;white-space:nowrap}.job-updates-message{margin-bottom:16px}.job-updates-message:last-child{margin-bottom:0}.job-updates-message-row{display:flex;gap:6px;align-items:flex-start}.job-updates-message-row.own{justify-content:flex-end}.job-updates-message-row.other{justify-content:flex-start}.job-updates-avatar{width:34px;height:34px;border-radius:9999px;background:var(--color-navy);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;line-height:1.2;flex-shrink:0}.job-updates-message-content{display:flex;flex-direction:column;gap:4px;max-width:calc(100% - 80px)}.job-updates-message-header{display:flex;align-items:center;gap:6px}.job-updates-message-header.own{justify-content:flex-end}.job-updates-message-header.other{justify-content:flex-start}.job-updates-message-author{font-size:14px;font-weight:600;color:var(--color-text-primary);line-height:1.2}.job-updates-message-time{font-size:12px;font-weight:500;color:var(--color-text-secondary);line-height:1.2}.job-updates-bubble{padding:11px 12px;font-size:14px;font-weight:400;line-height:1.3;word-wrap:break-word}.job-updates-bubble.own{background:var(--color-navy);color:var(--color-white);border-radius:8px 0 8px 8px}.job-updates-bubble.other{background:var(--color-bg-light);color:var(--color-text-secondary);border-radius:0 8px 8px}.job-updates-bubble+.job-updates-bubble{margin-top:4px}.job-updates-images{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.job-updates-images.own{justify-content:flex-end}.job-updates-images img{max-width:200px;max-height:150px;object-fit:cover;border-radius:8px;cursor:pointer;transition:opacity .2s}.job-updates-images img:hover{opacity:.9}.job-updates-input-area{display:flex;gap:12px;align-items:center;padding:14px;background:var(--color-white);border-top:1px solid var(--color-border)}.job-updates-input-wrapper{flex:1;display:flex;align-items:center;gap:8px;background:var(--color-white);border:1px solid var(--color-border);border-radius:8px;padding:10px 12px;min-height:42px;box-sizing:border-box}.job-updates-input{flex:1;border:none;outline:none;font-family:var(--font-family);font-size:14px;font-weight:400;color:var(--color-text-primary);background:transparent;line-height:1.4;resize:none;max-height:80px;overflow-y:auto}.job-updates-input::placeholder{color:var(--color-text-secondary)}.job-updates-input:disabled{opacity:.6}.job-updates-attach-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:color .2s;flex-shrink:0}.job-updates-attach-btn:hover:not(:disabled){color:var(--color-text-primary)}.job-updates-attach-btn:disabled{opacity:.5;cursor:not-allowed}.job-updates-send-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;height:42px;background:var(--color-green);color:var(--color-white);border:none;border-radius:8px;font-family:var(--font-family);font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;transition:background-color .2s;white-space:nowrap;flex-shrink:0}.job-updates-send-btn:hover:not(:disabled){background:#3d7a26}.job-updates-send-btn:disabled{opacity:.5;cursor:not-allowed}.job-updates-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;font-size:14px;color:var(--color-text-secondary)}@media (max-width: 900px){.job-updates-container{border-left:none;border-right:none}}@media (max-width: 600px){.job-updates-logo-header{padding:12px}.job-updates-logo-header img{height:36px}.job-updates-address{font-size:15px;padding:12px}.job-updates-notes{padding:12px}.job-updates-messages{padding:12px 12px 16px;gap:16px}.job-updates-message-content{max-width:calc(100% - 50px)}.job-updates-bubble{padding:10px}.job-updates-input-area{padding:12px;gap:8px}.job-updates-input-wrapper{padding:8px 10px;min-height:40px}.job-updates-send-btn{height:40px;padding:0 10px}.job-updates-images img{max-width:150px;max-height:120px}}@media (max-width: 400px){.job-updates-avatar{width:30px;height:30px;font-size:12px}.job-updates-message-author{font-size:13px}.job-updates-message-time{font-size:11px}.job-updates-bubble{font-size:13px}}.app-tabs-container{display:flex;flex-direction:row;flex-wrap:wrap;background:#fff;border-bottom:1px solid #e0e0e0;margin-bottom:0;padding:0;gap:4px;border-radius:0}.app-tabs-container .app-tab{background:transparent;border:none;padding:12px 16px;color:#666;font-weight:500;font-size:14px;text-transform:none;letter-spacing:normal;box-shadow:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;position:relative;border-radius:6px;border-bottom:2px solid transparent}.app-tabs-container .app-tab:hover{background:transparent;box-shadow:none;border-color:transparent}.app-tabs-container .app-tab.active{color:#478c2d;border-bottom:2px solid #478c2d;border-radius:0}.app-tabs-container .app-tab.active:hover{color:#478c2d;background:#fff}.app-tabs-container .app-tab span{display:inline-block}.app-tabs-container .app-tab .tab-count{margin-left:4px}:root{--auth-slate-blue: #3D4F59;--auth-slate-blue-light: #4A5F6B;--auth-slate-blue-dark: #2E3D45;--auth-green: #60BB46;--auth-green-light: #7ACC5F;--auth-green-dark: #4EA038;--auth-green-pale: #E8F5E4;--auth-cta: #E86A33;--auth-cta-dark: #D45A25;--auth-cta-light: #F07D4A;--auth-charcoal: #1A1F22;--auth-charcoal-light: #252B2F;--auth-stone: #5C6970;--auth-mist: #8B9499;--auth-cloud: #C4CBCF;--auth-frost: #E8EBED;--auth-snow: #F5F7F8;--auth-white: #FFFFFF;--auth-font-display: "General Sans", sans-serif;--auth-font-body: "Satoshi", sans-serif;--auth-space-xs: 4px;--auth-space-sm: 8px;--auth-space-md: 16px;--auth-space-lg: 24px;--auth-space-xl: 32px;--auth-space-2xl: 48px;--auth-space-3xl: 64px;--auth-radius-sm: 4px;--auth-radius-md: 8px;--auth-radius-lg: 12px;--auth-radius-xl: 16px;--auth-radius-2xl: 24px;--auth-radius-full: 9999px;--auth-shadow-sm: 0 1px 2px rgba(61, 79, 89, .08);--auth-shadow-md: 0 4px 12px rgba(61, 79, 89, .12);--auth-shadow-lg: 0 8px 24px rgba(61, 79, 89, .16);--auth-shadow-xl: 0 16px 48px rgba(61, 79, 89, .2);--auth-shadow-glow-green: 0 0 40px rgba(96, 187, 70, .3);--auth-shadow-glow-cta: 0 0 40px rgba(232, 106, 51, .3);--auth-ease-out: cubic-bezier(.16, 1, .3, 1);--auth-ease-in-out: cubic-bezier(.65, 0, .35, 1);--auth-duration-fast: .15s;--auth-duration-normal: .3s;--auth-duration-slow: .5s}.auth-layout{min-height:100vh;display:flex;background:var(--auth-snow);font-family:var(--auth-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;overflow:hidden}.auth-layout:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 20% 80%,rgba(61,79,89,.03) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(232,106,51,.03) 0%,transparent 50%);pointer-events:none;z-index:0}.auth-float{position:absolute;border-radius:var(--auth-radius-lg);animation:authFloat 6s ease-in-out infinite;z-index:0}.auth-float-1{top:10%;left:5%;width:100px;height:100px;background:var(--auth-green);opacity:.08;animation-delay:0s}.auth-float-2{bottom:15%;right:8%;width:60px;height:60px;background:var(--auth-cta);opacity:.12;animation-delay:2s}.auth-float-3{top:60%;right:20%;width:80px;height:80px;background:var(--auth-slate-blue);opacity:.06;animation-delay:4s}@keyframes authFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}.auth-container{display:flex;width:100%;max-width:1400px;margin:0 auto;position:relative;z-index:1}.auth-visual{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--auth-space-3xl);background:linear-gradient(135deg,var(--auth-slate-blue) 0%,var(--auth-slate-blue-dark) 100%);position:relative;overflow:hidden}.auth-visual:before{content:"";position:absolute;top:-30%;right:-20%;width:80%;height:100%;background:radial-gradient(circle,rgba(96,187,70,.15) 0%,transparent 60%);pointer-events:none}.auth-visual-content{max-width:500px;text-align:center;position:relative;z-index:2}.auth-logo-wrapper{margin-bottom:var(--auth-space-2xl);animation:fadeInUp .6s var(--auth-ease-out) both}.auth-logo{height:80px;width:auto;filter:brightness(0) invert(1);transition:transform var(--auth-duration-normal) var(--auth-ease-out)}.auth-logo:hover{transform:scale(1.05)}.auth-visual-title{font-family:var(--auth-font-display);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:600;line-height:1.2;letter-spacing:.01em;color:var(--auth-white);margin-bottom:var(--auth-space-lg);animation:fadeInUp .6s var(--auth-ease-out) .1s both}.auth-visual-subtitle{font-size:1.125rem;line-height:1.7;color:#ffffffbf;margin-bottom:var(--auth-space-xl);animation:fadeInUp .6s var(--auth-ease-out) .2s both}.auth-visual-features{list-style:none;padding:0;margin:0;text-align:left;animation:fadeInUp .6s var(--auth-ease-out) .3s both}.auth-visual-feature{display:flex;align-items:center;gap:var(--auth-space-md);padding:var(--auth-space-md) 0;font-size:.9375rem;color:#ffffffd9}.auth-visual-feature-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#60bb4633;border-radius:var(--auth-radius-md);color:var(--auth-green)}.auth-form-side{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--auth-space-3xl);background:var(--auth-white)}.auth-form-container{max-width:440px;width:100%;margin:0 auto}.auth-form-header{margin-bottom:var(--auth-space-2xl);text-align:center}.auth-badge{display:inline-flex;align-items:center;gap:var(--auth-space-sm);padding:var(--auth-space-sm) var(--auth-space-md);margin-bottom:var(--auth-space-lg);font-size:.8125rem;font-weight:600;color:var(--auth-slate-blue);background:#3d4f5914;border:1px solid rgba(61,79,89,.15);border-radius:var(--auth-radius-full)}.auth-badge-dot{width:6px;height:6px;background:var(--auth-green);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.auth-form-title{font-family:var(--auth-font-display);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:600;line-height:1.2;letter-spacing:.01em;color:var(--auth-charcoal);margin-bottom:var(--auth-space-md)}.auth-form-subtitle{font-size:1rem;line-height:1.6;color:var(--auth-stone)}.auth-form,.auth-input-group{margin-bottom:var(--auth-space-lg)}.auth-input-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--auth-space-md)}.auth-input-wrapper{position:relative}.auth-input-label{display:block;font-family:var(--auth-font-body);font-size:.875rem;font-weight:600;color:var(--auth-charcoal);margin-bottom:var(--auth-space-sm)}.auth-input{width:100%;padding:var(--auth-space-md) var(--auth-space-lg);font-family:var(--auth-font-body);font-size:1rem;color:var(--auth-charcoal);background:var(--auth-white);border:2px solid var(--auth-frost);border-radius:var(--auth-radius-lg);transition:all var(--auth-duration-normal) var(--auth-ease-out);outline:none}.auth-input::placeholder{color:var(--auth-mist)}.auth-input:focus{border-color:var(--auth-slate-blue);box-shadow:0 0 0 4px #3d4f5914}.auth-input-error{border-color:#e53935}.auth-input-error:focus{box-shadow:0 0 0 4px #e5393514}.auth-input-password-wrapper{position:relative}.auth-input-password-wrapper .auth-input{padding-right:48px}.auth-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:var(--auth-space-xs);display:flex;align-items:center;justify-content:center;color:var(--auth-mist);transition:color var(--auth-duration-fast);border-radius:var(--auth-radius-sm)}.auth-password-toggle:hover{color:var(--auth-slate-blue)}.auth-password-toggle:focus-visible{outline:2px solid var(--auth-slate-blue);outline-offset:2px}.auth-error-message{display:flex;align-items:center;gap:var(--auth-space-xs);margin-top:var(--auth-space-sm);font-size:.8125rem;color:#e53935}.auth-alert{display:flex;align-items:flex-start;gap:var(--auth-space-md);padding:var(--auth-space-md) var(--auth-space-lg);margin-bottom:var(--auth-space-lg);border-radius:var(--auth-radius-lg);font-size:.9375rem;line-height:1.6}.auth-alert-success{background:var(--auth-green-pale);color:var(--auth-green-dark);border:1px solid rgba(96,187,70,.3)}.auth-alert-error{background:#ffebee;color:#c62828;border:1px solid rgba(229,57,53,.3)}.auth-alert-info{background:#e3f2fd;color:#1565c0;border:1px solid rgba(21,101,192,.3)}.auth-alert-icon{flex-shrink:0;margin-top:2px}.auth-button{width:100%;padding:var(--auth-space-md) var(--auth-space-xl);font-family:var(--auth-font-body);font-size:1rem;font-weight:600;color:var(--auth-white);background:var(--auth-cta);border:none;border-radius:var(--auth-radius-full);cursor:pointer;transition:all var(--auth-duration-normal) var(--auth-ease-out);box-shadow:0 4px 20px #e86a3359;display:inline-flex;align-items:center;justify-content:center;gap:var(--auth-space-sm)}.auth-button:hover:not(:disabled){background:var(--auth-cta-dark);transform:translateY(-2px);box-shadow:var(--auth-shadow-glow-cta)}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-button-secondary{background:transparent;color:var(--auth-slate-blue);border:2px solid var(--auth-slate-blue);box-shadow:none}.auth-button-secondary:hover:not(:disabled){background:var(--auth-slate-blue);color:var(--auth-white);box-shadow:var(--auth-shadow-md)}.auth-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--auth-white);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-link{color:var(--auth-cta);font-weight:600;text-decoration:none;transition:color var(--auth-duration-fast)}.auth-link:hover{color:var(--auth-cta-dark);text-decoration:underline}.auth-form-footer{text-align:center;margin-top:var(--auth-space-lg);margin-bottom:var(--auth-space-md)}.auth-form-footer-text{font-size:.9375rem;color:var(--auth-stone);margin-bottom:var(--auth-space-md)}.auth-divider{display:flex;align-items:center;gap:var(--auth-space-md);margin:var(--auth-space-xl) 0;font-size:.875rem;color:var(--auth-mist)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--auth-frost)}.social-login-buttons{display:flex;flex-direction:column;gap:var(--auth-space-md);margin-bottom:var(--auth-space-md)}.social-login-button{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--auth-space-md);padding:var(--auth-space-md) var(--auth-space-xl);font-family:var(--auth-font-body);font-size:.9375rem;font-weight:600;color:var(--auth-charcoal);background:var(--auth-white);border:2px solid var(--auth-frost);border-radius:var(--auth-radius-full);cursor:pointer;transition:all var(--auth-duration-normal) var(--auth-ease-out)}.social-login-button:hover{border-color:var(--auth-cloud);background:var(--auth-snow);transform:translateY(-1px);box-shadow:var(--auth-shadow-sm)}.social-login-button:active{transform:translateY(0);box-shadow:none}.social-login-button svg{flex-shrink:0}@media (max-width: 1024px){.auth-layout{overflow:auto}.auth-container{flex-direction:column}.auth-visual{min-height:300px;padding:var(--auth-space-2xl)}.auth-visual-features{display:none}.auth-form-side{padding:var(--auth-space-2xl);padding-bottom:40vh}}@media (max-width: 640px){.auth-visual{min-height:250px;padding:var(--auth-space-xl)}.auth-form-side{padding:var(--auth-space-xl) var(--auth-space-md);padding-bottom:40vh}.auth-input-row{grid-template-columns:1fr}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-layout .MuiPaper-root{box-shadow:none!important;background:transparent!important}.auth-layout .MuiContainer-root{max-width:none!important;padding:0!important}
