:root{--bg:#fff;--fg:#09090b;--muted:#71717a;--border:#e4e4e7;--accent:#f4f4f5;--ring:#a1a1aa;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Inter,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{overflow:hidden}button,input{font:inherit;color:inherit}p{margin:0}#app{grid-template-rows:56px 1fr;height:100dvh;display:grid}.top{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:0 16px;display:flex}.brand{letter-spacing:-.01em;font-weight:600}.status{background:var(--ring);border-radius:50%;width:8px;height:8px;margin-left:auto;animation:1s infinite blink}.status[data-state=ready]{background:var(--fg);animation:none}.status[data-state=error]{border:2px solid var(--fg);background:#fff;animation:none}@keyframes blink{50%{opacity:.25}}.btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;height:36px;padding:0 14px;font-weight:500;transition:background .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--fg);border-color:var(--fg);color:#fff}.btn-primary:hover:not(:disabled){background:#27272a}.btn-ghost{border-color:#0000}.btn-sm{height:32px;padding:0 10px}.btn.on{background:var(--fg);border-color:var(--fg);color:#fff}.file{position:relative}.file input{opacity:0;cursor:pointer;position:absolute;inset:0}.link{color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:13px;text-decoration:underline}.link:hover{color:var(--fg)}.icon{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:18px;line-height:1}.icon:hover{color:var(--fg)}.input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);outline:none;width:100%;min-width:0;height:36px;padding:0 12px}.input:focus{border-color:var(--fg);box-shadow:0 0 0 3px #09090b14}input[type=search]::-webkit-search-cancel-button{display:none}.input-sm{height:30px;padding:0 8px;font-size:13px}.seg{background:var(--accent);border-radius:var(--radius);gap:2px;padding:3px;display:inline-flex}.seg.full{display:flex}.seg.full button{flex:1}.seg button{height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 12px;font-weight:500}.seg button.on{background:var(--bg);color:var(--fg);box-shadow:0 1px 2px #00000014}.seg button:disabled{opacity:.4;cursor:not-allowed}.label{color:var(--muted);font-size:12px;font-weight:500}.muted{color:var(--muted);font-size:13px;line-height:1.45}.muted:empty{display:none}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.grow{flex:1}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.page{min-height:0;display:none}.page.on{grid-template-columns:300px 1fr;display:grid}.side{border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.group{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:16px;display:flex}.group.fill{border-bottom:0;flex:1}.progress .bar{background:var(--accent);border-radius:99px;height:4px;overflow:hidden}#progress-fill{background:var(--fg);width:0;height:100%;transition:width .2s}.progress .row{margin-top:6px}.list{flex-direction:column;margin:0 -8px;display:flex}.item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;height:34px;padding:0 8px;display:flex}.item:hover{background:var(--accent)}.item .id{font-variant-numeric:tabular-nums;width:32px;font-weight:600}.item .name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.item.hit{background:var(--fg);color:#fff}.item.hit .name{color:#d4d4d8}.item.dim{opacity:.4}.stage{background:var(--accent);grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid;position:relative}.stage-bar{background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}#canvas{touch-action:none;cursor:grab;width:100%;height:100%;min-height:0;display:block}.hint{background:var(--fg);color:#fff;pointer-events:none;white-space:nowrap;border-radius:99px;padding:6px 12px;font-size:13px;font-weight:500;position:absolute;top:64px;left:50%;transform:translate(-50%)}.empty{color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;inset:49px 0 0}.drop{border:2px dashed var(--fg);pointer-events:none;background:#ffffffd9;place-items:center;font-weight:600;display:grid;position:absolute;inset:0}.cards-wrap{background:var(--accent);padding:16px;overflow-y:auto}.cards{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;display:grid}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px;display:flex}.card-marker{padding:10%}.card-marker svg{width:100%;height:auto;display:block}.card-row{align-items:center;gap:6px;display:flex}.card-id{text-align:center;font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.empty-text{color:var(--muted)}.sheet{color:#000;background:#fff;width:210mm;height:297mm;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;position:relative;overflow:hidden}.sheet-marker{position:absolute}.sheet-marker svg{width:100%;height:100%;display:block}.sheet-text{text-align:center;position:absolute;left:0;right:0}.sheet-id{font-size:36mm;font-weight:800;line-height:1}.sheet-name{margin-top:3mm;font-size:7mm;font-weight:600}.sheet-foot{text-align:center;color:#777;font-size:2.6mm;position:absolute;bottom:6mm;left:0;right:0}#print-root{display:none}@page{size:A4 portrait;margin:0}@media print{html,body{height:auto;overflow:visible}#app{display:none!important}#print-root{display:block}#print-root .sheet{break-after:page}#print-root .sheet:last-child{break-after:auto}}@media (max-width:860px){body{overflow:auto}#app{height:auto;min-height:100dvh}.page.on{grid-template-columns:1fr}#tab-map.on{flex-direction:column-reverse;display:flex}#tab-map .stage{z-index:2;height:60dvh;position:sticky;top:0}.side{border-right:0;overflow:visible}}
