:root{--navy:#0b2b5b;--navy-soft:rgba(11,43,91,.08);--red:#d61f2b;--red-text:#a8101a;--green:#157347;--green-soft:#e3f4ea;--amber:#8a5a00;--amber-soft:#fff3d6;--ink:#1c2433;--muted:#5a6478;--line:#e3e6ec;--bg:#ecf8f8;--sidebar:#b8d8ba;--sidebar-w:220px;--tabbar-h:0px;--topbar-h:0px;--topbar-gap:0px;--chrome-top:calc(var(--topbar-gap) + var(--topbar-h));--chip-gap:0px;--glass-tint:rgba(18,22,30,.16);--glass-sheen:linear-gradient(180deg, rgba(255,255,255,.13) 0%, rgba(255,255,255,.016) 46%, rgba(255,255,255,.05) 100%);--glass-blur:blur(26px) saturate(140%) brightness(.46);--glass-rim:inset 0 1px 0 rgba(255,255,255,.42), inset 0 0 0 1px rgba(255,255,255,.14);--glass-shadow:0 16px 36px rgba(0,0,0,.28);--glass-pane:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.8) 100%);--tray-gap:8px;--surface:#fff;--radius:14px;--radius-sm:10px;--shadow-sm:0 2px 8px rgba(11,43,91,.06);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-padding-top:calc(var(--chrome-top) + 12px)}html,body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.45}h1{color:var(--navy);margin:0 0 16px;font-size:1.5rem}h2{margin:0;font-size:1.1rem}h3{margin:0;font-size:1.05rem}p{margin:0}a{color:var(--navy)}.muted{color:var(--muted);font-size:.92rem}.hint{color:var(--muted);margin:8px 0 12px;font-size:.88rem}.brand{z-index:1;color:var(--navy);align-items:center;gap:.6em;text-decoration:none;display:inline-flex;position:relative}.brand img{width:auto;height:clamp(40px,9vw,52px);display:block}.brand-name{flex-direction:column;line-height:1;display:flex}.brand-name strong{letter-spacing:.06em;text-transform:uppercase;font-size:clamp(19px,4.6vw,24px);font-weight:800}.brand-name span{letter-spacing:.14em;text-transform:uppercase;color:var(--red-text);margin-top:.4em;font-size:clamp(10px,2.6vw,12px);font-weight:700}.side-brand{border-bottom:1px solid rgba(11,43,91,.12);flex:none;gap:8px;padding:2px 4px 14px}.side-brand img{height:44px}.side-brand .brand-name strong{font-size:19px}.side-brand .brand-name span{letter-spacing:.08em;font-size:9px}.side-top{flex-direction:column;gap:12px;display:flex}.page-brand{justify-content:center;margin-bottom:14px;display:flex}.phone-top{display:none}.shell{align-items:flex-start;min-height:100vh;display:flex}.sidebar{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);background:var(--sidebar);border-right:1px solid rgba(11,43,91,.08);flex-direction:column;justify-content:space-between;gap:16px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.side-nav,.side-account{flex-direction:column;gap:4px;display:flex}.side-link{border-radius:var(--radius-sm);width:100%;min-height:46px;color:var(--navy);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 14px;font-size:.97rem;font-weight:600;text-decoration:none;display:flex}.side-link span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-link .icon{flex:none}.side-link:hover{background:rgba(255,255,255,.45)}.side-link.active{box-shadow:var(--shadow-sm);background:#fff}.side-link .phone-only{display:none}.side-out{color:var(--red-text)}.tabbar{left:var(--tray-gap);right:var(--tray-gap);bottom:env(safe-area-inset-bottom);z-index:55;background:var(--glass-sheen), var(--glass-tint);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-rim), var(--glass-shadow);isolation:isolate;border:1px solid rgba(255,255,255,.18);border-bottom:0;border-radius:22px 22px 0 0;transition:transform .24s cubic-bezier(.2,.9,.25,1);display:none;position:fixed}body.typing .tabbar{transform:translateY(calc(100% + env(safe-area-inset-bottom) + 6px))}.tab{min-width:0;min-height:var(--tabbar-h);color:#fff;font:inherit;text-align:center;text-shadow:0 1px 2px rgba(3,14,32,.45);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;padding:6px 2px;font-size:.66rem;font-weight:600;line-height:1.1;text-decoration:none;transition:transform .16s,background .16s,box-shadow .16s;display:flex}.tab span{overflow-wrap:anywhere;max-width:100%}.tab.on{font-weight:700}.tabbar .tab.on{min-height:calc(var(--tabbar-h) - 12px);background:var(--glass-pane);color:var(--navy);text-shadow:none;border-radius:16px;margin:6px 4px;box-shadow:inset 0 1px #fff,0 4px 14px rgba(3,14,32,.3)}.tabbar .tab:active{background:rgba(255,255,255,.2);transform:scale(.93)}.tabbar .tab.on:active{background:#fff}.modal-backdrop.sheet-backdrop{backdrop-filter:blur(3px);background:rgba(4,18,40,.34);align-items:flex-end;padding:0;animation:.18s sheet-fade}@keyframes sheet-fade{0%{opacity:0}}.modal.tab-sheet{max-width:520px;margin:0 var(--tray-gap) calc(var(--tray-gap) + env(safe-area-inset-bottom));background:var(--glass-sheen), rgba(18,22,30,.58);max-height:calc(100vh - 32px);backdrop-filter:var(--glass-blur);color:#fff;box-shadow:var(--glass-rim), 0 24px 60px rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.18);border-radius:24px;padding:18px 14px 14px;animation:.24s cubic-bezier(.2,.9,.25,1) sheet-rise}@keyframes sheet-rise{0%{opacity:.5;transform:translateY(18px)scale(.98)}}.modal.tab-sheet h2{color:#fff;letter-spacing:.01em;margin:0 0 10px;font-size:1.15rem}.modal.tab-sheet .modal-x{color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);top:10px;right:10px;box-shadow:inset 0 1px rgba(255,255,255,.3)}.modal.tab-sheet .modal-x:hover{color:#fff;background:rgba(255,255,255,.28);outline:2px solid rgba(255,255,255,.55)}.modal.tab-sheet .modal-x:focus-visible{color:#fff;background:rgba(255,255,255,.28);outline:2px solid rgba(255,255,255,.55)}.sheet-list{gap:4px;display:grid}.sheet-list .tab{color:#fff;text-align:left;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.17);border-radius:14px;flex-direction:row;justify-content:flex-start;gap:12px;min-height:48px;padding:10px 12px;font-size:.97rem;box-shadow:inset 0 1px rgba(255,255,255,.2)}.sheet-list .tab:active{background:rgba(255,255,255,.24);transform:scale(.985)}.sheet-list .tab.on{background:var(--glass-pane);color:var(--navy);text-shadow:none;border-color:rgba(255,255,255,.6);box-shadow:inset 0 1px #fff,0 4px 14px rgba(3,14,32,.28)}.sheet-out{color:#ff9aa1;width:100%;min-height:48px;font:inherit;text-align:left;cursor:pointer;text-shadow:0 1px 2px rgba(3,14,32,.4);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:14px;align-items:center;gap:12px;margin-top:8px;padding:10px 12px;font-size:.97rem;font-weight:700;transition:transform .16s,background .16s;display:flex;box-shadow:inset 0 1px rgba(255,255,255,.14)}.sheet-out:active{background:rgba(255,255,255,.2);transform:scale(.985)}.nav-tip{z-index:200;border-radius:var(--radius-sm);background:var(--ink);color:#fff;opacity:0;pointer-events:none;max-width:240px;padding:7px 10px;font-size:.84rem;font-weight:500;line-height:1.35;transition:opacity .12s;display:none;position:fixed;transform:translateY(-50%);box-shadow:0 8px 22px rgba(11,43,91,.28)}@media (hover:hover) and (width>=561px){.nav-tip{display:block}.nav-tip.on{opacity:1}}.page{flex:1;min-width:0;max-width:960px;margin:0 auto;padding:20px 16px 64px}.shell>.page{margin-left:0}@media (width<=560px){.sidebar{padding:10px 6px}.side-brand{justify-content:center;padding:2px 0 10px}.side-brand img{height:40px}.side-brand .brand-name{display:none}.side-link{text-align:center;flex-direction:column;gap:3px;padding:8px 2px;font-size:.68rem}.side-link span{max-width:100%}.side-link .wide-only{display:none}.side-link .phone-only{display:inline}.page{padding:16px 10px 64px}}@media (width<=560px),(height<=560px) and (pointer:coarse){:root{--sidebar-w:0px;--tabbar-h:62px;--topbar-h:52px;--topbar-gap:0px}.sidebar{display:none}.tabbar{display:flex}.phone-top{top:var(--topbar-gap);left:var(--tray-gap);right:var(--tray-gap);z-index:50;height:var(--topbar-h);background:var(--glass-sheen), var(--glass-tint);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-rim), 0 10px 26px rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.18);border-radius:20px;justify-content:center;align-items:center;gap:9px;padding:0 12px;display:flex;position:fixed}.phone-top img{background:rgba(255,255,255,.94);border-radius:9px;height:26px;padding:2px 3px;box-shadow:inset 0 1px #fff,0 1px 3px rgba(3,14,32,.4)}.phone-top .brand-name strong{color:#fff;text-shadow:0 1px 2px rgba(3,14,32,.45);font-size:15px}.phone-top .brand-name span{color:#ffb6ba;letter-spacing:.1em;text-shadow:0 1px 2px rgba(3,14,32,.4);margin-top:.28em;font-size:8px}.page{padding-top:calc(var(--chrome-top) + 12px);padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px)}.page .sticky-actions{bottom:calc(var(--tabbar-h) + var(--tray-gap) + env(safe-area-inset-bottom))}}@media (height<=560px) and (pointer:coarse){:root{--topbar-h:44px}.phone-top img{height:24px}}.btn{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--navy);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--navy)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:disabled[aria-busy=true]{cursor:wait}.btn-primary{background:var(--red);border-color:var(--red);color:#fff}.btn-primary:hover{background:var(--red-text);border-color:var(--red-text)}.btn-green{background:var(--green);border-color:var(--green);color:#fff}.btn-green:hover{background:#0f5c38;border-color:#0f5c38}.btn-small{min-height:36px;padding:4px 12px;font-size:.9rem}.btn-quiet{color:var(--muted);border-color:transparent}.btn-icon{width:48px;min-height:48px;padding:0;font-size:1.8rem;line-height:1}.btn-wide{border-style:dashed;border-color:var(--navy);width:100%;margin-bottom:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.list{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.section-title{color:var(--navy);margin:28px 0 10px}.row-card.inactive{opacity:.65}.row-main{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.row-amount{white-space:nowrap;font-size:1.05rem}.row-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.older{border-radius:var(--radius);background:#eef0f4;border:2px solid #c8ccd6;margin-top:24px;overflow:hidden}.older summary{cursor:pointer;min-height:52px;color:var(--navy);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:10px 16px;font-weight:700;list-style:none;display:flex}.older summary::-webkit-details-marker{display:none}.older summary:before{content:"▸";font-size:1.1rem;transition:transform .15s}.older[open] summary:before{transform:rotate(90deg)}.older summary:after{content:"Tap to show";color:var(--muted);margin-left:auto;font-size:.85rem;font-weight:400}.older[open] summary:after{content:"Tap to hide"}.older summary:hover{background:#e2e5ec}.older summary:focus-visible{background:#e2e5ec}.older[open] summary{border-bottom:1px solid #c8ccd6}.older>.job-group{margin:12px}.empty{text-align:center;color:var(--muted);justify-items:center;gap:14px;padding:40px 16px;display:grid}.form{gap:14px;margin-bottom:8px;display:grid}.form .btn-primary{justify-self:start;min-width:160px}.fields{flex-wrap:wrap;gap:12px;display:flex}.field{flex:140px;gap:4px;min-width:0;display:grid}.field.grow{flex:3 240px}.field>span{color:var(--muted);font-size:.85rem;font-weight:600}input,select{font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);min-height:44px;color:var(--ink);background:#fff;width:100%;padding:8px 12px}input:focus,select:focus{outline-offset:1px;outline:3px solid rgba(11,43,91,.35)}.btn:focus-visible{outline-offset:1px;outline:3px solid rgba(11,43,91,.35)}.chip:focus-visible{outline-offset:1px;outline:3px solid rgba(11,43,91,.35)}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;display:flex}.notice{border-radius:var(--radius-sm);margin:8px 0;padding:10px 14px;font-size:.95rem}.notice-error{color:var(--red-text);background:#fdecee;border:1px solid #f6c5ca}.datebar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.datebar-middle{text-align:center;flex:1;min-width:0}.datebar h1{margin:0 0 6px;font-size:1.3rem}.datebar-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.datebar-actions input{width:auto;min-width:0;max-width:100%;min-height:36px;padding:4px 8px}.datebar .field-error{margin-top:4px}.btn-icon.disabled{opacity:.35;cursor:default}@media (width<=560px){.datebar{gap:6px}.datebar-actions input{flex:100%}}.day-summary{background:var(--navy);color:#fff;border-radius:var(--radius);text-align:center;margin-bottom:12px;padding:12px 16px}.day-summary .big{font-size:1.3rem;font-weight:700}.sum-row{text-align:right;grid-template-columns:110px minmax(0,.6fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:4px 12px;display:grid}.sum-row+.sum-row{border-top:1px solid rgba(255,255,255,.18);margin-top:8px;padding-top:8px}.sum-item{flex-direction:column;align-items:flex-end;display:flex}.sum-head{opacity:.9;font-size:.78rem;font-weight:700}.sum-label{text-align:left;flex-direction:column;align-self:center;font-weight:700;display:flex}.sum-since{opacity:.75;font-size:.72rem;font-weight:500}.sum-row .big{white-space:nowrap}.sum-note{opacity:.75;text-align:left;margin:8px 0 0;font-size:.75rem}@media (width<=560px){.day-summary{padding:10px 12px}.sum-row{text-align:left;flex-wrap:wrap;gap:4px 14px;display:flex}.sum-label{flex-direction:row;flex-basis:100%;align-items:baseline;gap:8px}.sum-item,.sum-row{align-items:flex-start}.sum-row .big{font-size:1.05rem}}.job-card{margin-bottom:12px}.job-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px 12px;margin-bottom:12px;display:flex}.job-head>div:first-child{flex:180px;min-width:0}.job-head h2{color:var(--navy)}.job-total{white-space:nowrap;font-size:1.05rem}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--navy)}.chip.on{background:var(--green-soft);border-color:var(--green);color:var(--green);font-weight:700}.chip.on.half{background:var(--amber-soft);border-color:var(--amber);color:var(--amber)}.chip.elsewhere{color:var(--muted);border-style:dashed}.chip.on.ot-only{background:var(--navy-soft);border-color:var(--navy);color:var(--navy);border-style:dashed}.chip.busy{opacity:.6}.chip-mark{font-weight:800}@media (width<=560px){.datebar h1{font-size:1.05rem}}.filters{flex-wrap:wrap;gap:8px;margin:28px 0 12px;display:flex}.filter{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.92rem;font-weight:600}.filter.active{background:var(--navy);border-color:var(--navy);color:#fff}.person-row{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.person-row:hover{border-color:var(--navy)}.person-row-main{flex:1;min-width:0}.person-row-main p{margin-top:2px}@media (width<=560px){.person-row{flex-wrap:wrap;row-gap:4px}.person-row-main{flex-basis:calc(100% - 60px)}.person-row .row-amount{margin-left:auto}}.chevron{color:var(--muted);vertical-align:middle;margin-left:10px;font-size:1.5rem}.avatar{color:#fff;letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:.95rem;font-weight:700;display:inline-grid}.avatar-large{width:72px;height:72px;font-size:1.5rem}.badge{background:var(--navy-soft);color:var(--navy);vertical-align:1px;border-radius:999px;margin-right:6px;padding:1px 9px;font-size:.78rem;font-weight:700;display:inline-block}.badge.role-ceo{color:var(--red-text);background:#fdecee}.badge.role-manager{color:#1f5f8b;background:#e6f0f8}.badge.role-worker{background:var(--green-soft);color:var(--green)}.badge.role-developer{color:#5b3aa3;background:#efe9fb}.badge-muted{background:var(--bg);color:var(--muted);margin-left:6px}.check{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-weight:600;display:flex}.check input{width:22px;height:22px;min-height:22px;accent-color:var(--navy)}.fields.align-end{align-items:flex-end}textarea{font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);resize:vertical;width:100%;padding:10px 12px}.back{margin-bottom:14px;font-weight:600;text-decoration:none;display:inline-block}.profile-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.profile-title{flex:1;min-width:180px}.profile-title h1{margin:0 0 4px}.stats{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:10px;margin-bottom:12px;display:grid}.stat{background:var(--navy);color:#fff;border-radius:var(--radius);gap:2px;padding:12px 14px;display:grid}.stat-label{opacity:.8;font-size:.8rem}.stat strong{font-size:1.3rem}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:12px;margin-bottom:12px;display:grid}.profile-grid h2,.card>h2,.card-head h2{color:var(--navy);margin-bottom:10px}.skills-card>.field:first-child>span{color:var(--navy);font-size:1.1rem;font-weight:700}.page>.card,.edit-person>.card{margin-bottom:12px}.card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.facts{gap:8px;margin:0;display:grid}.fact{grid-template-columns:minmax(90px,130px) minmax(0,1fr);gap:10px;display:grid}.fact dt{color:var(--muted);font-size:.9rem}.fact dd{overflow-wrap:anywhere;min-width:0;margin:0}.fact dd .nowrap{white-space:normal}.profile-grid>*,.card{min-width:0}.card,.profile-title h1{overflow-wrap:anywhere}.status{border-radius:6px;padding:1px 9px;font-size:.88rem;font-weight:600;display:inline-block}.status-ok{background:var(--green-soft);color:var(--green)}.status-warn{background:var(--amber-soft);color:var(--amber)}.status-bad{color:var(--red-text);background:#fdecee}.rate-history{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;font-size:.8rem;font-weight:600}.table td{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:8px}.table tr:last-child td{border-bottom:none}.table .num{text-align:right;white-space:nowrap}@media (width<=560px){.table{font-size:.86rem}.table th,.table td{padding:6px 4px}.table .num .muted{display:block}}.notes{white-space:pre-wrap}.sticky-actions{background:var(--bg);margin-top:0;padding:12px 0;position:sticky;bottom:0}@media (width<=560px){.stats{gap:6px}.stat{padding:10px}.stat strong{font-size:1.05rem}.fact{grid-template-columns:minmax(80px,110px) minmax(0,1fr)}.profile-head .btn{width:100%}}@media (width<=480px){.fact{grid-template-columns:minmax(0,1fr);gap:0}.fact+.fact{border-top:1px solid var(--line);padding-top:6px}}.notice-warn{background:var(--amber-soft);color:var(--amber);border:1px solid #f0d9a0}.notice.missing{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;display:flex}.badge-warn{background:var(--amber-soft);color:var(--amber)}.filter-warn{color:var(--amber);border-color:#f0d9a0}.filter-warn.active{background:var(--amber);border-color:var(--amber);color:#fff}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--navy-soft);color:var(--navy);border-radius:6px;padding:1px 8px;font-size:.9rem}.add-other{gap:8px;max-width:420px;margin-top:8px;display:flex}.add-other input{flex:auto;min-width:0;min-height:36px;padding:4px 10px}.add-other .btn{white-space:nowrap;flex:none;padding-left:16px;padding-right:16px}.field .chips .chip{min-height:38px;padding:4px 12px;font-size:.92rem}.login-page{background:radial-gradient(1200px 500px at 50% -10%, rgba(11,43,91,.14), transparent 70%), var(--bg);place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:20px;width:100%;max-width:400px;padding:28px 24px 24px;box-shadow:0 12px 34px rgba(11,43,91,.12)}.login-logo{width:auto;height:120px;margin:0 auto 8px;display:block}.login-card h1{margin:0 0 4px}.login-sub{margin-bottom:20px}.login-form{text-align:left;gap:14px;display:grid}.password-box{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;align-items:center;display:flex}.password-box:focus-within{outline-offset:1px;outline:3px solid rgba(11,43,91,.35)}.password-box input{border:none;outline:none;flex:1}.password-box input:focus{outline:none}.btn-block{width:100%}.btn-skip{color:#fff;cursor:pointer;background:linear-gradient(#178347,#0f6e34);border:0;border-radius:14px;flex-direction:column;align-items:center;gap:2px;min-height:68px;margin:4px 0 6px;padding:12px 16px;display:flex;box-shadow:0 6px 18px rgba(19,128,63,.35),inset 0 1px rgba(255,255,255,.35)}.btn-skip:hover{background:linear-gradient(#15843f,#0f6631)}.btn-skip:focus-visible{outline-offset:3px;outline:3px solid #f6c344}.btn-skip-main{letter-spacing:.01em;font-size:1.2rem;font-weight:800}.btn-skip-sub{opacity:.92;font-size:.85rem;font-weight:600}.skip-or{text-align:center;color:var(--muted);margin:14px 0 2px;font-weight:700}.login-password-line{margin-top:4px}.login-password{letter-spacing:.02em;overflow-wrap:anywhere;font-size:1.02rem}.login-divider{color:var(--muted);align-items:center;gap:12px;margin:22px 0 14px;font-size:.85rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);flex:1;height:1px}.btn-whatsapp{color:#0b3d22;background:#25d366;border-color:#25d366}.btn-whatsapp:hover{background:#1fb859;border-color:#1fb859}.wa-icon{flex:none}.login-help-hint{margin:8px 0 0}.login-card>p+.btn{margin-top:18px}.notice-ok{background:var(--green-soft);color:var(--green);border:1px solid #b9e2c9}.new-login p{margin-bottom:8px}.credentials{color:var(--ink);grid-template-columns:auto 1fr;gap:4px 14px;margin-bottom:10px;display:grid}.mono{letter-spacing:.03em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.candidates{text-align:left;gap:8px;margin-bottom:4px;display:grid}.candidates h2{color:var(--navy);margin-bottom:2px}.candidate{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:52px;font:inherit;text-align:left;cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;display:flex}.candidate:hover{border-color:var(--navy)}.candidate-yes{color:var(--green);white-space:nowrap;font-weight:700}select:disabled{background:var(--bg);color:var(--muted)}.candidate .muted{white-space:nowrap}.filters-top{margin-top:0}.btn-big{border-radius:var(--radius);width:100%;min-height:56px;margin-top:16px;font-size:1.1rem;display:flex}.add-person{max-width:640px}.add-person h2{color:var(--navy);margin-top:6px}.nowrap{white-space:nowrap}.hours-list{border-top:1px dashed var(--line);gap:6px;margin-top:12px;padding-top:10px;display:grid}.hours-row{align-items:center;gap:10px;font-size:.95rem;display:flex}.hours-row>span:first-child{flex:0 auto;min-width:0}.hours-row input{text-align:right;width:90px;min-height:38px;padding:4px 10px}.ot-note{white-space:normal;font-size:.85em;display:block}.money-box{flex:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.money-sign{color:var(--muted);font-weight:700}.money-box input{width:110px}.overtime-hint{margin:2px 0 8px}.overtime-toggle{margin-top:8px;padding-left:0}.overtime-title{color:var(--muted);font-size:.85rem;font-weight:700}.stat-sub{opacity:.85;font-size:.8rem}.group-tabs{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:14px;padding:6px;display:grid}.group-tab{border-radius:var(--radius-sm);min-height:48px;color:var(--navy);justify-content:center;align-items:center;gap:8px;font-weight:700;text-decoration:none;display:flex}.group-tab:hover{background:var(--navy-soft)}.group-tab.active{background:var(--navy);color:#fff}.group-count{background:var(--navy-soft);color:var(--navy);border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:700}.group-tab.active .group-count{color:#fff;background:rgba(255,255,255,.2)}.sub-filters{margin:-4px 0 12px}.filter-small{min-height:34px;padding:4px 12px;font-size:.85rem}.empty-group{padding:24px 0}.badge.client-private{color:#8a4b00;background:#fff1e0}.badge.client-company{color:#1f5f8b;background:#e6f0f8}.group-picker{grid-template-columns:1fr 1fr;gap:10px;display:grid}.group-option{text-align:left;border:2px solid var(--line);border-radius:var(--radius);font:inherit;color:var(--ink);cursor:pointer;background:#fff;gap:4px;padding:14px 16px;display:grid}.group-option span{color:var(--muted);font-size:.88rem}.group-option.active{border-color:var(--navy);background:var(--navy-soft)}.contact-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.contact-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:10px;display:flex}.contact-list li:last-child{border-bottom:none}.contact-lines{flex-wrap:wrap;gap:4px 14px;margin-top:2px;font-size:.92rem;display:flex}.contact-form{margin-top:12px}@media (width<=560px){.group-tab{text-align:center;flex-direction:column;gap:2px;min-height:56px;padding:4px 2px;font-size:.86rem;line-height:1.15}.group-picker{grid-template-columns:1fr}}.contact-draft{border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--bg);gap:10px;padding:12px;display:grid}.add-contact-row{justify-self:start}.contact-number{color:var(--muted);margin:-2px 0 -4px;font-size:.8rem;font-weight:700}.contact-draft.has-error{border:2px solid var(--red);background:#fdecee}.req{color:var(--red);font-weight:800;text-decoration:none}.field.invalid>input,.field.invalid>select,.field.invalid .chips{outline:2px solid var(--red);outline-offset:2px;border-radius:var(--radius-sm)}.field.invalid>span:first-child{color:var(--red-text)}.field-error{color:var(--red-text);font-size:.82rem;font-weight:600}.login-row.locked{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}.login-row h3{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem}.login-meta{margin-top:4px}.new-login-form .password-box,.add-login .password-box{gap:6px;display:flex}.new-login-form .password-box input,.add-login .password-box input{flex:1;min-width:0}.add-login .password-box .btn{white-space:nowrap;flex:none}.worker-home .row-actions{margin:12px 0 20px}.sign-out-worker{margin-top:12px}@media (width<=560px){.new-login-form .password-box,.add-login .password-box{flex-wrap:wrap}.new-login-form .password-box input,.add-login .password-box input{flex:100%}}.badge-left{color:var(--red-text);background:#fde2e1}.badge-leave{color:#1f3a8a;background:#e4ecff}.leave-part+.row-actions{margin-top:12px}.leave-now,.leave-planned{margin:0 0 6px}.leave-form h2{margin-top:0}.working-status ul{margin:8px 0 12px;padding-left:20px}.pay-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-owed{background:var(--red-text)}.pay-months{gap:10px;display:grid}.pay-month{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.pay-month-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.pay-month-numbers{margin-top:4px}.payment-line{background:var(--green-soft);color:#1d3b2c;border:2px solid #8fd0aa;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:8px 0;padding:8px 12px;font-size:.9rem;display:flex}.payment-facts{min-width:0}.payment-main strong{color:var(--green);font-size:1rem}.payment-check{background:var(--green);color:#fff;vertical-align:1px;border-radius:50%;place-items:center;width:20px;height:20px;margin-right:6px;font-size:.75rem;font-weight:700;display:inline-grid}.payment-method{font-weight:600}.payment-sub{color:#4a6b5a;margin-top:2px;padding-left:26px;font-size:.82rem}.payment-together{font-style:italic}.payment-undo{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.payment-undo .undo-together{color:var(--amber);font-size:.84rem}.pay-form{margin-top:8px}.worker-tabs{flex-wrap:wrap;gap:6px;margin:4px 0 14px;display:flex}.worker-tabs .btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}@media (width<=560px){.pay-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.job-address{color:var(--ink);margin-top:2px;font-size:.92rem}.edit-job-form,.expenses{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.expenses h4{margin:0 0 8px}.add-expense-form{margin-bottom:10px}.expense-month{margin-top:12px}.expense-month-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding-bottom:4px;display:flex}.expense-month-total{color:var(--muted);font-weight:600}.expense-line{border-bottom:1px dashed var(--line);grid-template-columns:60px 130px 1fr auto auto;align-items:center;gap:4px 10px;padding:6px 0;display:grid}.expense-line.not-billable .expense-amount,.expense-date,.expense-kind{color:var(--muted)}.expense-text{overflow-wrap:anywhere}.expense-amount{text-align:right;font-weight:700}.expense-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.expense-actions:empty{display:none}.expense-line .notice-error{grid-column:1/-1}.badge-billed{background:var(--green-soft);color:var(--green)}@media (width<=560px){.expense-line{grid-template-columns:52px 1fr auto}.expense-kind{grid-area:1/2}.expense-amount{grid-area:1/3}.expense-text{grid-column:1/3}.expense-actions{grid-column:3}}.warn-text{color:var(--amber);font-weight:600}.ok-text{color:var(--green);font-weight:600}.invoice-back{margin-bottom:10px}.invoice-back a{color:var(--navy);font-weight:600;text-decoration:none}.invoice-office ul,.invoice-problems ul{margin:6px 0 0;padding-left:20px}.invoice-office h2 .badge{margin-left:8px}.invoice-steps{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.invoice-steps h3{margin:0 0 6px}.sign-state{margin:4px 0}.invoice-sign{margin-top:16px}.invoice-sign .invoice-steps{border-top:none;margin-top:0;padding-top:0}.invoice-sign h2{margin:0 0 6px}.invoice-final{border-top:1px solid var(--line);align-items:center;margin-top:14px;padding-top:12px}.confirm-text{font-weight:600}.signature-upload{margin:10px 0}.my-signature{align-items:center;gap:8px;margin-bottom:8px;display:flex}.my-signature img{border:1px solid var(--line);background:#fff;border-radius:6px;max-width:200px;max-height:48px}.file-btn{cursor:pointer;position:relative;overflow:hidden}.file-btn input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.dues-link a{color:var(--navy);white-space:nowrap;font-weight:700}.invoice-groups-tools{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:-4px 0 8px;display:flex}.invoice-year{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin-top:10px}.invoice-month{border-top:1px solid var(--line)}.group-toggle{width:100%;min-height:44px;color:var(--navy);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:10px 12px;display:flex}.group-toggle:focus-visible{outline:3px solid var(--navy);outline-offset:-3px}.year-toggle{background:var(--navy-soft);font-size:1.1rem}.invoice-year.open>.year-toggle{border-bottom:1px solid var(--line)}.month-toggle{padding-left:22px}.group-arrow{width:1em;color:var(--muted)}.group-count{color:var(--muted);font-size:.88rem}.group-drafts{color:#8a5a00;background:#fff4d6;border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:600}.invoice-month .invoice-list{margin:0 0 8px}@media (width<=560px){.invoice-month .invoice-list thead{display:none}.invoice-month .invoice-list,.invoice-month .invoice-list tbody{display:block}.invoice-month .invoice-list tr{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;grid-template-areas:"client client""status amount""number number";gap:2px 12px;padding:10px 12px;display:grid}.invoice-month .invoice-list tr:last-child{border-bottom:0}.invoice-month .invoice-list td{overflow-wrap:normal;border:0;padding:0;display:block}.invoice-month .invoice-list .inv-client{overflow-wrap:anywhere;grid-area:client}.invoice-month .invoice-list .inv-status{grid-area:status}.invoice-month .invoice-list .inv-amount{grid-area:amount;font-weight:700}.invoice-month .invoice-list .inv-number{color:var(--muted);grid-area:number;font-size:.88rem}.invoice-month .invoice-list .inv-number.none,.invoice-month .invoice-list .inv-amount.none{display:none}.invoice-month .invoice-list .inv-amount:before{content:"Due ";color:var(--muted);font-size:.85rem;font-weight:600}.invoice-month .invoice-list .inv-number:before{content:"Invoice no. "}}.invoice-list a{color:var(--navy);font-weight:700}.invoice-row.status-void td{color:var(--muted);text-decoration:line-through}.invoice-doc{color:#111;border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;margin-top:16px;padding:28px}.copy-tabs{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;display:grid}.copy-tab{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:56px;color:var(--navy);font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.copy-tab span{color:var(--muted);font-size:.85rem}.copy-tab.active{border-color:var(--navy);box-shadow:var(--shadow-sm)}.copy-tab.contractor-tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.copy-tab.internal-tab.active{color:#fff;background:#4a4f5a;border-color:#4a4f5a}.copy-tab.active span{color:rgba(255,255,255,.88)}.copy-tab.active:focus-visible{outline:3px solid var(--navy);outline-offset:3px}.copy-tab.active strong:before{content:"✓ "}@media screen{.invoice-doc.screen-hidden{display:none}}.internal-mark{color:#fff;letter-spacing:.08em;text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#4a4f5a;border-radius:8px;margin:0 0 12px;padding:8px 10px;font-weight:800}.internal-title{color:#4a4f5a;font-size:.7em}.invoice-doc .salary-split{font-size:.85em}.invoice-by-day tfoot td{border-top:2px solid #111;font-weight:700}.print-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.invoice-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-top:16px;display:flex}.invoice-actions .print-buttons{justify-content:flex-start}.invoice-actions .print-invoice,.invoice-actions .print-internal{background:var(--job-action);border-color:var(--job-action);color:var(--ink)}.invoice-actions .print-invoice:hover,.invoice-actions .print-internal:hover{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.invoice-actions .print-invoice:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.invoice-actions .print-internal:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.invoice-actions>.row-actions{margin-top:0}.invoice-actions>.cancel-form,.invoice-actions>.notice{flex-basis:100%}.draft-mark{border:2px dashed var(--amber);color:var(--amber);letter-spacing:.08em;text-align:center;border-radius:8px;margin:0 0 12px;padding:6px 10px;font-weight:800}.invoice-head{border-bottom:3px solid var(--navy);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;display:flex}.invoice-logo{max-width:240px;max-height:90px}.invoice-company{text-align:right;flex-direction:column;font-size:.9rem;line-height:1.45;display:flex}.invoice-company strong{color:var(--navy);font-size:1.1rem}.invoice-title{flex-wrap:wrap;justify-content:space-between;gap:12px;margin:18px 0 8px;display:flex}.invoice-title h1{color:var(--navy);letter-spacing:.04em;text-transform:uppercase;margin:0}.invoice-meta{grid-template-columns:auto auto;gap:2px 14px;margin:0;display:grid}.invoice-meta dt{color:var(--muted);font-weight:600}.invoice-meta dd{margin:0;font-weight:700}.invoice-meta dd.invoice-number{white-space:nowrap;overflow-wrap:normal}@media screen and (width<=440px){.invoice-meta{grid-template-columns:1fr;gap:0}.invoice-meta dd{margin-bottom:6px}}.invoice-project{break-inside:avoid;margin-top:22px}.contractor-copy .invoice-project{break-inside:auto}.invoice-project-title{break-after:avoid;flex-wrap:wrap;align-items:baseline;gap:2px 12px;display:flex}.invoice-project-title .invoice-address{margin:0;font-size:.92rem}.invoice-totals-line{border-top:2px solid #111;flex-wrap:wrap;align-items:baseline;gap:2px 18px;margin-top:6px;padding-top:6px;display:flex}.invoice-totals-end{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 18px;display:flex}.invoice-totals-line .subtotal,.invoice-totals-end .subtotal{margin-left:auto;font-weight:800}.totals-note{margin:2px 0 0;font-size:.82rem}@media print{.contractor-copy .invoice-title{flex-wrap:nowrap}.contractor-copy .invoice-title-main{flex:1 1 0;min-width:0}.contractor-copy .invoice-meta{flex:none}}.invoice-bill-to{flex-direction:column;margin:4px 0 0;display:flex}.bill-to-label{color:var(--muted);font-size:.85em;font-weight:600}.contractor-copy h2,.contractor-copy .job-title,.contractor-copy .invoice-address,.contractor-copy .invoice-bill-to,.contractor-copy .invoice-meta dd,.contractor-copy .invoice-company,.contractor-copy td,.contractor-copy .invoice-totals-line,.contractor-copy .invoice-totals-end{overflow-wrap:anywhere}.contractor-copy .invoice-project-title h2,.contractor-copy .invoice-project-title .job-title,.contractor-copy .invoice-project-title .invoice-address{min-width:0}.contractor-copy td.num,.contractor-copy .invoice-totals-line strong,.contractor-copy .invoice-totals-end strong{overflow-wrap:normal;white-space:nowrap}.contractor-copy .signature-img{object-fit:contain;height:70px}.print-only{display:none}.invoice-project h2,.invoice-summary h2{color:var(--navy);margin:0;font-size:1.15rem}.invoice-address{margin:2px 0 6px}.invoice-days{margin:6px 0;font-size:.88rem}.invoice-table{border-collapse:collapse;width:100%;margin-top:6px}.invoice-table th,.invoice-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e5e7eb;padding:5px 6px}.invoice-table th{color:var(--muted);font-size:.85rem}.invoice-table .num{text-align:right;white-space:nowrap}.invoice-table .subtotal td{border-top:2px solid #111;font-weight:800}.invoice-totals{max-width:480px;margin-left:auto}.invoice-summary{break-inside:avoid;margin-top:28px}.invoice-summary .invoice-table{max-width:560px;margin-left:auto}.invoice-table .amount-due td{color:var(--navy);border-top:3px double #111;font-size:1.15rem;font-weight:800}.invoice-signatures{break-inside:avoid;grid-template-columns:1fr 1fr;gap:28px;margin-top:40px;display:grid}.signature-box{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.signature-img{max-width:100%;max-height:70px}.signature-empty{height:70px}.signature-line{border-top:1px solid #111;width:100%;margin-bottom:4px}@media (width<=560px){.invoice-doc{padding:16px}.invoice-company{text-align:left}.invoice-signatures{grid-template-columns:1fr}.invoice-people th:nth-child(3),.invoice-people td:nth-child(3){display:none}.invoice-by-day,.invoice-by-day tbody,.invoice-by-day tfoot,.invoice-by-day tr,.invoice-by-day td{display:block}.invoice-by-day thead,.invoice-by-day td.none[data-label]{display:none}.invoice-by-day tr{border-bottom:1px solid var(--line);padding:8px 0}.invoice-by-day td{border:0;padding:2px 0}.invoice-by-day td[data-label]{gap:4px;display:flex}.invoice-by-day td[data-label]:before{content:attr(data-label);color:var(--muted);text-align:left;margin-right:auto;padding-right:12px;font-weight:400}.invoice-by-day .day-date,.invoice-by-day .day-total{font-weight:700}.invoice-by-day tfoot tr{border-top:2px solid #111;border-bottom:0}.invoice-by-day tfoot td{border-top:0}}@page{size:A4;margin:14mm 12mm}@page contractor{size:A4;margin:8mm 10mm}@media print{.no-print,.sidebar,.page-brand{display:none!important}body,.shell,main{background:#fff!important;margin:0!important;padding:0!important}.invoice-doc{box-shadow:none;max-width:none;margin:0;padding:0}.invoice-signatures{grid-template-columns:1fr 1fr}html{background:#fff!important}.contractor-copy{page:contractor;font-size:10pt;line-height:1.3}.contractor-copy .screen-only{display:none!important}.contractor-copy .print-only{display:block}.contractor-copy table.print-only{display:table}.contractor-copy .draft-mark{margin:0 0 4px;padding:2px 6px;font-size:8pt}.contractor-copy .invoice-head{border-bottom-width:2px;flex-wrap:nowrap;align-items:center;gap:8px;padding-bottom:4px}.contractor-copy .invoice-logo{max-width:160px;max-height:50px}.contractor-copy .invoice-company{flex-flow:wrap;flex:1;justify-content:flex-end;column-gap:.4em;font-size:8pt;line-height:1.3}.contractor-copy .invoice-company strong{flex-basis:100%;font-size:10pt}.contractor-copy .invoice-company span{white-space:nowrap}.contractor-copy .invoice-company span:not(:last-child):after{content:" ·"}.contractor-copy .invoice-title{align-items:flex-start;margin:0 0 2px}.contractor-copy .invoice-title h1{font-size:12pt;line-height:1.1}.contractor-copy .invoice-meta{gap:0 10px;font-size:9pt;line-height:1.2}.contractor-copy .invoice-bill-to{margin-top:2px;font-size:9pt;line-height:1.25}.contractor-copy .invoice-project{margin-top:4px}.contractor-copy .invoice-project h2,.contractor-copy .invoice-summary h2,.contractor-copy .job-title{font-size:11pt}.contractor-copy .invoice-project-title .invoice-address{font-size:9pt}.contractor-copy .invoice-table{margin-top:2px;font-size:9pt}.contractor-copy .invoice-table th,.contractor-copy .invoice-table td{padding:1px 4px}.contractor-copy .invoice-table th{font-size:8pt}.contractor-copy .invoice-by-day-print{table-layout:fixed}.contractor-copy .invoice-by-day-print th,.contractor-copy .invoice-by-day-print td{color:#111;font-size:7pt}.contractor-copy .invoice-by-day-print th{color:var(--muted)}.contractor-copy .invoice-by-day-print col.c-date,.contractor-copy .invoice-by-day-print col.c-workers{width:17%}.contractor-copy .invoice-by-day-print col.c-num{width:16.5%}.contractor-copy .invoice-by-day-print.two col.c-date,.contractor-copy .invoice-by-day-print.two col.c-workers{width:8.33%}.contractor-copy .invoice-by-day-print.two col.c-num{width:8.085%}.contractor-copy .invoice-by-day-print.two col.c-gap{width:2.02%}.contractor-copy .invoice-by-day-print .gap{border:0}.contractor-copy .day-title-row th{text-align:left;color:inherit;font-size:inherit;border:0;padding:4px 0 1px}.contractor-copy .job-title{color:var(--navy);font-weight:700}.contractor-copy .invoice-by-day-print td[data-label=Workers]{white-space:normal}.contractor-copy .invoice-by-day-print tbody.keep{break-inside:avoid}.contractor-copy .invoice-by-day-print .totals-row td{text-align:left;white-space:normal;border:0;padding:0;font-size:9pt}.contractor-copy .invoice-table .part-day{font-size:6pt}.contractor-copy .invoice-table .work-days{font-size:7pt}.contractor-copy .invoice-totals-line{border-top-width:1px;margin-top:3px;padding-top:3px;font-size:9pt}.contractor-copy .invoice-totals-end{font-size:9pt}.contractor-copy .totals-note,.contractor-copy .invoice-days{margin:1px 0 0;font-size:8pt}.contractor-copy .invoice-summary{margin-top:4px}.contractor-copy .invoice-table .amount-due td{font-size:12pt}.contractor-copy .invoice-signatures{gap:20px;margin-top:14px}.contractor-copy .signature-img,.contractor-copy .signature-empty{height:45px;max-height:45px}.contractor-copy .signature-box .muted{font-size:9pt}body:not(.print-internal) .invoice-doc.internal-copy,body.print-internal .invoice-doc.contractor-copy{display:none!important}}@media (width<=560px){.row-card .nowrap{white-space:normal}}.job-card.not-started .job-bar,.job-card.not-started .job-address,.job-card.not-started .job-fact,.job-card.not-started .chips,.job-card.not-started .overtime-box,.job-card.not-started .day-expenses{opacity:.6}.job-card.not-started .chip:not(.on){color:var(--muted);border-style:dashed}.starts-later{color:#b3001b;text-transform:uppercase;letter-spacing:.02em;overflow-wrap:anywhere;background:#fff;border-left:4px solid #b3001b;border-radius:6px;margin:8px 0 2px;padding:6px 10px;font-weight:800;line-height:1.35}.job-fact{color:var(--ink);overflow-wrap:anywhere;margin:2px 0 0}.job-fact-label{color:var(--muted);font-weight:600}.page-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.page-title-row h1{margin-right:auto}.add-job-form{margin-top:20px}.day-expenses{margin-top:10px}.day-expense-form{margin-top:8px}.expense-kinds{font-size:.82rem}.day-expenses-title{color:var(--ink);font-weight:800}.day-expenses-total{margin-top:2px}.day-expense-list{margin:6px 0 0;padding:0;list-style:none}.day-expense{border-top:1px dashed var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 10px;padding:6px 0;display:grid}.day-expense-name{overflow-wrap:break-word;min-width:0}.day-expense .day-expense-name,.day-expense .expense-amount,.day-expense .expense-actions{grid-area:1}.day-expense.not-billable .expense-amount{color:var(--muted)}.day-expense .expense-actions{align-items:center}@media (width<=560px){.day-expense{grid-template-columns:minmax(0,1fr) auto}.day-expense .day-expense-name{grid-area:1/1}.day-expense .expense-amount{grid-area:1/2}.day-expense .expense-actions{grid-area:2/1/auto/-1}}@media (width<=400px){.invoice-doc{padding:10px}.invoice-table{font-size:.8rem}.invoice-table th,.invoice-table td{padding:4px 3px}.invoice-table .amount-due td{font-size:.95rem}}.stat strong{overflow-wrap:normal;word-break:keep-all}@media (width<=400px){.card .table{font-size:.8rem}.card .table th,.card .table td{padding:6px 4px}}.invoice-company{overflow-wrap:anywhere;min-width:0;max-width:100%}.job-card.job-tint-0{--job-bg:#eaf2fd;--job-edge:#a9c4ec}.job-card.job-tint-1{--job-bg:#e9f7ee;--job-edge:#a6d6b5}.job-card.job-tint-2{--job-bg:#fdf3e2;--job-edge:#e8c991}.job-card.job-tint-3{--job-bg:#f3edfb;--job-edge:#cbb7e8}.job-card[class*=job-tint-]{background:var(--job-bg);border:2px solid var(--job-edge);box-shadow:var(--shadow-sm);margin-bottom:28px;padding:12px 14px 16px;overflow:hidden}.job-bar{border-radius:0;margin:-12px -14px 14px}.job-bar-head{border-bottom:1px solid rgba(255,255,255,.25);flex-wrap:wrap-reverse;justify-content:space-between;align-items:center;gap:2px 10px;margin-bottom:10px;padding-bottom:8px;display:flex}.job-bar-head h2{text-align:left;color:#fff;overflow-wrap:anywhere;flex:auto;margin:0;font-size:1.2rem}.job-count{color:#0b2b5b;letter-spacing:.02em;white-space:nowrap;background:#f6c344;border-radius:999px;padding:3px 10px;font-size:.82rem;font-weight:800;display:inline-block;box-shadow:0 1px 2px rgba(0,0,0,.25)}.jobs-intro{color:var(--muted);margin:0 0 14px;font-size:.9rem}.job-card[class*=job-tint-] .job-fact{color:var(--ink)}.job-card[class*=job-tint-] .job-fact-label{color:#111;font-weight:800}@media (width<=560px){.job-card[class*=job-tint-]{margin-bottom:22px;padding:10px 10px 14px}.job-bar{margin:-10px -10px 12px}.job-bar-head h2{font-size:1.08rem}.job-bar-head{justify-content:space-around}}.section-chip{display:none}@media (width<=560px),(height<=560px) and (pointer:coarse){.section-chip{top:calc(var(--chrome-top) + var(--chip-gap));left:var(--tray-gap);right:var(--tray-gap);z-index:59;background:var(--glass-sheen), rgba(18,22,30,.58);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-rim), 0 8px 20px rgba(0,0,0,.28);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4);opacity:0;pointer-events:none;border:1px solid rgba(255,255,255,.16);border-radius:0 0 16px 16px;align-items:center;gap:9px;padding:9px 14px;font-size:.95rem;font-weight:700;line-height:1.2;transition:opacity .18s,transform .18s;display:flex;position:fixed;transform:translateY(-10px)}.section-chip.on{opacity:1;transform:none}body.chip-pinned .phone-top{border-radius:20px 20px 0 0}.section-chip .icon{flex:none;width:19px;height:19px}.section-chip-name{text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.86);font-weight:600;overflow:hidden}.section-chip-sep{color:rgba(255,255,255,.5);margin:0 2px}.section-chip-sub{color:#fff;font-weight:800}}.job-float{display:none}@media (width<=560px),(height<=560px) and (pointer:coarse){.job-float{top:calc(var(--chrome-top) + var(--chip-gap));left:var(--tray-gap);right:var(--tray-gap);z-index:60;background:var(--glass-sheen), rgba(18,22,30,.44);min-height:40px;backdrop-filter:var(--glass-blur);color:#fff;box-shadow:var(--glass-rim), 0 8px 20px rgba(0,0,0,.3);opacity:0;transform:translateY(calc(-100% - var(--chrome-top) - 4px));pointer-events:auto;border-radius:0 0 16px 16px;flex-direction:column;gap:1px;padding:8px 12px 9px;transition:transform .18s,opacity .18s;display:flex;position:fixed}.job-float.on{opacity:1;transform:none}.job-float-title{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;line-height:1.25;overflow:hidden}.job-float-under{color:rgba(255,255,255,.82);justify-content:space-between;align-items:baseline;gap:10px;font-size:.78rem;line-height:1.2;display:flex}.job-float-count{white-space:nowrap;font-weight:600}}@media print{.job-float{display:none!important}}.btn-save{color:#fff;background:#157347;border-color:#157347;font-weight:700}.btn-save:hover:not(:disabled){background:#0f5a37;border-color:#0f5a37}.btn-cancel{background:var(--red);border-color:var(--red);color:#fff;font-weight:700}.btn-cancel:hover:not(:disabled){background:var(--red-text);border-color:var(--red-text)}.overtime-actions{margin-top:10px}.overtime-summary{margin-top:8px}.overtime-line{margin:2px 0}.ot-after{color:var(--muted);font-size:.85em;font-weight:400}.hours-row .ot-after{display:block}.add-job-after{justify-content:center;margin:8px 0 24px;display:flex}.add-new-job{color:#fff;letter-spacing:.01em;cursor:pointer;background:#0b2b5b;border:2px solid #0b2b5b;border-radius:999px;min-width:280px;min-height:54px;padding:12px 28px;font-size:1.1rem;font-weight:800;box-shadow:0 4px 14px rgba(11,43,91,.3)}.add-new-job:hover{background:#143d7a;border-color:#f6c344}.add-new-job:focus-visible{background:#143d7a;border-color:#f6c344}.add-new-job-plus{color:#f6c344;margin-right:4px;font-size:1.35rem;font-weight:900;line-height:1}@media (width<=560px){.add-new-job{width:100%;min-width:0}}.modal-backdrop{z-index:1000;background:rgba(11,43,91,.5);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius);border-top:6px solid var(--red);background:#fff;width:100%;max-width:440px;max-height:calc(100vh - 32px);padding:22px 20px 18px;position:relative;overflow-y:auto;box-shadow:0 18px 50px rgba(0,0,0,.35)}.modal h2{color:var(--red-text);margin:0 40px 10px 0;font-size:1.2rem}.modal p{color:var(--ink);overflow-wrap:anywhere;margin:0 0 16px;font-size:1.02rem;line-height:1.45}.modal-x{background:var(--bg);width:44px;height:44px;color:var(--ink);cursor:pointer;border:none;border-radius:50%;font-size:1.3rem;font-weight:700;line-height:1;position:absolute;top:8px;right:8px}.modal-x:hover{color:var(--red-text);outline:2px solid var(--red);background:#fdecee}.modal-x:focus-visible{color:var(--red-text);outline:2px solid var(--red);background:#fdecee}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width<=560px){.modal-actions .btn{flex:100%;min-height:46px}}.modal.warn-modal{border-top-color:#c78a00}.modal.warn-modal h2{color:#8a5a00}.notice-modal .notice-line{margin-bottom:8px}.notice-modal .notice-line:last-child{margin-bottom:16px}.btn-warn{color:#fff;background:#a86b00;border-color:#a86b00;font-weight:700}.btn-warn:hover:not(:disabled){background:#8a5a00;border-color:#8a5a00}.chip-text{flex-direction:column;align-items:flex-start;line-height:1.2;display:inline-flex}.chip-rate{color:var(--muted);white-space:nowrap;font-size:.74rem;font-weight:600}.chip.on .chip-rate{color:inherit;opacity:.85}.chip.on.half .chip-rate{color:var(--amber);opacity:1}.chip-rate.zero{color:#a86b00;font-weight:800}.chip-rate.none{color:var(--red-text);font-weight:800}.stat .zero-rate{color:#ffd27a}.stat .zero-rate-note{color:#ffd27a;font-weight:700}.rate-history .zero-rate{color:#a86b00}.offline-backdrop{z-index:3000;background:rgba(20,20,30,.72)}.offline-modal{border-top:10px solid var(--red);text-align:center;max-width:480px}.offline-icon{background:var(--red);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:4px auto 12px;font-size:2.6rem;font-weight:900;display:flex}.modal.offline-modal h2{color:var(--red-text);margin:0 0 12px;font-size:1.6rem}.offline-lead{font-size:1.1rem}.offline-status{color:var(--muted);font-size:.92rem}.offline-modal .modal-actions{justify-content:center}.offline-modal .offline-retry{min-width:160px;min-height:48px;font-size:1.05rem}.card-date{background:rgba(255,255,255,.1);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;margin:8px 0 10px;padding:6px 8px;display:flex}.card-date .btn-icon{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.45);min-width:40px;min-height:40px;padding:0;font-size:1.4rem;line-height:1}.card-date .btn-icon:disabled{opacity:.35;cursor:default}.card-date-text{color:#fff;white-space:nowrap;font-size:1.05rem;font-weight:800}.card-date .card-date-today{color:#0b2b5b;background:#f6c344;border-color:#f6c344;font-weight:800}.card-date .card-date-today:disabled{color:rgba(255,255,255,.7);cursor:default;background:0 0;border-color:rgba(255,255,255,.45)}.job-card.other-day{border:3px solid #f6c344}.card-other-day{border-radius:var(--radius-sm);color:#6b4500;text-align:center;background:#fff3d6;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;margin:0 0 10px;padding:8px 10px;font-size:.9rem;font-weight:700;display:flex}.card-other-day .btn{color:#fff;background:#a86b00;border-color:#a86b00}.card-date-loading{color:rgba(255,255,255,.8);margin:10px 0 4px}@media (width<=560px){.card-date{border-radius:var(--radius-sm);grid-template-columns:auto minmax(0,1fr) auto;gap:6px;padding:6px;display:grid}.card-date .card-date-prev{grid-area:1/1}.card-date-text{text-align:center;white-space:normal;grid-area:1/2;min-width:0;font-size:.95rem;line-height:1.2}.card-date .card-date-next{grid-area:1/3}.card-date .card-date-today{grid-area:2/1/auto/-1;justify-self:center;min-width:110px}}.owes{white-space:nowrap;font-weight:700}.owes-due{color:var(--red-text)}.owes-credit{color:var(--green)}.owes-none{color:var(--muted)}.owes-now{font-size:1.15rem}.dues-row{color:inherit;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;display:flex}.dues-row-main{min-width:0}.dues-row-main p{margin:2px 0 0}.deposit-client{color:var(--navy);font-weight:600}.due-months{flex-direction:column;gap:12px;margin-top:10px;display:flex}.due-month{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}.due-month-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;margin-bottom:6px;font-weight:700;display:flex}.due-lines{margin:0}.due-line{justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;display:flex}.due-line dt{color:var(--muted);min-width:0}.due-line dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.due-end{border-top:1px solid var(--line);margin-top:4px;padding-top:7px;font-weight:700}.due-end dt{color:var(--ink)}.opening-text{margin:6px 0}.due-contracts dt,.due-contracts dd{padding-left:10px;font-size:.9em}.year-totals{margin:4px 0 10px}.year-total{margin:2px 0}.client-owes{margin:4px 0 10px}.same-deposit{border:1px solid var(--amber);background:var(--amber-soft);color:var(--ink);border-radius:var(--radius-sm);margin:8px 0;padding:10px 12px}.same-deposit p{margin:0 0 8px;font-weight:600}.contractors .contractors-sub{margin:2px 0 0}.contractors .invoice-reminders{border:1px solid var(--amber);border-radius:var(--radius-sm);background:var(--amber-soft);margin-top:12px;padding:10px 12px}.contractors .invoice-reminders-head{align-items:center;gap:8px;margin-bottom:2px;display:flex}.contractors .invoice-reminders h3{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.88rem;font-weight:750}.contractors .count-pill{min-width:20px;height:20px;color:var(--ink);background:#fff;border-radius:999px;place-items:center;padding:0 6px;font-size:.8rem;font-weight:700;display:inline-grid}.contractors .invoice-reminders .reminder{border-top-color:rgba(139,90,0,.16)}.contractors .no-reminders{margin:10px 0 0}.contractors .contractors-empty{margin-top:10px}.contractors .contractors-empty-title{margin:0 0 2px;font-weight:700}.contractors .new-invoice{border-radius:var(--radius-sm);background:var(--navy-soft);border:1px solid rgba(11,43,91,.14);margin-top:12px;padding:10px 12px}.contractors .new-invoice h3{margin:0 0 8px;font-size:1rem}.contractors .new-invoice .form-actions{justify-content:flex-end;margin-top:10px;display:flex}.contractors .new-invoice .btn-make-invoice{background:var(--job-action);border-color:var(--job-action);color:var(--ink);font-weight:700}.contractors .new-invoice .btn-make-invoice:hover{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.contractors .new-invoice .btn-make-invoice:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.reminder-list{margin:0;padding:0;list-style:none}.reminder{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:8px 0;display:flex}.reminder:first-child{border-top:0}.extra-work-job{margin-top:6px}.commission-field{flex-basis:100%}.commission-other{max-width:140px;margin-top:8px}.commission-line{border-top:1px solid var(--line);padding:6px 0}.commission-line:first-of-type{border-top:0}.commission-now{overflow-wrap:anywhere;margin:4px 0}.commission-client{color:var(--muted)}.commission-off .commission-choices{opacity:.45;filter:grayscale()}.commission-off .chip:disabled{cursor:not-allowed}.amounts-form .row-actions{align-items:center}.saved-discount{border-radius:var(--radius-sm);background:var(--green-soft);color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:10px 0 0;padding:8px 12px;display:flex}.private-clients .card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 12px;display:flex}.private-clients .private-sub{margin:2px 0 0}.private-clients .private-empty{margin-top:10px}.private-clients .private-empty-title{margin:0 0 2px;font-weight:700}.private-clients .bill-group{margin-top:14px}.private-clients .bill-group.ready{border-radius:var(--radius-sm);background:var(--amber-soft);margin-top:12px;padding:10px 12px}.private-clients .bill-group-head{align-items:center;gap:8px;margin-bottom:2px;display:flex}.private-clients .bill-group h3{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.88rem;font-weight:750}.private-clients .bill-count{min-width:20px;height:20px;color:var(--ink);background:#fff;border-radius:999px;place-items:center;padding:0 6px;font-size:.8rem;font-weight:700;display:inline-grid}.private-clients .bill-group.progress{border-radius:var(--radius-sm);background:var(--navy-soft);padding:10px 12px}.private-clients .bill-group.progress .bill-count{color:var(--navy);background:#fff}.private-clients .bill-list{margin:0;padding:0;list-style:none}.private-clients .bill-row{border-bottom:1px solid rgba(11,43,91,.1);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 12px;padding:9px 0;display:grid}.private-clients .bill-row:last-child{border-bottom:0}.private-clients .bill-group.ready .bill-row{border-bottom-color:rgba(139,90,0,.16)}.private-clients .bill-row.progress-row{grid-template-columns:minmax(0,1fr) auto}.private-clients .bill-what{flex-wrap:wrap;align-items:baseline;gap:0 2px;min-width:0;display:flex}.private-clients .bill-job{overflow-wrap:anywhere}.private-clients .bill-client{color:var(--muted);font-size:.92rem}.private-clients .bill-client:before{content:"·";margin-right:4px}.private-clients .go-jobs,.contractors .go-jobs{white-space:nowrap;margin-left:auto}.private-clients>.card-head,.contractors>.card-head{flex-wrap:wrap}.private-clients .bill-when{flex-wrap:wrap;justify-self:end;align-items:center;gap:6px;display:flex}.private-clients .go-jobs,.contractors .go-jobs,.private-clients .final-bill-go{background:var(--job-action);border-color:var(--job-action);color:var(--ink)}.private-clients .go-jobs:hover,.contractors .go-jobs:hover,.private-clients .final-bill-go:hover{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.private-clients .go-jobs:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.contractors .go-jobs:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.private-clients .final-bill-go:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.private-clients .final-bill-go{white-space:nowrap}.private-clients .status-chip{background:var(--navy-soft);color:var(--navy);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:600;display:inline-block}.private-clients .draft-chip{color:var(--ink);white-space:nowrap;background:#fff;border:1px solid rgba(11,43,91,.2);border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:600;display:inline-block}.private-clients .bill-move{margin:6px 0 0}.how-final-bills{border-radius:var(--radius-sm);background:rgba(21,216,179,.1);margin-top:14px;padding:8px 12px}.how-final-bills summary{color:var(--navy);cursor:pointer;align-items:flex-start;gap:6px;padding:2px 0;font-size:.92rem;font-weight:600;list-style:none;display:flex}.how-final-bills summary::-webkit-details-marker{display:none}.how-final-bills summary:before{content:"▸";margin-top:3px;transition:transform .15s;display:inline-block}.how-final-bills[open] summary:before{transform:rotate(90deg)}.private-steps{margin:6px 0 4px;padding-left:22px}.private-steps li{margin:4px 0}.private-steps .jobs-link{background:var(--job-action);color:var(--ink);border-radius:999px;padding:0 8px;font-weight:700;text-decoration:none;display:inline-block}.private-steps .jobs-link:hover{background:var(--job-action-dark);color:var(--ink)}.private-steps .jobs-link:focus-visible{background:var(--job-action-dark);color:var(--ink)}@media (width<=560px){.private-clients .bill-row,.private-clients .bill-row.progress-row{grid-template-columns:1fr}.private-clients .bill-what,.private-clients .bill-client{display:block}.private-clients .bill-client:before{content:none}.private-clients .bill-when{justify-self:start}.private-clients .final-bill-go{width:100%;min-height:40px}}.invoice-doc .previous-source{font-size:.95em}:root{--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--status-critical:#d03b3b;--status-serious:#ec835a;--status-warning:#fab219;--status-good:#0ca30c;--chart-grid:#e1e0d9;--chart-axis:#c3c2b7}.dash-title{flex-wrap:wrap;gap:10px}.dash-range{flex-wrap:wrap;gap:6px;display:flex}.dash-hero{border-left:6px solid var(--red);grid-template-columns:1.4fr 1fr;align-items:center;gap:18px;display:grid}.dash-hero-label{color:var(--muted);margin:0;font-weight:600}.dash-hero-value{color:var(--red-text);overflow-wrap:anywhere;margin:2px 0;font-size:3.2rem;font-weight:750;line-height:1.05}.dash-hero-sub{margin:4px 0 0}.dash-hero-side{gap:10px;display:grid}.dash-side-stat{border-radius:var(--radius-sm);padding:10px 12px}.dash-side-stat p{margin:0}.dash-side-label{font-size:.92rem;font-weight:600}.dash-side-value{font-size:1.6rem;font-weight:700}.dash-not-billed{background:var(--amber-soft)}.dash-not-billed .dash-side-value{color:var(--amber)}.dash-credits{background:var(--green-soft)}.dash-credits .dash-side-value{color:var(--green)}.dash-alerts h2{margin-top:0}.dash-alert-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.dash-alert{border-radius:var(--radius-sm);background:#fff;border-left:5px solid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:6px 10px;padding:10px 12px;display:grid}.dash-critical{border-color:var(--status-critical);background:#fdeeee}.dash-serious{border-color:var(--status-serious);background:#fdf1ec}.dash-warning{border-color:var(--status-warning);background:#fff7e3}.dash-icon{color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.8rem;font-weight:800;display:inline-grid}.dash-critical .dash-icon{background:var(--status-critical)}.dash-serious .dash-icon{background:var(--status-serious)}.dash-warning .dash-icon{background:var(--status-warning);color:var(--ink)}.dash-all-clear .dash-icon{background:var(--status-good)}.dash-alert-level{text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:700}.dash-alert-text{min-width:0}.dash-alert-go{white-space:nowrap;font-weight:600}.dash-all-clear{align-items:center;gap:8px;margin:0;font-weight:600;display:flex}.dash-tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px;display:grid}.dash-tile{padding:12px 14px}.dash-tile p{margin:0}.dash-tile-label{color:var(--muted);font-size:.9rem;font-weight:600}.dash-tile-value{overflow-wrap:anywhere;font-size:1.7rem;font-weight:700;margin:4px 0!important}.dash-tile-note{font-size:.85rem}.tile-commission .dash-tile-value{color:var(--green)}.dash-charts{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:14px;margin-bottom:16px;display:grid}.dash-chart h2{margin:0 0 2px;font-size:1.05rem}.chart-sub{margin:0 0 10px;font-size:.88rem}.chart{position:relative}.chart-legend{color:var(--ink);flex-wrap:wrap;gap:4px 14px;margin-bottom:8px;font-size:.9rem;display:flex}.chart-key{align-items:center;gap:6px;display:inline-flex}.chart-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.chart-plot{height:210px;margin-top:18px;position:relative}.chart-grid{position:absolute;inset:0 0 0 44px}.chart-gridline{border-top:1px solid var(--chart-grid);position:absolute;left:0;right:0}.chart-gridline:first-child{border-top-color:var(--chart-axis)}.chart-tick{color:#898781;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.75rem;position:absolute;top:-.6em;right:calc(100% + 6px)}.chart-bands{display:flex;position:absolute;inset:0 0 0 44px}.chart-band{cursor:pointer;outline:none;flex:1 1 0;justify-content:center;align-items:flex-end;gap:2px;min-width:0;display:flex;position:relative}.chart-band.on{background:rgba(11,43,91,.05)}.chart-band:focus-visible{background:rgba(11,43,91,.05)}.chart-bar{border-radius:4px 4px 0 0;width:min(24px,34%);min-height:0}.chart-stack{flex-direction:column-reverse;gap:2px;width:min(24px,60%);display:flex}.chart-seg{flex-basis:0;min-height:1px}.chart-stack .chart-seg:last-child{border-radius:4px 4px 0 0}.chart-cap{color:var(--ink);white-space:nowrap;font-size:.78rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.chart-x{margin-top:4px;margin-left:44px;display:flex}.chart-xlabel{text-align:center;color:#898781;flex:1 1 0;min-width:0;font-size:.75rem;overflow:hidden}.chart-xlabel.now{color:var(--ink);font-weight:700}.chart-tip{z-index:5;pointer-events:none;background:#fff;border:1px solid rgba(11,11,11,.12);border-radius:10px;gap:2px;min-width:140px;padding:8px 10px;font-size:.85rem;display:grid;position:absolute;top:0;box-shadow:0 6px 18px rgba(11,43,91,.14)}.chart-tip-row{color:var(--muted);align-items:center;gap:6px;display:flex}.chart-tip-row strong{color:var(--ink)}.chart-tip-key{border-radius:2px;width:12px;height:3px;display:inline-block}.chart-tip-total{border-top:1px solid var(--line);padding-top:2px}.chart-area{position:absolute;inset:0 0 0 44px}.chart-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.chart-path{fill:none;stroke:var(--series-1);stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.chart-wash{fill:var(--series-1);fill-opacity:.1;stroke:none}.chart-crosshair{background:#898781;width:1px;position:absolute;top:0;bottom:0}.chart-dot{background:var(--series-1);width:10px;height:10px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;margin:0 0 -5px -5px;position:absolute}.chart-end-label{color:var(--ink);white-space:nowrap;font-size:.78rem;font-weight:600;position:absolute;right:0}.chart-line .chart-bands{inset:0}.chart-line .chart-band.on{background:0 0}.chart-line .chart-band:focus-visible{background:0 0}.chart-table{margin-top:10px;font-size:.9rem}.chart-table summary{cursor:pointer;color:var(--navy);font-weight:600}.chart-table table{margin-top:6px}.bar-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.bar-row{grid-template-columns:minmax(90px,35%) 1fr;align-items:center;gap:10px;display:grid}.bar-name{overflow-wrap:anywhere;font-weight:600}.bar-track{align-items:center;gap:6px;min-width:0;display:flex}.bar-fill{background:var(--series-1);border-radius:0 4px 4px 0;min-width:3px;height:18px}.bar-value{white-space:nowrap;font-size:.85rem;font-weight:600}.dash-jobs h2{margin-top:0}@media (width<=720px){.dash-hero{grid-template-columns:1fr}.dash-hero-value{font-size:2.6rem}.dash-alert{grid-template-columns:auto 1fr}.dash-alert-text,.dash-alert-go{grid-column:1/-1}}.chart-xlabel,.chart-tip-row{white-space:nowrap}@media (width<=720px){.chart-xlabel.skip{visibility:hidden}.chart-xlabel{overflow:visible}.dash-job-table thead{display:none}.dash-job-table,.dash-job-table tbody{display:block}.dash-job-table tr{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:2px 12px;padding:10px 0;display:grid}.dash-job-table td{border:0;justify-content:space-between;gap:8px;padding:0;display:flex}.dash-job-table td.job-cell{grid-column:1/-1;margin-bottom:4px;display:block}.dash-job-table td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:.85rem}}.chart .s1{background:var(--series-1)}.chart .s2{background:var(--series-2)}.chart .s3{background:var(--series-3)}.job-title-link{color:inherit;text-decoration:none}.job-title-link:hover{color:var(--navy);text-decoration:underline}.job-title-link:focus-visible{color:var(--navy);text-decoration:underline}.job-workers{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.job-workers h4{margin:0 0 8px}.job-workers-month{max-width:220px;margin-bottom:8px}.job-workers-total td{border-top:2px solid var(--line)}.only-job-bar{border-radius:var(--radius-sm);background:var(--navy-soft);border-left:5px solid var(--navy);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:0 0 12px;padding:10px 14px;display:flex}@media (width<=720px){.job-workers-table thead{display:none}.job-workers-table,.job-workers-table tbody,.job-workers-table tfoot{display:block}.job-workers-table tr{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:2px 12px;padding:10px 0;display:grid}.job-workers-table td{border:0;flex-wrap:wrap;justify-content:space-between;gap:8px;min-width:0;padding:0;display:flex}.job-worker-earned br{display:none}.job-worker-earned .muted{text-align:right;flex-basis:100%;font-size:.85rem}.job-workers-table td:first-child{grid-column:1/-1;margin-bottom:4px;display:block}.job-workers-table td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:.85rem}}:root{--job-action:#15d8b3;--job-action-dark:#11bd9c;--job-pause:#d45060;--job-pause-dark:#b93c4c}.job-actions .btn{background:var(--job-action);border-color:var(--job-action);color:var(--ink)}.job-actions .btn:hover{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.job-actions .btn:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.job-actions .btn.pause-job{background:var(--job-pause);border-color:var(--job-pause);color:#fff}.job-actions .btn.pause-job:hover{background:var(--job-pause-dark);border-color:var(--job-pause-dark);color:#fff}.job-actions .btn.pause-job:focus-visible{background:var(--job-pause-dark);border-color:var(--job-pause-dark);color:#fff}.dash-range .dash-range-btn{background:var(--job-action);border:2px solid var(--job-action);color:var(--ink);font-weight:600}.dash-range .dash-range-btn:hover{background:var(--job-action-dark);border-color:var(--job-action-dark)}.dash-range .dash-range-btn:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark)}.dash-range .dash-range-btn.on{border-color:var(--ink);font-weight:700}.finished-tag{color:var(--ink);white-space:nowrap;background:#fff;border:1px solid rgba(11,43,91,.16);border-radius:999px;padding:1px 8px;font-size:.85rem;font-weight:600;display:inline-block}.job-card .overtime-toggle,.job-card .add-day-expense{background:var(--job-action);border-color:var(--job-action);color:var(--ink);padding-left:12px;padding-right:12px}.job-card .overtime-toggle:hover,.job-card .add-day-expense:hover{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.job-card .overtime-toggle:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.job-card .add-day-expense:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.group-picker.invalid .group-option{border-color:var(--red)}.group-first{margin:8px 0 0}.kind-field{margin-top:10px}.form .after-type{gap:14px;display:grid}.company-page{max-width:860px}.company-page .add-company-expense{margin:4px 0 14px}.company-expense-form{margin-bottom:16px}.company-expense-form textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);box-sizing:border-box;padding:8px 10px}.year-bar{align-items:center;gap:12px;margin-bottom:10px;display:flex}.year-bar .year-title{text-align:center;min-width:4ch;margin:0}.company-tiles{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.company-tiles .tile{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;flex:160px;gap:2px;padding:10px 14px;display:grid}.company-tiles .tile-label{color:var(--muted);font-size:.85rem}.company-tiles .tile-value{color:var(--navy);font-size:1.35rem}.group-bars{gap:6px;display:grid}.group-bar{border-radius:var(--radius-sm);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid transparent;grid-template-columns:minmax(0,11rem) minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.group-bar:hover,.group-bar.active{border-color:var(--navy);background:var(--navy-soft)}.group-bar-name{overflow-wrap:anywhere}.group-bar-track{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.group-bar-fill{background:var(--job-action);border-radius:999px;height:100%;display:block}.group-bar-amount{font-variant-numeric:tabular-nums;font-weight:700}.company-filters{margin:14px 0 6px}.shown-total{color:var(--muted);margin:0 0 8px}.company-month-title{color:var(--navy);justify-content:space-between;gap:10px;margin:18px 0 8px;display:flex}.company-expense{margin-bottom:8px;padding:0;overflow:hidden}.company-expense-head{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:3.6rem minmax(0,1fr) auto;align-items:start;gap:10px;padding:12px 14px;display:grid}.company-expense.open .company-expense-head{background:var(--navy-soft)}.ce-date{color:var(--muted);font-weight:700}.ce-main{gap:2px;min-width:0;display:grid}.ce-category{overflow-wrap:break-word;font-weight:700}.ce-who,.ce-asset{overflow-wrap:anywhere;font-size:.9rem}.ce-side{justify-items:end;gap:2px;display:grid}.ce-amount{font-variant-numeric:tabular-nums}.ce-files{color:var(--muted);font-size:.85rem}.company-expense-body{border-top:1px solid var(--line);gap:12px;padding:12px 14px 14px;display:grid}.ce-notes{white-space:pre-wrap}.ce-files-part h4{color:var(--navy);margin:0 0 6px}.file-list{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.file-item{border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px;display:flex}.file-name{overflow-wrap:anywhere;flex:10rem;min-width:0;font-weight:600}.file-size{font-size:.85rem}.upload-progress{color:var(--navy);font-weight:700}.renewals{border-left:4px solid var(--amber)}.renewal-row{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 0;display:flex}.renewal-main{flex:14rem;min-width:0}.renewal-when{color:var(--amber);margin:2px 0 0}.renewal-row.overdue .renewal-when{color:var(--red-text);font-weight:700}.renew-btn{background:var(--job-action);border-color:var(--job-action);color:var(--ink)}.file-viewer{width:min(900px,100vw - 32px);max-width:none;max-height:calc(100vh - 40px);overflow:auto}.file-viewer-name{overflow-wrap:anywhere;padding-right:40px}.file-actions{margin:0 0 12px}.file-preview-img{border-radius:var(--radius-sm);max-width:100%;max-height:65vh;margin:0 auto;display:block}.file-preview-pdf{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;height:65vh}@media (width<=560px){.group-bar{grid-template-columns:minmax(0,1fr) auto}.group-bar-track{grid-area:2/1/auto/-1}.company-expense-head{grid-template-columns:3rem minmax(0,1fr);padding:10px}.ce-side{flex-wrap:wrap;grid-column:2;place-items:baseline start;gap:4px 10px;display:flex}.file-preview-pdf{height:50vh}}.modal.file-viewer{border-top-color:var(--navy)}.modal.file-viewer h2{color:var(--navy)}.file-viewer .modal-x{border-color:var(--line);color:var(--navy)}.ot-hl{color:var(--ink);background:#aac4ff;border-radius:4px;padding:0 5px;font-weight:700}.sum-far-block{text-align:left;justify-items:start;display:grid}.sum-far-stack{text-align:left;justify-items:start;gap:1px;display:grid}.sum-far-people,.sum-far-total{white-space:nowrap;line-height:1.25}.sum-far-num{font-size:1.05rem;font-weight:700}.sum-far-unit{opacity:.9;font-size:.8rem}.badge.role-foreman{color:#0f5c3a;background:#dff3ea}.badge.role-helper{color:#8a5a00;background:#fff1d6}.badge.role-intern{color:#1d5f80;background:#e7f4fb}.chip.chip-none{border-style:dashed}.chip.chip-none.on{border-style:solid}.permits-hint{margin:4px 0 0}.modal.similar-modal{max-width:520px}.similar-list{gap:10px;margin-bottom:16px;display:grid}.similar-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);align-items:flex-start;gap:12px;padding:12px;display:flex}.similar-main{flex-direction:column;gap:4px;min-width:0;display:flex}.similar-sub{font-size:.9rem}.similar-reasons{color:var(--ink);overflow-wrap:anywhere;margin:2px 0 6px;padding-left:18px;font-weight:600}.similar-buttons{flex-wrap:wrap;gap:8px;display:flex}.similar-main>.similar-open{align-self:flex-start}.pay-month-sticky{top:var(--chrome-top);z-index:20;background:var(--bg);margin:0 -8px 14px;padding:6px 8px;position:sticky;box-shadow:0 6px 8px -6px rgba(11,43,91,.18)}.pay-month-bar{justify-content:space-between;align-items:center;gap:12px;max-width:520px;margin:0 auto;display:flex}.pay-month-bar .btn{min-width:48px;font-size:1.4rem;line-height:1}.pay-month-title{color:var(--navy);font-size:1.25rem}.pay-totals{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}.pay-earlier{border-left:6px solid var(--red-text);background:#fdeeee}.pay-earlier h2{color:var(--red-text)}.pay-earlier-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}.pay-earlier-item>.pay-month{border:0}.pay-earlier-item>.pay-where{margin:0;padding:0 12px 8px}.pay-people{gap:12px;display:grid}.pay-person-head{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:8px;display:flex}.pay-person-name{color:var(--navy);font-size:1.1rem;font-weight:700}.pay-type{background:var(--bg);color:var(--navy);border-radius:999px;margin-left:auto;padding:2px 10px;font-size:.9rem;font-weight:700}.pay-where{margin-top:10px}.pay-where summary{cursor:pointer;min-height:44px;color:var(--navy);align-items:center;font-weight:600;display:flex}.pay-where-count{margin-left:6px}.pay-job{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:2px 12px;padding:8px 0;display:grid}.pay-job-title{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.pay-job-work{grid-column:1;font-size:.9rem}.pay-job-amount{white-space:nowrap;grid-area:1/2/span 2;align-self:center}.client-tag{border-radius:999px;padding:1px 8px;font-size:.78rem;font-weight:700}.tag-contractor{color:#1f3a8a;background:#e4ecff}.tag-private{color:#8a5a00;background:#fff3d6}.signature-card .not-required{font-size:.8em;font-weight:400}.signature-preview{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;margin-bottom:10px;padding:10px 16px;display:inline-block}.signature-preview img{object-fit:contain;width:220px;max-width:100%;height:90px;display:block}.sign-role{border-bottom:1px solid var(--line);padding:8px 0}.sign-role .row-actions{margin-top:6px}.job-group{border-radius:var(--radius);border:1px solid transparent;margin:0 0 16px;padding:12px}.job-group-contractors{background:#e4ecff;border-color:#c9d7fb}.job-group-private{background:#fff3d6;border-color:#f2dfae}.job-group-title{margin:0 0 10px;font-size:1.05rem}.job-group-contractors .job-group-title{color:#1f3a8a}.job-group-private .job-group-title{color:#8a5a00}.job-group-about{font-size:.85rem;font-weight:400}.job-group-empty{margin:0}@media (width<=560px){.job-group{padding:8px}}.job-group.just-jumped{transition:box-shadow .4s;box-shadow:0 0 0 4px #e8b84a}.job-group{scroll-margin-top:12px}@media (width<=560px),(height<=560px) and (pointer:coarse){.job-group{scroll-margin-top:44px}}.discount-card{border-radius:var(--radius);background:#f3edff;border:2px solid #8b5cf6;margin:16px 0;padding:14px 16px 16px}.discount-title{color:#5b21b6;align-items:center;gap:8px;margin:0 0 4px;font-size:1.15rem;display:flex}.discount-title:before{content:"%";color:#fff;background:#8b5cf6;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.9rem;font-weight:800;display:inline-grid}.discount-intro{color:#4c1d95;margin:0 0 10px;font-size:.92rem}.discount-card .amounts-form,.discount-card .amounts-form>.hint{margin-bottom:0}.discount-card .amounts-form>.row-actions{margin-top:-6px}.discount-card input,.discount-card select{background:#fff}@media (width<=560px){.discount-card{padding:12px}}.info-tip{display:inline}.info-button{border-radius:var(--radius-sm);min-width:32px;min-height:32px;font:inherit;cursor:help;background:0 0;border:0;margin:-6px 0;padding:0 4px;line-height:1}.info-button:hover,.info-tip.open .info-button{background:var(--navy-soft)}.info-button:focus-visible{outline:3px solid var(--navy);outline-offset:1px}.info-bubble{z-index:30;border-radius:var(--radius-sm);background:var(--ink);color:#fff;text-align:left;white-space:normal;width:280px;box-shadow:var(--shadow-sm);margin-bottom:6px;padding:8px 10px;font-size:.88rem;font-weight:500;line-height:1.35;display:none;position:absolute;bottom:100%;left:0}.info-tip.open .info-bubble{display:block}@media (hover:hover){.info-tip:hover .info-bubble{display:block}}.recent-days td.job-cell{position:relative}@media (width<=600px){.recent-days tbody tr{position:relative}.recent-days td.job-cell{position:static}.lock-bubble{width:auto;right:0}}.sign-role .row-actions{align-items:center;position:relative}.sign-button,.print-button{background:var(--navy);color:#fff;border-radius:50%;width:36px;min-width:36px;height:36px;min-height:36px;margin:0;padding:0;font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-style:italic;font-weight:700}.sign-button:hover,.sign-tip.open .sign-button,.print-button:hover,.print-tip.open .print-button{background:var(--ink)}.invoice-actions .print-buttons{align-items:center;position:relative}.invoice-actions .btn.held,.invoice-actions .btn.held:hover{color:#6b7385;opacity:1;cursor:not-allowed;background:#e6e9ef;border-color:#d3d8e1}.print-bubble,.sign-bubble{width:auto;max-width:460px;right:0}.job-scope{margin:6px 0 4px}.job-scope-label{color:var(--muted);font-size:.8rem;font-weight:600;display:block}.job-scope-text{white-space:pre-line;overflow-wrap:anywhere;margin:2px 0 0}.job-scope-text.folded{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.job-scope-more{min-height:32px;color:var(--navy);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.9rem;font-weight:700;text-decoration:underline}.job-scope-input{min-height:84px}.contractors .several-months{border-radius:var(--radius-sm);background:var(--navy-soft);border:1px solid rgba(11,43,91,.14);margin-top:12px;padding:10px 12px}.contractors .several-months h3{margin:0 0 4px;font-size:1rem}.contractors .several-months .hint{margin:0 0 8px}.several-months-open{background:var(--job-action);border-color:var(--job-action);color:var(--ink);font-weight:700}.several-months-open:hover{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.several-months-open:focus-visible{background:var(--job-action-dark);border-color:var(--job-action-dark);color:var(--ink)}.several-months-modal{border-top-color:var(--navy);max-width:560px}.several-months-modal h2{color:var(--navy)}.several-points{margin:0 0 16px;padding-left:20px;line-height:1.45}.several-points li{margin-bottom:8px}.several-months-form .form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.several-from{margin:8px 0 2px}.several-covered{overflow-wrap:anywhere}.invoice-month-heading{border-bottom:2px solid var(--navy);color:var(--navy);break-after:avoid;margin:26px 0 0;padding-bottom:4px;font-size:1.25rem}.hours-modal{border-top-color:var(--navy)}.hours-modal h2{color:var(--navy)}.hours-form .field{margin-bottom:10px}.hours-form .hours-input{width:100%;font-size:1.3rem;font-weight:700}.hours-form .hint{margin-bottom:12px}.hours-form .hours-problem{margin:0 0 12px}.hours-remove{border-color:var(--red);color:var(--red-text)}.hours-remove:hover:not(:disabled){background:#fdecee}.rate-preview-modal{border-top-color:var(--navy);max-width:520px}.rate-preview-modal h2{color:var(--navy)}.rate-preview-modal p{margin:0 0 10px}.rate-preview-group{border-left:4px solid;border-radius:8px;margin:0 0 10px;padding:10px 12px}.rate-preview-group p{margin:0 0 4px}.rate-preview-group ul{margin:4px 0 0;padding-left:20px;line-height:1.45}.rate-will{background:#eaf6ef;border-left-color:#157347}.rate-will .rate-mark{color:#157347;font-weight:800}.rate-wont{background:#f1f3f6;border-left-color:#6b7280}.rate-wont .rate-mark{color:#4b5563;font-weight:800}.rate-preview-why{font-size:.92rem}.rate-preview-total{font-size:1.05rem}.rate-preview-paid{background:#fff7e0;border-radius:8px;padding:8px 12px}.rate-preview-mid{color:#6b4a00;background:#fdf1d8;border-radius:8px;padding:8px 12px}.activity-day-bar{border-radius:var(--radius);background:#fff;gap:8px;margin:4px 0 14px;padding:10px 12px;display:grid;box-shadow:0 1px 3px rgba(11,43,91,.08)}.activity-day-nav{flex-wrap:nowrap;justify-content:center;align-items:center;gap:10px;display:flex}.activity-day-nav .btn-icon{flex:none}.activity-date-text{text-align:center;min-width:0;color:var(--navy);flex:0 auto;margin:0;font-size:1.15rem;font-weight:800}.activity-day-pick{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.activity-day-pick .activity-date{flex:none;width:auto}.activity-date-text .phone-only{display:none}@media (width<=560px){.activity-date-text .wide-only{display:none}.activity-date-text .phone-only{white-space:nowrap;display:inline}.activity-date-text{font-size:1.05rem}}.activity-levels{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.activity-level-chip{font:inherit;cursor:pointer;background:#fff;border:2px solid transparent;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.activity-level-chip.on{border-color:currentColor}.activity-dot{background:currentColor;border-radius:50%;width:10px;height:10px}.activity-filters{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:12px;display:flex}.activity-filters .grow{flex:200px}.activity-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.activity-row{background:#fff;border-left:5px solid;border-radius:8px;padding:10px 12px;box-shadow:0 1px 3px rgba(11,43,91,.08)}.activity-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;font-size:.9rem;display:flex}.activity-time{color:var(--ink);font-weight:700}.activity-badge{border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:700}.activity-area-name{color:#5b6472}.activity-what{overflow-wrap:anywhere;margin:0;line-height:1.45}.activity-open{margin-top:4px;font-weight:700;display:inline-block}.activity-empty .activity-jump{flex-wrap:wrap;gap:8px;display:flex}.level-critical{color:#a8101a}.activity-row.level-critical{color:var(--ink);background:#fdf1f1;border-left-color:#d61f2b}.activity-badge.level-critical{color:#fff;background:#d61f2b}.level-important{color:#8a5a00}.activity-row.level-important{color:var(--ink);background:#fff8e6;border-left-color:#d99a00}.activity-badge.level-important{color:#3d2800;background:#f5c044}.level-change{color:#1d4ed8}.activity-row.level-change{color:var(--ink);background:#f1f5fe;border-left-color:#2f6bdb}.activity-badge.level-change{color:#fff;background:#2f6bdb}.level-info{color:#4b5563}.activity-row.level-info{color:var(--ink);background:#fff;border-left-color:#9aa3af}.activity-badge.level-info{color:#374151;background:#e5e7eb}.field.field-pointed input{outline-offset:2px;outline:3px solid #f5c044;animation:2.4s ease-out forwards field-pointed}@keyframes field-pointed{0%,70%{outline-color:#f5c044}to{outline-color:transparent}}.pay-all{background:#fffaf0;border:2px solid #f0c27a;border-radius:8px;margin-top:10px;padding:10px 12px}.pay-all-title{color:var(--navy);margin-bottom:6px;display:block}.pay-all-months{max-width:360px;margin:0 0 8px;padding:0;list-style:none}.pay-all-months li{justify-content:space-between;gap:12px;padding:2px 0;display:flex}.pay-all-amount{font-variant-numeric:tabular-nums}.pay-all-months .pay-all-total{border-top:1px solid #e3c48f;margin-top:4px;padding-top:6px;font-weight:700}.pay-all-preview{color:var(--navy);background:#fff;border-radius:6px;margin:6px 0 0;padding:6px 10px;font-weight:600}.pay-earlier-person+.pay-earlier-person{margin-top:10px}