@charset "UTF-8";.smb\[0\]{margin-bottom:0rem!important}.smb\[1\]{margin-bottom:1rem!important}.smb\[2\]{margin-bottom:2rem!important}.smb\[3\]{margin-bottom:3rem!important}.smb\[4\]{margin-bottom:4rem!important}.smb\[5\]{margin-bottom:5rem!important}.smb\[6\]{margin-bottom:6rem!important}.smb\[7\]{margin-bottom:7rem!important}.smb\[8\]{margin-bottom:8rem!important}.smb\[9\]{margin-bottom:9rem!important}.smb\[10\]{margin-bottom:10rem!important}.smt\[0\]{margin-top:0rem!important}.smt\[1\]{margin-top:1rem!important}.smt\[2\]{margin-top:2rem!important}.smt\[3\]{margin-top:3rem!important}.smt\[4\]{margin-top:4rem!important}.smt\[5\]{margin-top:5rem!important}.smt\[6\]{margin-top:6rem!important}.smt\[7\]{margin-top:7rem!important}.smt\[8\]{margin-top:8rem!important}.smt\[9\]{margin-top:9rem!important}.smt\[10\]{margin-top:10rem!important}.spx\[0\]{padding-left:0rem;padding-right:0rem}.spx\[1\]{padding-left:1rem;padding-right:1rem}.spx\[2\]{padding-left:2rem;padding-right:2rem}.spx\[3\]{padding-left:3rem;padding-right:3rem}.spx\[4\]{padding-left:4rem;padding-right:4rem}.spx\[5\]{padding-left:5rem;padding-right:5rem}.spx\[6\]{padding-left:6rem;padding-right:6rem}.spx\[7\]{padding-left:7rem;padding-right:7rem}.spx\[8\]{padding-left:8rem;padding-right:8rem}.spx\[9\]{padding-left:9rem;padding-right:9rem}.spx\[10\]{padding-left:10rem;padding-right:10rem}.spy\[0\]{padding-top:0rem;padding-bottom:0rem}.spy\[1\]{padding-top:1rem;padding-bottom:1rem}.spy\[2\]{padding-top:2rem;padding-bottom:2rem}.spy\[3\]{padding-top:3rem;padding-bottom:3rem}.spy\[4\]{padding-top:4rem;padding-bottom:4rem}.spy\[5\]{padding-top:5rem;padding-bottom:5rem}.spy\[6\]{padding-top:6rem;padding-bottom:6rem}.spy\[7\]{padding-top:7rem;padding-bottom:7rem}.spy\[8\]{padding-top:8rem;padding-bottom:8rem}.spy\[9\]{padding-top:9rem;padding-bottom:9rem}.spy\[10\]{padding-top:10rem;padding-bottom:10rem}.sp\[0\]{padding:0rem}.sp\[1\]{padding:1rem}.sp\[2\]{padding:2rem}.sp\[3\]{padding:3rem}.sp\[4\]{padding:4rem}.sp\[5\]{padding:5rem}.sp\[6\]{padding:6rem}.sp\[7\]{padding:7rem}.sp\[8\]{padding:8rem}.sp\[9\]{padding:9rem}.sp\[10\]{padding:10rem}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Rubik,sans-serif;font-weight:400;line-height:1.6;color:#414040;background:#e1e0ff66}img{max-width:100%;height:auto;display:block}*:disabled{cursor:not-allowed;opacity:.6;pointer-events:none}h1,h2,h3,h4,h5,h6{font-family:Rubik,sans-serif;font-weight:600;line-height:1.2;color:#14105a}h1{font-size:clamp(1.75rem,4vw,1.75rem)}h2{font-size:clamp(1.5rem,3.5vw,1.5rem)}h3{font-size:clamp(1.25rem,3vw,1.35rem)}h4{font-size:clamp(1.1rem,2.5vw,1.25rem)}h5{font-size:1.1rem}h6{font-size:1rem}p{font-size:1rem;color:#14105a;line-height:1.6}p a{color:#2b21ee;text-decoration:none}p a:hover{color:#14105a}a{color:#2b21ee;text-decoration:none;transition:all .2s ease}a:hover{color:#14105a}label{font-size:.875rem;font-weight:600;color:#4d565d}input:not([type=checkbox]):not([type=radio]),select,textarea{font-family:Rubik,sans-serif;font-size:.85rem;color:#414040;background:#e1e0ff66;background:#fff;border:1px solid rgba(20,16,90,.3);border-radius:.75rem;padding:6px 12px;min-height:30px;min-width:0;max-width:100%;transition:all .2s ease}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:#2b21ee}button{font-family:Rubik,sans-serif;cursor:pointer}.v-padding{padding-top:3rem;padding-bottom:3rem}@media(max-width:768px){.v-padding{padding-top:2rem;padding-bottom:2rem}}.v-padding-top{padding-top:3rem}.v-padding-bottom{padding-bottom:3rem}.container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}.flex{display:flex;align-items:center}.input-row{align-items:stretch}.flex-v{display:flex;flex-direction:column}.flex,.flex-v,.grid-2,.grid-3,.grid-4{gap:1.5rem}.flex.gap-xs,.flex-v.gap-xs,.grid-2.gap-xs,.grid-3.gap-xs,.grid-4.gap-xs{gap:.25rem}.flex.gap-sm,.flex-v.gap-sm,.grid-2.gap-sm,.grid-3.gap-sm,.grid-4.gap-sm{gap:.75rem}.flex.gap-lg,.flex-v.gap-lg,.grid-2.gap-lg,.grid-3.gap-lg,.grid-4.gap-lg{gap:3rem}.flex.gap-0,.flex-v.gap-0,.grid-2.gap-0,.grid-3.gap-0,.grid-4.gap-0{gap:0}.grid-2,.grid-3,.grid-4{display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1440px){.grid-2{grid-template-columns:1fr}}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:992px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:992px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.space-between{justify-content:space-between}.nowrap{white-space:nowrap}@media(max-width:768px){.hide-mobile{display:none!important}}.flex-wrap{flex-wrap:wrap}.tab-hidden{display:none!important}.drop-zone.drop-active{outline:2px dashed #2b21ee;outline-offset:-2px;background:#e1e0ff66}.tac{text-align:center}.tal{text-align:left}.tar{text-align:right}.ct-white,.ct-white p{color:#fff}.ct-dark,.ct-dark p{color:#414040}.ct-gray,.ct-gray p{color:#848582}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:Rubik,sans-serif;font-size:.85rem;line-height:1.2;text-transform:uppercase;border:solid 1px #14105a;border-radius:.75rem;padding:8px 12px;cursor:pointer;transition:all .2s ease}.btn-primary{background:#14105a;color:#fff}.btn-primary:hover{background:#2b21ee;border-color:#2b21ee;color:#fff}.btn-secondary{background:transparent;color:#14105a}.btn-secondary:hover{background:#14105a;color:#fff}.btn-danger{background:transparent;color:#d33e00;border-color:#d33e00}.btn-danger:hover{background:#d8490d3d;color:#d33e00}.btn-delete{background:transparent;color:#d33e00;border-color:#ddd;padding:6px;gap:0}.btn-delete svg{display:block}.btn-delete:hover{background:#d8490d3d;border-color:#d33e00;color:#d33e00}.btn-icon{padding:6px;gap:0}.btn-icon svg{display:block}.btn-sm{padding:5px 10px;font-size:12px}.icon-btn{padding:7px 9px}.icon-btn svg{display:block}@media(max-width:768px){.layout-toggle{display:none}}.btn-link{background:transparent;border:none;color:#2b21ee;font-weight:400;text-transform:none}.btn-link:hover{background:#e1e0ff66;color:#2b21ee}.card{background:#fff;border:1px solid #efefef;border-radius:.75rem;padding:1.125rem}.status-badge{display:inline-block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;color:#fff;border-radius:3px;padding:.25rem .5rem}.status-badge.status-new{background:#d3bf00}.status-badge.status-assigned{background:#06b2af}.status-badge.status-in_progress{background:transparent;border:1px solid #0b870b;color:#0b870b}.status-badge.status-completed{background:#0b870b}.status-badge.status-cancelled{background:#d33e00}:root{--lavender: rgba(225, 224, 255, .4);--midnight-blue: #14105a;--blue: #2b21ee;--dark-slate-grey: #414040;--alice-blue: #f0f9ff;--yellow: #d3bf00;--teal: #06b2af;--rust: #d33e00;--rust-light: #d8490d3d;--green: #0b870b;--light-green: #b8f0b8;--dark: #414040;--primary: #14105a;--primary-dark: #2b21ee;--accent: #d3bf00;--white: #ffffff;--off-white: #fafafa;--gray: #848582;--gray-dark: #4d565d;--gray-light: #ddd;--heading-font: "Rubik", sans-serif;--body-font: "Rubik", sans-serif}.nav-badge{display:inline-block;margin-left:.5rem;min-width:1.25rem;padding:0 .375rem;font-size:.75rem;font-weight:600;line-height:1.25rem;text-align:center;color:#fff;background:var(--blue);border-radius:999px}.app-sidebar{background:var(--white);border-right:1px solid var(--gray-light);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem}.app-sidebar .sidebar-top{display:flex;align-items:center;gap:.75rem}.app-sidebar .logo img{display:block;height:45px}.app-sidebar .burger{display:none;background:transparent;border:none;color:var(--midnight-blue);cursor:pointer;padding:4px;align-items:center}.app-sidebar .sidebar-nav{display:flex;flex-direction:column}.app-sidebar .sidebar-nav a{display:flex;align-items:center;gap:.6rem;color:var(--midnight-blue);font-weight:600;font-size:.9375rem;padding:8px 12px;border-radius:3px}.app-sidebar .sidebar-nav a:hover,.app-sidebar .sidebar-nav a.active{color:var(--blue);background:var(--lavender)}.app-sidebar .nav-ico{display:inline-flex;align-items:center;color:currentColor}.app-sidebar:not(.rail) .sidebar-actions .rail-plus{display:none}.app-sidebar .rail-toggle{display:none;background:transparent;border:none;color:var(--gray);cursor:pointer;padding:4px;margin-left:auto;border-radius:4px}.app-sidebar .rail-toggle:hover{color:var(--blue);background:var(--lavender)}.app-sidebar .nav-section-label{display:flex;align-items:center;gap:.375rem;width:100%;margin-top:1rem;padding:0 12px 4px;background:none;border:none;cursor:pointer;text-align:left;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray)}.app-sidebar .nav-section-label:hover{color:var(--blue)}.app-sidebar .nav-section-label .chev{transition:transform .15s ease}.app-sidebar .nav-section-label.collapsed .chev{transform:rotate(-90deg)}.app-sidebar .sidebar-actions .btn{width:100%}.app-sidebar .sidebar-footer{margin-top:auto}.app-sidebar .sidebar-footer .settings-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--gray-dark);font-size:.875rem;font-weight:600;padding:8px 12px;border-radius:3px}.app-sidebar .sidebar-footer .settings-link .gear{display:inline-flex;align-items:center;line-height:1}.app-sidebar .sidebar-footer .settings-link .gear svg{display:block}.app-sidebar .sidebar-footer .settings-link:hover,.app-sidebar .sidebar-footer .settings-link.active{color:var(--blue);background:var(--lavender)}@media(min-width:993px){.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:220px;z-index:100;overflow-y:auto}.app-sidebar .sidebar-footer{padding-right:calc(42px + .75rem)}.app-sidebar .rail-toggle{display:inline-flex}.app-sidebar.rail{width:64px;padding:1.25rem .5rem}.app-sidebar.rail .sidebar-top{flex-direction:column;gap:.75rem}.app-sidebar.rail .sidebar-top .rail-toggle{margin-left:0}.app-sidebar.rail .nav-text,.app-sidebar.rail .nav-section-label{display:none}.app-sidebar.rail .nav-ico{display:inline-flex}.app-sidebar.rail .sidebar-nav a{justify-content:center;padding:10px 0}.app-sidebar.rail .nav-badge{position:absolute;margin:0;transform:translate(14px,-10px);min-width:1rem;font-size:.625rem;line-height:1rem}.app-sidebar.rail .sidebar-nav a{position:relative}.app-sidebar.rail .sidebar-actions .btn{width:40px;height:40px;padding:0;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center}.app-sidebar.rail .sidebar-actions .btn .rail-plus{font-size:1.25rem;line-height:1}.app-sidebar.rail .sidebar-footer{padding-right:0;padding-bottom:56px;align-items:center}.app-sidebar.rail .sidebar-footer .settings-link{padding:8px}.app-sidebar.rail~main{margin-left:64px;width:calc(100% - 64px)}}@media(min-width:993px)and (min-width:1300px){.app-sidebar.rail~main{max-width:calc(100% - 64px - 4rem);margin:auto;transform:translate(32px)}}@media(min-width:993px){.app-sidebar.rail~.user-menu{left:11px}.app-sidebar.rail~.user-menu .user-dropdown{right:auto;left:0}.app-sidebar~main{margin-left:220px;width:calc(100% - 220px)}}@media(min-width:993px)and (min-width:1300px){.app-sidebar~main{max-width:calc(100% - 220px - 14rem);margin:auto;transform:translate(55px)}}@media(max-width:992px){.app-sidebar{border-right:none;border-bottom:1px solid var(--gray-light);padding:.75rem 1rem;gap:.75rem}.app-sidebar .burger{display:flex}.app-sidebar .sidebar-nav,.app-sidebar .sidebar-actions,.app-sidebar .sidebar-footer{display:none}.app-sidebar.menu-open .sidebar-nav,.app-sidebar.menu-open .sidebar-actions,.app-sidebar.menu-open .sidebar-footer{display:flex;flex-direction:column;align-items:stretch;margin-top:0}.app-sidebar.menu-open .sidebar-nav a{padding:10px 12px}.app-sidebar.menu-open .sidebar-actions .btn,.app-sidebar.menu-open .sidebar-footer .btn{width:100%}}.login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-wrapper form{width:100%;max-width:380px}.login-wrapper .login-logo{align-self:center;width:min(162px,70%);height:auto;margin-bottom:.5rem}.login-wrapper .powered-by{align-self:center;margin-top:-.75rem;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gray)}.error-text{color:#c0392b;font-size:.875rem}.success-text{color:var(--green);font-size:.875rem}textarea.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;line-height:1.5}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.user-menu{position:fixed;top:1rem;right:1.5rem;z-index:200}@media(min-width:993px){.user-menu{top:auto;right:auto;bottom:1.25rem;left:calc(178px - 1.25rem)}}.user-menu .avatar-button{width:42px;height:42px;border-radius:50%;background:var(--midnight-blue);color:var(--white);border:2px solid var(--white);font-weight:700;font-size:.875rem;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #14105a40}.user-menu .avatar-button:hover{background:var(--blue);color:var(--white)}.user-menu .user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;box-shadow:0 4px 16px #14105a26}.user-menu .user-dropdown .user-name{color:var(--gray);font-size:.8125rem;border-bottom:1px solid var(--gray-light);padding-bottom:.5rem}.user-menu .user-dropdown .btn{width:100%}@media(min-width:993px){.user-menu .user-dropdown{top:auto;bottom:calc(100% + .5rem)}}@media(max-width:992px){.user-menu{position:absolute;top:calc((3px + 1.5rem)/2);right:1rem}}.empty-day-scene{padding:3rem 1rem 2rem;align-items:center;min-height:70vh;justify-content:center}.empty-day-scene svg{width:min(380px,85%);height:auto}.empty-day-scene .empty-day-custom{width:min(420px,85%);max-height:320px;object-fit:contain;border-radius:8px}.empty-day-scene h3{border-bottom:none;color:var(--midnight-blue);font-size:1.125rem}.empty-day-scene p{color:var(--gray);font-size:.9375rem}.empty-day-scene .sun{transform-box:fill-box;transform-origin:center;animation:sun-glow 6s ease-in-out infinite}.empty-day-scene .cloud-1{animation:cloud-drift 16s ease-in-out infinite alternate}.empty-day-scene .cloud-2{animation:cloud-drift 22s ease-in-out infinite alternate-reverse}@keyframes sun-glow{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.07)}}@keyframes cloud-drift{0%{transform:translate(0)}to{transform:translate(26px)}}@media(prefers-reduced-motion:reduce){.empty-day-scene .sun,.empty-day-scene .cloud-1,.empty-day-scene .cloud-2{animation:none}}.new-job-notice{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--teal);font-weight:600;font-size:.9375rem;padding:.375rem .75rem;border-left:3px solid var(--teal);background:#06b2af12;border-radius:3px;overflow:hidden;animation:notice-in .35s ease}.new-job-notice a{color:var(--teal);text-decoration:underline}.new-job-notice a:hover{color:var(--midnight-blue)}.new-job-notice .notice-dismiss{background:transparent;border:none;color:var(--teal);font-size:.9375rem;padding:0 .375rem;min-height:auto}.new-job-notice .notice-dismiss:hover{background:transparent;color:var(--midnight-blue)}.new-job-notice.leaving{animation:notice-out .5s ease forwards}@keyframes notice-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes notice-out{to{opacity:0;transform:translateY(-8px)}}.setup-banner{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:600;font-size:.9375rem;padding:.375rem .75rem;border-left:3px solid var(--teal);background:#06b2af12;border-radius:3px}.setup-banner a{color:var(--teal);text-decoration:underline}.setup-banner a:hover{color:var(--midnight-blue)}.setup-banner .notice-dismiss{background:transparent;border:none;color:var(--teal);font-size:.9375rem;padding:0 .375rem;min-height:auto}.setup-banner .notice-dismiss:hover{background:transparent;color:var(--midnight-blue)}.setup-step .setup-step-head{align-items:flex-start}.setup-step .setup-step-badge{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;border:2px solid var(--midnight-blue);font-weight:700;color:var(--midnight-blue)}.setup-step .setup-step-body{flex:1;min-width:0}.setup-step.is-done{opacity:.7}.setup-step.is-done .setup-step-badge{border-color:var(--teal);background:var(--teal);color:#fff}.setup-substeps{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.375rem;font-size:.9375rem}.job-card.is-new{border-color:var(--teal);animation:new-job-pulse 1.8s ease-in-out infinite}@keyframes new-job-pulse{0%,to{box-shadow:0 0 #06b2af73}50%{box-shadow:0 0 0 7px #06b2af00}}.date-nav{align-items:center}@media(max-width:768px){.date-nav{flex-direction:column-reverse}}@media(min-width:1200px){.date-nav .date-left{min-width:370px;justify-content:space-between}}@media(max-width:768px){.date-nav .date-left{width:100%;justify-content:space-between}}.date-nav .date-right{position:relative}@media(max-width:768px){.date-nav .date-right{margin-left:auto}}.date-nav .date-display{position:relative;display:flex;align-items:center;gap:.5rem}.date-nav .date-display h2{font-size:1.25rem}.date-nav .date-display h2.is-today{color:var(--blue)}.date-nav .date-display h2.is-future{color:var(--midnight-blue)}.date-nav .date-display h2.is-past{color:#14105a66}.date-nav .date-display .cal-trigger{display:flex;align-items:center;background:transparent;border:none;color:var(--gray-dark);cursor:pointer;padding:2px}.date-nav .date-display .cal-trigger:hover{color:var(--blue)}.date-nav .date-display .cal-hidden-input{position:absolute;bottom:-6px;left:50%;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}.data-row h3{font-size:1rem}.day-group h3{color:var(--midnight-blue);font-size:1rem}.day-group h3:has(.job-count){color:#4d565d;margin-bottom:.5rem}.day-group h3.is-today{color:var(--primary)}.day-group h3 .job-count{font-weight:400;color:var(--gray)}.day-group .empty-day{color:var(--gray);font-size:.875rem}.job-client{font-weight:700;color:var(--midnight-blue)}.tf-chip{background:var(--lavender);border-color:transparent}.email-peek{display:inline-flex;align-items:center;padding:0;background:none;border:none;color:var(--gray);cursor:pointer}.email-peek:hover{color:var(--blue)}.job-card .card-footer{margin-top:auto}.job-card .addr-stage,.job-card .card-details-toggle,.job-card .map-link.top-map-link{display:none}@media(max-width:768px){.job-card .map-link.top-map-link{display:inline-flex}.job-card .map-link.addr-map-link{display:none}.job-card .addr-stage{display:inline;color:var(--gray);font-size:.8125rem;white-space:nowrap;flex-shrink:0}.job-card .card-details-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0;padding:4px;background:transparent;border:none;color:var(--gray);cursor:pointer}.job-card .card-details-toggle svg{transition:transform .15s ease}.job-card .card-details-toggle.open{color:var(--blue)}.job-card .card-details-toggle.open svg{transform:rotate(180deg)}.job-card .flex.center.gap-xs h3{width:auto;min-width:0}.job-card .flex.center.gap-xs h3 a{display:block;white-space:normal;overflow-wrap:anywhere}.job-card:not(.details-open) .job-meta,.job-card:not(.details-open) .job-tags,.job-card:not(.details-open) .invoice-flags{display:none}.job-card .job-meta .meta-stage{display:none}}.job-card .job-card-top>span:first-child{min-width:0}.job-card .job-card-top>span:last-child{flex-shrink:0}.job-card .job-card-top .job-client{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-card h3{font-size:.9rem;width:100%}.job-card h3 a{color:var(--primary)}.job-card h3 a:hover{color:var(--blue)}.job-card form{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.job-card form select{width:100%}.job-card .job-meta{font-size:.875rem;color:var(--gray-dark);gap:.25rem}.job-card .job-meta span+span:before{content:"· ";color:var(--gray-light)}.job-card .map-link{display:inline-flex;align-items:center;opacity:.7;transition:all .2s ease}.job-card .map-link img{width:18px;height:18px;flex-shrink:0}.job-card .map-link:hover{opacity:1;transform:scale(1.1)}.auto-updated{font-size:.8125rem;color:var(--green)}.updated-note{position:relative;display:inline-flex}.updated-note .updated-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px}.updated-note .updated-badge.compact{padding:2px;gap:0}.updated-note .updated-badge{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--green);background:var(--light-green);border:1px solid var(--green);border-radius:999px;cursor:pointer;line-height:1.4}.updated-note .updated-badge:hover{background:var(--green);color:#fff}.updated-note .updated-tooltip{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:max-content;max-width:260px;padding:8px 10px;font-size:.8125rem;font-weight:400;line-height:1.35;text-transform:none;letter-spacing:normal;color:#fff;background:var(--midnight-blue);border-radius:6px;box-shadow:0 4px 16px #14105a40;white-space:normal}@media(hover:hover){.updated-note:hover .updated-tooltip{display:block}}.updated-note.open .updated-tooltip{display:block}.clock-row .clock-status{font-size:.8125rem;color:var(--green);font-weight:600}.time-row strong{color:var(--midnight-blue)}.invoice-flags{font-size:.75rem}.invoice-flags label{font-weight:400;color:var(--gray-dark);gap:.35rem}.invoice-flags input[type=checkbox]{min-height:auto;min-width:auto;width:13px;height:13px}.day-totals{font-size:.875rem}.day-totals .total-bf{font-weight:600;color:var(--midnight-blue)}.dashboard-main{position:relative}.dashboard-main.week .day-group{background:#14105a0d;padding:1.5rem;border-radius:5px}.dashboard-main.week .day-group.is-today{border:2px solid rgba(20,16,90,.3);background:#14105a00}.dashboard-main.week .date-nav{margin-bottom:2rem}@media(min-width:1200px){.board-wrap{display:flex;gap:1.5rem;align-items:flex-start}.board-wrap>.board-days{flex:1;min-width:0}.board-wrap .board-map{flex:0 0 clamp(360px,34vw,560px);position:relative;position:sticky;top:1rem;height:calc(100vh - 2rem)}.board-wrap .board-map .jobs-map{height:100%;border-radius:8px}.board-wrap .board-map .panel-grip{position:absolute;top:0;bottom:0;left:-14px;width:16px;z-index:20;display:flex;align-items:center;justify-content:center;cursor:ew-resize;touch-action:none}.board-wrap .board-map .panel-grip span{width:5px;height:44px;border-radius:999px;background:var(--gray-light);transition:background .15s ease}.board-wrap .board-map .panel-grip:hover span{background:var(--gray)}.board-wrap.map-open .board-days .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px)and (min-width:2100px){.board-wrap.map-open .board-days .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1199px){.board-wrap .board-map{display:none}}@media(max-width:768px){.board-wrap.map-open{padding-bottom:calc(var(--sheet-vh, 44vh) + 4vh)}.board-wrap.map-open .board-drag-item{scroll-margin-bottom:calc(var(--sheet-vh, 44vh) + 2vh)}}.board-map-sheet{position:fixed;inset:auto 0 0;height:44vh;z-index:300;display:flex;flex-direction:column;background:var(--white);border-top:1px solid var(--gray-light);box-shadow:0 -8px 24px #14105a2e}.board-map-sheet .sheet-grip{flex:0 0 18px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;touch-action:none}.board-map-sheet .sheet-grip span{width:44px;height:5px;border-radius:999px;background:var(--gray-light)}.board-map-sheet .jobs-map{flex:1;height:auto;min-height:0;border:none;border-radius:0}.board-map-sheet .sheet-close{position:absolute;top:24px;right:10px;z-index:1001;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--gray-light);background:var(--white);color:var(--gray-dark);font-size:1rem;line-height:1;cursor:pointer;box-shadow:0 2px 8px #14105a26}.board-drag-item.map-hot>.card{border-color:var(--blue);box-shadow:0 0 0 2px #2b21ee40}.board-drag-item.map-hot>.data-row{background:var(--lavender);border-radius:6px}.board-days{min-width:0}.board-days .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:1800px){.board-days .grid-3{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:992px){.board-days .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.board-days .grid-3{grid-template-columns:minmax(0,1fr)}}.crew-section{display:flex;flex-direction:column;gap:1rem;padding:1rem 1.25rem 1.25rem}.crew-section.drop-target{outline:2px dashed var(--blue);outline-offset:2px}.crew-section .drop-hint{color:var(--gray);font-size:.85rem;margin:0}.crew-section .crew-section-head{display:flex;align-items:center;gap:1rem}.crew-section .crew-section-head h4{font-size:1rem;margin:0;white-space:nowrap}.crew-section .crew-section-head .crew-cap-nums{font-size:.8125rem;font-weight:600;white-space:nowrap}.crew-section .crew-section-head .cap-bar{flex:1;min-width:60px;height:8px;border-radius:999px;background:var(--lavender);overflow:hidden}@media(max-width:768px){.crew-section .crew-section-head .cap-bar{height:4px}}.crew-section .crew-section-head .cap-bar .cap-fill{height:100%;min-width:3px;border-radius:999px;transition:width .3s ease}@media(max-width:768px){.crew-section .crew-section-head{flex-wrap:wrap;gap:.5rem 1rem}.crew-section .crew-section-head .cap-bar{flex-basis:100%}}.crew-section .job-card{border:1px solid var(--gray-light);background:var(--lavender)}.crew-section .board-drag-item .data-row{padding:.75rem 0;border-bottom:1px solid var(--gray-light)}.crew-section .board-drag-item:last-child .data-row{border-bottom:none}.board-drag-item{position:relative;display:flex}.board-drag-item>.card,.board-drag-item>.data-row{flex:1;min-width:0}.board-drag-item .drag-handle{position:absolute;top:50%;left:-7px;transform:translateY(-50%);z-index:5;display:inline-flex;align-items:center;padding:4px 1px;color:var(--gray);background:var(--white);border:1px solid var(--gray-light);border-radius:6px;cursor:grab;opacity:0;transition:opacity .15s ease;touch-action:none}.board-drag-item .drag-handle:active{cursor:grabbing}.board-drag-item.in-list .drag-handle{left:-18px}.board-drag-item:hover .drag-handle{opacity:1}.board-drag-item.drag-over>.card,.board-drag-item.drag-over>.data-row{outline:2px dashed var(--blue);outline-offset:2px;border-radius:6px}@media(hover:none){.board-drag-item .drag-handle{opacity:1}}.edge-drop{position:fixed;top:0;bottom:0;z-index:350;width:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:0 .5rem;text-align:center;font-size:.75rem;font-weight:600;color:var(--midnight-blue);background:#e9e7fef2;border:2px dashed var(--blue)}.edge-drop.left{left:0;border-left:none;border-radius:0 10px 10px 0}.edge-drop.right{right:0;border-right:none;border-radius:10px 0 0 10px}.edge-drop .edge-arrow{font-size:1.375rem;line-height:1;color:var(--blue)}.edge-drop .edge-date{font-size:.6rem;font-weight:400;color:var(--gray-dark);white-space:nowrap}.edge-drop.hot{background:var(--white);border-style:solid;box-shadow:0 0 0 3px #2b21ee33;color:var(--blue)}@media(max-width:768px){.edge-drop{width:34px;padding:0}.edge-drop span:not(.edge-arrow){display:none}}@media(max-width:768px){.grid-3.job-cards{gap:.75rem}}.camera-btn{display:none}@media(max-width:992px){.camera-btn{display:inline-flex;align-items:center;gap:.4rem}}.layout-menu{position:relative;display:none}@media(max-width:768px){.layout-menu{display:block}}.layout-menu .layout-menu-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:140px;padding:.375rem;box-shadow:0 8px 24px #14105a2e}.layout-menu .layout-menu-pop a{display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;border-radius:6px;color:var(--dark);font-weight:600;font-size:.875rem}.layout-menu .layout-menu-pop a.active,.layout-menu .layout-menu-pop a:hover{color:var(--blue);background:var(--lavender)}.push-confirm{width:100%;max-width:420px}.push-confirm .push-actions{justify-content:flex-end;margin-top:.25rem}.tag-chip{display:inline-block;font-size:.75rem;font-weight:600;color:var(--midnight-blue);border:1px solid var(--gray-light);border-radius:3px;padding:.125rem .5rem}.tag-chip.priority-high{color:#fff;background:#c0392b;border-color:#c0392b}.tag-chip.priority-medium{background:var(--lavender)}.tag-chip.priority-low{color:var(--gray)}.tag-chip.status-closed{color:var(--gray);text-decoration:line-through}.tag-chip.unseen-chip{color:#fff;background:var(--blue);border-color:var(--blue)}.tag-chip .chip-x{background:none;border:none;cursor:pointer;margin-left:.375rem;font-weight:700;color:inherit}.issue-row{color:inherit;text-decoration:none}.issue-body{white-space:pre-wrap}.issue-comment{border-left:3px solid var(--gray-light);padding-left:.75rem}.span-badge{font-weight:600;color:var(--teal)}.invoice-line{display:grid;grid-template-columns:minmax(160px,1fr) 130px 90px 100px 80px 110px 30px;gap:.75rem;align-items:center}.invoice-line.no-actions{grid-template-columns:minmax(160px,1fr) 130px 90px 100px 80px 110px}.invoice-line.no-tax{grid-template-columns:minmax(160px,1fr) 130px 90px 100px 110px 30px}.invoice-line.no-tax.no-actions{grid-template-columns:minmax(160px,1fr) 130px 90px 100px 110px}.invoice-line input{min-width:0}.invoice-line .line-field{display:contents}.invoice-line .lf-label{display:none}.invoice-line.line-header{font-size:.8125rem;font-weight:600;color:var(--gray-dark)}.invoice-line .line-amount{text-align:right;font-weight:600;color:var(--midnight-blue)}.invoice-line .line-actions{justify-content:flex-end}@media(max-width:768px){.invoice-line,.invoice-line.no-actions,.invoice-line.no-tax,.invoice-line.no-tax.no-actions{grid-template-columns:minmax(0,1fr) 112px}.invoice-line{row-gap:.5rem}.invoice-line.line-header{display:none}.invoice-line input[name=description]{grid-column:1/-1}.invoice-line .line-field{display:flex;align-items:center;gap:.5rem;min-width:0;background:#fff;border:1px solid rgba(20,16,90,.3);border-radius:.75rem;padding:0 12px;min-height:34px}.invoice-line .line-field:focus-within{border-color:#2b21ee}.invoice-line .line-field input{flex:1;min-width:0;border:none;border-radius:0;background:transparent;padding:6px 0;min-height:0}.invoice-line .line-field input:focus{border:none}.invoice-line .lf-label{display:block;white-space:nowrap;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--gray)}.invoice-line .line-amount{text-align:left;align-self:center}.invoice-line:not(.line-header){border-bottom:1px solid var(--gray-light);padding-bottom:.75rem}}.invoice-preview{max-width:850px;margin:0 auto;padding:1.5rem 1rem 3rem}.invoice-preview.embedded{padding:0;max-width:none;min-height:100vh;background:#fff}.invoice-preview.embedded .invoice-sheet{border:none;border-radius:0}.invoice-preview .preview-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.invoice-preview .preview-toolbar .spacer{flex:1}.invoice-preview .invoice-sheet{background:#fff;border:1px solid var(--gray-light);border-radius:8px;padding:2.5rem;display:flex;flex-direction:column;gap:2rem}.invoice-preview .invoice-logo{max-height:60px;max-width:220px;object-fit:contain;align-self:flex-start;margin-bottom:.5rem}.invoice-preview .doc-type{font-size:1.25rem;font-weight:700;letter-spacing:.08em;color:var(--midnight-blue)}.invoice-preview .biz-line{font-size:.8125rem;color:var(--gray-dark)}.invoice-preview .meta-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray)}.invoice-preview .preview-lines{width:100%;border-collapse:collapse;font-size:.875rem}.invoice-preview .preview-lines th,.invoice-preview .preview-lines td{padding:.5rem .6rem;text-align:left}.invoice-preview .preview-lines th.tar,.invoice-preview .preview-lines td.tar{text-align:right}.invoice-preview .preview-lines thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);border-bottom:2px solid var(--gray-light)}.invoice-preview .preview-lines tbody td{border-bottom:1px solid var(--gray-light)}.invoice-preview .preview-totals{font-size:.9375rem}.invoice-preview .preview-totals strong{font-size:1.125rem;color:var(--midnight-blue)}.invoice-preview .preview-notes p{white-space:pre-wrap;font-size:.875rem}.disclosure-btn .chev{transition:transform .2s ease}.disclosure-btn.open .chev{transform:rotate(180deg)}.email-body-input{font-size:.875rem;line-height:1.5;white-space:pre-wrap}.qbo-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border-radius:8px;background:var(--lavender, #eef);border:1px solid #d3bf00;font-size:.9375rem}.qbo-banner.broken{border-color:var(--rust);background:var(--rust-light)}.qbo-banner.good{border-color:#58b368;background:#58b3681f}.preview-modal{max-width:900px}.preview-modal .spacer{flex:1}.preview-modal .preview-frame{width:100%;height:min(72vh,900px);border:1px solid var(--gray-light);border-radius:8px;background:#fff}@media print{.no-print{display:none!important}.invoice-preview{padding:0}.invoice-preview .invoice-sheet{border:none;padding:0}}.invoice-totals{border-top:1px solid var(--gray-light);padding-top:.75rem}.invoice-totals strong{font-size:1.125rem;color:var(--midnight-blue)}.status-badge.invoice-status-draft{background:var(--gray)}.status-badge.invoice-status-sent{background:var(--teal)}.status-badge.invoice-status-paid{background:var(--green)}.status-badge.invoice-status-void{background:var(--rust)}.status-badge.invoice-status-partial{background:#58b368}h1 .status-badge,h2 .status-badge{vertical-align:middle}.job-files{gap:1rem}.job-files>.error-text{order:-2}.job-files>div.card:nth-of-type(2){order:-1}.files-row{display:flex;flex-direction:column;gap:1.5rem}@media(min-width:1440px){.files-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)}.files-row .job-files{display:contents}.files-row .error-text{grid-column:1/-1}}.image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem;align-items:start}.image-thumb{position:relative}.image-thumb .thumb-btn,.image-thumb .thumb-heic{aspect-ratio:1}.image-thumb .thumb-caption{width:100%;margin-top:4px;font-size:.75rem;padding:3px 6px;min-height:auto}.image-thumb .thumb-caption-text{display:block;width:100%;margin-top:4px;font-size:.75rem;color:var(--gray-dark);line-height:1.3}.image-thumb .thumb-caption-text.editable{background:transparent;border:none;text-align:left;padding:0;cursor:text}.image-thumb .thumb-caption-text.editable:hover{color:var(--blue)}.image-thumb .thumb-caption-add{display:block;width:100%;margin-top:4px;background:transparent;border:none;text-align:left;padding:0;font-size:.75rem;color:var(--gray);cursor:text}.image-thumb .thumb-caption-add:hover{color:var(--blue)}.image-thumb .thumb-btn{display:block;width:100%;border:1px solid var(--gray-light);border-radius:6px;background-size:cover;background-position:center;cursor:pointer;padding:0}.image-thumb .thumb-heic{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;border:1px dashed var(--gray-light);border-radius:6px;font-size:.75rem;font-weight:700;color:var(--gray);text-align:center}.image-thumb .thumb-delete,.image-thumb .thumb-download{position:absolute;top:4px;width:22px;height:22px;min-height:auto;padding:0;border:none;border-radius:50%;background:#14105abf;color:var(--white);font-size:.75rem;line-height:22px;text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center}.image-thumb .thumb-delete svg{width:13px;height:13px}.image-thumb .thumb-download{left:4px}.image-thumb .thumb-download:hover{background:var(--blue);color:var(--white)}.image-thumb .thumb-delete{right:4px}.image-thumb .thumb-delete:hover{background:var(--rust)}.lightbox{position:fixed;inset:0;z-index:400;background:#000000d9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem}.lightbox img{max-width:92vw;max-height:80vh;border-radius:6px;box-shadow:0 4px 24px #00000080}.lightbox .lightbox-bar .btn{color:#fff;border-color:#ffffffb3;background:#ffffff14}.lightbox .lightbox-bar .btn:hover{color:var(--midnight-blue);background:#fff;border-color:#fff}.sync-status{position:fixed;bottom:0;left:0;right:0;z-index:350;color:var(--white);text-align:center;font-size:.8125rem;font-weight:600;padding:.4rem 1rem;padding-bottom:calc(.4rem + env(safe-area-inset-bottom,0px))}.sync-status.sync-offline{background:var(--gray-dark)}.sync-status.sync-syncing{background:var(--blue)}.sync-status.sync-pending{background:var(--rust)}.preview-banner{position:fixed;top:0;left:0;right:0;z-index:300;height:2.75rem;display:flex;align-items:center;gap:.75rem;padding:0 .875rem;background:var(--accent);color:var(--midnight-blue);font-weight:600;font-size:.8125rem;box-shadow:0 1px 4px #00000026}.preview-banner .preview-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-banner .btn{flex-shrink:0;background:var(--midnight-blue);color:var(--white);border:none;padding:.3rem .75rem;font-size:.75rem}.preview-banner .btn:hover{background:var(--blue)}@media(max-width:992px){body:has(.preview-banner) .user-menu{top:calc(2.75rem + (3px + 1.5rem)/2)}}@media(min-width:993px){body:has(.preview-banner) .app-sidebar{top:2.75rem}body:has(.preview-banner) .app-sidebar~main{padding-top:3.75rem}}@media(max-width:992px){body:has(.preview-banner){padding-top:2.75rem}}.job-notify-stack{position:fixed;bottom:1.25rem;right:1.25rem;left:auto;top:auto;width:min(360px,100% - 2rem);z-index:250;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.job-notify{pointer-events:auto;display:flex;align-items:stretch;background:var(--white);border:1px solid var(--teal);border-left:4px solid var(--teal);border-radius:6px;box-shadow:0 6px 20px #14105a2e;overflow:hidden;animation:toast-in .35s ease}.job-notify.leaving{animation:toast-out .4s ease forwards}.job-notify .job-notify-open{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;text-align:left;background:transparent;border:none;padding:.6rem .85rem;cursor:pointer}.job-notify .job-notify-open:hover{background:#06b2af14}.job-notify .job-notify-label{color:var(--teal);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.02em}.job-notify .job-notify-addr{color:var(--midnight-blue);font-weight:600;font-size:.9375rem}.job-notify .job-notify-dismiss{flex-shrink:0;background:transparent;border:none;border-left:1px solid var(--gray-light);color:var(--gray);font-size:.9375rem;padding:0 .85rem;cursor:pointer}.job-notify .job-notify-dismiss:hover{background:var(--lavender);color:var(--midnight-blue)}body:has(.sync-status) .job-notify-stack{bottom:3rem}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translate(16px)}}.preview-toggle{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:1px dashed var(--gray-light);color:var(--gray-dark);font-size:.8125rem;font-weight:600;padding:6px 10px;border-radius:3px;width:100%;text-align:left}.preview-toggle .eye-icon{flex-shrink:0}.preview-toggle:hover{background:var(--lavender);color:var(--blue);border-color:var(--blue)}.my-jobs .day-clock{padding:.625rem 1rem}.my-jobs .day-clock.timer-running{border-color:var(--green)}.my-jobs .day-clock.timer-paused{border-color:var(--gray)}.my-jobs .day-clock .day-clock-label{font-weight:700;color:var(--midnight-blue)}.my-jobs .day-clock .live-timer{position:relative;display:flex;align-items:baseline;gap:.5rem;padding:0;text-align:left}.my-jobs .day-clock .live-timer .timer-value{display:inline;font-size:.9375rem}.my-jobs .day-clock .live-timer .timer-label{position:absolute;top:-.35rem;right:0;font-size:.5625rem;line-height:1;white-space:nowrap}.my-jobs .my-job-card{color:inherit;background:var(--lavender)}.my-jobs .my-job-card:hover{border-color:var(--primary)}.my-jobs .my-job-card.timer-running,.my-jobs .my-job-card.timer-running:hover{border-color:var(--green)}.my-jobs .my-job-card.timer-paused,.my-jobs .my-job-card.timer-paused:hover{border-color:var(--gray)}.my-jobs .my-job-card .my-timer-row{margin-left:auto;justify-content:flex-end}.my-jobs .my-job-card strong{color:var(--midnight-blue)}.my-jobs .my-job-card .my-addr{min-width:0}.my-jobs .my-job-card .my-addr .map-link{flex-shrink:0}@media(max-width:768px){.my-jobs .my-job-card .my-addr{line-height:1.25}}.my-jobs .my-job-card .my-card-timer .live-timer{position:relative;display:flex;align-items:baseline;gap:.5rem;padding:0;text-align:left}.my-jobs .my-job-card .my-card-timer .live-timer .timer-value{display:inline;font-size:.9375rem}.my-jobs .my-job-card .my-card-timer .live-timer .timer-label{position:absolute;top:-.35rem;right:0;font-size:.5625rem;line-height:1;white-space:nowrap}.my-jobs h3.is-today{color:var(--primary)}.job-work{max-width:640px}.job-work h1{font-size:1.25rem}.job-work .big-btn{font-size:1rem;padding:.875rem 1.25rem;width:100%}.job-work .work-actions .grow{flex:1}.job-work .complete-btn{background:var(--green)}.job-work .complete-btn:hover{background:var(--green);opacity:.9}.job-work .time-seg{align-items:center;padding:.375rem 0;border-top:1px solid var(--gray-light)}.job-work .time-seg input[type=datetime-local]{flex:1;min-width:150px}.job-work .time-seg .seg-hours{margin-left:auto;font-size:.875rem}.live-timer{text-align:center;padding:.5rem 0}.live-timer .timer-value{display:block;font-size:2.25rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--gray)}.live-timer.is-running .timer-value{color:var(--green)}.live-timer .timer-label{font-size:.8125rem;color:var(--gray);text-transform:uppercase;letter-spacing:.5px}.data-table .entry-block{border-bottom:1px solid var(--gray-light)}.data-table .entry-block:last-child{border-bottom:none}.data-table .entry-block .tr{border-bottom:none}.data-table .entry-block .entry-edit-row{padding:0 0 .625rem}.data-table .entry-block .entry-edit-row input[type=datetime-local]{max-width:205px}.job-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--gray-light)}.job-tabs button,.job-tabs a{background:transparent;border:none;border-bottom:2px solid transparent;padding:.5rem 1rem;font-weight:600;font-size:.9375rem;color:var(--gray);cursor:pointer;text-decoration:none}.job-tabs button.active,.job-tabs a.active{color:var(--midnight-blue);border-bottom-color:var(--primary)}.job-tabs button:hover,.job-tabs a:hover{color:var(--blue)}.hazard-item{align-items:center;font-size:1rem;padding:.375rem 0}.hazard-item input[type=checkbox]{width:22px;height:22px;min-height:auto;flex-shrink:0}.hazard-config-section{background:var(--off-white)}.hazard-config-section input{flex:1}.hazard-send-row{align-items:center;padding-top:.5rem}.hazard-send-row .hazard-extra-emails{flex:1;min-width:180px}.kpi-cards{gap:1rem}.kpi{text-align:center;padding:1.25rem 1rem}.kpi .kpi-value{display:block;font-size:1.75rem;font-weight:700;color:var(--midnight-blue);font-variant-numeric:tabular-nums}.kpi .kpi-label{display:block;margin-top:.25rem;font-size:.8125rem;color:var(--gray)}.kpi .kpi-prev{display:block;margin-top:.375rem;font-size:.75rem;color:var(--gray)}.delta-up{color:var(--green);font-weight:600}.delta-down{color:var(--rust);font-weight:600}.compare-toggle{align-items:center;font-size:.875rem;color:var(--gray-dark);white-space:nowrap}.app-image-preview{max-width:280px;max-height:180px;object-fit:contain;border:1px solid var(--gray-light);border-radius:6px}.legend-compare{color:var(--gray);font-style:italic}.bar-chart .bar-row{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:.75rem;font-size:.875rem}.bar-chart .bar-label{color:var(--gray-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-chart .bar-track{position:relative;background:var(--lavender);border-radius:3px;height:16px}.bar-chart .bar-fill{position:absolute;top:0;left:0;height:100%;background:var(--teal);border-radius:3px;min-width:2px;transition:width .3s ease}.bar-chart .bar-prev{background:var(--gray-light);opacity:.8;z-index:0}.bar-chart .bar-value{color:var(--midnight-blue);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.bar-chart .bar-value .bar-prev-value{color:var(--gray);font-weight:400}.report-table{font-size:.875rem}.report-table .report-row{display:grid;grid-template-columns:1.5fr 1fr 1fr .7fr 1fr;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--gray-light)}.report-table .report-row span:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.report-table .report-head{font-weight:600;color:var(--gray-dark)}.line-chart svg,.stacked-chart svg{width:100%;height:auto}.line-chart .chart-tick,.stacked-chart .chart-tick{font-size:11px;fill:var(--gray)}.stacked-chart{position:relative}.stacked-chart .chart-mode{justify-content:flex-end}.stacked-chart .chart-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 8px));background:var(--midnight-blue);color:#fff;font-size:.75rem;line-height:1.4;padding:.375rem .625rem;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:5}.chart-legend{font-size:.8125rem;color:var(--gray-dark)}.chart-legend .legend-item{display:inline-flex;align-items:center;gap:.375rem}.chart-legend .legend-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.jobs-map{height:70vh;min-height:400px;border-radius:8px;border:1px solid var(--gray-light);z-index:0}.map-pin{width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid var(--white);box-shadow:0 1px 4px #0006;display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-size:12px}.map-pin span{transform:rotate(45deg)}.map-pin-wrapper{background:transparent;border:none}.email-modal{width:min(760px,92vw);max-height:86vh;overflow-y:auto}.email-modal .email-html-frame{width:100%;height:60vh;border:1px solid var(--gray-light);border-radius:6px;background:#fff}.email-modal .email-body-pre{white-space:pre-wrap;font-family:inherit;font-size:.875rem;max-height:60vh;overflow-y:auto}.map-popup .map-popup-assign{margin-top:.5rem}.map-popup .map-popup-assign select{width:100%;font-size:.8125rem}.map-pin.pin-hot{transform:rotate(-45deg) scale(1.35);box-shadow:0 0 0 4px #2b21ee73,0 1px 4px #0006;transition:transform .12s ease,box-shadow .12s ease}.map-pin.pin-crew{opacity:.5}.paste-drag-over{outline:2px dashed var(--blue);outline-offset:6px;border-radius:8px}.paste-thumb{position:relative;display:inline-flex}.paste-thumb img{height:72px;border-radius:6px;border:1px solid var(--gray-light)}.paste-thumb button{position:absolute;top:-8px;right:-8px;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:var(--midnight-blue);color:var(--white);font-size:.7rem;line-height:1;cursor:pointer}.paste-preview-img{max-height:50vh;max-width:100%;border-radius:6px;border:1px solid var(--gray-light)}.draft-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem 1rem}@media(min-width:700px){.draft-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1440px){.draft-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.draft-grid .draft-notes{grid-column:1/-1}.board-drag-item.split-hot>.card,.board-drag-item.split-hot>.data-row{box-shadow:0 0 0 3px #2b21ee59;border-radius:8px;transition:box-shadow .12s ease}.split-chip{background:var(--lavender);border-color:transparent;white-space:nowrap;font-weight:600}.split-chip-share{background:transparent;border:1px solid var(--gray-light);color:var(--gray-dark);font-weight:400}.qbo-chip{background:var(--lavender);border-color:transparent;margin-left:.5rem;font-size:.65rem;vertical-align:middle}.draft-job .chip-new{background:var(--lavender);border-color:transparent}.draft-job .chip-update{background:var(--yellow);border-color:transparent}.search-bar input[type=search]{flex:1;min-width:200px}.search-bar select{width:auto}.data-list .data-row{padding:.75rem 0;border-bottom:1px solid var(--gray-light)}.data-list .data-row:last-child{border-bottom:none}.data-list .data-row .row-meta{color:var(--gray);font-size:.875rem}.data-list .data-row a h3:hover{color:var(--blue)}.row-meta{color:var(--gray);font-size:.875rem}.page-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.page-toolbar .spacer{flex:1}.cell-main{font-weight:500;color:var(--midnight-blue)}.cell-main.regular{font-weight:400}.data-table{display:flex;flex-direction:column}.data-table .tr{display:grid;gap:1rem;align-items:center;padding:.625rem 0;border-bottom:1px solid var(--gray-light)}.data-table .tr:last-child{border-bottom:none}.data-table .tr.head{padding:.375rem 0;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray)}.data-table .tr .num{text-align:right}.data-table a.tr{color:var(--dark)}.data-table a.tr:hover{background:var(--lavender)}@media(max-width:768px){.data-table .tr{grid-template-columns:1fr!important;gap:.25rem;justify-items:start}.data-table .tr .num{text-align:left}.data-table .tr.head{display:none}}.job-tr{display:grid;grid-template-columns:minmax(180px,2.2fr) minmax(130px,1.4fr) minmax(100px,1fr) 110px minmax(150px,1.1fr) 110px;gap:1rem;align-items:center}.job-tr.with-date{grid-template-columns:minmax(180px,2.2fr) minmax(130px,1.4fr) 100px minmax(100px,1fr) 110px minmax(150px,1.1fr) 110px}.job-tr.with-flags{grid-template-columns:minmax(180px,2.2fr) minmax(130px,1.4fr) minmax(100px,1fr) 110px minmax(140px,1fr) 84px 118px 110px}.job-tr.with-date.with-flags{grid-template-columns:minmax(170px,2.2fr) minmax(120px,1.4fr) 100px minmax(100px,1fr) 100px minmax(130px,1fr) 84px 118px 110px}.job-tr>*{min-width:0}.job-tr .cell-flag{text-align:center}.job-tr .cell-flag input[type=checkbox]{vertical-align:middle}.job-tr .map-link.status-map-link{display:none}@media(max-width:768px){.job-tr .map-link.status-map-link{display:inline-flex;flex-shrink:0}.job-tr .cell-address a.map-link{display:none}}.job-tr .cell-address .map-link{flex-shrink:0;display:inline-flex}.job-tr .cell-address .cell-address-link{min-width:0}.job-tr .cell-address h3{white-space:normal;overflow-wrap:anywhere}.job-tr .cell-address .tag-chip{flex-shrink:0}.job-tr .cell-client .job-client,.job-tr .cell-date,.job-tr .cell-service{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-tr .job-qty{white-space:nowrap}.job-tr .cell-crew{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding-left:.75rem}@media(max-width:768px){.job-tr{gap:.5rem;font-size:.8125rem;grid-template-columns:minmax(240px,2.4fr) minmax(100px,1.2fr) minmax(90px,1fr) 80px minmax(110px,1fr) 104px}.job-tr.with-date{grid-template-columns:minmax(240px,2.4fr) minmax(100px,1.2fr) 80px minmax(90px,1fr) 80px minmax(110px,1fr) 104px}.job-tr.with-flags{grid-template-columns:minmax(240px,2.4fr) minmax(100px,1.2fr) minmax(90px,1fr) 80px minmax(110px,1fr) 40px 48px 104px}.job-tr.with-date.with-flags{grid-template-columns:minmax(240px,2.4fr) minmax(100px,1.2fr) 80px minmax(90px,1fr) 80px minmax(110px,1fr) 40px 48px 104px}.job-tr span.cell-status{display:flex;align-items:center;justify-content:flex-end;gap:.4rem}.job-tr .cell-address h3{font-size:.875rem}.job-tr .cell-date.row-meta,.job-tr .cell-service.row-meta,.job-tr .crew-select-wrap{font-size:.8125rem}.job-tr .crew-select-wrap svg{width:12px;height:12px}.job-tr .cell-crew{padding-left:.375rem}}.job-tr .crew-name-static{font-weight:600;color:var(--midnight-blue)}.job-table{overflow-x:auto}.job-table .board-drag-item .data-row{border-bottom:1px solid var(--gray-light)}.job-table .board-drag-item:last-child .data-row{border-bottom:none}.job-table .job-tr{min-width:860px}.job-table .job-tr.with-date{min-width:980px}.job-table .job-tr.with-flags{min-width:1090px}.job-table .job-tr.with-date.with-flags{min-width:1160px}@media(max-width:768px){.job-table .job-tr{min-width:764px}.job-table .job-tr.with-date{min-width:852px}.job-table .job-tr.with-flags{min-width:868px}.job-table .job-tr.with-date.with-flags{min-width:956px}}.crew-section .job-table{padding-left:20px;margin-left:-20px}.job-list-head{padding:.375rem 0;border-bottom:1px solid var(--gray-light);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray)}.job-list-head .cell-flag{white-space:nowrap}.job-list-head .lbl-short{display:none}@media(max-width:768px){.job-list-head{font-size:.625rem}.job-list-head .lbl-full{display:none}.job-list-head .lbl-short{display:inline}}.temp-password{border-left:4px solid var(--accent)}.temp-password code{display:inline-block;font-size:1.125rem;background:var(--off-white);border:1px solid var(--gray-light);border-radius:4px;padding:.5rem .75rem;margin-top:.5rem;-webkit-user-select:all;user-select:all}.form-page{max-width:800px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media(max-width:768px){.form-grid{grid-template-columns:1fr}}@media(min-width:1440px){.form-page.form-page-wide{max-width:calc(100% - 220px - 14rem)}}@media(min-width:1440px){.form-grid.form-grid-wide{grid-template-columns:repeat(4,1fr)}}.view-grid{display:grid;gap:1.25rem 1.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:992px){.view-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1440px){.view-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.source-email-row{align-items:flex-end}@media(max-width:768px){.source-email-row{flex-direction:column;align-items:flex-start}}.detail-cards{display:grid;gap:1.5rem;grid-template-columns:1fr}@media(min-width:1440px){.detail-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.page-back{align-self:flex-start;font-size:.9375rem;font-weight:600;text-decoration:none}.page-back:hover{text-decoration:underline}.setting-row{display:grid;grid-template-columns:minmax(200px,1fr) 2fr;gap:.375rem 1.5rem;align-items:start}.setting-row .setting-side{display:flex;align-items:center;gap:.5rem}.setting-row .setting-control{display:flex;flex-direction:column;gap:.5rem;min-width:0}@media(max-width:768px){.setting-row{grid-template-columns:1fr}}.input-xs{max-width:110px}.form-grid.form-grid-fit{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-grid.form-grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:992px){.form-grid.form-grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.form-grid.form-grid-3{grid-template-columns:1fr}}.card-bottom-row{font-size:.9375rem}.card-bottom-row .job-qty-row{font-size:.75rem}.card-bottom-row form{flex:1;min-width:0}.card-bottom-row .job-qty-row{white-space:nowrap;flex-shrink:0}@media(max-width:768px){.card-bottom-row .crew-select-wrap{font-size:.75rem}.card-bottom-row .crew-select-wrap svg{width:12px;height:12px}}.crew-select-wrap{position:relative;display:inline-flex;align-items:center;gap:.35rem;max-width:100%;font-size:.9375rem;font-weight:600;color:var(--midnight-blue);cursor:pointer}.crew-select-wrap.unassigned{color:var(--gray)}.crew-select-wrap .crew-select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-select-wrap svg{flex-shrink:0}.crew-select-wrap select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0;min-height:0}.crew-select-wrap:hover,.crew-select-wrap:focus-within{color:var(--blue)}.job-qty{font-weight:600}.job-qty-inline{display:none}.invoice-flags .job-qty-row,.card-bottom-row .job-qty-row{display:inline-flex;align-items:center;margin-left:auto;color:var(--midnight-blue)}.member-flags{border-top:1px solid var(--gray-light);padding-top:1rem}.info-tip,.btn-tip{position:relative;display:inline-flex}.info-tip button,.btn-tip button{display:inline-flex;align-items:center;padding:0;background:none;border:none;color:var(--gray);cursor:help}.info-tip button:hover,.btn-tip button:hover{color:var(--midnight-blue)}.info-tip .info-tooltip,.btn-tip .info-tooltip{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:max-content;max-width:260px;padding:8px 10px;font-size:.8125rem;font-weight:400;line-height:1.35;color:#fff;background:var(--midnight-blue);border-radius:6px;box-shadow:0 4px 16px #14105a40;white-space:normal}@media(hover:hover){.info-tip:hover .info-tooltip,.btn-tip:hover .info-tooltip{display:block}}.info-tip.open .info-tooltip,.btn-tip.open .info-tooltip{display:block}.info-tip.tip-up .info-tooltip,.btn-tip.tip-up .info-tooltip{top:auto;bottom:calc(100% + 6px)}.btn-tip{margin-left:.4rem;color:currentColor}.btn-tip svg{display:block;opacity:.7}.btn-tip:hover svg{opacity:1}.btn-tip .info-tooltip{left:auto;right:-.75rem;text-transform:none;letter-spacing:normal;text-align:left;cursor:default}.btn-tip:hover .info-tooltip{display:block}@media(max-width:768px){.updated-note .updated-tooltip,.info-tip .info-tooltip{position:fixed;top:auto;left:1rem;right:1rem;bottom:4rem;width:auto;max-width:none;z-index:500}}.not-found{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 1.5rem;text-align:center}.not-found img{height:46px;margin-bottom:.75rem}.not-found p{color:var(--gray);max-width:28rem}.not-found .btn{margin-top:.75rem}.not-found pre{text-align:left;max-width:min(100%,60rem);overflow-x:auto;font-size:.75rem}.not-found .error-details{max-width:min(100%,60rem)}.not-found .error-details summary{cursor:pointer;color:var(--gray);font-size:.875rem}.not-found .error-details summary:hover{color:var(--midnight-blue)}.not-found .error-details pre{margin-top:.75rem}.edit-toggle{display:inline-flex;align-items:center;gap:.4rem}.add-new-btn{align-self:flex-start}.user-pills{margin-top:.25rem}.user-pills .pill{display:inline-block;font-size:.6875rem;font-weight:600;text-transform:capitalize;background:transparent;color:var(--midnight-blue);border:1px solid var(--gray-light);border-radius:999px;padding:.05rem .55rem;line-height:1.5}.user-pills .pill.pill-on{background:var(--light-green);color:var(--green);border-color:transparent}.user-pills .pill.pill-off{background:var(--off-white);color:var(--gray)}.user-pills .pill.pill-muted{background:var(--rust-light);color:var(--rust);border-color:transparent}.user-login{border-top:1px solid var(--gray-light);padding-top:.75rem}.crew-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem 1rem}.assignable-list{max-height:16rem;overflow-y:auto}.my-pager{margin-top:1rem}.modal-overlay{position:fixed;inset:0;z-index:400;background:#14105a66;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-card{width:100%;max-width:640px;max-height:90vh;overflow-y:auto}@media(min-width:1400px){.modal-card{max-width:960px}}.share-view{max-width:820px}.share-view .share-head{align-items:center;text-align:center;margin-bottom:.5rem}.share-view .share-logo{width:min(200px,60%);height:auto}.share-view .share-footer{text-align:center;margin-top:1rem}.email-html-frame{width:100%;min-height:420px;border:1px solid var(--gray-light);border-radius:4px;background:var(--white)}.email-raw{white-space:pre-wrap;word-break:break-word;font-size:.8125rem;max-height:420px;overflow:auto;background:var(--off-white);padding:.75rem;border-radius:4px}.view-field{min-width:0}.view-field .view-value{overflow-wrap:anywhere}.job-view .view-field{gap:.15rem}.job-view .view-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray)}.job-view .view-value{font-size:1rem;color:var(--midnight-blue);font-weight:400}.job-view .view-block{white-space:pre-wrap}.job-delete{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-light)}
