/* Meetian の暗い配色（app/src/index.css と同じ色）。文字は 14px 以上 */
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  background: #0a0a0b; color: #e5e5e7;
  font-family: -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px; line-height: 1.5;
  -webkit-user-select: none; user-select: none;
  -webkit-tap-highlight-color: transparent;
}
[hidden] { display: none !important; }
.screen { padding: calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 16px); }
/* 全画面は vh を使わず fixed＋inset で（iOS の 100vh の落とし穴・教訓 011） */
.full { position: fixed; top: 0; right: 0; bottom: 0; left: 0; overflow: hidden; }
h1 { font-size: 20px; margin: 4px 0 8px; }
h2 { font-size: 16px; margin: 0 0 8px; }
.muted { color: rgba(229, 229, 231, .6); font-size: 14px; }
.center { text-align: center; }
.env { font-size: 14px; color: rgba(229, 229, 231, .5); word-break: break-all; }
.panel { background: #16161a; border: 1px solid #2a2a30; border-radius: 10px; padding: 12px 14px; margin: 14px 0; }
.howto { padding-left: 1.2em; margin: 8px 0 0; font-size: 15px; }
.howto li { margin: 0 0 6px; }

button { font: inherit; cursor: pointer; }
.rec {
  display: block; width: 120px; height: 120px; border-radius: 50%; border: 0;
  background: #ef4444; color: #fff; font-size: 48px; margin: 24px auto 10px;
  box-shadow: 0 8px 24px rgba(239, 68, 68, .35);
}
.stop {
  display: block; width: 96px; height: 96px; border-radius: 22px; border: 0;
  background: #ef4444; color: #fff; font-size: 38px; margin: 34px auto 8px;
}
.btn { display: block; width: 100%; border-radius: 8px; padding: 12px; font-size: 16px; font-weight: 700; margin: 10px 0; }
.btn.solid { background: #ef4444; color: #fff; border: 1px solid #ef4444; }
.btn.ghost { background: transparent; color: rgba(229, 229, 231, .8); border: 1px solid #2a2a30; font-weight: 400; }
.btn.small { display: inline-block; width: auto; padding: 8px 12px; font-size: 15px; margin: 6px 6px 0 0; }
.btn.warn { color: #fbbf24; border-color: rgba(251, 191, 36, .6); }

/* 時刻の画面：背景がゆっくり動く（約 10 秒だけ表示） */
.saver {
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  background:
    radial-gradient(120% 80% at 20% 20%, #3b1d4a 0%, transparent 60%),
    radial-gradient(120% 90% at 80% 70%, #1d3550 0%, transparent 60%),
    radial-gradient(90% 70% at 50% 110%, #4a1d24 0%, transparent 60%),
    #07070a;
  background-size: 200% 200%;
  animation: drift 10s ease-in-out infinite alternate;
}
@keyframes drift { from { background-position: 0% 0%; } to { background-position: 100% 60%; } }
@media (prefers-reduced-motion: reduce) { .saver { animation: none; } }
.saver { padding-bottom: 30%; }
.clock { font-size: 76px; font-weight: 200; font-variant-numeric: tabular-nums; line-height: 1.1; }
.date { font-size: 17px; color: rgba(229, 229, 231, .75); }

/* 真っ暗：右下に青い小さな点。止まっているときは斜線 */
.black { background: #000; }
.dot {
  position: absolute; width: 9px; height: 9px; border-radius: 50%; background: #2f5fb3;
  right: calc(env(safe-area-inset-right) + 22px); bottom: calc(env(safe-area-inset-bottom) + 26px);
}
.dot.off::after {
  content: ""; position: absolute; left: -4px; top: 3.5px; width: 17px; height: 2px;
  background: #6f93d6; transform: rotate(-45deg);
}

/* 経過時間と停止ボタン */
.control { background: #000; overflow-y: auto; }
.big { font-size: 52px; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.band {
  border: 1px dashed rgba(251, 191, 36, .7); background: rgba(251, 191, 36, .08);
  border-radius: 8px; padding: 10px 12px; margin: 8px 0 14px; font-size: 15px;
}
.band b { color: #fbbf24; }

/* これまでの録音 */
.sess { border-top: 1px solid #2a2a30; padding: 10px 0; }
.sess:first-child { border-top: 0; }
.sess .t { font-weight: 700; }
.sess .d { font-size: 14px; color: rgba(229, 229, 231, .6); }
