:root{--bg:#f2f2f7;--card:#fff;--label:#000;--label-secondary:#3c3c4399;--label-tertiary:#3c3c434d;--separator:#3c3c434a;--fill:#7878801f;--fill-strong:#78788033;--nav-bg:#f2f2f7d1;--tabbar-bg:#fff;--control:#fff;--tint:#fff9;--overlay:#7878800d;--blue:#007aff;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--purple:#af52de;--radius-card:12px;--radius-btn:12px;--row-h:44px;--tabbar-h:52px;--nav-h:44px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-std:cubic-bezier(.4, 0, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--label);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;font-synthesis:none;font:17px/1.47 -apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{overflow:hidden}.app,.nav,.tabbar,.group-card,.stats,.segmented,.field-card,.job-detail{transition:background-color .3s var(--ease-std), border-color .3s var(--ease-std)}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}input{font:inherit;color:inherit}.app{background:var(--bg);flex-direction:column;max-width:480px;height:100svh;margin:0 auto;display:flex;position:relative;overflow:hidden}.main{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:none;flex:1;overflow:hidden auto}.main::-webkit-scrollbar{display:none}.page{padding:0 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 32px)}.nav{z-index:20;height:var(--nav-h);background:var(--nav-bg);-webkit-backdrop-filter:saturate(180%)blur(20px);justify-content:center;align-items:center;display:flex;position:sticky;top:0}.nav:after{content:"";background:var(--separator);height:1px;transform:scaleX(var(--nav-p,0));transform-origin:50%;position:absolute;inset:auto 0 0}.nav-title{letter-spacing:-.2px;opacity:var(--nav-p,0);transform:translateY(calc((1 - var(--nav-p,0)) * 6px));will-change:opacity, transform;font-size:17px;font-weight:600}.large-title{letter-spacing:-.7px;padding:6px 0 12px;font-size:34px;font-weight:700;line-height:41px}.page-anim{animation:page-in .34s var(--ease-out) both}.page-anim--push{animation:page-push .42s var(--ease-out) both}@keyframes page-in{0%{opacity:0;transform:translateY(10px)scale(.99)}to{opacity:1;transform:none}}@keyframes page-push{0%{opacity:.4;transform:translate(28px)}to{opacity:1;transform:none}}.stagger>*{animation:rise-in .42s var(--ease-out) both}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:70ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.17s}.stagger>:nth-child(5){animation-delay:.22s}.stagger>:nth-child(6){animation-delay:.27s}.stagger>:nth-child(7){animation-delay:.32s}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.group{margin:0 0 26px}.group-header{color:var(--label-secondary);animation:rise-in .42s var(--ease-out) both;padding:0 16px 7px;font-size:13px;font-weight:400}.group-card{background:var(--card);border-radius:var(--radius-card);overflow:hidden;box-shadow:0 .5px 1px #0000000a,0 6px 20px #0000000b}.group-footer{color:var(--label-secondary);padding:8px 16px 0;font-size:13px;line-height:1.4}.group-footer--error{color:var(--red);animation:shake .42s var(--ease-out) both}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-7px)}30%{transform:translate(6px)}45%{transform:translate(-4px)}60%{transform:translate(3px)}80%{transform:translate(-1px)}}.row{min-height:var(--row-h);text-align:left;align-items:center;gap:12px;width:100%;padding:11px 16px;display:flex;position:relative}.row--tappable:active{background:var(--fill)}.row+.row:before{content:"";background:var(--separator);height:1px;position:absolute;top:0;left:16px;right:0;transform:scaleY(.5)}.row-label{letter-spacing:-.2px;color:var(--label);flex-shrink:0;font-size:17px}.row-value{letter-spacing:-.2px;color:var(--label-secondary);text-align:right;text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:17px;overflow:hidden}.row-icon{color:#fff;border-radius:7px;flex-shrink:0;place-items:center;width:29px;height:29px;display:grid}.row-sub{color:var(--label-secondary);margin-top:1px;font-size:13px;display:block}.chevron{color:var(--label-tertiary);flex-shrink:0;margin-left:-2px}.field-card:focus-within{background:var(--blue)}.field-card:focus-within .row-label,.field-card:focus-within .field-note,.field-card:focus-within .row-chevron{color:#fff}.field-card:focus-within .row+.row:before{background:#ffffff4d}.field-card:focus-within .field-card-hint{color:#ffffffbf}.field-input{text-align:right;letter-spacing:-.2px;min-width:0;caret-color:var(--blue);background:0 0;border:0;outline:none;flex:1;padding:0;font-size:17px}.field-input::placeholder{color:var(--label-tertiary)}.field-card:focus-within .field-input{color:#fff;caret-color:#fff}.field-card:focus-within .field-input::placeholder{color:#ffffff8c}.field-input--mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:16px}.field-error{color:var(--red);text-align:right;flex-shrink:0;font-size:13px}.field-card:focus-within .field-error{color:#fff}.btn{border-radius:var(--radius-btn);letter-spacing:-.2px;width:100%;height:50px;transition:transform .18s var(--ease-out), opacity .18s var(--ease-out), background-color .18s var(--ease-out);justify-content:center;align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.btn:active:not(:disabled){opacity:.85;transform:scale(.965)}.btn:disabled{cursor:default;opacity:.45}.btn--primary{background:var(--blue);color:#fff}.btn--secondary{background:var(--fill);color:var(--blue)}.btn--tinted-danger{color:var(--red);background:#ff3b301f}.btn-block{margin-bottom:18px}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.spinner--dark{border-color:var(--fill-strong);border-top-color:var(--blue)}@keyframes spin{to{transform:rotate(360deg)}}.switch{background:var(--fill-strong);width:51px;height:31px;transition:background-color .28s var(--ease-out);border-radius:16px;flex-shrink:0;position:relative}.switch:after{content:"";width:27px;height:27px;transition:transform .28s var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 3px 8px #00000026,0 1px 1px #00000029}.switch[aria-checked=true]{background:var(--green)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch:active:after{width:31px}.switch[aria-checked=true]:active:after{transform:translate(14px)}.segmented{background:var(--fill);border-radius:9px;margin-bottom:24px;padding:2px;display:flex;position:relative}.segmented-thumb{background:var(--control);transition:transform .32s var(--ease-spring), width .32s var(--ease-spring);border-radius:7px;position:absolute;top:2px;bottom:2px;box-shadow:0 3px 8px #0000001f,0 1px 1px #0000000a}.segmented-item{z-index:1;height:28px;color:var(--label);transition:opacity .2s var(--ease-out);flex:1;font-size:13px;position:relative}.segmented-item[aria-selected=true]{font-weight:600}.segmented-item:active{opacity:.55}.appearance-control{padding:12px 16px}.appearance-control .segmented{margin-bottom:0}.tabbar,.nav,.segmented,.btn,.tab,.job-head{-webkit-user-select:none;user-select:none}.badge{border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:13px;font-weight:600;line-height:1.3;display:inline-flex}.badge--green{color:#248a3d;background:#34c75926}.badge--orange{color:#a15c00;background:#ff950029}.badge--red{color:#c4271e;background:#ff3b3021}.badge--gray{background:var(--fill);color:var(--label-secondary)}.badge--blue{color:#0060df;background:#007aff21}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.profile{align-items:center;gap:14px;padding:16px;display:flex}.avatar{color:#fff;background:linear-gradient(160deg,#5ac8fa,#0a84ff 55%,#0060df);border-radius:50%;flex-shrink:0;place-items:center;width:60px;height:60px;font-size:26px;font-weight:500;display:grid;box-shadow:inset 0 -12px 24px #0000001f}.profile-name{letter-spacing:-.4px;font-size:21px;font-weight:600}.profile-meta{color:var(--label-secondary);margin-top:2px;font-size:13px}.skeleton{background:linear-gradient(100deg, var(--fill) 20%, #7878800f 40%, var(--fill) 60%);background-size:300% 100%;border-radius:6px;animation:1.25s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:140% 0}to{background-position:-40% 0}}.ring-wrap{flex-direction:column;align-items:center;padding:22px 0 6px;display:flex}.ring{place-items:center;display:grid;position:relative}.ring-value{letter-spacing:-1.2px;font-variant-numeric:tabular-nums;font-size:38px;font-weight:700;position:absolute}.ring-phase{text-align:center;margin-top:14px}.ring-phase-title{letter-spacing:-.3px;font-size:19px;font-weight:600}.ring-phase-sub{color:var(--label-secondary);margin-top:3px;font-size:14px}.stats{background:var(--card);border-radius:var(--radius-card);grid-template-columns:repeat(4,1fr);margin-bottom:26px;display:grid;overflow:hidden;box-shadow:0 .5px 1px #0000000a,0 6px 20px #0000000b}.stat{text-align:center;padding:13px 8px 14px;position:relative}.stat+.stat:before{content:"";background:var(--separator);width:1px;position:absolute;top:12px;bottom:12px;left:0;transform:scaleX(.5)}.stat-value{letter-spacing:-.4px;font-variant-numeric:tabular-nums;font-size:19px;font-weight:600}.stat-label{color:var(--label-secondary);margin-top:2px;font-size:12px}.timeline{padding:4px 16px 6px}.tl-item{gap:14px;padding:10px 0;display:flex;position:relative}.tl-item:not(:last-child):before{content:"";background:var(--separator);border-radius:1px;width:2px;position:absolute;top:32px;bottom:-8px;left:10px}.tl-item--done:not(:last-child):before{background:var(--green)}.tl-dot{z-index:1;background:var(--fill);width:22px;height:22px;color:var(--label-tertiary);transition:background-color .4s var(--ease-out), color .4s var(--ease-out);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}.tl-item--done .tl-dot{background:var(--green);color:#fff;animation:pop .4s var(--ease-spring) both}.tl-item--active .tl-dot{background:var(--blue);color:#fff}.tl-item--active .tl-dot:after{content:"";border:2px solid var(--blue);border-radius:50%;animation:1.7s ease-out infinite pulse;position:absolute;inset:-4px}@keyframes pop{0%{transform:scale(.4)}60%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes pulse{0%{opacity:.9;transform:scale(.8)}70%{opacity:0;transform:scale(1.5)}to{opacity:0;transform:scale(1.5)}}.tl-title{color:var(--label-tertiary);transition:color .4s var(--ease-out);font-size:16px}.tl-item--done .tl-title,.tl-item--active .tl-title{color:var(--label)}.tl-item--active .tl-title{font-weight:600}.tl-desc{color:var(--label-secondary);margin-top:2px;font-size:13px}.tl-item--pending .tl-desc{color:var(--label-tertiary)}.device-bar{background:var(--fill);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.device-bar-fill{background:var(--blue);height:100%;transition:width .6s var(--ease-out);border-radius:2px}.device-bar-fill--done{background:var(--green)}.device-bar-fill--warn{background:var(--orange)}.job{position:relative}.job+.job:before{content:"";background:var(--separator);height:1px;position:absolute;top:0;left:16px;right:0;transform:scaleY(.5)}.job-head{width:100%;min-height:var(--row-h);text-align:left;align-items:center;gap:12px;padding:11px 16px;display:flex}.job-head:active{background:var(--fill)}.job-main{flex:1;min-width:0;display:block}.job-name{letter-spacing:-.2px;text-overflow:ellipsis;white-space:nowrap;font-size:17px;display:block;overflow:hidden}.job-sub{color:var(--label-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:13px;display:block;overflow:hidden}.job-bar{background:var(--fill);border-radius:2px;height:4px;margin-top:7px;display:block;overflow:hidden}.job-bar-fill{background:var(--blue);height:100%;transition:width .6s var(--ease-out);border-radius:2px;display:block}.job-bar-fill--blue{background:var(--blue)}.job-bar-fill--green{background:var(--green)}.job-bar-fill--orange{background:var(--orange)}.job-bar-fill--red{background:var(--red)}.job-bar-fill--gray{background:var(--label-tertiary)}.job-chevron{transition:transform .25s var(--ease-out)}.job-chevron--open{transform:rotate(90deg)}.job-detail{background:var(--overlay);animation:rise-in .28s var(--ease-out) both;padding-bottom:6px}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:14px}.row-actions{gap:10px;padding:8px 16px}.row-actions .btn{flex:1;width:auto;height:44px}.btn--tint{background:var(--tint);width:auto;height:32px;color:inherit;border-radius:999px;flex-shrink:0;padding:0 14px;font-size:13px}.check-hero{color:#fff;background:linear-gradient(160deg, #5ce07a, var(--green));width:76px;height:76px;animation:pop .55s var(--ease-spring) both;border-radius:50%;place-items:center;margin:18px auto 4px;display:grid;box-shadow:0 12px 30px #34c75957}.check-hero svg path{stroke-dasharray:46;stroke-dashoffset:46px;animation:draw .45s var(--ease-out) .22s forwards}.page-foot{text-align:center;color:var(--label-secondary);padding:2px 0 6px;font-size:13px}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.banner{border-radius:var(--radius-card);color:var(--blue);animation:rise-in .4s var(--ease-out) both;background:#007aff1a;align-items:center;gap:12px;margin-bottom:22px;padding:13px 16px;display:flex}.banner--warn{color:#a15c00;background:#ff950024}.banner--danger{color:#c4271e;background:#ff3b301c}.banner-title{font-size:15px;font-weight:600}.banner-text{opacity:.85;margin-top:1px;font-size:13px}.empty{text-align:center;animation:rise-in .5s var(--ease-out) both;flex-direction:column;align-items:center;padding:72px 32px 40px;display:flex}.empty-icon{color:#fff;background:linear-gradient(160deg,#5ac8fae6,#007affe6);border-radius:22px;place-items:center;width:72px;height:72px;margin-bottom:18px;animation:3.4s ease-in-out infinite float-y;display:grid;box-shadow:0 10px 26px #007aff47}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.empty-title{letter-spacing:-.4px;font-size:21px;font-weight:600}.empty-text{color:var(--label-secondary);margin:6px 0 22px;font-size:15px}.intro{color:var(--label-secondary);padding:0 16px 20px;font-size:15px;line-height:1.45}.done-check{stroke-dasharray:40;stroke-dashoffset:40px;animation:draw .5s var(--ease-out) .15s forwards}@keyframes draw{to{stroke-dashoffset:0}}.check-pop{animation:pop .5s var(--ease-spring) both}.tabbar{padding-bottom:env(safe-area-inset-bottom);background:var(--tabbar-bg);border-top:1px solid var(--separator);flex-shrink:0;display:flex}.tab{height:var(--tabbar-h);color:var(--label-secondary);transition:color .2s var(--ease-out);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.tab svg{transition:transform .34s var(--ease-spring)}.tab[aria-selected=true]{color:var(--blue)}.tab[aria-selected=true] svg{transform:translateY(-1px)scale(1.08)}.tab:active svg{transform:scale(.9)}.tab-label{letter-spacing:.02px;font-size:10px;font-weight:500}.tab:active{opacity:.55}:root.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--card:#1c1c1e;--nav-bg:#1c1c1ed1;--tabbar-bg:#1c1c1e;--control:#48484a;--tint:#7878803d;--overlay:#7878801f;--label:#fff;--label-secondary:#ebebf599;--label-tertiary:#ebebf54d;--separator:#545458a6;--fill:#78788052;--fill-strong:#78788066;--blue:#0a84ff;--green:#30d158;--orange:#ff9f0a;--red:#ff453a;--purple:#bf5af2}.dark .group-card,.dark .stats{box-shadow:0 .5px 1px #0000004d,0 6px 20px #00000059}.dark .badge--green{color:#6ee787;background:#30d1583d}.dark .badge--orange{color:#ffc266;background:#ff9f0a3d}.dark .badge--red{color:#ff8a80;background:#ff453a42}.dark .badge--blue{color:#6cb6ff;background:#0a84ff42}.dark .banner{color:#6cb6ff;background:#0a84ff33}.dark .banner--warn{color:#ffc266;background:#ff9f0a33}.dark .banner--danger{color:#ff8a80;background:#ff453a33}.dark .skeleton{background:linear-gradient(100deg, var(--fill) 20%, #78788029 40%, var(--fill) 60%);background-size:300% 100%}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
