@charset "UTF-8";

/* 共通ガイドの配色・余白を使い、Ruby実行部品だけを追加する。 */
@layer components {
  .ruby-runtime {
    margin-block-end: 1.5rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-s);
    background: var(--surface);
  }

  .ruby-runtime strong {
    display: block;
    margin-block-end: .35rem;
    color: var(--brand-500);
    font-size: .9rem;
  }

  .ruby-runtime p {
    color: var(--ink-soft);
    font-size: .82rem;
    line-height: 1.8;
  }

  [data-ruby-demo] .demo-label::after {
    content: " — 書き換えられます";
    letter-spacing: .03em;
  }

  [data-ruby-demo] code[contenteditable] {
    display: block;
    min-block-size: 3rem;
    cursor: text;
  }

  [data-ruby-demo] .demo-source pre:focus-within {
    outline: 2px solid var(--accent-500);
    outline-offset: -2px;
  }

  [data-ruby-demo] code[contenteditable]:focus {
    outline: none;
  }

  .ruby-input {
    display: grid;
    gap: .5rem;
    padding: .8rem 1rem;
    color: var(--ink-soft);
    font-size: .8rem;
  }

  .ruby-input textarea {
    inline-size: 100%;
    min-block-size: 4rem;
    padding: .65rem;
    border: 1px solid var(--line-strong);
    border-radius: 5px;
    background: var(--surface);
    resize: vertical;
  }

  [data-ruby-preview] iframe {
    display: block;
    inline-size: 100%;
    block-size: 330px;
    border: 0;
    background: #f6f5f2;
  }

  [data-ruby-preview="canvas"] iframe {
    block-size: 400px;
  }

  [data-preview-status] {
    min-block-size: 2.5rem;
  }

  .ruby-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    padding: 1.2rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-s);
    background: var(--surface);
  }

  .ruby-flow span {
    flex: 1 1 8rem;
    padding: .8rem;
    border-radius: 6px;
    background: var(--surface-2);
    text-align: center;
    font-size: .9rem;
  }

  .ruby-flow b {
    color: var(--brand-500);
  }

  .btn:disabled {
    opacity: .45;
    cursor: not-allowed;
  }
}
