@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@400;500;600;700;800&display=swap');
:root{--bg:#f5f6f8;--paper:#fff;--ink:#20242e;--muted:#646c7c;--line:#e2e5ec;--blue:#305be8;--pale:#edf1ff;--orange:#a25712;--red:#b23836;--radius:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 Heebo,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{touch-action:manipulation}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #6788fa;outline-offset:4px}::selection{background:#cfdbff}button:disabled{opacity:.5;cursor:default}input{caret-color:var(--blue)}button{transition:background .18s ease,color .18s ease}header{height:90px;padding:0 max(5vw,24px);background:white;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:30px;font-weight:800;letter-spacing:-1px}.brand-mark{font-family:Georgia,serif;font-style:italic;display:grid;place-items:center;background:var(--blue);color:white;width:34px;height:38px;border-radius:9px;font-size:32px}.brand-dot{color:var(--blue)}.brand small{font-size:14px;font-weight:400;letter-spacing:0;margin-right:16px;border-right:1px solid var(--line);padding-right:24px}.header-actions{display:flex;align-items:center;gap:22px}.avatar{width:36px;height:36px;display:grid;place-items:center;background:#f0f1f5;border-radius:50%;font-size:12px;font-weight:700}.secondary,.primary{min-height:44px;border-radius:9px;padding:10px 20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px}.secondary{background:#f0f2f7;color:var(--ink)}.secondary:hover{background:#e4e8f1}.primary{background:var(--blue);color:white}.primary:hover{background:#2049c9}.text-button{background:transparent;color:var(--muted);padding:8px;min-height:44px;text-decoration:underline;text-underline-offset:4px}.text-button:hover{color:var(--blue)}.prototype{display:flex;align-items:center;gap:9px;padding:11px max(5vw,24px);font-size:12px;color:#606879;background:#edeff4}.status-dot{width:6px;height:6px;border-radius:50%;background:#77839b}.divider{color:#b4bac7;margin:0 5px}.prototype-note{margin-right:auto}main{max-width:1320px;padding:42px 40px 0;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.3;letter-spacing:-1px;font-weight:700}.page-heading p{color:var(--muted);margin-top:7px}h2{font-size:23px;letter-spacing:-.5px}h3{font-size:18px}.banks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}.bank{padding:20px 22px;text-align:right;background:white;border:1px solid var(--line);border-radius:12px;color:var(--ink);min-width:0}.bank:hover{border-color:#9baff7}.bank.selected{background:var(--pale);border:2px solid var(--blue);padding:19px 21px}.bank-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.po{font-size:14px;font-weight:600;direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}.bank-status{color:var(--muted);font-size:11px}.bank-value{display:flex;align-items:baseline;gap:7px;margin-top:16px}.bank-value strong{font-size:28px;font-weight:600;line-height:1.2;direction:ltr}.bank-value span{color:var(--muted);font-size:12px}.bank-bar{height:4px;margin-top:18px;background:#e7eaf1;border-radius:4px;overflow:hidden}.bank-bar i{display:block;height:100%;background:#aab3c8;border-radius:4px}.selected .bank-bar i{background:var(--blue)}.bank.warn .bank-status{color:var(--red)}.bank.warn .bank-bar i{background:#c88f8a}.workspace{background:white;border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-template-columns:1.05fr 1.6fr;overflow:hidden}.balance{background:var(--blue);color:white;padding:32px 36px;position:relative}.balance h2{font-size:15px;font-weight:500;letter-spacing:0;color:#e1e9ff}.balance .huge{font-size:82px;letter-spacing:-3px;line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums;display:inline-block;direction:ltr;margin-top:12px}.balance .unit{font-size:20px;margin-right:10px}.balance .money{margin-top:5px;color:#e3eaff;font-size:16px}.balance-bottom{margin-top:24px;padding-top:20px;border-top:1px solid #6d8af0;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#e3eaff}.balance.overdrawn{background:#8e383a}.allocation{padding:28px 34px;display:flex;flex-direction:column;justify-content:center}.allocation-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.allocation-heading h3{font-size:17px}.badge{font-size:11px;padding:4px 10px;border-radius:20px;background:#fff3e6;color:#865018;white-space:nowrap}.badge.danger{background:#fbe9e8;color:var(--red)}.allocation p{font-size:13px;color:var(--muted);margin-top:4px}.hour-grid{display:grid;grid-template-columns:repeat(25,1fr);gap:5px;margin:24px 0 18px;direction:rtl}.hour-cell{height:20px;border-radius:3px;background:#edf0f6}.hour-cell.used{background:#5275ed}.legend{display:flex;justify-content:space-between;font-size:13px}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:9px;height:9px;background:#5275ed;border-radius:2px}.legend .free{background:#e5e9f2}.allocation .bank-meta{display:flex;gap:24px;border-top:1px solid var(--line);margin-top:20px;padding-top:17px;font-size:12px;color:var(--muted)}.allocation .bank-meta strong{color:var(--ink);font-weight:500}.notice{grid-column:1/-1;background:#fff8f1;padding:13px 24px;color:#80502c;font-size:13px;display:flex;align-items:flex-start;gap:10px}.notice p{margin:0}.work-section{margin-top:36px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-heading p{color:var(--muted);font-size:13px;margin-top:2px}.list-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.search{display:flex;align-items:center;gap:10px;color:#7a8292}.search input{background:none;border:0;width:290px;max-width:100%;padding:10px 0;color:var(--ink);font-size:13px}.search input::placeholder{color:#6c7382}.filters{display:flex;gap:3px;background:#e9ecf2;padding:4px;border-radius:8px}.filters button{padding:7px 13px;color:var(--muted);font-size:12px;border-radius:5px;background:none;min-height:34px}.filters button.active{background:white;color:var(--ink)}.jobs{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.job{border-bottom:1px solid var(--line)}.job:last-child{border-bottom:0}.job summary{list-style:none;display:flex;align-items:center;gap:16px;padding:20px 24px;cursor:pointer}.job summary::-webkit-details-marker{display:none}.job summary:hover{background:#fafbfe}.job-icon{width:42px;height:42px;flex-shrink:0;background:#f1f4fc;color:#6780bb;border-radius:10px;display:grid;place-items:center}.job-main{flex:1;min-width:0}.job-title{font-size:14px;font-weight:500;overflow-wrap:anywhere}.job-meta{font-size:11px;color:var(--muted);margin-top:3px;display:flex;gap:12px}.job-hours{font-size:20px;font-weight:600;white-space:nowrap;min-width:92px;text-align:left;font-variant-numeric:tabular-nums}.job-hours small{font-size:12px;font-weight:400;color:var(--muted);margin-right:4px}.job-price{font-size:13px;color:var(--muted);min-width:80px;text-align:left;font-variant-numeric:tabular-nums}.chevron{color:#8790a2;transition:transform .18s ease}.job[open] .chevron{transform:rotate(180deg)}.job-detail{padding:0 82px 22px 30px;color:var(--muted);font-size:13px;display:flex;flex-wrap:wrap;gap:12px 30px}.job-detail strong{font-weight:500;color:var(--ink)}.job-detail .internal{flex-basis:100%;padding-top:12px;border-top:1px solid var(--line)}.issue{color:var(--red);font-size:11px}.pending{color:#936224;font-size:11px}.empty{padding:50px 24px;text-align:center;color:var(--muted)}footer{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;padding:28px 0 35px}.new-work{background:#edf1ff;border:1px solid #cdd8fd;border-radius:12px;padding:24px;margin-bottom:24px}.new-work[hidden]{display:none}.form-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.fields{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px}.fields label{display:flex;flex-direction:column;gap:5px;font-size:12px}.fields input,.fields select{width:100%;border:1px solid #cbd3e6;padding:10px 12px;background:white;border-radius:7px;min-height:46px;color:var(--ink)}.form-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:15px}.form-bottom p{font-size:13px;color:#4b5c85}.form-error{color:var(--red);font-size:13px}.client .prototype{background:#e8edf9;color:#435789}.client .avatar{display:none}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#222a3c;color:white;border-radius:9px;padding:12px 25px;box-shadow:0 6px 24px #0002;z-index:5;display:none}#toast.show{display:block}svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}body::-webkit-scrollbar{width:9px}body::-webkit-scrollbar-thumb{background:#bac2d4;border-radius:8px}body::-webkit-scrollbar-track{background:var(--bg)}
@media(min-width:1450px){main{padding-top:52px}.bank{padding-top:24px;padding-bottom:24px}.bank.selected{padding-top:23px;padding-bottom:23px}}
@media(max-width:900px){main{padding:30px 24px 0}.banks{gap:10px}.bank{padding:15px}.bank.selected{padding:14px}.bank-top{flex-wrap:wrap}.balance{padding:28px}.allocation{padding:24px}.balance .huge{font-size:66px}.fields{grid-template-columns:1fr 1fr}.wide{grid-column:1/-1}.hour-grid{gap:3px}.hour-cell{height:18px}}
@media(max-width:600px){header{height:74px;padding:0 18px}.brand{font-size:25px;gap:8px}.brand small,.avatar{display:none}.header-actions{gap:0}.secondary{padding:9px 12px;font-size:12px}.prototype{padding:9px 18px;font-size:12px;gap:5px}.prototype-note{display:none}main{padding:27px 18px 0}h1{font-size:27px}.page-heading p{font-size:13px;max-width:290px}.page-heading{align-items:flex-start;gap:8px}.page-heading .text-button{font-size:12px;max-width:70px;padding:0}.banks{grid-template-columns:1fr 1fr;margin-bottom:20px}.bank-top .po{font-size:12px}.bank-status{font-size:12px}.bank-value{margin-top:10px}.bank-value strong{font-size:25px}.bank-bar{margin-top:12px}.workspace{grid-template-columns:1fr}.balance{padding:24px}.balance .huge{font-size:70px}.balance-bottom{margin-top:14px;padding-top:14px}.allocation{padding:24px}.allocation-heading h3{font-size:15px}.allocation .bank-meta{gap:16px}.hour-grid{margin:18px 0}.hour-cell{height:15px}.legend{font-size:12px}.notice{padding:14px 20px;font-size:12px}.section-heading{margin-bottom:14px}.section-heading h2{font-size:21px}.section-heading .primary{padding:9px 12px;font-size:13px}.list-tools{flex-direction:column;align-items:stretch;gap:6px}.search input{width:100%}.filters{align-self:flex-start}.job summary{padding:17px 15px;gap:10px}.job-icon{display:none}.job-title{font-size:13px}.job-meta{font-size:12px;gap:7px}.job-hours{font-size:18px;min-width:57px}.job-hours small{display:block;font-size:12px}.job-price{display:none}.chevron svg{width:16px}.job-detail{padding:0 16px 20px;font-size:12px}.new-work{padding:18px}.fields{grid-template-columns:1fr 1fr}.form-bottom{align-items:flex-start;flex-direction:column}.form-bottom .primary{width:100%}footer{gap:20px;font-size:12px}footer span:first-child{max-width:190px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

[hidden]{display:none!important}

.bank-metrics{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:12px;margin-top:16px}.bank-metrics .bank-value{margin:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start}.bank-money{display:flex;flex-direction:column;gap:5px;padding-inline-start:12px;border-inline-start:1px solid var(--line)}.bank-money strong{font-size:21px;line-height:1.6;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.bank-money span{font-size:12px;color:var(--muted)}.selected .bank-money strong{color:var(--blue)}.warn .bank-money strong{color:var(--red)}
@media(max-width:900px){.bank-metrics{gap:8px}.bank-money{padding-inline-start:8px}.bank-money strong{font-size:18px}.bank-metrics .bank-value strong{font-size:25px}}
@media(max-width:600px){.bank-metrics{grid-template-columns:1fr;gap:10px;margin-top:12px}.bank-metrics .bank-value{flex-direction:row;align-items:baseline;gap:6px}.bank-money{border:0;padding:0;flex-direction:row;align-items:baseline;gap:6px;flex-wrap:wrap}.bank-money strong{font-size:19px}.bank-money span{font-size:11px}}
.split-controls{margin-top:24px;padding-top:20px;border-top:1px solid #cdd8fd}.split-toggle{display:flex;gap:10px;align-items:center;font-weight:600}.split-toggle input{width:20px;height:20px;accent-color:var(--blue)}.split-controls>p{font-size:13px;color:var(--muted);margin:5px 0 16px}.allocation-fields{display:grid;grid-template-columns:2fr 1fr 2fr 1fr;gap:14px;align-items:end}.allocation-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px}.allocation-fields input,.allocation-fields select{width:100%;padding:10px;border:1px solid #cbd3e6;border-radius:7px;background:white;min-height:46px}.split-badge{color:var(--blue);font-weight:500}.internal .secondary{margin-top:12px;font-size:13px}.form-error:not(:empty){margin-top:14px;padding:12px;background:#fff0ed;border-radius:8px}#second-hours{font-size:13px;padding-bottom:10px}#create-bank{margin-top:18px}.form-bottom #estimate{white-space:pre-line;max-width:75%}
@media(max-width:600px){.allocation-fields{grid-template-columns:1fr 1fr}.form-bottom #estimate{max-width:100%}}
@media(min-width:1150px){.banks:has(.bank:nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))}.banks:has(.bank:nth-child(5)) .bank{padding:18px 14px}.banks:has(.bank:nth-child(5)) .bank.selected{padding:17px 13px}.banks:has(.bank:nth-child(5)) .bank-top{flex-wrap:wrap}.banks:has(.bank:nth-child(5)) .bank-money strong{font-size:18px}.banks:has(.bank:nth-child(5)) .bank-metrics{gap:8px}.banks:has(.bank:nth-child(5)) .bank-money{padding-inline-start:8px}}
.billing-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.billing-badges:empty{display:none}.billing-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:500}.billing-badge svg{width:15px;height:15px}.billing-badge.sent{color:#234bb5;background:#eaf0ff}.billing-badge.paid{color:#17643e;background:#e5f5ec}.billing-controls{padding:4px 0 18px}.billing-controls>strong{font-size:14px}.billing-actions{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 8px}.billing-toggle{min-height:44px;padding:10px 14px;display:inline-flex;gap:9px;align-items:center;border-radius:8px;background:#f2f3f6;color:#5b6372;border:1px solid #dce1e9}.billing-toggle.sent.is-on{background:#eaf0ff;color:#234bb5;border-color:#8fa9ed}.billing-toggle.paid.is-on{background:#e5f5ec;color:#17643e;border-color:#87c9a5}.billing-toggle:hover{filter:brightness(.97)}.billing-check{font-size:17px;margin-inline-start:7px}.billing-controls p{font-size:12px;color:var(--muted)}
.billing-toggle.sent{color:#234bb5;border-color:#a8bcec}.billing-toggle.paid{color:#17643e;border-color:#9bcbb0}.billing-toggle.sent.is-on{background:#234bb5;color:white;border-color:#234bb5}.billing-toggle.paid.is-on{background:#17643e;color:white;border-color:#17643e}

.auth-pending>header,.auth-pending>main,.auth-pending>.prototype{display:none}
.auth-panel{min-height:100svh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 70% 20%,#e9eeff,transparent 60%),#f5f7fb}
.auth-panel[hidden]{display:none}.auth-card{width:min(100%,460px);padding:48px 40px;border:1px solid #e2e7ef;background:white;border-radius:28px;box-shadow:0 22px 70px #2233660a;text-align:right}.auth-card .brand-mark{display:inline-grid;width:48px;height:48px;place-items:center}.auth-card h1{font-size:38px;line-height:1.2;margin:28px 0 18px}.auth-card p{color:#64718a;line-height:1.7}.auth-card .eyebrow{font-size:11px;letter-spacing:2px;margin-top:24px;text-align:right}.auth-card .primary{width:100%;justify-content:center;margin-top:24px;min-height:48px}.auth-card #auth-message{font-size:13px;min-height:44px}#sync-status{position:fixed;bottom:16px;left:16px;z-index:40;padding:9px 16px;border:1px solid #d8e9e0;border-radius:12px;background:#f2faf5;color:#28624a;font-size:12px;box-shadow:0 4px 18px #1020300a;max-width:calc(100vw - 32px)}#sync-status.error{background:#fff4e9;border-color:#efd4b6;color:#92511b}
.share-panel{background:#fff;border:1px solid #dbe2f4;border-radius:18px;padding:24px;margin-bottom:24px}.share-panel p{color:#64718a;max-width:680px}.share-panel input{width:min(100%,700px);margin:12px 0;padding:12px;border:1px solid #dbe2f4;border-radius:8px;display:block}.share-panel .primary{padding:10px 20px}
body.client #share-panel{display:none}
#import-button{background:#0dac81;color:#fff;margin-inline-start:auto;margin-inline-end:12px;white-space:nowrap}.client #import-button{display:none}.import-review{background:#f3f6ff;border:1px solid #dbe3fa;border-radius:14px;padding:20px;margin:16px 0 24px;scroll-margin-top:30px}.import-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.import-head span{font-size:12px;color:#667085;overflow-wrap:anywhere}.import-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.import-grid p{font-size:13px;color:#56627a;line-height:1.7}.import-grid label{display:flex;flex-direction:column;gap:8px;font-size:13px}.import-grid input[type=number]{padding:10px;border:1px solid #cbd5e7;border-radius:8px;background:#fff;width:100%}.import-grid .secondary{margin-top:12px;padding:10px 16px}.import-warnings{white-space:pre-line;background:#fff7e9;border-radius:8px;padding:12px;color:#825619!important}.import-warnings:empty{display:none}.import-confirm{flex-direction:row!important;align-items:flex-start;background:white;padding:14px;border-radius:10px;margin-top:20px}.import-confirm input{width:18px;height:18px;flex:none;accent-color:#3959df}.pdf-toolbar{display:flex;align-items:center;gap:6px;font-size:12px}.pdf-toolbar button{padding:6px 12px}.pdf-preview{height:350px;overflow:auto;background:#e4e8f1;padding:12px;border-radius:10px;direction:ltr}.pdf-preview canvas{display:block;background:white;margin:auto;max-width:none!important}@media(max-width:700px){.import-grid{grid-template-columns:1fr}.import-head{flex-direction:column}.section-heading{flex-wrap:wrap;gap:12px}#import-button{margin-inline-start:0}.pdf-preview{height:300px}}

.delete-job{color:#b74444;margin-inline-start:12px}.delete-job:hover{background:#fff0f0;color:#a13232}.deleted-work{margin-top:28px;border-top:1px solid #ddd;padding:20px 0;color:#68736d}.deleted-work>summary{cursor:pointer;font-weight:600}.deleted-work>p{font-size:13px}.deleted-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #e6ebe7}.deleted-row strong{color:#34453d}.deleted-row p{font-size:12px;margin:6px 0}.deleted-row button{flex-shrink:0}

.auto-allocation{margin-top:20px;padding:20px;background:#edf1ff;border:1px solid #d6dfff;border-radius:12px}.auto-allocation>p{color:var(--muted);font-size:13px;margin:8px 0 16px}.allocation-card{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;background:white;border:1px solid #dce3f5;padding:14px 18px;border-radius:9px;margin:8px 0}.allocation-card b{font-size:22px;color:var(--blue)}#allocation-preview>p{font-size:13px;margin-top:10px}

#import-button:hover:not(:disabled){background:#088f72}#import-button:focus-visible{outline-color:#0dac81}
