:root{
  --bg:#f6f7ff;--card:#fff;--text:#14151a;--muted:#6b7280;
  --primary:#6d5efc;--accent:#ff5aa5;--danger:#ef4444;
  --line:rgba(20,21,26,.08);--shadow:0 10px 30px rgba(20,21,26,.08);
  --radius:16px;--radius2:14px
}
*{box-sizing:border-box}
body{
  margin:0;
  background:
    radial-gradient(1200px 600px at 10% -10%,rgba(109,94,252,.18),transparent 60%),
    radial-gradient(900px 500px at 100% 0%,rgba(255,90,165,.16),transparent 55%),
    var(--bg);
  color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif
}
.container{max-width:980px;margin:22px auto;padding:0 16px}
.hero{
  background:linear-gradient(135deg,rgba(109,94,252,.16),rgba(255,90,165,.12));
  border:1px solid var(--line);border-radius:var(--radius);padding:16px;
  box-shadow:var(--shadow);margin-bottom:16px
}
.heroTop{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}
.heroKicker{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(109,94,252,.14);color:#3b32d6;font-size:12px}
.heroTitle{margin:8px 0 6px;font-size:26px;letter-spacing:.2px}
.heroSub{margin:6px 0 0;color:var(--muted);line-height:1.5}
.badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.badge{padding:6px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.06);background:rgba(255,255,255,.7);font-size:12px}
@media (max-width:760px){.heroTop{grid-template-columns:1fr}.badges{justify-content:flex-start}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:16px}
h2{font-size:18px;margin:0 0 12px}
h3{font-size:15px;margin:12px 0 8px}
.muted{color:var(--muted)}
.small{font-size:12px}
hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.settings{display:grid;gap:12px}
.panel{border:1px solid rgba(0,0,0,.06);border-radius:var(--radius2);padding:12px;background:rgba(255,255,255,.75)}
.panel legend{padding:0 8px;font-size:12px;color:#3f3f46}
.hint{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.field{display:grid;gap:6px;margin-bottom:12px}
.field span{font-size:12px;color:#4b5563}
.field input{
  width:100%;padding:12px;border:1px solid rgba(0,0,0,.10);
  border-radius:14px;font-size:16px;outline:none;background:#fff
}
.field input:focus,.nightPct input:focus,.mapSearch:focus{
  border-color:rgba(109,94,252,.65);
  box-shadow:0 0 0 4px rgba(109,94,252,.12)
}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:760px){.grid2{grid-template-columns:1fr}}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.between{justify-content:space-between}
.field.inline{grid-template-columns:auto 160px;align-items:center;gap:10px;margin:0}
.btn{
  padding:12px 14px;border:1px solid rgba(0,0,0,.08);
  border-radius:14px;background:#fff;cursor:pointer;font-size:14px;
  transition:transform .05s ease,filter .15s ease
}
.btn:hover{filter:brightness(.98)}
.btn:active{transform:translateY(1px)}
.btn.primary{border:0;background:linear-gradient(135deg,var(--primary),#8b7bff);color:#fff}
.btn.accent{border:0;background:linear-gradient(135deg,var(--accent),#ff7bc0);color:#fff}
.btn.danger{border:0;background:linear-gradient(135deg,var(--danger),#ff6b6b);color:#fff}
.btn.ghost{background:rgba(255,255,255,.55)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.nightControls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.chip{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:10px 12px;border-radius:999px;background:rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.06);font-size:13px;max-width:100%
}
.chip input[type="checkbox"]{width:20px;height:20px;transform:scale(1.15);accent-color:var(--primary);cursor:pointer}
.chip span{line-height:1.2;white-space:normal;overflow-wrap:anywhere;text-align:center}
.nightPct{
  display:inline-grid;grid-template-columns:auto 86px;align-items:center;gap:8px;
  padding:10px 12px;border-radius:999px;background:rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.06);font-size:13px
}
.nightPct span{color:#4b5563;font-size:12px}
.nightPct input{
  width:86px;padding:10px;border:1px solid rgba(0,0,0,.10);
  border-radius:12px;font-size:16px;outline:none;background:#fff;text-align:right
}
.radioGroup{display:grid;gap:10px}
.radioItem{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#111827}
.radioItem input{margin-top:3px;transform:scale(1.1)}
.addrStack{display:flex;flex-direction:column;gap:8px}
.addrStack button{width:100%}
.peopleRows{display:grid;gap:10px;margin-top:8px}
.personRow{
  display:grid;grid-template-columns:1fr;gap:10px;padding:12px;
  border:1px solid rgba(0,0,0,.08);border-radius:16px;
  background:linear-gradient(180deg,rgba(109,94,252,.05),rgba(255,90,165,.03))
}
.personHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}
.moveBtns{display:flex;gap:8px}
.resultGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:760px){.resultGrid{grid-template-columns:1fr}}
ul,ol{margin:0;padding-left:18px}
li{margin:6px 0}
.status{line-height:1.4}

/* アコーディオン（開けるのが分かりやすい） */
.accordion{border:2px dashed rgba(109,94,252,.35);border-radius:var(--radius);background:rgba(255,255,255,.75);overflow:hidden}
.accordionSummary{
  list-style:none;cursor:pointer;padding:14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:linear-gradient(135deg,rgba(109,94,252,.14),rgba(255,90,165,.12))
}
.accordionSummary::-webkit-details-marker{display:none}
.accordionLeft{display:grid;gap:4px}
.accordionTitle{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}
.accordionHint{font-size:12px;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.08);color:#374151}
.accordionSub{line-height:1.4}
.accordionIcon{font-size:18px;font-weight:800;transition:transform .2s ease}
.accordion[open] .accordionIcon{transform:rotate(180deg)}
.accordion[open] .accordionSummary{border-bottom:1px solid var(--line)}
.accordionBody{padding:14px}

/* コピー強調 */
.copyBoost{font-size:16px;padding:14px 16px;min-height:48px}
.copyBoost.attention{
  animation:copyPulse 1.4s ease-in-out infinite;
  box-shadow:0 10px 26px rgba(255,90,165,.22),0 0 0 5px rgba(255,90,165,.12)
}
@keyframes copyPulse{0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}

/* Map */
.mapWrap{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);position:relative}
#map{height:360px}
@media (max-width:760px){#map{height:320px}}
.mapBar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0;flex-wrap:wrap}
.mapTools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mapSearch{width:min(320px,70vw);padding:10px 12px;border:1px solid rgba(0,0,0,.10);border-radius:14px;font-size:14px;outline:none}
.mapWrap.pickActive{outline:3px solid rgba(109,94,252,.35);box-shadow:0 0 0 6px rgba(109,94,252,.10);animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 6px rgba(109,94,252,.10)}50%{box-shadow:0 0 0 10px rgba(109,94,252,.14)}100%{box-shadow:0 0 0 6px rgba(109,94,252,.10)}}
.mapOverlay{position:absolute;top:10px;right:10px;z-index:600;display:flex;gap:8px;align-items:center}
.mapBtn{padding:10px 12px;border-radius:12px;font-size:14px;background:rgba(255,255,255,.92);border:1px solid rgba(0,0,0,.08);box-shadow:0 10px 20px rgba(0,0,0,.12)}
.mapBtnSmall{padding:10px;width:40px;text-align:center}
.pickBadge{padding:8px 10px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;box-shadow:0 10px 20px rgba(0,0,0,.15)}
.hidden{display:none}
.footer{padding:10px 2px 18px}

/* モーダル */
.overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.42);display:grid;place-items:center;padding:16px}
.overlay.hidden{display:none}
.modal{width:min(920px,100%);max-height:min(86vh,920px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 14px 10px;position:sticky;top:0;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.90));border-bottom:1px solid var(--line)}
.modalTitle{font-size:20px;font-weight:800;margin-top:6px}
.modalX{width:44px;height:44px;padding:0;border-radius:12px;font-size:20px}
.modalBody{padding:12px 14px 6px}
.modalFoot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px 14px;border-top:1px solid var(--line);position:sticky;bottom:0;background:rgba(255,255,255,.96)}

/* 追加：スマホで見切れない「例）」表示（placeholderの代替） */
.placeholderHelp{
  margin-top:6px;
  color:#9ca3af;
  font-size:12px;
  line-height:1.4;
  word-break:break-word;
}
/* ===== ロゴ（タクワリ）強化 ===== */
.logoText {
  margin: 8px 0 6px;
}

.logoMain {
  font-size: clamp(32px, 6vw, 42px);
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.1;

  /* グラデーション文字 */
  background: linear-gradient(135deg, #6d5efc 0%, #ff5aa5 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;

  /* ほんのり立体感 */
  text-shadow:
    0 2px 6px rgba(109, 94, 252, 0.35),
    0 1px 2px rgba(0, 0, 0, 0.08);

  display: inline-block;
}

/* スマホ最適化 */
@media (max-width: 480px) {
  .logoMain {
    letter-spacing: 0.05em;
  }
}
/* ===== タクワリ ロゴ（TOP） ===== */
.heroLogo {
  margin: 6px 0 10px;
}

.takwariLogo {
  display: block;
  max-width: 420px;
  width: 100%;
  height: auto;
}

/* スマホ最適化 */
@media (max-width: 480px) {
  .takwariLogo {
    max-width: 300px;
  }
}