:root{color:#1c1916;background:#f4f1ea;font:15px/1.45 ui-sans-serif,system-ui,sans-serif;accent-color:#1c1916}*{box-sizing:border-box}body,html{margin:0;height:100%}button,input,select,textarea{font:inherit;color:inherit}button,input[type=file],select{min-height:2.5rem}button{background:#fff;border:1px solid #cfc8bc;border-radius:6px;padding:.35rem .7rem;cursor:pointer}button:hover:not(:disabled){background:#f7f3ec}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#1c1916;color:#fff;border-color:#1c1916}a.btn,label.btn{display:inline-flex;align-items:center;min-height:2.5rem;background:#fff;border:1px solid #cfc8bc;border-radius:6px;padding:.35rem .7rem;text-decoration:none;color:inherit;cursor:pointer}.app{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.bar,.dock{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:.6rem .9rem;background:#fffdf8;border-color:#e4ddd2}.bar{border-bottom:1px solid #e4ddd2}.dock{border-top:1px solid #e4ddd2}.bar-left,.bar-right,.dock-actions,.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}label.field{display:flex;gap:.4rem;align-items:center}input[type=text],select,textarea{background:#fff;border:1px solid #cfc8bc;border-radius:6px;padding:.35rem .5rem}textarea{width:min(36rem,100%);min-height:4.5rem;resize:vertical}.apis{gap:.35rem}.apis,.apis label{display:flex;align-items:center}.apis label{gap:.25rem;border:1px solid #cfc8bc;border-radius:999px;padding:.2rem .65rem;min-height:2.5rem}.apis input:disabled+span{color:#8a8176}.muted{color:#6f675c;font-size:.85rem}.err{color:#8a1f11}.canvas{position:relative;background:#f4f1ea}.empty{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:4}.empty-card{pointer-events:auto;background:#fffdf8;border:1px solid #e4ddd2;border-radius:10px;padding:1.25rem 1.4rem;max-width:22rem;text-align:center}.empty-card h1{font-size:1.05rem;margin:0 0 .4rem}.empty-card p{margin:0 0 .9rem;color:#6f675c}.node{width:200px;background:#fff;border:1px solid #d7cfc4;border-radius:10px;padding:.65rem .7rem;font-size:.85rem}.node h2{margin:0 0 .35rem;font-size:.72rem;font-weight:500;color:#6f675c}.node p{margin:0}.chips,.thumbs{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.45rem}.preview,.thumbs img{width:40px;height:52px;object-fit:cover;border-radius:4px;background:#ece6db}.node-shot{width:300px;display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"head head" "stack final";grid-gap:.4rem .55rem;gap:.4rem .55rem;align-items:stretch}.shot-head{grid-area:head}.shot-stack{grid-area:stack;display:flex;flex-direction:column;gap:.35rem;min-width:0}.shot-final{grid-area:final;min-width:0}.slot-wrap{margin:0}.slot-wrap figcaption{font-size:.7rem;color:#6f675c;margin:0 0 .2rem}.slot{display:grid;place-items:center;width:100%;height:72px;border-radius:4px;background:#ece6db;color:#8a8176;font-size:.72rem}.shot-final .preview,.shot-final .slot{height:calc(144px + .35rem)}.slot.loading{color:transparent}.slot.loading:after{content:"";width:1.1rem;height:1.1rem;border:2px solid #cfc8bc;border-top-color:#1c1916;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.preview{width:100%;height:110px;margin-top:.4rem}.node-shot .shot-stack .preview{margin-top:0;height:72px}.node-shot .shot-final .preview{margin-top:0;height:calc(144px + .35rem)}.chips button{min-height:2rem;padding:.2rem .55rem}.chips button[aria-pressed=true]{background:#1c1916;color:#fff;border-color:#1c1916}dialog{border:1px solid #d7cfc4;border-radius:10px;padding:1rem;width:min(28rem,92vw)}dialog::-webkit-backdrop{background:rgb(28 25 22/.35)}dialog::backdrop{background:rgb(28 25 22/.35)}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.8rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}fieldset.apis{border:0;margin:0;padding:0}:focus-visible{outline:3px solid #0b57d0;outline-offset:2px}