:root{--blue: #2651af;--deep: #1a2b79;--teal: #32dcd3;--mint: #e2f2f1;--ink: #16213e;--muted: #6b7280;--border: #dfe7ef;--surface: #f4f7fa;--pgbg: #e7edf4;--red: #dc2626;--amber: #f59e0b;--green: #16a34a;--f: "Readex Pro", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}svg{display:block}body{margin:0;background:#e9edf3;color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.6}.num{direction:ltr;unicode-bidi:isolate;display:inline-block}button{font-family:inherit;cursor:pointer;border:0}button:disabled{opacity:.45;cursor:not-allowed}.btn{background:var(--blue);color:#fff;border-radius:10px;padding:9px 15px;font-weight:600;font-size:14px;min-height:40px}.btn.ghost{background:#fff;color:var(--blue);border:1px solid var(--border)}.btn.sm{padding:8px 13px;font-size:13.5px;min-height:38px}.btn.danger{background:#fff;color:var(--red);border:1px solid #f6bfbf}.chip{display:inline-flex;align-items:center;gap:4px;border-radius:20px;padding:3px 10px;font-size:12px;white-space:nowrap;border:1px solid transparent}.c-run{background:#eef4ff;color:#1e40af;border-color:#c7d9fe}.c-money{background:var(--mint);color:#0e6b62;border-color:#9fe1cb}.c-req{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.c-shift{background:#fef3e2;color:#8a5300;border-color:#f6ce8a}.c-late{background:#fdecec;color:#a32020;border-color:#f6bfbf}.c-hold{background:#f1efe8;color:#5f5e5a;border-color:#d9d6cb}.c-plain{background:var(--surface);color:var(--muted);border-color:var(--border)}.c-done{background:#eafaf0;color:#15803d;border-color:#b7e4c7}.mut{color:var(--muted)}.sm{font-size:12.5px}.bar{height:6px;background:var(--pgbg);border-radius:4px;overflow:hidden;flex:1}.bar i{display:block;height:100%;background:var(--blue)}.demo{background:#0f1b33;color:#9fb3d4;padding:9px 14px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12.5px;flex-wrap:wrap}.rsw{display:flex;gap:3px;background:#ffffff17;border-radius:9px;padding:3px}.rb{padding:6px 13px;border-radius:7px;font-size:12.5px;color:#9fb3d4;background:transparent}.rb.on{background:var(--teal);color:#0b2154;font-weight:600}.device{max-width:430px;margin:0 auto;background:var(--surface);min-height:100vh;position:relative;display:flex;flex-direction:column}.appbar{background:#fff;border-bottom:1px solid var(--border);padding:10px 13px;display:flex;align-items:center;gap:11px;position:sticky;top:0;z-index:20}.appbar .lg{width:30px;flex-shrink:0}.appbar .lg svg{width:100%;height:auto}.abt{flex:1;min-width:0}.abt b{display:block;font-size:16.5px;color:var(--deep);line-height:1.35}.abt span{font-size:12px;color:var(--muted)}.bell{position:relative;width:42px;height:42px;border-radius:12px;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.badge{position:absolute;top:-3px;left:-3px;min-width:19px;height:19px;border-radius:10px;background:var(--red);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;padding:0 5px;font-weight:600}.screens{flex:1;padding-bottom:80px}.scr{padding:13px 13px 8px}.hero{margin-bottom:11px}.hero b{font-size:21px;color:var(--deep);display:block;line-height:1.45}.hero span{font-size:13.5px;color:var(--muted)}.segs{display:flex;gap:7px;flex-wrap:wrap;padding:4px 13px 11px;position:sticky;top:63px;background:var(--surface);z-index:10;margin:0 -13px}.segs::-webkit-scrollbar{display:none}.sg{padding:8px 14px;border:1px solid var(--border);background:#fff;border-radius:22px;font-size:13.5px;color:var(--muted);white-space:nowrap;min-height:38px;display:flex;align-items:center;gap:6px}.sg.on{background:var(--deep);color:#fff;border-color:var(--deep);font-weight:600}.sg .c{background:#00000014;border-radius:11px;padding:0 6px;font-size:11.5px}.sg.on .c{background:#ffffff38}.gh{font-size:13px;color:var(--muted);margin:16px 2px 8px;display:flex;align-items:center;gap:8px}.gh:after{content:"";flex:1;height:1px;background:var(--border)}.tc{background:#fff;border:1px solid var(--border);border-radius:15px;padding:13px;margin-bottom:10px}.tc.late{border-right:3px solid var(--red)}.tc.hold{border-right:3px solid #b4b2a9}.tc.esc{border-right:3px solid var(--amber)}.tct{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:3px}.tct h3{margin:0;font-size:15.5px;font-weight:600;color:var(--ink);line-height:1.5}.tcm{font-size:13px}.tcf{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-top:11px;padding-top:11px;border-top:1px solid var(--border);font-size:12.5px}.acts{display:flex;gap:7px;flex-wrap:wrap}.acts>*{flex-shrink:0}.fr{background:#fff;border:1px solid var(--border);border-radius:14px;padding:13px;margin-bottom:9px}.frt{display:flex;align-items:center;justify-content:space-between;gap:9px}.frt b{font-size:15px}.frb{display:flex;align-items:center;gap:9px;margin-top:9px}.card{background:#fff;border:1px solid var(--border);border-radius:15px;padding:15px;margin-bottom:11px}.card h4{margin:0 0 10px;font-size:15px;color:var(--deep)}.row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.row .nm{width:52px;font-weight:600;font-size:13.5px}.row b{font-size:13.5px}.agl{flex:0 0 96px;width:96px;font-size:12.5px;color:var(--muted)}.row .acts{margin-inline-start:auto;display:flex;gap:7px;flex:0 0 auto}.row .inp{flex:0 0 96px;width:96px;margin:0}.row.opt{align-items:center}.row.opt .hint{flex:1 0 100%;font-size:12.5px;color:var(--muted);margin:0}.mrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;background:#fff;border:1px solid var(--border);border-radius:13px;margin-bottom:9px;font-size:14.5px;width:100%;text-align:right}.mrow span.a{color:var(--muted);font-size:13px}.fab{position:sticky;bottom:90px;display:flex;justify-content:flex-start;padding:0 13px;z-index:25;margin-top:-52px}.fab button{background:var(--blue);color:#fff;border-radius:26px;padding:13px 20px;font-weight:600;font-size:14.5px;box-shadow:0 6px 20px #2651af52}.tabbar{position:fixed;bottom:0;left:0;right:0;width:100%;max-width:430px;margin:0 auto;background:#fff;border-top:1px solid var(--border);display:flex;align-items:stretch;padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:30;box-shadow:0 -2px 14px #10213e0f}.tb{flex:0 0 25%;width:25%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 2px;color:var(--muted);font-size:11.5px;background:transparent;min-height:56px;border-radius:12px;line-height:1.25}.tb .ic{width:22px;height:22px;min-height:22px;display:block;flex:0 0 22px}.tb .lb{display:block;white-space:nowrap}.tb.on{color:var(--blue);font-weight:600;background:var(--mint)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;max-width:430px;margin:0 auto;background:#fff;z-index:60;display:flex;flex-direction:column}.sh{padding:13px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.sh b{font-size:17px;color:var(--deep)}.sb{flex:1;overflow:auto}.sf{padding:11px 15px;border-top:1px solid var(--border);background:#fafbfd;color:var(--muted);font-size:12px;text-align:center}.nt{display:flex;gap:11px;padding:14px 15px;border-bottom:1px solid var(--border)}.nt.un{background:#f7faff}.ndot{width:9px;height:9px;border-radius:50%;margin-top:7px;flex-shrink:0}.nt:not(.un) .ndot{opacity:.28}.ni{flex:1;min-width:0}.nh{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.nh b{font-size:14.5px}.ncode{font-size:10.5px;background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:0 5px;color:var(--muted)}.ntime{font-size:11.5px;margin-top:2px}.state{padding:34px 18px;text-align:center;color:var(--muted)}.state b{display:block;color:var(--ink);font-size:15.5px;margin-bottom:5px}.skel{background:#fff;border:1px solid var(--border);border-radius:15px;padding:13px;margin-bottom:10px}.skel i{display:block;height:11px;border-radius:6px;background:var(--pgbg);margin-bottom:8px;animation:pulse 1.3s ease-in-out infinite}.skel i:last-child{margin-bottom:0;width:55%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.fl{display:block;font-size:13px;color:var(--muted);margin:11px 0 5px}.inp{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:11px;font-family:inherit;font-size:14.5px;background:#fff;color:var(--ink);min-height:44px}.inp:focus{outline:2px solid var(--blue);outline-offset:-1px}input[type=date],input[type=time],input[type=number],.inp.num{direction:ltr;text-align:right}.err{background:#fdecec;color:#a32020;border:1px solid #f6bfbf;border-radius:11px;padding:10px 13px;font-size:13.5px;margin:10px 0}.ok{background:var(--mint);color:#0e6b62;border:1px solid #9fe1cb;border-radius:11px;padding:10px 13px;font-size:13.5px;margin:10px 0}@media(min-width:520px){.device{min-height:calc(100vh - 36px);margin:18px auto;border-radius:24px;overflow:hidden;box-shadow:0 10px 40px #10213e24}.tabbar{position:sticky;bottom:0;border-radius:0 0 24px 24px}.sheet{border-radius:24px;top:18px;bottom:18px}}.btn,.sg,.mrow,.bell,.tb{transition:transform .12s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease,opacity .16s ease}@media(hover:hover){.btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 12px #2651af38}.btn.ghost:not(:disabled):hover{background:var(--surface);border-color:var(--blue)}.btn.danger:not(:disabled):hover{background:#fdecec;box-shadow:0 4px 12px #dc26262e}.sg:not(.on):hover{border-color:var(--blue);color:var(--blue)}.mrow:hover{border-color:var(--blue);transform:translate(-2px)}.bell:hover{background:var(--mint)}.tc[role=button]:hover,.fr[role=button]:hover{border-color:var(--blue);box-shadow:0 4px 16px #10213e14}}.btn:not(:disabled):active,.sg:active,.mrow:active,.bell:active,.tb:active{transform:scale(.97)}.tc,.fr,.card{transition:border-color .16s ease,box-shadow .16s ease,opacity .2s ease}.tc[role=button],.fr[role=button]{cursor:pointer}.btn:focus-visible,.sg:focus-visible,.mrow:focus-visible,.bell:focus-visible,.tb:focus-visible,.inp:focus-visible,.tc:focus-visible,.fr:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.tc,.fr{animation:card-in .26s ease-out both}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tc.done-out{animation:done-out .42s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}@keyframes done-out{0%{opacity:1;transform:none}22%{transform:scale(1.015);border-color:var(--green)}to{opacity:0;transform:translate(-24px) scale(.96);max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0}}.done-mark{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;display:flex;align-items:center;justify-content:center;pointer-events:none}.done-mark svg{width:92px;height:92px}.done-mark .ring{fill:none;stroke:var(--green);stroke-width:4;stroke-dasharray:176;stroke-dashoffset:176;animation:ring-draw .42s cubic-bezier(.4,0,.2,1) forwards}.done-mark .tick{fill:none;stroke:var(--green);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:tick-draw .26s cubic-bezier(.4,0,.2,1) .34s forwards}.done-mark .halo{fill:var(--green);opacity:.14;transform-origin:center;transform:scale(.2);animation:halo .6s cubic-bezier(.2,.8,.3,1) .1s forwards}@keyframes ring-draw{to{stroke-dashoffset:0}}@keyframes tick-draw{to{stroke-dashoffset:0}}@keyframes halo{60%{transform:scale(1.1);opacity:.18}to{transform:scale(1);opacity:0}}.spark{position:absolute;width:6px;height:6px;border-radius:50%;opacity:0}@keyframes spark-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}}.tb .ic{transition:transform .18s cubic-bezier(.3,1.4,.5,1)}.tb.on .ic{transform:translateY(-2px) scale(1.06)}.tb.on:after{content:"";position:absolute;bottom:5px;width:16px;height:2.5px;border-radius:2px;background:var(--blue);animation:tab-line .2s ease-out both}.tb{position:relative}@keyframes tab-line{0%{width:0;opacity:0}to{width:16px;opacity:1}}.ck-done{animation:ck-pop .3s cubic-bezier(.3,1.5,.5,1)}@keyframes ck-pop{0%{transform:scale(1)}45%{transform:scale(1.04)}to{transform:scale(1)}}.bar i{transition:width .5s cubic-bezier(.4,0,.2,1)}.sheet{animation:sheet-in .2s cubic-bezier(.3,0,.2,1)}@keyframes sheet-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
