.oq-build{min-inline-size:0}.oq-build__editor{gap:var(--oq-space-3);min-inline-size:0;display:grid}.oq-build__bar{justify-content:space-between;align-items:center;gap:var(--oq-space-3);flex-wrap:wrap;display:flex}.oq-build__tabs{gap:var(--oq-space-2);flex-wrap:wrap;display:flex}.oq-build__tab,.oq-build__button,.oq-build__run{min-block-size:var(--oq-target-touch);min-inline-size:var(--oq-target-touch);padding:var(--oq-space-2) var(--oq-space-4);border:1px solid var(--oq-accent-text);border-radius:var(--oq-radius-md);background:var(--oq-surface);color:var(--oq-accent-text);font:inherit;cursor:pointer}.oq-build__tab[aria-pressed=true]{border-width:var(--oq-focus-width);background:var(--oq-accent-subtle);font-weight:600}.oq-build__run{background:var(--oq-accent-text);color:var(--oq-surface);justify-self:start;font-weight:600}.oq-build__button:disabled,.oq-build__run:disabled{cursor:not-allowed;opacity:.6;border-style:dashed}.oq-build__tab:focus-visible,.oq-build__button:focus-visible,.oq-build__run:focus-visible,.oq-build__field:focus-visible{outline:var(--oq-focus-width) solid var(--oq-focus-ring);outline-offset:var(--oq-focus-offset)}.oq-build__count,.oq-build__toolbox-note,.oq-build__help,.oq-build__limit-note,.oq-build__notice,.oq-build__loading{color:var(--oq-text-muted);font-size:var(--oq-text-sm);margin:0}.oq-build__count{color:var(--oq-text);font-weight:600}.oq-build__canvas{min-inline-size:0;block-size:calc(var(--oq-space-16) * 6);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface-sunken);position:relative;overflow:hidden}.oq-build__listbuilder{gap:var(--oq-space-3);min-inline-size:0;display:grid}.oq-build__list{gap:var(--oq-space-2);margin:0;padding:0;list-style:none;display:grid}.oq-build__empty{color:var(--oq-text-muted)}.oq-build__block{gap:var(--oq-space-2);padding:var(--oq-space-3);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);display:grid}.oq-build__row{align-items:center;gap:var(--oq-space-2);flex-wrap:wrap;display:flex}.oq-build__index{font-weight:600}.oq-build__label{flex-wrap:wrap;flex:1 1 calc(var(--oq-space-16) * 3);align-items:center;gap:var(--oq-space-2);min-inline-size:0;display:inline-flex}.oq-build__actions{gap:var(--oq-space-2);flex-wrap:wrap;display:flex}.oq-build__field{min-block-size:var(--oq-target-touch);min-inline-size:0;padding:var(--oq-space-2) var(--oq-space-3);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);color:var(--oq-text);font:inherit;inline-size:calc(var(--oq-space-16) * 2)}.oq-build__inner{gap:var(--oq-space-2);border-inline-start:var(--oq-focus-width) solid var(--oq-border-strong);margin-inline-start:var(--oq-space-4);padding-inline-start:var(--oq-space-3);display:grid}.oq-build__inner-title{margin:0;font-weight:600}.oq-build__add{align-items:center;gap:var(--oq-space-2);flex-wrap:wrap;display:flex}.oq-build__add-label{font-weight:600}.oq-build__runs{min-block-size:0}.oq-build__run-list{gap:var(--oq-space-2);margin:0;padding:0;list-style:none;display:grid}.oq-build__sr{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.oq-build__trial{align-items:end;gap:var(--oq-space-3);flex-wrap:wrap;display:flex}.oq-check[data-reduced-motion=true] .oq-build__canvas *,.oq-check[data-reduced-motion=true] .oq-build__block,.oq-check[data-reduced-motion=true] .oq-build__button{transition:none;animation:none}
.oq-chart-builder{min-inline-size:0}.oq-chart__choices{gap:var(--oq-space-2);border:0;min-inline-size:0;margin:0;padding:0;display:grid}.oq-chart{gap:var(--oq-space-2);min-inline-size:0;margin:0;display:grid}.oq-chart__title{font-weight:600}.oq-chart__scroll{max-inline-size:100%;overflow-x:auto}.oq-chart__svg{max-inline-size:none;font-family:var(--oq-font-sans);font-size:var(--oq-text-sm);display:block}.oq-chart__grid{stroke:var(--oq-border);stroke-width:1px}.oq-chart__axis{stroke:var(--oq-border-strong);stroke-width:2px}.oq-chart__bar,.oq-chart__dot,.oq-chart__slice{fill:var(--oq-accent);stroke:var(--oq-text);stroke-width:1px}.oq-chart__line{stroke:var(--oq-accent);stroke-width:3px}.oq-chart__tick,.oq-chart__label,.oq-chart__value{fill:var(--oq-text);font-size:var(--oq-text-sm)}.oq-chart__value{font-weight:600}.oq-chart__slice-number{fill:var(--oq-text);font-size:var(--oq-text-base);paint-order:stroke;stroke:var(--oq-surface);stroke-width:3px;font-weight:700}.oq-chart__pictures{gap:var(--oq-space-2);display:grid}.oq-chart__unit{color:var(--oq-text-muted);font-size:var(--oq-text-sm);margin:0}.oq-chart__picture-list{gap:var(--oq-space-1);margin:0;padding:0;list-style:none;display:grid}.oq-chart__picture-row{gap:var(--oq-space-3);flex-wrap:wrap;display:flex}.oq-chart__picture-label{min-inline-size:calc(var(--oq-space-16) * 2);font-weight:600}.oq-chart__picture-marks{color:var(--oq-accent-text);letter-spacing:var(--oq-space-1)}.oq-chart__table{border-collapse:collapse;inline-size:100%;font-size:var(--oq-text-sm)}.oq-chart__table th,.oq-chart__table td{padding:var(--oq-space-2);border-block-end:1px solid var(--oq-border);text-align:start}.oq-chart__caption{text-align:start;padding-block-end:var(--oq-space-2);font-weight:600}.oq-chart__hint{color:var(--oq-text-muted);font-size:var(--oq-text-sm);margin:0}
.oq-grid{min-inline-size:0}.oq-grid__layout{gap:var(--oq-space-4);min-inline-size:0;display:grid}.oq-grid__scroll{gap:var(--oq-space-2);z-index:1;max-inline-size:100%;padding-block:var(--oq-space-2);background:var(--oq-surface);display:grid;position:sticky;inset-block-start:0;overflow-x:auto}.oq-grid__board{border:1px solid var(--oq-border-strong);background:var(--oq-border-strong);gap:1px;inline-size:max-content;display:grid}.oq-grid__cell{min-block-size:var(--oq-target-touch);min-inline-size:var(--oq-target-touch);background:var(--oq-surface);color:var(--oq-text);font-size:var(--oq-text-lg);justify-content:center;align-items:center;font-weight:600;display:flex}.oq-grid__cell[data-wall=true]{background:var(--oq-surface-sunken)}.oq-grid__cell[data-goal=true]{background:var(--oq-success-bg)}.oq-grid__cell[data-robot=true]{outline:var(--oq-focus-width) solid var(--oq-accent-text);outline-offset:calc(var(--oq-focus-width) * -1);background:var(--oq-accent-subtle)}.oq-grid__key,.oq-grid__count,.oq-grid__limit-note{color:var(--oq-text-muted);font-size:var(--oq-text-sm);margin:0}.oq-grid__count{color:var(--oq-text);font-weight:600}.oq-grid__editor{gap:var(--oq-space-3);min-inline-size:0;display:grid}.oq-grid__list{align-items:flex-start;gap:var(--oq-space-2);flex-wrap:wrap;min-inline-size:0;margin:0;padding:0;list-style:none;display:flex}.oq-grid__list>.oq-grid__step{flex:0 auto;min-inline-size:0;max-inline-size:100%}.oq-grid__list>.oq-grid__step[data-step=repeat]{flex:100%}.oq-grid__empty{color:var(--oq-text-muted)}.oq-grid__step{gap:var(--oq-space-1);padding:var(--oq-space-1) var(--oq-space-2);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);display:grid}.oq-grid__row{align-items:center;gap:var(--oq-space-2);flex-wrap:wrap;display:flex}.oq-grid__index{font-weight:600}.oq-grid__label{flex-wrap:wrap;flex:1 1 calc(var(--oq-space-16) * 2);align-items:center;gap:var(--oq-space-2);min-inline-size:0;display:inline-flex}.oq-grid__actions,.oq-grid__add,.oq-grid__play{align-items:center;gap:var(--oq-space-2);flex-wrap:wrap;display:flex}.oq-grid__add-label{font-weight:600}.oq-grid__button,.oq-grid__run{min-block-size:var(--oq-target-touch);min-inline-size:var(--oq-target-touch);padding:var(--oq-space-2) var(--oq-space-4);border:1px solid var(--oq-accent-text);border-radius:var(--oq-radius-md);background:var(--oq-surface);color:var(--oq-accent-text);font:inherit;cursor:pointer}.oq-grid__run{background:var(--oq-accent-text);color:var(--oq-surface);font-weight:600}.oq-grid__button--icon{padding-inline:var(--oq-space-2)}.oq-grid__button:disabled,.oq-grid__run:disabled{cursor:not-allowed;opacity:.6;border-style:dashed}.oq-grid__field{inline-size:calc(var(--oq-space-16) * 2);min-block-size:var(--oq-target-touch);min-inline-size:0;padding:var(--oq-space-2) var(--oq-space-3);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);color:var(--oq-text);font:inherit}.oq-grid__button:focus-visible,.oq-grid__run:focus-visible,.oq-grid__field:focus-visible{outline:var(--oq-focus-width) solid var(--oq-focus-ring);outline-offset:var(--oq-focus-offset)}.oq-grid__inner{gap:var(--oq-space-2);border-inline-start:var(--oq-focus-width) solid var(--oq-border-strong);margin-inline-start:var(--oq-space-4);padding-inline-start:var(--oq-space-3);display:grid}.oq-grid__inner-title{margin:0;font-weight:600}.oq-grid__play{margin-block-start:var(--oq-space-3)}.oq-grid__status{min-block-size:0}.oq-grid__sr{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.oq-check[data-reduced-motion=true] .oq-grid__cell,.oq-check[data-reduced-motion=true] .oq-grid__button{transition:none;animation:none}
.oq-lab{min-inline-size:0}.oq-lab__panel{gap:var(--oq-space-3);min-inline-size:0;padding:var(--oq-space-4);border:1px solid var(--oq-border);border-radius:var(--oq-radius-md);background:var(--oq-surface-sunken);display:grid}.oq-lab__panel-title,.oq-lab__caption,.oq-lab__fallback-title{margin:0;font-weight:600}.oq-lab__caption{text-align:start;padding-block-end:var(--oq-space-2)}.oq-lab__score,.oq-lab__counts,.oq-lab__live{margin:0}.oq-lab__score{font-weight:600}.oq-lab__counts{color:var(--oq-text-muted);font-size:var(--oq-text-sm)}.oq-lab__table{border-collapse:collapse;inline-size:100%;font-size:var(--oq-text-sm)}.oq-lab__table th,.oq-lab__table td{padding:var(--oq-space-2);border-block-end:1px solid var(--oq-border);text-align:start;vertical-align:top}.oq-lab__list{gap:var(--oq-space-1);font-size:var(--oq-text-sm);margin:0;padding-inline-start:var(--oq-space-6);display:grid}.oq-lab__why>summary{min-block-size:var(--oq-target-touch);cursor:pointer;align-items:center;font-weight:600;display:flex}.oq-lab__button{min-block-size:var(--oq-target-touch);min-inline-size:var(--oq-target-touch);padding:var(--oq-space-2) var(--oq-space-4);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);color:var(--oq-text);font:inherit;cursor:pointer;font-weight:600}.oq-lab__button--primary{border-color:var(--oq-accent);background:var(--oq-accent);color:var(--oq-on-accent)}.oq-lab__button:disabled{cursor:not-allowed;color:var(--oq-text-muted);border-style:dashed}.oq-lab__field{min-block-size:var(--oq-target-touch);min-inline-size:0;max-inline-size:100%;padding:var(--oq-space-2) var(--oq-space-3);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);color:var(--oq-text);font:inherit}.oq-lab__field--number{inline-size:calc(var(--oq-space-16) * 2)}.oq-lab__button:focus-visible,.oq-lab__field:focus-visible,.oq-lab__slider:focus-visible,.oq-lab__why>summary:focus-visible{outline:var(--oq-focus-width) solid var(--oq-focus-ring);outline-offset:var(--oq-focus-offset)}.oq-lab__choices{border:0;min-inline-size:0;margin:0;padding:0}.oq-lab__controls,.oq-lab__param-row{gap:var(--oq-space-2);flex-wrap:wrap;align-items:center;display:flex}.oq-lab__param{gap:var(--oq-space-2);min-inline-size:0;display:grid}.oq-lab__slider{inline-size:100%;min-block-size:var(--oq-target-touch);accent-color:var(--oq-accent)}.oq-lab__svg{border:1px solid var(--oq-border);border-radius:var(--oq-radius-md);background:var(--oq-surface);block-size:auto;inline-size:100%;max-inline-size:100%;font-family:var(--oq-font-sans);font-size:var(--oq-text-sm);display:block}.oq-lab__frame{fill:none;stroke:var(--oq-border-strong);stroke-width:1px}.oq-lab__grid{stroke:var(--oq-border);stroke-width:1px}.oq-lab__axis{stroke:var(--oq-border-strong);stroke-width:2px}.oq-lab__tick,.oq-lab__axis-label,.oq-lab__centre-label{fill:var(--oq-text);font-size:var(--oq-text-xs)}.oq-lab__point{fill:var(--oq-text);stroke:var(--oq-surface);stroke-width:1px}.oq-lab__line{stroke:var(--oq-accent-text);stroke-width:3px}.oq-lab__gap{stroke:var(--oq-text-muted);stroke-width:2px;stroke-dasharray:4 3}.oq-lab__ask{fill:none;stroke:var(--oq-text);stroke-width:3px}.oq-lab__dot{stroke:var(--oq-text);stroke-width:1px}.oq-lab__dot--none{fill:var(--oq-surface)}.oq-lab__group-0{fill:var(--oq-house-1)}.oq-lab__group-1{fill:var(--oq-house-2)}.oq-lab__group-2{fill:var(--oq-house-3)}.oq-lab__group-3{fill:var(--oq-house-4)}.oq-lab__group-4{fill:var(--oq-accent)}.oq-lab__cross{fill:none;stroke:var(--oq-text);stroke-width:4px}.oq-lab__centre{transition:transform var(--oq-duration-base) var(--oq-ease-standard)}[data-reduced-motion=true] .oq-lab__centre{transition:none}.oq-lab__node{gap:var(--oq-space-2);min-inline-size:0;padding:var(--oq-space-3);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);margin:0;display:grid}.oq-lab__node-legend{padding-inline:var(--oq-space-2);font-weight:600}.oq-lab__branches{gap:var(--oq-space-3);padding:0 0 0 var(--oq-space-4);border-inline-start:var(--oq-focus-width) solid var(--oq-border-strong);margin:0;list-style:none;display:grid}.oq-lab__fallback{gap:var(--oq-space-2);padding:var(--oq-space-4);border:var(--oq-focus-width) solid var(--oq-warning-border);border-radius:var(--oq-radius-md);background:var(--oq-warning-bg);color:var(--oq-warning-text);display:grid}
.oq-project__brief,.oq-project__subject,.oq-project__files,.oq-project__rubric,.oq-project__peer{gap:var(--oq-space-2);flex-direction:column;display:flex}.oq-project__file-list,.oq-project__review-list{gap:var(--oq-space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.oq-project__file-list li{justify-content:space-between;align-items:center;gap:var(--oq-space-3);min-block-size:var(--oq-target-touch);display:flex}.oq-project__picker{gap:var(--oq-space-2);flex-direction:column;display:flex}.oq-project__picker input[type=file]{min-block-size:var(--oq-target-touch);font:inherit;color:var(--oq-text)}.oq-project__empty{color:var(--oq-text-muted)}.oq-project__peer{border-block-start:1px solid var(--oq-border);padding-block-start:var(--oq-space-4)}.oq-project__review-card{gap:var(--oq-space-3);padding:var(--oq-space-4);border:1px solid var(--oq-border);border-radius:var(--oq-radius-md);background:var(--oq-surface-sunken);flex-direction:column;display:flex}.oq-project__review-prompt{gap:var(--oq-space-1);flex-direction:column;display:flex}.oq-project__file-link{min-block-size:var(--oq-target-touch);color:var(--oq-accent-text);align-items:center;display:inline-flex}
.oq-py{gap:var(--oq-space-4);min-inline-size:0;max-inline-size:100%;font-family:var(--oq-font-sans);font-size:var(--oq-text-base);line-height:var(--oq-leading-normal);color:var(--oq-text);overflow-wrap:anywhere;display:grid}.oq-py__goal,.oq-py__sub{margin:0;font-weight:600}.oq-py__label{font-weight:600}.oq-py__help,.oq-py__original,.oq-py__given,.oq-py__why{color:var(--oq-text-muted);font-size:var(--oq-text-sm);margin:0}.oq-py__editor{border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface);min-inline-size:0;display:flex;overflow:hidden}.oq-py__gutter{padding-block:var(--oq-space-3);padding-inline:var(--oq-space-3);border-inline-end:1px solid var(--oq-border);background:var(--oq-surface-sunken);color:var(--oq-text-muted);-webkit-user-select:none;user-select:none;flex:none;overflow:hidden}.oq-py__numbers,.oq-py__code,.oq-py__stdin,.oq-py__pre{font-family:var(--oq-font-mono);font-size:var(--oq-text-sm);line-height:var(--oq-leading-normal);margin:0}.oq-py__numbers{text-align:end}.oq-py__code,.oq-py__stdin{box-sizing:border-box;min-inline-size:0;padding:var(--oq-space-3);background:var(--oq-surface);color:var(--oq-text);resize:vertical;border:0}.oq-py__code{white-space:pre;tab-size:4;flex:auto;overflow:auto}.oq-py__stdin{border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);inline-size:100%}.oq-py__input{gap:var(--oq-space-2);display:grid}.oq-py__code:focus-visible,.oq-py__stdin:focus-visible,.oq-py__pre:focus-visible,.oq-py__button:focus-visible,.oq-py__submit:focus-visible{outline:var(--oq-focus-width) solid var(--oq-focus-ring);outline-offset:var(--oq-focus-offset)}.oq-py__bar{gap:var(--oq-space-2);flex-wrap:wrap;display:flex}.oq-py__button,.oq-py__submit{min-block-size:var(--oq-target-touch);min-inline-size:var(--oq-target-touch);padding:var(--oq-space-2) var(--oq-space-4);border:1px solid var(--oq-accent-text);border-radius:var(--oq-radius-md);background:var(--oq-surface);color:var(--oq-accent-text);font:inherit;cursor:pointer}.oq-py__submit{border-width:var(--oq-focus-width);background:var(--oq-accent-subtle);justify-self:start;font-weight:600}.oq-py__button:disabled{cursor:not-allowed;opacity:.6;border-style:dashed}.oq-py__pre{padding:var(--oq-space-2) var(--oq-space-3);border:1px solid var(--oq-border);border-radius:var(--oq-radius-sm);background:var(--oq-surface-sunken);white-space:pre-wrap;overflow-wrap:anywhere}.oq-py__output{gap:var(--oq-space-2);min-block-size:0;display:grid}.oq-py__problem{padding:var(--oq-space-3);border:1px solid var(--oq-danger-border);border-inline-start-width:var(--oq-space-2);border-radius:var(--oq-radius-md);background:var(--oq-danger-bg);color:var(--oq-danger-text);margin:0}.oq-py__examples,.oq-py__cases{gap:var(--oq-space-2);display:grid}.oq-py__example,.oq-py__compare{gap:var(--oq-space-1);margin:0;display:grid}.oq-py__example dt,.oq-py__compare dt{font-weight:600}.oq-py__example dd,.oq-py__compare dd{margin:0}.oq-py__case-list{gap:var(--oq-space-2);margin:0;padding:0;list-style:none;display:grid}.oq-py__case{padding:var(--oq-space-3);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md);background:var(--oq-surface)}.oq-py__case--passed{border-color:var(--oq-success-border);background:var(--oq-success-bg)}.oq-py__case--not-yet{border-color:var(--oq-warning-border);background:var(--oq-warning-bg)}.oq-py__status{gap:var(--oq-space-2);display:grid}.oq-py__notice{color:var(--oq-text-muted);margin:0}.oq-py__result{padding:var(--oq-space-3);border:1px solid var(--oq-border-strong);border-radius:var(--oq-radius-md)}.oq-py__result--full{border-color:var(--oq-success-border);background:var(--oq-success-bg)}.oq-py__result--partial{border-color:var(--oq-warning-border);background:var(--oq-warning-bg)}.oq-py__result--none{border-color:var(--oq-info-border);background:var(--oq-info-bg)}.oq-py__result-label{margin:0;font-weight:600}
