.techapp{--g900:#0f3d24;--g800:#15532f;--g700:#1b6e3f;--g600:#1f8a4c;--g500:#34a85f;--g200:#9fd9bb;--g50:#eaf6ee;--teal:#12897b;--ink:#1d2418;--muted:#6b7264;--faint:#99a08f;--line:#e4e7df;--surface:#f6f7f3;--card:#fff;--amber800:#633806;--amber50:#faeeda;--red600:#a32d2d;--red50:#fcebeb;--grad:linear-gradient(100deg,var(--g800),var(--g500));--mono:ui-monospace,"SF Mono",Menlo,monospace;position:relative;margin:0 auto;max-width:560px;min-height:100dvh;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}@media (min-width:600px){.techapp{box-shadow:0 0 0 1px var(--line);min-height:100vh}}.techapp *{box-sizing:border-box}.techapp a{color:inherit;text-decoration:none}.t-head{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--grad);color:#fff;gap:11px;padding:max(14px,env(safe-area-inset-top)) 16px calc(14px + env(safe-area-inset-top))}.t-head,.t-head .mk{display:flex;align-items:center}.t-head .mk{width:32px;height:32px;border-radius:9px;background:hsla(0,0%,100%,.16);justify-content:center;font-weight:800;font-size:16px;flex:none}.t-head .ttl{font-size:15px;font-weight:700;line-height:1.15}.t-head .sub{font-size:11px;color:#cde6d6;font-weight:500}.t-head .bk{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0 4px 0 0;line-height:1}.t-newbtn{background:hsla(0,0%,100%,.17);border:1px solid hsla(0,0%,100%,.26);padding:7px 13px;font:inherit;font-size:12px;font-weight:700;gap:5px}.t-avbtn,.t-newbtn{color:#fff;border-radius:999px;display:flex;align-items:center;cursor:pointer}.t-avbtn{width:32px;height:32px;border:1px solid hsla(0,0%,100%,.24);justify-content:center;flex:none}.t-avbtn,.t-chip{background:hsla(0,0%,100%,.15)}.t-chip{display:flex;align-items:center;gap:5px;border:1px solid hsla(0,0%,100%,.22);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.t-body{flex:1 1;overflow-y:auto;padding:15px 15px calc(96px + env(safe-area-inset-bottom));gap:13px}.t-actions,.t-body{display:flex;flex-direction:column}.t-actions{position:-webkit-sticky;position:sticky;bottom:0;margin-top:auto;padding:12px 15px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--surface) 66%,hsla(75,20%,96%,0));z-index:15;gap:10px}.t-cta{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:54px;background:var(--g600);color:#fff;border:none;border-radius:14px;font:inherit;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 8px 20px -6px rgba(31,138,76,.55)}.t-cta:active{transform:translateY(1px)}.t-cta.ghost{background:#fff;color:var(--g700);border:1.5px solid var(--line);box-shadow:none}.t-hsm{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.t-card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:14px}.t-muted{color:var(--muted)}.t-fw7{font-weight:700}.t-ico{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.t-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}.t-pill.green{background:var(--g50);color:var(--g800)}.t-pill.amber{background:var(--amber50);color:var(--amber800)}.t-pill.grey{background:#eef0ea;color:var(--muted)}.t-avatar{width:44px;height:44px;border-radius:999px;background:var(--g50);color:var(--g700);flex:none}.t-avatar,.t-signout{display:flex;align-items:center;justify-content:center}.t-signout{width:100%;min-height:50px;border:1.5px solid var(--red600);background:var(--red50);color:var(--red600);border-radius:13px;font:inherit;font-size:14.5px;font-weight:700;gap:8px;cursor:pointer}.t-signout:active{transform:translateY(1px)}.t-daybar{display:flex;gap:8px}.t-stat{flex:1 1;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:10px 12px}.t-stat b{font-size:20px;font-weight:800;font-family:var(--mono);color:var(--g700);display:block}.t-stat span{font-size:10.5px;color:var(--muted);font-weight:600}.t-prog{height:7px;background:#e7ebe2;overflow:hidden;margin-top:9px}.t-prog,.t-prog>i{border-radius:99px}.t-prog>i{display:block;height:100%;background:var(--g500)}.t-stop{display:flex;gap:12px;align-items:flex-start;padding:13px;background:var(--card);border:1px solid var(--line);border-radius:15px;cursor:pointer;width:100%;text-align:left;font:inherit}.t-stop.done{opacity:.6}.t-stop .num{width:26px;height:26px;border-radius:8px;background:var(--g900);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none;font-family:var(--mono)}.t-stop.cur .num{background:var(--g500);box-shadow:0 0 0 4px var(--g50)}.t-stop.done .num{background:var(--g200);color:var(--g800)}.t-stop .nm{font-size:14.5px;font-weight:700}.t-stop .ad{font-size:12px;color:var(--muted);margin-top:1px}.t-stop .svc{font-size:11.5px;color:var(--teal);font-weight:600;margin-top:4px}.t-stop .tm{margin-left:auto;text-align:right;font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}.t-map{height:160px;border-radius:15px;overflow:hidden;position:relative;border:1px solid var(--line)}.t-map.real{height:240px}.t-map svg{display:block;width:100%;height:100%}.t-map .mtag{position:absolute;left:10px;bottom:9px;background:hsla(0,0%,100%,.93);border-radius:9px;padding:5px 10px;font-size:11px;font-weight:700;color:var(--g800);display:flex;gap:6px;align-items:center}.pinpulse{transform-origin:center;animation:t-pp 1.8s ease-out infinite}@keyframes t-pp{0%{opacity:.5;r:9}70%{opacity:0;r:20}to{opacity:0}}@media (prefers-reduced-motion:reduce){.pinpulse{animation:none;opacity:0}}.t-lbl{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px;display:block}.t-intent{display:flex;align-items:center;gap:11px;width:100%;padding:13px;border:1.5px solid var(--line);border-radius:13px;background:#fff;font:inherit;cursor:pointer;text-align:left}.t-intent.on{border-color:var(--g500);background:var(--g50)}.t-intent .ico{color:var(--g700)}.t-intent .it{font-weight:700;font-size:14px;color:var(--ink)}.t-intent .is{font-size:11.5px;color:var(--muted)}.t-pinpad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:13px;gap:13px;width:240px;margin:12px auto 4px}.t-pinkey{height:60px;border-radius:15px;background:hsla(0,0%,100%,.13);border:1px solid hsla(0,0%,100%,.18);color:#fff;font:inherit;font-size:23px;font-weight:600;display:flex;align-items:center;justify-content:center;cursor:pointer}.t-pinkey:active{background:hsla(0,0%,100%,.26)}.t-pinkey.blank{background:none;border:none;cursor:default}.t-pindots{display:flex;gap:14px;justify-content:center;margin:4px 0 2px}.t-pindots i{width:14px;height:14px;border-radius:50%;background:hsla(0,0%,100%,.28);transition:.1s}.t-pindots i.on{background:#fff}.t-linkbtn{background:none;border:none;color:#eaf6ee;font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;padding:6px}.t-login{flex:1 1;min-height:100dvh;background:var(--grad);color:#fff;flex-direction:column;gap:7px;padding:34px 26px calc(34px + env(safe-area-inset-bottom))}.t-login,.t-login .logo{display:flex;align-items:center;justify-content:center}.t-login .logo{width:64px;height:64px;border-radius:18px;background:hsla(0,0%,100%,.16);font-size:31px;font-weight:800;margin-bottom:6px}.t-login h1{margin:0;font-size:23px;font-weight:800}.t-login .tag{color:#cde6d6;font-size:13px;margin-bottom:22px}.t-login form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:11px}.t-login .li{width:100%;border:1px solid hsla(0,0%,100%,.25);border-radius:12px;padding:14px;font:inherit;font-size:15px;background:hsla(0,0%,100%,.12);color:#fff;outline:none}.t-login .li::placeholder{color:#bcd4c4}.t-login .li:focus{border-color:#fff;background:hsla(0,0%,100%,.18)}.t-login button{width:100%;min-height:52px;border:none;border-radius:13px;background:#fff;color:var(--g800);font:inherit;font-size:16px;font-weight:700;cursor:pointer;margin-top:4px}.t-login button:disabled{opacity:.6}.t-login .err{color:#ffd7d2;font-size:13px;text-align:center;min-height:16px}.t-login .soon{margin-top:18px;font-size:12px;color:#cde6d6;gap:7px;opacity:.85}.t-login .soon,.t-task{display:flex;align-items:center}.t-task{gap:12px;padding:12px 2px;border-bottom:1px solid var(--line);cursor:pointer}.t-task:last-child{border-bottom:none}.t-box{width:26px;height:26px;border-radius:8px;border:2px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center;background:#fff;transition:.12s}.t-box.on{background:var(--g600);border-color:var(--g600)}.t-box .t-ico{width:16px;height:16px;color:#fff;stroke-width:3;opacity:0}.t-box.on .t-ico{opacity:1}.t-task .lbl{font-size:14px;font-weight:600}.t-task.on .lbl{color:var(--muted);text-decoration:line-through}.t-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.t-field:last-child{margin-bottom:0}.t-field .flab{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.t-inp{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 11px;font:inherit;font-size:14px;background:#fff;color:var(--ink);outline:none}.t-inp:focus{border-color:var(--g500)}textarea.t-inp{resize:vertical;min-height:64px}.t-two{display:flex;gap:9px}.t-two>*{flex:1 1}.t-auto{font-size:9px;font-weight:700;color:var(--g700);background:var(--g50);border-radius:4px;padding:1px 5px;text-transform:uppercase}.t-saved{font-size:11px;color:var(--g600);font-weight:600;display:flex;align-items:center;gap:4px}.t-photos{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.t-photo{aspect-ratio:1;border-radius:11px;overflow:hidden;position:relative;background:#dfe7dc}.t-photo img{width:100%;height:100%;object-fit:cover;display:block}.t-photo .del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(15,61,36,.72);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.t-photo .del .t-ico{width:13px;height:13px;stroke-width:3}.t-photo-add{aspect-ratio:1;border-radius:11px;background:var(--g50);border:2px dashed var(--g200);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--g600);font-size:10.5px;font-weight:700;cursor:pointer}.t-balance{border-radius:16px;padding:18px;text-align:center;color:#fff;background:linear-gradient(100deg,#15532f,#1b6e3f)}.t-balance.due{background:var(--grad)}.t-balance .bl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#cde6d6}.t-balance .bv{font-size:37px;font-weight:800;font-family:var(--mono);margin:2px 0;line-height:1}.t-balance .bs{font-size:12.5px;color:#eaf6ee}.t-summ{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.t-summ:last-child{border:none}.t-summ .t-ico{color:var(--g600);width:18px;height:18px}.t-backlink{background:none;border:none;color:var(--g700);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:2px 0;display:flex;align-items:center;gap:4px;align-self:flex-start}.t-seg{display:flex;background:#eef0ea;border-radius:12px;padding:4px;gap:3px}.t-seg button{flex:1 1;border:none;background:none;font:inherit;font-size:11.5px;font-weight:700;color:var(--muted);padding:9px 2px;border-radius:9px;cursor:pointer}.t-seg button.on{background:#fff;color:var(--g700);box-shadow:0 1px 3px rgba(0,0,0,.08)}.t-opt{border:2px solid var(--line);border-radius:14px;padding:13px;cursor:pointer;position:relative}.t-opt.sel{border-color:var(--g500);background:var(--g50)}.t-opt .tier{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.t-opt.sel .tier{color:var(--g700)}.t-opt .price{font-size:22px;font-weight:800;font-family:var(--mono);color:var(--ink);margin:2px 0}.t-opt .desc{font-size:11.5px;color:var(--muted);line-height:1.4}.t-opt .best{position:absolute;top:-9px;left:13px;background:var(--g600);color:#fff;font-size:9px;font-weight:700;padding:2px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.05em}.t-pending{font-size:11px;color:var(--muted);text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:10px;padding:8px 10px}.t-empty{flex:1 1;flex-direction:column;gap:8px;padding:40px 30px;text-align:center;color:var(--muted)}.t-empty,.t-empty .ring{display:flex;align-items:center;justify-content:center}.t-empty .ring{width:76px;height:76px;border-radius:50%;background:var(--g50);color:var(--g600);margin-bottom:6px}.t-empty h2{margin:0;font-size:19px;font-weight:800;color:var(--ink)}.t-live{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--g700);text-transform:uppercase}.t-live>i{width:7px;height:7px;border-radius:99px;background:var(--g500);animation:t-livep 1.8s ease-out infinite}@keyframes t-livep{0%{opacity:1}50%{opacity:.35}to{opacity:1}}@media (prefers-reduced-motion:reduce){.t-live>i{animation:none}}.t-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;z-index:40;background:var(--card);border-top:1px solid var(--line);display:flex;padding:6px 4px calc(8px + env(safe-area-inset-bottom))}.t-nav a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--muted);position:relative;border-radius:10px}.t-nav a .t-ico{width:22px;height:22px;color:var(--faint)}.t-nav a.on{color:var(--g800)}.t-nav a.on .t-ico{color:var(--g600)}.t-nav .badge{position:absolute;top:0;right:calc(50% - 20px);min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--red600);color:#fff;font-size:9.5px;font-weight:800;line-height:16px;text-align:center}.techapp:has(.t-nav){padding-bottom:calc(66px + env(safe-area-inset-bottom))}.techapp:has(.t-nav) .t-actions{bottom:calc(66px + env(safe-area-inset-bottom));padding-bottom:12px}.techapp:has(.t-nav) .t-body{padding-bottom:110px}.t-plusbtn{width:32px;height:32px;border-radius:999px;background:#fff;color:var(--g800);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;box-shadow:0 2px 8px rgba(0,0,0,.15)}.t-plusbtn .t-ico{width:18px;height:18px;stroke-width:2.6}.t-head.stack{flex-direction:column;align-items:stretch;gap:10px}.t-head .row{display:flex;align-items:center;gap:11px}.t-days{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px 2px}.t-days::-webkit-scrollbar{display:none}.t-day{flex:0 0 44px;text-align:center;border-radius:10px;padding:5px 0 4px;background:hsla(0,0%,100%,.1);font-size:10px;line-height:1.15;color:#dcefe3;border:none;font:inherit;font-weight:600;cursor:pointer;position:relative}.t-day b{display:block;font-size:14px;color:#fff;font-weight:800}.t-day.past{opacity:.7}.t-day.on{background:#fff}.t-day.on,.t-day.on b{color:var(--g800)}.t-day .dot{display:block;width:5px;height:5px;border-radius:50%;margin:3px auto 0;background:hsla(0,0%,100%,.55)}.t-day.on .dot{background:var(--g500)}.t-day .dot.all{background:var(--g200)}.t-day.today:after{content:"";position:absolute;top:3px;right:5px;width:5px;height:5px;border-radius:50%;background:#fff}.t-day.today.on:after{background:var(--g500)}.t-search{display:flex;align-items:center;gap:8px;background:#fff;border-radius:12px;padding:9px 11px;color:var(--muted);font-size:13px;border:none;width:100%;font:inherit;text-align:left;cursor:pointer}.t-search .t-ico{width:16px;height:16px;color:var(--g600)}.t-search input{flex:1 1;border:none;outline:none;font:inherit;font-size:14px;color:var(--ink);background:none;min-width:0}.t-search input::placeholder{color:var(--faint)}.t-hit{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:11px 12px;width:100%;text-align:left;font:inherit;cursor:pointer}.t-hit .n{font-size:14px;font-weight:700}.t-hit .a{font-size:12px;color:var(--muted);margin-top:1px}.t-hit .m{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.t-hit mark{background:#fff3c4;color:inherit;padding:0 1px;border-radius:2px}.t-pill.teal{background:#e3f4f1;color:#0f6f64}.t-mapwrap{position:relative;flex:1 1;min-height:60vh}.t-mapwrap .t-map{position:absolute;inset:0;height:auto;border:none;border-radius:0}.t-sheet{position:fixed;left:50%;transform:translateX(-50%);width:100%;max-width:560px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:30;background:var(--card);border-radius:18px 18px 0 0;padding:10px 15px 14px;box-shadow:0 -8px 24px rgba(0,0,0,.14)}.t-sheet .grab{width:36px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 10px}.t-sheet .row2{display:flex;gap:8px;margin-top:10px}.t-sheet .row2>*{flex:1 1}.t-cta.sm{min-height:44px;font-size:14px;border-radius:12px}a.t-cta{text-decoration:none}.t-link{color:var(--g700);font-weight:700;text-decoration:underline;-webkit-text-decoration-color:var(--g200);text-decoration-color:var(--g200);text-underline-offset:2px}.t-kv{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:13px;align-items:flex-start}.t-kv:first-child{border-top:none;padding-top:0}.t-kv:last-child{padding-bottom:0}.t-kv>span:first-child{color:var(--muted);flex:none}.t-kv>a,.t-kv>b{text-align:right;font-weight:600}.t-hist{display:flex;gap:9px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:12.5px}.t-hist:first-child{border-top:none;padding-top:0}.t-hist .d{font-family:var(--mono);color:var(--g700);flex:0 0 58px;font-size:11.5px;font-weight:700}.t-hist .who{margin-left:auto;color:var(--faint);font-size:11px;white-space:nowrap}.t-task.small{padding:9px 2px}.t-task.small .lbl{font-size:13.5px}.t-stop .ad a{color:var(--g700);text-decoration:underline;-webkit-text-decoration-color:var(--g200);text-decoration-color:var(--g200)}.t-ros{display:flex;gap:10px;align-items:center;padding:9px 0;width:100%;background:none;border:none;border-top:1px solid var(--line);font:inherit;text-align:left;cursor:pointer}.t-ros:first-child{border-top:none;padding-top:0}.t-ros:last-child{padding-bottom:0}.t-ros .a{width:34px;height:34px;border-radius:999px;background:var(--g50);color:var(--g800);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex:none;position:relative}.t-ros .a.ch{border-radius:10px;background:#e3f4f1;color:#0f6f64}.t-ros .a .on{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--g500);border:2px solid #fff}.t-ros .n{font-size:13.5px;font-weight:700}.t-ros .p{font-size:11.5px;color:var(--muted)}.t-ros .u{margin-left:auto;background:var(--red600);color:#fff;font-size:10px;font-weight:800;border-radius:999px;padding:1px 7px}.t-bub{max-width:82%;border-radius:14px;padding:8px 11px;font-size:13.5px;line-height:1.35;background:var(--card);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}.t-bub .w{display:block;font-size:10px;color:var(--faint);margin-bottom:2px;font-weight:700}.t-bub.me{margin-left:auto;background:var(--g600);color:#fff;border-color:var(--g600)}.t-bub.me .w{color:#cde6d6}.t-comp{position:fixed;left:50%;transform:translateX(-50%);width:100%;max-width:560px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:30;background:var(--card);border-top:1px solid var(--line);padding:8px 12px 10px;display:flex;gap:8px;align-items:center}.t-comp input{flex:1 1;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font:inherit;font-size:14px;outline:none;min-width:0}.t-comp input:focus{border-color:var(--g500)}.t-comp button{width:40px;height:40px;border-radius:50%;background:var(--g600);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.t-comp button:disabled{opacity:.5}.t-comp button .t-ico{width:18px;height:18px}.techapp:has(.t-comp) .t-body{padding-bottom:170px}.t-navpick{position:fixed;inset:0;z-index:60;background:rgba(15,61,36,.45);display:flex;align-items:flex-end;justify-content:center}.t-navpick .box{width:100%;max-width:560px;background:var(--card);border-radius:18px 18px 0 0;padding:14px 15px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;box-shadow:0 -8px 24px rgba(0,0,0,.18)}.techapp .t-choice{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:8px 14px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:650;cursor:pointer}.techapp .t-choice.on{background:var(--green600);border-color:var(--green600);color:#fff}