:root{--ink:#1a1a1a;--ink-2:#5c5a55;--ink-3:#73716b;--ink-4:#a8a6a0;--sidebar:#eeedeb;--canvas:#f9f8f6;--surface:#fff;--subtle:#f5f4f2;--fill-hover:#3c321e0f;--fill-active:#3c321e1a;--line:#e8e7e4;--line-strong:#dad9d5;--line-focus:#8d8b85;--danger:#b42318;--danger-subtle:#fdf1ef;--danger-line:#f1c8c1;--link:#0969da;--info:#3a6fd8;--success:#2f8a57;--success-subtle:#edf7f1;--success-line:#c4e3d0;--warning:#b2600a;--warning-icon:#d9822b;--warning-subtle:#fdf4e8;--warning-line:#f3d5ae;--violet:#7b5cc4;--pc-gray:#6b6a66;--pc-blue:#3a6fd8;--pc-cyan:#1f8aa3;--pc-green:#3b8c5a;--pc-yellow:#b8890f;--pc-orange:#cc6a2c;--pc-red:#c8443a;--pc-purple:#7b5cc4;--pc-pink:#c2528b;--brand:#fac03d;--scrim:#1a1a1a2e;--font:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;--fs-page-title:20px;--lh-page-title:28px;--fs-metric:24px;--lh-metric:32px;--fs-panel-title:16px;--lh-panel-title:24px;--fs-body:14px;--lh-body:22px;--fs-ui:13px;--lh-ui:20px;--fs-meta:12px;--lh-meta:18px;--fs-micro:11px;--lh-micro:16px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s12:48px;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-full:9999px;--sh-xs:0 1px 2px #0000000d;--sh-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--sh-popover:0 8px 24px #0000001a, 0 2px 6px #0000000d;--sh-dialog:0 24px 64px #00000029;--ring:0 0 0 3px var(--fill-hover);--h-sm:28px;--h-md:32px;--h-lg:36px;--h-header:48px;--w-sidebar:240px;--w-sidebar-collapsed:56px;--h-nav:30px;--h-thead:36px;--h-row:40px;--h-grid-row:36px;--ease:cubic-bezier(.2, 0, 0, 1);--dur:.16s}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);font-size:var(--fs-ui);line-height:var(--lh-ui);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}#root{height:100%}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}::placeholder{color:var(--ink-4);opacity:1}::selection{background:#1a1a1a1f}:focus{outline:none}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}input:focus-visible,textarea:focus-visible,[contenteditable]:focus-visible,[role=dialog]:focus-visible,[role=alertdialog]:focus-visible{outline:none}.t-page-title{font-size:var(--fs-page-title);line-height:var(--lh-page-title);letter-spacing:-.015em;font-weight:600}.t-metric{font-size:var(--fs-metric);line-height:var(--lh-metric);letter-spacing:-.02em;font-weight:600}.t-panel-title{font-size:var(--fs-panel-title);line-height:var(--lh-panel-title);letter-spacing:-.01em;font-weight:600}.t-body{font-size:var(--fs-body);line-height:var(--lh-body)}.t-ui{font-size:var(--fs-ui);line-height:var(--lh-ui)}.t-meta{font-size:var(--fs-meta);line-height:var(--lh-meta)}.t-micro{font-size:var(--fs-micro);line-height:var(--lh-micro);font-weight:500}.w-500{font-weight:500}.c-2{color:var(--ink-2)}.c-3{color:var(--ink-3)}.c-4{color:var(--ink-4)}.c-danger{color:var(--danger)}.num{font-variant-numeric:tabular-nums}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.grow{flex:1;min-width:0}.hstack{align-items:center;gap:var(--s2);min-width:0;display:flex}.vstack{flex-direction:column;min-width:0;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.lucide{flex-shrink:0}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{border-radius:var(--r-sm);white-space:nowrap;color:var(--ink);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-weight:500;display:inline-flex}.btn-sm{height:var(--h-sm);font-size:var(--fs-ui);padding:0 10px}.btn-md{height:var(--h-md);font-size:var(--fs-ui);padding:0 12px}.btn-lg{height:var(--h-lg);font-size:var(--fs-body);padding:0 16px}.btn-block{width:100%}.btn-icon{color:var(--ink-2);padding:0}.btn-icon.btn-sm{width:var(--h-sm)}.btn-icon.btn-md{width:var(--h-md)}.btn-icon.btn-lg{width:var(--h-lg)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover:not(:disabled){background:#33312d}.btn-secondary{background:var(--surface);border-color:var(--line-strong);box-shadow:var(--sh-xs)}.btn-secondary:hover:not(:disabled){background:var(--subtle)}.btn-ghost:hover:not(:disabled),.btn-ghost[data-state=open]{background:var(--fill-hover);color:var(--ink)}.btn-ghost:active:not(:disabled){background:var(--fill-active)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#9a1d13}.btn:disabled:not([aria-busy]){opacity:.45}.btn-secondary[data-state=open]{background:var(--subtle)}.badge{border-radius:var(--r-xs);height:20px;font-size:var(--fs-meta);white-space:nowrap;color:var(--ink-2);align-items:center;gap:4px;padding:0 6px;font-weight:500;line-height:18px;display:inline-flex}.badge .lucide,.badge svg{width:12px;height:12px}.badge-neutral{background:var(--subtle);box-shadow:inset 0 0 0 1px var(--line)}.badge-outline{box-shadow:inset 0 0 0 1px var(--line-strong)}.badge-danger{background:var(--danger-subtle);color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger-line)}.badge-warning{background:var(--warning-subtle);color:var(--warning);box-shadow:inset 0 0 0 1px var(--warning-line)}.badge-warning .lucide{color:var(--warning-icon)}.s-draft,.s-abort{color:var(--ink-3)}.s-forced{color:var(--danger)}.s-extend{color:var(--warning-icon)}.s-active{color:var(--info)}.s-waiting,.s-regen{color:var(--violet)}.s-pass,.s-conditional{color:var(--success)}.avatar{border-radius:var(--r-full);color:#fff;-webkit-user-select:none;user-select:none;letter-spacing:0;flex-shrink:0;justify-content:center;align-items:center;font-weight:500;display:inline-flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-16{width:16px;height:16px;font-size:9px}.avatar-20{width:20px;height:20px;font-size:8px}.avatar-24{width:24px;height:24px;font-size:9px}.avatar-32{width:32px;height:32px;font-size:11px}.avatar-64{width:64px;height:64px;font-size:20px}.avatar-dept{background:var(--subtle);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}.person{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.chip{height:var(--h-sm);max-width:240px;padding:0 10px 0 var(--s1);border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);color:var(--ink);font-size:var(--fs-ui);line-height:var(--lh-ui);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.chip.is-clickable{transition:background var(--dur) var(--ease)}.chip.is-clickable:hover{background:var(--fill-hover)}.chip.is-clickable[data-state=open]{background:var(--fill-active)}.chip-suffix{color:var(--ink-3);font-size:var(--fs-meta)}.chip-more{color:var(--ink-2);padding:0 10px}.chip-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.avatar-group{align-items:center;padding-left:6px;display:inline-flex}.avatar-ring{border-radius:var(--r-full);box-shadow:0 0 0 2px var(--canvas);margin-left:-6px;display:inline-flex}.avatar-more{background:var(--subtle);color:var(--ink-2);box-shadow:0 0 0 2px var(--canvas), inset 0 0 0 1px var(--line);font-size:var(--fs-micro);width:auto;min-width:20px;margin-left:-6px;padding:0 4px}.pglyph{color:var(--c,var(--ink-2));flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.pglyph-16{width:16px;height:16px}.pglyph-20,.pglyph-24,.pglyph-32,.pglyph-40{background:color-mix(in srgb, var(--c,var(--ink-2)) 10%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c,var(--ink-2)) 14%, var(--surface))}.pglyph-20{border-radius:var(--r-xs);width:20px;height:20px}.pglyph-24{border-radius:var(--r-sm);width:24px;height:24px}.pglyph-32{border-radius:var(--r-md);width:32px;height:32px}.pglyph-40{border-radius:var(--r-md);width:40px;height:40px}.pglyph.is-emoji{font-size:.65em}.pglyph-32.is-emoji{font-size:18px}.pglyph-24.is-emoji{font-size:14px}.pglyph-16.is-emoji{font-size:13px}.pglyph.is-empty{background:var(--subtle);box-shadow:inset 0 0 0 1px var(--line-strong)}.pc-gray{--c:var(--pc-gray)}.pc-blue{--c:var(--pc-blue)}.pc-cyan{--c:var(--pc-cyan)}.pc-green{--c:var(--pc-green)}.pc-yellow{--c:var(--pc-yellow)}.pc-orange{--c:var(--pc-orange)}.pc-red{--c:var(--pc-red)}.pc-purple{--c:var(--pc-purple)}.pc-pink{--c:var(--pc-pink)}.input{width:100%;height:var(--h-md);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-ui);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:0 10px;display:block}.input-sm{height:var(--h-sm)}.input:hover{border-color:#c9c7c2}.input:focus,.input:focus-within{border-color:var(--line-focus);box-shadow:var(--ring);outline:none}.input.is-error{border-color:var(--danger)}.input.is-error:focus,.input.is-error:focus-within{box-shadow:0 0 0 3px var(--danger-subtle)}.input-affix{align-items:center;gap:6px;display:flex}.input-affix input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;padding:0}.affix{color:var(--ink-3);flex-shrink:0}.textarea{height:auto;min-height:72px;line-height:var(--lh-ui);resize:vertical;padding:6px 10px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{align-items:center;gap:var(--s2);font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-2);font-weight:500;display:flex}.field-label>:first-child{flex:1}.req{color:var(--ink-3);margin-left:2px}.field-error{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--danger)}.segmented{height:var(--h-md);border-radius:var(--r-sm);background:var(--subtle);box-shadow:inset 0 0 0 1px var(--line);gap:2px;padding:2px;display:inline-flex}.segmented button{border-radius:var(--r-xs);color:var(--ink-2);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);padding:0 12px;font-weight:500}.segmented button:hover{color:var(--ink)}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-xs), 0 0 0 1px var(--line)}.segmented.is-error{box-shadow:inset 0 0 0 1px var(--danger)}.switch{border-radius:var(--r-full);background:var(--line-strong);width:32px;height:18px;transition:background var(--dur) var(--ease);flex-shrink:0;position:relative}.switch:after{content:"";border-radius:var(--r-full);width:14px;height:14px;box-shadow:var(--sh-xs);transition:transform var(--dur) var(--ease);background:#fff;position:absolute;top:2px;left:2px}.switch.on{background:var(--ink)}.switch.on:after{transform:translate(14px)}.checkbox{align-items:center;gap:6px;display:inline-flex}.checkbox label{cursor:pointer}.checkbox-box{border-radius:var(--r-xs);background:var(--surface);width:16px;height:16px;box-shadow:inset 0 0 0 1px var(--line-strong);color:#fff;justify-content:center;align-items:center;display:inline-flex}.checkbox-box.on{background:var(--ink);box-shadow:none}.checkbox.disabled{opacity:.5}.select{height:var(--h-md);border-radius:var(--r-sm);text-align:left;align-items:center;gap:6px;min-width:0;padding:0 8px 0 10px;display:inline-flex}.select>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.select-default{border:1px solid var(--line-strong);background:var(--surface);width:100%}.select-default:hover{border-color:#c9c7c2}.select-default[data-state=open]{border-color:var(--line-focus);box-shadow:var(--ring)}.select-sm{height:var(--h-sm)}.select-ghost:hover,.select-ghost[data-state=open]{background:var(--fill-hover)}.select-cell{border-radius:0;width:100%;height:100%;padding:0 8px}.select-caret{color:var(--ink-3);display:inline-flex}.select.is-error{border-color:var(--danger)}.select-content{min-width:var(--radix-select-trigger-width);max-height:320px}.tooltip{z-index:100;border-radius:var(--r-sm);background:var(--ink);color:#fff;max-width:280px;font-size:var(--fs-meta);line-height:var(--lh-meta);animation:pop-in .12s var(--ease);padding:4px 8px}.hovercard{z-index:90;min-width:200px;max-width:360px;padding:var(--s3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-popover);animation:pop-in .12s var(--ease)}.hovercard.wide{max-width:480px}.popover{z-index:80;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);min-width:180px;box-shadow:var(--sh-popover);animation:pop-in .12s var(--ease);outline:none;padding:4px}.popover.match-width{min-width:var(--radix-popover-trigger-width)}@keyframes pop-in{0%{opacity:0;transform:translateY(-2px)}}.menu-item{align-items:center;gap:var(--s2);border-radius:var(--r-sm);min-height:32px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;padding:6px 8px;display:flex}.menu-item .lucide{color:var(--ink-2)}.menu-item[data-highlighted],.menu-item.active{background:var(--fill-hover)}.menu-item.danger,.menu-item.danger .lucide{color:var(--danger)}.menu-meta{padding-left:var(--s3);margin-left:auto}.menu-check{width:14px;color:var(--ink);margin-left:auto;display:inline-flex}.menu-meta+.menu-check{margin-left:var(--s2)}.menu-sep{background:var(--line);height:1px;margin:4px -4px}.picker-trigger{text-align:left;align-items:center;gap:6px;width:100%;min-width:0;display:flex}.picker-value{white-space:nowrap;flex:1;align-items:center;min-width:0;display:flex;overflow:hidden}.picker-caret{color:var(--ink-3)}.picker-field{height:var(--h-md);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);padding:0 8px 0 10px}.picker-field:hover{border-color:#c9c7c2}.picker-field[data-state=open]{border-color:var(--line-focus);box-shadow:var(--ring)}.picker-cell{height:100%;padding:0 8px}.picker-inline{width:auto;height:var(--h-sm);border-radius:var(--r-sm);margin:0 -6px;padding:0 6px}.picker-inline:hover,.picker-inline[data-state=open]{background:var(--fill-hover)}.picker-trigger.is-error.picker-field{border-color:var(--danger)}.picker-custom{display:inline-flex}.picker-pop{width:280px;padding:0}.picklist-search{align-items:center;gap:var(--s2);border-bottom:1px solid var(--line);height:40px;padding:0 12px;display:flex}.picklist-search input{background:0 0;border:0;outline:none;flex:1}.picklist-items{outline:none;max-height:300px;padding:4px;overflow:auto}.picklist-group{padding:8px 8px 4px}.picklist-empty{text-align:center;padding:16px 8px}.adder{align-items:center;gap:var(--s2);width:100%;height:var(--h-md);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);text-align:left;padding:0 10px;display:flex}.adder:hover{border-color:#c9c7c2}.adder[data-state=open]{border-color:var(--line-focus);box-shadow:var(--ring)}.icon-trigger{border-radius:var(--r-md);flex-shrink:0;display:inline-flex}.icon-trigger:hover .pglyph,.icon-trigger[data-state=open] .pglyph{box-shadow:inset 0 0 0 1px var(--line-focus)}.icon-trigger.is-error .pglyph{box-shadow:inset 0 0 0 1px var(--danger)}.icon-pop{width:312px;padding:8px}.icon-colors{border-bottom:1px solid var(--line);gap:6px;margin-bottom:8px;padding:4px 4px 10px;display:flex}.swatch{border-radius:var(--r-full);background:var(--c);width:20px;height:20px;box-shadow:inset 0 0 0 1px #00000014}.swatch.on{box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--c)}.icon-grid{grid-template-columns:repeat(8,32px);gap:4px;max-height:240px;display:grid;overflow:auto}.icon-opt{border-radius:var(--r-sm);width:32px;height:32px;color:var(--c);justify-content:center;align-items:center;display:inline-flex}.icon-opt:hover{background:var(--fill-hover)}.icon-opt.on{background:color-mix(in srgb, var(--c) 12%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c) 30%, var(--surface))}.date-btn{border-radius:var(--r-xs);width:22px;height:22px;color:var(--ink-3);justify-content:center;align-items:center;margin-right:-4px;display:inline-flex}.date-btn:hover,.date-btn[data-state=open]{background:var(--fill-hover);color:var(--ink)}.date-cell{align-items:center;width:100%;height:100%;padding-right:8px;display:flex}.date-cell input{flex:1;min-width:0}.calendar{width:248px;padding:4px}.cal-head{text-align:center;align-items:center;gap:4px;margin-bottom:4px;display:flex}.cal-grid{grid-template-columns:repeat(7,32px);justify-content:center;gap:2px;display:grid}.cal-week{height:28px;font-size:var(--fs-meta);color:var(--ink-3);justify-content:center;align-items:center;display:flex}.cal-day{border-radius:var(--r-sm);height:32px}.cal-day:hover{background:var(--fill-hover)}.cal-day.today{box-shadow:inset 0 0 0 1px var(--line-strong)}.cal-day.on{background:var(--ink);color:#fff}.scrim{z-index:50;background:var(--scrim);animation:fade-in var(--dur) var(--ease);position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.dialog{z-index:60;border-radius:var(--r-lg);background:var(--surface);max-height:calc(100vh - 48px);box-shadow:var(--sh-dialog);animation:dialog-in .18s var(--ease);outline:none;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,calc(6px - 50%))}}.dialog-sm{width:440px}.dialog-md{width:560px}.dialog-lg{width:min(100vw - 48px,960px)}.dialog-full{width:min(100vw - 48px,1440px);height:calc(100vh - 48px)}.dialog-head{align-items:center;gap:var(--s3);border-bottom:1px solid var(--line);flex-shrink:0;height:56px;padding:0 12px 0 24px;display:flex}.dialog-body{flex:1;min-height:0;padding:20px 24px 24px;overflow:auto}.dialog-foot{align-items:center;gap:var(--s2);border-top:1px solid var(--line);flex-shrink:0;height:64px;padding:0 24px;display:flex}.confirm .confirm-body{gap:var(--s2);flex-direction:column;padding:24px 24px 20px;display:flex}.confirm .dialog-foot{border-top:0;height:auto;padding:0 24px 20px}.confirm-desc p{margin:0 0 4px}.page-header{z-index:20;align-items:center;gap:var(--s3);height:var(--h-header);padding:0 var(--s4) 0 var(--s6);background:var(--canvas);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.crumbs{align-items:center;gap:4px;min-width:0;display:flex}.crumb{min-width:0;color:var(--ink-2);align-items:center;gap:6px;display:inline-flex}.crumb a:hover{color:var(--ink)}.crumb.current{color:var(--ink);font-weight:500}.crumb-sep{color:var(--ink-4)}.page-actions{align-items:center;gap:var(--s2);display:flex}.tabs{align-items:center;gap:var(--s5);border-bottom:1px solid var(--line);height:40px;display:flex}.tab{height:100%;color:var(--ink-2);align-items:center;gap:6px;font-weight:500;display:inline-flex;position:relative}.tab:hover,.tab.on{color:var(--ink)}.tab.on:after{content:"";background:var(--ink);height:2px;position:absolute;bottom:-1px;left:0;right:0}.tab-count{font-size:var(--fs-micro);line-height:var(--lh-micro);color:var(--ink-3);font-weight:500}.prop-row{align-items:center;column-gap:var(--s6);row-gap:var(--s2);flex-wrap:wrap;display:flex}.prop{align-items:center;gap:var(--s2);min-height:var(--h-sm);text-align:left;min-width:0;display:inline-flex}.prop.clickable{border-radius:var(--r-sm);margin:0 -6px;padding:0 6px}.prop.clickable:hover{background:var(--fill-hover)}.prop-label{color:var(--ink-3);font-size:var(--fs-meta)}.prop-value{align-items:center;gap:var(--s2);min-width:0;display:inline-flex}.metrics{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.metric{flex-direction:column;gap:2px;min-width:0;padding:14px 20px;display:flex}.metric+.metric{border-left:1px solid var(--line)}.metric-value{align-items:baseline;gap:4px;display:flex}.metric-unit{color:var(--ink-3);font-size:var(--fs-ui)}.metric-foot{align-items:center;gap:var(--s2);color:var(--ink-3);min-height:20px;display:flex}.mbar{background:var(--line);border-radius:2px;width:100%;max-width:240px;height:4px;margin:7px 0;display:block;position:relative}.mbar-fill{background:var(--ink-2);border-radius:2px;position:absolute;top:0;bottom:0;left:0}.mbar.danger .mbar-fill{background:var(--danger)}.mbar-tick{background:var(--ink);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.segbar{flex-shrink:0;gap:2px;width:64px;display:inline-flex}.segbar-wide{width:120px}.segbar i{background:var(--line-strong);border-radius:1px;flex:1;height:4px}.segbar i.on{background:var(--ink-2)}.banner{align-items:center;gap:var(--s3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);min-height:44px;padding:6px 8px 6px 14px;display:flex}.banner-icon{color:var(--ink-2);display:inline-flex}.banner-danger{border-color:var(--danger-line);background:var(--danger-subtle)}.banner-danger .banner-icon{color:var(--danger)}.banner-actions{gap:var(--s2);display:flex}.empty{justify-content:center;align-items:center;gap:var(--s3);padding:var(--s12) var(--s6);text-align:center;flex-direction:column;display:flex}.empty-icon{color:var(--ink-3);display:inline-flex}.empty-icon .lucide{width:20px;height:20px}.table-wrap{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:auto}.table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.table th{z-index:2;height:var(--h-thead);background:var(--subtle);border-bottom:1px solid var(--line);font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-3);text-align:left;white-space:nowrap;padding:0 10px;font-weight:500;position:sticky;top:0}.table td{height:var(--h-row);border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;padding:0 10px;overflow:hidden}.table tr:last-child td,.table td.last-row{border-bottom:0}.table .r{text-align:right}.table td.group{vertical-align:top;border-right:1px solid var(--line);background:var(--surface);padding-top:10px}.table tbody tr:hover td:not(.group){background:var(--fill-hover)}.table th.r .th-in{justify-content:flex-end}.th-in{align-items:center;gap:6px;width:100%;display:inline-flex}.grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.grid th{z-index:2;height:var(--h-thead);background:var(--subtle);border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:var(--fs-meta);color:var(--ink-3);text-align:left;white-space:nowrap;padding:0 8px;font-weight:500;position:sticky;top:0}.grid th:last-child,.grid td:last-child{border-right:0}.grid td{height:var(--h-grid-row);border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:middle;background:var(--surface);padding:0;position:relative}.grid tr.last td,.grid td.last-row{border-bottom:0}.grid th.r,.grid td.r,.grid td.r input{text-align:right}.grid th.r .th-in{justify-content:flex-end}.grid td.ro{background:var(--subtle);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;padding:0 8px;overflow:hidden}.grid td.group{vertical-align:top;background:var(--surface);padding:8px}.grid td.act{text-align:center;padding:0 2px}.grid .cell-input{width:100%;height:100%;min-height:calc(var(--h-grid-row) - 1px);font-size:var(--fs-ui);background:0 0;border:0;outline:none;padding:0 8px}.grid td:focus-within{z-index:1}.grid td:focus-within:after{content:"";border:2px solid var(--ink);pointer-events:none;border-radius:2px;position:absolute;inset:-1px}.grid td.is-error:after{content:"";border:1px solid var(--danger);pointer-events:none;position:absolute;inset:-1px}.grid td.is-error:focus-within:after{border:2px solid var(--danger)}.grid .picker-trigger:focus-visible,.grid .select:focus-visible{outline:none}.grid td .err-dot{border-radius:var(--r-full);background:var(--danger);width:6px;height:6px;position:absolute;top:3px;right:3px}.grid-add{width:100%;height:var(--h-grid-row);color:var(--ink-3);align-items:center;gap:6px;padding:0 8px;display:flex}.grid-add:hover{color:var(--ink);background:var(--fill-hover)}.inline-text{min-width:0;max-width:calc(100% + 10px);margin-left:-10px;display:inline-grid}.inline-text>*{min-width:0;font:inherit;letter-spacing:inherit;white-space:pre;border:1px solid #0000;grid-area:1/1;padding:0 10px}.inline-text-mirror{visibility:hidden;overflow:hidden}.inline-text input{border-radius:var(--r-sm);width:100%;height:40px;color:inherit;text-overflow:ellipsis;background:0 0}.inline-text input:hover{background:var(--fill-hover)}.inline-text input:focus{background:var(--surface);border-color:var(--line-focus);box-shadow:var(--ring);outline:none}.dialog-body.org-body{padding:0}.org-picker{grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:min(520px,100vh - 240px);display:grid}.org-pane{min-height:0;padding:var(--s4) var(--s3) var(--s3) var(--s4);flex-direction:column;display:flex}.org-chosen{border-left:1px solid var(--line);background:var(--subtle)}.org-search{flex-shrink:0}.org-search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.org-crumbs{padding:var(--s3) 0 var(--s2);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.org-crumb{color:var(--ink-2)}.org-crumb:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.org-list{min-height:0;margin-right:calc(-1 * var(--s3));padding-right:var(--s3);flex:1;overflow:auto}.org-search+.org-list{margin-top:var(--s2)}.org-row{align-items:center;gap:var(--s2);border-radius:var(--r-sm);display:flex}.org-row:hover{background:var(--fill-hover)}.org-check{align-items:center;gap:var(--s2);min-width:0;height:36px;padding:0 var(--s2);text-align:left;flex:1;display:flex}.org-row.disabled .org-check{cursor:default}.org-row.disabled .checkbox-box{opacity:.4}.org-label{min-width:0;overflow:hidden}.org-meta{white-space:nowrap;margin-left:auto}.org-chosen-head{height:32px;margin-bottom:var(--s2);align-items:center;display:flex}.org-chosen-row{align-items:center;gap:var(--s2);height:36px;padding:0 0 0 var(--s2);display:flex}.tone-mark{--c:var(--ink-2)}.tone-danger{--c:var(--danger)}.tone-success{--c:var(--success)}.tone-violet{--c:var(--violet)}.tone-warning{--c:var(--warning-icon)}.tone-info{--c:var(--info)}.tone-ink{--c:var(--ink)}.tone-ink-3{--c:var(--ink-3)}.tone-ink-4{--c:var(--ink-4)}.chart{gap:var(--s2);flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex}.chart-legend{justify-content:flex-end;gap:var(--s1) var(--s3);flex-wrap:wrap;display:flex}.legend-item{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.legend-swatch{background:var(--c,var(--ink-2));border-radius:2px;width:8px;height:8px}.legend-swatch.pending{background:color-mix(in srgb, var(--c,var(--ink-2)) 10%, transparent);border:1px dashed var(--c,var(--ink-2))}.legend-ref{border-top:1px dashed var(--ink-3);width:14px}.chart-plot{flex:1;min-height:64px;padding-top:20px}.chart.has-ticks .chart-plot,.chart.has-ticks .chart-xaxis{padding-left:28px}.chart.has-refs .chart-plot,.chart.has-refs .chart-xaxis{padding-right:84px}.chart-area{border-bottom:1px solid var(--line-strong);height:100%;position:relative}.chart-gridline,.chart-ref{border-top:1px solid var(--line);pointer-events:none;height:0;position:absolute;left:0;right:0}.chart-ref{border-top:1px dashed var(--ink-3)}.chart-ytick,.chart-reflabel{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-3);white-space:nowrap;position:absolute;top:0;transform:translateY(-50%)}.chart-ytick{right:calc(100% + 8px)}.chart-reflabel{left:calc(100% + 8px)}.chart-reflabel[tabindex]{pointer-events:auto}.chart-groups{display:flex;position:absolute;inset:0}.chart-group,.chart-xgroup{justify-content:center;gap:var(--s2);flex:1 1 0;min-width:0;display:flex}.chart-group{align-items:flex-end;height:100%}.chart-col{cursor:default;flex-direction:column-reverse;align-items:center;gap:2px;width:24px;height:100%;display:flex;position:relative}.chart-col.clickable{cursor:pointer}.chart-col:focus-visible,.chart-segment-button:focus-visible{outline:2px solid var(--line-focus);outline-offset:2px;border-radius:var(--r-xs)}.chart-seg{background:var(--c);width:16px;transition:opacity var(--dur) var(--ease);flex:none;display:block}.chart-col>.chart-seg:last-of-type,.chart-segment-button:last-of-type .chart-seg{border-radius:4px 4px 0 0}.chart-seg.pending{background:color-mix(in srgb, var(--c) 10%, transparent);border:1px dashed var(--c);border-bottom:0}.chart-col.clickable:hover .chart-seg{opacity:.8}.chart-segment-button{cursor:pointer;background:0 0;flex:none;justify-content:center;width:24px;padding:0;display:flex}.chart-segment-button .chart-seg{height:100%}.chart-segment-button:hover .chart-seg{opacity:.8}.chart-caption{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-2);white-space:nowrap}.chart-xaxis{margin-top:-4px;display:flex}.chart-xgroup{align-items:center;gap:var(--s1);flex-direction:column}.chart-feet{gap:var(--s2);display:flex}.chart-foot{justify-content:center;width:24px;display:inline-flex}.chart-xlabel{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-3);white-space:nowrap}.chart-xlabel.current{color:var(--ink);font-weight:500}.trajectory{width:100%;min-width:0}.trajectory.fill{flex:1;min-height:96px;overflow:hidden}.trajectory svg{display:block;overflow:visible}.tj-axis{stroke:var(--line-strong);stroke-width:1px}.tj-ref{stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:3 3}.tj-deadline{stroke:var(--line-strong);stroke-width:1px}.tj-label{font-size:var(--fs-meta);fill:var(--ink-3)}.tj-value{font-size:var(--fs-meta);fill:var(--ink-2)}.tj-line{fill:none;stroke:var(--ink-2);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.tj-dot{fill:var(--ink-2);stroke:var(--surface);stroke-width:2px}.tj-dot.danger{fill:var(--danger)}.tj-hit{fill:#0000}.gl{min-width:0;position:relative}.gl.is-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}.gl:not(.gl-stacked)>.gl-item{transition:transform .16s var(--ease), width .16s var(--ease), height .16s var(--ease);display:flex;position:absolute;top:0;left:0}.gl:not(.gl-stacked)>.gl-item.is-active{z-index:3;transition:none}.gl>.gl-item.is-active .wcard{box-shadow:var(--sh-popover)}.gl-stacked{gap:var(--s3);flex-direction:column;display:flex}.gl-stacked>.gl-item{display:flex}.gl-placeholder{z-index:1;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--fill-hover);transition:transform .12s var(--ease), width .12s var(--ease), height .12s var(--ease);position:absolute;top:0;left:0}.gl-resize{cursor:nwse-resize;opacity:0;width:14px;height:14px;transition:opacity var(--dur) var(--ease);position:absolute;bottom:2px;right:2px}.gl-resize:after{content:"";border-right:2px solid var(--ink-4);border-bottom:2px solid var(--ink-4);border-bottom-right-radius:2px;width:6px;height:6px;position:absolute;bottom:3px;right:3px}.gl-item:hover .gl-resize,.gl-item.is-active .gl-resize{opacity:1}.gl-stacked .gl-resize{display:none}@media (prefers-reduced-motion:reduce){.gl:not(.gl-stacked)>.gl-item,.gl-placeholder{transition:none}}.wcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.wcard-head{align-items:center;gap:var(--s2);height:44px;padding:0 var(--s2) 0 var(--s4);border-bottom:1px solid var(--line);flex:none;display:flex}.gl:not(.gl-stacked) .wcard-head[data-grid-handle]{cursor:grab}.gl.is-dragging .wcard-head[data-grid-handle]{cursor:grabbing}.wcard-title{font-size:var(--fs-ui);line-height:var(--lh-ui);flex:none;max-width:60%;font-weight:500}.wcard-caption{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-3);min-width:0}.wcard-body{min-width:0;min-height:0;padding:var(--s4);flex-direction:column;flex:1;display:flex;overflow:auto;container-type:inline-size}.wrow{align-items:center;gap:var(--s2);width:calc(100% + var(--s4));height:36px;margin:0 calc(var(--s2) * -1);padding:0 var(--s2);border-radius:var(--r-sm);text-align:left;color:var(--ink);display:flex}.wrow:hover{background:var(--fill-hover)}.wrow-icon{flex:none;display:inline-flex}.wrow-label{flex:1;min-width:0}.wrow-trail{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-2);flex:none;align-items:center;gap:6px;display:inline-flex}.wrow.is-danger .wrow-trail{color:var(--danger)}.wcard-error{padding:var(--s6) 0;text-align:center}.wcard .metric{padding:var(--s3) var(--s5)}.wcard .metrics{margin:calc(var(--s4) * -1);border:0;border-radius:0}.form-row{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.plan-head{align-items:center;gap:var(--s2);min-width:0;display:flex}.plan-rail{border:1px solid var(--line);border-radius:var(--r-sm);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.plan-rail-cell{height:32px;padding:0 var(--s2);font-size:var(--fs-meta);color:var(--ink-3);white-space:nowrap;justify-content:center;align-items:center;gap:6px;display:inline-flex;overflow:hidden}.plan-rail-cell+.plan-rail-cell{border-left:1px solid var(--line)}.plan-rail-cell.on{background:var(--subtle);color:var(--ink);font-weight:500}.plan-rail-cell.on.is-danger{color:var(--danger)}.plan-props{align-items:center;gap:var(--s1) var(--s5);flex-wrap:wrap;display:flex}.plan-note{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.plan-table tr.clickable{cursor:pointer}col.w-plan-cat{width:64px}.dialog-body.wdialog{gap:var(--s5);background:var(--canvas);grid-template-columns:300px minmax(0,1fr);align-items:start;display:grid}.wdialog-list{flex-direction:column;gap:2px;display:flex}.wdialog-list-head{padding:0 var(--s2) var(--s1)}.wcat{padding:var(--s2);border-radius:var(--r-sm);text-align:left;flex-direction:column;gap:2px;display:flex}.wcat:hover{background:var(--fill-hover)}.wcat.on{background:var(--surface);box-shadow:var(--sh-xs)}.wcat-head{align-items:center;gap:var(--s2);justify-content:space-between;display:flex}.wcat-summary{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.wdialog-form{min-width:0}.wpreview{min-width:0;max-width:100%;display:flex}.dialog-body.wshared{background:var(--canvas)}.code-block{padding:var(--s3);border-radius:var(--r-sm);background:var(--subtle);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-meta);line-height:var(--lh-meta);white-space:pre-wrap;word-break:break-all;color:var(--ink);margin:0}@container (width<=360px){.wrow-trail-text{display:none}}.wcard .metric.clickable{text-align:left;border-radius:0}.metric.clickable:hover{background:var(--fill-hover)}@container (width<=480px){.wcard .metrics{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.wcard .metric+.metric{border-left:0}.wcard .metric:nth-child(2n){border-left:1px solid var(--line)}.wcard .metric:nth-child(n+3){border-top:1px solid var(--line)}}.card-line{margin-bottom:var(--s2);flex:none}@container (width<=480px){.chart-feet{display:none}}.chart-number{flex:1;justify-content:center}.dialog-head-actions{align-items:center;gap:var(--s2);display:flex}.dialog-body.plist{gap:var(--s4);flex-direction:column;display:flex}.plist-table tr.clickable{cursor:pointer}.plist-name{align-items:center;gap:var(--s2);min-width:0;display:flex}.plist-achieved{justify-content:flex-end}col.w-plist-status{width:120px}col.w-plist-owner{width:112px}col.w-plist-time{width:196px}col.w-plist-num{width:104px}.shortcuts{align-items:center;gap:var(--s1) var(--s4);font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-2);flex-wrap:wrap;display:flex}.shortcut{align-items:center;gap:var(--s1);display:inline-flex}.kbd{min-width:20px;height:20px;padding:0 var(--s1);border:1px solid var(--line);border-radius:var(--r-xs);background:var(--subtle);font-family:inherit;font-size:var(--fs-meta);color:var(--ink);justify-content:center;align-items:center;font-weight:500;display:inline-flex}.page.app-page{flex-direction:column;height:100%;display:flex}.app-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.pmatrix{gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(148px,1fr));display:grid}.pmini{gap:var(--s2);min-width:0;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);text-align:left;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex-direction:column;display:flex}.pmini.clickable{cursor:pointer}.pmini.clickable:hover{border-color:var(--line-strong);box-shadow:var(--sh-sm)}.pmini-top{align-items:center;gap:var(--s2);min-width:0;display:flex}.pmini-status{align-items:center;gap:var(--s1);font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--ink-2);white-space:nowrap;display:inline-flex}.pmini-name{-webkit-line-clamp:2;min-height:calc(var(--lh-ui) * 2);-webkit-box-orient:vertical;font-weight:500;display:-webkit-box;overflow:hidden}.pmini-foot{justify-content:space-between;align-items:baseline;display:flex}.pmini .mbar{max-width:none;margin:0}.stage{min-height:0;padding-top:var(--s4);flex-direction:column;flex:1;display:flex}.stage-top{align-items:center;gap:var(--s3);height:28px;padding:0 var(--s6);flex:none;display:flex}.stage-path{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.stage-crumb{color:var(--ink-2);white-space:nowrap}.stage-crumb:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.stage-level{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex}.stage-parent{height:56px;margin-top:var(--s2);flex:none;justify-content:center;display:flex}.peek-parent{height:100%;padding:0 var(--s5) var(--s3);border:1px solid var(--line);border-radius:0 0 var(--r-md) var(--r-md);background:var(--surface);opacity:.7;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);border-top:0;align-items:flex-end;display:flex}.peek-parent:hover{opacity:1;transform:translateY(2px)}.peek-parent-in{align-items:center;gap:var(--s2);min-width:0;display:flex}.stage-row{margin:var(--s3) 0;flex:none;overflow:hidden}.stage-track{height:100%;transition:transform .28s var(--ease);align-items:center;gap:24px;display:flex}.stage-card{gap:var(--s3);min-height:320px;padding:var(--s5);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);text-align:left;flex-direction:column;flex:none;display:flex;overflow:auto}.stage-card.is-side{border-color:var(--line);opacity:.5;cursor:pointer;transition:opacity .28s var(--ease), transform .28s var(--ease);overflow:hidden;transform:scale(.94)}.stage-card.is-side:hover{opacity:.75}.stage-card.is-side>*{pointer-events:none}.stage-children{flex:none;height:84px;display:flex;overflow:hidden}.stage-children-row{gap:var(--s3);padding:0 var(--s6);margin:0 auto;display:flex;overflow:auto hidden}.peek-child{width:200px;height:120px;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;background:var(--surface);text-align:left;transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);border-bottom:0;flex-direction:column;flex:none;gap:6px;display:flex}.peek-child:hover{border-color:var(--line-strong);transform:translateY(-4px)}.peek-child.is-last{border-color:var(--line-focus)}.peek-child-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500;display:-webkit-box;overflow:hidden}.stage-none{padding-top:var(--s4);color:var(--ink-4);margin:0 auto}@keyframes stage-in-down{0%{opacity:0;transform:translateY(48px)}}@keyframes stage-in-up{0%{opacity:0;transform:translateY(-48px)}}.stage-level.enter-down{animation:stage-in-down .24s var(--ease)}.stage-level.enter-up{animation:stage-in-up .24s var(--ease)}@keyframes nudge-x-pos{50%{transform:translate(10px)}}@keyframes nudge-x-neg{50%{transform:translate(-10px)}}@keyframes nudge-y-pos{50%{transform:translateY(8px)}}@keyframes nudge-y-neg{50%{transform:translateY(-8px)}}.stage-row.nudge-left{animation:nudge-x-pos .16s var(--ease)}.stage-row.nudge-right{animation:nudge-x-neg .16s var(--ease)}.stage-row.nudge-up{animation:nudge-y-pos .16s var(--ease)}.stage-row.nudge-down{animation:nudge-y-neg .16s var(--ease)}@keyframes stage-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.stage-track,.stage-card.is-side{transition:none}.stage-level[class*=enter-]{animation-name:stage-fade}.stage-row[class*=nudge-]{animation:none}}.c-1{color:var(--ink)}.gap-1{gap:var(--s1)}.gap-2{gap:var(--s2)}.gap-3{gap:var(--s3)}.gap-5{gap:var(--s5)}.inline-flex{display:inline-flex}.block{display:block}.pre{white-space:pre-wrap}.text-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.text-link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.hover-value{cursor:default;border-bottom:1px dashed var(--line-strong)}.cell-icon{border-radius:var(--r-xs);width:20px;height:20px;color:var(--ink-3);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cell-icon:hover{background:var(--fill-hover);color:var(--ink)}.dot-sep{border-radius:var(--r-full);background:var(--ink-4);flex-shrink:0;width:3px;height:3px}.btn.is-on{color:var(--ink);background:var(--fill-active)}.app{grid-template-columns:var(--w-sidebar) minmax(0, 1fr);height:100vh;display:grid}.app.collapsed{grid-template-columns:var(--w-sidebar-collapsed) minmax(0, 1fr)}.main{background:var(--canvas);min-width:0;overflow:auto}.sidebar{background:var(--sidebar);min-height:0;padding:0 var(--s2);flex-direction:column;display:flex}.sb-top{height:var(--h-header);padding:0 0 0 var(--s2);flex-shrink:0;align-items:center;display:flex}.sb-logo{color:var(--ink);padding:4px 0;display:inline-flex}.sb-mark{width:var(--h-md);height:var(--h-md);border-radius:var(--r-sm);color:var(--ink-2);justify-content:center;align-items:center;display:flex;position:relative}.sb-mark:hover{background:var(--fill-hover)}.sb-mark-toggle,.sb-mark:hover .sb-mark-logo,.sb-mark:focus-visible .sb-mark-logo{display:none}.sb-mark:hover .sb-mark-toggle,.sb-mark:focus-visible .sb-mark-toggle{display:inline-flex}.collapsed .sb-top{justify-content:center;padding:0}.sb-nav,.sb-section{flex-direction:column;gap:1px;display:flex}.sb-item{align-items:center;gap:var(--s2);width:100%;height:var(--h-nav);padding:0 var(--s2);border-radius:var(--r-sm);font-size:var(--fs-body);color:var(--ink-2);text-align:left;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);line-height:20px;display:flex}.sb-item:hover{background:var(--fill-hover);color:var(--ink)}.sb-item.on{background:var(--canvas);color:var(--ink);box-shadow:var(--sh-xs)}.sb-nav .sb-item{color:var(--ink);font-weight:500}.sb-item.muted:not(.on){color:var(--ink-3)}.sb-icon{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.sb-label{flex:1}.sb-scroll{min-height:0;margin:0 calc(-1 * var(--s2));padding:0 var(--s2) var(--s3);flex:1;overflow-y:auto}.sb-section{margin-top:var(--s4)}.sb-section-head{height:24px;padding:0 var(--s2);border-radius:var(--r-sm);color:var(--ink-3);font-size:var(--fs-meta);line-height:var(--lh-meta);text-align:left;align-items:center;gap:4px;font-weight:400;display:flex}.sb-section-head:hover{color:var(--ink-2)}.sb-caret{color:var(--ink-4);transition:transform var(--dur) var(--ease);opacity:0}.sb-section-head:hover .sb-caret,.sb-section-head:focus-visible .sb-caret,.sb-section-head[aria-expanded=false] .sb-caret{opacity:1}.sb-caret.open{transform:rotate(90deg)}.sb-divider{height:1px;margin:0 var(--s2) var(--s1);background:var(--line-strong)}.collapsed .sb-section{margin-top:var(--s2)}.sb-foot{padding:var(--s2) 0;flex-shrink:0}.collapsed .sb-item{justify-content:center;height:32px;padding:0}.collapsed .sb-nav .sb-icon,.collapsed .sb-nav .sb-icon .lucide{width:18px;height:18px}.page{min-height:100%}.page-body{padding:var(--s6) var(--s6) var(--s12)}.page-center{justify-content:center;align-items:center;min-height:70vh;display:flex}.crumb .lucide{color:var(--ink-3)}.crumb-link:hover{color:var(--ink)}.group+.group{margin-top:var(--s6)}.group-head{align-items:center;gap:var(--s2);height:28px;margin-bottom:var(--s2);color:var(--ink);display:inline-flex;position:relative}.group-caret{color:var(--ink-4);opacity:0;transition:transform var(--dur) var(--ease)}.group-head:hover .group-caret,.group-head:focus-visible .group-caret,.group-head[aria-expanded=false] .group-caret{opacity:1}.group-caret.open{transform:rotate(90deg)}.cards{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.pcard{gap:var(--s3);padding:var(--s4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex-direction:column;min-width:0;display:flex}.pcard:hover{border-color:var(--line-strong);box-shadow:var(--sh-sm)}.pcard-head{align-items:center;gap:var(--s2);min-width:0;display:flex}.pcard-name{font-size:var(--fs-body);line-height:var(--lh-body);flex:1;font-weight:600}.pcard-flags{flex-shrink:0;gap:6px;display:inline-flex}.pcard-meta{align-items:center;gap:var(--s2);min-width:0;display:flex}.pcard-foot{align-items:center;gap:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line);display:flex}.pcard-progress{gap:var(--s2)}.status{color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:inline-flex}.detail{gap:var(--s5);flex-direction:column;display:flex}.d-hero{align-items:center;gap:var(--s3);min-width:0;display:flex}.d-hero h1{min-width:0}.d-badges{margin-left:var(--s1);flex-shrink:0;align-items:center;gap:6px;display:flex}.d-badges .status{border-radius:var(--r-xs);background:var(--subtle);height:20px;box-shadow:inset 0 0 0 1px var(--line);font-size:var(--fs-meta);padding:0 6px}.d-badges .status svg{width:12px;height:12px}.detail>.prop-row{margin-top:calc(-1 * var(--s2))}.banners{gap:var(--s2);flex-direction:column;display:flex}.judgment{gap:var(--s3);padding:var(--s4) var(--s5);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);flex-direction:column;display:flex}.judgment-head{align-items:center;gap:var(--s2);display:flex}.judgment-cond{gap:var(--s2);align-items:baseline;display:flex}.note-block{padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.note-head{height:20px;margin-bottom:var(--s1);align-items:center;display:flex}.note-head .btn{margin-right:-6px}.note-block.is-editing{gap:var(--s2);background:0 0;border:none;flex-direction:column;padding:0;display:flex}.note-block.is-editing .note-head{margin-bottom:0}.note-actions{align-items:center;gap:var(--s2);display:flex}.d-tabs{margin-bottom:calc(-1 * var(--s2))}col.w-cat{width:52px}col.w-cat-wide{width:84px}col.w-cat-avg{width:64px}col.w-cat-avg-wide{width:108px}col.w-owner{width:80px}col.w-tier{width:86px}col.w-achieved{width:90px}col.w-score{width:96px}col.w-depts{width:104px}col.w-pct{width:72px}col.w-launch{width:84px}col.w-note{width:100px}col.w-note-wide{width:22%}col.w-quant{width:88px}col.w-tier-edit{width:120px}col.w-owner-edit{width:128px}col.w-depts-edit{width:168px}col.w-act{width:36px}col.w-achieved-edit{width:120px}col.w-dept-ro{width:104px}col.w-pct-edit{width:96px}col.w-note-edit{width:18%}.table.targets th,.table.targets td{padding:0 6px}.table.targets th:first-child,.table.targets td.group{padding-left:12px}.table.targets.wide{min-width:1124px}.table.targets td.group{padding-top:10px}.table.targets.wide th:nth-child(-n+2),.table.targets.wide td.group,.table.targets.wide td.tcol{z-index:1;background:var(--surface);position:sticky}.table.targets.wide th:nth-child(-n+2){z-index:3;background:var(--subtle)}.table.targets.wide th:first-child,.table.targets.wide td.group{left:0}.table.targets.wide th:nth-child(2),.table.targets.wide td.tcol{left:64px}.grid.targets-edit,.grid.progress-edit{min-width:1080px}.cat-key{color:var(--ink);font-weight:600}.cat-cell{justify-content:space-between;align-items:baseline;gap:4px;display:flex}.cat-avg.c-danger{color:var(--danger)}.cat-avg{font-size:var(--fs-meta);color:var(--ink-3)}.table.targets tr.cat-end td{border-bottom-color:var(--line-strong)}.table.targets tbody tr:last-child td{border-bottom:0}.table.targets td.group{border-bottom-color:var(--line-strong)}.table.targets tbody tr:last-child td.group,.table.targets td.group:only-child{border-bottom:0}.target-cell{align-items:center;gap:4px;min-width:0;display:flex}.dir-mark{border-radius:var(--r-xs);width:16px;height:16px;color:var(--ink-3);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}td.tier{position:relative}.tier-fill{height:24px;width:calc(var(--p) * 100%);pointer-events:none;background:#3c321e17;margin-top:-12px;position:absolute;top:50%;left:0}.tier-fill.start{border-top-left-radius:4px;border-bottom-left-radius:4px}.tier-fill.end{border-top-right-radius:4px;border-bottom-right-radius:4px}col.w-tier-ro{width:96px}.tier-v{position:relative}.score-num{font-weight:600}.kv{flex-direction:column;gap:4px;min-width:160px;display:flex}.kv-row{justify-content:space-between;gap:var(--s4);display:flex}.kv-total{border-top:1px solid var(--line);padding-top:4px}.note-full{white-space:pre-wrap}.grid td.group,.grid tr.add-row td{border-bottom:1px solid var(--line-strong)}.grid tbody tr:last-child td{border-bottom:0}.grid td.add-cell{padding:0}.cell-with-mark{align-items:center;height:100%;display:flex}.cell-mark{color:var(--ink-3);margin-right:6px;display:inline-flex}.cell-affix{align-items:center;height:100%;display:flex}.cell-affix .cell-input{flex:1;min-width:0}.cell-suffix{color:var(--ink-3);padding-right:8px}.grid tr.target-start td{border-top:0}.desc-pop{width:480px;padding:var(--s3)}.desc-pop-body{gap:var(--s2);flex-direction:column;display:flex}.rt{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface)}.rt:focus-within{border-color:var(--line-focus);box-shadow:var(--ring)}.rt-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:2px;padding:4px;display:flex}.rt-sep{background:var(--line);width:1px;height:16px;margin:0 4px}.rt-link{align-items:center;gap:4px;margin-left:4px;display:inline-flex}.rt-link .input{width:260px}.rt-body .tiptap{min-height:72px;font-size:var(--fs-body);line-height:var(--lh-body);outline:none;padding:8px 12px}.tiptap p{margin:0}.tiptap ul,.tiptap ol{margin:2px 0;padding-left:20px}.tiptap a{color:var(--link);text-underline-offset:2px;text-decoration:underline}.tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:var(--ink-4);pointer-events:none}.rt-view .tiptap{font-size:var(--fs-body);line-height:var(--lh-body);outline:none}.history{gap:var(--s4);grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:start;display:grid}.history-list{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.history-head{height:var(--h-thead);padding:0 var(--s3) 0 var(--s4);background:var(--subtle);border-bottom:1px solid var(--line);align-items:center;display:flex}.h-row{align-items:center;gap:var(--s3);min-height:56px;padding:0 var(--s3) 0 0;cursor:pointer;display:flex;position:relative}.h-row:hover{background:var(--fill-hover)}.h-row.on{background:var(--fill-active)}.h-gutter{flex-shrink:0;align-self:stretch;width:52px;position:relative}.h-row.two-lanes .h-gutter{width:76px}.lane{width:0;position:absolute;top:0;bottom:0}.lane.main{border-left:2px solid var(--line-strong);left:27px}.lane.draft{border-left:2px dashed var(--line-strong);left:55px}.lane.first{top:50%}.lane.last{bottom:50%}.merge{border-top:2px dashed var(--line-strong);width:28px;position:absolute;top:50%;left:28px}.h-node{border-radius:var(--r-full);background:var(--surface);width:24px;height:24px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-strong);justify-content:center;align-items:center;margin-top:-12px;display:inline-flex;position:absolute;top:50%}.h-node.on-main{left:16px}.h-node.on-draft{color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-strong);background:var(--canvas);left:44px}.h-node.strong{background:var(--ink);color:#fff;box-shadow:none}.h-node.danger{color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger-line);background:var(--danger-subtle)}.h-node.static{margin:0;position:static}.h-body{min-width:0;padding:var(--s2) 0;flex:1}.h-title{font-weight:500}.h-row.op{min-height:36px}.h-dot{border-radius:var(--r-full);background:var(--ink-4);width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:25px}.h-op{align-items:baseline;gap:var(--s2);padding:0;display:flex}.h-snap{opacity:0}.h-row:hover .h-snap,.h-row.on .h-snap,.h-snap:focus-visible{opacity:1}.history-detail{top:calc(var(--h-header) + var(--s4));gap:var(--s3);padding:var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);max-height:calc(100vh - var(--h-header) - var(--s8));flex-direction:column;display:flex;position:sticky;overflow:auto}.h-detail-head{gap:var(--s3);align-items:center}.h-nodiff{padding:var(--s2) 0}.diff{border-top:1px solid var(--line);flex-direction:column;display:flex}.diff-row{gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);display:grid}.diff-row:last-child{border-bottom:0}.diff-label{padding-top:1px}.diff-value{word-break:break-word;min-width:0}.diff-value del{color:var(--ink-3);-webkit-text-decoration-color:var(--ink-4);text-decoration-color:var(--ink-4)}.diff-arrow{vertical-align:-1px;margin:0 6px;display:inline-block}.draft-diff{gap:var(--s3);flex-direction:column;max-width:880px;display:flex}.table-wrap.pad{padding:0 var(--s4)}.table-wrap.pad .diff{border-top:0}.snapshot-icon{font-size:24px;line-height:1}.sheet{gap:var(--s6);flex-direction:column;max-width:1360px;margin:0 auto;display:flex}.sheet-identity{align-items:flex-start;gap:var(--s3);display:flex}.title-input{border-radius:var(--r-sm);width:100%;height:40px;font-size:var(--fs-page-title);line-height:var(--lh-page-title);letter-spacing:-.015em;background:0 0;border:1px solid #0000;margin-left:-10px;padding:0 10px;font-weight:600}.title-input:hover{background:var(--fill-hover)}.title-input:focus{background:var(--surface);border-color:var(--line-focus);box-shadow:var(--ring)}.title-input.is-error{border-color:var(--danger)}.sheet-fields{gap:var(--s4) var(--s5);grid-template-columns:repeat(5,minmax(0,1fr));max-width:1200px;display:grid}.static-field{height:var(--h-md);border-radius:var(--r-sm);background:var(--subtle);color:var(--ink-2);align-items:center;min-width:0;padding:0 10px;display:flex}.sheet-note{max-width:960px}.sheet-section{gap:var(--s3);flex-direction:column;display:flex}.section-head{align-items:center;gap:var(--s2);min-height:28px;display:flex}.judge-fields{gap:var(--s4) var(--s6);grid-template-columns:240px minmax(0,1fr);align-items:start;max-width:1200px;display:grid}.judge-outcome{grid-row:span 2}.judge-wide{grid-column:1/-1;max-width:720px}.choice-group{gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.choice{align-items:flex-start;gap:var(--s2);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);text-align:left;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);padding:10px 12px;display:flex}.choice:hover{background:var(--subtle)}.choice.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.choice-radio{border-radius:var(--r-full);width:14px;height:14px;box-shadow:inset 0 0 0 1px var(--line-strong);background:var(--surface);flex-shrink:0;margin-top:3px}.choice.on .choice-radio{box-shadow:inset 0 0 0 4px var(--ink)}.member-list{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);max-width:720px}.member-adder{padding:var(--s2);border-bottom:1px solid var(--line)}.change-dot{border-radius:var(--r-full);background:var(--ink-3);flex-shrink:0;width:6px;height:6px;display:inline-block}.member-row.is-removed .person{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--ink-4);text-decoration-color:var(--ink-4)}.member-row.is-removed .avatar{opacity:.5}.member-row{align-items:center;gap:var(--s3);min-height:48px;padding:0 var(--s2) 0 var(--s3);border-bottom:1px solid var(--line);display:flex}.member-row:last-child{border-bottom:0}.member-hover-act{opacity:0;transition:opacity var(--dur) var(--ease)}.member-row:hover .member-hover-act,.member-row:focus-within .member-hover-act{opacity:1}.member-role{justify-content:flex-end;width:104px;display:flex}.member-role .select{width:auto}.role-static{padding:0 8px}.member-act{justify-content:center;width:28px;display:flex}.dialog .member-list{max-width:none}.w-days{width:140px}.confirm-field{margin-top:var(--s2)}.account{align-items:flex-start;gap:var(--s5);display:flex}.avatar-edit{border-radius:var(--r-full);flex-shrink:0;position:relative}.avatar-mask{border-radius:var(--r-full);color:#fff;opacity:0;transition:opacity var(--dur) var(--ease);background:#0006;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.avatar-edit:hover .avatar-mask,.avatar-edit:focus-visible .avatar-mask{opacity:1}.login{background:var(--canvas);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{align-items:center;gap:var(--s6);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);width:360px;box-shadow:var(--sh-sm);color:var(--ink);flex-direction:column;padding:40px 32px 32px;display:flex}.login-text{align-items:center;gap:var(--s1)}.demo-fab{z-index:40;border-radius:var(--r-full);background:var(--surface);border:1px dashed var(--line-strong);height:28px;color:var(--ink-3);font-size:var(--fs-meta);box-shadow:var(--sh-xs);align-items:center;gap:6px;padding:0 10px;display:inline-flex;position:fixed;bottom:16px;right:16px}.demo-fab:hover{color:var(--ink)}.demo-count{border-radius:var(--r-full);background:var(--ink);color:#fff;min-width:16px;height:16px;font-size:var(--fs-micro);justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.demo-panel{z-index:40;gap:var(--s3);width:320px;max-height:calc(100vh - 80px);padding:var(--s4);border-radius:var(--r-lg);background:var(--surface);border:1px dashed var(--line-strong);box-shadow:var(--sh-popover);flex-direction:column;display:flex;position:fixed;bottom:52px;right:16px;overflow:auto}.demo-sec{gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line);flex-direction:column;display:flex}.demo-k{font-size:var(--fs-meta);color:var(--ink-2);font-weight:500}.inbox{z-index:40;border-radius:var(--r-lg);background:var(--subtle);border:1px solid var(--line);width:380px;box-shadow:var(--sh-popover);flex-direction:column;display:flex;position:fixed;top:16px;bottom:52px;right:16px;overflow:hidden}.inbox-head{align-items:center;gap:var(--s2);height:48px;padding:0 var(--s2) 0 var(--s4);background:var(--surface);border-bottom:1px solid var(--line);display:flex}.inbox-list{padding:var(--s3);gap:var(--s2);flex-direction:column;flex:1;display:flex;overflow:auto}.fcard{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);overflow:hidden}.fcard.unread{border-color:var(--ink-3)}.fcard-title{align-items:center;gap:var(--s2);border-bottom:1px solid var(--line);padding:10px 12px;font-weight:600;display:flex}.fcard-body{color:var(--ink-2);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.fcard-foot{padding:0 12px 12px}.grid .picker-caret,.grid .select-caret,.grid .date-btn{opacity:0;transition:opacity var(--dur) var(--ease)}.grid td:hover .picker-caret,.grid td:hover .select-caret,.grid td:hover .date-btn,.grid td:focus-within .picker-caret,.grid td:focus-within .select-caret,.grid td:focus-within .date-btn,.grid .date-btn[data-state=open]{opacity:1}.grid .date-cell{padding-right:0;position:relative}.grid .date-cell .date-btn{background:var(--surface);margin:0;position:absolute;right:4px}.desc-btn{color:var(--ink-4)}.desc-btn.has-value{color:var(--ink)}.cell-affix input:placeholder-shown:not(:focus)+.cell-suffix{visibility:hidden}.field>.segmented{align-self:flex-start}
