/* common styles for tools */
:root{
  --bg:#f8fafc; --panel:#ffffff; --muted:#6b7280; --accent:#3b82f6; --ok:#16a34a; --ng:#ef4444;
}
html,body{height:100%;margin:0;font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;background:var(--bg);color:#111}
.wrap{max-width:720px;margin:28px auto;padding:18px}
.card{background:var(--panel);border-radius:10px;padding:14px;box-shadow:0 1px 4px rgba(2,6,23,.06)}
h1{font-size:1.15rem;margin:0 0 12px}
.row{display:flex;gap:12px;align-items:center}
label{font-weight:600;color:#111}
input[type="text"]{flex:1;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:1rem}
.hint{font-size:0.85rem;color:var(--muted);margin-top:8px}
.allowed{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, "Hiragino Kaku Gothic ProN", "Noto Sans JP", monospace;padding:8px;background:#fbfdff;border-radius:6px;border:1px dashed #e6eefc;color:#0f172a}
.result{margin-top:12px;padding:10px;border-radius:8px}
.result.ok{background:rgba(16,185,129,0.08);border:1px solid rgba(16,185,129,0.12);color:var(--ok)}
.result.ng{background:rgba(239,68,68,0.06);border:1px solid rgba(239,68,68,0.12);color:var(--ng)}
.small{font-size:0.9rem;color:var(--muted)}
.invalid-list{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color:#b91c1c}
/* --- yasagashi migrated (non-conflicting) --- */
.section{
  margin-bottom:16px;
  padding:12px;
  background:#fff;
  border-radius:8px;
  box-shadow:0 1px 3px rgba(0,0,0,0.08);
}
select{padding:4px 6px;font-size:0.9rem}
table{width:100%;border-collapse:collapse;font-size:0.85rem}
th,td{padding:4px 6px;border-bottom:1px solid #e5e7eb;vertical-align:top}
th{background:#e5e7eb;text-align:left;white-space:nowrap}
.prediction{color:#6b7280;font-size:0.8rem}
.after-prediction{color:#4b5563;font-size:0.8rem}
.note{margin-top:6px;font-size:0.8rem;color:#6b7280}
.yasa-label{font-size:0.75rem;color:#4b5563;margin-left:4px}
.error-msg{margin-left:8px;font-size:0.8rem;color:#ef4444;font-weight:600}
.candidate-list{margin-left:8px;font-size:0.8rem;color:#2563eb}
.move-btn{font-size:0.8rem;padding:2px 6px;border-radius:4px;border:1px solid #9ca3af;background:#e5e7eb;cursor:pointer}
.move-btn:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}
.move-btn.enabled{background:#3b82f6;color:#fff;border-color:#2563eb}
.move-btn.selected{background:#22c55e;color:#fff;border-color:#16a34a}
.control-btn{font-size:0.85rem;padding:4px 10px;border-radius:4px;border:1px solid transparent;cursor:pointer;margin-left:8px}
.control-btn:disabled{background:#e5e7eb;color:#9ca3af;border-color:#d1d5db;cursor:not-allowed}
.control-reset{background:#3b82f6;color:#fff;border-color:#2563eb}
.control-apply{background:#16a34a;color:#fff;border-color:#15803d}
.control-route{background:#f97316;color:#fff;border-color:#ea580c}
#routeConditionRow{margin-top:8px;font-size:0.85rem}
.fixed-col{display:none}
