:root{--surface-app:#f4f4f5;--surface-panel:#fff;--surface-sunken:#fafafa;--surface-hover:#f1f1f2;--surface-selected:#eaeaec;--border-hairline:#ececee;--border-control:#dedee1;--fg-primary:#1a1a1e;--fg-secondary:#5f5f68;--fg-tertiary:#8e8e96;--fg-inverse:#fff;--action-primary:#1a1a1e;--accent-fg:#5056d6;--accent-bg:#f0f0fd;--green:#1f8a4c;--green-bg:#e3f4ea;--amber:#b26a00;--amber-bg:#fff1db;--red:#c8333a;--red-bg:#fde7e7;--grey:#b4b4bb;--r-sm:6px;--r-md:8px;--r-lg:12px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 16px #0000000f,0 1px 2px #0000000a;--shadow-lg:0 12px 40px #0000002e;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--surface-app);color:var(--fg-primary);font:400 13px/20px var(--font);letter-spacing:-.05px;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--accent-fg);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent-fg);outline-offset:2px;border-radius:4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--mono);font-size:12px;line-height:18px}.muted{color:var(--fg-secondary)}.faint{color:var(--fg-tertiary)}.small{font-size:12px;line-height:16px}.medium{font-weight:500}.strong{font-weight:600}.green{color:var(--green)}.amber{color:var(--amber)}.red{color:var(--red)}.accent{color:var(--accent-fg)}.title{letter-spacing:-.4px;margin:0;font-size:22px;font-weight:600;line-height:28px}.heading{letter-spacing:-.15px;margin:0;font-size:15px;font-weight:600;line-height:22px}.numeral{letter-spacing:-.4px;font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;line-height:24px}.section-label{color:var(--fg-tertiary);font-size:12px;font-weight:500;line-height:16px}.row{align-items:center;gap:8px;display:flex}.col{flex-direction:column;display:flex}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.gap4{gap:4px}.gap12{gap:12px}.gap16{gap:16px}.gap24{gap:24px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hidden{display:none!important}.app{height:100vh;padding:8px 8px 8px 0;display:flex}.sidebar{flex-direction:column;flex:none;gap:1px;width:232px;padding:2px 8px;display:flex;overflow-y:auto}.ws{align-items:center;gap:8px;height:32px;margin-bottom:10px;padding:0 6px;display:flex}.ws img{width:20px;height:20px}.ws .name{flex:1;font-weight:500}.ws button{color:var(--fg-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px;display:flex}.ws button:hover{background:var(--surface-hover)}.nav{height:28px;color:var(--fg-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:0 8px;font-weight:500;display:flex;text-decoration:none!important}.nav:hover{background:var(--surface-hover);color:var(--fg-primary)}.nav.active{background:var(--surface-selected);color:var(--fg-primary)}.nav svg{flex:none}.nav .count{color:var(--fg-tertiary);margin-left:auto;font-size:12px;font-weight:400}.nav-section{color:var(--fg-tertiary);align-items:center;padding:16px 8px 4px;font-size:12px;font-weight:500;display:flex}.nav-section button{color:var(--fg-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;margin-left:auto;padding:2px;display:flex}.nav-section button:hover{background:var(--surface-hover)}.sidebar .spacer{flex:1}.panel{background:var(--surface-panel);border:1px solid var(--border-hairline);border-radius:var(--r-md);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden;box-shadow:0 1px 2px #00000008}.topbar{border-bottom:1px solid var(--border-hairline);flex:none;align-items:center;gap:8px;height:44px;padding:0 16px;display:flex}.crumbs{flex:1;align-items:center;gap:6px;min-width:0;font-weight:500;display:flex}.crumbs a{color:var(--fg-secondary)}.crumbs .sep{color:var(--fg-tertiary)}.search{border:1px solid var(--border-control);width:220px;height:28px;color:var(--fg-tertiary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:0 8px;display:flex}.content{flex:1;overflow:auto}.page{max-width:1240px;padding:32px 48px 64px}.page.narrow{max-width:760px;margin:0 auto}.split{min-height:100%;display:flex}.split>.main{flex:1;min-width:0;padding:32px 48px 64px}.split>.aside{border-left:1px solid var(--border-hairline);flex:none;width:300px;padding:24px 20px}.btn{border:1px solid var(--border-control);background:var(--surface-panel);height:28px;color:var(--fg-primary);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-weight:500;display:inline-flex;text-decoration:none!important}.btn:hover{background:var(--surface-hover)}.btn.primary{background:var(--action-primary);border-color:var(--action-primary);color:var(--fg-inverse)}.btn.primary:hover{background:#2c2c33}.btn.ghost{box-shadow:none;color:var(--fg-secondary);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-hover);color:var(--fg-primary)}.btn.danger{color:var(--red)}.btn.lg{height:36px;padding:0 16px}.btn.sm{height:24px;padding:0 8px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.kbd{border:1px solid var(--border-hairline);background:var(--surface-sunken);height:18px;color:var(--fg-tertiary);border-radius:4px;align-items:center;padding:0 4px;font-size:11px;font-weight:400;display:inline-flex}.btn.primary .kbd{color:#fff9;background:0 0;border-color:#fff3}.input,.textarea,.select{border:1px solid var(--border-control);background:var(--surface-panel);border-radius:6px;outline:none;width:100%;height:34px;padding:0 10px}.textarea{resize:vertical;height:auto;min-height:80px;padding:8px 10px;line-height:20px}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent-fg);box-shadow:0 0 0 3px #5056d626}.field{flex-direction:column;gap:6px;display:flex}.field>label{color:var(--fg-secondary);font-size:12px;font-weight:500}.field .hint{color:var(--fg-tertiary);font-size:12px}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.seg{background:var(--surface-hover);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.seg button{height:24px;color:var(--fg-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:1;padding:0 10px;font-size:12px;font-weight:500}.seg button.on{background:var(--surface-panel);color:var(--fg-primary);box-shadow:0 1px 2px #00000014}.seg.block{display:flex}.chip{background:var(--surface-hover);height:20px;color:var(--fg-secondary);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:0 6px;font-size:12px;font-weight:500;display:inline-flex}.chip.accent{background:var(--accent-bg);color:var(--accent-fg)}.chip.green{background:var(--green-bg);color:var(--green)}.chip.amber{background:var(--amber-bg);color:var(--amber)}.chip.red{background:var(--red-bg);color:var(--red)}.pill{border:1px solid var(--border-control);background:var(--surface-panel);cursor:pointer;border-radius:14px;align-items:center;gap:6px;height:28px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.pill.on{background:var(--action-primary);border-color:var(--action-primary);color:#fff}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.logo{object-fit:contain;width:20px;height:20px;box-shadow:inset 0 0 0 1px var(--border-hairline);background:#fff;border-radius:5px;flex:none}.logo.fallback{color:#fff;background:var(--fg-secondary);justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.tabs{border-bottom:1px solid var(--border-hairline);gap:20px;display:flex}.tabs a{color:var(--fg-secondary);border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding-bottom:10px;font-weight:500;display:flex;text-decoration:none!important}.tabs a.on{color:var(--fg-primary);border-bottom-color:var(--fg-primary)}.tabs a .faint{font-weight:400}.card{border:1px solid var(--border-hairline);border-radius:var(--r-md);background:var(--surface-panel)}.card.pad{padding:16px}.sunken{background:var(--surface-sunken);border-radius:var(--r-md)}.box{border-radius:var(--r-md);background:var(--surface-sunken);padding:12px 14px}.box.accent{background:var(--accent-bg);color:var(--accent-fg)}.box.warn{background:var(--amber-bg);color:var(--amber)}.box.err{background:var(--red-bg);color:var(--red)}.list{border:1px solid var(--border-hairline);border-radius:var(--r-md);overflow:hidden}.list>.item{border-bottom:1px solid var(--border-hairline);align-items:center;gap:12px;min-height:44px;padding:10px 14px;display:flex}.list>.item:last-child{border-bottom:0}.list>.item.click{cursor:pointer}.list>.item.click:hover{background:var(--surface-sunken)}.list>.head{background:var(--surface-sunken);min-height:32px;color:var(--fg-tertiary);padding:6px 14px;font-size:12px;font-weight:500}.group-head{background:var(--surface-sunken);border-radius:6px;align-items:center;gap:8px;height:32px;margin:12px 0 2px;padding:0 12px;font-size:12px;font-weight:500;display:flex}.rowline{border-bottom:1px solid var(--border-hairline);align-items:center;gap:12px;min-height:40px;padding:0 12px;display:flex}.track{background:var(--surface-hover);border-radius:2px;flex:none;height:4px;overflow:hidden}.track>i{background:var(--fg-secondary);border-radius:2px;height:100%;display:block}.track.lg{border-radius:3px;height:6px}.track.accent>i{background:var(--accent-fg)}.track.green>i{background:var(--green)}.status{border:1.5px solid var(--grey);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:14px;height:14px;padding:0;display:inline-flex}.status.progress{border-color:var(--amber)}.status.done{background:var(--accent-fg);border:0}.status.done svg{color:#fff}.stages{gap:6px;display:flex}.stages>div{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.stages>div>i{background:var(--surface-selected);border-radius:2px;height:3px}.stages .done>i{background:var(--green)}.stages .current>i{background:var(--accent-fg)}.kv{align-items:center;gap:8px;min-height:30px;display:flex}.kv>span:first-child{width:84px;color:var(--fg-secondary);flex:none;font-size:12px}.empty{text-align:center;color:var(--fg-secondary);border:1px dashed var(--border-control);border-radius:var(--r-md);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.empty .heading{color:var(--fg-primary)}.spinner{border:2px solid var(--surface-selected);border-top-color:var(--accent-fg);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-hover),var(--surface-sunken),var(--surface-hover));background-size:200% 100%;border-radius:4px;height:14px;animation:1.2s infinite sk}@keyframes sk{to{background-position:-200% 0}}.code{font-family:var(--mono);background:var(--surface-sunken);border:1px solid var(--border-hairline);border-radius:var(--r-md);white-space:pre;padding:12px 14px;font-size:12px;line-height:20px;overflow:auto}textarea.code{resize:vertical;outline:none;width:100%;min-height:280px}.board{gap:12px;height:100%;padding:16px;display:flex;overflow-x:auto}.column{flex-direction:column;flex:1;gap:8px;min-width:190px;display:flex}.column .chead{align-items:center;gap:8px;height:28px;padding:0 4px;font-size:12px;font-weight:500;display:flex}.lane{border-radius:var(--r-md);background:var(--surface-sunken);flex-direction:column;flex:1;gap:8px;min-height:120px;padding:6px;display:flex}.lane.drop{outline:2px dashed var(--accent-fg);outline-offset:-2px}.lane.dashed{border:1px dashed var(--border-control);background:0 0}.bcard{border-radius:var(--r-md);background:var(--surface-panel);border:1px solid var(--border-hairline);box-shadow:var(--shadow-sm);cursor:grab;flex-direction:column;gap:10px;padding:12px;display:flex}.bcard:hover{border-color:var(--border-control)}.scrim{z-index:50;background:#0f0f1452;justify-content:flex-end;padding:8px;animation:.15s fade;display:flex;position:fixed;inset:0}.scrim.center{justify-content:center;align-items:center}@keyframes fade{0%{opacity:0}}.sheet{background:var(--surface-panel);width:520px;max-width:100%;box-shadow:var(--shadow-lg);border-radius:10px;flex-direction:column;animation:.2s ease-out slide;display:flex;overflow:hidden}.scrim.center .sheet{max-height:86vh;animation:.15s pop}@keyframes slide{0%{opacity:0;transform:translate(24px)}}@keyframes pop{0%{opacity:0;transform:scale(.98)}}.sheet-head{border-bottom:1px solid var(--border-hairline);flex:none;align-items:center;gap:8px;height:56px;padding:0 20px;display:flex}.sheet-body{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow:auto}.sheet-foot{border-top:1px solid var(--border-hairline);flex:none;align-items:center;gap:8px;height:60px;padding:0 20px;display:flex}.toast{z-index:80;background:var(--action-primary);color:#fff;box-shadow:var(--shadow-lg);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;animation:.15s pop;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast.err{background:var(--red)}.menu{z-index:70;background:var(--surface-panel);border:1px solid var(--border-hairline);min-width:200px;box-shadow:var(--shadow-md);border-radius:8px;padding:4px;position:fixed}.menu button{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;height:30px;padding:0 10px;display:flex}.menu button:hover{background:var(--surface-hover)}.focus{z-index:40;background:var(--surface-panel);flex-direction:column;display:flex;position:fixed;inset:0}.focus-top{border-bottom:1px solid var(--border-hairline);flex:none;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.focus-body{flex:1;justify-content:center;padding:48px 24px;display:flex;overflow:auto}.focus-col{flex-direction:column;gap:20px;width:720px;max-width:100%;display:flex}.steps{flex:1;gap:4px;display:flex}.steps>div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.steps>div>i{background:var(--surface-selected);border-radius:2px;height:4px}.steps>div.done>i{background:var(--fg-primary)}.steps>div.now>i{background:var(--accent-fg)}.steps span{color:var(--fg-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.steps .now span{color:var(--fg-primary)}.feedback{flex:none;align-items:center;gap:14px;min-height:84px;padding:16px 40px;display:flex}.feedback.ok{background:#e1f5e8}.feedback.bad{background:#fce8e8}.feedback .icon{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.feedback.ok .icon{background:var(--green)}.feedback.bad .icon{background:var(--red)}.option{border:1px solid var(--border-control);border-radius:var(--r-md);background:var(--surface-panel);cursor:pointer;text-align:left;align-items:center;gap:12px;width:100%;min-height:50px;padding:10px 16px;display:flex}.option:hover{background:var(--surface-sunken)}.option.sel{border-color:var(--fg-primary);box-shadow:inset 0 0 0 .5px var(--fg-primary)}.option.right{border-color:var(--green);box-shadow:inset 0 0 0 .5px var(--green)}.option.wrong{border-color:var(--red);box-shadow:inset 0 0 0 .5px var(--red)}.option .k{border:1px solid var(--border-control);width:22px;height:22px;color:var(--fg-secondary);border-radius:4px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:500;display:inline-flex}.blank{border:1.5px solid var(--border-control);min-width:80px;height:22px;font-family:var(--mono);background:var(--surface-panel);vertical-align:middle;border-radius:4px;outline:none;padding:0 6px;font-size:12px;display:inline-block}.blank.ok{border-color:var(--green);color:var(--green)}.blank.bad{border-color:var(--red);color:var(--red)}.chat{flex-direction:column;gap:10px;display:flex}.bubble{background:var(--surface-sunken);white-space:pre-wrap;border-radius:10px;max-width:80%;padding:9px 12px}.bubble.me{background:var(--action-primary);color:#fff;align-self:flex-end}.sheetgrid{border:1px solid var(--border-hairline);border-radius:var(--r-md);background:#fff;overflow:auto}.sheetgrid table{border-collapse:collapse;width:100%}.sheetgrid th,.sheetgrid td{border-right:1px solid var(--border-hairline);border-bottom:1px solid var(--border-hairline);text-align:right;height:30px;font-family:var(--mono);padding:0 10px;font-size:12px}.sheetgrid th{background:var(--surface-sunken);font-family:var(--font);color:var(--fg-tertiary);font-weight:500}.sheetgrid td:first-child,.sheetgrid th:first-child{text-align:left;font-family:var(--font)}.sheetgrid td input{text-align:right;width:100%;font:inherit;background:0 0;border:0;outline:none}.sheetgrid td.edit{background:var(--accent-bg)}.onb{z-index:60;background:var(--surface-app);flex-direction:column;display:flex;position:fixed;inset:0;overflow:auto}.onb-top{flex:none;align-items:center;gap:16px;height:64px;padding:0 32px;display:flex}.onb-prog{gap:4px;display:flex}.onb-prog i{background:var(--surface-selected);border-radius:2px;width:34px;height:4px}.onb-prog i.on{background:var(--fg-primary)}.onb-mid{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.onb-card{background:var(--surface-panel);border:1px solid var(--border-hairline);border-radius:var(--r-lg);flex-direction:column;gap:18px;width:600px;max-width:100%;padding:32px;display:flex;box-shadow:0 2px 8px #0000000a}.choice-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.choice{border:1px solid var(--border-control);border-radius:var(--r-md);background:var(--surface-panel);cursor:pointer;color:var(--fg-secondary);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;font-size:12px;font-weight:500;display:flex}.choice.on{border:1.5px solid var(--fg-primary);background:var(--surface-sunken);color:var(--fg-primary)}.choice.left{text-align:left;align-items:flex-start}.tabbar{display:none}@media (max-width:767px){.app{flex-direction:column;height:auto;min-height:100vh;padding:0}.sidebar{display:none}.panel{box-shadow:none;border:0;border-radius:0;min-height:100vh;padding-bottom:84px;overflow:visible}.content{overflow:visible}.topbar{background:var(--surface-panel);z-index:5;padding:0 16px;position:sticky;top:0}.search{display:none}.page,.split>.main{padding:20px 16px 32px}.split{flex-direction:column}.split>.aside{border-left:0;border-top:1px solid var(--border-hairline);width:auto}.grid2{grid-template-columns:1fr}.tabs{gap:16px;overflow-x:auto}.board{flex-direction:column;height:auto;overflow:visible}.column{min-width:0}.lane{min-height:0}.sheet{border-radius:14px 14px 0 0;width:100%;max-height:92vh;margin-top:auto}.scrim{align-items:flex-end;padding:0}.tabbar{z-index:30;background:var(--surface-panel);border-top:1px solid var(--border-hairline);padding:8px 0 calc(8px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--fg-tertiary);flex-direction:column;flex:1;align-items:center;gap:3px;font-size:10px;font-weight:500;display:flex;text-decoration:none!important}.tabbar a.on{color:var(--fg-primary)}.focus-top{gap:10px;padding:0 16px}.focus-body{padding:20px 16px}.feedback{padding:16px}.onb-top{padding:0 16px}.onb-prog i{width:18px}.onb-card{padding:20px}.hide-phone{display:none!important}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
