:root{--surface:#fff;--ink:#16181d;--muted:#5c6370;--accent:#2f6df6;--border:#e3e6ec;--danger:#c8442e;--on-accent:#fff;--on-stage:#fff;--healthy:#137a3a;color:var(--ink);background-color:var(--surface);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--surface:#14161a;--ink:#eef0f4;--muted:#9aa2b1;--accent:#6f9bff;--border:#2a2e37;--danger:#f08a72;--on-accent:#14161a;--healthy:#5fd48a}}body{min-height:100vh;margin:0}.app{flex-direction:column;gap:2rem;max-width:40rem;margin:0 auto;padding:3rem 1.25rem;display:flex}.app-masthead{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.app-header h1{letter-spacing:-.02em;color:var(--accent);margin:0;font-size:2.5rem}.tagline{color:var(--muted);margin:.25rem 0 0}.app-nav{margin:.75rem 0 0}.heartbeat{color:var(--muted);display:inline-flex}.heartbeat svg{width:1.25rem;height:1.25rem}.heartbeat[data-state=reachable]{color:var(--healthy)}@keyframes heartbeat{0%{transform:scale(1)}14%{transform:scale(1.18)}28%{transform:scale(1)}42%{transform:scale(1.13)}56%{transform:scale(1)}to{transform:scale(1)}}.heartbeat[data-state=reachable] svg{transform-origin:50%;animation:.9s ease-in-out 4 heartbeat}@media (prefers-reduced-motion:reduce){.heartbeat[data-state=reachable] svg,.stream-status[data-state=live] .stream-wave-near,.stream-status[data-state=live] .stream-wave-far{animation:none}}.heartbeat[data-state=unreachable]{color:var(--danger)}.account{margin-left:auto;position:relative}.account-trigger{border:1px solid var(--border);min-width:2.75rem;min-height:2.75rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.account-trigger svg{width:1.5rem;height:1.5rem}.account-trigger[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.account-panel{z-index:10;border:1px solid var(--border);background:var(--surface);border-radius:.5rem;flex-direction:column;align-items:flex-start;gap:.5rem;min-width:13rem;padding:.75rem 1rem;display:flex;position:absolute;top:calc(100% + .5rem);right:0}.account-who{color:var(--muted);margin:0;font-size:.875rem}.account-panel a,.account-panel button{align-items:center;gap:.625rem;min-height:2.75rem;display:flex}.account-panel svg{width:1rem;height:1rem;color:var(--muted);flex:none}.account-panel button{border:1px solid var(--border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:.375rem;padding:0 1rem}.status{border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:.5rem;margin:0;padding:.75rem 1rem}main{flex-direction:column;gap:1.5rem;display:flex}.landing{flex-direction:column;gap:.75rem;display:flex}.landing h2{margin:.5rem 0 0;font-size:1.25rem}.landing h2:first-child{margin-top:0}.landing .hint{color:var(--ink);font-size:1rem}.auth-panel{border:1px solid var(--border);border-radius:.5rem;padding:1.25rem}.auth-panel h2{margin:0 0 1rem;font-size:1.25rem}.auth-form,.form{flex-direction:column;gap:.35rem;display:flex}.auth-form label,.form label{margin-top:.5rem;font-weight:600}.auth-form input,.form input,.form select,.form textarea{border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;border-radius:.375rem;padding:.5rem .625rem}.auth-form input:focus-visible,.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);cursor:pointer;border-radius:.375rem;padding:.5rem 1rem}button:disabled{opacity:.6;cursor:default}.auth-form button,.form button{align-self:flex-start;margin-top:1rem}button.secondary{border-color:var(--border);color:inherit;background:0 0}a.button{border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font:inherit;border-radius:.375rem;padding:.5rem 1rem;text-decoration:none;display:inline-block}a.button.secondary{border-color:var(--border);color:inherit;background:0 0}button.link{color:var(--accent);background:0 0;border:0;padding:0;text-decoration:underline}.hint{color:var(--muted);margin:0;font-size:.8125rem}.field-errors{color:var(--danger);margin:.25rem 0 0;padding-left:1.1rem;font-size:.875rem}.form-actions{align-items:center;gap:.5rem;margin:1rem 0 0;display:flex}.form .form-actions button{margin-top:0}.definition-upload{margin:.25rem 0 0}.definition-choose{margin-bottom:.35rem;display:block}.definition-upload input[type=file]{box-sizing:border-box;width:100%;display:block}.definition-preview strong{overflow-wrap:anywhere}.definition-preview .warning strong{color:var(--danger)}.definition-preview{border:1px solid var(--border);border-radius:6px;margin:.75rem 0 0;padding:.75rem;font-size:.875rem}.definition-preview p{margin:0}.definition-preview dl{grid-template-columns:auto 1fr;gap:.15rem .75rem;margin:.5rem 0 0;display:grid}.definition-preview dt{color:var(--muted)}.definition-preview dd{margin:0}.app-footer{border-top:1px solid var(--border);padding-top:1rem;font-size:.875rem}.install-hint{border:1px solid var(--border);color:var(--muted);border-radius:.5rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.install-hint p{flex:14rem;margin:0}.install-hint button{border:1px solid var(--border);min-height:2.75rem;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:.375rem;flex:none;padding:0 1rem}.app-header h1 a{color:inherit;text-decoration:none}.panel{border:1px solid var(--border);border-radius:.5rem;padding:1.25rem}.panel h2{margin:0;font-size:1.25rem}.panel h3{margin:0 0 .5rem;font-size:1rem}.panel h4{color:var(--muted);margin:1.25rem 0 .25rem;font-size:.9375rem}.panel-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.button-link{border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);border-radius:.375rem;padding:.5rem 1rem;text-decoration:none}button.danger{border-color:var(--danger);color:var(--danger);background:0 0}.editor>section{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.viu-list,.vurable-list,.tag-chips{margin:0;padding:0;list-style:none}.viu-list{flex-direction:column;gap:.75rem;display:flex}.viu-row{border:1px solid var(--border);border-radius:.375rem;padding:.75rem 1rem}.viu-row-head{align-items:center;gap:.75rem;display:flex}.status-badge{border:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-radius:999px;padding:.0625rem .5rem;font-size:.75rem}.status-badge[data-status=Published],.status-badge[data-live=true]{border-color:var(--accent);color:var(--accent)}.status-badge[data-status=Archived],.status-badge[data-status=Revoked],.status-badge[data-status=Expired]{border-color:var(--danger);color:var(--danger)}.status-badge[data-status=Accepted]{border-color:var(--accent);color:var(--accent)}.status-badge[data-access=lost]{border-color:var(--danger);color:var(--danger)}.visibility-options{border:0;flex-direction:column;gap:.5rem;margin:0;padding:0;display:flex}.visibility-option{align-items:baseline;gap:.5rem;display:flex}.visibility-option span{flex-direction:column;display:flex}.invitations{flex-direction:column;gap:.75rem;display:flex}.subscribe{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0 0;display:flex}.share-link{margin:.5rem 0 0;font-size:.875rem}.share-link code{word-break:break-all}.share-link-label{color:var(--muted)}.tag-chips{flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem;display:flex}.tag-chip{border:1px solid var(--border);border-radius:999px;align-items:center;gap:.375rem;padding:.125rem .625rem;font-size:.875rem;display:flex}.form-inline{flex-flow:wrap;align-items:center;gap:.5rem}.form-inline label,.form-inline button{margin-top:0}.vurable-list{flex-direction:column;gap:.75rem;display:flex}.vurable-row{border:1px solid var(--border);border-radius:.375rem;padding:.75rem 1rem}.vurable-summary,.vurable-fields,.vurable-edit-fields,.vurable-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.vurable-actions{margin-top:.75rem}.vurable-edit{border:1px solid var(--border);border-radius:.5rem;margin-bottom:.75rem;padding:.75rem}.vurable-edit>.vurable-edit-fields{margin-bottom:.5rem}.vurable-edit-fields label{font-size:.875rem;font-weight:600}.vurable-summary-line{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:.5rem;list-style:none;display:flex}.vurable-summary-line::-webkit-details-marker{display:none}.vurable-summary-line:before{content:"▸";width:.75rem;color:var(--muted);display:inline-block}.vurable-edit[open]>.vurable-summary-line:before{transform:rotate(90deg)}.vurable-summary-line:focus-visible{outline:2px solid var(--focus,currentcolor);outline-offset:2px}.vurable-edit[open]>.vurable-summary-line{border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.5rem}.vurable-unsaved{border:1px solid;border-radius:.25rem;padding:.1rem .4rem;font-size:.8125rem;font-weight:600}.vurable-initial{border-top:1px solid var(--border);margin:.75rem 0 0;padding-top:.75rem}.vurable-options>.vurable-initial{margin-bottom:0}.vurable-save{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.vurable-initial-heading{margin-bottom:.4rem;font-size:.8125rem;font-weight:600;display:block}.vurable-initial .hint{margin-top:.35rem;display:block}.visually-hidden,.vurable-fields label:not(.choice){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.vurable-fields button,.vurable-actions button{margin-top:0;padding:.375rem .75rem;font-size:.875rem}.button-group{flex-wrap:wrap;align-items:center;gap:0;display:flex}.button-group button{border-radius:0;margin-top:0;padding:.375rem .75rem;font-size:.875rem}.button-group>button:first-of-type,.button-group>:first-child>button:first-of-type{border-radius:.375rem 0 0 .375rem}.button-group>button:last-of-type,.button-group>:last-child>button:last-of-type{border-radius:0 .375rem .375rem 0}.button-group>.confirm{gap:.5rem;margin-left:.5rem}.button-group>.confirm button{border-radius:.375rem}.vurable-options{border:1px solid var(--border);border-radius:.5rem;flex-direction:column;gap:.75rem;margin:.75rem 0;padding:.75rem;display:flex}.vurable-options-grid{grid-template-columns:auto 1fr 1fr;align-items:center;gap:.4rem .75rem;display:grid}.vurable-options-row{grid-column:1/-1;grid-template-columns:subgrid;align-items:center;display:grid}.vurable-options-heading{color:var(--muted);font-size:.8125rem;font-weight:600}.vurable-options-row input[type=text],.vurable-options-row input:not([type]){box-sizing:border-box;width:100%}.vurable-options-row input[readonly]{background:var(--surface-muted,#7f7f7f1f);cursor:not-allowed}.vurable-options-controls{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding-top:.75rem;display:flex}.vurable-options-controls>button{margin-top:0;padding:.375rem .75rem;font-size:.875rem}.vurable-options-arrangement{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.vurable-options-arrangement label{font-size:.8125rem;font-weight:600}.vurable-label{font-weight:600}.lifecycle-actions,.confirm{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.live-status{margin:.75rem 0 0;font-size:.875rem}.live-status[data-state=live]{border-color:var(--accent);color:var(--accent)}.live-status[data-state=connecting]{color:var(--muted)}.live-status[data-state=reconnecting],.live-status[data-state=disconnected]{border-color:var(--danger)}.vurable-list[data-stale=true],.viu-canvas[data-stale=true]{outline:2px dashed var(--muted);outline-offset:2px}.feed-stale{color:var(--muted);white-space:nowrap;font-size:.8125rem}.canvas-cell .feed-stale{color:var(--canvas-ink);white-space:normal;font-size:max(.5rem,14cqh);display:block}.source-attribution{margin-top:1rem;font-size:.8125rem}.source-attribution ul{margin:0;padding:0;list-style:none}.source-attribution li+li{margin-top:.25rem}.vurable-commit{margin-top:.5rem}.vurable-commit input{max-width:12rem}.vurable-commit[data-commit=pending] input{opacity:.65}.viu-canvas{--canvas-ink:#101216;--canvas-plate:#fff;background:var(--canvas-plate);width:100%;color:var(--canvas-ink);max-width:calc(var(--canvas-aspect) * var(--canvas-max-height,70vh));border:1px solid var(--border);border-radius:.375rem;margin:.75rem auto 0;position:relative;overflow:hidden}@media (prefers-color-scheme:dark){.viu-canvas{--canvas-ink:#f5f7fa;--canvas-plate:#0f1114}}.canvas-skin{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.canvas-cell{box-sizing:border-box;flex-direction:column;justify-content:center;padding:.25cqh .5cqw;display:flex;position:absolute;overflow:hidden;container-type:size}.canvas-cell .vurable-label{font-size:max(.625rem,18cqh)}.canvas-cell .vurable-value{overflow-wrap:anywhere;white-space:normal;font-size:max(.75rem,42cqh);line-height:1.1}.canvas-cell[data-sized] .vurable-value{font-size:min(var(--cell-text-limit,99rem), var(--cell-text-fitted,max(.75rem, 42cqh)))}.canvas-cell[data-overflow=y]:after{content:"";pointer-events:none;background:linear-gradient(to top, var(--canvas-plate), transparent);height:1.6em;position:absolute;inset:auto 0 0}.canvas-cell[data-overflow=x]:after{content:"";pointer-events:none;background:linear-gradient(to left, var(--canvas-plate), transparent);width:1.6em;position:absolute;inset:0 0 0 auto}.canvas-cell[data-fit=scroll]:not([data-scroll-axis=vertical]) .vurable-value,.canvas-cell[data-fit=resize][data-overflow]:not([data-scroll-axis=vertical]) .vurable-value{white-space:nowrap;overflow-wrap:normal}.canvas-cell[data-fit=scroll] .vurable-value,.canvas-cell[data-fit=resize][data-overflow] .vurable-value{will-change:transform}@media (prefers-reduced-motion:no-preference){.canvas-cell[data-fit=scroll][data-overflow] .vurable-value,.canvas-cell[data-fit=resize][data-overflow] .vurable-value{animation:cell-traverse var(--cell-scroll-seconds,4s) ease-in-out 4}.canvas-cell[data-scroll-motion=continuous][data-overflow] .vurable-value{animation:cell-marquee var(--cell-scroll-seconds,8s) linear infinite}.viu-canvas[data-motion=paused] .canvas-cell[data-overflow] .vurable-value{animation-play-state:paused}}@keyframes cell-traverse{0%,15%{transform:translate(0)}85%,to{transform:translate(var(--cell-shift-x,0px), var(--cell-shift-y,0px))}}@keyframes cell-marquee{0%{transform:translate(0)}to{transform:translate(var(--cell-shift-x,0px), var(--cell-shift-y,0px))}}.canvas-cell[data-image-fit=cover] .vurable-value img{object-fit:cover}.canvas-cell .vurable-value .hint{display:none}.canvas-cell .hint{color:var(--canvas-ink);font-size:max(.75rem,32cqh)}.viu-canvas[data-skinned=true] .canvas-cell{text-shadow:0 1px 2px var(--canvas-plate), 0 0 .5rem var(--canvas-plate)}.cell-grab,.cell-resize{border:1px dashed var(--border);cursor:grab;touch-action:none;background:0 0;border-radius:0;margin-top:0;padding:0;position:absolute}.cell-grab{inset:0}.cell-resize{cursor:nwse-resize;width:1rem;height:1rem;bottom:0;right:0}.cell-commit{flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.cell-open{border:1px dashed var(--border);cursor:pointer;background:0 0;border-radius:0;margin-top:0;padding:0;position:absolute;inset:0}.cell-grab:focus-visible,.cell-resize:focus-visible,.cell-open:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.viu-canvas[data-skinned=true] .cell-grab:focus-visible,.viu-canvas[data-skinned=true] .cell-resize:focus-visible,.viu-canvas[data-skinned=true] .cell-open:focus-visible{box-shadow:inset 0 0 0 5px var(--canvas-plate)}.cell-editor{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;gap:.375rem;max-height:100%;padding:.375rem;font-size:1rem;display:flex;overflow:auto}.cell-editor input{box-sizing:border-box;width:100%;min-height:2.75rem;font-size:1rem}.cell-editor-actions{gap:.5rem;display:flex}.cell-editor-actions button{flex:1;min-height:2.75rem;margin-top:0}.viu-canvas>.cell-editor{z-index:40;background:var(--surface);width:max-content;max-width:calc(100% - 1rem);max-height:calc(100% - 1rem);color:var(--ink);border:1px solid var(--border);border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.4rem;display:flex;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 .25rem 1rem #00000059}.cell-editor-subject{white-space:nowrap;font-weight:600}.viu-canvas>.cell-editor input{flex:6rem;min-width:0;margin:0;font-size:1rem}.viu-canvas>.cell-editor .cell-editor-actions{gap:.5rem;display:flex}.viu-canvas>.cell-editor .field-errors{flex:1 0 100%;margin:0}.viu-canvas>.board-message{z-index:40;background:var(--surface);max-width:calc(100% - 1rem);color:var(--ink);border:1px solid var(--danger);border-radius:.375rem;margin:0;padding:.4rem .75rem;font-size:.875rem;position:absolute;top:.5rem;left:50%;transform:translate(-50%);box-shadow:0 .25rem 1rem #00000059}.board-message-subject{font-weight:600}.board-message-subject:after{content:": "}.cell-commit[data-editing=true] .cell-open{border-style:solid;border-width:2px;border-color:var(--healthy)}.group-commit-toggle{color:var(--accent);background:0 0}.group-commit-toggle[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.board-mode{border:1px solid var(--accent);background:var(--accent);min-width:1.75rem;min-height:1.75rem;color:var(--on-accent);border-radius:999px;justify-content:center;align-items:center;padding:0 .35rem;font-size:.8125rem;font-weight:700;display:inline-flex}.board-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.board-commit{min-width:9.5rem}.board-discard{min-width:6.5rem}.board-commit-count{background:#ffffff40;border-radius:999px;margin-left:.4rem;padding:0 .4rem;font-size:.8125rem;font-weight:700}.board-stage-controls{flex-direction:column;align-items:center;gap:.75rem;display:flex}.board-nav{justify-content:center;align-items:center;gap:.75rem;display:flex}.board-stage-controls button{min-height:2.75rem;margin-top:0}:is(.board-stage[data-fullscreen=stage] .board-back,.board-stage:fullscreen .board-back,.board-stage[data-fullscreen=stage] .board-exit,.board-stage:fullscreen .board-exit,.board-stage[data-fullscreen=stage] .board-motion,.board-stage:fullscreen .board-motion,.board-stage[data-fullscreen=stage] .board-replay-toggle,.board-stage:fullscreen .board-replay-toggle,.board-stage[data-fullscreen=stage] .board-home,.board-stage:fullscreen .board-home){color:var(--on-stage);opacity:.5;background:0 0;border-color:#0000;transition:opacity .15s ease-in-out}:is(.board-stage[data-fullscreen=stage] .board-back:hover,.board-stage:fullscreen .board-back:hover,.board-stage[data-fullscreen=stage] .board-back:focus-visible,.board-stage:fullscreen .board-back:focus-visible,.board-stage[data-fullscreen=stage] .board-exit:hover,.board-stage:fullscreen .board-exit:hover,.board-stage[data-fullscreen=stage] .board-exit:focus-visible,.board-stage:fullscreen .board-exit:focus-visible,.board-stage[data-fullscreen=stage] .board-motion:hover,.board-stage:fullscreen .board-motion:hover,.board-stage[data-fullscreen=stage] .board-motion:focus-visible,.board-stage:fullscreen .board-motion:focus-visible,.board-stage[data-fullscreen=stage] .board-replay-toggle:hover,.board-stage:fullscreen .board-replay-toggle:hover,.board-stage[data-fullscreen=stage] .board-replay-toggle:focus-visible,.board-stage:fullscreen .board-replay-toggle:focus-visible,.board-stage[data-fullscreen=stage] .board-home:hover,.board-stage:fullscreen .board-home:hover,.board-stage[data-fullscreen=stage] .board-home:focus-visible,.board-stage:fullscreen .board-home:focus-visible){opacity:1}.board-back,.board-exit,.board-motion,.board-replay-toggle{min-width:2.75rem;padding:0 .5rem;line-height:1}.board-back,.board-exit{font-size:1.5rem}.board-motion,.board-replay-toggle{font-size:1rem}.board-stage[data-fullscreen=inactive] .board-nav button{background:var(--surface);border-color:var(--border);color:var(--ink)}.board-home{letter-spacing:.04em;font-size:.8125rem;font-weight:600;text-decoration:none}.board-stage[data-fullscreen=inactive] .board-home{color:var(--muted)}.viu-headline{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem;display:flex}.viu-headline h2{margin:0 auto 0 0}.viu-headline p,.viu-headline form{margin:0}.stream-status{color:var(--muted);align-items:center;gap:.375rem;font-size:.875rem;display:inline-flex}.stream-status svg{flex:none;width:1.25rem;height:1.25rem}.stream-status[data-state=live]{color:var(--healthy)}.stream-status[data-state=reconnecting],.stream-status[data-state=disconnected]{color:var(--danger)}.stream-word{font-weight:600}@keyframes broadcast{0%{opacity:.15}35%{opacity:1}to{opacity:.15}}.stream-status[data-state=live] .stream-wave-near{animation:1.1s ease-in-out 4 broadcast}.stream-status[data-state=live] .stream-wave-far{animation:1.1s ease-in-out .37s 4 broadcast}.viu-detail{margin-top:1rem}.cell-commit[data-staged=true] .cell-open{border-style:solid;border-width:2px;border-color:var(--healthy)}.cell-staged{background:var(--healthy);color:#14161a;white-space:nowrap;text-overflow:ellipsis;border-radius:.6em;max-width:calc(100% - .3rem);padding:.05em .4em;font-size:max(.6rem,22cqh);line-height:1.25;position:absolute;bottom:.15rem;right:.15rem;overflow:hidden}.cell-commit[data-commit=pending] input{opacity:.65}.cell-commit .field-errors{background:var(--surface);max-height:100%;margin:0;padding:.25rem .25rem .25rem 1.35rem;font-size:.8125rem;overflow:auto}.board-stage{position:relative}.board-stage-controls{margin:.5rem 0 0}:is(.board-stage[data-fullscreen=stage] .board-stage-controls,.board-stage:fullscreen .board-stage-controls){width:100%;max-width:calc(var(--stage-aspect,100) * var(--stage-board-height));gap:.5rem;margin:0 auto}:is(.board-stage:fullscreen,.board-stage[data-fullscreen=stage]){--stage-board-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 6rem);background:#000;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex}.board-stage[data-fullscreen=stage]{z-index:100;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;inset:0}:is(.board-stage:fullscreen .viu-canvas,.board-stage[data-fullscreen=stage] .viu-canvas){--canvas-max-height:var(--stage-board-height);margin:0}.vurable-picture{object-fit:contain;max-width:100%;max-height:100%;display:block}.canvas-cell .vurable-picture{flex:1;min-height:0;margin:0 auto}.image-field{flex-direction:column;gap:.375rem;min-width:0;display:flex}.image-field .image-choose{align-items:center;gap:.5rem;margin-top:0;font-weight:400;display:flex}.image-preview{border:1px dashed var(--border);border-radius:.375rem;flex-direction:column;gap:.25rem;margin:0;padding:.25rem;display:flex}.image-preview img{object-fit:contain;max-width:100%;max-height:8rem}.image-preview figcaption{margin:0;font-size:.8125rem}.cell-editor .image-preview img{max-height:4rem}.cell-editor .image-field{font-size:.8125rem}.skin-control{border:1px solid var(--border);border-radius:.375rem;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;padding:.5rem .875rem;display:flex}.skin-control h4,.skin-control p{flex-basis:100%;margin:0}.skin-control .skin-choose{align-items:center;gap:.5rem;margin-top:0;font-weight:400;display:flex}.canvas-shape{border:1px solid var(--border);border-radius:.375rem;flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0 0;padding:.5rem .875rem;display:flex}.canvas-shape label{align-items:center;gap:.375rem;margin-top:0;font-weight:400;display:flex}.layout-tray{flex-direction:column;gap:.5rem;display:flex}.layout-tray li{flex-direction:column;gap:.375rem;display:flex}.tray-row,.tray-presentation{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.tray-presentation.tray-fit{margin-top:.35rem}.tray-presentation.tray-fit select{flex:0 auto;max-width:100%}.vurable-entry{border:0;margin:.5rem 0 0;padding:0}.vurable-entry legend{padding:0;font-weight:600}.vurable-entry .choice{align-items:center;gap:.3rem;margin-right:.9rem;font-weight:400;display:inline-flex}.layout-tray .tray-presentation label{align-items:center;gap:.25rem;margin-top:0;font-size:.875rem;font-weight:400;display:flex}.tray-presentation input[type=color]{width:2.75rem;height:2rem;padding:.125rem}.layout-tray button,.layout-actions button,.surface-switch button{margin-top:0;padding:.375rem .75rem;font-size:.875rem}.layout-actions,.surface-switch{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.surface-switch{margin:.5rem 0 .75rem}.surface-switch button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.warning{border:1px solid var(--danger);border-radius:.375rem;margin:.75rem 0 0;padding:.625rem .875rem;font-size:.875rem}.warning:empty{display:none}.template-picker{border:0;margin:0 0 .5rem;padding:0}.template-picker legend{padding:0;font-weight:600}.template-cards{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem;margin-top:.5rem;display:grid}.template-card{border:1px solid var(--border);cursor:pointer;border-radius:.5rem;gap:.5rem;padding:.625rem;display:flex}.template-card[data-selected=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.template-card:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.template-card input{margin-top:.25rem}.template-card-body{flex-direction:column;flex:1;gap:.375rem;min-width:0;display:flex}.template-card-name{font-weight:600}.template-preview{pointer-events:none;display:block}.template-preview .viu-canvas{max-width:100%;max-height:9rem;margin:0;font-size:.5rem}.template-preview-blank{border:1px dashed var(--border);height:5rem;color:var(--muted);border-radius:.375rem;justify-content:center;align-items:center;font-size:.8125rem;display:flex}.folded-rows{margin-top:.75rem}.folded-rows>summary{color:var(--muted);cursor:pointer;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.875rem;list-style:none;display:flex}.folded-rows>summary::-webkit-details-marker{display:none}.folded-rows>summary::marker{content:""}.folded-rows>summary:before{content:"";border-top:.3rem solid #0000;border-bottom:.3rem solid #0000;border-left:.4rem solid;flex:none;width:0;height:0;transition:transform .15s ease-in-out}.folded-rows[open]>summary:before{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.folded-rows>summary:before{transition:none}}.folded-rows[open]>summary{margin-bottom:.25rem}.folded-mark{background:var(--danger);border-radius:999px;flex:none;width:.5rem;height:.5rem}.folded-unlanded{color:var(--danger);font-weight:600}.admin-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;margin:.75rem 0 1.25rem;display:flex}.admin-tabs button{color:var(--muted);background:0 0;border:1px solid #0000;border-bottom:none;border-radius:.375rem .375rem 0 0;margin:0;font-size:.9375rem}.admin-tabs button[aria-current=page]{border-color:var(--border);background:var(--surface);color:inherit;font-weight:600}.admin-filter{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem;display:flex}.admin-list{margin:0;padding:0;list-style:none}.admin-row{border-top:1px solid var(--border);padding:.75rem 0}.admin-row-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-row-name{font-weight:600}.admin-row-actions{flex-wrap:wrap;align-items:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.admin-row-body{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.admin-row-body label{flex-direction:column;gap:.25rem;font-weight:600;display:flex}.admin-row-body input,.admin-row-body select,.admin-row-body textarea{border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;border-radius:.375rem;padding:.5rem .625rem;font-weight:400}.admin-row-body textarea{box-sizing:border-box;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem}.admin-row-body button{align-self:flex-start}.admin-row[data-template] .admin-artwork-actions label{flex-direction:column;gap:.25rem;font-weight:600;display:flex}.admin-members{margin:.5rem 0 0;padding:0 0 0 1rem;font-size:.875rem;list-style:none}.admin-members li{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.125rem 0;display:flex}.admin-create{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.badge{border:1px solid var(--border);color:var(--muted);border-radius:.75rem;padding:.0625rem .375rem;font-size:.75rem}.report-form,.reason-prompt{border:1px solid var(--border);background:var(--surface);border-radius:.375rem;width:100%;max-width:34rem;margin-top:.5rem;padding:.75rem;display:block}.report-form textarea,.reason-prompt textarea{width:100%}.report-actions,.reason-prompt-actions{flex-wrap:wrap;gap:.5rem;display:flex}.app-policies{flex-wrap:wrap;gap:1.25rem;display:flex}.app-policies a{color:var(--muted)}.policy{max-width:44rem}.policy h2{margin:0 0 .5rem}.policy h3{margin:2.5rem 0 .5rem}.policy h4{margin:1.75rem 0 .5rem;font-size:1rem}.policy p,.policy li{margin:.75rem 0}.policy ul{padding-left:1.25rem}.policy code{font-size:.9em}.policy :target{background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:-.5rem 0 0 color-mix(in srgb, var(--accent) 12%, transparent);border-radius:.125rem;scroll-margin-top:1rem}.api-key-secret{margin:.75rem 0}.api-key-secret h3{margin:0 0 .5rem;font-size:1rem}.api-key-credential{border:1px solid var(--border);background:color-mix(in srgb, var(--ink) 4%, var(--surface));overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:.375rem;margin:.75rem 0;padding:.625rem .875rem;font-size:.9375rem;display:block}.api-key-actions{align-items:center;gap:.75rem;margin:0;display:flex}.api-key-form{margin:.75rem 0}.set-value-chooser{place-content:center;gap:.4rem;max-width:100%;max-height:100%;display:grid}.set-value-option{overflow-wrap:anywhere;min-width:3rem;min-height:2.75rem;margin:0}.editor-save-bar{z-index:30;background:var(--surface);border-top:1px solid var(--border);border-radius:.5rem .5rem 0 0;margin-top:1rem;padding:.5rem .75rem;position:sticky;bottom:0;box-shadow:0 -.25rem .75rem #00000026}.editor-save-state{margin:0 0 .4rem}.editor-save-failures ul{margin:.25rem 0 0;padding-left:1.25rem}.commit-scope{border:0;min-width:0;margin:0;padding:0;display:contents}.board-replay{width:min(100%, calc(var(--canvas-max-height,70vh) * var(--stage-aspect,1.7778)));flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .75rem;margin:.75rem auto 0;padding:0 .5rem;display:flex}.board-replay-track{flex:12rem;align-items:center;min-width:8rem;display:flex;position:relative}.board-replay-slider{min-width:0;accent-color:var(--accent);flex:auto}.board-replay-marks{inset-inline:0;pointer-events:none;z-index:0;height:1.25rem;margin:0;padding:0;list-style:none;position:absolute;top:50%;transform:translateY(-50%)}.board-replay-mark{background:var(--ink);opacity:.35;border-radius:1px;width:2px;height:100%;margin-inline-start:-1px;position:absolute;top:0}.board-replay-mark[data-kind=removed]{opacity:.5;height:50%;top:50%}.board-replay-slider{height:2.75rem}.board-replay-moment{font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;flex-direction:column;align-items:center;font-size:.8125rem;line-height:1.3;display:flex}.board-replay-date{opacity:.75}.board-replay-buttons{align-items:center;gap:.375rem;display:flex}.board-replay svg{fill:currentColor;width:1.125rem;height:1.125rem;margin:0 auto;display:block}.board-replay button{background:var(--surface);border-color:var(--border);min-width:2.75rem;min-height:2.75rem;color:var(--ink);padding:0 .5rem;line-height:1}.board-replay-speed{min-width:2.5rem;font-size:.8125rem}.board-replay-speed[aria-pressed=true],.board-replay-play[aria-pressed=true]{border-color:var(--accent);color:var(--accent);font-weight:700}.board-replay-live{font-size:.8125rem;font-weight:600}.board-replay-live[aria-pressed=true]{border-color:var(--accent);color:var(--accent);font-weight:700}.board-replay button:disabled{opacity:.45;cursor:default}.board-replay-toggle[aria-pressed=true],.board-stage[data-fullscreen=stage] .board-replay-toggle[aria-pressed=true]{opacity:1;color:var(--accent);border-color:var(--accent);font-weight:700}.board-stage:fullscreen .board-replay-toggle[aria-pressed=true]{opacity:1;color:var(--accent);border-color:var(--accent);font-weight:700}:is(.board-stage[data-fullscreen=stage] .board-replay-moment,.board-stage:fullscreen .board-replay-moment){color:var(--on-stage)}.polling-section h4{border-top:1px solid var(--border);margin:1.25rem 0 .25rem;padding-top:1rem}.polling-address{align-items:stretch;gap:.5rem;display:flex}.polling-address input{flex:1}.polling-address button{white-space:nowrap}.feed-preview{border:1px solid var(--border);border-radius:.375rem;flex-direction:column;gap:.5rem;max-height:20rem;padding:.75rem;display:flex;overflow-y:auto}.preview-fields,.polling-bindings{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.preview-fields li{flex-wrap:wrap;align-items:baseline;gap:.625rem;display:flex}.polling-bindings li{grid-template-columns:minmax(6rem,12rem) 1fr;align-items:center;gap:.75rem;display:grid}.polling-bindings li label{margin-top:0}.polling-cadence{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem 1.25rem;display:grid}.polling-cadence>div{flex-direction:column;gap:.35rem;display:flex}.polling-check{align-items:center;gap:.5rem;display:flex}.polling-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.vurable-fed{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.125rem .625rem;font-size:.8125rem}.admin-feeds-controls{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:1rem 0 .75rem;display:flex}.admin-feeds-controls label{align-self:center}.admin-feeds-controls input[type=search]{min-width:18rem}.admin-feeds-controls .hint{margin:0 0 0 auto}.admin-feeds-table-scroll{width:min(94vw,84rem);position:relative;left:50%;overflow-x:auto;transform:translate(-50%)}.admin-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.5rem .75rem}.admin-table thead th{white-space:nowrap;border-bottom-width:2px;font-weight:600}.admin-table tbody tr:hover{background:var(--surface-2,#7f7f7f0f)}.admin-sort{font:inherit;font-weight:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.admin-sort:hover{text-decoration:underline}.admin-feeds-when{white-space:nowrap}.admin-feeds-actions{white-space:nowrap;vertical-align:top}.admin-feeds-actions .admin-feeds-buttons{flex-direction:column;align-items:stretch;gap:.3rem;min-width:10.5rem;display:flex}.admin-feeds-actions button,.admin-feeds-actions a{border:1px solid var(--border);width:100%;color:inherit;text-align:center;white-space:nowrap;background:0 0;border-radius:.375rem;padding:.35rem .7rem;font-size:.8125rem;line-height:1.3;text-decoration:none;display:block}.admin-feeds-actions button:hover:not(:disabled),.admin-feeds-actions a:hover{border-color:var(--accent);color:var(--accent)}.admin-feeds-actions button.feed-steer-off{border-color:var(--danger);color:var(--danger)}.admin-feeds-actions button.feed-steer-on{border-color:var(--healthy);color:var(--healthy)}.admin-feeds-actions button.feed-steer-off:hover:not(:disabled){background:var(--danger);color:var(--on-accent)}.admin-feeds-actions button.feed-steer-on:hover:not(:disabled){background:var(--healthy);color:var(--on-accent)}.admin-feeds-table .feed-state+.hint{white-space:normal;max-width:18rem;margin-top:.2rem;display:block}.feed-state{white-space:nowrap}.feed-state-off,.feed-state-stalled{font-weight:600}.admin-table .polling-section{padding:1rem .25rem}
