/* MyTool Studio ─ スクショ注釈・モザイクツール
   ※ このファイルは scratchpad/extract10.py がコアHTMLから機械生成しています。
      直接手で書き換えると note 配布版とズレます。 */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
button { touch-action: manipulation; }
body {
  font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', sans-serif;
  background: #f5f5f5;
  color: #333;
  line-height: 1.7;
  overflow-x: hidden;
}
header {
  background: #fff;
  border-bottom: 1px solid #e0e0e0;
  padding: 1rem 0;
  position: sticky;
  top: 0;
  z-index: 100;
}
.header-inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.logo {
  font-size: 1.2rem;
  font-weight: bold;
  color: #1a73e8;
  text-decoration: none;
}
main {
  max-width: 800px;
  margin: 2rem auto;
  padding: 0 1.5rem;
}
h1 {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
}
h2 {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 1rem;
}
.description {
  color: #666;
  margin-bottom: 1.5rem;
}
.card {
  background: #fff;
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  border: 1px solid #e0e0e0;
}
.amazon-card h2 { margin-bottom: 0.25rem; }
.amazon-note { font-size: 0.82rem; color: #999; margin-bottom: 1rem; }
.amazon-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
.amazon-item {
  display: block;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 0.9rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.1s;
}
.amazon-item:hover {
  border-color: #FF9900;
  box-shadow: 0 2px 8px rgba(255,153,0,0.15);
  transform: translateY(-1px);
}
.amazon-item-icon { font-size: 1.7rem; margin-bottom: 0.35rem; }
.amazon-item-name { font-size: 0.88rem; font-weight: bold; margin-bottom: 0.2rem; }
.amazon-item-desc { font-size: 0.76rem; color: #888; line-height: 1.5; margin-bottom: 0.45rem; }
.amazon-item-link { font-size: 0.78rem; color: #FF9900; font-weight: bold; }
.tips-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.tip-item { display: flex; gap: .65rem; }
.tip-icon { font-size: 1.4rem; flex-shrink: 0; }
.tip-text strong { display: block; font-weight: 700; margin-bottom: .15rem; font-size: .88rem; }
.tip-text p { font-size: .8rem; color: #78716c; line-height: 1.55; }
footer {
  text-align: center;
  padding: 1.5rem 1rem;
  font-size: .82rem;
  color: #a8a29e;
  border-top: 1px solid #e7e5e4;
  margin-top: auto;
}
footer a { color: #ea580c; text-decoration: none; }
footer a:hover { text-decoration: underline; }
footer p + p { margin-top: .3rem; }
@media (max-width: 600px) {
  h1 {
    font-size: 1.4rem;
  }

  .options-grid {
    grid-template-columns: 1fr;
  }

  .tips-grid { grid-template-columns: 1fr; }
}
.amazon-notice {
  font-size: 0.72rem;
  color: #bbb;
  margin-top: 0.2rem;
}
.scene-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .75rem;
}
.scene-item {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: .85rem 1rem;
  background: #f0f4ff;
  border: 1.5px solid #c7d7fd;
  border-radius: 12px;
}
.scene-icon { font-size: 1.7rem; flex-shrink: 0; }
.scene-body strong { display: block; font-size: .88rem; font-weight: 700; color: #1a56db; margin-bottom: .2rem; }
.scene-body p { font-size: .78rem; color: #4b5563; line-height: 1.55; margin: 0; }
.related-tools {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .75rem;
}
.related-tool-item {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: .85rem 1rem;
  border: 1.5px solid #c7d7fd;
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, box-shadow .15s;
}
.related-tool-item:hover { border-color: #1a73e8; box-shadow: 0 2px 8px rgba(26,115,232,.1); }
.related-tool-icon { font-size: 1.6rem; flex-shrink: 0; }
.related-tool-item strong { display: block; font-size: .88rem; font-weight: 700; color: #1a73e8; margin-bottom: .2rem; }
.related-tool-item p { font-size: .76rem; color: #666; line-height: 1.5; margin: 0; }
.hero {
  text-align: center;
  padding: 28px 0 20px;
  margin-bottom: 1.5rem;
}
.hero-icon { font-size: 3rem; margin-bottom: 10px; }
.hero h1 { font-size: 1.8rem; font-weight: bold; margin-bottom: 6px; color: #1e293b; }
.hero .description { color: #666; font-size: 0.95rem; line-height: 1.7; margin-bottom: 0; }
.hero-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}
.badge {
  display: inline-block;
  padding: 5px 13px;
  background: #dbeafe;
  color: #1a73e8;
  border: 1.5px solid #bfdbfe;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
}
.table-note-top { font-size: 0.83rem; color: #666; margin-bottom: 10px; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 10px; }
.table-note { font-size: 0.78rem; color: #888; line-height: 1.6; margin-top: 8px; }
.faq-list { display: flex; flex-direction: column; }
.faq-item { padding: .9rem 0; border-bottom: 1px solid #f0f0f0; }
.faq-item:last-child { border-bottom: none; padding-bottom: 0; }
.faq-q { font-size: .9rem; font-weight: 700; color: #1a73e8; margin-bottom: .35rem; }
.faq-a { font-size: .85rem; color: #555; line-height: 1.75; }
.hidden { display: none !important; }
.maker-note { background: #fffdf5; border: 1.5px solid #f2e6c4; }
.maker-note h2 { color: #7a5c00; }
.mn-item { padding: .85rem 0; border-bottom: 1px dashed #eadfb8; }
.mn-item:last-of-type { border-bottom: none; }
.mn-head { font-size: .92rem; font-weight: 700; color: #8a6a00; margin-bottom: .4rem; }
.mn-item p { font-size: .88rem; line-height: 1.85; color: #5c534a; }
.mn-item code { background: #f3ead0; color: #7a5c00; padding: .05rem .35rem; border-radius: 4px; font-size: .85em; }
.mn-sign { text-align: right; font-size: .8rem; color: #b09a5e; margin-top: .9rem; font-style: italic; }
.note-cta {
  background: linear-gradient(135deg, #0f2747 0%, #13315c 100%);
  border: none;
  color: #fff;
}
.note-cta h2 { color: #ffb627; }
.note-cta-lead { font-size: .9rem; line-height: 1.7; color: #e7eefa; margin-bottom: .9rem; }
.note-cta-points { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .4rem; }
.note-cta-points li { font-size: .85rem; color: #e7eefa; padding-left: 1.4rem; position: relative; }
.note-cta-points li::before { content: "✓"; position: absolute; left: 0; color: #ffb627; font-weight: 800; }
.note-cta-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  background: #ffb627; color: #0f2747;
  font-size: .92rem; font-weight: 800;
  padding: .7rem 1.3rem; border-radius: 10px;
  text-decoration: none; transition: background .15s, transform .12s;
}
.note-cta-btn:hover { background: #ffc857; }
.note-cta-btn:active { transform: scale(.98); }
.note-cta-note { font-size: .72rem; color: #9fb2cc; margin-top: .7rem; }

/* ─── /annotate 用の調整 ───────────────────────────── */
.ref-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; min-width: 520px; }
.ref-table th {
  background: #f8f9fa; color: #333; font-weight: bold; text-align: left;
  padding: 8px 10px; border-bottom: 2px solid #e0e0e0; white-space: nowrap;
}
.ref-table td { padding: 8px 10px; border-bottom: 1px solid #f0f0f0; vertical-align: top; }
.ref-table tr:last-child td { border-bottom: none; }
.ref-table .hl-row td { background: #f6f2ff; }
#annotate-app #format {
  width: auto; padding: .45rem .6rem; border: 1.5px solid var(--border);
  border-radius: 8px; font-family: inherit; font-size: .85rem; background: #fff; cursor: pointer;
}
#annotate-app .card { margin-bottom: 0; }

/* サイト共通CSSの .tip-text strong / .scene-body strong は「小見出し」用に
   display:block になっている。本文中の強調まで改行させないよう戻す。 */
.tip-text p strong, .scene-body p strong { display: inline; color: inherit; }

/* ─── ここから下はアプリ本体（コアHTMLから抽出・#annotate-app に限定） ─── */
/* =====================================================================
   スクショ注釈・モザイクツール（まるっとアプリ #10）
   ライブラリ不使用・HTMLファイル1個で動きます。
   画像はブラウザの中だけで処理され、どこにも送信されません。
   ===================================================================== */

/* ★CUSTOM：色を変えたいときはここだけ書き換えれば全体に反映されます */
:root {
  --accent:#7c3aed;        /* テーマ色（紫） */
  --accent-dark:#6025d1;   /* ボタンを押したときなどの濃い色 */
  --accent-weak:#f3eeff;   /* 選択中の道具の背景 */
  --danger:#d93025;        /* 警告・削除 */
  --safe:#0f9d58;          /* 「安全」を示す緑 */
  --border:#e2e2e8;
  --text:#1a1a2e;
  --text-sub:#666;
  --bg:#f7f7fb;
}

/* ── 読み込みエリア ───────────────────────────── */
#annotate-app #dropzone {
  border:2.5px dashed #c9c4d8;border-radius:12px;background:#fff;
  padding:3rem 1rem;text-align:center;cursor:pointer;transition:.15s;
}
#annotate-app #dropzone:hover, #annotate-app #dropzone.over {border-color:var(--accent);background:var(--accent-weak);}
#annotate-app #dropzone .dz-icon {font-size:2.4rem;}
#annotate-app #dropzone .dz-main {font-weight:700;margin:.6rem 0 .3rem;}
#annotate-app #dropzone .dz-sub {font-size:.85rem;color:var(--text-sub);}
#annotate-app kbd {
  background:#eee;border:1px solid #ccc;border-bottom-width:2px;border-radius:4px;
  padding:.05rem .4rem;font-size:.85em;font-family:Consolas,monospace;
}

/* ── ツールバー ───────────────────────────── */
#annotate-app .toolbar {display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;}
#annotate-app .tool-btn {
  display:flex;align-items:center;gap:.3rem;
  border:1.5px solid var(--border);background:#fff;border-radius:8px;
  padding:.45rem .7rem;font-size:.85rem;font-weight:600;color:var(--text);
  cursor:pointer;transition:.12s;font-family:inherit;
}
#annotate-app .tool-btn:hover {border-color:var(--accent);}
#annotate-app .tool-btn.active {background:var(--accent);border-color:var(--accent);color:#fff;}
#annotate-app .tool-btn .badge-safe {
  font-size:.65rem;background:var(--safe);color:#fff;border-radius:4px;padding:0 .25rem;
}
#annotate-app .tool-btn.active .badge-safe {background:#fff;color:var(--safe);}

#annotate-app .opts {
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem;
  padding:.8rem;background:#faf9fd;border:1px solid var(--border);border-radius:8px;
  margin-bottom:.9rem;font-size:.85rem;
}
#annotate-app .opt {display:flex;align-items:center;gap:.4rem;}
#annotate-app .opt label {color:var(--text-sub);font-weight:600;white-space:nowrap;}
#annotate-app .opt input[type=range] {width:110px;accent-color:var(--accent);}
#annotate-app .opt input[type=color] {
  width:38px;height:30px;padding:0;border:1px solid var(--border);
  border-radius:6px;background:none;cursor:pointer;
}
#annotate-app .opt select {
  border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem;
  font-family:inherit;font-size:.85rem;background:#fff;
}
#annotate-app .swatches {display:flex;gap:.25rem;}
#annotate-app .swatch {
  width:22px;height:22px;border-radius:50%;border:2px solid #fff;
  box-shadow:0 0 0 1px var(--border);cursor:pointer;
}
#annotate-app .swatch.on {box-shadow:0 0 0 2px var(--accent);}

/* 安全モードのトグル */
#annotate-app .safe-toggle {
  display:flex;align-items:center;gap:.4rem;cursor:pointer;
  background:#eaf7ef;border:1px solid #b7e0c6;border-radius:8px;padding:.3rem .6rem;
}
#annotate-app .safe-toggle input {accent-color:var(--safe);}
#annotate-app .safe-toggle span {font-weight:700;color:#0b6b3f;font-size:.82rem;}

/* モザイクを選んだときに出す注意書き */
#annotate-app #mosaic-warn {
  display:none;font-size:.82rem;color:#8a5300;background:#fff8e6;
  border:1px solid #f2dfa8;border-radius:8px;padding:.55rem .7rem;margin-bottom:.9rem;
}
#annotate-app #mosaic-warn.show {display:block;}
#annotate-app #mosaic-warn strong {color:#7a4a00;}

/* ── キャンバス ───────────────────────────── */
#annotate-app .canvas-area {position:relative;text-align:center;background:#f0eef7;border-radius:10px;padding:.8rem;}
#annotate-app #canvas {
  max-width:100%;height:auto;background:#fff;border-radius:4px;
  box-shadow:0 2px 12px rgba(0,0,0,.13);touch-action:none;cursor:crosshair;
}
#annotate-app #text-input {
  position:absolute;display:none;z-index:5;
  border:2px solid var(--accent);border-radius:4px;padding:.15rem .3rem;
  font-family:inherit;background:#fff;outline:none;
}

/* ── 操作ボタン ───────────────────────────── */
#annotate-app .actions {display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem;align-items:center;}
#annotate-app .btn {
  border:none;border-radius:8px;padding:.6rem 1.1rem;font-size:.9rem;font-weight:700;
  cursor:pointer;font-family:inherit;transition:.12s;
}
#annotate-app .btn-primary {background:var(--accent);color:#fff;}
#annotate-app .btn-primary:hover {background:var(--accent-dark);}
#annotate-app .btn-sub {background:#fff;color:var(--text);border:1.5px solid var(--border);}
#annotate-app .btn-sub:hover {border-color:var(--accent);color:var(--accent);}
#annotate-app .btn-danger {background:#fff;color:var(--danger);border:1.5px solid #f3c9c5;}
#annotate-app .btn-danger:hover {background:#fdf0ef;}
#annotate-app .btn:disabled {opacity:.4;cursor:not-allowed;}
#annotate-app .spacer {flex:1;}

#annotate-app .hint {font-size:.8rem;color:var(--text-sub);margin-top:.7rem;}

/* トースト（右下の小さな通知） */
#annotate-app #toast {
  position:fixed;right:1rem;bottom:1rem;z-index:50;
  background:#1a1a2e;color:#fff;border-radius:8px;padding:.7rem 1.1rem;
  font-size:.88rem;font-weight:600;opacity:0;transform:translateY(8px);
  transition:.2s;pointer-events:none;
}
#annotate-app #toast.show {opacity:1;transform:translateY(0);}
#annotate-app #toast.err {background:var(--danger);}

@media (max-width:640px) {
  #annotate-app .opts {gap:.7rem;}
  #annotate-app .tool-btn {padding:.4rem .55rem;font-size:.8rem;}
}