
.c-tree{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0;}
.c-tree-node{display:flex;align-items:center;gap:var(--gap-tight);width:100%;min-width:0;padding:var(--inset-control) var(--inset-control);
    border:0;border-radius:var(--radius-control);background:transparent;color:var(--ink);font-family:var(--font-body);font-size:var(--type-note);
    line-height:var(--type-note-line);text-align:left;cursor:pointer;}
.c-tree-node:hover{background:var(--tree-node-hover);}
.c-tree-node:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;}
.c-tree-node--top{margin-top:var(--inset-control);background:var(--tree-group-fill);border-left:var(--inset-tag) solid var(--tree-group-edge);
    font-size:var(--type-field);}
.c-tree-node--child{position:relative;padding-left:calc(var(--inset-panel) + var(--inset-control));}
.c-tree-node--child::before{content:"";position:absolute;left:var(--inset-box);top:0;bottom:0;border-left:1px solid var(--tree-rule);}
.c-tree-node--quiet{color:var(--tree-count);font-style:italic;}
.c-tree-node--apart{margin-top:var(--inset-panel);border-top:1px solid var(--tree-rule);}
.c-tree-node.is-on{background:var(--tree-node-on);color:var(--on-tree-node-on);}
.c-tree-node.is-on .c-tree-count{color:inherit;}
.c-tree-node.is-drop{outline:2px dashed var(--tree-drop);outline-offset:1px;}
.c-tree-label{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;}
.c-tree-mark{flex:none;width:var(--gap-tight);height:var(--gap-tight);border-radius:var(--radius-pill);background:var(--tree-mark);}
.c-tree-count{flex:none;margin-left:auto;font-family:var(--font-code);font-size:var(--type-caption);color:var(--tree-count);white-space:nowrap;}
.c-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));grid-auto-rows:1fr;gap:var(--inset-control);min-width:0;}
.c-tile{display:flex;flex-direction:column;align-items:flex-start;gap:var(--gap-tight);min-width:0;padding:var(--inset-control) var(--inset-box);
    border:1px solid var(--tile-edge);border-radius:var(--radius-control);background:var(--tile-fill);color:var(--ink);
    font-family:var(--font-body);font-size:var(--type-note);line-height:var(--type-note-line);text-align:left;cursor:pointer;}
.c-tile:hover{background:var(--tile-fill-on);}
.c-tile:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;}
.c-tile[aria-checked="true"]{border-color:var(--tile-edge-on);background:var(--tile-fill-on);}
.c-tile[aria-disabled="true"]{opacity:.45;cursor:not-allowed;}
.tpl-form-card[aria-disabled="true"]{opacity:.45;}
.c-tile-head{display:flex;align-items:center;gap:var(--gap-tight);}
.c-tile-mark{flex:none;width:var(--type-field);height:var(--type-field);border-radius:var(--radius-pill);border:2px solid var(--tile-edge);}
.c-tile[aria-checked="true"] .c-tile-mark{border:5px solid var(--tile-mark-on);}
.c-tile-title{font-weight:var(--weight-semibold);}
.c-tile-art{display:flex;align-items:center;gap:var(--inset-tag);min-height:var(--type-panel-title);font-family:var(--font-code);font-size:var(--type-micro);color:var(--tile-art-ink);}
.c-tile-art i{display:inline-block;width:var(--type-label);height:var(--type-label);border:1px solid var(--tile-art);border-radius:var(--radius-pill);}
.c-tile-art b{display:inline-block;padding:0 var(--inset-tag);border:1px solid var(--tile-art);border-radius:var(--radius-control);font-weight:var(--weight-regular);}
.c-check{position:relative;display:inline-flex;align-items:center;gap:var(--gap-tight);cursor:pointer;font-family:var(--font-label);
    font-size:var(--tpl-toggle-label);letter-spacing:var(--type-badge-tracking-wide);text-transform:uppercase;line-height:var(--type-badge-line);
    color:var(--tpl-ph-color);}
.c-check input{position:absolute;width:1px;height:1px;opacity:0;margin:0;padding:0;pointer-events:none;}
.c-check::before{content:"";flex:0 0 13px;width:13px;height:13px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid var(--hairline-strong);border-radius:var(--radius-control);background:var(--surface-field);
    font-size:var(--type-badge);letter-spacing:0;color:var(--on-success);}
.c-check:has(input:checked){color:var(--ink);}
.c-check:has(input:checked)::before{content:"\2713";background:var(--success);border-color:var(--success);}
.c-check:has(input:focus-visible)::before{outline:2px solid var(--focus-ring);outline-offset:2px;}
.c-check:has(input:indeterminate)::before{border-color:rgba(var(--ink-rgb),0.35);}
.c-check:has(input:indeterminate)::after{content:"";position:absolute;left:2px;width:9px;top:calc(50% - 1px);height:2px;background:var(--ink-glyph-muted);}
.c-frame{border:1px solid var(--frame-edge);border-radius:var(--radius-card);overflow:hidden;background:var(--frame-body);min-width:0;}
.c-frame-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--inset-control) var(--inset-box);padding:var(--inset-control) var(--inset-box);
    background:var(--frame-head);font-family:var(--font-code);font-size:var(--type-caption);color:var(--muted);}
.c-frame-head > b{color:var(--ink);}
.c-frame-head-end{margin-left:auto;}
.c-frame-progress{height:var(--gap-tight);background:var(--frame-progress);}
.c-frame-progress > i{display:block;height:100%;background:var(--frame-progress-on);}
.c-frame-body{max-height:36rem;overflow:auto;padding:var(--inset-panel) var(--gap-block);}
.c-grid-quadrant--tl{background:var(--grid-q-tl);}
.c-grid-quadrant--tr{background:var(--grid-q-tr);}
.c-grid-quadrant--bl{background:var(--grid-q-bl);}
.c-grid-quadrant--br{background:var(--grid-q-br);}
.c-grid-legend{display:flex;flex-wrap:wrap;gap:var(--inset-control) var(--inset-panel);font-size:var(--type-note);color:var(--grid-label);}
.c-grid-legend i{display:inline-block;width:var(--inset-box);height:var(--inset-box);margin-right:var(--inset-tag);border-radius:var(--radius-pill);vertical-align:middle;}
.c-grid-legend .c-grid-legend-dot{background:var(--grid-dot);}
.c-grid-legend .c-grid-legend-mean{border:var(--result-axis-w) solid var(--grid-mean);}
.c-grid-legend .q-plot-legend-own{background:var(--grid-own);}
.c-grid-quadrants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--inset-control);}
.c-grid-quadrant{display:flex;flex-direction:column;gap:var(--gap-tight);padding:var(--inset-box);border:1px solid var(--grid-edge);border-radius:var(--radius-control);}
.c-stepper{display:inline-flex;align-items:stretch;border:1px solid var(--stepper-edge);border-radius:var(--radius-control);overflow:hidden;background:var(--stepper-fill);}
.c-stepper-btn{width:var(--app-control-h, 2rem);border:0;background:var(--stepper-btn);color:var(--stepper-btn-ink);font-size:var(--type-field);cursor:pointer;}
.c-stepper-btn:hover{background:var(--stepper-btn-hover);}
.c-stepper-btn:disabled{cursor:default;opacity:.45;}
.c-stepper-input{width:3em;border:0;background:transparent;text-align:center;font-family:var(--font-code);font-size:var(--type-field);color:var(--ink);-moz-appearance:textfield;appearance:textfield;}
.c-stepper-input::-webkit-inner-spin-button,.c-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.c-stepper-input:focus{outline:none;}
.c-stepper:focus-within{outline:2px solid var(--focus-ring);outline-offset:1px;}
.c-ufield{width:100%;min-width:0;box-sizing:border-box;padding-inline:0;border:0;border-bottom:1px solid var(--ufield-rule);border-radius:0;background:transparent;
    font-family:var(--font-body);font-size:var(--type-field);color:var(--ink);}
.c-scale-part{display:flex;flex-direction:column;gap:var(--inset-control);}
.c-ufield:focus{outline:none;border-bottom-color:var(--ufield-rule-focus);}
.c-scale{display:grid;grid-template-columns:minmax(9rem,13rem) minmax(0,1fr) minmax(9rem,13rem);gap:var(--inset-panel);align-items:start;}
.c-scale-end{display:flex;flex-direction:column;align-items:flex-start;gap:var(--inset-control);min-width:0;}
.c-scale-end--high{align-items:flex-end;text-align:right;}
.c-scale-end--high .c-ufield{text-align:right;}
.c-scale-track{position:relative;min-width:0;padding-top:var(--type-field);}
.c-scale-dots{position:relative;display:flex;justify-content:space-between;}
.c-scale-dots::before{content:"";position:absolute;left:var(--type-field);right:var(--type-field);top:50%;border-top:1px dashed var(--range-line);}
.c-scale-dot{position:relative;display:grid;place-items:center;width:calc(2 * var(--type-field));height:calc(2 * var(--type-field));border:1px solid var(--range-dot-edge);
    border-radius:var(--radius-pill);background:var(--stepper-fill);font-family:var(--font-code);font-size:var(--type-caption);color:var(--ink);}
.c-scale-dot--end{border-color:var(--range-dot-end);color:var(--range-dot-end);}
.c-scale-labels{display:flex;gap:var(--gap-tight);margin-top:var(--inset-control);}
.c-scale-labels .c-ufield{flex:1 1 0;width:0;text-align:center;font-size:var(--type-note);}
.c-scale-error[hidden]{display:none;}
@media (max-width:640px){
    .c-scale{grid-template-columns:repeat(2,minmax(0,1fr));}
    .c-scale-track{grid-column:1 / -1;grid-row:2;}
}
:is(input[type="checkbox"], span).c-switch{appearance:none;-webkit-appearance:none;position:relative;display:inline-block;box-sizing:border-box;flex-shrink:0;width:var(--switch-track-width);height:var(--switch-track-height);margin:0;border:0;border-radius:calc(var(--switch-track-height) / 2);background:var(--switch-off);cursor:pointer;transition:background var(--motion-fast);}
:is(input[type="checkbox"], span).c-switch::before{content:'';position:absolute;top:var(--switch-knob-inset);left:var(--switch-knob-inset);width:var(--switch-knob);height:var(--switch-knob);border-radius:50%;background:var(--surface-field);box-shadow:var(--switch-knob-shadow);transition:transform var(--motion-fast);}
:is(input[type="checkbox"].c-switch:checked, [data-switch]:has(input[value="1"]:checked) span.c-switch){background:var(--switch-on);}
:is(input[type="checkbox"].c-switch:checked, [data-switch]:has(input[value="1"]:checked) span.c-switch)::before{transform:translateX(calc(var(--switch-track-width) - var(--switch-knob) - 2 * var(--switch-knob-inset)));}
input[type="checkbox"].c-switch:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}
input[type="checkbox"].c-switch:disabled{cursor:not-allowed;}
@media (prefers-reduced-motion:reduce){
    :is(input[type="checkbox"], span).c-switch,
    :is(input[type="checkbox"], span).c-switch::before{transition:none;}
}
#app-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);background:var(--toast-fill);color:var(--on-toast);font-family:var(--font-label);font-size:var(--type-caption);letter-spacing:0.08em;padding:var(--gap-row) var(--inset-panel);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:1200;}
#app-toast.is-visible{opacity:1;transform:translate(-50%,0);}
