/* dev-kit.css — developer tools (assets/js/dev-kit.js): code views, editor gutter, JSON tree, tables, errors, shell */
.dk-studio .ts-ed{font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace!important;tab-size:2}
.dk-gw{position:relative}
.dk-gw .ts-ed{white-space:pre!important;overflow-wrap:normal!important;overflow:auto;padding-left:10px}
.dk-gut{flex:none;margin:0;padding:14px 8px 14px 0;box-sizing:content-box;overflow:hidden;text-align:right;user-select:none;color:var(--faint,#8a94a7);background:var(--field,#f6f8fb);border-right:1px solid var(--border,#e4e9f2);font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace;min-width:3ch}
.dk-mark{position:absolute;left:0;right:0;pointer-events:none;background:rgba(220,38,38,.12);border-left:3px solid #dc2626}
.dk-mark[hidden]{display:none}
/* result area */
.ts-view.dk-out{padding:0;display:flex;flex-direction:column;font-size:13px}
.dk-tabs{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--border,#e4e9f2);background:var(--panel,#fff);position:sticky;top:0;z-index:2;flex-wrap:wrap}
.dk-tabs button{border:1px solid transparent;background:none;border-radius:8px;padding:5px 11px;font:600 12.5px inherit;font-family:inherit;color:var(--muted,#5a6377);cursor:pointer}
.dk-tabs button:hover{background:var(--field,#f4f6fb)}
.dk-tabs button.on{background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4);border-color:var(--accent-soft,#eef1fe)}
.dk-badge{margin-left:auto;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--field,#f4f6fb);color:var(--muted,#5a6377)}
.dk-badge.good{background:#dcfce7;color:#166534}.dk-badge.bad{background:#fee2e2;color:#991b1b}.dk-badge.warn{background:#fef3c7;color:#92400e}
.dk-vbody{flex:1;min-height:0}
.dk-vbody.pad{padding:14px 16px}
/* code with line numbers */
.dk-code{font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace;padding:10px 0;min-width:100%;box-sizing:border-box;color:var(--text,#1e2635)}
.dk-r{display:flex;min-width:0}
.dk-r>i{flex:none;width:calc(var(--dk-w,2ch) + 1.6ch);padding:0 1.2ch 0 .6ch;text-align:right;font-style:normal;color:var(--faint,#8a94a7);user-select:none;position:sticky;left:0;background:var(--field,#f8fafc)}
.dk-r>code{flex:1;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;padding-right:14px;font:inherit;background:none}
.dk-code.nw .dk-r>code{white-space:pre;overflow-wrap:normal}
.dk-code.nw{width:max-content}
.dk-r.err{background:rgba(220,38,38,.1)}
.dk-r:hover>code{background:rgba(79,110,247,.05)}
.dk-more,.dk-empty{margin:8px 14px;color:var(--faint,#8a94a7);font-size:12.5px}
/* highlight.js colours (light / dark) */
.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-literal,.hljs-meta .hljs-keyword{color:#7c3aed}
.hljs-string,.hljs-regexp,.hljs-selector-attr,.hljs-addition,.hljs-template-tag{color:#047857}
.hljs-number,.hljs-symbol,.hljs-bullet{color:#c2410c}
.hljs-attr,.hljs-attribute,.hljs-property,.hljs-selector-class,.hljs-selector-id,.hljs-variable,.hljs-template-variable{color:#1d4ed8}
.hljs-title,.hljs-section,.hljs-name,.hljs-type,.hljs-class .hljs-title{color:#b91c1c}
.hljs-tag{color:#64748b}
.hljs-comment,.hljs-quote,.hljs-meta{color:#94a3b8;font-style:italic}
.hljs-deletion{color:#b91c1c;background:#fee2e2}
.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
/* JSON tree */
.dk-tree{display:flex;flex-direction:column;min-height:100%}
.dk-tbar{display:flex;gap:6px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border,#e4e9f2);flex-wrap:wrap}
.dk-tbar input{flex:1;min-width:140px;height:30px;border:1px solid var(--border,#e4e9f2);border-radius:8px;padding:0 10px;font:inherit;font-size:13px;background:var(--panel,#fff);color:inherit}
.dk-tbody{padding:8px 12px;font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;flex:1;overflow:auto}
.dk-n{white-space:nowrap}
.dk-kids{padding-left:18px;border-left:1px dashed var(--border-2,#dfe4ee);margin-left:5px}
.dk-tg{display:inline-block;width:14px;margin-left:-14px;cursor:pointer;color:var(--faint,#8a94a7);user-select:none}
.dk-n.c{margin-left:14px}
.dk-kids>.dk-n:not(.c){margin-left:0}
.dk-k{color:#1d4ed8;cursor:pointer;border-radius:4px}
.dk-k:hover{background:var(--accent-soft,#eef1fe)}
.dk-n>b{font-weight:400;color:var(--faint,#8a94a7)}
.dk-v.string{color:#047857}.dk-v.number{color:#c2410c}.dk-v.boolean{color:#7c3aed}.dk-v.null{color:#94a3b8;font-style:italic}
.dk-br{color:var(--muted,#5a6377)}
.dk-cnt{color:var(--faint,#8a94a7);font-size:12px;margin:0 6px;cursor:pointer;font-family:inherit}
.dk-k.hit,.dk-v.hit{background:#fef08a;color:#713f12}
.dk-tpath{padding:6px 12px;border-top:1px solid var(--border,#e4e9f2);font-size:12px;color:var(--muted,#5a6377);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dk-tpath code{font-size:12px;color:var(--accent-dark,#3a52c4)}
/* tables */
.dk-tablewrap{overflow:auto;max-width:100%}
.dk-table{border-collapse:collapse;font-size:12.5px;min-width:100%}
.dk-table th,.dk-table td{border:1px solid var(--border,#e4e9f2);padding:5px 9px;text-align:left;vertical-align:top;white-space:nowrap;max-width:360px;overflow:hidden;text-overflow:ellipsis}
.dk-table thead th{background:var(--panel,#fff);position:sticky;top:0;z-index:1;font-weight:700}
.dk-table tbody th{color:var(--faint,#8a94a7);font-weight:500;background:var(--panel,#fff);text-align:right}
.dk-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.dk-table td.nul{color:#94a3b8;font-style:italic}
/* errors */
.dk-err{margin:14px;padding:14px 16px;border:1px solid #fecaca;background:#fef2f2;border-radius:12px;color:#7f1d1d}
.dk-err-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}
.dk-err-h b{font-size:14.5px}
.dk-err p{margin:8px 0 0;font-size:13.5px;line-height:1.5}
.dk-err .cu-btns{margin-top:12px}
.dk-hint{color:#92400e}
.dk-snip{margin-top:10px;background:#fff;border:1px solid #fecaca;border-radius:8px;padding:6px 0;font:12.5px/1.55 ui-monospace,Consolas,monospace;overflow:auto;color:#1e2635}
.dk-snip>div{display:flex;white-space:pre}
.dk-snip i{flex:none;width:4.5ch;padding-right:1ch;text-align:right;color:#94a3b8;font-style:normal}
.dk-snip .bad{background:#fee2e2}
.dk-snip .car code{color:#dc2626;font-weight:700}
.dk-snip code{font:inherit;background:none}
/* report cards */
.dk-ok{margin:14px;padding:14px 16px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:12px;color:#14532d}
.dk-ok b{font-size:14.5px}
.dk-ok p,.dk-warn p{margin:6px 0 0;font-size:13.5px}
.dk-warn{margin:14px;padding:12px 16px;border:1px solid #fde68a;background:#fffbeb;border-radius:12px;color:#78350f;font-size:13.5px}
.dk-warn ul,.dk-ok ul{margin:6px 0 0;padding-left:20px}
.dk-sec{margin:14px}
.dk-sec h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#64748b)}
.dk-kv{display:grid;grid-template-columns:minmax(110px,max-content) minmax(0,1fr);gap:6px 14px;font-size:13px;align-items:baseline}
.dk-kv>span{color:var(--muted,#5a6377)}
.dk-kv>b{font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.dk-kv code,.dk-mono{font:12.5px ui-monospace,Consolas,monospace}
/* stand-alone editors and shell for custom tools */
.dk-ed{display:flex;flex-direction:column;background:var(--panel,#fff);border:1px solid var(--border,#e4e9f2);border-radius:14px;overflow:hidden;min-width:0}
.dk-edh{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border,#e4e9f2);font-size:13px;min-height:44px;box-sizing:border-box}
.dk-edh .grow{flex:1}
.dk-ed .ts-edwrap{flex:none;height:var(--dk-edh,360px);display:flex;position:relative}
.dk-edh b{white-space:nowrap}
.dk-edh .ts-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dk-edh .cu-cp{flex:none}
.dk-ed .ts-ed{flex:1;width:100%;box-sizing:border-box;margin:0;padding:14px 16px 14px 10px;border:0;outline:0;resize:none;background:transparent;color:inherit;font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:2}
.dk-shell{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start;text-align:left;color:var(--text,#1e2635)}
.dk-main{min-width:0;display:flex;flex-direction:column;gap:14px}
.dk-side{position:sticky;top:calc(var(--ps-top,0px) + 12px);display:flex;flex-direction:column;gap:12px;min-width:0}
.dk-card{background:var(--panel,#fff);border:1px solid var(--border,#e4e9f2);border-radius:14px;padding:14px 16px;min-width:0}
.dk-card>h3{margin:0 0 10px;font-size:14px}
.dk-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dk-in{height:38px;border:1px solid var(--border,#e4e9f2);border-radius:10px;padding:0 12px;background:var(--panel,#fff);color:inherit;font:13.5px ui-monospace,Consolas,monospace;min-width:0;box-sizing:border-box}
.dk-in:focus,.dk-ta:focus{outline:0;border-color:var(--accent,#4f6ef7);box-shadow:0 0 0 3px var(--accent-soft,#eef1fe)}
.dk-ta{width:100%;box-sizing:border-box;border:1px solid var(--border,#e4e9f2);border-radius:10px;padding:10px 12px;background:var(--panel,#fff);color:inherit;font:13px/1.55 ui-monospace,Consolas,monospace;resize:vertical}
.dk-out-pre{margin:0;padding:12px 14px;background:var(--field,#f8fafc);border:1px solid var(--border,#e4e9f2);border-radius:10px;font:12.5px/1.6 ui-monospace,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto}
.dk-codebox{border:1px solid var(--border,#e4e9f2);border-radius:12px;overflow:auto;max-height:520px;background:var(--field,#f8fafc)}
.dk-chips{display:flex;flex-wrap:wrap;gap:6px}
.dk-chips button{padding:6px 11px;border-radius:999px;border:1px solid var(--border-2,#dfe4ee);background:var(--panel,#fff);color:var(--text,#1e2635);font:600 12.5px inherit;font-family:inherit;cursor:pointer}
.dk-chips button.on{border-color:var(--accent,#4f6ef7);background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.dk-list{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto}
.dk-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:700;background:var(--field,#f4f6fb);color:var(--muted,#5a6377)}
.dk-pill.good{background:#dcfce7;color:#166534}.dk-pill.bad{background:#fee2e2;color:#991b1b}.dk-pill.warn{background:#fef3c7;color:#92400e}.dk-pill.info{background:#dbeafe;color:#1e40af}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]) .hljs-keyword,:root:not([data-theme=light]) .hljs-literal,:root:not([data-theme=light]) .hljs-built_in{color:#c4b5fd}
  :root:not([data-theme=light]) .hljs-string,:root:not([data-theme=light]) .dk-v.string{color:#6ee7b7}
  :root:not([data-theme=light]) .hljs-number,:root:not([data-theme=light]) .dk-v.number{color:#fdba74}
  :root:not([data-theme=light]) .hljs-attr,:root:not([data-theme=light]) .hljs-attribute,:root:not([data-theme=light]) .hljs-property,:root:not([data-theme=light]) .dk-k{color:#93c5fd}
  :root:not([data-theme=light]) .hljs-name,:root:not([data-theme=light]) .hljs-title{color:#fca5a5}
}
:root[data-theme=dark] .hljs-keyword,:root[data-theme=dark] .hljs-literal,:root[data-theme=dark] .hljs-built_in{color:#c4b5fd}
:root[data-theme=dark] .hljs-string,:root[data-theme=dark] .dk-v.string{color:#6ee7b7}
:root[data-theme=dark] .hljs-number,:root[data-theme=dark] .dk-v.number{color:#fdba74}
:root[data-theme=dark] .hljs-attr,:root[data-theme=dark] .hljs-attribute,:root[data-theme=dark] .hljs-property,:root[data-theme=dark] .dk-k{color:#93c5fd}
:root[data-theme=dark] .hljs-name,:root[data-theme=dark] .hljs-title{color:#fca5a5}
@media (max-width:900px){.dk-shell{grid-template-columns:minmax(0,1fr)}.dk-side{position:static}}
@media (max-width:600px){.dk-gut,.dk-studio .ts-ed,.dk-code,.dk-ed .ts-ed{font-size:12px!important}.dk-card{padding:12px}.dk-kv{grid-template-columns:minmax(0,1fr)}.dk-kv>span{margin-top:6px}.dk-err,.dk-ok,.dk-warn,.dk-sec{margin:10px}}
/* JSON Schema validator */
.dk-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.dk-res{max-height:420px;overflow:auto}
.dk-errlist{display:flex;flex-direction:column;padding:8px}
.dk-erow{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--border,#e4e9f2);background:none;padding:9px 8px;font:inherit;font-size:13px;color:inherit;cursor:pointer;border-radius:8px}
.dk-erow:hover{background:var(--field,#f4f6fb)}
.dk-erow code{font-size:12px;color:var(--accent-dark,#3a52c4)}
.dk-erow i{font-style:normal;color:var(--faint,#8a94a7);font-size:12px}
@media (max-width:760px){.dk-pair{grid-template-columns:minmax(0,1fr)}.dk-ed{--dk-edh:260px}.dk-erow{grid-template-columns:auto minmax(0,1fr)}.dk-erow .dk-emsg{grid-column:1/-1}.dk-erow i{display:none}}
/* code tools */
.dk-frame{width:100%;height:100%;min-height:420px;border:0;background:#fff;display:block}
.dk-img{max-width:100%;max-height:480px;display:block;margin:0 auto;border-radius:8px;background:repeating-conic-gradient(#eef1f6 0 25%,#fff 0 50%) 0 0/16px 16px}
.dk-saving{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.dk-saving>div{background:var(--panel,#fff);border:1px solid var(--border,#e4e9f2);border-radius:10px;padding:8px 12px}
.dk-saving span{display:block;font-size:11.5px;color:var(--muted,#5a6377)}
.dk-saving b{font-size:15px;font-variant-numeric:tabular-nums}
.dk-saving .good b{color:#15803d}
/* custom tools (dev-tools.js) */
.dk-toptabs{border:1px solid var(--border,#e4e9f2);border-radius:12px;position:static}
.dk-inl{position:static;padding:0;border:0;background:none}
.dk-flush{padding:0;overflow:hidden}
.dk-flush>.dk-tabs{position:static}
.dk-vpad{padding:12px 14px}
.dk-jwtin{margin-top:10px;font-size:12.5px;word-break:break-all;white-space:pre-wrap}
.dk-jwtc{margin-top:8px;font:12.5px/1.55 ui-monospace,Consolas,monospace;word-break:break-all;overflow-wrap:anywhere}
.dk-jwtc .j0{color:#dc2626}.dk-jwtc .j1{color:#7c3aed}.dk-jwtc .j2{color:#0284c7}.dk-jwtc .j3{color:#64748b}.dk-jwtc .jd{color:var(--text,#1e2635);font-weight:700}
.dk-st{font-size:13px;padding:7px 10px;border-radius:9px;background:var(--field,#f4f6fb);line-height:1.45}
.dk-st.good{background:#f0fdf4;color:#166534}.dk-st.bad{background:#fef2f2;color:#991b1b}.dk-st.warn{background:#fffbeb;color:#92400e}
.dk-verdict{margin-top:10px}
.dk-claims th{width:1%;white-space:nowrap}.dk-claims td{white-space:normal;max-width:none}
.dk-claims tr.hdr th code{color:#dc2626}
.dk-rx{display:flex;align-items:center;gap:6px;font:600 18px ui-monospace,Consolas,monospace;color:var(--faint,#8a94a7)}
.dk-rx .dk-in{flex:1;height:44px;font-size:15px;color:var(--text,#1e2635)}
.dk-rx .dk-rxf{flex:none;width:78px}
.dk-rxerr{margin:8px 0 0;color:#b91c1c;font-size:13px;min-height:0}
.dk-rxerr:empty{display:none}
.dk-chips button b{font-family:ui-monospace,Consolas,monospace}
.dk-hl{position:relative;margin-top:10px;height:220px;border:1px solid var(--border,#e4e9f2);border-radius:10px;overflow:hidden;background:var(--panel,#fff)}
.dk-hlb,.dk-hlt{position:absolute;inset:0;margin:0;padding:10px 12px;box-sizing:border-box;font:13.5px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4;border:0}
.dk-hlb{color:transparent;overflow:hidden;pointer-events:none}
.dk-hlt{background:transparent;color:var(--text,#1e2635);resize:none;outline:0;overflow:auto;width:100%;height:100%}
.dk-hlb mark{color:transparent;border-radius:3px}
.dk-hlb mark.m0{background:rgba(79,110,247,.28)}.dk-hlb mark.m1{background:rgba(234,179,8,.38)}
.dk-hlb mark.z{border-left:2px solid #dc2626}
.dk-lib{display:flex;flex-direction:column;gap:4px;max-height:330px;overflow:auto}
.dk-lib button{text-align:left;border:1px solid transparent;background:none;padding:6px 8px;border-radius:8px;font:inherit;font-size:13px;color:inherit;cursor:pointer}
.dk-lib button:hover{background:var(--field,#f4f6fb);border-color:var(--border,#e4e9f2)}
.dk-lib code{font-weight:700;color:var(--accent-dark,#3a52c4);margin-right:4px}
.dk-cheat{margin-bottom:10px}
.dk-cheat>b{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#64748b);margin:6px 0 4px}
.dk-cheat button{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;width:100%;text-align:left;border:0;background:none;padding:4px 6px;border-radius:6px;font:inherit;font-size:12.5px;color:inherit;cursor:pointer}
.dk-cheat button:hover{background:var(--field,#f4f6fb)}
.dk-cheat code{color:var(--accent-dark,#3a52c4);font-weight:700}
.dk-cheat span{color:var(--muted,#5a6377)}
.dk-explain>div{display:grid;grid-template-columns:minmax(80px,max-content) minmax(0,1fr);gap:12px;padding:5px 0;border-bottom:1px dashed var(--border,#e4e9f2);font-size:13px}
.dk-explain code{color:var(--accent-dark,#3a52c4);font-weight:700;overflow-wrap:anywhere}
.dk-mv{background:rgba(79,110,247,.12);padding:1px 4px;border-radius:4px}
.dk-cronin .dk-in{width:100%;height:56px;font-size:24px;text-align:center;letter-spacing:.06em}
.dk-cronlab{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:8px}
.dk-cronlab span{display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--muted,#5a6377)}
.dk-cronlab code{font-size:14px;color:var(--accent-dark,#3a52c4);font-weight:700}
.dk-cronlab i{font-style:normal}
.dk-cronh{margin-top:12px;text-align:center;font-size:17px;font-weight:700;color:#166534;background:#f0fdf4;border-radius:10px;padding:10px 12px}
.dk-cronh.bad{color:#991b1b;background:#fef2f2}
.dk-runs{margin:10px 0 0;padding-left:28px;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.dk-runs li{padding:3px 0}
.dk-runs li span{margin-left:10px;color:var(--faint,#8a94a7);font-size:12.5px}
.dk-snipbox{margin-top:12px}
.dk-snipbox .dk-codebox{margin-top:6px}
.dk-bopts{display:flex;flex-direction:column;gap:8px}
.dk-bopts .ps-chk{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dk-cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;margin-top:10px}
.dk-cgrid.many{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}
.dk-cg{display:flex;align-items:center;justify-content:center;height:30px;border:1px solid var(--border,#e4e9f2);border-radius:7px;font-size:12.5px;cursor:pointer;user-select:none}
.dk-cg input{display:none}
.dk-cg.on{background:var(--accent,#4f6ef7);border-color:var(--accent,#4f6ef7);color:#fff}
.dk-ref th{width:45%}
.dk-perm{display:grid;grid-template-columns:minmax(90px,1.2fr) repeat(3,minmax(0,1fr)) 54px;gap:8px;align-items:center;text-align:center}
.dk-perm>b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#64748b)}
.dk-perm>span{text-align:left;font-weight:600;font-size:13.5px}
.dk-perm>code{font-size:20px;font-weight:800;color:var(--accent-dark,#3a52c4)}
.dk-pbox{display:flex;align-items:center;justify-content:center;height:46px;border:1.5px solid var(--border-2,#dfe4ee);border-radius:10px;cursor:pointer;font:700 18px ui-monospace,Consolas,monospace;color:var(--faint,#8a94a7);user-select:none}
.dk-pbox input{display:none}
.dk-pbox.on{background:var(--accent-soft,#eef1fe);border-color:var(--accent,#4f6ef7);color:var(--accent-dark,#3a52c4)}
.dk-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.dk-big{width:100%;height:48px;font-size:20px;text-align:center}
.dk-pwarn{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.dk-pwarn:empty{display:none}
.dk-cmd{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--border,#e4e9f2);font-size:13px}
.dk-cmd span{color:var(--muted,#5a6377)}
.dk-cmd code{font-size:12.5px;overflow-wrap:anywhere}
@media (max-width:600px){.dk-trio{grid-template-columns:minmax(0,1fr)}.dk-cmd{grid-template-columns:minmax(0,1fr) auto}.dk-cmd span{grid-column:1/-1}.dk-perm{grid-template-columns:minmax(64px,1fr) repeat(3,minmax(0,1fr)) 34px;gap:5px}.dk-perm>span{font-size:12px}.dk-cronin .dk-in{font-size:18px}.dk-rx .dk-rxf{width:60px}.dk-explain>div{grid-template-columns:minmax(0,1fr)}}
/* network tools (dev-net.js) */
.dk-h4{margin:14px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#64748b)}
.dk-bin{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;align-items:center;font-size:13px;overflow-x:auto}
.dk-bin code{font:13px ui-monospace,Consolas,monospace;letter-spacing:.04em;white-space:nowrap}
.dk-bin .net,.dk-netc{color:#4f6ef7;font-weight:700}.dk-bin .host,.dk-hostc{color:#ea580c}
.dk-bin i{font-style:normal;color:var(--faint,#8a94a7)}
.dk-pref tr{cursor:pointer}.dk-pref tr:hover td{background:var(--accent-soft,#eef1fe)}
.dk-http{display:flex;flex-direction:column;gap:8px}
.dk-hc{background:var(--panel,#fff);border:1px solid var(--border,#e4e9f2);border-radius:12px;overflow:hidden;scroll-margin-top:calc(var(--ps-top,0px) + 70px)}
.dk-hc.open{border-color:var(--accent,#4f6ef7)}
.dk-hh{display:grid;grid-template-columns:64px minmax(0,1fr) 20px;gap:12px;align-items:center;width:100%;text-align:left;border:0;background:none;padding:12px 14px;font:inherit;color:inherit;cursor:pointer}
.dk-hh>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.dk-hh small{color:var(--muted,#5a6377);font-size:12.5px}
.dk-hh i{font-style:normal;font-size:20px;color:var(--faint,#8a94a7)}
.dk-hcode{font:800 20px ui-monospace,Consolas,monospace;text-align:center;border-radius:9px;padding:6px 0}
.dk-hcode.info{background:#dbeafe;color:#1e40af}.dk-hcode.good{background:#dcfce7;color:#166534}.dk-hcode.warn{background:#fef3c7;color:#92400e}.dk-hcode.bad{background:#fee2e2;color:#991b1b}
.dk-hb{padding:4px 14px 14px;border-top:1px solid var(--border,#e4e9f2)}
.dk-hb .dk-kv{margin-top:10px}
.dk-uaraw{font:12.5px/1.5 ui-monospace,Consolas,monospace;background:var(--field,#f8fafc);border:1px solid var(--border,#e4e9f2);border-radius:10px;padding:8px 12px;margin:10px 0;overflow-wrap:anywhere}
.dk-uagrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.dk-uagrid .dk-h4:first-child{margin-top:0}
.dk-uabadges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.dk-reqline{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13px}
.dk-reqline code{overflow-wrap:anywhere}
.dk-vers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dk-vers button{display:flex;flex-direction:column;gap:2px;text-align:left;border:1.5px solid var(--border-2,#dfe4ee);background:var(--panel,#fff);border-radius:10px;padding:8px 10px;font:inherit;color:inherit;cursor:pointer}
.dk-vers button b{font-size:15px}.dk-vers button span{font-size:11.5px;color:var(--muted,#5a6377);line-height:1.3}
.dk-vers button.on{border-color:var(--accent,#4f6ef7);background:var(--accent-soft,#eef1fe)}
.dk-uuidhero{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:18px 0 12px}
.dk-uuidhero code{font:700 20px ui-monospace,Consolas,monospace;color:var(--accent-dark,#3a52c4);overflow-wrap:anywhere;text-align:center}
.dk-uuidlist{max-height:420px;overflow:auto;margin-top:8px}
.dk-urow{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--border,#e4e9f2)}
.dk-urow i{font-style:normal;color:var(--faint,#8a94a7);font-size:12px;text-align:right}
.dk-urow code{font-size:13.5px;overflow-wrap:anywhere}
/* table generators (dev-table.js) */
.dk-gridbar{gap:4px}
.dk-gridbar .ts-sep{height:20px}
.dk-gridwrap{overflow:auto;max-height:440px;margin-top:10px;border:1px solid var(--border,#e4e9f2);border-radius:10px}
.dk-grid{border-collapse:collapse;font-size:13px}
.dk-grid th{background:var(--field,#f4f6fb);color:var(--muted,#5a6377);font-weight:600;font-size:11.5px;padding:4px 8px;border:1px solid var(--border,#e4e9f2);position:sticky;top:0;z-index:1;min-width:28px}
.dk-grid tbody th{position:sticky;left:0;top:auto;z-index:1}
.dk-grid th.cur{background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.dk-grid td{border:1px solid var(--border,#e4e9f2);padding:0}
.dk-grid input{width:150px;min-width:100%;box-sizing:border-box;border:0;padding:7px 9px;font:inherit;background:var(--panel,#fff);color:inherit;outline:0}
.dk-grid input:focus{box-shadow:inset 0 0 0 2px var(--accent,#4f6ef7)}
.dk-grid tr.hd input{font-weight:700;background:var(--field,#f8fafc)}
.dk-colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:end;margin-bottom:10px}
.dk-colors label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted,#5a6377)}
.dk-colors input{width:100%;height:30px;border:1px solid var(--border,#e4e9f2);border-radius:7px;padding:1px;background:none}
.dk-colors .cu-cp{grid-column:1/-1;justify-content:center}
.dk-mdprev{font-size:14.5px;overflow-x:auto}
.dk-mdprev table{border-collapse:collapse}.dk-mdprev th,.dk-mdprev td{border:1px solid var(--border,#d0d7de);padding:6px 13px}.dk-mdprev th{background:var(--field,#f6f8fa)}.dk-mdprev tr:nth-child(even) td{background:var(--field,#f6f8fa)}
@media (max-width:760px){.dk-uagrid{grid-template-columns:minmax(0,1fr)}.dk-vers{grid-template-columns:repeat(2,minmax(0,1fr))}.dk-uuidhero code{font-size:15px}.dk-hh{grid-template-columns:54px minmax(0,1fr) 16px;gap:10px}.dk-hcode{font-size:17px}.dk-grid input{width:120px}}
