:root{--paper:#f4f6fa;--card:#fff;--ink:#1b3fa8;--ink-2:#14307f;--ink-soft:#e9eefb;--stamp:#d4362c;--stamp-soft:#fdecea;--line:#cfd8e8;--line-2:#e4e9f2;--text:#16203a;--muted:#5c6885;--mark:#ffe96a;--sheet:#1d7a46;--sheet-soft:#e5f4ec;--r:10px;--r-s:6px;--tab-h:58px;--sans:"PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei", "Noto Sans SC", "Geeza Pro", "Noto Sans Arabic", "Segoe UI", system-ui, sans-serif;--num:"DIN Alternate", "Bahnschrift", "Roboto Condensed", "Arial Narrow", var(--sans)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--text);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p{margin:0}h1{font-size:22px;font-weight:700;line-height:1.3}h2{font-size:16px;font-weight:700}a{color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.num{font-family:var(--num);font-variant-numeric:tabular-nums;letter-spacing:.01em}.muted{color:var(--muted)}.small{font-size:13px}.grow{flex:1;min-width:0}.row{align-items:center;gap:10px;display:flex}.wrap{flex-wrap:wrap}.col{flex-direction:column;gap:12px;display:flex}.between{justify-content:space-between}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[hidden]{display:none!important}.btn{border-radius:var(--r-s);border:1px solid var(--line);background:var(--card);cursor:pointer;white-space:nowrap;min-height:42px;color:var(--text);justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover{background:var(--ink-2)}.btn.go{background:var(--sheet);border-color:var(--sheet);color:#fff}.btn.ghost{color:var(--ink);background:0 0;border-color:#0000;padding:0 10px}.btn.danger{color:var(--stamp)}.btn.sm{min-height:34px;padding:0 10px;font-size:13px}.btn.block{width:100%}.btn svg{flex:none;width:18px;height:18px}.field{flex-direction:column;gap:4px;display:flex}.field>span{color:var(--muted);font-size:13px}.input,select.input,textarea.input{border:1px solid var(--line);border-radius:var(--r-s);background:#fff;width:100%;min-height:42px;padding:8px 10px}textarea.input{resize:vertical;min-height:96px;line-height:1.5}.input:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--ink-soft);outline:none}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}.tag{background:var(--ink-soft);color:var(--ink);white-space:nowrap;border-radius:99px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.tag.warn{background:var(--mark);color:#5a4a00}.tag.bad{background:var(--stamp-soft);color:var(--stamp)}.tag.ok{background:var(--sheet-soft);color:var(--sheet)}.tag.idle{background:var(--line-2);color:var(--muted)}.serial{color:var(--stamp);font-family:var(--num);letter-spacing:.04em;font-size:18px;font-weight:600}.serial small{letter-spacing:.08em;margin-inline-end:4px;font-size:11px}.spin{border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;flex:none;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation-duration:2s}}.shell{min-height:100dvh;padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom))}.page{flex-direction:column;gap:14px;max-width:1180px;margin:0 auto;padding:16px 14px 28px;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:8px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.brand i{background:var(--ink);border-radius:5px;place-items:center;width:26px;height:26px;display:grid}.brand i:before{content:"";border:2px solid #fff;border-block-start-width:5px;border-radius:1px;width:12px;height:12px}.pts{font-family:var(--num);background:var(--ink-soft);color:var(--ink);border-radius:99px;padding:4px 10px;font-size:14px;font-weight:600;text-decoration:none}.pts.low{background:var(--stamp-soft);color:var(--stamp)}.tabs{left:0;right:0;height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);z-index:30;display:flex;position:fixed;bottom:0}.tabs a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;text-decoration:none;display:flex}.tabs a svg{width:22px;height:22px}.tabs a.on{color:var(--ink);font-weight:700}@media (min-width:900px){.shell{padding-bottom:0;padding-inline-start:200px}.tabs{border-top:0;border-inline-end:1px solid var(--line);flex-direction:column;gap:2px;width:200px;height:auto;padding:64px 10px 10px;top:0;bottom:0}.tabs:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0;right:auto}.tabs:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0;right:auto}.tabs:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:auto;right:0}.tabs:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:auto;right:0}.tabs a{border-radius:var(--r-s);flex-direction:row;flex:none;justify-content:flex-start;gap:10px;padding:10px 12px;font-size:15px}.tabs a.on{background:var(--ink-soft)}.topbar{z-index:40;margin-inline-start:-200px;padding-inline-start:18px}.page{padding:22px 24px 40px}}.drop{border:1.5px dashed var(--ink);border-radius:var(--r);background:var(--card);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:18px 14px;display:flex}.drop.over{background:var(--ink-soft)}.drop .row{justify-content:center}.seg{border:1px solid var(--line);border-radius:var(--r-s);background:var(--card);display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:7px 14px;font-weight:600}.seg button.on{background:var(--ink);color:#fff}.docs{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.doc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);color:inherit;cursor:pointer;text-align:start;gap:12px;width:100%;padding:10px;text-decoration:none;display:flex}.doc:hover{border-color:var(--ink)}.thumb{background:var(--line-2) center/cover no-repeat;border:1px solid var(--line);width:62px;height:82px;color:var(--muted);border-radius:3px;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r);padding:36px 16px}.review{gap:14px;display:grid}.orig{border-radius:var(--r);touch-action:none;direction:ltr;background:#22293a;height:38vh;position:relative;overflow:hidden}.orig img{transform-origin:0 0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;position:absolute;top:0;left:0}.orig .tools{gap:6px;display:flex;position:absolute;bottom:8px;right:8px}.orig .tools button{cursor:pointer;background:#ffffffeb;border:0;border-radius:50%;width:36px;height:36px;font-size:18px;font-weight:700}.orig .pager{color:#fff;background:#0009;border:0;border-radius:99px;padding:2px 10px;font-size:12px;position:absolute;bottom:8px;left:8px}.orig pre{color:#dfe6f5;white-space:pre;text-align:left;direction:ltr;height:100%;margin:0;padding:12px;font:12px/1.5 ui-monospace,Menlo,Consolas,monospace;overflow:auto}@media (min-width:900px){.review{grid-template-columns:minmax(320px,42%) 1fr;align-items:start}.orig{height:calc(100dvh - 110px);position:sticky;top:74px}}.slip{background:var(--card);border:1px solid var(--line);border-radius:3px}.slip-head{border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.cell{border-inline-end:1px solid var(--line-2);border-bottom:1px solid var(--line-2);flex-direction:column;min-width:0;padding:5px 8px 3px;display:flex;position:relative}.cell>span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.3;overflow:hidden}.cell input{width:100%;color:var(--ink);background:0 0;border:0;outline:none;min-height:28px;padding:2px 0;font-size:15px;font-weight:600}.cell input.n{font-family:var(--num);font-size:16px}.cell:focus-within{background:var(--ink-soft)}.cell.f-uncertain,.cell.f-mismatch,.cell.f-derived{background:var(--mark)}.cell.f-missing{background:var(--stamp-soft)}.cell .why{color:#6b5800;padding-bottom:2px;font-size:11px;line-height:1.2}.cell.f-missing .why{color:var(--stamp)}.item{border-bottom:2px solid var(--line);grid-template-columns:66px 1fr;display:grid}.item:last-child{border-bottom:0}.item .ph{border-inline-end:1px solid var(--line-2);flex-direction:column;grid-row:span 2;align-items:center;gap:4px;padding:6px;display:flex}.item .ph button.pic{border:1px dashed var(--line);background:var(--paper) center/cover no-repeat;cursor:pointer;width:52px;height:52px;color:var(--muted);border-radius:4px;padding:0;font-size:20px}.item .ph button.pic.has{border-style:solid}.item .ph .idx{font-family:var(--num);color:var(--stamp);font-size:13px}.item .ph .x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:12px}.item .cells{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));display:grid}.item .cells .cell.wide{grid-column:span 2}.item .sum{color:var(--muted);font-size:12px;font-family:var(--num);grid-column:2;padding:3px 8px}.slip-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:10px;display:flex}.commit{bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 8px);background:var(--card);border:1px solid var(--line);border-radius:var(--r);z-index:10;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;display:flex;position:sticky;box-shadow:0 6px 24px #16203a24}.commit .input{flex:1;min-width:150px}@media (min-width:900px){.commit{bottom:12px}}.banner{border-radius:var(--r-s);background:var(--sheet-soft);color:#0f5230;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.banner.warn{background:var(--mark);color:#4a3d00}.banner.bad{background:var(--stamp-soft);color:#8f1f17}.list{background:var(--card);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;display:flex;overflow:hidden}.list>*{border-bottom:1px solid var(--line-2);padding:12px 14px}.list>:last-child{border-bottom:0}.code{font-family:var(--num);color:var(--ink);font-size:18px;font-weight:700}table.map{border-collapse:collapse;width:100%;font-size:14px}table.map th{text-align:start;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;font-size:12px;font-weight:600}table.map td{border-bottom:1px solid var(--line-2);vertical-align:top;padding:6px 8px}table.map td.c{font-family:var(--num);color:var(--ink);width:34px;font-weight:700}table.map .input{min-height:36px;padding:5px 8px}.scroll-x{overflow-x:auto}.modal-bg{z-index:100;background:#16203a73;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--card);width:100%;max-width:520px;max-height:92dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;flex-direction:column;gap:14px;display:flex;overflow:auto}@media (min-width:640px){.modal-bg{align-items:center}.modal{border-radius:var(--r)}}.toasts{left:0;right:0;z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 12px;display:flex;position:fixed;top:12px}.toast{background:var(--text);color:#fff;border-radius:var(--r-s);max-width:520px;padding:10px 16px;box-shadow:0 6px 24px #0003}.toast.bad{background:var(--stamp)}.landing{max-width:1080px;margin:0 auto;padding:0 18px 60px}.landing header{justify-content:space-between;align-items:center;gap:10px;padding:14px 0;display:flex}.hero{align-items:center;gap:28px;padding:28px 0 40px;display:grid}.hero h1{letter-spacing:-.01em;text-wrap:balance;font-size:clamp(30px,6.4vw,52px);line-height:1.16}.hero p.lead{color:var(--muted);max-width:34em;margin-top:14px;font-size:17px}@media (min-width:880px){.hero{grid-template-columns:1.05fr 1fr;padding:56px 0 70px}}.demo{direction:ltr;gap:14px;display:grid;position:relative}.paper{border:1px solid var(--line);background:#fff;border-radius:2px;width:88%;padding:12px 14px;transform:rotate(-1.6deg);box-shadow:0 10px 30px #16203a1f}.paper .ttl{border-bottom:1.5px solid var(--text);justify-content:space-between;align-items:baseline;padding-bottom:4px;font-size:13px;font-weight:700;display:flex}.paper table,.xl table{border-collapse:collapse;width:100%;font-size:12px}.paper th{color:var(--muted);border:1px solid var(--line);padding:2px 4px;font-size:10px;font-weight:600}.paper td{border:1px solid var(--line);color:var(--ink);height:26px;padding:3px 6px;font-family:Bradley Hand,Segoe Print,Kaiti SC,KaiTi,cursive;font-size:15px;font-style:italic}.paper .memo{color:var(--muted);margin-top:6px;font-size:10px}.paper .memo b{color:var(--ink);font-family:Bradley Hand,Segoe Print,cursive;font-size:16px;font-style:italic}.xl{border:1px solid var(--sheet);background:#fff;border-radius:4px;margin-inline-start:12%;overflow:hidden;box-shadow:0 10px 30px #1d7a4624}.xl .bar{background:var(--sheet);color:#fff;justify-content:space-between;padding:4px 8px;font-size:12px;font-weight:700;display:flex}.xl th{background:var(--sheet-soft);color:#2b5a41;border:1px solid #c6dccf;padding:2px 4px;font-size:10px}.xl td{font-family:var(--num);border:1px solid #dfe8e3;height:26px;padding:3px 6px}.xl td i{background:linear-gradient(135deg,#b9c4d9,#7f8eab);border-radius:2px;width:18px;height:18px;display:block}.xl tr.new td{animation:.5s both fill}.xl tr.new:nth-child(2) td{animation-delay:.5s}.xl tr.new:nth-child(3) td{animation-delay:.8s}.xl tr.new:nth-child(4) td{animation-delay:1.1s}@keyframes fill{0%{background:var(--mark);color:#0000}to{background:#fff}}@media (prefers-reduced-motion:reduce){.xl tr.new td{animation:none}}.steps{border:1px solid var(--line);border-radius:var(--r);background:var(--card);counter-reset:s;gap:0;display:grid;overflow:hidden}.steps>div{border-bottom:1px solid var(--line-2);counter-increment:s;padding:18px}.steps h3{font-size:17px}.steps h3:before{content:counter(s);font-family:var(--num);color:var(--stamp);margin-inline-end:10px;font-size:22px}.steps p{color:var(--muted);margin-top:4px;font-size:14px}@media (min-width:880px){.steps{grid-template-columns:repeat(3,1fr)}.steps>div{border-bottom:0;border-inline-end:1px solid var(--line-2)}}.auth{flex-direction:column;gap:14px;max-width:400px;margin:0 auto;padding:26px 18px;display:flex}.pkgs{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.pkg{border:1px solid var(--line);border-radius:var(--r);background:var(--card);cursor:pointer;text-align:start;flex-direction:column;gap:2px;padding:14px;display:flex}.pkg.on{border-color:var(--ink);box-shadow:0 0 0 3px var(--ink-soft)}.pkg b{font-family:var(--num);color:var(--ink);font-size:26px;line-height:1.1}.big{font-family:var(--num);color:var(--ink);font-size:44px;font-weight:700;line-height:1}.topbar.flat{margin-inline-start:0;padding-inline-start:14px}
