:root{--paper: #ffffff;--ink: #111111;--ink-2: #666666;--ink-3: #9a9a9a;--line: #d9d9d9;--line-2: #ededed;--wash: #f4f4f4;--off-line: #b9b9b9;--off-ink: #6b6b6b;--sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease: cubic-bezier(.2, .7, .2, 1);color-scheme:light}*{box-sizing:border-box}:root{--panel-w: 360px}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}a{color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.boot{display:grid;place-items:center;height:100%;color:var(--ink-3)}.seo{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.boot.error{gap:12px;align-content:center;color:var(--ink)}.page{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden}.web-wrap{position:relative;flex:1;min-height:0;background:var(--paper);touch-action:none;user-select:none;-webkit-user-select:none;transition:margin-right .35s var(--ease)}@media(min-width:761px){.page.panel-open .web-wrap,.page.panel-open .tabs{margin-right:var(--panel-w)}}.web{display:block;width:100%;height:100%;cursor:grab}.web:active{cursor:grabbing}.edge{fill:none;stroke:var(--off-line);stroke-width:2;stroke-linecap:round;transition:stroke .3s,opacity .3s}.edge.e-open{stroke:var(--ink);stroke-width:2.25}.edge.e-done{stroke:var(--ink);stroke-width:4.5}.edge.e-path{stroke:var(--ink);stroke-width:2.75}.edge.e-done.e-path{stroke-width:4.5}.edge.e-dim{opacity:.45}.edge{stroke-dasharray:1;animation:draw-in .7s var(--ease) backwards}.node,.tip{animation:fade-in .5s var(--ease) backwards}@keyframes draw-in{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes fade-in{0%{opacity:0}}.edge-light{fill:none;stroke:#ffffffe6;stroke-width:2;stroke-linecap:round;stroke-dasharray:8 92;pointer-events:none;animation:flow 2.6s linear infinite both}@keyframes flow{0%{stroke-dashoffset:8}to{stroke-dashoffset:-92}}@media(prefers-reduced-motion:reduce){.edge-light{display:none}}.from{font-size:11px;fill:var(--ink-3);text-anchor:middle;paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round;cursor:pointer}.from:hover{fill:var(--ink);text-decoration:underline}.tip{cursor:pointer;transition:opacity .25s}.tip .hit{fill:transparent}.tip .seal{fill:var(--paper);stroke:var(--ink);stroke-width:2.5;transition:fill .3s var(--ease),stroke-width .2s}.tip-glyph{display:flex;width:32px;height:32px;color:var(--ink)}.tip .tip-track{fill:none;stroke:var(--line-2);stroke-width:5}.tip .tip-progress{fill:none;stroke:var(--ink);stroke-width:5;transition:stroke-dasharray .6s var(--ease)}.tip-name{fill:var(--ink);font-size:15px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round}.tip-pct{fill:var(--ink-2);font-size:12px;text-anchor:middle}.tip-name.side,.tip-pct.side,.from.side{text-anchor:start}.tip:hover .seal,.tip.focused .seal{stroke-width:3.5}.tip.reached .seal{fill:var(--ink)}.tip.reached .tip-glyph{color:var(--paper)}.tip.reached .tip-pct{fill:var(--ink);font-weight:700}.tip.pulse .seal{animation:pop .7s var(--ease) both;transform-box:fill-box;transform-origin:center}.tip.dim{opacity:.45}.node{cursor:pointer;transition:opacity .25s}.node .box{fill:#fafafa;stroke:var(--off-line);stroke-width:2;transition:fill .3s var(--ease),stroke .3s var(--ease)}.node .glyph{display:flex;width:28px;height:28px;color:var(--off-ink);transition:color .3s var(--ease)}.node .lbl{fill:var(--off-ink);font-size:14px;text-anchor:middle;paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round}.node .lbl.side{text-anchor:start}.node .part{fill:none;stroke:var(--ink);stroke-width:3}.node.s-available .box{fill:var(--paper);stroke:var(--ink);stroke-width:2.5}.node.s-available .glyph{color:var(--ink)}.node.s-available .lbl{fill:var(--ink);font-weight:500}.node.s-available:hover .box{fill:var(--wash)}.node.s-done .box{fill:var(--ink);stroke:var(--ink);stroke-width:2.5}.node.s-done .glyph{color:var(--paper)}.node.s-done .lbl{fill:var(--ink);font-weight:700}.node:hover .box,.node.focused .box{stroke-width:3.5}.node.s-locked:hover .box,.node.s-locked.focused .box{stroke:var(--ink-2)}.node.focused .box{filter:drop-shadow(0 4px 10px rgb(0 0 0 / .18))}.node.r-dim{opacity:.45}.node.r-path .box{fill:var(--paper);stroke:var(--ink);stroke-width:2.5}.node.r-path .glyph{color:var(--ink)}.node.r-path .lbl,.node.r-path.s-done .box{fill:var(--ink)}.node.r-path.s-done .glyph{color:var(--paper)}.node.pulse .box{animation:pop .6s var(--ease) both;transform-box:fill-box;transform-origin:center}.node .ripple{fill:none;stroke:var(--ink);stroke-width:3;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:ripple .9s cubic-bezier(.2,.7,.3,1) both}.node.s-available .ripple{stroke:var(--ink);stroke-width:2}@keyframes ripple{0%{transform:scale(1);opacity:.8}to{transform:scale(2.1);opacity:0}}@keyframes pop{0%{transform:scale(.85)}50%{transform:scale(1.12)}to{transform:scale(1)}}.web-tools{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow:hidden}.web-tools button{width:34px;height:34px;border:0;border-top:1px solid var(--line-2);background:none;color:var(--ink-2);font-size:16px}.web-tools button:first-child{border-top:0}.web-tools button:hover{background:var(--wash);color:var(--ink)}.hud{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-bottom:1px solid var(--line-2)}.brand{display:inline-flex;align-items:baseline;gap:10px}.home-link{align-self:center;display:flex;color:var(--ink)}.home-link svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand-name{margin:0;font-size:16px;font-weight:700}.brand-count{color:var(--ink-2);font-variant-numeric:tabular-nums}.brand-count b{color:var(--ink)}.hud-right{display:flex;align-items:center;gap:18px}.repick{padding:5px 14px;border:1.5px solid var(--ink);border-radius:999px;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .2s var(--ease),color .2s var(--ease)}.repick:hover{background:var(--ink);color:var(--paper)}.switch{font-size:13px;color:var(--ink-2);text-decoration:none;white-space:nowrap;transition:color .2s var(--ease)}.switch:hover{color:var(--ink)}.tabs{display:flex;gap:2px;padding:0 20px;overflow-x:auto;border-bottom:1px solid var(--line-2);scrollbar-width:none;transition:margin-right .35s var(--ease)}.tabs button{display:flex;align-items:baseline;gap:6px;padding:10px 10px 9px;border:0;border-bottom:2.5px solid transparent;background:none;font-size:13px;color:var(--ink-2);white-space:nowrap}.tabs button small{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}.tabs button:hover{color:var(--ink)}.tabs button.off{color:var(--ink-3)}.tabs button.on{color:var(--ink);font-weight:700;border-bottom-color:var(--ink)}.panel{position:absolute;top:54px;right:0;bottom:0;z-index:8;width:var(--panel-w);max-width:100%;border-left:1px solid var(--ink);background:var(--paper);transform:translate(100%);transition:transform .35s var(--ease)}.page.panel-open .panel{transform:none}.panel-body{height:100%;overflow-y:auto;padding:28px 24px 40px}.panel-close{position:absolute;top:10px;right:12px;width:28px;height:28px;border:0;background:none;color:var(--ink-2);font-size:20px;line-height:1}.panel-close:hover{color:var(--ink)}.back-link{margin:0 0 12px;padding:0;border:0;background:none;color:var(--ink-2);font-size:13px}.back-link:hover{color:var(--ink)}.detail{animation:detail-in .3s var(--ease)}@keyframes detail-in{0%{opacity:0;transform:translateY(4px)}}.eyebrow{margin:0;font-size:13px;color:var(--ink-2)}.summary{margin:0 0 16px;font-size:16px;line-height:1.75}.detail h4{margin:22px 0 8px;font-size:13px;font-weight:500;color:var(--ink-2)}.links{margin:0;padding:0;list-style:none;font-size:16px;line-height:1.7}.links a{text-decoration:none;border-bottom:1px solid var(--ink)}.links a:hover{border-bottom-width:2px}.links li+li{margin-top:4px}.flow{margin:0;padding:0;list-style:none}.flow li{position:relative}.flow li+li{margin-top:10px}.flow li+li:before{content:"";position:absolute;top:-10px;left:22px;width:2px;height:10px;background:var(--line)}.flow li.done+li.done:before{background:var(--ink)}.flow button{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;font-size:16px;text-align:left;cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease)}.flow button:hover:not(:disabled){border-color:var(--ink);background:var(--wash)}.flow .dot{display:grid;flex:none;place-items:center;width:24px;height:24px;border:1px solid var(--ink);border-radius:50%;background:var(--paper);font-family:var(--mono);font-size:13px}.flow li.done button{font-weight:500}.flow li.done .dot{background:var(--ink);color:var(--paper)}.flow.locked button{border-color:var(--line-2);color:var(--off-ink);cursor:not-allowed}.flow.locked .dot{border-color:var(--off-line)}.flow .boss{color:var(--ink-2)}.card-sec h4 .count{margin-left:6px;letter-spacing:0}.note{margin:8px 0 0;font-size:13px;color:var(--ink-2)}.meter{position:relative;display:block;height:4px;background:var(--line-2);overflow:hidden}.meter-done{position:absolute;top:0;bottom:0;left:0;background:var(--ink);transition:width .5s var(--ease)}.row-actions{display:flex;gap:6px;margin-top:12px}.row-actions.wrap{flex-wrap:wrap}.row-actions button{padding:5px 12px;border:1px solid var(--ink);background:var(--paper);font-size:13px}.row-actions button:hover{background:var(--wash)}button.danger{border-color:var(--ink)!important;background:var(--ink);color:var(--paper)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}.stats div{display:flex;flex-direction:column}.stats b{font-size:40px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.stats span{font-size:13px;color:var(--ink-2)}.plain-list{margin:0;padding:0;list-style:none}.plain-list li+li{border-top:1px solid var(--line-2)}.row-link{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;padding:7px 0;border:0;background:none;text-align:left;text-decoration:none;font-size:16px}.row-link:hover span{text-decoration:underline;text-underline-offset:3px}.row-link small{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.shared-banner{margin-bottom:14px;padding:8px 12px;border:1px solid var(--ink);font-size:13px}.shared-banner p{margin:0}.toasts{position:fixed;left:50%;bottom:24px;z-index:60;display:flex;flex-direction:column;align-items:center;gap:6px;transform:translate(-50%);pointer-events:none}.toast{display:flex;align-items:center;gap:12px;max-width:min(560px,calc(100vw - 32px));padding:7px 10px 7px 14px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:13px;pointer-events:auto;animation:toast-in .25s var(--ease)}.toast button{padding:1px 10px;border:1px solid var(--paper);background:none;color:var(--paper);font-size:13px;white-space:nowrap}.toast button.close{padding:0 4px;border:0;opacity:.7;font-size:16px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media(max-width:760px){.hud{padding:12px 16px;gap:10px}.hud-right .switch{display:none}.panel{top:auto;left:0;right:0;bottom:0;width:auto;height:min(64dvh,560px);border-left:0;border-top:1px solid var(--ink);transform:translateY(100%)}.panel-body{padding:32px 18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.career-badge{flex:none;cursor:default}.card-head{display:flex;align-items:center;gap:14px;margin:4px 0 18px}.career-badge .tip-progress{transition:none}.slot{flex:none}.slot .slot-box{fill:#fafafa;stroke:var(--off-line);stroke-width:2}.slot.s-available .slot-box{fill:var(--paper);stroke:var(--ink);stroke-width:2.5}.slot.s-done .slot-box{fill:var(--ink);stroke:var(--ink)}.slot-glyph{display:flex;width:32px;height:32px;color:var(--off-ink)}.slot.s-available .slot-glyph{color:var(--ink)}.slot.s-done .slot-glyph{color:var(--paper)}.card-title{flex:1;min-width:0;container-type:inline-size}.card-kind{margin:0;color:var(--ink-2);font-size:13px}.card-name{margin:2px 0 8px;font-size:min(40px,100cqi / var(--len));font-weight:700;line-height:1.2;white-space:nowrap}.badge{display:inline-block;font-family:var(--mono);font-size:13px;color:var(--ink-2)}.badge.b-available{color:var(--ink)}.badge.b-done{color:var(--ink);font-weight:700}.light-toggle{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:50px;margin:18px 0 6px;border:1.5px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);font-size:16px;font-weight:700;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s,color .2s}.light-toggle:hover{transform:translateY(-1px);box-shadow:0 8px 22px #0000002e}.light-toggle:active{transform:none;box-shadow:none}.light-toggle kbd{padding:1px 6px;border:1px solid rgb(255 255 255 / .4);font:inherit;font-size:13px;letter-spacing:0;opacity:.7}.light-toggle.on{background:var(--paper);color:var(--ink)}.light-toggle.on:hover{background:var(--wash)}.light-toggle .lt-off,.light-toggle.on:hover .lt-main{display:none}.light-toggle.on:hover .lt-off{display:inline;color:var(--ink)}.light-toggle.locked{border-color:var(--line);background:var(--wash);color:var(--ink-3);font-size:16px;box-shadow:none;cursor:not-allowed}.light-toggle.locked:hover{transform:none;box-shadow:none}.card-sec h4{margin-top:24px}.jobs-row{display:flex;flex-wrap:wrap;gap:6px}.jobs-row a{padding:3px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;text-decoration:none;transition:border-color .2s var(--ease)}.jobs-row a:hover{border-color:var(--ink)}.jobs-row a.on{border-color:var(--ink);background:var(--ink);color:#fff}.mini-row{display:flex;flex-wrap:wrap;gap:4px 6px}.mini{display:flex;flex-direction:column;align-items:center;width:92px;padding:6px 2px;border:0;background:none;color:var(--ink);text-align:center}.mini:hover{background:var(--wash)}.mini-name{margin-top:2px;font-size:13px;line-height:1.3}.mini.s-locked .mini-name{color:var(--off-ink)}.mini.s-done .mini-name{font-weight:700}.mini-state{margin-top:2px;font-size:13px;color:var(--off-ink)}.mini.s-locked .mini-state,.mini.s-available .mini-state{color:var(--ink)}.start{cursor:pointer;outline:none}.start-track{fill:none;stroke:var(--line-2);stroke-width:4}.start-progress{fill:none;stroke:var(--ink);stroke-width:4;transition:stroke-dasharray .6s var(--ease)}.start-ring{fill:var(--paper);stroke:var(--ink);stroke-width:2.5;transition:fill .2s var(--ease)}.start.lit .start-ring{fill:var(--ink)}.start-num{font-size:22px;font-weight:700;text-anchor:middle;dominant-baseline:middle;fill:var(--ink);pointer-events:none}.start.lit .start-num{fill:var(--paper)}.start-lbl{font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:middle;fill:var(--ink-2);pointer-events:none}.start.lit .start-lbl{fill:var(--paper);opacity:.8}.start:hover .start-ring,.start:focus-visible .start-ring{stroke-width:4}
