:root{--blue-900: #044d8e;--blue-700: #0b6bb5;--blue-500: #1792d0;--blue-accent: #9fcae3;--brand-gradient: linear-gradient(135deg, #044d8e 0%, #1792d0 100%);--ink: #0c2b45;--ink-soft: #35485a;--ink-muted: #4a5b6a;--ink-quiet: #6b7c8b;--ink-faint: #8a99a6;--surface: #ffffff;--surface-page: #f5f8fa;--surface-sunken: #edf1f5;--surface-tint: #eaf3fa;--surface-segmented: #e3ebf1;--line: #c6d4df;--line-soft: #e8eef3;--line-tab: #dce5ec;--line-quiet: #d5dee6;--go: #1b8a4c;--go-bg: #f0faf4;--go-ink: #14663a;--hold-bg: #fff3d6;--hold-line: #e8c97a;--hold-ink: #6b4a00;--hold-ink-soft: #7a5200;--stop: #b3261e;--stop-bg: #fdeceb;--shadow-card: 0 2px 8px rgba(12, 43, 69, .06);--shadow-raised: 0 1px 4px rgba(12, 43, 69, .12);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-pill: 20px;--gap-xs: 6px;--gap-sm: 8px;--gap: 12px;--gap-md: 14px;--gap-lg: 20px;--pad-screen: 16px;--tap-min: 56px;--tap-main: 60px;--tap-small: 44px;--font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--surface-page);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button{font-family:inherit}.app{display:flex;flex-direction:column;height:100%;max-width:520px;margin:0 auto;background:var(--surface-page);overflow:hidden}.app__body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.header{background:var(--brand-gradient);color:#fff;padding:calc(14px + var(--safe-top)) 24px 18px;flex-shrink:0}.header__meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;opacity:.85}.header__main{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:14px}.header__title{font-size:26px;font-weight:800;line-height:1.15}.header__title--sub{font-size:22px}.header__subtitle{font-size:15px;font-weight:500;opacity:.9;margin-top:2px}.header__row{display:flex;align-items:center;gap:12px;margin-top:14px}.header__back{height:var(--tap-small);padding:0 14px;border:none;background:#ffffff29;color:#fff;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;flex-shrink:0}.header__pill{background:#ffffff29;border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}.header__dot{width:8px;height:8px;border-radius:50%;background:#6fe3a1;display:inline-block}.header__dot--off{background:var(--hold-line)}.notice-btn{margin-top:12px;width:100%;border:none;border-radius:10px;background:var(--hold-bg);color:var(--hold-ink-soft);padding:12px 14px;min-height:var(--tap-min);font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer}.notice-btn--calm{background:#ffffff29;color:#fff}.notice-btn__calm,.notice-btn__more{font-weight:500;opacity:.85}.qitem{background:var(--surface);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:10px}.qitem--failed{border:1.5px solid var(--hold-line);background:var(--hold-bg)}.qitem__head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.qitem__what{font-size:17px;font-weight:800;color:var(--ink);line-height:1.3}.qitem__when{font-size:14px;color:var(--ink-muted);margin-top:-6px}.qitem__state{flex-shrink:0;border-radius:var(--radius-sm);padding:6px 12px;font-size:13px;font-weight:800;white-space:nowrap}.qitem__state--pending,.qitem__state--sending{background:var(--surface-tint);color:var(--blue-900)}.qitem__state--sent{background:var(--go-bg);color:var(--go-ink)}.qitem__state--failed{background:#fff;color:var(--hold-ink);border:1.5px solid var(--hold-line)}.qitem__why{font-size:15px;line-height:1.45;color:var(--hold-ink)}.qitem__code{font-size:13px;color:var(--hold-ink-soft);margin-top:4px}.page{padding:var(--pad-screen) var(--pad-screen) 24px;display:flex;flex-direction:column;gap:var(--gap-md)}.card{background:var(--surface);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--gap)}.card__label{font-size:13px;font-weight:700;color:var(--ink-muted);letter-spacing:.04em}.note{font-size:16px;color:var(--ink);background:var(--surface-tint);border-radius:10px;padding:12px 14px;line-height:1.45}.muted{color:var(--ink-muted);font-size:15px;line-height:1.45}.callout{border-radius:var(--radius-md, 14px);padding:16px 18px;line-height:1.45;font-size:15px}.callout--hold{background:var(--hold-bg);border:1.5px solid var(--hold-line);color:var(--hold-ink)}.callout--go{background:var(--go-bg);border:2px solid var(--go);color:var(--go-ink)}.callout--stop{background:var(--stop-bg);border:1.5px solid var(--stop);color:var(--stop);font-weight:600}.callout__title{font-size:17px;font-weight:800}.btn{height:var(--tap-min);min-height:var(--tap-min);padding:0 18px;border-radius:var(--radius);border:none;font-size:17px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;transition:opacity .12s ease}.btn:active{opacity:.82}.btn:disabled{opacity:.5;cursor:default}.btn--main{height:var(--tap-main);min-height:var(--tap-main);background:var(--brand-gradient);color:#fff;font-size:18px;font-weight:800}.btn--solid{background:var(--blue-700);color:#fff}.btn--go{background:var(--go);color:#fff;font-weight:800}.btn--outline{background:var(--surface);color:var(--ink);border:2px solid var(--line)}.btn--outline-brand{background:var(--surface);color:var(--blue-900);border:2px solid var(--blue-accent)}.btn--dashed{background:var(--surface);color:var(--blue-700);border:2px dashed var(--blue-accent)}.btn--quiet{background:none;color:var(--blue-700);font-weight:700;text-decoration:underline}.btn-row{display:flex;gap:10px}.btn-row>.btn{flex:1}.btn-row>*{min-width:0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field__label{font-size:13px;font-weight:700;color:var(--ink-muted);letter-spacing:.02em}.field__input{height:var(--tap-main);border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:0 16px;font-family:inherit;font-size:20px;font-weight:700;color:var(--ink);width:100%;min-width:0}.field__input:focus{outline:none;border-color:var(--blue-500)}.field__input--code{letter-spacing:.35em;text-align:center;font-size:24px}.field__hint{font-size:14px;color:var(--ink-muted);line-height:1.4}.stack{display:flex;flex-direction:column;gap:var(--gap-sm)}.lines{gap:0;padding:4px 18px}.lines__row{padding:12px 0;font-size:15px;color:var(--ink);line-height:1.45}.lines__row+.lines__row{border-top:1px solid var(--line-soft)}.cover{gap:8px}.cover__title{font-size:16px;font-weight:800;color:var(--ink)}.cover__track{position:relative;height:8px;background:var(--surface-segmented);border-radius:4px}.cover__fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--blue-500),var(--blue-900));border-radius:4px;transition:width .3s ease}.cover__goal{position:absolute;left:calc(100% - 2px);top:-4px;bottom:-4px;width:2px;background:var(--blue-accent)}.cover__foot{font-size:12.5px;color:var(--ink-muted)}.cover__nudge{font-size:14px;color:var(--ink-soft);line-height:1.45}.cal__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.cal__month{font-size:15px;font-weight:800;color:var(--ink)}.cal__step{min-height:var(--tap-small);padding:0 10px;border:none;background:var(--surface-tint);color:var(--blue-900);border-radius:10px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.cal__head{font-size:11px;font-weight:700;color:var(--ink-quiet);padding-bottom:2px}.cal__blank{height:30px}.cal__day{height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.cal__day--full{background:var(--blue-700);color:#fff}.cal__day--part{background:var(--blue-accent);color:var(--ink)}.cal__day--none{background:var(--surface-sunken);color:var(--ink-faint)}.cal__day--today{outline:2px solid var(--ink);outline-offset:-2px}.cal__legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:600;color:var(--ink-soft)}.cal__key{display:flex;align-items:center;gap:6px}.cal__swatch{width:12px;height:12px;border-radius:4px;display:inline-block}.cal__swatch--full{background:var(--blue-700)}.cal__swatch--part{background:var(--blue-accent)}.cal__swatch--none{background:var(--surface-sunken);border:1px solid var(--line-quiet)}.cal__hint{font-size:12.5px;color:var(--ink-muted)}.segmented{display:flex;background:var(--surface-segmented);border-radius:var(--radius);padding:4px}.segmented__opt{flex:1;height:48px;border:none;background:none;color:var(--ink-muted);border-radius:9px;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer}.segmented__opt--on{background:var(--surface);color:var(--blue-900);font-weight:800;box-shadow:var(--shadow-raised)}.field__input--soft{font-size:17px}.days{display:flex;gap:var(--gap-xs)}.days__day{flex:1;height:52px;min-width:0;border:2px solid var(--line);background:var(--surface);color:var(--ink-muted);border-radius:10px;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;padding:0}.days__day--on{border-color:var(--blue-700);background:var(--blue-700);color:#fff}.check{display:flex;align-items:flex-start;gap:12px;background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);padding:14px 16px;min-height:var(--tap-min);cursor:pointer}.check input{width:24px;height:24px;flex-shrink:0;margin:0;accent-color:var(--blue-700)}.check__label{display:block;font-size:16px;font-weight:700;color:var(--ink)}.check__hint{display:block;font-size:13.5px;color:var(--ink-muted);margin-top:2px;line-height:1.4}.swap{display:flex;gap:10px;margin-top:10px;align-items:stretch}.swap__box{flex:1;background:var(--surface);border-radius:10px;padding:10px 12px}.swap__tag{font-size:12px;font-weight:700;color:var(--ink-quiet)}.swap__tag--new{color:var(--blue-700)}.swap__text{font-size:14px;font-weight:700;color:var(--ink);margin-top:2px;line-height:1.35}.swap__who{display:block;font-weight:500;color:var(--ink-muted);font-size:13px}.swap__arrow{align-self:center;font-size:18px;font-weight:800;color:var(--hold-ink)}.job__top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.job__label{font-size:14px;font-weight:700;color:var(--blue-700);letter-spacing:.02em}.job__duration{font-size:14px;font-weight:600;color:var(--ink-muted);white-space:nowrap}.job__customer{font-size:22px;font-weight:800;color:var(--ink);line-height:1.2}.job__address{font-size:16px;color:var(--ink-soft);margin-top:2px}.still__when{font-size:16px;color:var(--ink);font-weight:600}.still__leave{font-size:15px;color:var(--ink-soft);margin-top:4px}.offerbar{width:100%;min-height:var(--tap-min);border:2px solid var(--blue-accent);background:var(--surface-tint);border-radius:var(--radius);padding:12px 16px;font-family:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px}.offerbar__badge{font-size:12px;font-weight:800;color:var(--blue-900);letter-spacing:.04em;text-transform:uppercase}.offerbar__what{font-size:17px;font-weight:700;color:var(--ink)}.offerbar__go{font-size:14px;font-weight:700;color:var(--blue-700)}.offer__date{font-size:15px;font-weight:700;color:var(--blue-700)}.offer__when{font-size:26px;font-weight:800;color:var(--ink);margin-top:4px;line-height:1.15}.offer__address{font-size:15px;color:var(--ink-muted);margin-top:4px}.offer__pay{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--go-bg);border-radius:10px;font-size:16px;font-weight:600;color:var(--ink-soft)}.offer__pay strong{font-size:26px;font-weight:800;color:var(--go)}.btn--outline-strong{background:var(--surface);color:var(--blue-900);border:2.5px solid var(--blue-900);height:var(--tap-main);min-height:var(--tap-main);font-size:18px;font-weight:800}.offer__reassure{font-size:14px;color:var(--ink-muted);text-align:center;line-height:1.45}.outcomes{display:flex;gap:var(--gap-sm)}.outcome{flex:1;min-width:0;min-height:58px;border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius);font-family:inherit;font-size:14px;font-weight:700;line-height:1.2;padding:6px 4px;cursor:pointer}.outcome--on{border-color:transparent;color:#fff;font-weight:800}.outcome--on.outcome--done{background:var(--go)}.outcome--on.outcome--price_only,.outcome--on.outcome--couldnt{background:var(--blue-900)}.counts{gap:var(--gap-sm)}.count{display:flex;justify-content:space-between;align-items:center;gap:10px}.count__label{font-size:15px;font-weight:700;color:var(--ink)}.count__controls{display:flex;align-items:center;gap:10px}.count__step{width:52px;height:52px;border:2px solid var(--line);background:var(--surface);border-radius:10px;font-family:inherit;font-size:24px;font-weight:800;color:var(--blue-900);cursor:pointer}.count__step:disabled{opacity:.4;cursor:default}.count__value{width:44px;text-align:center;font-size:22px;font-weight:800;color:var(--ink)}.field__area{border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px 14px;font-family:inherit;font-size:17px;color:var(--ink);width:100%;min-width:0;resize:vertical}.field__area:focus{outline:none;border-color:var(--blue-500)}.chips{display:flex;flex-wrap:wrap;gap:var(--gap-xs)}.chip{min-height:var(--tap-small);border:2px solid var(--line);background:var(--surface);border-radius:var(--radius-pill);padding:10px 16px;font-family:inherit;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer}.chip--on{border-color:transparent;background:var(--blue-900);color:#fff}.late__question{font-size:19px;font-weight:800;color:var(--ink);margin:0;line-height:1.3}.late__options{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-sm)}.late__option{min-height:var(--tap-main);border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius);font-family:inherit;font-size:19px;font-weight:800;cursor:pointer}.late__option--on{border-color:transparent;background:var(--blue-900);color:#fff}.chain{gap:0}.chain__row{padding:10px 0}.chain__row+.chain__row{border-top:1px solid var(--line-soft)}.chain__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.chain__who{font-size:15px;font-weight:800;color:var(--ink)}.chain__times{font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap}.chain__old{color:var(--ink-faint);text-decoration:line-through}.chain__what{font-size:13.5px;color:var(--ink-soft);background:var(--surface-tint);border-radius:var(--radius-sm);padding:8px 10px;margin-top:6px;line-height:1.4}.chain__what--quiet{background:none;padding:0;color:var(--ink-muted);margin-top:4px}.chain__before{font-size:13.5px;color:var(--ink);background:var(--hold-bg);border-radius:var(--radius-sm);padding:8px 10px;margin-top:6px;line-height:1.4}.late__free{font-size:14px;color:var(--ink-muted);text-align:center;line-height:1.45}.earn__label{font-size:13px;font-weight:700;color:var(--blue-700);letter-spacing:.04em}.earn__headline{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.earn__amount{font-size:34px;font-weight:800;color:var(--ink);line-height:1.1}.earn__count{font-size:15px;font-weight:600;color:var(--ink-muted);white-space:nowrap}.earn__invoice{font-size:14.5px;font-weight:600;color:var(--go-ink);background:var(--go-bg);border-radius:var(--radius-sm);padding:10px 12px}.earn__history{gap:0;padding:4px 16px}.earn__period+.earn__period{border-top:1px solid var(--line-soft)}.earn__row{width:100%;min-height:var(--tap-min);border:none;background:none;font-family:inherit;text-align:left;padding:12px 0;display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer}.earn__rowTitle{display:block;font-size:15px;font-weight:800;color:var(--ink)}.earn__rowSub{display:block;font-size:13px;color:var(--ink-muted);margin-top:2px}.earn__status{flex-shrink:0;border-radius:var(--radius-sm);padding:6px 12px;font-size:13px;font-weight:800;white-space:nowrap}.earn__status--paid{background:var(--go-bg);color:var(--go-ink)}.earn__status--sent{background:var(--surface-tint);color:var(--blue-900)}.earn__status--open{background:var(--hold-bg);color:var(--hold-ink)}.earn__jobs{background:var(--surface-page);border-radius:10px;padding:4px 12px;margin:0 0 10px}.earn__job{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-size:13.5px;color:var(--ink-soft)}.earn__job+.earn__job{border-top:1px solid var(--line-soft)}.earn__job strong{color:var(--ink);white-space:nowrap}.earn__more{width:100%;min-height:var(--tap-small);border:none;background:none;font-family:inherit;font-size:13px;font-weight:700;color:var(--blue-700);text-align:left;padding:8px 0;cursor:pointer}.earn__none{font-size:13.5px;color:var(--ink-muted);padding:10px 0}.earn__total{flex-direction:row;justify-content:space-between;align-items:center;font-size:15px;font-weight:700;color:var(--ink-soft)}.earn__total strong{font-size:20px;font-weight:800;color:var(--ink)}.pay__amount{font-size:44px;font-weight:800;color:var(--ink);text-align:center;line-height:1.1}.pay__qr{background:#fff;border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-card);display:flex;justify-content:center}.pay__qr img{width:100%;max-width:280px;height:auto;image-rendering:pixelated}.pay__ask{font-size:16px;color:var(--ink-soft);text-align:center;line-height:1.45}.pay__state{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700}.pay__pulse{width:10px;height:10px;border-radius:50%;background:var(--go);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.pay__pulse{animation:none;opacity:1}}.done{text-align:center;padding:24px 20px}.done__mark{width:64px;height:64px;border-radius:50%;background:var(--go);color:#fff;font-size:34px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto}.done__title{font-size:24px;font-weight:800;color:var(--go-ink);margin-top:14px}.done__body{font-size:16px;color:var(--ink-soft);margin-top:10px;line-height:1.5}.tabbar{display:flex;border-top:1px solid var(--line-tab);background:var(--surface);padding:8px 8px calc(22px + var(--safe-bottom));flex-shrink:0}.tabbar__tab{flex:1;text-align:center;padding:10px 0;border-radius:10px;border:none;background:none;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink-quiet);text-decoration:none;cursor:pointer;min-height:var(--tap-small)}.tabbar__tab--active{background:var(--surface-tint);color:var(--blue-900);font-weight:800}.login{min-height:100%;display:flex;flex-direction:column;background:var(--brand-gradient);padding:calc(32px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));color:#fff}.login__brand{font-size:13px;font-weight:700;letter-spacing:.12em;opacity:.85}.login__title{font-size:30px;font-weight:800;margin-top:10px;line-height:1.15}.login__lead{font-size:16px;font-weight:500;opacity:.9;margin-top:8px;line-height:1.45}.login__card{background:var(--surface);color:var(--ink);border-radius:var(--radius-lg);padding:20px;margin-top:28px;display:flex;flex-direction:column;gap:var(--gap-md);box-shadow:0 12px 40px #044d8e3d}.login__foot{margin-top:auto;padding-top:24px;font-size:13px;opacity:.8;text-align:center;line-height:1.5}.state{padding:40px 24px;text-align:center;color:var(--ink-muted);font-size:16px;line-height:1.5}.state__title{font-size:20px;font-weight:800;color:var(--ink);margin-bottom:8px}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--blue-500);animation:spin .8s linear infinite;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.devbar{background:var(--surface-sunken);border-top:1px solid var(--line-quiet);padding:10px 16px;font-size:13px;color:var(--ink-muted);display:flex;align-items:center;justify-content:space-between;gap:12px}.devbar button{min-height:var(--tap-small);padding:0 12px;border:2px solid var(--line);background:var(--surface);border-radius:10px;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
