:root{color-scheme:light;--bg: #F3F4F1;--panel: #FFFFFF;--subtle: #FAFBFA;--hover: #F7F9F7;--line: #DBE0DB;--ink: #1E2723;--muted: #5B6660;--accent: #3B6E5C;--accent-dark: #2A4F42;--accent-ink: #FFFFFF;--error: #9B2C2C;--error-bg: #FBEEEE;--warn: #8A6D1D;--warn-bg: #FBF6E7;--pk: #2A4F42;--pk-bg: #E4EEE9;--fk: #7A4E1D;--fk-bg: #FBF1E4;--shadow: rgba(30, 39, 35, .04);--shadow-strong: rgba(30, 39, 35, .14);--radius: 5px;--keep: #2A6B4A;--keep-bg: #E6F2EA;--drop: #9B2C2C;--drop-bg: #FAEDED;--highlight: #FCE9A8;--band-0: #E8F0F8;--band-1: #F6ECDD;--band-2: #EDE7F5;--band-3: #E4F1EC;--tree-and: #3F6FA8;--tree-or: #B0632A}:root[data-theme=dark]{color-scheme:dark;--bg: #161A18;--panel: #1E2422;--subtle: #222927;--hover: #273029;--line: #333B37;--ink: #E6EAE7;--muted: #9AA69F;--accent: #6FAE95;--accent-dark: #8AC7AC;--accent-ink: #10201A;--error: #F0A3A3;--error-bg: #38211F;--warn: #E6C87C;--warn-bg: #342E1C;--pk: #9FD3BD;--pk-bg: #22332C;--fk: #DDB183;--fk-bg: #33281C;--shadow: rgba(0, 0, 0, .35);--shadow-strong: rgba(0, 0, 0, .5);--keep: #8FD3AE;--keep-bg: #1F3328;--drop: #F0A3A3;--drop-bg: #3A2323;--highlight: #5A4B17;--band-0: #1F2A36;--band-1: #332A1E;--band-2: #2A2436;--band-3: #1E3129;--tree-and: #86B2E6;--tree-or: #E8A873}*{box-sizing:border-box}html{scroll-padding-top:calc(var(--sticky-top-height, 0px) + .75rem)}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.45}button,.file-label{padding:.5rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);font:inherit;font-size:.88rem;cursor:pointer}button:hover:not(:disabled),.file-label:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled){border-color:var(--accent-dark);background:var(--accent-dark)}button.secondary{border-color:var(--accent);color:var(--accent-dark)}button.secondary:hover:not(:disabled){border-color:var(--accent-dark);background:var(--pk-bg)}button.destructive{color:var(--error)}button.destructive:hover:not(:disabled){border-color:var(--error)}button.ghost{border-color:transparent;background:transparent}button.ghost:hover:not(:disabled){border-color:var(--line);color:var(--ink)}button.ghost.destructive:hover:not(:disabled){border-color:var(--error);color:var(--error)}.admin-link-icon,.file-label-icon,.btn-icon{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}input[type=file]{display:none}header{padding:1.1rem 1.5rem;border-bottom:1px solid var(--line);background:var(--panel)}.header-inner{max-width:960px;margin:0 auto}.title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.title-row h1{margin:0;font-size:1.4rem;font-weight:650;letter-spacing:-.01em}.title-actions{display:flex;align-items:center;gap:.75rem}.admin-link{display:inline-flex;flex:none;align-items:center;gap:.35rem;padding:.3rem .4rem;border:1px solid transparent;border-radius:var(--radius);color:var(--muted);font-size:.8rem;text-decoration:none;opacity:.45}.admin-link:hover,.admin-link:focus-visible{border-color:var(--line);color:var(--ink);opacity:1}.admin-link.is-signed-in{border-color:var(--line);opacity:1}.admin-link-icon{width:1rem;height:1rem}.icon-button{display:inline-flex;flex:none;align-items:center;padding:.3rem .4rem;border-color:transparent;background:transparent;color:var(--muted);opacity:.45}.icon-button:hover:not(:disabled),.icon-button:focus-visible{border-color:var(--line);color:var(--ink);opacity:1}.icon-sun,.icon-moon{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-sun{display:none}:root[data-theme=dark] .icon-sun{display:block}:root[data-theme=dark] .icon-moon{display:none}.back-link{color:var(--muted);font-size:.85rem;text-decoration:none}.back-link:hover,.back-link:focus-visible{color:var(--ink);text-decoration:underline}.row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.row[hidden]{display:none}#preset-buttons .is-active{border-color:var(--accent);background:var(--pk-bg);color:var(--accent-dark);font-weight:600}.row+.row,.row-subtle{margin-top:.6rem}.row-subtle button,.row-subtle .file-label{padding:.3rem .4rem;border-color:transparent;background:transparent;color:var(--muted);font-size:.8rem}.row-subtle button:hover:not(:disabled),.row-subtle .file-label:hover{border-color:var(--line);color:var(--ink)}#own-file-row .file-label{display:inline-flex;align-items:center;gap:.35rem}.file-label-icon{width:.9rem;height:.9rem}#status{margin:.7rem 0 0;color:var(--muted);font-size:.85rem}#status.is-ok{color:var(--accent-dark)}#status.is-bad{color:var(--error)}.load-error{margin:.7rem 0 0;color:var(--error);font-size:.85rem}.sticky-top{position:sticky;top:0;z-index:8;border-bottom:1px solid transparent;background:var(--bg)}.sticky-top.is-stuck{border-bottom-color:var(--line);box-shadow:0 4px 14px var(--shadow-strong)}.schema-bar{max-width:960px;margin:0 auto;padding:.75rem 1.5rem}#toggle-schema{display:inline-flex;align-items:center;gap:.4rem}#toggle-schema[aria-expanded=true] .schema-chevron{transform:rotate(180deg)}#schema-panel{max-height:60vh;overflow-y:auto;padding:.25rem 1.5rem 1.25rem}#schema-panel[hidden],.result-content[hidden]{display:none}.schema-empty{color:var(--muted);font-size:.88rem}.schema-grid{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:1rem}.schema-table{flex:0 1 auto;width:max-content;max-width:100%;overflow-x:auto;padding:.85rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 2px 8px var(--shadow)}.schema-table h3{margin:0 -.9rem .65rem;padding:0 .9rem .7rem;border-bottom:2px solid var(--accent);font-size:.95rem;font-weight:650;overflow-wrap:anywhere}table.schema-cols{width:max-content;max-width:none;border-collapse:collapse;table-layout:auto;font-size:.82rem}table.schema-cols td{padding:.35rem .3rem;border-top:1px solid var(--line);vertical-align:middle;white-space:nowrap}table.schema-cols tr:first-child td{border-top:none}.col-name{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.cell-value{display:block;white-space:nowrap}.cell-null{color:var(--muted);font-size:.85em;font-style:italic;letter-spacing:.04em}.col-type,.block-title,.result-label,.result-info,.pager{color:var(--muted)}.col-badges{white-space:nowrap}.badge{display:inline-block;margin:.08rem .3rem .08rem 0;padding:.12rem .35rem;border-radius:3px;font-size:.65rem;font-weight:650;line-height:1.3;white-space:nowrap}.badge-pk{background:var(--pk-bg);color:var(--pk)}.badge-fk{background:var(--fk-bg);color:var(--fk)}main{display:flex;max-width:960px;flex-direction:column;gap:1.25rem;margin:1.5rem auto;padding:0 1.5rem}#blocks{margin-top:.5rem}.block{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.block-head,.result-head{display:flex;align-items:center;justify-content:space-between}.block-head{flex-wrap:wrap;gap:.5rem;padding:.6rem .9rem;border-bottom:1px solid var(--line);background:var(--subtle)}.block-title{min-width:0;max-width:16rem;flex:1 1 auto;padding:.15rem .3rem;border:1px solid transparent;border-radius:var(--radius);background:transparent;font:inherit;font-size:.85rem;font-weight:600}.block-title::placeholder{color:var(--muted);opacity:1}.block-title:hover{border-color:var(--line)}.block-title:focus-visible{border-color:var(--accent);background:var(--panel);color:var(--ink);outline:none}.block-actions{display:flex;align-items:center;gap:.25rem;margin-left:auto}.block-actions button{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.82rem}.block-actions .btn-move,.block-actions .btn-duplicate,.block-actions .btn-remove{padding:.35rem .4rem;color:var(--muted)}.block-actions .btn-remove:hover:not(:disabled){border-color:var(--error);color:var(--error)}.block-actions .btn-run{margin-left:.6rem}.btn-run .btn-icon{width:.8rem;height:.8rem;fill:currentColor}.btn-run kbd{margin-left:.15rem;font:inherit;font-size:.72rem;opacity:.75}.block .CodeMirror{min-height:calc(4.35em + 1rem);height:auto;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:14px;cursor:text}.block .CodeMirror-scroll{height:auto;overflow-y:hidden!important;overflow-x:auto!important;cursor:text}:root[data-theme=dark] .block .CodeMirror{background:var(--panel);color:var(--ink)}:root[data-theme=dark] .block .CodeMirror-gutters{border-right-color:var(--line);background:var(--subtle)}:root[data-theme=dark] .block .CodeMirror-linenumber{color:var(--muted)}:root[data-theme=dark] .block .CodeMirror-cursor{border-left-color:var(--ink)}:root[data-theme=dark] .block .CodeMirror-selected{background:#31403a}:root[data-theme=dark] .block .CodeMirror-focused .CodeMirror-selected{background:#3b4e46}:root[data-theme=dark] .block div.CodeMirror span.CodeMirror-matchingbracket{color:var(--accent-dark)}:root[data-theme=dark] .block div.CodeMirror span.CodeMirror-nonmatchingbracket{color:var(--error)}:root[data-theme=dark] .block .cm-s-default .cm-keyword{color:#c7a0e8}:root[data-theme=dark] .block .cm-s-default .cm-atom{color:#8fb0f0}:root[data-theme=dark] .block .cm-s-default .cm-number{color:#7fcba4}:root[data-theme=dark] .block .cm-s-default .cm-def{color:#7fa9f5}:root[data-theme=dark] .block .cm-s-default .cm-variable-2{color:#79b8e8}:root[data-theme=dark] .block .cm-s-default .cm-variable-3,:root[data-theme=dark] .block .cm-s-default .cm-type{color:#6fc7a4}:root[data-theme=dark] .block .cm-s-default .cm-comment{color:#c9a96a}:root[data-theme=dark] .block .cm-s-default .cm-string{color:#e89a9a}:root[data-theme=dark] .block .cm-s-default .cm-string-2{color:#f0a472}:root[data-theme=dark] .block .cm-s-default .cm-meta{color:var(--muted)}:root[data-theme=dark] .block .cm-s-default .cm-builtin{color:#b99be8}:root[data-theme=dark] .block .cm-s-default .cm-bracket{color:#a9ae93}:root[data-theme=dark] .block .cm-s-default .cm-error{color:var(--error)}:root[data-theme=dark] ul.CodeMirror-hints{border-color:var(--line);background:var(--panel);box-shadow:2px 3px 5px var(--shadow-strong);color:var(--ink)}:root[data-theme=dark] ul.CodeMirror-hints li.CodeMirror-hint{color:var(--ink)}:root[data-theme=dark] ul.CodeMirror-hints li.CodeMirror-hint-active{background:var(--accent);color:var(--accent-ink)}.result{padding:.75rem .9rem;border-top:1px solid var(--line)}.result:empty{display:none}.result-head{gap:.75rem;margin-bottom:.65rem}.result-label{font-size:.82rem;font-weight:600}.result-toggle{display:inline-flex;align-items:center;gap:.3rem;margin-left:-.35rem;padding:.25rem .45rem .25rem .35rem;border-color:transparent;background:transparent;color:var(--muted)}.result-toggle:hover:not(:disabled){border-color:transparent;background:var(--hover);color:var(--ink)}.result-toggle:hover .result-label{color:var(--ink)}.result-toggle-icon{transition:transform .15s}.result-toggle[aria-expanded=false] .result-toggle-icon{transform:rotate(-90deg)}.result-summary{font-size:.82rem;font-variant-numeric:tabular-nums}.result-summary[hidden]{display:none}@media(prefers-reduced-motion:reduce){.result-toggle-icon{transition:none}}.pager button{padding:.3rem .6rem;font-size:.8rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:.25rem .5rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{border-bottom:2px solid var(--accent);background:var(--pk-bg);color:var(--ink);font-weight:650}.column-name,.column-table{display:block}.column-table{color:var(--accent);font-size:.72rem;font-weight:400}tbody tr:hover{background:var(--hover)}.result-info{margin:.5rem 0 0;font-size:.82rem}.result-info-top{margin:0 0 .5rem;color:var(--muted)}.result-info.is-error,.result-info.is-warn{margin:0 0 .6rem;padding:.5rem .7rem;border-radius:var(--radius)}.result-info.is-error{background:var(--error-bg);color:var(--error);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.result-info.is-warn{background:var(--warn-bg);color:var(--warn)}.result-set+.result-set{margin-top:1.1rem;padding-top:.9rem;border-top:2px solid var(--line)}.result-set-label{margin:0 0 .35rem;font-size:.8rem;font-weight:600;color:var(--accent)}.pager{display:flex;align-items:center;gap:.7rem;margin-top:.6rem;font-size:.82rem}.bottom-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.bottom-bar button,.bottom-bar .file-label{display:inline-flex;align-items:center;gap:.4rem}.btn-icon{width:.95rem;height:.95rem;flex:none}.bottom-bar [hidden]{display:none}#reset-workspace{margin-left:auto}.footer{max-width:960px;margin:0 auto;padding:0 1.5rem min(50vh,24rem)}#storage-warning{margin:.7rem 0 0;font-size:.85rem}.tab-warning{padding:.65rem 1.5rem;border-bottom:1px solid var(--warn);background:var(--warn-bg);color:var(--warn);font-size:.88rem;font-weight:600;text-align:center}.tab-warning[hidden]{display:none}.toast{position:fixed;right:1.5rem;bottom:1.5rem;z-index:10;display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem .6rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 4px 14px var(--shadow-strong);font-size:.85rem}.toast[hidden]{display:none}dialog{max-width:min(calc(100vw - 2rem),28rem);padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);box-shadow:0 8px 28px var(--shadow-strong)}dialog::backdrop{background:#0f16124d}.export-dialog-form{display:grid;gap:.55rem;min-width:min(22rem,calc(100vw - 4rem));padding:1.25rem}.export-dialog-form h2{margin:0 0 .35rem;font-size:1.05rem}.export-dialog-group{display:grid;gap:.55rem}.export-dialog-group[hidden]{display:none}.export-filename-field{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--muted)}.export-dialog-form input{width:100%;padding:.5rem .6rem;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}.export-filename-field span{padding-right:.6rem;white-space:nowrap}.export-filename-field:focus-within{outline:2px solid var(--accent);outline-offset:1px}.export-dialog-form input:focus-visible{outline:0}.export-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.55rem}.result-head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}.result-head-actions .result-steps{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-color:var(--accent);background:var(--pk-bg);color:var(--accent-dark);font-size:.8rem;font-weight:600}.result-head-actions .result-steps .btn-icon{width:1.1rem;height:1.1rem}.result-head-actions .result-steps:hover:not(:disabled){border-color:var(--accent-dark);background:var(--accent);color:var(--accent-ink)}.steps-status{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:-.2rem 0 .65rem;padding:.45rem .7rem;border-radius:var(--radius);background:var(--subtle);color:var(--muted);font-size:.82rem}.steps-status[hidden]{display:none}.steps-status button{padding:.2rem .5rem;font-size:.8rem}dialog.steps-dialog{display:flex;width:min(1200px,calc(100vw - 2rem));max-width:none;height:calc(100vh - 2rem);max-height:none;flex-direction:column;font-size:1.15rem}dialog.steps-dialog:not([open]){display:none}.steps-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.25rem;border-bottom:1px solid var(--line);background:var(--subtle)}.steps-head h2{margin:0;font-size:1.15rem}.steps-head-title{color:var(--muted);font-weight:400}.steps-close{padding:.2rem .6rem;font-size:1.1rem}.steps-query{flex:none;max-height:9.5em;margin:0;padding:.75rem 1.25rem;overflow:auto;border-bottom:1px solid var(--line);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1.05rem;line-height:1.5;white-space:pre-wrap}.steps-query mark{padding:.05em .1em;border-radius:3px;background:var(--highlight);box-shadow:0 0 0 1px var(--warn);color:inherit}.steps-rail{display:flex;flex:none;gap:.35rem;margin:0;padding:.6rem 1.25rem;overflow-x:auto;border-bottom:1px solid var(--line);list-style:none}.steps-rail li{display:flex;align-items:center}.steps-rail li+li:before{margin-right:.35rem;color:var(--muted);content:"→"}.steps-rail-item{display:flex;flex-direction:column;align-items:flex-start;padding:.3rem .6rem;line-height:1.2;white-space:nowrap}.steps-rail-label{font-size:.75rem;color:var(--muted)}.steps-rail-count{font-size:.95rem;font-weight:650;font-variant-numeric:tabular-nums}.steps-rail-item.is-done{background:var(--subtle)}.steps-rail-item.is-current{border-color:var(--accent);background:var(--pk-bg);box-shadow:inset 0 -3px 0 var(--accent)}.steps-body{flex:1 1 auto;min-height:0;padding:1rem 1.25rem 1.25rem;overflow:auto}.step-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;color:var(--muted);font-size:.9rem}.step-final{padding:.05rem .5rem;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.8rem;font-weight:600}.step-title{margin:.2rem 0 .5rem;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1.3rem;font-weight:600;overflow-wrap:anywhere}.step-title.is-plain{font-family:inherit}.step-count{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.4rem;margin:0 0 .6rem}.step-count-number{font-size:2.8rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--accent-dark)}.step-count-unit{font-size:1.2rem;font-weight:600}.step-count-before{margin-left:.6rem;color:var(--muted);font-size:1rem}.step-text{max-width:60rem;margin:0 0 .6rem}.step-text code,.step-note code,.step-bracketed code{padding:.05em .3em;border-radius:3px;background:var(--subtle);box-shadow:inset 0 0 0 1px var(--line);font-size:.92em}.step-formula{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem;margin:0 0 .8rem;font-variant-numeric:tabular-nums}.step-formula-op{color:var(--muted)}.step-note{max-width:60rem;margin:0 0 .7rem;padding:.55rem .8rem;border-radius:var(--radius)}.step-note.is-warn{background:var(--warn-bg);color:var(--warn)}.step-note.is-info{background:var(--subtle);box-shadow:inset 0 0 0 1px var(--line)}.step-tree{margin:.2rem 0 .9rem}.tree{padding:.4rem .6rem .55rem;border:2px solid var(--line);border-radius:var(--radius)}.tree-and{border-color:var(--tree-and)}.tree-or{border-color:var(--tree-or)}.tree-op{margin-bottom:.35rem;font-size:.95rem}.tree-and>.tree-op strong{color:var(--tree-and)}.tree-or>.tree-op strong{color:var(--tree-or)}.tree-op span{color:var(--muted)}.tree-children{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.tree-leaf{padding:.3rem .55rem;border-radius:var(--radius);background:var(--subtle);box-shadow:inset 0 0 0 1px var(--line);font-size:.98rem}.step-bracketed{margin-top:.6rem}.step-bracketed code{display:block;width:fit-content;max-width:100%;margin-top:.3rem;padding:.3rem .55rem;white-space:pre-wrap}.step-sample{margin-top:1rem}.step-sample-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1rem;margin-bottom:.35rem}.step-sample-caption{margin:0;font-weight:600}.step-sample-toggle{color:var(--muted);font-size:.9rem;cursor:pointer}.step-sample-more{margin:.35rem 0 0;color:var(--muted);font-size:.95rem}table.step-table{font-size:1rem}.step-table th,.step-table td{padding:.3rem .6rem}.th-line{display:block}.th-table{color:var(--muted);font-weight:400}.th-sort{color:var(--accent)}.th-sub{display:block;color:var(--accent);font-size:.8rem;font-weight:400}.step-table th.is-focus{box-shadow:inset 0 -3px 0 var(--warn);background:var(--highlight)}.step-table td.is-focus{font-weight:650}.step-table .mark-col{width:1%;font-weight:600}.step-table tr.is-keep{background:var(--keep-bg)}.step-table tr.is-keep .mark-col{color:var(--keep)}.step-table tr.is-drop,.step-table tr.is-dup{background:var(--drop-bg);color:var(--muted)}.step-table tr.is-drop td:not(.mark-col),.step-table tr.is-dup td:not(.mark-col){text-decoration:line-through;text-decoration-color:var(--drop)}.step-table tr.is-drop .mark-col,.step-table tr.is-dup .mark-col{color:var(--drop)}.mark-note{font-weight:400}.step-table tr.band-0{background:var(--band-0)}.step-table tr.band-1{background:var(--band-1)}.step-table tr.band-2{background:var(--band-2)}.step-table tr.band-3{background:var(--band-3)}.step-table tr.group-head td{padding-top:.5rem;border-top:3px solid var(--panel)}.group-size,.step-table tr.group-more td{color:var(--muted)}.step-table tr.group-more td{font-size:.9rem;font-style:italic}.step-table tbody tr.group-row:hover,.step-table tbody tr.is-keep:hover,.step-table tbody tr.is-drop:hover,.step-table tbody tr.is-dup:hover{filter:brightness(.97)}.sample-empty td{color:var(--muted);font-style:italic}.steps-foot{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.6rem 1.25rem .2rem;border-top:1px solid var(--line)}.steps-foot button{min-width:8rem;padding:.55rem 1rem;font-size:1.05rem}.steps-position{min-width:4rem;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}.steps-hint{margin:0;padding:.2rem 1.25rem .7rem;color:var(--muted);font-size:.9rem;text-align:center}@media(max-width:560px){dialog.steps-dialog{width:100vw;height:100vh;font-size:1rem}.step-count-number{font-size:2.1rem}.steps-foot button{min-width:0}}.admin-card{padding:1.1rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.admin-card h2{margin:0 0 .5rem;font-size:1.05rem;font-weight:650}.admin-hint{margin:0 0 .9rem;color:var(--muted);font-size:.83rem}.admin-hint code{padding:.05rem .25rem;border-radius:3px;background:var(--bg);font-size:.95em}.admin-form{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.admin-form label:not(.admin-check){color:var(--muted);font-size:.85rem}.admin-form input[type=password],.admin-form input[type=number],.admin-row-label{padding:.45rem .6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);font:inherit;font-size:.88rem}.admin-form input[type=number]{width:7rem}#config-panel:not([hidden]),.settings-groups{display:flex;flex-direction:column;gap:1.25rem}.settings-groups{flex-wrap:nowrap;align-items:stretch}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.85rem 0;border-top:1px solid var(--line)}.setting-row:last-child{padding-bottom:0}.setting-text{min-width:0;max-width:40rem}.admin-form label.setting-label{display:block;color:var(--ink);font-size:.92rem;font-weight:600;cursor:pointer}.setting-description{margin:.15rem 0 0;color:var(--muted);font-size:.83rem}.setting-control{display:flex;flex:none;align-items:center;gap:.6rem}.setting-hint{color:var(--muted);font-size:.83rem;font-variant-numeric:tabular-nums;text-align:right}.switch-state{min-width:1.6rem;color:var(--muted);font-size:.83rem;text-align:right}input.switch{position:relative;width:2.6rem;height:1.5rem;margin:0;flex:none;border:1px solid var(--line);border-radius:999px;background:var(--bg);cursor:pointer;appearance:none;transition:background-color .15s,border-color .15s}input.switch:before{position:absolute;top:2px;left:2px;width:calc(1.5rem - 6px);height:calc(1.5rem - 6px);border-radius:50%;background:var(--panel);box-shadow:0 1px 2px var(--shadow-strong);content:"";transition:transform .15s}input.switch:checked{border-color:var(--accent);background:var(--accent)}input.switch:checked:before{transform:translate(1.1rem)}input.switch:hover{border-color:var(--accent)}input.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){input.switch,input.switch:before{transition:none}}@media(max-width:560px){.setting-row{flex-direction:column;align-items:flex-start;gap:.5rem}.setting-control{align-self:flex-end}}.admin-form input:focus-visible,.admin-row-label:focus-visible{border-color:var(--accent);outline:2px solid var(--pk-bg)}.admin-check{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink);font-size:.85rem;white-space:nowrap;cursor:pointer}.admin-check input:disabled{cursor:not-allowed}.admin-check:has(input:disabled){color:var(--muted);cursor:not-allowed}.admin-row{padding:.75rem 0;border-top:1px solid var(--line)}.admin-row:first-child{border-top:0;padding-top:0}.admin-row--missing{background:var(--error-bg);margin:0 -1.25rem;padding-right:1.25rem;padding-left:1.25rem}.admin-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.admin-row-file{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;font-weight:650;overflow-wrap:anywhere}.admin-row-meta{margin-left:auto;color:var(--muted);font-size:.78rem}.badge-new{background:var(--pk-bg);color:var(--pk)}.badge-missing{background:var(--error-bg);color:var(--error);box-shadow:inset 0 0 0 1px currentColor}.admin-row-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.admin-row-label{flex:1 1 14rem;min-width:0}.admin-row-buttons{display:flex;margin-left:auto;gap:.35rem}.admin-row-buttons button{padding:.3rem .55rem;font-size:.8rem}.dropzone{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:1rem;padding:.9rem 1rem;border:1px dashed var(--line);border-radius:var(--radius);background:var(--bg)}.dropzone.is-active{border-color:var(--accent);background:var(--pk-bg)}.dropzone-hint{color:var(--muted);font-size:.82rem}button.btn-danger:hover:not(:disabled){border-color:var(--error);color:var(--error)}.admin-actions{position:sticky;bottom:.75rem;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;margin-bottom:1.5rem;padding:.7rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 -4px 16px var(--shadow)}.admin-actions.is-dirty{border-color:var(--warn);background:var(--warn-bg);box-shadow:0 -4px 18px var(--shadow-strong)}.admin-actions-state{color:var(--muted);font-size:.88rem}.admin-actions-state:before{display:inline-block;width:.55rem;height:.55rem;margin-right:.45rem;border-radius:50%;background:var(--accent);content:"";vertical-align:.05em}.admin-actions.is-dirty .admin-actions-state{color:var(--warn);font-weight:600}.admin-actions.is-dirty .admin-actions-state:before{background:var(--warn)}.admin-actions-buttons{display:flex;flex-wrap:wrap;gap:.6rem}.admin-actions kbd{margin-left:.45rem;font:inherit;font-size:.72rem;opacity:.75}@media(max-width:560px){.admin-actions{padding:.6rem .8rem}.admin-actions kbd{display:none}.admin-actions-buttons{flex-wrap:nowrap}}@media(max-width:420px){.schema-table{width:100%;padding-right:.7rem;padding-left:.7rem}.schema-table h3{margin-right:-.7rem;margin-left:-.7rem;padding-right:.7rem;padding-left:.7rem}table.schema-cols{font-size:.78rem}}
