@charset "utf-8";

/* 全体 */
*{
  box-sizing:border-box;
}

html,body{
  margin:0;
  padding:0;
  width:100%;
  height:100%;
  background:#000;
  color:#fff;
}

body{
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  padding:12px;
  line-height:1.5;
}

/* タイトル */
h4{
  margin:0 0 12px 0;
  font-size:22px;
  font-weight:600;
  color:#fff;
  letter-spacing:0.05em;
}

/* 閉じるボタン */
.close-btn{
  position:fixed;
  top:12px;
  right:12px;
  z-index:9999;
  background:rgba(255,255,255,0.12);
  color:#fff;
  text-decoration:none;
  padding:8px 14px;
  border:1px solid rgba(255,255,255,0.25);
  border-radius:999px;
  backdrop-filter:blur(6px);
  transition:.2s;
}

.close-btn:hover{
  background:rgba(255,255,255,0.22);
}

/* レイアウト */
.layout{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:start;
}

/* ビューア */
.viewer{
  position:relative;
  width:100%;
  height:min(calc(72vh - 36px),860px);
  min-height:320px;
  border:1px solid #333;
  border-radius:14px;
  overflow:hidden;
  background:#111;
  box-shadow:0 0 24px rgba(255,255,255,0.05);
}

#sketchfab{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

/* 右側操作パネル */
.controls{
  display:grid;
  gap:14px;
}

.group{
  background:#111;
  border:1px solid #2b2b2b;
  border-radius:14px;
  padding:14px;
  box-shadow:0 0 18px rgba(255,255,255,0.03);
}

.group strong{
  display:block;
  margin-bottom:10px;
  font-size:15px;
  color:#fff;
  letter-spacing:0.04em;
}

/* 行 */
.row{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:8px;
}

.row:last-child{
  margin-bottom:0;
}

/* ボタン */
button{
  background:#222;
  color:#fff;
  border:1px solid #444;
  padding:6px 12px;
  border-radius:8px;
  cursor:pointer;
  transition:.2s;
}

button:hover{
  background:#333;
}

button[disabled]{
  opacity:.45;
  cursor:not-allowed;
}

/* ラジオ・チェック */
.material-options{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  align-items:center;
}

.material-options label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  color:#ddd;
}

/* チェックボックス・ラジオボタン */
input[type="checkbox"],
input[type="radio"]{
  accent-color:#ffffff;
  filter:brightness(1);
}

/* チェックマーク・内部色を黒く見せる補助（主要ブラウザ向け） */
input[type="radio"]:checked{
  accent-color:#444444;
  outline:1px solid #666;
}

/* PC */
@media (min-width:1100px){

  .layout{
    grid-template-columns:1fr 360px;
    gap:18px;
  }

  .viewer{
    height:calc(100vh - 92px);
    min-height:520px;
  }

  .controls{
    position:sticky;
    top:12px;
  }

  .material-options{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* スマホ */
@media (max-width:1099px){

  h4{
    font-size:18px;
    padding-right:90px;
  }

  .viewer{
    min-height:360px;
  }

  .material-options{
    flex-direction:row;
    align-items:center;
  }
}