:root{
 --void:#0A0D14;--surface:rgba(20,25,38,.75);--surface-solid:#141926;--surface-2:#111622;
 --border:rgba(255,255,255,.08);--border-strong:rgba(96,165,250,.24);
 --blue:#3B82F6;--blue-hover:#60A5FA;--cyan:#06B6D4;--green:#10B981;--amber:#F59E0B;--red:#EF4444;
 --text:#F3F4F6;--muted:#9CA3AF;--code:#34D399;
 --ui:"Inter","Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
 --mono:"JetBrains Mono","Fira Code","Cascadia Code","SFMono-Regular",Consolas,monospace;
}
*{box-sizing:border-box}html{background:var(--void)}body{margin:0;background:var(--void);color:var(--text);font-family:var(--ui);font-size:14px}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 72% -10%,rgba(59,130,246,.12),transparent 34%),radial-gradient(circle at 5% 55%,rgba(6,182,212,.055),transparent 28%);z-index:0}
button,input,select,textarea{font:inherit}button{background:rgba(31,41,59,.72);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 13px;cursor:pointer;transition:.15s ease;box-shadow:inset 0 1px rgba(255,255,255,.025)}
button:hover:not(:disabled){background:rgba(59,130,246,.16);border-color:rgba(96,165,250,.35);color:#fff}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(59,130,246,.65);outline-offset:1px}button:disabled{opacity:.38;cursor:not-allowed}
header{position:relative;z-index:2;min-height:78px;padding:16px 24px;background:rgba(10,13,20,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;align-items:center}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;filter:drop-shadow(0 0 12px rgba(59,130,246,.18))}
h1{margin:0;font-size:18px;letter-spacing:-.02em;font-weight:650}p{margin:3px 0 0;color:var(--muted);font-size:12px}.actions,.toolbar{display:flex;gap:8px;flex-wrap:wrap}
main{position:relative;z-index:1;display:grid;grid-template-columns:280px minmax(0,1fr);min-height:calc(100vh - 78px)}
aside{padding:20px;border-right:1px solid var(--border);background:rgba(12,16,25,.72);backdrop-filter:blur(12px)}aside section{margin-bottom:26px}h2{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:700}.muted{color:var(--muted);font-size:12px;line-height:1.55}
.status{padding:11px 12px;border:1px solid var(--border);border-radius:8px;font-size:12px;line-height:1.5;white-space:pre-wrap}.neutral{background:var(--surface)}.good{background:rgba(16,185,129,.15);color:#A7F3D0;border-color:rgba(16,185,129,.2)}.warn{background:rgba(245,158,11,.13);color:#FCD34D;border-color:rgba(245,158,11,.22)}.bad{background:rgba(239,68,68,.13);color:#FCA5A5;border-color:rgba(239,68,68,.22)}
article{padding:20px 24px;max-width:none;min-width:0}.toolbar{margin-bottom:16px}.toolbar input{flex:1;min-width:250px;background:rgba(10,13,20,.8);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px}
.empty{border:1px dashed rgba(156,163,175,.25);border-radius:10px;padding:50px;text-align:center;color:#6B7280;background:rgba(20,25,38,.35)}
.group,.schema-section{background:var(--surface);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:10px;margin-bottom:14px;overflow:hidden;box-shadow:0 12px 35px rgba(0,0,0,.12)}
.group h3,.schema-section>header{margin:0;padding:11px 14px;background:rgba(17,22,34,.72);border:0;border-bottom:1px solid var(--border);font-size:13px}.fields,.schema-body{padding:13px 15px}
.field{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;padding:7px 0}.field label{font-size:12px;color:#D1D5DB}.field small{display:block;color:#6B7280;margin-top:3px;font-family:var(--mono);font-size:10px}
.field input,.field select,.field textarea,.schema-row input,.schema-row select,.schema-row textarea,.schema-grid input,.schema-grid select,.repo-dialog input,.repo-dialog select{width:100%;background:rgba(10,13,20,.72);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:8px 9px}.field textarea{min-height:80px}.badge{display:inline-block;padding:2px 7px;border-radius:999px;background:rgba(59,130,246,.13);border:1px solid rgba(59,130,246,.18);color:#BFDBFE;margin:2px 4px 2px 0;font-size:10px}
.collection-tools{display:flex;gap:8px;padding:12px 14px}.collection-tools select{flex:1;background:#0D121C;color:var(--text);border:1px solid var(--border);border-radius:7px;padding:8px}.collection-nav h3{display:flex;justify-content:space-between;align-items:center}
.category{--category-bg:rgba(17,22,34,.72);--category-text:var(--text);border-left:2px solid var(--category-accent,var(--blue))}.category-header{width:100%;display:flex;align-items:center;gap:9px;text-align:left;background:var(--category-bg);border:0;border-radius:0;padding:11px 14px;color:var(--category-text);font-weight:600}.category-header:hover{background:rgba(59,130,246,.08)}.category-header .badge{margin-left:auto}.category-chevron{display:inline-block;font-size:14px;transition:transform .15s ease;color:var(--cyan)}.category.collapsed .category-chevron{transform:rotate(-90deg)}.category.collapsed .fields{display:none}.category-title{display:flex;flex-direction:column;gap:2px}.category-title small{font-size:10px;font-weight:400;line-height:1.35;opacity:.65}.category-icon{width:18px;text-align:center;font-size:14px}
.site-version{display:inline-block;vertical-align:middle;margin-left:7px;padding:2px 6px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:9px;font-weight:600}
.view-tabs{display:flex;gap:2px;margin-bottom:16px;border-bottom:1px solid var(--border)}.view-tab{position:relative;border-radius:7px 7px 0 0;border:0;background:transparent;color:var(--muted);padding:9px 13px}.view-tab:hover:not(:disabled){background:rgba(59,130,246,.06);border-color:transparent}.view-tab.active{background:rgba(59,130,246,.08);color:#DBEAFE}.view-tab.active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--blue);box-shadow:0 0 9px rgba(59,130,246,.5)}
.schema-section>header{display:flex;align-items:center;justify-content:space-between}.schema-section>header h3{margin:0;font-size:13px}.schema-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr auto;gap:10px;align-items:center;margin:8px 0}.schema-grid{display:grid;grid-template-columns:1.3fr 1.1fr .8fr .9fr auto;gap:7px;align-items:center;margin:7px 0}.schema-grid.head{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.danger{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.18);color:#FCA5A5}.mini{padding:5px 8px;font-size:11px}
.graph-shell{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--void);box-shadow:0 20px 60px rgba(0,0,0,.2)}.graph-toolbar{height:46px;padding:7px 9px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);background:var(--surface);backdrop-filter:blur(12px)}
.graph-workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;height:calc(100vh - 225px);min-height:520px}.graph-canvas{position:relative;overflow:hidden;background-color:#090D14;background-image:radial-gradient(rgba(96,165,250,.15) .75px,transparent .75px);background-size:20px 20px;cursor:grab}.graph-canvas.panning{cursor:grabbing}.graph-canvas>svg,.graph-canvas>#graphNodes{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0}#graphEdges{overflow:visible;pointer-events:none}.graph-edge{fill:none;stroke:var(--cyan);stroke-width:1.75;filter:drop-shadow(0 0 3px rgba(6,182,212,.22))}.graph-edge.external{stroke:var(--blue);stroke-dasharray:6 5}
.graph-node{position:absolute;width:300px;background:rgba(20,25,38,.92);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:9px;box-shadow:0 14px 38px rgba(0,0,0,.3);overflow:hidden;user-select:none}.graph-node.selected{border-color:rgba(59,130,246,.7);box-shadow:0 0 0 1px rgba(59,130,246,.25),0 14px 38px rgba(0,0,0,.3),0 0 25px rgba(59,130,246,.08)}.graph-node.import{width:260px;border-style:dashed;border-color:rgba(6,182,212,.3)}
.graph-node-head{padding:10px 12px;background:linear-gradient(90deg,rgba(59,130,246,.10),rgba(17,22,34,.85));cursor:move;border-bottom:1px solid var(--border)}.graph-node-head strong{display:block;font-size:12px}.graph-node-head small{color:var(--muted);font-family:var(--mono);font-size:9px}.graph-cat{border-top:1px solid var(--border)}.graph-cat-title{padding:6px 10px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.graph-field{position:relative;padding:5px 11px;display:flex;justify-content:space-between;gap:8px;font-size:11px;cursor:pointer}.graph-field:hover{background:rgba(59,130,246,.07)}.graph-field code{color:var(--code);font-family:var(--mono);font-size:9px}.graph-port{width:9px;height:9px;border-radius:50%;background:var(--cyan);position:absolute;right:-5px;top:9px;box-shadow:0 0 7px rgba(6,182,212,.65)}
.graph-inspector{border:0;border-left:1px solid var(--border);padding:14px;background:rgba(12,16,25,.9);backdrop-filter:blur(12px);overflow:auto}.graph-inspector h2{margin-top:0}.inspector-row{display:grid;gap:5px;margin:10px 0}.inspector-row input,.inspector-row select{width:100%;background:#0A0D14;color:var(--text);border:1px solid var(--border);border-radius:7px;padding:7px}
.json-toolbar{display:flex;gap:8px;margin-bottom:10px}.json-toolbar select{background:var(--surface-solid);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:8px}#jsonSource{width:100%;height:calc(100vh - 230px);min-height:500px;background:#080B11;color:var(--code);border:1px solid var(--border);border-radius:9px;padding:15px;font:12px/1.55 var(--mono);tab-size:2;box-shadow:inset 0 0 35px rgba(0,0,0,.22)}
dialog{max-width:760px;width:calc(100% - 32px);border:1px solid var(--border);border-radius:11px;background:rgba(14,19,29,.96);backdrop-filter:blur(18px);color:var(--text);padding:0;box-shadow:0 30px 80px rgba(0,0,0,.55)}dialog::backdrop{background:rgba(3,6,12,.72);backdrop-filter:blur(3px)}.repo-dialog{padding:20px;display:grid;gap:14px}.repo-dialog label{display:grid;gap:6px;color:#D1D5DB;font-size:12px}.repo-actions{display:flex;justify-content:flex-end;gap:8px}.repo-files{max-height:45vh;overflow:auto;display:grid;gap:6px}.repo-file{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;background:rgba(20,25,38,.75);border:1px solid var(--border);border-radius:7px}.repo-file code{overflow:hidden;text-overflow:ellipsis;font-family:var(--mono);color:#A5F3FC;font-size:11px}
code{font-family:var(--mono)}
@media(max-width:900px){.graph-workspace{grid-template-columns:1fr}.graph-inspector{display:none}.schema-grid{grid-template-columns:1fr 1fr}.schema-grid.head{display:none}}
@media(max-width:750px){header{align-items:flex-start;flex-direction:column}main{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid var(--border)}.field{grid-template-columns:1fr}article{padding:16px}.brand-mark{display:none}}

/* Astralforge structured data editor */
#editor{max-width:1180px}
.data-hero{border-color:rgba(59,130,246,.16);background:linear-gradient(135deg,rgba(20,25,38,.92),rgba(12,18,29,.82));box-shadow:0 18px 50px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.025)}
.data-hero-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px 13px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(59,130,246,.075),transparent 45%)}
.data-hero-head h3{padding:0!important;background:none!important;border:0!important;font-size:17px!important;letter-spacing:-.02em;margin:2px 0 3px!important}.data-hero-head code{font-size:10px;color:#6B7280}
.eyebrow{display:block;color:var(--blue-hover);font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.14em}
.count-chip{display:flex;align-items:baseline;gap:5px;padding:6px 10px;border-radius:999px;background:rgba(6,182,212,.08);border:1px solid rgba(6,182,212,.16);color:var(--muted);font-size:10px}.count-chip strong{font-family:var(--mono);font-size:13px;color:#A5F3FC}
.collection-tools{align-items:flex-end;padding:13px 16px 15px;background:rgba(10,13,20,.18)}.select-block{display:grid;gap:5px;min-width:180px}.select-block.grow{flex:1}.select-block>span{font-size:9px;color:var(--muted);font-weight:650;text-transform:uppercase;letter-spacing:.09em}.collection-tools .select-block select{width:100%;flex:none}
.primary-action{background:var(--blue);border-color:rgba(96,165,250,.4);box-shadow:0 0 18px rgba(59,130,246,.12);font-weight:600}.primary-action:hover:not(:disabled){background:var(--blue-hover);color:#07101e}
#editor>.category{margin-bottom:11px;border-left:0;border-color:var(--border);background:rgba(20,25,38,.68)}
#editor>.category:has(.category-header[aria-expanded="true"]){border-color:rgba(255,255,255,.105)}
#editor .category-header{position:relative;background:rgba(17,22,34,.58);padding:12px 15px}
#editor .category-header:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--category-accent,var(--blue));box-shadow:0 0 8px color-mix(in srgb,var(--category-accent,var(--blue)) 45%,transparent)}
#editor .category-title{font-size:12px;letter-spacing:.01em}.category-title small{color:var(--muted);opacity:.78;margin-top:2px}
#editor .fields{padding:4px 15px 8px}
.data-field{min-height:58px;padding:8px 3px;border-bottom:1px solid rgba(255,255,255,.045);transition:background .12s ease}.data-field:last-child{border-bottom:0}.data-field:hover{background:linear-gradient(90deg,rgba(59,130,246,.035),transparent);border-radius:5px}
.data-field>label{padding-left:4px}.field-name{display:flex;align-items:center;gap:7px;color:#E5E7EB;font-weight:540}.required-dot{width:5px;height:5px;border-radius:50%;background:var(--amber);box-shadow:0 0 6px rgba(245,158,11,.4)}
.field-control{display:flex;align-items:center;gap:8px;min-width:0}.field-control>input,.field-control>select,.field-control>textarea{flex:1;min-width:0}
.type-chip{flex:0 0 auto;padding:3px 5px;border:1px solid rgba(52,211,153,.14);border-radius:4px;background:rgba(52,211,153,.07);color:var(--code);font:8px/1 var(--mono);letter-spacing:.06em}.reference-chip{border-color:rgba(6,182,212,.18);background:rgba(6,182,212,.08);color:#67E8F9}
.data-field input,.data-field select,.data-field textarea{min-height:36px;background:#0A0E16;border-color:rgba(255,255,255,.09);font-size:12px}.data-field input:hover,.data-field select:hover,.data-field textarea:hover{border-color:rgba(96,165,250,.22)}.data-field input:focus,.data-field select:focus,.data-field textarea:focus{border-color:rgba(59,130,246,.55);box-shadow:0 0 0 3px rgba(59,130,246,.08);outline:0}
.data-field.number-field input{font-family:var(--mono);color:var(--code);font-variant-numeric:tabular-nums}.data-field.reference-field select{color:#A5F3FC}
#editor .category.collapsed{background:rgba(17,22,34,.5)}#editor .category.collapsed .category-header{border-bottom:0}
.toolbar #search{background:#0A0E16;padding-left:13px}.toolbar #validate{border-color:rgba(16,185,129,.2);color:#A7F3D0;background:rgba(16,185,129,.06)}.toolbar #validate:hover:not(:disabled){background:rgba(16,185,129,.13);border-color:rgba(16,185,129,.32)}
@media(max-width:750px){.data-hero-head{align-items:flex-start}.collection-tools{align-items:stretch;flex-direction:column}.select-block{min-width:0}.field-control{width:100%}.data-field{gap:7px}}

.github-auth{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid rgba(59,130,246,.18);border-radius:9px;background:linear-gradient(90deg,rgba(59,130,246,.08),rgba(6,182,212,.035))}
.github-auth>div{display:grid;gap:3px;flex:1}.github-auth strong{font-size:12px}.github-auth small{color:var(--muted);font-size:10px}

/* Semantic change review */
.diff-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:5px;padding:0 5px;border-radius:999px;background:rgba(59,130,246,.18);color:#BFDBFE;font:9px var(--mono)}
.diff-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px;padding:15px 17px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(100deg,rgba(59,130,246,.08),rgba(20,25,38,.72))}
.diff-toolbar h3{margin:3px 0 0;font-size:16px}.diff-filters{display:flex;gap:5px}.diff-filter{padding:6px 10px;font-size:11px}.diff-filter.active{background:rgba(59,130,246,.18);border-color:rgba(96,165,250,.32);color:#DBEAFE}
.diff-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.diff-summary>div{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.diff-summary strong{font:18px var(--mono);color:var(--text)}.diff-summary span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.diff-stat.added strong{color:#6EE7B7}.diff-stat.changed strong{color:#93C5FD}.diff-stat.removed strong{color:#FCA5A5}
.diff-list{display:grid;gap:8px}.diff-row{border:1px solid var(--border);border-left:2px solid var(--blue);border-radius:9px;background:rgba(20,25,38,.66);overflow:hidden}.diff-row.added{border-left-color:var(--green)}.diff-row.removed{border-left-color:var(--red)}.diff-row-head{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border);background:rgba(17,22,34,.55)}.diff-row-head code{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#D1D5DB;font-size:10px}.diff-kind,.diff-source{padding:3px 5px;border-radius:4px;font:8px var(--mono);text-transform:uppercase;letter-spacing:.05em}.diff-kind{background:rgba(59,130,246,.1);color:#93C5FD}.added .diff-kind{background:rgba(16,185,129,.1);color:#6EE7B7}.removed .diff-kind{background:rgba(239,68,68,.1);color:#FCA5A5}.diff-source{background:rgba(255,255,255,.04);color:var(--muted)}
.diff-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.diff-value{padding:10px 12px;min-width:0}.diff-value+ .diff-value{border-left:1px solid var(--border)}.diff-value>span{display:block;margin-bottom:5px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.diff-value code{display:block;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--code);font-size:11px;line-height:1.45}.diff-value.old code{color:#FCA5A5}.diff-value.new code{color:#A7F3D0}.diff-empty{padding:48px 20px;text-align:center;border:1px dashed rgba(156,163,175,.22);border-radius:10px;color:var(--muted);background:rgba(20,25,38,.3)}
@media(max-width:750px){.diff-toolbar{align-items:stretch;flex-direction:column}.diff-summary{grid-template-columns:1fr 1fr}.diff-values{grid-template-columns:1fr}.diff-value+.diff-value{border-left:0;border-top:1px solid var(--border)}}
