:root {
  font-family:Inter,Segoe UI,system-ui,sans-serif;
  color:#223346;
  background:#fafcfd;
  font-synthesis:none;
  --blue:#2863ae;
  --teal:#147f82;
  --muted:#596b7c;
  --line:#dce5ea;
  --wash:#f0f5f8
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
button,input,select {
  font:inherit
}
button,.file-button {
  border:1px solid #c3d0d9;
  background:white;
  border-radius:6px;
  padding:.6rem .9rem;
  color:#23435e;
  cursor:pointer
}
button:hover,.file-button:hover {
  background:#eef5f9;
  border-color:#6895b4
}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,.file-button:focus-within {
  outline:3px solid #168080;
  outline-offset:3px
}
a {
  color:var(--blue)
}
h1,h2,h3,p {
  overflow-wrap:anywhere
}
h1 {
  font-size:clamp(1.8rem,3vw,2.55rem);
  line-height:1.2;
  letter-spacing:-.035em;
  font-weight:600;
  margin:.6rem 0 1rem
}
h2 {
  font-size:1.25rem;
  letter-spacing:-.02em;
  font-weight:600
}
h3 {
  font-size:1rem;
  font-weight:600
}
p {
  line-height:1.65
}
code,pre {
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace
}
pre {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  background:var(--wash);
  padding:1.2rem;
  border:1px solid var(--line);
  border-radius:6px;
  font-size:.85rem;
  line-height:1.7;
  max-height:36rem;
  overflow:auto
}
.skip {
  position:fixed;
  top:-100px;
  padding:1rem;
  background:white;
  z-index:10
}
.skip:focus {
  top:0
}
.app-header {
  height:80px;
  padding:0 3.5%;
  display:flex;
  gap:2rem;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:white
}
.brand {
  display:flex;
  gap:.55rem;
  align-items:center;
  font-size:1.5rem;
  font-weight:650;
  letter-spacing:-.055em;
  color:var(--blue);
  text-decoration:none
}
.teal {
  color:var(--teal)
}
.product-label {
  font-size:.65rem;
  letter-spacing:.14em;
  color:var(--muted)
}
.preview {
  margin-left:.8rem;
  border:1px solid #c9d8e2;
  padding:.2rem .4rem;
  border-radius:4px;
  font-size:.6rem
}
.privacy {
  margin-left:auto;
  font-size:.75rem;
  color:var(--muted)
}
.privacy span {
  color:var(--teal);
  font-size:.7rem;
  padding-right:.4rem
}
.welcome {
  max-width:1120px;
  margin:auto;
  padding:6rem 2.5rem 3rem
}
.welcome h1 {
  font-size:clamp(2.4rem,5vw,4.6rem);
  white-space:pre-line;
  max-width:800px;
  line-height:1.06
}
.eyebrow {
  font-size:.7rem;
  letter-spacing:.15em;
  color:var(--teal);
  font-weight:650
}
.intro {
  font-size:1.18rem;
  color:var(--muted);
  max-width:600px;
  margin:1.7rem 0 2rem;
  line-height:1.75
}
.actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.7rem
}
.file-button {
  position:relative;
  display:inline-flex;
  align-items:center;
  overflow:hidden;
  line-height:1.5;
  font-size:.85rem
}
.file-button input {
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  width:100%;
  height:100%
}
.welcome .file-button:first-child {
  background:var(--blue);
  color:white;
  border-color:var(--blue)
}
.text-button {
  border:0;
  background:none;
  color:var(--blue)
}
.muted {
  color:var(--muted);
  font-size:.85rem
}
.privacy-note {
  color:var(--muted);
  font-size:.82rem;
  margin-top:2.5rem
}
.guide {
  border-top:1px solid var(--line);
  margin-top:3.8rem;
  padding-top:1.8rem;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:3rem
}
.guide h2 {
  font-size:1.05rem
}
.guide p:last-child {
  color:var(--muted);
  font-size:.9rem
}
.toolbar {
  padding:1.1rem 3.5%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  background:white
}
.toolbar>div:first-child {
  display:flex;
  flex-direction:column;
  gap:.35rem
}
.toolbar .actions button {
  font-size:.85rem
}
.tabs {
  padding:0 3.5%;
  display:flex;
  gap:1.7rem;
  background:white;
  border-bottom:1px solid var(--line)
}
.tabs button {
  border:0;
  border-radius:0;
  background:none;
  padding:1rem .15rem;
  color:var(--muted);
  font-size:.86rem;
  border-bottom:3px solid transparent
}
.tabs button[aria-current] {
  border-bottom-color:var(--teal);
  color:#173e58;
  font-weight:600
}
.workspace {
  display:grid;
  grid-template-columns:290px minmax(0,1fr);
  max-width:1600px;
  margin:auto;
  min-height:calc(100vh - 232px)
}
.sidebar {
  padding:1.5rem 1.1rem;
  border-right:1px solid var(--line);
  background:#f5f8fa
}
.sidebar label {
  display:block;
  font-size:.7rem;
  color:var(--muted);
  margin-bottom:.8rem
}
.sidebar select,.sidebar input {
  display:block;
  width:100%;
  padding:.65rem .55rem;
  margin-top:.4rem;
  border:1px solid #cbd7df;
  border-radius:5px;
  background:white;
  color:#223346;
  font-size:.8rem
}
.operation-list h2 {
  font-size:.85rem;
  margin:1.6rem .4rem .6rem
}
.operation-button {
  display:grid;
  grid-template-columns:3.5rem 1fr;
  gap:.4rem;
  text-align:left;
  border:1px solid transparent;
  background:none;
  width:100%;
  padding:.8rem .6rem;
  margin:.15rem 0
}
.operation-button[aria-current] {
  background:#e5eff7;
  border-color:#c1d6e7
}
.operation-button code {
  font-size:.77rem;
  overflow-wrap:anywhere;
  align-self:center
}
.operation-label {
  grid-column:2;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.5
}
.method {
  display:inline-block;
  background:#e4eef9;
  color:#235b99;
  border-radius:4px;
  font-family:ui-monospace,monospace;
  font-size:.68rem;
  font-weight:650;
  padding:.3rem .4rem;
  text-align:center;
  align-self:start;
  letter-spacing:0
}
.method-post {
  background:#e0f0eb;
  color:#246b51
}
.content {
  padding:2.5rem clamp(1.3rem,4vw,4rem) 5rem;
  max-width:1080px;
  min-width:0
}
.content:focus {
  outline:none
}
.operation-heading {
  display:flex;
  align-items:center;
  gap:.8rem;
  flex-wrap:wrap;
  font-size:1.9rem
}
.operation-heading .method {
  font-size:.82rem;
  align-self:center;
  padding:.45rem .6rem
}
.operation-heading code {
  font-size:1.8rem;
  font-weight:500
}
.operation-summary {
  font-size:1.5rem;
  margin-top:1.4rem
}
.description {
  color:var(--muted);
  max-width:750px;
  white-space:pre-wrap
}
.source-link {
  font-size:.72rem;
  color:var(--muted);
  padding:.2rem 0;
  background:none;
  border:0;
  text-align:left;
  overflow-wrap:anywhere
}
.jump {
  display:flex;
  gap:1.7rem;
  flex-wrap:wrap;
  margin:2rem 0;
  border-block:1px solid var(--line);
  padding:1rem 0;
  font-size:.82rem
}
.jump a {
  text-decoration:none
}
.detail-section {
  margin-top:2.5rem;
  scroll-margin-top:1rem
}
.definition-card {
  background:white;
  border:1px solid var(--line);
  border-radius:8px;
  padding:1rem 1.2rem;
  margin:.8rem 0
}
.definition-card h2,.definition-card h3 {
  margin:.25rem 0 .6rem
}
.definition-card p {
  font-size:.85rem
}
.definition-card h3 .type {
  float:right;
  font-weight:400
}
.type {
  color:var(--muted);
  font-size:.75rem;
  margin-left:.8rem
}
.required {
  color:var(--teal);
  font-size:.75rem
}
.tree {
  border-top:1px solid var(--line);
  margin:.55rem 0;
  font-size:.83rem
}
.tree summary {
  cursor:pointer;
  padding:.65rem .1rem;
  line-height:1.55;
  overflow-wrap:anywhere
}
.tree summary .type {
  float:right
}
.tree>.tree {
  margin-left:1rem
}
.tree>.scalar,.tree>.ref-row {
  margin-left:1rem
}
.scalar {
  padding:.35rem .2rem;
  line-height:1.55;
  overflow-wrap:anywhere;
  white-space:pre-wrap
}
.reference {
  font-size:.8rem;
  color:var(--blue);
  text-align:left;
  overflow-wrap:anywhere;
  white-space:normal;
  margin:.4rem
}
.ref-row {
  display:flex;
  align-items:baseline;
  gap:.4rem;
  overflow-wrap:anywhere
}
.notice,.warning {
  padding:.8rem 1rem;
  border-radius:5px;
  font-size:.85rem;
  background:#edf5f6;
  border-left:3px solid #479293
}
.warning {
  background:#fff7e8;
  border-left-color:#b67a1b;
  color:#765117
}
.schema-button {
  display:block;
  width:100%;
  padding:1rem 1.2rem;
  text-align:left;
  margin:.7rem 0;
  background:white
}
.diagnostic {
  border:1px solid var(--line);
  border-left:3px solid #a47024;
  border-radius:5px;
  padding:1rem 1.3rem;
  margin:1rem 0;
  background:white
}
.diagnostic h2 {
  font-size:.85rem
}
.diagnostic p {
  font-size:.9rem
}
.diagnostic.error {
  border-left-color:#ae4850
}
.back {
  font-size:.8rem;
  background:none;
  border:0;
  padding:0;
  color:var(--blue);
  margin-bottom:1.5rem
}
.status {
  padding:.7rem 3.5%;
  font-size:.75rem;
  color:var(--muted);
  border-top:1px solid var(--line);
  background:white;
  min-height:2.5rem
}
.feedback {
  margin:1rem 3.5%;
  padding:1rem;
  border:1px solid #a54121;
  border-radius:.5rem;
  background:#fff3ec;
  color:#7b2c16;
  overflow-wrap:anywhere;
}
details>summary {
  cursor:pointer
}
button,select,input,summary {
  touch-action:manipulation
}
@media(min-width:581px) {
  body.inspecting {
    height:100dvh;
    display:flex;
    flex-direction:column;
    overflow:hidden
  }
  .inspecting>.app-header,.inspecting>.feedback,.inspecting>.status {
    flex:none
  }
  .inspecting #app {
    display:flex;
    flex-direction:column;
    flex:1;
    min-height:0
  }
  .inspecting .toolbar,.inspecting .tabs {
    flex:none
  }
  .inspecting .workspace {
    flex:1;
    min-height:0;
    width:100%;
    overflow:hidden
  }
  .inspecting .sidebar,.inspecting .content {
    min-height:0;
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable
  }
}
@media(max-width:800px) {
  .product-label {
    display:none
  }
  .app-header {
    height:66px
  }
  .workspace {
    grid-template-columns:230px minmax(0,1fr)
  }
  .content {
    padding:1.6rem 1.2rem
  }
  .toolbar {
    align-items:flex-start
  }
  .tabs {
    gap:1rem
  }
  .welcome {
    padding:3rem 1.5rem
  }
  .guide {
    gap:1.2rem
  }

}
@media(max-width:580px) {
  .workspace {
    display:block
  }
  .sidebar {
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .operation-list {
    max-height:260px;
    overflow:auto
  }
  .toolbar {
    flex-direction:column
  }
  .tabs {
    gap:.8rem;
    overflow-x:auto
  }
  .tabs button {
    white-space:nowrap
  }
  .guide {
    grid-template-columns:1fr;
    gap:.4rem
  }
  .privacy {
    font-size:.65rem
  }
  .app-header {
    gap:1rem
  }
  .tree summary .type {
    float:none;
    display:inline-block
  }
  .content {
    padding:2rem 1rem
  }
  .operation-heading code {
    font-size:1.4rem
  }

}

.refit-controls,fieldset{margin-block:12px;padding:14px;border:1px solid var(--line);border-radius:8px}fieldset label{display:flex;align-items:center;gap:8px;margin-block:8px}fieldset input[type=checkbox]{width:auto}.refit-controls input,textarea{display:block;width:100%;max-width:100%;box-sizing:border-box}textarea{font:12px/1.5 ui-monospace,monospace;padding:12px}.definition-card>button{margin:4px}.preview-result pre{max-height:500px;overflow:auto}
