@font-face{font-family:Onest;src:url('/static/fonts/Onest-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}html,body,input,select,textarea,button{font-family:Onest,system-ui,sans-serif!important}h1,h2,h3,h4,strong,b{font-weight:600}input,select,textarea,button{font:inherit}table,.metric,.stat,.receipt-qty18,.wallet18{font-variant-numeric:tabular-nums}.popup18{width:min(440px,calc(100vw - 28px));border:0;border-radius:22px;padding:22px;background:var(--surface,#fff);color:var(--text,#253149);box-shadow:0 24px 90px #101b3740;max-height:90dvh;overflow:auto}.popup18::backdrop{background:#18243766;backdrop-filter:blur(3px)}.popup18 header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.popup18 h3{margin:0;font-size:20px}.popup18 footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.receipt18{padding-bottom:12px}.receipt-progress18{display:grid;gap:5px;margin:20px 0 10px}.receipt-progress18 small,.receipt-hint18{color:var(--muted,#758195);font-size:12px}.receipt-progress18>div{height:5px;background:#e7ecf2;border-radius:4px;overflow:hidden;margin-top:6px}.receipt-progress18>div span{display:block;height:100%;background:#538875;transition:width .25s}.receipt-hint18{margin-bottom:20px}.receipt18 h4{font-size:12px;letter-spacing:.04em;color:var(--muted,#778394);margin:20px 0 8px}.receipt-swipe18{position:relative;overflow:hidden;border-radius:14px;background:#d8ece2;margin:8px 0;touch-action:pan-y}.receipt-swipe-under18{position:absolute;inset:0;display:flex;align-items:center;gap:8px;padding:16px;color:#39765b;font-size:12px;opacity:0}.receipt-swipe18.swiping .receipt-swipe-under18{opacity:1}.receipt-row18{display:flex;align-items:stretch;border:1px solid var(--border,#e3e8ef);border-radius:14px;background:var(--surface,#fff);position:relative;touch-action:pan-y;transition:background .18s}.receipt-row18.accepted{background:#eef7f1;border-color:#cee3d6}.receipt-edit18{display:flex;text-align:left;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:17px 14px;border:0;background:transparent;color:inherit;cursor:pointer;min-width:0}.receipt-edit18>span:first-child{display:grid;gap:4px;min-width:0}.receipt-edit18 b{font-size:14px;line-height:1.45}.receipt-edit18 small{display:block;color:var(--muted,#819086);font-size:11px}.receipt-qty18{flex-shrink:0;text-align:right;min-width:45px}.receipt-qty18 strong{font-size:22px;color:#314765}.receipt-row18.accepted .receipt-qty18 strong{color:#3a765d}.receipt-full18{border:0;background:transparent;width:42px;flex-shrink:0;color:#8794a6;cursor:pointer}.receipt-row18.accepted .receipt-full18{color:#438667}.receipt-step18{display:flex;align-items:center;gap:12px;margin:24px 0}.receipt-step18 button{width:48px;height:48px;border:1px solid var(--border,#dde4ee);border-radius:14px;background:var(--surface,#fff);font-size:24px;color:inherit}.receipt-step18 input{width:100%;min-width:0;text-align:center;font-size:28px;height:60px;border-radius:15px;border:1px solid var(--border,#dde4ee)}[data-theme=dark] .receipt-row18.accepted{background:#18362b;border-color:#335545}[data-theme=dark] .receipt-step18 button,[data-theme=dark] .popup18{background:#202c3e;color:#e3e9f2}[data-theme=dark] .receipt-swipe18{background:#204231}
@media(max-width:720px){.receipt18{padding:16px!important}.receipt-edit18{padding:16px 12px;gap:8px}.receipt18+.dialog-actions{position:sticky;bottom:0;background:var(--surface,#fff);z-index:2;padding:12px!important;gap:8px}.receipt18+.dialog-actions .btn{flex:1;white-space:normal;font-size:12px}}
.day-part18{display:flex;gap:8px;margin:9px 0}.day-part18>label:first-child{flex:1;min-width:0}.day-part18>label:nth-child(2){width:90px;display:flex;align-items:center;gap:4px}.day-part18 input,.day-part18 select{width:100%;min-width:0}.day-part18 input{width:66px}.day-part18 .icon-btn{flex-shrink:0}.v18-off{color:#7e8a9b!important;background:#eef1f5!important;font-weight:500}.sheet-scroll18{max-height:none!important;min-height:180px;overflow:auto!important;width:100%;overscroll-behavior-x:contain}.sheet18 th{position:sticky;top:0;z-index:2}.sheet18 .row-number{display:none!important}.sheet18 .employee-cell{left:0!important}.sheet-full18 .sidebar,.sheet-full18 .topbar,.sheet-full18 .mobile-nav{display:none!important}.sheet-full18 .shell{margin:0!important}.sheet-full18 #content{position:fixed;inset:0;z-index:25;background:var(--bg,#f4f6fa);max-width:none;padding:14px;overflow:auto;display:flex;flex-direction:column}.sheet-full18 .timesheet-card{flex:1;min-height:0}.sheet-full18 .sheet-scroll18{height:100%;min-height:0}.sheet-full18 .timesheet-metrics,.sheet-full18 .page-head{display:none}.wallet-cards18{display:flex;gap:16px;overflow-x:auto;padding:5px 4px 18px;scroll-snap-type:x proximity}.wallet-total18,.wallet-project18{width:300px;min-width:300px;min-height:200px;border-radius:19px;border:1px solid #dce3ec;text-align:left;padding:23px;display:flex;flex-direction:column;gap:8px;cursor:pointer;scroll-snap-align:start;position:relative;overflow:hidden;color:#30435c;background:#edf1f7}.wallet-total18{background:linear-gradient(130deg,#233349,#3b536e);color:#fff;border-color:#263c56}.wallet-total18 small,.wallet-card-copy18 small{font-size:11px;opacity:.72}.wallet-total18 b,.wallet-card-copy18 b{font-size:16px}.wallet-total18 strong,.wallet-card-copy18 strong{font-size:30px;letter-spacing:-.025em;margin-top:1px}.wallet-total18 span{font-size:11px;opacity:.6}.wallet-card-copy18{position:relative;z-index:2;display:flex;flex-direction:column;gap:8px;max-width:85%}.wallet-card-copy18 b{min-height:39px;line-height:1.25}.wallet-cards18 .selected{outline:2px solid #7e94b2;outline-offset:3px}.wallet-stats18{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:18px 0}.wallet-stats18 div{display:grid;gap:6px;padding:13px;border-radius:12px;background:#f3f5f8}.wallet-stats18 small{font-size:11px;color:#8190a2}.wallet-stats18 b{font-size:18px}.wallet-unallocated18{background:#f4f1eb;color:#786953}.wallet18 .v13-ledger-row{width:100%;text-align:left}.wallet18 .v13-section h3{font-size:16px}[data-theme=dark] .wallet-stats18 div{background:#253244}[data-theme=dark] .v18-off{background:#303b4b!important;color:#a8b4c4!important}
@media(max-width:720px){.sheet18 .employee-cell,.sheet18 th:first-child,.sheet18 tbody td:first-child{min-width:115px!important;max-width:115px!important;width:115px!important;left:0!important}.sheet18 .employee-cell .mini-avatar{display:none}.sheet18 .employee-cell b{font-size:0}.sheet18 .employee-cell b:after{content:attr(data-compact);font-size:11px;line-height:1.5;display:block}.sheet18 td,.sheet18 th{min-width:64px;padding:8px 4px!important}.timesheet-metrics{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;margin:12px 0!important}.timesheet-metrics .metric{padding:9px 7px!important}.timesheet-metrics .metric strong{font-size:18px!important}.timesheet-metrics .metric .label{font-size:9px!important}.timesheet-controls{gap:8px!important;padding:10px!important}.timesheet-controls .btn{font-size:11px;padding:8px}.sheet-scroll18{max-height:calc(100dvh - 270px)!important}.sheet-full18 .sheet-scroll18{max-height:none!important}.wallet18{padding:16px!important}.wallet-total18,.wallet-project18{width:280px;min-width:280px;min-height:185px}.wallet-stats18 b{font-size:15px}.wallet-stats18 small{font-size:10px}}
.project-art18{position:relative;isolation:isolate;overflow:hidden}.project-art-image18{position:absolute;inset:0;z-index:-1;background-image:var(--art-url);background-size:cover;background-position:var(--art-x,50%) var(--art-y,50%);transform:scale(var(--art-zoom,1));pointer-events:none}.project-art18:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#edf3f9 0%,#edf3f9f2 30%,#edf3f9d9 51%,#edf3f980 70%,#edf3f900 100%);pointer-events:none}.project-card.project-art18{background:linear-gradient(140deg,#fff,var(--art-hue));}.project-card.project-art18 .project-art-image18{display:none}.project-card.project-art18:after{background:linear-gradient(125deg,#ffffffef,#ffffffdb)}.v14-project-list .project-card.project-art18 .project-art-image18{display:block}.v14-project-list .project-card.project-art18:after{background:linear-gradient(90deg,#edf3f9 0%,#edf3f9f7 38%,#edf3f9c7 62%,#edf3f900 100%)}.project-hero18,.project-preview-row18{border-radius:17px;min-height:160px;padding:25px;display:flex;align-items:center;background:#e8eff6;color:#314763}.project-hero18{margin-bottom:20px}.project-hero18>span:last-child,.project-preview-row18>span:last-child{display:grid;gap:8px;z-index:1;max-width:70%}.project-hero18 b,.project-preview-row18 b{font-size:20px}.project-hero18 small,.project-preview-row18 small{font-size:11px;color:#697e95}.project-customer18{padding-bottom:20px;border-bottom:1px solid #e4e9ef;margin-bottom:20px}.customer-choice18{display:flex;gap:8px}.customer-choice18 select{flex:1;min-width:0}.project-code18{display:flex;gap:10px;align-items:center;margin-top:12px}.project-code18 input{width:100%;font-size:20px;letter-spacing:.06em;text-transform:uppercase}.project-code18>.field{flex:1;min-width:0}.project-code18>div:last-child{flex:1}.project-code18 small{display:block;font-size:11px;margin-bottom:8px;color:#758497}.project-code18 b{font-size:20px}.project-design18{margin:25px 0;padding:22px;background:#f3f6fa;border-radius:18px}.project-patterns18{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:16px 0}.project-patterns18 button{border:1px solid #e1e7ef;border-radius:10px;padding:3px;background:#fff;overflow:hidden;color:#596b82;cursor:pointer}.project-patterns18 button.selected{outline:2px solid #6c88a7;outline-offset:2px}.project-patterns18 img{width:100%;height:54px;object-fit:cover;border-radius:7px}.project-patterns18 span{font-size:10px;display:block;margin:5px}.project-photo-tools18{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:15px 0}.project-photo-tools18 small{color:#7d8998;font-size:11px}.project-design-preview18{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:12px}.project-preview-row18{touch-action:none;cursor:grab}.project-preview-tile18{border:1px solid #dfe5ed;border-radius:16px;padding:17px;display:flex;flex-direction:column;gap:18px;color:#415976}.project-preview-tile18 small{font-size:10px;color:#7f8fa4}.project-position18{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:17px 0}.project-position18 label{font-size:11px;color:#697b90}.project-position18 input{width:100%;margin-top:8px;accent-color:#637f9e}.project-map18{height:340px;border-radius:12px}.map-popup18{width:min(650px,calc(100vw - 28px))}[hidden]{display:none!important}.wallet-project18 .project-art-image18{opacity:.85}.wallet-project18:after{background:linear-gradient(90deg,#edf3f9 0%,#edf3f9f2 27%,#edf3f9d6 48%,#edf3f966 70%,#edf3f900 100%)}
@media(max-width:720px){.project-patterns18{grid-template-columns:repeat(3,1fr)}.project-design18{padding:14px}.project-design-preview18{grid-template-columns:minmax(0,1fr)}.project-preview-tile18{min-height:95px;max-width:180px}.project-position18{grid-template-columns:1fr}.project-code18{gap:6px}.project-code18 input,.project-code18 b{font-size:16px}.customer-choice18 .btn{padding:8px}.project-map18{height:310px}.project-hero18{padding:20px}.project-hero18 b{font-size:18px}}
.splash18{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#eef3f8;color:#60718a;overflow:hidden;animation:splashOut18 .45s 2.55s both;pointer-events:none}.splash18.dark{background:#131d2b;color:#92a7c1}.splash-glow18{position:absolute;width:900px;height:900px;left:50%;top:46%;transform:translate(-50%,-50%);background:radial-gradient(circle,#a8c2df30 0%,#a8c2df09 48%,transparent 70%);animation:splashGlow18 3s both}.splash18.dark .splash-glow18{background:radial-gradient(circle,#4d739b24 0%,#4d739b09 48%,transparent 70%)}.splash-blueprint18{position:absolute;inset:0;width:100%;height:100%;opacity:.75}.splash-building18{stroke-dasharray:1700;stroke-dashoffset:1700;animation:splashDraw18 1.7s .05s cubic-bezier(.2,.6,.2,1) forwards}.splash-redlines18{stroke-dasharray:620;stroke-dashoffset:620;animation:splashDraw18 1.5s .15s ease-out forwards;opacity:.65}.splash-center18{position:relative;width:440px;height:440px;display:flex;flex-direction:column;align-items:center;justify-content:center}.splash-orbit18{position:absolute;inset:0}.splash-orbit18 svg{width:100%;height:100%;overflow:visible;fill:none}.splash-ring18{stroke:currentColor;stroke-width:.7;opacity:.16;stroke-dasharray:1226;stroke-dashoffset:1226;animation:splashDraw18 1.25s .15s ease-out forwards}.splash-ring-two18{stroke:currentColor;stroke-width:.5;stroke-dasharray:2 13;opacity:.22}.splash-arc18{stroke:#cf5261;stroke-width:2;fill:#cf5261;transform-origin:220px 220px;animation:splashOrbit18 2.5s cubic-bezier(.3,.7,.2,1) forwards}.splash-arc18 path{fill:none}.splash-cross18{stroke:currentColor;stroke-width:1;opacity:.35}.splash-wordmark18{display:flex;align-items:center;gap:12px;position:relative;color:#273a50;animation:splashReveal18 1s .5s both}.splash18.dark .splash-wordmark18{color:#eef3fa}.splash-wordmark18>svg{width:45px;height:45px;fill:#d45160;animation:splashMark18 .85s .15s both}.splash-wordmark18>span{font-size:56px;letter-spacing:-.055em;font-weight:650;line-height:1}.splash-wordmark18>span>span{font-weight:400;color:#63768d;letter-spacing:-.04em}.splash18.dark .splash-wordmark18>span>span{color:#a6b6ca}.splash-kicker18{font-size:10px;letter-spacing:.24em;margin-top:21px;animation:splashReveal18 .8s .9s both}.splash-greeting18{font-size:17px;font-weight:400;margin-top:35px;color:#5c6d83;animation:splashReveal18 .6s 1.25s both}.splash18.dark .splash-greeting18{color:#b6c4d5}.splash-progress18{width:80px;height:2px;background:#8194ac25;margin-top:23px;overflow:hidden}.splash-progress18 span{display:block;height:100%;width:100%;background:#cc5261;transform:translateX(-100%);animation:splashProgress18 2.3s .15s ease forwards}.splash-caption18{position:absolute;bottom:34px;font-size:8px;letter-spacing:.23em;opacity:.45;animation:splashReveal18 1s 1.1s both}@keyframes splashDraw18{to{stroke-dashoffset:0}}@keyframes splashOrbit18{from{transform:rotate(-120deg);opacity:0}20%{opacity:1}to{transform:rotate(70deg);opacity:.55}}@keyframes splashReveal18{from{opacity:0;transform:translateY(9px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes splashMark18{from{transform:translateX(-14px) skewY(-8deg);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes splashProgress18{to{transform:translateX(0)}}@keyframes splashGlow18{from{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes splashOut18{to{opacity:0;filter:blur(3px)}}@media(max-width:720px){.splash-center18{width:350px;height:350px}.splash-wordmark18>span{font-size:44px}.splash-wordmark18>svg{width:36px;height:36px}.splash-kicker18{font-size:8px}.splash-greeting18{font-size:15px;margin-top:28px}.splash-caption18{bottom:28px;font-size:7px}.splash-blueprint18{opacity:.5}}@media(prefers-reduced-motion:reduce){.splash18,.splash18 *{animation:none!important}.splash-building18,.splash-redlines18,.splash-ring18{stroke-dashoffset:0}.splash-progress18 span{transform:none}}

/* Keep the existing timesheet geometry compact on mobile. */
.wallet18{padding:24px!important}
.sheet18 .person-cell{position:sticky!important;left:0!important;z-index:3}
.sheet18 th.person-cell{z-index:4}
.sheet18 .person strong[role=button]{cursor:pointer}
.sheet-full18 #content>.panel{flex:1;min-height:0;display:flex;flex-direction:column}
.sheet-full18 .sheet-scroll18{flex:1;height:auto;min-height:0;max-height:none!important}
.sheet-full18 .timesheet-summary,.sheet-full18 .note-inline{display:none}
@media(max-width:720px){
 .wallet18{padding:16px!important}
 .sheet18 .person-cell{min-width:115px!important;max-width:115px!important;width:115px!important;padding:8px!important}
 .sheet18 .person{gap:0}
 .sheet18 .person .avatar{display:none}
 .sheet18 .person-cell .person strong{font-size:0!important;white-space:normal;user-select:none}
 .sheet18 .person strong:after{content:attr(data-compact);display:block;font-size:11px;line-height:1.5}
 body:has(.sheet18) .periodbar{padding:10px;margin:12px 0;gap:8px}
 body:has(.sheet18) .period-controls{gap:5px}
 body:has(.sheet18) .period-label{min-width:125px;font-size:12px}
 body:has(.sheet18) .period-controls .date-input{width:125px;padding:6px;font-size:12px}
 body:has(.sheet18) .toolbar{margin:8px 0;gap:6px}
 body:has(.sheet18) .filter-count{margin-left:0;font-size:11px}
 body:has(.sheet18) .sheet-expand18{padding:8px 10px;font-size:11px}
 .sheet-full18 .periodbar{flex-direction:row;flex-wrap:wrap;margin-top:0}
 .sheet-full18 .period-controls .date-input{display:none}
 .sheet-full18 .periodbar .segmented{width:auto}
 .sheet-full18 .timesheet-summary{display:none}
}
