*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--sans, system-ui, sans-serif)}a{color:var(--tone-accent, var(--accent))}button{font:inherit;color:inherit}h1{font:600 22px/1.2 var(--display, var(--sans));margin:0 0 8px}h2,h3,h4{margin:0}.pad{padding:20px 24px}.small{font-size:12px}.muted{color:var(--muted)}.faint{color:var(--faint)}.num{font-family:var(--mono, ui-monospace, monospace);font-variant-numeric:tabular-nums}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pre-wrap{white-space:pre-wrap}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar{position:sticky;top:0;z-index:5;min-height:var(--topbar, 56px);display:flex;align-items:center;gap:18px;padding:0 20px;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font:600 15px var(--display, var(--sans));color:var(--ink);text-decoration:none;white-space:nowrap}.topbar nav{display:flex;gap:4px;flex:1;flex-wrap:wrap;align-items:center}.topbar nav .menu{display:inline-flex;flex-wrap:wrap;gap:4px}.topbar nav a{color:var(--ink-2);text-decoration:none;padding:6px 12px;border-radius:999px}.topbar nav a:hover{background:var(--surface-2)}.topbar nav a[aria-current=page]{background:var(--accent-soft);color:var(--tone-accent, var(--accent));box-shadow:inset 0 0 0 1px var(--accent-line)}.topbar nav .data-link{margin-left:auto;border:1px solid var(--line-2)}.chip{font:12px var(--mono, monospace);color:var(--ink-2);border:1px solid var(--line-2);border-radius:999px;padding:3px 10px;white-space:nowrap}.notice{margin:0;padding:8px 20px;font-size:13px;color:var(--ink);background:color-mix(in srgb,var(--tone-warn) 12%,var(--surface));border-bottom:1px solid color-mix(in srgb,var(--tone-warn) 45%,transparent)}main{min-height:calc(100vh - var(--topbar, 56px))}.layout-columns{display:grid;gap:0;min-height:calc(100vh - var(--topbar, 56px))}.layout-columns.cols-1{grid-template-columns:minmax(0,1fr)}.layout-columns.cols-2{grid-template-columns:360px minmax(0,1fr)}.layout-columns.cols-3{grid-template-columns:320px minmax(0,1fr) 400px}.column{padding:16px 18px;overflow:auto;max-height:calc(100vh - var(--topbar, 56px));display:flex;flex-direction:column;gap:18px}.cols-2 .column-0,.cols-3 .column-0{background:var(--surface);border-right:1px solid var(--line)}.cols-3 .column-2{background:var(--surface);border-left:1px solid var(--line)}.layout-single,.layout-stack{padding:16px 20px;display:flex;flex-direction:column;gap:18px}.layout-grid{padding:16px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width: 900px){.layout-columns.cols-2,.layout-columns.cols-3,.layout-grid{grid-template-columns:minmax(0,1fr)}.column{max-height:none}}.place-title{font:600 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 10px}.empty{color:var(--muted);margin:6px 0}.pill{display:inline-block;font:500 11px/1.6 var(--mono, monospace);padding:0 8px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}.tone-accent,.tone-ok,.tone-warn,.tone-bad,.tone-muted{border-color:color-mix(in srgb,currentColor 45%,transparent)}.tone-accent{background:var(--tone-soft-accent)}.tone-ok{background:var(--tone-soft-ok)}.tone-warn{background:var(--tone-soft-warn)}.tone-bad{background:var(--tone-soft-bad)}.tone-muted{background:var(--tone-soft-muted)}.tone-accent{color:var(--tone-accent)}.tone-ok{color:var(--tone-ok)}.tone-warn{color:var(--tone-warn)}.tone-bad{color:var(--tone-bad)}.tone-muted{color:var(--tone-muted)}.tags{display:inline-flex;gap:4px;flex-wrap:wrap}.progress{display:inline-flex;align-items:center;gap:6px;min-width:120px}.progress span{display:inline-block;height:6px;background:var(--tone-accent, var(--accent));border-radius:3px}.progress b{font-weight:500;font-size:12px}.pick{display:block;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--r-sm, 10px);padding:4px 6px;cursor:pointer}.pick:hover{background:var(--surface-2)}.pick.picked,tr.picked .pick{border-color:var(--accent-line);background:var(--accent-soft)}.pick.link{color:var(--tone-accent, var(--accent));padding:0;border:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}.list th,.list td,.compare th,.compare td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.list thead th,.compare thead th{font:600 11px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.list .group-row th{color:var(--ink-2);font-weight:600;padding-top:14px}.row-meta{display:flex;flex-wrap:wrap;gap:2px 12px;margin:2px 6px 0;font-size:12px;color:var(--ink-2)}.compare tbody th{color:var(--ink-2);font-weight:500;white-space:nowrap}.compare .marked{background:var(--accent-soft)}.card .fields,dl.fields{margin:0}.fields>div{display:grid;grid-template-columns:150px 1fr;gap:10px;border-bottom:1px solid var(--line);padding:6px 0}.fields dt{color:var(--faint);font-size:12px}.fields dd{margin:0;overflow-wrap:anywhere}.md{overflow-wrap:anywhere}.md pre,.code{background:var(--field, var(--surface-2));border:1px solid var(--line);border-radius:var(--r-sm, 10px);padding:10px;overflow:auto;font:12px/1.5 var(--mono, monospace);max-height:460px;white-space:pre-wrap}.kpi{display:grid;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm, 10px);padding:10px 14px}.kpi-v{font-size:22px;font-weight:600}.kpi-l{font-size:12px;color:var(--faint)}.pipeline{list-style:none;margin:0;padding:0;display:grid;gap:8px}.stage{border:1px solid var(--line);border-radius:var(--r-sm, 10px);background:var(--surface);padding:10px 12px}.stage-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.stage-title{font-weight:600}.stage-sum{margin-left:auto;color:var(--ink-2);display:inline-flex;gap:10px;flex-wrap:wrap}.dot{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);font:12px var(--mono, monospace);color:var(--faint)}.stage-done .dot{color:var(--tone-ok);border-color:currentColor}.stage-current{border-color:var(--tone-warn)}.stage-current .dot{color:var(--tone-warn);border-color:currentColor;animation:pulse 1.6s ease-in-out infinite}.stage-idle .stage-title,.stage-idle .stage-sum{color:var(--muted)}@keyframes pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--tone-warn) 20%,transparent)}}@media (prefers-reduced-motion: reduce){.stage-current .dot{animation:none}}.stage-items{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px}.step-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.step-cell:first-child{font-weight:600;min-width:130px}.board{display:grid;gap:8px;overflow-x:auto}.board-row{display:grid;grid-template-columns:repeat(var(--n, 5),minmax(190px,1fr));gap:8px}.board-row.has-lane,.board-head:has(.lane-name){grid-template-columns:140px repeat(var(--n, 5),minmax(190px,1fr))}.col-head{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:4px}.lane-name{font-weight:600;color:var(--ink-2);padding:6px 4px}.col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm, 10px);padding:8px;min-height:120px}.col ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.bcard{display:grid;gap:6px;background:var(--surface-2);border:1px solid var(--line);padding:10px}.bcard-title{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.bcard-meta{font-size:12px;color:var(--ink-2)}.matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cell{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm, 10px);padding:8px;display:grid;gap:6px}.feed{display:grid;gap:10px}.feed-group{border:1px solid var(--line);border-radius:var(--r-sm, 10px);background:var(--surface);padding:8px 10px}.feed-group h4{font-size:13px;margin:0 0 6px}.feed ul{list-style:none;margin:0;padding:0}.feed li+li{border-top:1px solid var(--line)}.feed-row{display:flex;gap:2px 12px;flex-wrap:wrap;align-items:center}.timeline{border:1px solid var(--line);border-radius:var(--r-sm, 10px);background:var(--surface);padding:8px 10px}.tl-row{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center;min-height:30px}.tl-lane{font-size:12px;color:var(--ink-2)}.tl-track{position:relative;height:28px;border-left:1px solid var(--line);margin-right:8px}.tl-tick{position:absolute;top:2px;color:var(--faint);white-space:nowrap;font-family:var(--mono, monospace)}.tl-break{position:absolute;top:2px;transform:translate(-50%);color:var(--tone-warn);white-space:nowrap;font-family:var(--mono, monospace)}.tl-break-end{transform:translate(-100%)}.tl-gapline{position:absolute;top:-4px;bottom:-4px;border-left:1px dashed var(--tone-warn);opacity:.5}.tl-bar{position:absolute;top:2px;height:24px;min-width:24px;border-radius:4px;border:1px solid var(--accent-line);background:var(--accent-soft);padding:0;cursor:pointer}.tl-bar.picked{background:var(--tone-accent)}.chart svg{width:100%;height:140px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm, 10px)}.chart .bar{fill:var(--tone-accent)}.chart .bar-1{fill:var(--tone-ok)}.chart .bar-2{fill:var(--tone-warn)}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-box{width:min(380px,100%);display:grid;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r, 12px);padding:28px}.login-box h1{margin:0}.login-box p{margin:0 0 8px}.login-box label{margin-top:8px;font-size:13px;color:var(--ink-2)}.login-box input{font:inherit;color:var(--ink-field, var(--ink));background:var(--field, var(--surface-2));border:1px solid var(--line-2);border-radius:var(--r-sm, 8px);padding:9px 12px}.login-box .btn.primary{margin-top:14px}.login-box .alert,.login-box .note{margin:6px 0 0}.btn{font:600 14px var(--sans);color:var(--ink);background:transparent;border:1px solid var(--line-2);border-radius:999px;padding:8px 16px;cursor:pointer}.btn:hover{border-color:var(--ink-2)}.btn.primary{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:default}.alert{color:var(--tone-bad)}.note{color:var(--tone-ok)}.me{display:inline-flex;align-items:center;gap:10px;color:var(--ink-2);white-space:nowrap}.me .btn{font-size:13px;padding:4px 12px}.inbox{list-style:none;margin:0;padding:0}.inbox-row{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;padding:8px 6px}.inbox-row+.inbox-row{border-top:1px solid var(--line)}.inbox-title{color:var(--ink)}.layout-case{padding:16px 24px;max-width:1100px}.strip{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 14px;flex-wrap:wrap}.strip li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted)}.strip li.done{color:var(--tone-ok);border-color:color-mix(in srgb,var(--tone-ok) 45%,transparent)}.strip li.now{color:var(--tone-accent, var(--accent));border-color:var(--accent);background:var(--accent-soft);font-weight:600}.strip .dot{font-family:var(--mono, monospace);font-size:12px}.tabs{margin-top:14px}.tablist{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px;flex-wrap:wrap}.tablist button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;color:var(--ink-2)}.tablist button[data-state=active]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0 0}.actions .btn{font-size:13px;padding:5px 12px}.btn.tone-bad{color:var(--tone-bad);border-color:color-mix(in srgb,var(--tone-bad) 50%,transparent)}.btn.tone-ok{color:var(--tone-ok)}.btn.tone-warn{color:var(--tone-warn)}.btn.tone-accent{color:var(--tone-accent)}.actions .alert{flex-basis:100%;margin:4px 0 0}.inbox-row .actions{margin:0}.docs,.events{list-style:none;margin:0;padding:0}.docs li+li,.events li+li{border-top:1px solid var(--line)}.doc summary{cursor:pointer;padding:8px 0}.history-filters{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-bottom:8px}.history-filters select{font:inherit;color:var(--ink);background:var(--field, var(--surface-2));border:1px solid var(--line-2);border-radius:var(--r-sm, 8px);padding:4px 8px}.switch{display:inline-flex;gap:6px;align-items:center}.event-line{display:flex;flex-wrap:wrap;gap:2px 12px;align-items:center;padding:7px 0}.event-line .btn{font-size:12px;padding:2px 10px;min-height:24px}.why{margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm, 8px);background:var(--surface-2)}.why>div{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:3px 0}.why dt{color:var(--faint);font-size:12px}.accepted .rule-name{display:block;font-family:var(--mono, monospace)}.case-title{color:inherit;text-decoration:none;display:block}.list .case-title,.case-title .bcard-title{color:var(--tone-accent, var(--accent))}.case-title:hover,.case-title:focus-visible{text-decoration:underline}.case-link{display:inline-grid;place-items:center;min-width:24px;min-height:24px;margin-left:4px;text-decoration:none}.why dd{margin:0}.why ul{margin:0;padding-left:18px}.why ul a{display:inline-block;min-height:24px;line-height:24px}.pager{display:flex;gap:12px;align-items:center;margin-top:10px}.form{display:grid;gap:10px;max-width:520px}.form-field{display:grid;gap:4px}.form-field label{font-size:13px;color:var(--ink-2)}.form-field input,.form-field select,.form-field textarea{font:inherit;color:var(--ink-field, var(--ink));background:var(--field, var(--surface-2));border:1px solid var(--line-2);border-radius:var(--r-sm, 8px);padding:6px 10px}.form-field input[type=checkbox]{justify-self:start}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.accepted .code{font-family:var(--mono, monospace);text-decoration:underline dotted;cursor:help}.canvas{display:grid;gap:8px}.canvas-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.canvas-bar .btn,.canvas-edit .btn,.canvas .actions .btn{font-size:13px;padding:4px 12px;min-height:28px}.canvas .btn.kind{display:inline-flex;align-items:center;gap:6px}.canvas-bar .btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.canvas-bar .zoom{display:inline-flex;gap:4px}.kind-select{font-size:13px;color:var(--ink-2);display:inline-flex;gap:6px;align-items:center}.kind-select select,.canvas-edit input{font:inherit;color:var(--ink-field, var(--ink));background:var(--field, var(--surface-2));border:1px solid var(--line-2);border-radius:var(--r-sm, 8px);padding:4px 8px}.canvas-edit{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.canvas-edit label{font-size:13px;color:var(--ink-2)}.canvas-main{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}@media (min-width: 1100px){.canvas-main{grid-template-columns:minmax(0,1fr) 260px}}.column .canvas-main{grid-template-columns:minmax(0,1fr)}.canvas-svg{display:block;width:100%;height:60vh;min-height:360px;border:1px solid var(--line);border-radius:var(--r-sm, 10px);touch-action:none;-webkit-user-select:none;user-select:none}.canvas-svg :focus{outline:none}.cbg{fill:var(--bg)}.cnode{cursor:pointer}.cnode-body{fill:var(--surface);stroke:var(--line-2);stroke-width:1;vector-effect:non-scaling-stroke}.cnode-title{fill:var(--ink);font:13px var(--sans)}.cnode-badges,.cframe-title{fill:var(--ink-2);font:600 11px var(--sans)}.cframe{fill:none;stroke:var(--line-2);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:stroke}.cframe-head{fill:var(--surface-2)}.cnode.sel .cnode-body,.cnode.sel .cframe,.cnode:focus-visible .cnode-body,.cnode:focus-visible .cframe{stroke:var(--accent);stroke-width:2}.cnode.dashed .cnode-body,.cnode.dashed .cframe{stroke-dasharray:5 4}.cnode.dashed .cnode-body{fill:var(--surface-2)}.cnode.dashed .cnode-title,.cnode.dashed .cnode-line{fill:var(--muted)}.cnode-line{fill:var(--ink-2);font:12px var(--sans)}.cmark{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.cmark circle{fill:var(--ink);stroke:none}.ck-c1{--ck: var(--canvas-c1)}.ck-c2{--ck: var(--canvas-c2)}.ck-c3{--ck: var(--canvas-c3)}.ck-c4{--ck: var(--canvas-c4)}.ck-c5{--ck: var(--canvas-c5)}.ck-c6{--ck: var(--canvas-c6)}.ck-c7{--ck: var(--canvas-c7)}.ck-c8{--ck: var(--canvas-c8)}.ck-c9{--ck: var(--canvas-c9)}.ck-c10{--ck: var(--canvas-c10)}.cv-muted .cedge{--ck: var(--muted)}.cline{fill:none;stroke:var(--ck);stroke-width:1.5;vector-effect:non-scaling-stroke}.cline.dashed{stroke-dasharray:6 4}.cedge.sel .cline{stroke-width:2.5}.cm-line{fill:none;stroke:var(--ck);stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke}.cm-fill{fill:var(--ck)}.cm-hollow{fill:var(--bg);stroke:var(--ck);stroke-width:1.5;vector-effect:non-scaling-stroke}.chit{fill:none;stroke:transparent;stroke-width:12;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:stroke}.chit:focus-visible{stroke:var(--accent-soft)}.ccap{cursor:pointer}.ccap-bg{fill:var(--surface)}.ccap-text{fill:var(--ink-2);font:12px var(--sans)}.cport{fill:var(--accent);stroke:var(--bg);stroke-width:2;vector-effect:non-scaling-stroke;cursor:crosshair}.crubber{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.swatch{flex:none}.canvas-side{display:grid;gap:12px;align-content:start;min-width:0}.canvas-side h3{font:600 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 6px}.canvas-side ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.canvas-legend label{display:inline-flex;gap:6px;align-items:center;font-size:13px}.canvas-list{max-height:40vh;overflow:auto}.canvas-list .pick{font-size:13px}.canvas-side .canvas-lines{padding:0 0 4px 14px;gap:0;font-size:12px;color:var(--ink-2)}
