:root{--green: #176b4c;--green-dark: #0e4a33;--green-soft: #e2efe8;--green-mid: #5bbd93;--green-light: #a7d8c2;--paper: #f5f7f5;--card: #ffffff;--ink: #17211c;--ink-soft: #45524b;--muted: #616c65;--muted-light: #9ba8a0;--line: #d8deda;--line-soft: #edf1ee;--warn: #7d560f;--warn-bg: #f6ecd6;--warn-row: #fdf9ef;--danger: #a33b2a;--danger-bg: #f7e4e0;--ok: #176b4c;--ok-bg: #e2efe8;--radius: 12px;--radius-pill: 99px;--shadow-fab: 0 6px 18px rgba(23, 107, 76, .35);--shadow-fab-large: 0 8px 24px rgba(23, 107, 76, .4);--font-display: "Bricolage Grotesque", "Public Sans", system-ui, sans-serif;--font-body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--page-max: 480px;--pad: 20px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}@font-face{font-family:Bricolage Grotesque;src:url(/fonts/bricolage-grotesque-v1.woff2) format("woff2");font-weight:600 700;font-style:normal;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-v1.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-italic-v1.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--green)}a:hover{color:var(--green-dark)}:focus-visible{outline:3px solid rgba(23,107,76,.45);outline-offset:2px;border-radius:6px}.tnum{font-variant-numeric:tabular-nums}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0!important}.page{min-height:100dvh;max-width:var(--page-max);margin:0 auto;display:flex;flex-direction:column;padding-top:calc(var(--safe-top) + 28px)}.page-body{padding:8px var(--pad) 0;flex:1;display:flex;flex-direction:column;gap:10px}.page-foot{padding:14px var(--pad) calc(var(--safe-bottom) + 24px);display:flex;flex-direction:column;gap:10px}.page-foot.row{flex-direction:row}.topbar{padding:12px var(--pad) 10px;display:flex;align-items:center;gap:12px}.topbar.home{justify-content:space-between;align-items:baseline}.tabs{display:flex;gap:2px;margin:0 var(--pad) 2px;padding:3px;background:var(--line-soft);border-radius:14px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:0 9px;border:0;border-radius:11px;background:transparent;color:var(--ink-soft);font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}.tab.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #14281e24}.tab .count{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--warn-bg);color:var(--warn);font-size:12px;line-height:20px;font-variant-numeric:tabular-nums}@media(max-width:379px){.tabs{gap:0;padding:3px 2px}.tab{padding:0 6px;font-size:13px;gap:4px}.tab .count{min-width:18px;padding:0 5px}}.topbar .brand{font-family:var(--font-display);font-weight:700;font-size:26px}.topbar .date{font-size:13px;color:var(--muted)}.topbar h1{font-size:19px}.topbar .sub{font-size:12px;color:var(--muted)}.back{width:44px;height:44px;margin-left:-12px;border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-soft);border-radius:50%}.back:active{background:var(--line-soft)}.label{font-size:11px;letter-spacing:.1em;font-weight:600;color:var(--muted);text-transform:uppercase}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card.pad{padding:14px 16px}.row{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line-soft)}.row:last-child{border-bottom:0}.row>svg{flex:none}.row .title{font-weight:600;font-size:14.5px}.row .meta{font-size:12px;color:var(--muted);margin-top:1px}.row .value{font-weight:600;font-size:14.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.row .value.big{font-weight:700;font-size:16px}.row.link{width:100%;border-left:0;border-right:0;border-top:0;background:transparent;text-align:left;min-height:56px}.row.link:active{background:var(--line-soft)}.row.link:disabled{opacity:1;cursor:default;color:inherit}.row.tap-edit>div:first-child{flex:1;min-width:0}.row.tap-edit .edit-hint{flex:none;display:inline-flex;color:var(--muted);margin-left:-4px}.row.add-row{min-height:48px}.row.add-row .title{color:var(--green)}.unit-suffix{align-self:center;font-size:12px;color:var(--muted);white-space:nowrap}.line-sum{width:100%;text-align:right;font-size:12.5px;font-weight:600;color:var(--ink-soft);min-height:16px}.type-instead{align-self:center;display:inline-flex;align-items:center;gap:8px}.row.warn{background:var(--warn-row)}.row .meta.warn{color:var(--warn);font-weight:600}.chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:var(--radius-pill);white-space:nowrap}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.muted{background:var(--line-soft);color:var(--ink-soft)}.chip.danger{background:var(--danger-bg);color:var(--danger)}.btn{min-height:52px;padding:0 18px;border-radius:var(--radius);border:1.5px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:16px;width:100%;text-decoration:none;transition:transform 80ms ease,background .12s ease}.btn:active{transform:scale(.985)}.btn.primary{background:var(--green);color:#fff}.btn.primary:hover{background:var(--green-dark)}.btn.secondary{background:var(--card);color:var(--ink-soft);border-color:var(--line);font-weight:600}.btn.secondary.small{min-height:48px;font-size:15px}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn.secondary:disabled{color:var(--muted-light);opacity:1}.btn.grow-2{flex:2}.btn.grow-1{flex:1}.btn.text{background:transparent;color:var(--green);border:0;min-height:44px;width:auto;padding:0 8px;font-size:13px;font-weight:600}.btn.warn-text{background:transparent;color:var(--warn);border:0;min-height:44px;width:auto;padding:0 8px;font-size:13px;font-weight:700}.notice{border-radius:var(--radius);padding:11px 14px;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft)}.notice.warn{background:var(--warn-bg)}.notice.warn svg{color:var(--warn);flex:none}.notice.danger{background:var(--danger-bg)}.notice.danger svg{color:var(--danger);flex:none}.notice.ok{background:var(--ok-bg)}.notice .grow{flex:1}.hint{display:flex;align-items:center;gap:10px;padding:2px 4px;font-size:13px;color:var(--muted)}.hint svg{color:var(--green);flex:none}.quote{background:var(--green-soft);border-radius:var(--radius);padding:12px 14px;font-style:italic;font-size:13px;line-height:1.5;color:var(--ink-soft)}.quote.said .translated{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-style:normal}.said-label{display:block;font-size:12px;font-weight:600;color:var(--green-dark);margin-bottom:2px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea{min-height:48px;padding:10px 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--card);font-size:16px;width:100%}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #176b4c2e}.field .help{font-size:12px;color:var(--muted)}.field .error{font-size:12px;color:var(--danger);font-weight:600}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.home-fab{padding:16px var(--pad) calc(var(--safe-bottom) + 36px);display:flex;flex-direction:column;align-items:center;gap:10px}.fab{width:76px;height:76px;border-radius:50%;border:0;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-fab)}.fab:active{transform:scale(.96)}.fab-label{font-weight:600;font-size:15px;color:var(--green)}.empty{text-align:center;color:var(--muted);padding:40px 12px;font-size:14px;line-height:1.5}.jobcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:6px;width:100%;text-align:left}.jobcard:active{background:var(--line-soft)}.jobcard .head{display:flex;justify-content:space-between;align-items:center;gap:10px}.jobcard .name{font-weight:600;font-size:16px}.jobcard .amount{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.jobcard .meta{font-size:13px;color:var(--muted)}.jobcard .chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bottomnav{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr auto 2fr;align-items:end;gap:4px;background:linear-gradient(to top,#f5f7f5 70%,#f5f7f500);padding:8px 12px calc(var(--safe-bottom) + 14px);margin-top:auto}.bottomnav a{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:48px;min-width:52px;justify-content:center;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none;border-radius:10px;padding:4px 8px}.bottomnav a.active{color:var(--green)}.bottomnav a.wide{justify-self:center}.bottomnav a:active{background:var(--line-soft)}.nav-fab-slot{display:flex;flex-direction:column;align-items:center;gap:8px}.stack{display:flex;flex-direction:column;gap:12px}fieldset{border:0;margin:0;padding:0;min-width:0}fieldset legend{padding:0;margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip.removable{border:0;cursor:pointer;min-height:44px;padding:0 12px;font-size:12.5px}.row.selected{background:var(--green-soft)}.checkmark{width:26px;height:26px;border-radius:50%;background:var(--green-soft);color:var(--green);display:inline-flex;align-items:center;justify-content:center;flex:none}.logo-preview{max-height:72px;max-width:220px;object-fit:contain;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:8px}.help{font-size:12px;color:var(--muted)}.error{font-size:12px;color:var(--danger);font-weight:600}.auth{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:0 var(--pad) 40px}.auth .logo{width:64px;height:64px;border-radius:16px;background:var(--green);display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-fab)}.auth h1{font-size:26px;font-weight:700}.auth p{color:var(--ink-soft);font-size:14.5px;line-height:1.5}.status{font-size:13px;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.record-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:8px 4px}.halo{width:140px;height:140px;border-radius:50%;background:var(--green-soft);display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.halo.live{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.fab.large{width:104px;height:104px;box-shadow:var(--shadow-fab-large)}.bars{display:flex;align-items:flex-end;gap:3px;height:34px}.bar{width:4px;height:8px;border-radius:2px;background:var(--green);transition:height 80ms linear}.bar.b5,.bar.b6,.bar.b7{background:var(--green-mid)}.bar.b8,.bar.b9{background:var(--green-light)}.record-status{display:flex;flex-direction:column;align-items:center;gap:4px}.record-status h2{font-size:22px}.timer{font-size:14px;color:var(--muted)}.upload{gap:8px;cursor:pointer}.extras{width:100%}.extras summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--green);min-height:44px;display:flex;align-items:center}.queue-chip{background:var(--warn-bg);color:var(--warn)}.backdrop{position:fixed;inset:0;background:#17211c73;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--paper);width:100%;max-width:var(--page-max);max-height:92dvh;border-radius:18px 18px 0 0;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad) 8px}.sheet-head h2{font-size:19px}.sheet-head .back{margin:0;font-size:26px;line-height:1}.sheet-body{overflow-y:auto;padding:4px var(--pad) 20px;display:flex;flex-direction:column;gap:12px}.signature{display:flex;flex-direction:column;gap:6px}.signature-canvas{width:100%;height:140px;background:var(--card);border:1.5px dashed var(--line);border-radius:var(--radius);touch-action:none;display:block}.signature-foot{display:flex;align-items:center;justify-content:space-between}.rows-edit .row{flex-wrap:wrap}.qty-input{width:84px;min-height:44px;padding:6px 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);font-size:15px;text-align:right;font-variant-numeric:tabular-nums}.row-actions{display:flex;gap:4px}.row .value.muted{color:var(--muted);font-weight:500}.processing{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;color:var(--ink-soft)}.processing .spinner{width:44px;height:44px;border-radius:50%;border:4px solid var(--green-soft);border-top-color:var(--green);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.total-row{background:var(--green-soft)}.total-row .title{font-weight:700;font-size:15.5px}.total-row .value{font-weight:700;font-size:16.5px;color:var(--green)}.doc-icon{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}.doc-icon.ok{background:var(--ok-bg);color:var(--green)}.doc-icon.warn{background:var(--warn-bg);color:var(--warn)}.doc-icon.muted{background:var(--line-soft);color:var(--muted)}.row.link .chev{color:var(--muted);flex:none}.prose h2{font-size:15px;margin:14px 0 4px}.prose p,.prose li{font-size:14px;line-height:1.5;color:var(--ink)}.prose ul{padding-left:18px;margin:0 0 8px}.prose a,.help a{color:var(--green)}.textlink{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--green);font-weight:600;text-decoration:none}.textlink:hover{text-decoration:underline}.btn.text.danger{color:var(--danger)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo{margin:0;display:flex;flex-direction:column;gap:2px}.photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.person-input{min-width:96px;text-align:left}.entry-edit select{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 8px;background:var(--card);font-size:14px}.suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.suggest .btn{width:auto;min-height:44px;padding:0 14px;font-size:14px;text-align:left}.checkline{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px}.checkline input{width:22px;height:22px;accent-color:var(--green)}.textarea-inline{width:100%;min-height:96px;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--radius);font-size:14px;line-height:1.5;background:var(--card)}.line-edit{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.line-edit select.qty-input{width:72px}.line-edit input.qty-input{width:92px}.custcard .addr{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact a{color:var(--green);font-weight:600;text-decoration:none}.addr-row .title{overflow-wrap:anywhere}.addr-row .btn{flex:none}.for-customer{display:flex;flex-direction:column;gap:2px}.for-customer .who{font-weight:700;font-size:16px}.for-customer .where{font-size:13px;color:var(--muted)}a.row.link{color:inherit;text-decoration:none}.ask{border-color:var(--green-light)}.ask-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.ask-head .title{font-size:16px;font-weight:700;margin:0}.ask-input{display:flex;gap:8px;align-items:stretch}.ask-input input{flex:1;min-width:0}.mic-btn{flex:none;width:52px;min-height:48px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--card);color:var(--green);display:inline-flex;align-items:center;justify-content:center}.mic-btn.on{background:var(--green);border-color:var(--green);color:#fff}.mic-btn:disabled{opacity:.55}.ask-skip{align-self:flex-start;margin-left:-8px}.hint.ok{color:var(--ok);font-weight:600}.split,.split>.col{display:contents}@media(min-width:768px)and (max-width:1023px){:root{--page-max: 640px}}@media(min-width:1024px){:root{--pad: 28px}.page.narrow{max-width:760px}.shell.wide{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh}.shell.wide .bottomnav{display:none}.shell.wide .page{max-width:1180px;width:100%;padding-top:20px}.shell.wide .page.narrow{max-width:760px}.sidenav{display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100dvh;padding:22px 14px 18px;background:var(--card);border-right:1px solid var(--line)}.sidenav-brand{display:flex;align-items:center;gap:10px;padding:2px 10px 20px;font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--ink);text-decoration:none}.sidenav-brand:hover{color:var(--ink)}.sidenav-brand .logo{flex:none;border-radius:10px;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center}.sidenav-new{margin-bottom:16px;min-height:48px;font-size:15px}.sidenav>a:not(.sidenav-brand){display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:10px;color:var(--ink-soft);font-weight:600;font-size:15px;text-decoration:none}.sidenav>a:not(.sidenav-brand):hover{background:var(--line-soft);color:var(--ink)}.sidenav>a.active,.sidenav>a.active:hover{background:var(--green-soft);color:var(--green-dark)}.sidenav-foot{margin-top:auto;padding:14px 10px 0;border-top:1px solid var(--line-soft);min-width:0}.sidenav-foot .title{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidenav-foot .meta{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar h1{font-size:24px}.topbar .sub{font-size:13px}.shell.wide .tabs{align-self:flex-start}.shell.wide .page-body.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-content:start;gap:12px}.shell.wide .page-body.cards>:not(.jobcard){grid-column:1 / -1}.shell.wide .page-body.cards>.field{max-width:440px}.shell.wide .split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start}.shell.wide .split>.col{display:flex;flex-direction:column;gap:10px;min-width:0}.shell.wide .page-foot{position:sticky;bottom:0;z-index:5;flex-direction:row-reverse;flex-wrap:wrap;align-items:center;padding:18px var(--pad) 22px;background:linear-gradient(to top,var(--paper) 72%,rgba(245,247,245,0))}.shell.wide .page-foot.row{flex-direction:row;justify-content:flex-end}.shell.wide .page-foot .btn{width:auto;min-width:200px;flex:0 0 auto}.shell.wide .page-foot .help{flex-basis:100%;text-align:right!important}.backdrop{align-items:center;padding:24px}.sheet{max-width:600px;max-height:86dvh;border-radius:18px}button.jobcard:hover,a.jobcard:hover{border-color:var(--green-light);box-shadow:0 2px 10px #14281e12}.row.link:not(:disabled):hover,a.row.link:hover{background:var(--line-soft)}.btn.secondary:not(:disabled):hover{border-color:var(--muted-light)}.tab:not(.on):hover{color:var(--ink);background:#ffffff8c}}
